[
  {
    "name": "dotnetstart",
    "dataType": "namespace"
  },
  {
    "name": "Rhino",
    "dataType": "namespace",
    "summary": "Contains commonly-used value types and classes used in Rhino."
  },
  {
    "name": "Rhino.ApplicationSettings",
    "dataType": "namespace",
    "summary": "Static settings global to the entire Rhino application"
  },
  {
    "name": "Rhino.Collections",
    "dataType": "namespace"
  },
  {
    "name": "Rhino.Commands",
    "dataType": "namespace"
  },
  {
    "name": "Rhino.Display",
    "dataType": "namespace"
  },
  {
    "name": "Rhino.DocObjects",
    "dataType": "namespace",
    "summary": "The DocObjects namespace contains types that correspond to geometry that is found in a document.  \nGenerally, these types reference an attribute and have a   distinctive ID."
  },
  {
    "name": "Rhino.DocObjects.Custom",
    "dataType": "namespace"
  },
  {
    "name": "Rhino.DocObjects.SnapShots",
    "dataType": "namespace"
  },
  {
    "name": "Rhino.DocObjects.Tables",
    "dataType": "namespace"
  },
  {
    "name": "Rhino.FileIO",
    "dataType": "namespace"
  },
  {
    "name": "Rhino.FileIO.Nrbf",
    "dataType": "namespace"
  },
  {
    "name": "Rhino.Geometry",
    "dataType": "namespace",
    "summary": "The Geometry namespace contains geometric types used in Rhino.  \nExamples are lines, curves, meshes and boundary representations."
  },
  {
    "name": "Rhino.Geometry.Collections",
    "dataType": "namespace"
  },
  {
    "name": "Rhino.Geometry.Intersect",
    "dataType": "namespace"
  },
  {
    "name": "Rhino.Geometry.MeshRefinements",
    "dataType": "namespace"
  },
  {
    "name": "Rhino.Geometry.Morphs",
    "dataType": "namespace"
  },
  {
    "name": "Rhino.Input",
    "dataType": "namespace",
    "summary": "Classes related to getting user input for things like points, objects, and numbers"
  },
  {
    "name": "Rhino.Input.Custom",
    "dataType": "namespace"
  },
  {
    "name": "Rhino.NodeInCode",
    "dataType": "namespace"
  },
  {
    "name": "Rhino.Notifications",
    "dataType": "namespace"
  },
  {
    "name": "Rhino.ObjectManager",
    "dataType": "namespace"
  },
  {
    "name": "Rhino.PlugIns",
    "dataType": "namespace"
  },
  {
    "name": "Rhino.Render",
    "dataType": "namespace"
  },
  {
    "name": "Rhino.Render.ChangeQueue",
    "dataType": "namespace"
  },
  {
    "name": "Rhino.Render.ChildSlotNames",
    "dataType": "namespace"
  },
  {
    "name": "Rhino.Render.CustomRenderMeshes",
    "dataType": "namespace"
  },
  {
    "name": "Rhino.Render.DataSources",
    "dataType": "namespace"
  },
  {
    "name": "Rhino.Render.Fields",
    "dataType": "namespace"
  },
  {
    "name": "Rhino.Render.ParameterNames",
    "dataType": "namespace"
  },
  {
    "name": "Rhino.Render.PostEffects",
    "dataType": "namespace"
  },
  {
    "name": "Rhino.Render.UI",
    "dataType": "namespace"
  },
  {
    "name": "Rhino.Runtime",
    "dataType": "namespace"
  },
  {
    "name": "Rhino.Runtime.InProcess",
    "dataType": "namespace"
  },
  {
    "name": "Rhino.Runtime.InteropWrappers",
    "dataType": "namespace"
  },
  {
    "name": "Rhino.Runtime.Notifications",
    "dataType": "namespace"
  },
  {
    "name": "Rhino.Runtime.RhinoAccounts",
    "dataType": "namespace"
  },
  {
    "name": "Rhino.UI",
    "dataType": "namespace"
  },
  {
    "name": "Rhino.UI.Controls",
    "dataType": "namespace"
  },
  {
    "name": "Rhino.UI.Controls.DataSource",
    "dataType": "namespace"
  },
  {
    "name": "Rhino.UI.Controls.Thumbnaillist",
    "dataType": "namespace"
  },
  {
    "name": "Rhino.UI.Controls.ThumbnailUI",
    "dataType": "namespace"
  },
  {
    "name": "Rhino.UI.Gumball",
    "dataType": "namespace"
  },
  {
    "namespace": "dotnetstart",
    "name": "DotNetInitialization",
    "dataType": "class",
    "constructors": [
      {
        "signature": "DotNetInitialization()",
        "summary": "Initializes a new instance of the DotNetInitialization class"
      }
    ],
    "methods": [
      {
        "signature": "System.Int32 Start(System.String args)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false
      }
    ]
  },
  {
    "namespace": "Rhino",
    "name": "AngleUnitSystem",
    "dataType": "enum",
    "summary": "ON::AngleUnitSystem identifies an angle unit system",
    "values": [
      {
        "signature": "None = 0",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "ON::AngleUnitSystem::None indicates no angle unit system is specified and model angle unit system should be used."
      },
      {
        "signature": "Turns = 1",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "1 turn = 2pi radians."
      },
      {
        "signature": "Radians = 2",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "1 turn = 2pi radians."
      },
      {
        "signature": "Degrees = 3",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "360 arc degrees  = 1 turn = 2pi radians"
      },
      {
        "signature": "Minutes = 4",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "60 arc minutes = 1 arc degree"
      },
      {
        "signature": "Seconds = 5",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "60 arc seconds = 1 arc minute"
      },
      {
        "signature": "Gradians = 6",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "400 gradians = 2pi radians."
      },
      {
        "signature": "Unset = 255",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "The ON::AngleUnitSystem::Unset is used to indicates no angle unit system has been specified in user interface code."
      }
    ]

  },
  {
    "namespace": "Rhino",
    "name": "AntialiasLevel",
    "dataType": "enum",
    "summary": "Provides the anti-alias levels used for render quality",
    "since": "6.0",
    "values": [
      {
        "signature": "None = 0",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Low quality"
      },
      {
        "signature": "Draft = 1",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Draft quality"
      },
      {
        "signature": "Good = 2",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Good quality"
      },
      {
        "signature": "High = 3",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "High quality"
      }
    ]

  },
  {
    "namespace": "Rhino.ApplicationSettings",
    "name": "AppearanceSettings",
    "dataType": "class",
    "summary": "Provides static methods and properties to deal with the appearance of the application.",
    "constructors": [
      {
        "signature": "AppearanceSettings()",
        "summary": "Initializes a new instance of the AppearanceSettings class"
      }
    ],
    "properties": [
      {
        "signature": "bool BlackWhiteSwitching",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Mode where white objects are drawn black when on a light background and black objects are drawn white when on a dark background",
        "since": "9.0",
        "property": ["get", "set"]
      },
      {
        "signature": "Color CommandPromptBackgroundColor",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the color of the command prompt background.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "int CommandPromptFontSize",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Size of font used in command prompt (in points)",
        "since": "7.0",
        "property": ["get", "set"]
      },
      {
        "signature": "Color CommandPromptHypertextColor",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the color of the command prompt hypertext.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "CommandPromptPosition CommandPromptPosition",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the command prompt position.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "Color CommandPromptTextColor",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the color of the command prompt text.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "Color CrosshairColor",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the color of the crosshair icon.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool CrosshairsAlignedToScreen",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets a value that determines if the cross hairs are drawn horizontally and vertically on the screen (as if fixed to the camera) instead of running along the construction plane's x and y axes. When enabled, the cross hairs stay vertical and horizontal as the view is rotated, for example in a perspective viewport.",
        "since": "9.0",
        "property": ["get", "set"]
      },
      {
        "signature": "double CrosshairScreenLength",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets a value that determines the length, in pixels, of the cross hairs if they are visible.",
        "since": "9.0",
        "property": ["get", "set"]
      },
      {
        "signature": "Color CurrentLayerBackgroundColor",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the color used by the layer manager dialog as the background color for the current layer.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "string DefaultFontFaceName",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the default font face name used in Rhino.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "Color DefaultLayerColor",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the default layer color.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "Color DefaultObjectColor",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the default color for new objects.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "int DirectionArrowIconHeadSize",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "length of direction arrowhead icon in pixels.",
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "int DirectionArrowIconShaftSize",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "length of direction arrow shaft icon in pixels.",
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool EchoCommandsToHistoryWindow",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets a value that determines if command names are written to the history window.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool EchoPromptsToHistoryWindow",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets a value that determines if prompt messages are written to the history window.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "Color EditCandidateColor",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the color of objects that are eligible to be edited.",
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "Color FeedbackColor",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the feedback color.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "Color FrameBackgroundColor",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the background color of the frame.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "Color GridThickLineColor",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the color of the thick line of the grid.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "Color GridThinLineColor",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the color of the thin line of the grid.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "Color GridXAxisLineColor",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the color of the X axis of the grid.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "Color GridYAxisLineColor",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the color of the Y axis of the grid.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "Color GridZAxisLineColor",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the color of the Z axis of the grid.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "int LanguageIdentifier",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the language identifier.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "Color LockedObjectColor",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "color used to draw locked objects.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool MenuVisible",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets a value that determines if the File menu is visible.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "Color PageviewPaperColor",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the paper background. A rectangle is drawn into the background of page views to represent the printed area. The alpha portion of the color is used to draw the paper blended into the background",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "int PreviousLanguageIdentifier",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the previous language identifier.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "Color SelectedObjectColor",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "The color used to draw selected objects. The default is yellow, but this can be customized by the user.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "Color SelectionWindowCrossingFillColor",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Color used to fill selection crossing window",
        "since": "7.0",
        "property": ["get", "set"]
      },
      {
        "signature": "Color SelectionWindowCrossingStrokeColor",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Color used to draw stroke for selection crossing window",
        "since": "7.0",
        "property": ["get", "set"]
      },
      {
        "signature": "Color SelectionWindowFillColor",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Color used to fill selection window",
        "since": "7.0",
        "property": ["get", "set"]
      },
      {
        "signature": "Color SelectionWindowStrokeColor",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Color used to draw stroke for selection window",
        "since": "7.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool ShowCrosshairs",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets a value that determines if cross hairs are visible.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool ShowCursorWhenCrosshairsVisible",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "9.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool ShowFullPathInTitleBar",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets a value that determines if the full path of the document is shown in the Rhino title bar.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool ShowLayoutDropShadow",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Display the drop shadow of layouts",
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool ShowOsnapBar",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Shows or hides the object snap user interface.",
        "since": "7.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool ShowSelectionFilterBar",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Shows or hides the selection filter user interface.",
        "since": "8.2",
        "property": ["get", "set"]
      },
      {
        "signature": "bool ShowSideBar",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Shows or hides the side bar user interface.",
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool ShowStatusBar",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Shows or hides the status bar user interface.",
        "since": "7.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool ShowTitleBar",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Shows or hides title bar.",
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool ShowViewportTitles",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Shows or hides viewport titles.",
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "Color TrackingColor",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the tracking color.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool UsePaintColors",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets a value indicating if logical paint colors should be used.",
        "since": "5.0",
        "obsolete": "custom colors are always used",
        "property": ["get"]
      },
      {
        "signature": "Color ViewportBackgroundColor",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the viewport background color.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool ViewportTabsVisibleAtStart",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Display viewport tabs at start",
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "Color WorldCoordIconXAxisColor",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the color of the world coordinate X axis.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "Color WorldCoordIconYAxisColor",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the color of the world coordinate Y axis.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "Color WorldCoordIconZAxisColor",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the color of the world coordinate Z axis.",
        "since": "5.0",
        "property": ["get", "set"]
      }
    ],
    "methods": [
      {
        "signature": "Color DefaultPaintColor(PaintColor whichColor, System.Boolean darkMode)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Get a default paint color for Rhino. The current paint color may be different than the default",
        "since": "8.0",
        "parameters": [
          {
            "name": "whichColor",
            "type": "PaintColor",
            "summary": "The color to retrieve"
          },
          {
            "name": "darkMode",
            "type": "System.Boolean",
            "summary": "If True gets the default dark mode color otherwise return the default light mode color"
          }
        ]
      },
      {
        "signature": "Color DefaultPaintColor(PaintColor whichColor)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Get a default paint color for Rhino. The current paint color may be different than the default",
        "since": "7.0",
        "parameters": [
          {
            "name": "whichColor",
            "type": "PaintColor",
            "summary": "The color to retrieve"
          }
        ]
      },
      {
        "signature": "Color DefaultWidgetColor(WidgetColor whichColor)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Get a default widget color for Rhino. The current widget color may be different than the default",
        "since": "8.0",
        "parameters": [
          {
            "name": "whichColor",
            "type": "WidgetColor",
            "summary": "The color to retrieve"
          }
        ],
        "returns": "A .Net library color."
      },
      {
        "signature": "AppearanceSettingsState GetCurrentState()",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the current settings of the application.",
        "since": "5.0",
        "returns": "An instance of a class that represents all the settings as they appear in the Rhino _Options dialog, joined in a single class."
      },
      {
        "signature": "AppearanceSettingsState GetDefaultState()",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the factory settings of the application.",
        "since": "5.0",
        "returns": "An instance of a class that represents all the default settings joined together."
      },
      {
        "signature": "AppearanceSettingsState GetDefaultState(System.Boolean darkMode)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the factory settings of the application.",
        "since": "8.0",
        "returns": "An instance of a class that represents all the default settings joined together."
      },
      {
        "signature": "Color GetPaintColor(PaintColor whichColor, System.Boolean compute)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Gat a paint color. This overload provides a compute option for cases where colors are computed when they are \"unset\" colors.",
        "since": "7.1",
        "parameters": [
          {
            "name": "whichColor",
            "type": "PaintColor",
            "summary": ""
          },
          {
            "name": "compute",
            "type": "System.Boolean",
            "summary": "if true, a color is computed in some cases"
          }
        ]
      },
      {
        "signature": "Color GetPaintColor(PaintColor whichColor)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the color that is currently associated with a paint color.",
        "since": "5.0",
        "parameters": [
          {
            "name": "whichColor",
            "type": "PaintColor",
            "summary": "A color association."
          }
        ],
        "returns": "A .Net library color."
      },
      {
        "signature": "Color GetWidgetColor(WidgetColor whichColor)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the .Net library color that is currently associated with a widget color.",
        "since": "6.0",
        "parameters": [
          {
            "name": "whichColor",
            "type": "WidgetColor",
            "summary": "A color association."
          }
        ],
        "returns": "A .Net library color."
      },
      {
        "signature": "System.Boolean InitialMainWindowPosition(out Rectangle bounds)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Location where the Main Rhino window attempts to show when the application is first started.",
        "since": "6.0",
        "parameters": [
          {
            "name": "bounds",
            "type": "Rectangle",
            "summary": "The rectangle in which the main window attempts to shows is assigned to this out parameter during the call."
          }
        ],
        "returns": "False if the information could not be retrieved."
      },
      {
        "signature": "System.Void RestoreDefaults()",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Commits the default settings as the current settings.",
        "since": "5.0"
      },
      {
        "signature": "System.Void SetPaintColor(PaintColor whichColor, Color c, System.Boolean forceUiUpdate)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Sets the logical paint color association to a specific .Net library color.",
        "since": "5.0",
        "parameters": [
          {
            "name": "whichColor",
            "type": "PaintColor",
            "summary": "A logical color association."
          },
          {
            "name": "c",
            "type": "Color",
            "summary": "A .Net library color."
          },
          {
            "name": "forceUiUpdate",
            "type": "System.Boolean",
            "summary": "True if the UI should be forced to update."
          }
        ]
      },
      {
        "signature": "System.Void SetPaintColor(PaintColor whichColor, Color c)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Sets the logical paint color association to a specific .Net library color, without forced UI update.",
        "since": "5.0",
        "parameters": [
          {
            "name": "whichColor",
            "type": "PaintColor",
            "summary": "A logical color association."
          },
          {
            "name": "c",
            "type": "Color",
            "summary": "A .Net library color."
          }
        ]
      },
      {
        "signature": "System.Boolean SetToDarkMode()",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Set UI to the default dark mode color scheme",
        "since": "8.2",
        "returns": "True on sucess"
      },
      {
        "signature": "System.Boolean SetToLightMode()",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Set UI to the default light mode color scheme",
        "since": "8.2",
        "returns": "True on sucess"
      },
      {
        "signature": "System.Void SetWidgetColor(WidgetColor whichColor, Color c, System.Boolean forceUiUpdate)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Sets the logical widget color association to a specific .Net library color.",
        "since": "6.0",
        "parameters": [
          {
            "name": "whichColor",
            "type": "WidgetColor",
            "summary": "A logical color association."
          },
          {
            "name": "c",
            "type": "Color",
            "summary": "A .Net library color."
          },
          {
            "name": "forceUiUpdate",
            "type": "System.Boolean",
            "summary": "True if the UI should be forced to update."
          }
        ]
      },
      {
        "signature": "System.Void SetWidgetColor(WidgetColor whichColor, Color c)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Sets the logical widget color association to a specific .Net library color, without forced UI update.",
        "since": "6.0",
        "parameters": [
          {
            "name": "whichColor",
            "type": "WidgetColor",
            "summary": "A logical color association."
          },
          {
            "name": "c",
            "type": "Color",
            "summary": "A .Net library color."
          }
        ]
      },
      {
        "signature": "System.Void UpdateFromState(AppearanceSettingsState state)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Sets all settings to a particular defined joined state.",
        "since": "5.0",
        "parameters": [
          {
            "name": "state",
            "type": "AppearanceSettingsState",
            "summary": "A joined settings object."
          }
        ]
      },
      {
        "signature": "System.Boolean UsingDefaultDarkModeColors()",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Determine if Rhino is running with default dark mode color settings",
        "since": "8.2"
      },
      {
        "signature": "System.Boolean UsingDefaultLightModeColors()",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Determine if Rhino is running with default light mode color settings",
        "since": "8.2"
      }
    ]
  },
  {
    "namespace": "Rhino.ApplicationSettings",
    "name": "AppearanceSettingsState",
    "dataType": "class",
    "summary": "snapshot of the values in <b>AppearanceSettings</b>",
    "properties": [
      {
        "signature": "Color CommandPromptBackgroundColor",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the command prompt background color.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "string CommandPromptFontName",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Name of the font used in the command prompt",
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "int CommandPromptFontSize",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Size of the font used in the command prompt (in points)",
        "since": "7.0",
        "property": ["get", "set"]
      },
      {
        "signature": "Color CommandPromptHypertextColor",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the command prompt hypertext color.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "Color CommandPromptTextColor",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the command prompt text color.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "Color CrosshairColor",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the crosshair color.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool CrosshairsAlignedToScreen",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets a value that determines if the cross hairs are drawn horizontally and vertically on the screen instead of running along the construction plane's x and y axes.",
        "since": "9.0",
        "property": ["get", "set"]
      },
      {
        "signature": "double CrosshairScreenLength",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets a value that determines the length, in pixels, of the cross hairs if they are visible.",
        "since": "9.0",
        "property": ["get", "set"]
      },
      {
        "signature": "Color CurrentLayerBackgroundColor",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the color used by the layer manager dialog as the background color for the current layer.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "string DefaultFontFaceName",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the name of the default font face.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "Color DefaultLayerColor",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the default layer color.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "Color DefaultObjectColor",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the default object color.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "int DirectionArrowIconHeadSize",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Set the arrow icon head size.",
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "int DirectionArrowIconShaftSize",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Set the arrow icon shaft size.",
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool EchoCommandsToHistoryWindow",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets a value that determines if command names are written to the history window.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool EchoPromptsToHistoryWindow",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets a value that determines if prompt messages are written to the history window.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "Color EditCandidateColor",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the color of objects that are eligible to be edited.",
        "since": "7.0",
        "property": ["get", "set"]
      },
      {
        "signature": "Color FeedbackColor",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the feedback color.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "Color FrameBackgroundColor",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the frame background color.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "Color GridThickLineColor",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the color of the thick line in the grid.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "Color GridThinLineColor",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the color of the thin line in the grid.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "Color GridXAxisLineColor",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the color of X axis line in the grid.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "Color GridYAxisLineColor",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the color of Y axis line in the grid.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "Color GridZAxisLineColor",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the color of Z axis line in the grid.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "Color LockedObjectColor",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the color used to draw locked objects.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool MenuVisible",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Get/Set menu visibility",
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "Color PageviewPaperColor",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "CRhinoPageView paper background. A rectangle is drawn into the background of page views to represent the printed area. The alpha portion of the color is used to draw the paper blended into the background",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "Color SelectedObjectColor",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "The color used to draw selected objects. The default is yellow, but this can be customized by the user.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "Color SelectionWindowCrossingFillColor",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the color used to fill a crossing selection window",
        "since": "7.0",
        "property": ["get", "set"]
      },
      {
        "signature": "Color SelectionWindowCrossingStrokeColor",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the color used to draw the stroke of a crossing selection window",
        "since": "7.0",
        "property": ["get", "set"]
      },
      {
        "signature": "Color SelectionWindowFillColor",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the color used to fill a selection window",
        "since": "7.0",
        "property": ["get", "set"]
      },
      {
        "signature": "Color SelectionWindowStrokeColor",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the color used to draw the stroke of a selection window",
        "since": "7.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool ShowCrosshairs",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets a value that determines if cross hairs are visible.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool ShowCursorWhenCrosshairsVisible",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "9.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool ShowFullPathInTitleBar",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets a value that determines if the full path of the document is shown in the Rhino title bar.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool ShowLayoutDropShadow",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Display the drop shadow of layouts",
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool ShowStatusBar",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Get/Set status bar visibility",
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool ShowTitleBar",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Shows or hides title bar.",
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool ShowViewportTitles",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Get/Set viewport title visibility",
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "Color TrackingColor",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the tracking color.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "Color ViewportBackgroundColor",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the viewport background color.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool ViewportTabsVisibleAtStart",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Display viewport tabs at start",
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "Color WorldCoordIconXAxisColor",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the color of the world X axis of the world coordinates icon, appearing usually bottom left in viewports.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "Color WorldCoordIconYAxisColor",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the color of the world Y axis of the world coordinate icon, appearing usually bottom left in viewports.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "Color WorldCoordIconZAxisColor",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the color of the world Z axis of the world coordinate icon, appearing usually bottom left in viewports.",
        "since": "5.0",
        "property": ["get", "set"]
      }
    ]
  },
  {
    "namespace": "Rhino.ApplicationSettings",
    "name": "ChooseOneObjectSettings",
    "dataType": "class",
    "summary": "Contains static methods and properties to modify \"choose one object\" settings.",
    "since": "8.0",
    "constructors": [
      {
        "signature": "ChooseOneObjectSettings()",
        "summary": "Initializes a new instance of the ChooseOneObjectSettings class"
      }
    ],
    "properties": [
      {
        "signature": "bool AutomaticResize",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "AutomaticResize",
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool DynamicHighlight",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "DynamicHighlight",
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool FollowCursor",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "FollowCursor",
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "Color HighlightColor",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "HighlightColor",
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "int MaxAutoResizeItems",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "MaxAutoResizeItems",
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool ShowAllOption",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "ShowAllOption",
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool ShowObjectColor",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "ShowObjectColor",
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool ShowObjectLayer",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "ShowObjectLayer",
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool ShowObjectName",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "ShowObjectName",
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool ShowObjectType",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "ShowObjectType",
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool ShowObjectTypeDetails",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "ShowObjectTypeDetails",
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool ShowTitlebarAndBorder",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "ShowTitlebarAndBorder",
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool UseCustomColor",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "UseCustomColor",
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "int XOffset",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "XOffset",
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "int YOffset",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "YOffset",
        "since": "8.0",
        "property": ["get", "set"]
      }
    ],
    "methods": [
      {
        "signature": "ChooseOneObjectSettingsState GetCurrentState()",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the current settings of the application.",
        "since": "8.0"
      },
      {
        "signature": "ChooseOneObjectSettingsState GetDefaultState()",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the factory settings of the application.",
        "since": "8.0"
      },
      {
        "signature": "System.Void RestoreDefaults()",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Commits the default settings as the current settings.",
        "since": "8.0"
      },
      {
        "signature": "System.Void UpdateFromState(ChooseOneObjectSettingsState state)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Sets all settings to a particular defined joined state.",
        "since": "8.0",
        "parameters": [
          {
            "name": "state",
            "type": "ChooseOneObjectSettingsState",
            "summary": "The particular state."
          }
        ]
      }
    ]
  },
  {
    "namespace": "Rhino.ApplicationSettings",
    "name": "ChooseOneObjectSettingsState",
    "dataType": "class",
    "summary": "Represents a snapshot of <b>ChooseOneObjectSettings</b> .",
    "since": "8.0",
    "properties": [
      {
        "signature": "bool AutomaticResize",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "AutomaticResize",
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool DynamicHighlight",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "DynamicHighlight",
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool FollowCursor",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "FollowCursor",
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "Color HighlightColor",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "HighlightColor",
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "int MaxAutoResizeItems",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "MaxAutoResizeItems",
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool ShowAllOption",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "ShowAllOption",
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool ShowObjectColor",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "ShowObjectColor",
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool ShowObjectLayer",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "ShowObjectLayer",
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool ShowObjectName",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "ShowObjectName",
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool ShowObjectType",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "ShowObjectType",
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool ShowObjectTypeDetails",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "ShowObjectTypeDetails",
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool ShowTitlebarAndBorder",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "ShowTitlebarAndBorder",
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool UseCustomColor",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "UseCustomColor",
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "int XOffset",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "XOffset",
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "int YOffset",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "YOffset",
        "since": "8.0",
        "property": ["get", "set"]
      }
    ]
  },
  {
    "namespace": "Rhino.ApplicationSettings",
    "name": "ClipboardState",
    "dataType": "enum",
    "summary": "Defines enumerated constant values for different behavior that is related to clipboard data.",
    "since": "5.0",
    "values": [
      {
        "signature": "KeepData = 0",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Always keep clipboard data, regardless of size and never prompt the user."
      },
      {
        "signature": "DeleteData",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Always delete clipboard data, regardless of size and never prompt the user."
      },
      {
        "signature": "PromptWhenBig",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Prompt user when clipboard memory is large."
      }
    ]

  },
  {
    "namespace": "Rhino.ApplicationSettings",
    "name": "CommandAlias",
    "dataType": "class",
    "summary": "A command alias is a set of characters that can be defined to run a macro",
    "constructors": [
      {
        "signature": "CommandAlias(string alias, string macro, bool instant)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Create a new command alias",
        "since": "9.0"
      }
    ],
    "properties": [
      {
        "signature": "string Alias",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "String that represents an alias",
        "since": "9.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool Instant",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Is the command alias instant? Instant aliases run without the need for spacebar or enter",
        "since": "9.0",
        "property": ["get", "set"]
      },
      {
        "signature": "string Macro",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Macro to run when an alias is input",
        "since": "9.0",
        "property": ["get", "set"]
      }
    ]
  },
  {
    "namespace": "Rhino.ApplicationSettings",
    "name": "CommandAliasList",
    "dataType": "class",
    "summary": "Contains static methods and properties to access command aliases.",
    "constructors": [
      {
        "signature": "CommandAliasList()",
        "summary": "Initializes a new instance of the CommandAliasList class"
      }
    ],
    "properties": [
      {
        "signature": "int Count",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Returns the number of command alias in Rhino.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "int InstantAliasDelayMilliseconds",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Timer delay to use before triggering instant aliases",
        "since": "9.0",
        "property": ["get", "set"]
      }
    ],
    "methods": [
      {
        "signature": "System.Boolean Add(System.String alias, System.String macro)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Adds a new command alias to Rhino.",
        "since": "5.0",
        "parameters": [
          {
            "name": "alias",
            "type": "System.String",
            "summary": "[in] The name of the command alias."
          },
          {
            "name": "macro",
            "type": "System.String",
            "summary": "[in] The command macro to run when the alias is executed."
          }
        ],
        "returns": "True if successful."
      },
      {
        "signature": "System.Void Clear()",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Removes all aliases from the list.",
        "since": "5.0"
      },
      {
        "signature": "System.Boolean Delete(System.String alias)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Deletes an existing command alias from Rhino.",
        "since": "5.0",
        "parameters": [
          {
            "name": "alias",
            "type": "System.String",
            "summary": "[in] The name of the command alias."
          }
        ],
        "returns": "True if successful."
      },
      {
        "signature": "CommandAlias FindAlias(System.String alias)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Find an existing CommandAlias given the alias string",
        "since": "9.0"
      },
      {
        "signature": "CommandAlias GetAlias(System.Int32 index)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Get command alias from the list",
        "since": "9.0",
        "returns": "None is index is out of range"
      },
      {
        "signature": "System.Collections.Generic.Dictionary<string, string> GetDefaults()",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Constructs a dictionary containing as keys the default names and as value the default macro.  \nThe returned dictionary contains a copy of the settings.",
        "since": "5.0",
        "returns": "A new dictionary with the default name/macro combinations."
      },
      {
        "signature": "System.String GetMacro(System.String alias)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Returns the macro of a command alias.",
        "since": "5.0",
        "parameters": [
          {
            "name": "alias",
            "type": "System.String",
            "summary": "[in] The name of the command alias."
          }
        ]
      },
      {
        "signature": "System.String[] GetNames()",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Returns a list of command alias names.",
        "since": "5.0",
        "returns": "An array of strings. This can be empty."
      },
      {
        "signature": "System.Boolean IsAlias(System.String alias)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Verifies that a command alias exists in Rhino.",
        "since": "5.0",
        "parameters": [
          {
            "name": "alias",
            "type": "System.String",
            "summary": "[in] The name of the command alias."
          }
        ],
        "returns": "True if the alias exists."
      },
      {
        "signature": "System.Boolean IsDefault()",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Computes a value indicating if the current alias list is the same as the default alias list.",
        "since": "5.0",
        "returns": "True if the current alias list is exactly equal to the default alias list; False otherwise."
      },
      {
        "signature": "System.Boolean SetMacro(System.String alias, System.String macro)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Modifies the macro of a command alias.",
        "since": "5.0",
        "parameters": [
          {
            "name": "alias",
            "type": "System.String",
            "summary": "[in] The name of the command alias."
          },
          {
            "name": "macro",
            "type": "System.String",
            "summary": "[in] The new command macro to run when the alias is executed."
          }
        ],
        "returns": "True if successful."
      },
      {
        "signature": "System.Collections.Generic.Dictionary<string, string> ToDictionary()",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Constructs a new dictionary that contains: as keys all names and as values all macros.  \nModifications to this dictionary do not affect any Rhino command alias.",
        "since": "5.0",
        "returns": "The new dictionary."
      },
      {
        "signature": "System.Void Update(IEnumerable<CommandAlias> aliases, System.Boolean replaceAll)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Add or modify the command aliases with a list of aliases",
        "since": "9.0"
      }
    ]
  },
  {
    "namespace": "Rhino.ApplicationSettings",
    "name": "CommandPromptPosition",
    "dataType": "enum",
    "summary": "Defines enumerated constant values for default positions of the command prompt inside the frame of the full editor window.",
    "since": "5.0",
    "values": [
      {
        "signature": "Top = 0",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "The command prompt is shown on top."
      },
      {
        "signature": "Bottom = 1",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "The command prompt is shown at the bottom."
      },
      {
        "signature": "Floating = 2",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "The command prompt is shown floating."
      },
      {
        "signature": "Hidden = 3",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "The command prompt is shown hidden."
      }
    ]

  },
  {
    "namespace": "Rhino.ApplicationSettings",
    "name": "CursorMode",
    "dataType": "enum",
    "summary": "Defines enumerated constant values for particular OSnap cursor colors.",
    "since": "5.0",
    "values": [
      {
        "signature": "None = 0",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "No OSnap cursor."
      },
      {
        "signature": "BlackOnWhite",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Black on white OSnap cursor."
      },
      {
        "signature": "WhiteOnBlack",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "White on black OSnap cursor."
      }
    ]

  },
  {
    "namespace": "Rhino.ApplicationSettings",
    "name": "CursorTooltipSettings",
    "dataType": "class",
    "summary": "Cursor tooltips place information at the cursor location. Note: Turning on cursor tooltips turns off object snap cursors.",
    "constructors": [
      {
        "signature": "CursorTooltipSettings()",
        "summary": "Initializes a new instance of the CursorTooltipSettings class"
      }
    ],
    "properties": [
      {
        "signature": "bool AutoSuppress",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Attempts to display only the most useful tooltip.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "Color BackgroundColor",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Tooltip background color.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool CommandPromptPane",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Displays the current command prompt.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool DistancePane",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Displays the distance from the last picked point.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool EnableGumballToolTips",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Turns on/off gumball tooltips",
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "Point Offset",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "The x and y distances in pixels from the cursor location to the tooltip.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool OsnapPane",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Displays the current object snap selection.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool PointPane",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Displays the current construction plane coordinates.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool RelativePointPane",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Displays the relative construction plane coordinates and angle from the last picked point.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "Color TextColor",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Tooltip text color.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool TooltipsEnabled",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Turns on/off cursor tooltips.",
        "since": "5.0",
        "property": ["get", "set"]
      }
    ],
    "methods": [
      {
        "signature": "CursorTooltipSettingsState GetCurrentState()",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the current settings.",
        "since": "5.0",
        "returns": "A new cursor tooltip state with current settings."
      },
      {
        "signature": "CursorTooltipSettingsState GetDefaultState()",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the cursor tooltip factory settings.",
        "since": "5.0",
        "returns": "A new cursor tooltip state with factory settings."
      },
      {
        "signature": "System.Void UpdateFromState(CursorTooltipSettingsState state)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "9.0"
      }
    ]
  },
  {
    "namespace": "Rhino.ApplicationSettings",
    "name": "CursorTooltipSettingsState",
    "dataType": "class",
    "summary": "Represents a snapshot of <b>CursorTooltipSettings</b> .",
    "constructors": [
      {
        "signature": "CursorTooltipSettingsState()",
        "summary": "Initializes a new instance of the CursorTooltipSettingsState class"
      }
    ],
    "properties": [
      {
        "signature": "bool AutoSuppress",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Attempts to display only the most useful tooltip.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "Color BackgroundColor",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Tooltip background color.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool CommandPromptPane",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Displays the current command prompt.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool DistancePane",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Displays the distance from the last picked point.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool EnableGumballToolTips",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Turns on/off gumball tooltips",
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "Point Offset",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "The x and y distances in pixels from the cursor location to the tooltip.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool OsnapPane",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Displays the current object snap selection.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool PointPane",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Displays the current construction plane coordinates.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool RelativePointPane",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Displays the relative construction plane coordinates and angle from the last picked point.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "Color TextColor",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Tooltip text color.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool TooltipsEnabled",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Turns on/off cursor tooltips.",
        "since": "5.0",
        "property": ["get", "set"]
      }
    ]
  },
  {
    "namespace": "Rhino.ApplicationSettings",
    "name": "CurvatureAnalysisSettings",
    "dataType": "class",
    "summary": "Contains static methods and properties to modify curvature analysis-related commands.",
    "constructors": [
      {
        "signature": "CurvatureAnalysisSettings()",
        "summary": "Initializes a new instance of the CurvatureAnalysisSettings class"
      }
    ],
    "properties": [
      {
        "signature": "Interval GaussRange",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the Gaussian curvature range.",
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "Interval MaxRadiusRange",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the Maximum Radius curvature range.",
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "Interval MeanRange",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the Mean curvature range.",
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "Interval MinRadiusRange",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the Minimum Radius curvature range.",
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool ShowIsoCurves",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets whether to show isocurves.",
        "since": "9.0",
        "property": ["get", "set"]
      },
      {
        "signature": "CurvatureStyle Style",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the curvature analysis style.",
        "since": "6.0",
        "property": ["get", "set"]
      }
    ],
    "methods": [
      {
        "signature": "System.Boolean CalculateCurvatureAutoRange(IEnumerable<Mesh> meshes, ref CurvatureAnalysisSettingsState settings)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "6.0"
      },
      {
        "signature": "CurvatureAnalysisSettingsState GetCurrentState()",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the current settings of the application.",
        "since": "6.0"
      },
      {
        "signature": "CurvatureAnalysisSettingsState GetDefaultState()",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the factory settings of the application.",
        "since": "6.0"
      },
      {
        "signature": "System.Void RestoreDefaults()",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Commits the default settings as the current settings.",
        "since": "6.0"
      },
      {
        "signature": "System.Void UpdateFromState(CurvatureAnalysisSettingsState state)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Sets all settings to a particular defined joined state.",
        "since": "6.0",
        "parameters": [
          {
            "name": "state",
            "type": "CurvatureAnalysisSettingsState",
            "summary": "The particular state."
          }
        ]
      }
    ]
  },
  {
    "namespace": "Rhino.ApplicationSettings",
    "name": "CurvatureAnalysisSettings.CurvatureStyle",
    "dataType": "enum",
    "summary": "Curvature analysis styles",
    "since": "6.0",
    "values": [
      {
        "signature": "Gaussian = 0",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Gaussian curvature"
      },
      {
        "signature": "Mean = 1",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Mean curvature"
      },
      {
        "signature": "MinRadius = 2",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Minimum radius curvature"
      },
      {
        "signature": "MaxRadius = 3",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Maximum radius curvature"
      }
    ]

  },
  {
    "namespace": "Rhino.ApplicationSettings",
    "name": "CurvatureAnalysisSettingsState",
    "dataType": "class",
    "summary": "Represents a snapshot of <b>CurvatureAnalysisSettings</b> .",
    "properties": [
      {
        "signature": "Interval GaussRange",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the Gaussian curvature range.",
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "Interval MaxRadiusRange",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the Maximum Radius curvature range.",
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "Interval MeanRange",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the Mean curvature range.",
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "Interval MinRadiusRange",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the Minimum Radius curvature range.",
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool ShowIsoCurves",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets whether to show isocurves.",
        "since": "9.0",
        "property": ["get", "set"]
      },
      {
        "signature": "CurvatureStyle Style",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the curvature analysis style.",
        "since": "6.0",
        "property": ["get", "set"]
      }
    ]
  },
  {
    "namespace": "Rhino.ApplicationSettings",
    "name": "CurvatureGraphSettings",
    "dataType": "class",
    "summary": "Contains static methods and properties to modify curvature graph commands.",
    "since": "8.0",
    "constructors": [
      {
        "signature": "CurvatureGraphSettings()",
        "summary": "Initializes a new instance of the CurvatureGraphSettings class"
      }
    ],
    "properties": [
      {
        "signature": "Color CurveHairColor",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the curve hair color;",
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "int HairDensity",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the hair density;",
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "int HairScale",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the hair scale;",
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "int SampleDensity",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the sampling density;",
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool SrfUHair",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the surface U hairs are on;",
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool SrfVHair",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the surface V hairs are on;",
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "Color SurfaceUHairColor",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the surface U hair color;",
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "Color SurfaceVHairColor",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the surface V hair color;",
        "since": "8.0",
        "property": ["get", "set"]
      }
    ],
    "methods": [
      {
        "signature": "CurvatureGraphSettingsState GetCurrentState()",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the current settings of the application.",
        "since": "8.0"
      },
      {
        "signature": "CurvatureGraphSettingsState GetDefaultState()",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the factory settings of the application.",
        "since": "8.0"
      },
      {
        "signature": "System.Void RestoreDefaults()",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Commits the default settings as the current settings.",
        "since": "8.0"
      },
      {
        "signature": "System.Void UpdateFromState(CurvatureGraphSettingsState state)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Sets all settings to a particular defined joined state.",
        "since": "8.0",
        "parameters": [
          {
            "name": "state",
            "type": "CurvatureGraphSettingsState",
            "summary": "The particular state."
          }
        ]
      }
    ]
  },
  {
    "namespace": "Rhino.ApplicationSettings",
    "name": "CurvatureGraphSettingsState",
    "dataType": "class",
    "summary": "Represents a snapshot of <b>CurvatureGraphSettings</b> .",
    "since": "8.0",
    "properties": [
      {
        "signature": "Color CurveHairColor",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the curve hair color.",
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "int HairDensity",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the hair density.",
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "int HairScale",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the hair scale.",
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "int SampleDensity",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the sample density.",
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool SrfUHair",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the whether to show surface U hairs",
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool SrfVHair",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the whether to show surface V hairs",
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "Color SurfaceUHairColor",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the surface U hair color.",
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "Color SurfaceVHairColor",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the surface V hair color.",
        "since": "8.0",
        "property": ["get", "set"]
      }
    ]
  },
  {
    "namespace": "Rhino.ApplicationSettings",
    "name": "DirectionAnalysisSettings",
    "dataType": "class",
    "summary": "Contains static methods and properties to modify the visibility of edges in edge-related commands.",
    "constructors": [
      {
        "signature": "DirectionAnalysisSettings()",
        "summary": "Initializes a new instance of the DirectionAnalysisSettings class"
      }
    ],
    "properties": [
      {
        "signature": "Color Color",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets a color used to show curve or surface direction.",
        "since": "9.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool Direction",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets whether to display the direction.",
        "since": "9.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool U",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets whether to display the U dir.",
        "since": "9.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool V",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets whether to display the V dir.",
        "since": "9.0",
        "property": ["get", "set"]
      }
    ],
    "methods": [
      {
        "signature": "DirectionAnalysisSettingsState GetCurrentState()",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the current settings of the application.",
        "since": "9.0"
      },
      {
        "signature": "DirectionAnalysisSettingsState GetDefaultState()",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the factory settings of the application.",
        "since": "9.0"
      }
    ]
  },
  {
    "namespace": "Rhino.ApplicationSettings",
    "name": "DirectionAnalysisSettingsState",
    "dataType": "class",
    "summary": "Represents a snapshot of <b>DirectionAnalysisSettings</b> .",
    "properties": [
      {
        "signature": "Color Color",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets a color used to display the direction.",
        "since": "9.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool Direction",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets whether to display the direction.",
        "since": "9.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool U",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets whether to display the U dir.",
        "since": "9.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool V",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets whether to display the V dir.",
        "since": "9.0",
        "property": ["get", "set"]
      }
    ]
  },
  {
    "namespace": "Rhino.ApplicationSettings",
    "name": "DraftAngleAnalysisSettings",
    "dataType": "class",
    "constructors": [
      {
        "signature": "DraftAngleAnalysisSettings()",
        "summary": "Initializes a new instance of the DraftAngleAnalysisSettings class"
      }
    ],
    "properties": [
      {
        "signature": "Interval AngleRange",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "The angle range.",
        "since": "7.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool ShowIsoCurves",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Show isoparametric curves.",
        "since": "7.0",
        "property": ["get", "set"]
      },
      {
        "signature": "Vector3d UpDirection",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "The up direction.",
        "since": "7.0",
        "property": ["get", "set"]
      }
    ],
    "methods": [
      {
        "signature": "DraftAngleAnalysisSettingsState GetCurrentState()",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the current settings of the application.",
        "since": "7.0"
      },
      {
        "signature": "DraftAngleAnalysisSettingsState GetDefaultState()",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the factory settings of the application.",
        "since": "7.0"
      },
      {
        "signature": "System.Void RestoreDefaults()",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Commits the default settings as the current settings.",
        "since": "7.0"
      },
      {
        "signature": "System.Void UpdateFromState(DraftAngleAnalysisSettingsState state)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Sets all settings to a particular defined joined state.",
        "since": "7.0",
        "parameters": [
          {
            "name": "state",
            "type": "DraftAngleAnalysisSettingsState",
            "summary": "The particular state."
          }
        ]
      }
    ]
  },
  {
    "namespace": "Rhino.ApplicationSettings",
    "name": "DraftAngleAnalysisSettingsState",
    "dataType": "class",
    "summary": "Represents a snapshot of <b>DraftAngleAnalysisSettings</b>",
    "properties": [
      {
        "signature": "Interval AngleRange",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "The angle range.",
        "since": "7.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool ShowIsoCurves",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Show isoparametric curves.",
        "since": "7.0",
        "property": ["get", "set"]
      },
      {
        "signature": "Vector3d UpDirection",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "The up direction.",
        "since": "7.0",
        "property": ["get", "set"]
      }
    ]
  },
  {
    "namespace": "Rhino.ApplicationSettings",
    "name": "EdgeAnalysisSettings",
    "dataType": "class",
    "summary": "Contains static methods and properties to modify the visibility of edges in edge-related commands.",
    "constructors": [
      {
        "signature": "EdgeAnalysisSettings()",
        "summary": "Initializes a new instance of the EdgeAnalysisSettings class"
      }
    ],
    "properties": [
      {
        "signature": "Color ShowEdgeColor",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets a color used to enhance display edges in commands like _ShowEdges and _ShowNakedEdges.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "int ShowEdges",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets a value referring to the group of edges that are targeted.  \n0 = all.  \n1 = naked.  \n2 = non-manifold.",
        "since": "5.0",
        "property": ["get", "set"]
      }
    ],
    "methods": [
      {
        "signature": "EdgeAnalysisSettingsState GetCurrentState()",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the current settings of the application.",
        "since": "5.0"
      },
      {
        "signature": "EdgeAnalysisSettingsState GetDefaultState()",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the factory settings of the application.",
        "since": "5.0"
      },
      {
        "signature": "System.Void RestoreDefaults()",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Commits the default settings as the current settings.",
        "since": "5.0"
      },
      {
        "signature": "System.Void UpdateFromState(EdgeAnalysisSettingsState state)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Sets all settings to a particular defined joined state.",
        "since": "5.0",
        "parameters": [
          {
            "name": "state",
            "type": "EdgeAnalysisSettingsState",
            "summary": "The particular state."
          }
        ]
      }
    ]
  },
  {
    "namespace": "Rhino.ApplicationSettings",
    "name": "EdgeAnalysisSettingsState",
    "dataType": "class",
    "summary": "Represents a snapshot of <b>EdgeAnalysisSettings</b> .",
    "properties": [
      {
        "signature": "Color ShowEdgeColor",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets a color used to enhance display edges in commands like _ShowEdges and _ShowNakedEdges.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "int ShowEdges",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets a value referring to the group of edges that are targeted.  \n0 = all.  \n1 = naked.  \n2 = non-manifold.",
        "since": "5.0",
        "property": ["get", "set"]
      }
    ]
  },
  {
    "namespace": "Rhino.ApplicationSettings",
    "name": "EmapAnalysisSettings",
    "dataType": "class",
    "summary": "Contains static methods and properties to modify the visibility of curve ends.",
    "constructors": [
      {
        "signature": "EmapAnalysisSettings()",
        "summary": "Initializes a new instance of the EmapAnalysisSettings class"
      }
    ],
    "properties": [
      {
        "signature": "bool BlendWithObjectColor",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets whether to blend the image with the object's color.",
        "since": "9.0",
        "property": ["get", "set"]
      },
      {
        "signature": "string FileName",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the current emap file name.",
        "since": "9.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool ShowIsoparams",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets whether to display iso curves.",
        "since": "9.0",
        "property": ["get", "set"]
      }
    ],
    "methods": [
      {
        "signature": "EmapAnalysisSettingsState GetCurrentState()",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the current settings of the application.",
        "since": "9.0"
      },
      {
        "signature": "System.String[] GetDefaultFileNames()",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Get list of emap's Default MRU filenames",
        "since": "9.0"
      },
      {
        "signature": "EmapAnalysisSettingsState GetDefaultState()",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the factory settings of the application.",
        "since": "9.0"
      },
      {
        "signature": "System.String[] GetFileNames()",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Get available list of emap filenames",
        "since": "9.0"
      },
      {
        "signature": "System.Void SetFileNames(IEnumerable<string> filenames)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Set available list of emap filenames",
        "since": "9.0"
      }
    ]
  },
  {
    "namespace": "Rhino.ApplicationSettings",
    "name": "EmapAnalysisSettingsState",
    "dataType": "class",
    "summary": "Represents a snapshot of <b>EmapAnalysisSettings</b> .",
    "properties": [
      {
        "signature": "bool BlendWithObjectColor",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets whether to blend the image with the object's color.",
        "since": "9.0",
        "property": ["get", "set"]
      },
      {
        "signature": "String FileName",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the current emap file name.",
        "since": "9.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool ShowIsoparams",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets whether to display iso curves.",
        "since": "9.0",
        "property": ["get", "set"]
      }
    ]
  },
  {
    "namespace": "Rhino.ApplicationSettings",
    "name": "EndAnalysisSettings",
    "dataType": "class",
    "summary": "Contains static methods and properties to modify the visibility of curve ends.",
    "constructors": [
      {
        "signature": "EndAnalysisSettings()",
        "summary": "Initializes a new instance of the EndAnalysisSettings class"
      }
    ],
    "properties": [
      {
        "signature": "bool ClosedSeams",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets whether to display the closed curve seam points.",
        "since": "9.0",
        "property": ["get", "set"]
      },
      {
        "signature": "Color Color",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets a color used to display the points.",
        "since": "9.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool OpenEnds",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets whether to display the open curve end points.",
        "since": "9.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool OpenStarts",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets whether to display the open curve start points.",
        "since": "9.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool PolycurveJoints",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets whether to display the polycurve joint points.",
        "since": "9.0",
        "property": ["get", "set"]
      }
    ],
    "methods": [
      {
        "signature": "EndAnalysisSettingsState GetCurrentState()",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the current settings of the application.",
        "since": "9.0"
      },
      {
        "signature": "EndAnalysisSettingsState GetDefaultState()",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the factory settings of the application.",
        "since": "9.0"
      }
    ]
  },
  {
    "namespace": "Rhino.ApplicationSettings",
    "name": "EndAnalysisSettingsState",
    "dataType": "class",
    "summary": "Represents a snapshot of <b>EndAnalysisSettings</b> .",
    "properties": [
      {
        "signature": "bool ClosedSeams",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets whether to display the closed curve seam points.",
        "since": "9.0",
        "property": ["get", "set"]
      },
      {
        "signature": "Color Color",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets a color used to display the points.",
        "since": "9.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool OpenEnds",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets whether to display the open curve end points.",
        "since": "9.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool OpenStarts",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets whether to display the open curve start points.",
        "since": "9.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool PolycurveJoints",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets whether to display the polycurve joint points.",
        "since": "9.0",
        "property": ["get", "set"]
      }
    ]
  },
  {
    "namespace": "Rhino.ApplicationSettings",
    "name": "FileSettings",
    "dataType": "class",
    "summary": "Contains static methods and properties relating Rhino files.",
    "constructors": [
      {
        "signature": "FileSettings()",
        "summary": "Initializes a new instance of the FileSettings class"
      }
    ],
    "properties": [
      {
        "signature": "bool AutoSaveEnabled",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Enables or disables Rhino's automatic file saving mechanism.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "string AutoSaveFile",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "the file name used by Rhino's automatic file saving mechanism.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "TimeSpan AutoSaveInterval",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "how often the document will be saved when Rhino's automatic file saving mechanism is enabled.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool AutoSaveMeshes",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "save render and display meshes in autosave file.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "string BackupFileFolder",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Returns or sets the location of Rhino's backup files.",
        "property": ["get", "set"]
      },
      {
        "signature": "bool ClipboardCopyToPreviousRhinoVersion",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets a value that decides if copies to the clipboard are performed in both the current and previous Rhino clipboard formats.  This means you will double the size of what is saved in the clipboard but will be able to copy from the current to the previous version using the clipboard.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "ClipboardState ClipboardOnExit",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets a value that determines what to do with clipboard data on exit.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool CreateBackupFiles",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets a value that controls the creation of backup files.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool CreateOtherBackupFiles",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets a value that controls the creation of other types of backup files.",
        "property": ["get", "set"]
      },
      {
        "signature": "string DefaultRuiFile",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the path to the default RUI file.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "string ExecutableFolder",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Returns the directory where the main Rhino executable is located.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "bool FileLockingEnabled",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Ensure that only one person at a time can have a file open for saving.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool FileLockingOpenWarning",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets whether to display the information dialog which identifies computer files.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "string HelpFilePath",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the Rhino help file path.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "DirectoryInfo InstallFolder",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Returns Rhino's installation folder.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "string LocalProfileDataFolder",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Get full path to a Rhino specific sub-folder under the per-user Local (non-roaming) Profile folder.  This is the folder where user-specific data is stored.  On Windows 7, 8, usually someplace like: \"C:\\Users\\[USERNAME]\\AppData\\Local\\McNeel\\Rhinoceros\\[VERSION_NUMBER]\\\"",
        "since": "5.8",
        "property": ["get"]
      },
      {
        "signature": "bool SaveViewChanges",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "True for users who consider view changes a document change.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "int SearchPathCount",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the amount of search paths that are currently defined.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "string TemplateFile",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Returns or sets the location of Rhino's template file.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "string TemplateFolder",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Returns or sets the location of Rhino's template files.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "string WorkingFolder",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Returns or sets Rhino's working directory, or folder. The working folder is the default folder for all file operations.",
        "since": "5.0",
        "property": ["get", "set"]
      }
    ],
    "methods": [
      {
        "signature": "System.Int32 AddSearchPath(System.String folder, System.Int32 index)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Adds a new imagePath to Rhino's search imagePath list. See \"Options Files settings\" in the Rhino help file for more details.",
        "since": "5.0",
        "parameters": [
          {
            "name": "folder",
            "type": "System.String",
            "summary": "[in] The valid folder, or imagePath, to add."
          },
          {
            "name": "index",
            "type": "System.Int32",
            "summary": "[in] A zero-based position index in the search imagePath list to insert the string. If -1, the imagePath will be appended to the end of the list."
          }
        ],
        "returns": "The index where the item was inserted if success.  \n-1 on failure."
      },
      {
        "signature": "System.String[] AutoSaveBeforeCommands()",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Input list of commands that force AutoSave prior to running.",
        "since": "5.0"
      },
      {
        "signature": "System.String DefaultTemplateFolderForLanguageID(System.Int32 languageID)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Returns the default template folder for a given language id.",
        "since": "8.0",
        "returns": "The default template folder as string."
      },
      {
        "signature": "System.Boolean DeleteSearchPath(System.String folder)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Removes an existing imagePath from Rhino's search imagePath list. See \"Options Files settings\" in the Rhino help file for more details.",
        "since": "5.0",
        "parameters": [
          {
            "name": "folder",
            "type": "System.String",
            "summary": "[in] The valid folder, or imagePath, to remove."
          }
        ],
        "returns": "True or False indicating success or failure."
      },
      {
        "signature": "System.String FindFile(System.String fileName)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Searches for a file using Rhino's search imagePath. Rhino will look for a file in the following locations: 1. The current document's folder. 2. Folder's specified in Options dialog, File tab. 3. Rhino's System folders.",
        "since": "5.0",
        "parameters": [
          {
            "name": "fileName",
            "type": "System.String",
            "summary": "short file name to search for."
          }
        ],
        "returns": "full imagePath on success; None on error."
      },
      {
        "signature": "FileSettingsState GetCurrentState()",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Returns the current state.",
        "since": "5.0",
        "returns": "A new instance containing the current state."
      },
      {
        "signature": "System.String GetDataFolder(System.Boolean currentUser)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the data folder for machine or current user.",
        "since": "5.0",
        "parameters": [
          {
            "name": "currentUser",
            "type": "System.Boolean",
            "summary": "True if the query relates to the current user."
          }
        ],
        "returns": "A directory to user or machine data."
      },
      {
        "signature": "FileSettingsState GetDefaultState()",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Returns the default state.",
        "since": "5.0",
        "returns": "A new instance containing the default state."
      },
      {
        "signature": "System.String[] GetSearchPaths()",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Returns all of the imagePath items in Rhino's search imagePath list. See \"Options Files settings\" in the Rhino help file for more details.",
        "since": "5.0"
      },
      {
        "signature": "System.String[] RecentlyOpenedFiles()",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Returns a list of recently opened files. Note that this function does not check to make sure that these files still exist.",
        "since": "5.0",
        "returns": "An array of strings with the paths to the recently opened files."
      },
      {
        "signature": "System.Void SetAutoSaveBeforeCommands(System.String[] commands)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Set list of commands that force AutoSave prior to running.",
        "since": "5.0"
      },
      {
        "signature": "System.Void UpdateFromState(FileSettingsState state)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Sets all settings to a particular defined joined state.",
        "since": "8.0",
        "parameters": [
          {
            "name": "state",
            "type": "FileSettingsState",
            "summary": "A joined settings object."
          }
        ]
      }
    ]
  },
  {
    "namespace": "Rhino.ApplicationSettings",
    "name": "FileSettingsState",
    "dataType": "class",
    "summary": "Represents a snapshot of <b>FileSettings</b> .",
    "properties": [
      {
        "signature": "bool AutoSaveEnabled",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Enables or disables Rhino's automatic file saving mechanism.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "TimeSpan AutoSaveInterval",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "How often the document will be saved when Rhino's automatic file saving mechanism is enabled.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool AutoSaveMeshes",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Saves render and display meshes in autosave file.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool ClipboardCopyToPreviousRhinoVersion",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets a value that decides if copies to the clipboard are performed in both the current and previous Rhino clipboard formats.  This means you will double the size of what is saved in the clipboard but will be able to copy from the current to the previous version using the clipboard.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "ClipboardState ClipboardOnExit",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets a value that determines what to do with clipboard data on exit.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool CreateBackupFiles",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets a value indicating whether to create backup files.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool FileLockingEnabled",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Ensures that only one person at a time can have a file open for saving.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool FileLockingOpenWarning",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Displays an information dialog which identifies computer file is open on.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool SaveViewChanges",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "True for users who consider view changes a document change.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "string TemplateFileDir",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the directory used for template files.",
        "since": "8.0",
        "property": ["get", "set"]
      }
    ]
  },
  {
    "namespace": "Rhino.ApplicationSettings",
    "name": "GeneralSettings",
    "dataType": "class",
    "summary": "Contains static methods and properties to give access to Rhinoceros settings.",
    "constructors": [
      {
        "signature": "GeneralSettings()",
        "summary": "Initializes a new instance of the GeneralSettings class"
      }
    ],
    "properties": [
      {
        "signature": "bool AutoUpdateCommandHelp",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Command help dialog auto-update feature.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "TimeSpan ContextMenuDelay",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Time to wait before permitting context menu display.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool EnableContextMenu",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "True if right mouse down + delay will pop up context menu on a mouse up if no move happens.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "int MaximumPopupMenuLines",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the maximum number of popup menu lines.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "int MaximumUndoMemoryMb",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the minimum undo memory Mb.  \nUndo records will be purged if there are more than MinimumUndoSteps and     they use more than MaximumUndoMemoryMb.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "string MiddleMouseMacro",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the toolbar to popup when the middle mouse is clicked on a view, this value is only used when MiddleMouseMode is set to PopupToolbar.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "MiddleMouseMode MiddleMouseMode",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets what happens when the user clicks the middle mouse.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "string MiddleMousePopupToolbar",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the toolbar to popup when the middle mouse is clicked on a view, this value is only used when MiddleMouseMode is set to PopupToolbar.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "int MinimumUndoSteps",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the minimum undo steps.  \nUndo records will be purged if there are more than MinimumUndoSteps and     they use more than MaximumUndoMemoryMb.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "MouseSelectMode MouseSelectMode",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the current selection mode.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "int NewObjectIsoparmCount",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the number of isoparm curves to show on new objects.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool SplitCreasedSurfaces",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Should surfaces be split into polysurfaces with smooth faces. This setting is read-only.",
        "since": "9.0",
        "property": ["get"]
      },
      {
        "signature": "bool UseExtrusions",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Should extrusion objects be created for things like cylinders",
        "since": "6.0",
        "property": ["get"]
      }
    ],
    "methods": [
      {
        "signature": "GeneralSettingsState GetCurrentState()",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the current settings.",
        "since": "5.0",
        "returns": "A new general state with current settings."
      },
      {
        "signature": "GeneralSettingsState GetDefaultState()",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the factory settings.",
        "since": "5.0",
        "returns": "A new general state with factory settings."
      }
    ]
  },
  {
    "namespace": "Rhino.ApplicationSettings",
    "name": "GeneralSettingsState",
    "dataType": "class",
    "summary": "Represents a snapshot of <b>GeneralSettings</b> .",
    "properties": [
      {
        "signature": "bool AutoUpdateCommandHelp",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the command help dialog auto-update feature.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "TimeSpan ContextMenuDelay",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the time to wait before permitting context menu display.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool EnableContextMenu",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "True if right mouse down + delay will pop up context menu on a mouse up if no move happens.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "int MaximumPopupMenuLines",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the maximum number of popup menu lines.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "int MaximumUndoMemoryMb",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the minimum undo memory Mb.  \nUndo records will be purged if there are more than MinimumUndoSteps and     they use more than MaximumUndoMemoryMb.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "string MiddleMouseMacro",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the toolbar to popup when the middle mouse is clicked on a view, this value is only used when MiddleMouseMode is set to PopupToolbar.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "MiddleMouseMode MiddleMouseMode",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets what happens when the user clicks the middle mouse.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "string MiddleMousePopupToolbar",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the toolbar to popup when the middle mouse is clicked on a view, this value is only used when MiddleMouseMode is set to PopupToolbar.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "int MinimumUndoSteps",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the minimum undo steps.  \nUndo records will be purged if there are more than MinimumUndoSteps and     they use more than MaximumUndoMemoryMb.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "MouseSelectMode MouseSelectMode",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the current selection mode.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "int NewObjectIsoparmCount",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the number of isoparm curves to show on new objects.",
        "since": "5.0",
        "property": ["get", "set"]
      }
    ]
  },
  {
    "namespace": "Rhino.ApplicationSettings",
    "name": "GumballSettings",
    "dataType": "class",
    "summary": "Contains static metthods and properties to modify Rhino gumball settings.",
    "since": "9.0",
    "constructors": [
      {
        "signature": "GumballSettings()",
        "summary": "Initializes a new instance of the GumballSettings class"
      }
    ],
    "properties": [
      {
        "signature": "int ArcThickness",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Specifies the thickness of the rotation arcs in pixels. Set arc thickness to zero to turn off rotation handles.",
        "since": "9.0",
        "property": ["get", "set"]
      },
      {
        "signature": "int AxisThickness",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Specifies the thickness of the axis arrows in pixels. Set axis thickness to zero to turn of move handles.",
        "since": "9.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool EnableGumball",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Turns the gumball widget on any time objects are selected.",
        "since": "9.0",
        "property": ["get", "set"]
      },
      {
        "signature": "int ExtrudeBallSize",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Specifies the size of the extrude dots in pixels.",
        "since": "9.0",
        "property": ["get", "set"]
      },
      {
        "signature": "int GumballRadius",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Specifies the radius of the gumball widget in pixels.",
        "since": "9.0",
        "property": ["get", "set"]
      },
      {
        "signature": "Color MenuBallColor",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Specifies the gumball menu ball color.",
        "since": "9.0",
        "property": ["get", "set"]
      },
      {
        "signature": "int MenuBallLocation",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Specifies the distance of the menu ball from the gumball origin in pixels.",
        "since": "9.0",
        "property": ["get", "set"]
      },
      {
        "signature": "int MenuBallSize",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Specifies the size of the menu dots in pixels.",
        "since": "9.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool MergeFacesAfterExtrude",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Merges faces after extruding.",
        "since": "9.0",
        "property": ["get", "set"]
      },
      {
        "signature": "int PlaneLocation",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Specifies the distance of the plane indicators from the gumball origin in pixels.",
        "since": "9.0",
        "property": ["get", "set"]
      },
      {
        "signature": "int PlaneSize",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Specifies the size of the plane indicators in pixels. Set plane size to zero to turn off the plane indicators. 9.0",
        "since": "9.0",
        "property": ["get", "set"]
      },
      {
        "signature": "double PlaneVisibilityAngle",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Sets the angle of view for the plane to be visible. The range is from 0 to 90 degrees. 0 degrees means the plane only shows if the gumball is perfectly aligned to the view, 90 means the plane always shows. The default is 50 degrees.",
        "since": "9.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool RotateViewAroundGumball",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Sets the view rotation center to the gumball origin.",
        "since": "9.0",
        "property": ["get", "set"]
      },
      {
        "signature": "int ScaleHandleSize",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Specifies the size of the scale handles in pixels. Set scale handle size to zero to turn off scale handles.",
        "since": "9.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool SnappyGumball",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "If true, snaps to object snap locations. if false, ignores object snap locations.",
        "since": "9.0",
        "property": ["get", "set"]
      },
      {
        "signature": "int TipLength",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Specifies the length of the direction arrows in pixels.",
        "since": "9.0",
        "property": ["get", "set"]
      },
      {
        "signature": "int TipWidth",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Specifies the width of the direction arrows in pixels.",
        "since": "9.0",
        "property": ["get", "set"]
      },
      {
        "signature": "Color XAxisColor",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Specifies the gumball x axis color.",
        "since": "9.0",
        "property": ["get", "set"]
      },
      {
        "signature": "Color YAxisColor",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Specifies the gumball y axis color.",
        "since": "9.0",
        "property": ["get", "set"]
      },
      {
        "signature": "Color ZAxisColor",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Specifies the gumball z axis color.",
        "since": "9.0",
        "property": ["get", "set"]
      }
    ],
    "methods": [
      {
        "signature": "GumballSettingsState GetCurrentState()",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the current settings of the application.",
        "since": "9.0"
      },
      {
        "signature": "GumballSettingsState GetDefaultState()",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the factory settings of the application.",
        "since": "9.0"
      },
      {
        "signature": "System.Void RestoreDefaults()",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Commits the default settings as the current settings.",
        "since": "9.0"
      },
      {
        "signature": "System.Void UpdateFromState(GumballSettingsState state)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Sets all settings to a particular defined joined state.",
        "since": "9.0",
        "parameters": [
          {
            "name": "state",
            "type": "GumballSettingsState",
            "summary": "The particular state."
          }
        ]
      }
    ]
  },
  {
    "namespace": "Rhino.ApplicationSettings",
    "name": "GumballSettingsState",
    "dataType": "class",
    "summary": "Represents a snapshot of <b>GumballSettings</b> .",
    "since": "9.0",
    "properties": [
      {
        "signature": "int ArcThickness",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Specifies the thickness of the rotation arcs in pixels. Set arc thickness to zero to turn off rotation handles.",
        "since": "9.0",
        "property": ["get", "set"]
      },
      {
        "signature": "int AxisThickness",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Specifies the thickness of the axis arrows in pixels. Set axis thickness to zero to turn of move handles.",
        "since": "9.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool EnableGumball",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Turns the gumball widget on any time objects are selected.",
        "since": "9.0",
        "property": ["get", "set"]
      },
      {
        "signature": "int ExtrudeBallSize",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Specifies the size of the extrude dots in pixels.",
        "since": "9.0",
        "property": ["get", "set"]
      },
      {
        "signature": "int GumballRadius",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Specifies the radius of the gumball widget in pixels.",
        "since": "9.0",
        "property": ["get", "set"]
      },
      {
        "signature": "Color MenuBallColor",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Specifies the gumball menu ball color.",
        "since": "9.0",
        "property": ["get", "set"]
      },
      {
        "signature": "int MenuBallLocation",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Specifies the distance of the menu ball from the gumball origin in pixels.",
        "since": "9.0",
        "property": ["get", "set"]
      },
      {
        "signature": "int MenuBallSize",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Specifies the size of the menu dots in pixels.",
        "since": "9.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool MergeFacesAfterExtrude",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Merges faces after extruding.",
        "since": "9.0",
        "property": ["get", "set"]
      },
      {
        "signature": "int PlaneLocation",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Specifies the distance of the plane indicators from the gumball origin in pixels.",
        "since": "9.0",
        "property": ["get", "set"]
      },
      {
        "signature": "int PlaneSize",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Specifies the size of the plane indicators in pixels. Set plane size to zero to turn off the plane indicators. 9.0",
        "since": "9.0",
        "property": ["get", "set"]
      },
      {
        "signature": "double PlaneVisibilityAngle",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Sets the angle of view for the plane to be visible. The range is from 0 to 90 degrees. 0 degrees means the plane only shows if the gumball is perfectly aligned to the view, 90 means the plane always shows. The default is 50 degrees.",
        "since": "9.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool RotateViewAroundGumball",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Sets the view rotation center to the gumball origin.",
        "since": "9.0",
        "property": ["get", "set"]
      },
      {
        "signature": "int ScaleHandleSize",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Specifies the size of the scale handles in pixels. Set scale handle size to zero to turn off scale handles.",
        "since": "9.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool SnappyGumball",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "If true, snaps to object snap locations. if false, ignores object snap locations.",
        "since": "9.0",
        "property": ["get", "set"]
      },
      {
        "signature": "int TipLength",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Specifies the length of the direction arrows in pixels.",
        "since": "9.0",
        "property": ["get", "set"]
      },
      {
        "signature": "int TipWidth",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Specifies the width of the direction arrows in pixels.",
        "since": "9.0",
        "property": ["get", "set"]
      },
      {
        "signature": "Color XAxisColor",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Specifies the gumball x axis color.",
        "since": "9.0",
        "property": ["get", "set"]
      },
      {
        "signature": "Color YAxisColor",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Specifies the gumball y axis color.",
        "since": "9.0",
        "property": ["get", "set"]
      },
      {
        "signature": "Color ZAxisColor",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Specifies the gumball z axis color.",
        "since": "9.0",
        "property": ["get", "set"]
      }
    ]
  },
  {
    "namespace": "Rhino.ApplicationSettings",
    "name": "HistorySettings",
    "dataType": "class",
    "summary": "Provides static (Shared in Vb.Net) properties to modify Rhino History settings.",
    "constructors": [
      {
        "signature": "HistorySettings()",
        "summary": "Initializes a new instance of the HistorySettings class"
      }
    ],
    "properties": [
      {
        "signature": "bool BrokenRecordWarningEnabled",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Displays a warning dialog when an action is taken that breaks the link between the output and input objects.",
        "since": "6.10",
        "property": ["get", "set"]
      },
      {
        "signature": "bool ObjectLockingEnabled",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "When history object locking is enabled, objects with history on them act as if they were locked and the only way to modify these objects is to edit their inputs.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool RecordingEnabled",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "When history recording is enabled, new objects keep a record of how they were constructed so that they can be updated if an input object changes.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool RecordNextCommand",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Enable history recording until the end of the next command",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool UpdateEnabled",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "When history update is enabled, dependent objects are automatically updated when an antecedent is modified.",
        "since": "5.0",
        "property": ["get", "set"]
      }
    ]
  },
  {
    "namespace": "Rhino.ApplicationSettings",
    "name": "Installation",
    "dataType": "enum",
    "summary": "The type of Rhino executable that is executing",
    "since": "5.0",
    "values": [
      {
        "signature": "Undefined = 0",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Unknown"
      },
      {
        "signature": "Commercial",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Educational",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "EducationalLab",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "NotForResale",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "NotForResaleLab",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Beta",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "BetaLab",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Evaluation",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "25 Save limit evaluation version of Rhino"
      },
      {
        "signature": "Corporate",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "EvaluationTimed",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "90 day time limit evaluation version of Rhino"
      }
    ]

  },
  {
    "namespace": "Rhino.ApplicationSettings",
    "name": "KeyboardShortcut",
    "dataType": "class",
    "summary": "A shortcut is a key plus modifier combination that executes a macro",
    "constructors": [
      {
        "signature": "KeyboardShortcut()",
        "summary": "Initializes a new instance of the KeyboardShortcut class"
      }
    ],
    "properties": [
      {
        "signature": "KeyboardKey Key",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Key used for shortcut",
        "since": "8.12",
        "property": ["get", "set"]
      },
      {
        "signature": "string Macro",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Macro to execute when key plus modifier are pressed",
        "since": "8.12",
        "property": ["get", "set"]
      },
      {
        "signature": "ModifierKey Modifier",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Modifier key used for shortcut",
        "since": "8.12",
        "property": ["get", "set"]
      }
    ]
  },
  {
    "namespace": "Rhino.ApplicationSettings",
    "name": "LicenseNode",
    "dataType": "enum",
    "summary": "License node types.",
    "since": "5.0",
    "values": [
      {
        "signature": "Standalone = 0",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "An independent node."
      },
      {
        "signature": "Network = 1",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Network (obtains license from Zoo server)"
      },
      {
        "signature": "NetworkCheckedOut = 2",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Network (has license checked out from Zoo server)"
      }
    ]

  },
  {
    "namespace": "Rhino.ApplicationSettings",
    "name": "MiddleMouseMode",
    "dataType": "enum",
    "summary": "Defines enumerated constant values to define what happens when either the middle mouse button on a three-button mouse is clicked or after pressing the wheel on a wheeled mouse.",
    "since": "5.0",
    "values": [
      {
        "signature": "PopupMenu = 0",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Pops up two-part menu at the cursor location. You can list your favorite commands in the top section. The bottom section is the list of most recent commands used."
      },
      {
        "signature": "PopupToolbar = 1",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Choose a toolbar to pop up at the cursor location. Create a toolbar containing your favorite commands or object snaps to use as a pop-up toolbar."
      },
      {
        "signature": "RunMacro = 2",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Lists a series of commands that run when you click the middle mouse button."
      }
    ]

  },
  {
    "namespace": "Rhino.ApplicationSettings",
    "name": "ModelAidSettings",
    "dataType": "class",
    "summary": "Contains static methods and properties to modify model aid settings.",
    "constructors": [
      {
        "signature": "ModelAidSettings()",
        "summary": "Initializes a new instance of the ModelAidSettings class"
      }
    ],
    "properties": [
      {
        "signature": "bool AltPlusArrow",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "True means Alt+arrow is used for nudging.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool AutoAlignCPlane",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets whether the cplane will automatically align to the selection",
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "int AutoCPlaneAlignment",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "//0 = object, 1 = world, 2 = view",
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool AutoGumballEnabled",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "When AutoGumball is on, a gumball automatically appears when objects are pre-picked.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool CenterSnapToApproximations",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "9.0",
        "property": ["get", "set"]
      },
      {
        "signature": "int ControlPolygonDisplayDensity",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the control polygon display density.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "double CtrlNudgeKeyStep",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the Ctrl-key based nudge step amount.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "double DigitizerOsnapPickboxRadius",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "9.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool DisplayControlPolygon",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the enabled state of Rhino's display control polygon.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool EnableOsnapHighlight",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "9.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool ExtendToApparentIntersection",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the enabled state of Rhino's extend to apparent intersections.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool ExtendTrimLines",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the enabled state of Rhino's extend trim lines.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool GridSnap",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the enabled state of Rhino's grid snap modeling aid.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool GumballAutoReset",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "When GumballAutoReset is on the gumball resets its orientation after a drag When GumballAutoReset is off the gumball orientation is kept to where it was dragged",
        "since": "8.10",
        "property": ["get", "set"]
      },
      {
        "signature": "bool GumballExtrudeMergeFaces",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "When ExtrudeMergeFaces is True the gumball will attempt to merge faces if possible after extruding a face",
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool HighlightControlPolygon",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the enabled state of Rhino's highlight dialog modeling aid.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "int MousePickboxRadius",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "radius of mouse pick box in pixels.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool NearMidIntPerpSnapToMeshes",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "9.0",
        "property": ["get", "set"]
      },
      {
        "signature": "double NudgeKeyStep",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the nudge step amount.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "int NudgeMode",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "0 = world, 1 = cplane, 2 = view, 3 = UVN, -1 = not set.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool OnlySnapToSelected",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool OrientAutoCPlaneToView",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets whether the auto cplane will rotate towards the view after aligning to the selection",
        "since": "8.7",
        "property": ["get", "set"]
      },
      {
        "signature": "bool Ortho",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the enabled state of Rhino's ortho modeling aid.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "double OrthoAngle",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the base orthogonal angle.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool OrthoUseZ",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets whether Ortho will snap to the CPlane Z axis",
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool Osnap",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Enables or disables Rhino's object snap modeling aid.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "CursorMode OsnapCursorMode",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the OSnap cursor mode.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "OsnapModes OsnapModes",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Returns or sets Rhino's current object snap mode. The mode is a bitwise value based on the OsnapModes enumeration.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "int OsnapPickboxRadius",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Enables or disables Rhino's planar modeling aid.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool Planar",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the enabled state of Rhino's Planar modeling aid.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "PointDisplayMode PointDisplay",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the point display mode.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool ProjectSnapToCPlane",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the enabled state of Rhino's Project modeling aid.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool ProjectToCPlaneInPlanParallelViews",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "9.0",
        "property": ["get", "set"]
      },
      {
        "signature": "double ShiftNudgeKeyStep",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the Shift-key based nudge step amount.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool SnappyGumballEnabled",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "When SnappyGumball is on, a dragging a gumball moves the center point. When snappy gumball is off, dragging a gumball moves the mouse down point.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool SnapToFiltered",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool SnapToLocked",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the locked state of the snap modeling aid.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool SnapToOccluded",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool StickyAutoCPlane",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or set whether the auto cplane will stay even after deselection",
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool UniversalConstructionPlaneMode",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the locked state of the snap modeling aid.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool UseHorizontalDialog",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the enabled state of Rhino's use horizontal dialog modeling aid.",
        "since": "5.0",
        "property": ["get", "set"]
      }
    ],
    "methods": [
      {
        "signature": "ModelAidSettingsState GetCurrentState()",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the current settings.",
        "since": "5.0",
        "returns": "A new model aid state with current settings."
      },
      {
        "signature": "ModelAidSettingsState GetDefaultState()",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the factory settings.",
        "since": "5.0",
        "returns": "A new model aid state with factory settings."
      },
      {
        "signature": "System.Void UpdateFromState(ModelAidSettingsState state)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Updates from a particular setting state.",
        "since": "5.0",
        "parameters": [
          {
            "name": "state",
            "type": "ModelAidSettingsState",
            "summary": "The new states that will be set."
          }
        ]
      }
    ]
  },
  {
    "namespace": "Rhino.ApplicationSettings",
    "name": "ModelAidSettingsState",
    "dataType": "class",
    "summary": "Represents a snapshot of <b>ModelAidSettings</b> .",
    "properties": [
      {
        "signature": "bool AltPlusArrow",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "True mean Alt+arrow is used for nudging.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool AutoAlignCPlane",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "int AutoCPlaneAlignment",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "//0 = object, 1 = world, 2 = view",
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool AutoGumballEnabled",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "9.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool CenterSnapToApproximations",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "9.0",
        "property": ["get", "set"]
      },
      {
        "signature": "int ControlPolygonDisplayDensity",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the control polygon display density.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "double CtrlNudgeKeyStep",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the Ctrl-key based nudge step amount.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "double DigitizerOsnapPickboxRadius",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "9.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool DisplayControlPolygon",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the enabled state of Rhino's display control polygon.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool EnableOsnapHighlight",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "9.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool ExtendToApparentIntersection",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the enabled state of Rhino's extend to apparent intersections.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool ExtendTrimLines",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the enabled state of Rhino's extend trim lines.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool GridSnap",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the enabled state of Rhino's grid snap modeling aid.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool GumballExtrudeMergeFaces",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "9.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool HighlightControlPolygon",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the enabled state of Rhino's highlight dialog modeling aid.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "int MousePickboxRadius",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the radius of the mouse pick box in pixels.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool NearMidIntPerpSnapToMeshes",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "9.0",
        "property": ["get", "set"]
      },
      {
        "signature": "double NudgeKeyStep",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the nudge step amount.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "int NudgeMode",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "0 = world, 1 = cplane, 2 = view, 3 = UVN, -1 = not set.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool OnlySnapToSelected",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool OrientAutoCPlaneToView",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets whether the auto cplane will rotate towards the view after aligning to the selection",
        "since": "8.7",
        "property": ["get", "set"]
      },
      {
        "signature": "bool Ortho",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the enabled state of Rhino's ortho modeling aid.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "double OrthoAngle",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the base orthogonal angle.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool OrthoUseZ",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets whether Ortho will snap to the CPlane Z axis",
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool Osnap",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the enabled state of Rhino's object snap modeling aid.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "CursorMode OsnapCursorMode",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the OSnap cursor mode.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "OsnapModes OsnapModes",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns or sets Rhino's current object snap mode.  \nThe mode is a bitwise value based on the OsnapModes enumeration.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "int OsnapPickboxRadius",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Enables or disables Rhino's planar modeling aid.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool Planar",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the enabled state of Rhino's Planar modeling aid.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "PointDisplayMode PointDisplay",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the point display mode.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool ProjectSnapToCPlane",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the enabled state of Rhino's Project modeling aid.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool ProjectToCPlaneInPlanParallelViews",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "9.0",
        "property": ["get", "set"]
      },
      {
        "signature": "double ShiftNudgeKeyStep",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the Shift-key based nudge step amount.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool SnappyGumballEnabled",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "9.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool SnapToFiltered",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool SnapToLocked",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the locked state of the snap modeling aid.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool SnapToOccluded",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool StickyAutoCPlane",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or set whether the auto cplane will stay even after deselection",
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool UniversalConstructionPlaneMode",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the locked state of the snap modeling aid.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool UseHorizontalDialog",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the enabled state of Rhino's use horizontal dialog modeling aid.",
        "since": "5.0",
        "property": ["get", "set"]
      }
    ]
  },
  {
    "namespace": "Rhino.ApplicationSettings",
    "name": "MouseSelectMode",
    "dataType": "enum",
    "summary": "Defines enumerated constant values to indicate a particular window selection mode.",
    "since": "5.0",
    "values": [
      {
        "signature": "Crossing = 0",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Anything that crosses this window will be selected."
      },
      {
        "signature": "Window = 1",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Anything that is inside this window will be selected."
      },
      {
        "signature": "Combo = 2",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Drag a rectangle from left to right for window select. Drag a rectangle from right to left for crossing select."
      }
    ]

  },
  {
    "namespace": "Rhino.ApplicationSettings",
    "name": "NeverRepeatList",
    "dataType": "class",
    "summary": "Contains static methods and properties relating to the list of commands that are never repeated.",
    "constructors": [
      {
        "signature": "NeverRepeatList()",
        "summary": "Initializes a new instance of the NeverRepeatList class"
      }
    ],
    "properties": [
      {
        "signature": "bool UseNeverRepeatList",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Only use the list if somebody modifies it via CRhinoAppSettings::SetDontRepeatCommands(). Return value of True means CRhinoCommand don't repeat flags will be ignored and the m_dont_repeat_list will be used instead.  False means the individual CRhinoCommands will determine if they are repeatable.",
        "since": "5.0",
        "property": ["get"]
      }
    ],
    "methods": [
      {
        "signature": "System.String[] CommandNames()",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "The list of commands to not repeat.",
        "since": "5.0"
      },
      {
        "signature": "System.Int32 SetList(System.String[] commandNames)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Puts the command name tokens in m_dont_repeat_list.",
        "since": "5.0",
        "returns": "Number of items added to m_dont_repeat_list."
      }
    ]
  },
  {
    "namespace": "Rhino.ApplicationSettings",
    "name": "OpenGLSettings",
    "dataType": "class",
    "summary": "Static methods and properties to control OpenGL settings",
    "constructors": [
      {
        "signature": "OpenGLSettings()",
        "summary": "Initializes a new instance of the OpenGLSettings class"
      }
    ],
    "properties": [
      {
        "signature": "AntialiasLevel AntialiasLevel",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the anti-alias level used by OpenGL viewports",
        "since": "6.1",
        "property": ["get", "set"]
      }
    ],
    "methods": [
      {
        "signature": "OpenGLSettingsState GetCurrentState()",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the current settings.",
        "since": "6.1",
        "returns": "A new OpenGL state with current settings."
      },
      {
        "signature": "OpenGLSettingsState GetDefaultState()",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the OpenGL factory settings.",
        "since": "6.1",
        "returns": "A new OpenGL state with factory settings."
      },
      {
        "signature": "System.Void RestoreDefaults()",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Updates from the default setting state.",
        "since": "6.1"
      },
      {
        "signature": "System.Void UpdateFromState(OpenGLSettingsState state)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Updates from a particular setting state.",
        "since": "6.1",
        "parameters": [
          {
            "name": "state",
            "type": "OpenGLSettingsState",
            "summary": "The new state that will be set."
          }
        ]
      }
    ]
  },
  {
    "namespace": "Rhino.ApplicationSettings",
    "name": "OpenGLSettingsState",
    "dataType": "class",
    "summary": "Represents a snapshot of <b>OpenGLSettings</b>",
    "properties": [
      {
        "signature": "AntialiasLevel AntialiasLevel",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "AA level used in OpenGL viewports",
        "since": "6.1",
        "property": ["get", "set"]
      }
    ]
  },
  {
    "namespace": "Rhino.ApplicationSettings",
    "name": "OsnapModes",
    "dataType": "enum",
    "summary": "Defines several bit masks for each of the OSnap that are defined.  \nRefer to the Rhino Help file for further information.",
    "since": "5.0",
    "values": [
      {
        "signature": "None = 0",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "No OSnap."
      },
      {
        "signature": "Near = 2",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Near OSnap."
      },
      {
        "signature": "Focus = 8",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Focus OSnap."
      },
      {
        "signature": "Center = 0x20",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Center OSnap."
      },
      {
        "signature": "Vertex = 0x40",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Vertex OSnap."
      },
      {
        "signature": "Knot = 0x80",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Knot OSnap."
      },
      {
        "signature": "Quadrant = 0x200",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Quadrant OSnap."
      },
      {
        "signature": "Midpoint = 0x800",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Midpoint OSnap."
      },
      {
        "signature": "Intersection = 0x2000",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Intersection OSnap."
      },
      {
        "signature": "End = 0x20000",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "End OSnap."
      },
      {
        "signature": "Perpendicular = 0x80000",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Perpendicular OSnap."
      },
      {
        "signature": "Tangent = 0x200000",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Tangent OSnap."
      },
      {
        "signature": "Point = 0x8000000",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Point OSnap."
      }
    ]

  },
  {
    "namespace": "Rhino.ApplicationSettings",
    "name": "PackageManagerSettings",
    "dataType": "class",
    "summary": "Settings specific to Rhino's package manager",
    "constructors": [
      {
        "signature": "PackageManagerSettings()",
        "summary": "Initializes a new instance of the PackageManagerSettings class"
      }
    ],
    "properties": [
      {
        "signature": "string Sources",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "semicolon separated list of paths/urls that the package manager uses for sources",
        "since": "7.1",
        "property": ["get", "set"]
      }
    ]
  },
  {
    "namespace": "Rhino.ApplicationSettings",
    "name": "PaintColor",
    "dataType": "enum",
    "summary": "Contains enumerated constant values to represent logical colors associated with elements of the user interface.",
    "values": [
      {
        "signature": "NormalStart = 0",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Gradient start for active toolbar tab and non-client area of Rhino."
      },
      {
        "signature": "NormalEnd = 1",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Gradient end for active toolbar tab and non-client area of Rhino."
      },
      {
        "signature": "NormalBorder = 2",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Edge color used for grippers, toolbar border, resize bars, status bar pane borders."
      },
      {
        "signature": "HotStart = 3",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Gradient start for inactive toolbar tab."
      },
      {
        "signature": "HotEnd = 4",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Gradient end for inactive toolbar tab."
      },
      {
        "signature": "HotBorder = 5",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Inactive toolbar tab border."
      },
      {
        "signature": "PressedStart = 6",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Pressed gradient start."
      },
      {
        "signature": "PressedEnd = 7",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Pressed gradient end."
      },
      {
        "signature": "PressedBorder = 8",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Pressed border."
      },
      {
        "signature": "TextEnabled = 9",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Toolbar tab text and status bar text."
      },
      {
        "signature": "TextDisabled = 10",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Disabled text color."
      },
      {
        "signature": "MouseOverControlStart = 11",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Color for hovering gradient start."
      },
      {
        "signature": "MouseOverControlEnd = 12",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Color for hovering gradient end."
      },
      {
        "signature": "MouseOverControlBorder = 13",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Color for hovering border."
      },
      {
        "signature": "ActiveCaption = 14",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Active floating window non-client area"
      },
      {
        "signature": "InactiveCaption = 15",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Inactive floating window non-client area"
      },
      {
        "signature": "PanelBackground = 16",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Background color of panels"
      },
      {
        "signature": "ActiveViewportTitle = 17",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Active viewport title."
      },
      {
        "signature": "InactiveViewportTitle = 18",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Inactive viewport title."
      },
      {
        "signature": "ModifiedValueControlColor = 19",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Modified property value label text color"
      },
      {
        "signature": "EditBoxBackground = 20",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Background fill for input elements (edit box, checkbox)"
      },
      {
        "signature": "GridLinesOnPanelBackground = 21",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Grid lines on panel background color"
      },
      {
        "signature": "GridLinesOnEditBoxBackground = 22",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Grid lines on edit box background color"
      },
      {
        "signature": "InactiveTabBackground = 23",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Fill for inactive tabs"
      }
    ]

  },
  {
    "namespace": "Rhino.ApplicationSettings",
    "name": "PointDisplayMode",
    "dataType": "enum",
    "summary": "Defines enumerated constant values for world coordinates and CPlane point display modes.",
    "since": "5.0",
    "values": [
      {
        "signature": "WorldPoint = 0",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Points are displayed in world coordinates."
      },
      {
        "signature": "CplanePoint",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Points are displayed in CPlane coordinates."
      }
    ]

  },
  {
    "namespace": "Rhino.ApplicationSettings",
    "name": "SelectionFilterSettings",
    "dataType": "class",
    "summary": "Selection filter settings restrict any selection mode (SelWindow, SelCrossing, SelAll, etc.) to specified object types. Note, selection filter settings are not persistent.",
    "constructors": [
      {
        "signature": "SelectionFilterSettings()",
        "summary": "Initializes a new instance of the SelectionFilterSettings class"
      }
    ],
    "properties": [
      {
        "signature": "bool Enabled",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Enables or disables the global object selection filter.",
        "since": "7.0",
        "property": ["get", "set"]
      },
      {
        "signature": "ObjectType GlobalGeometryFilter",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "The global geometry type filter controls which types of geometry will be filtered. Note, the filter can be a bitwise combination of multiple object types.",
        "since": "7.0",
        "property": ["get", "set"]
      },
      {
        "signature": "ObjectType OneShotGeometryFilter",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "The one-shot geometry type filter controls which types of geometry will be filtered for one selection. Note, the filter can be a bitwise combination of multiple object types.",
        "since": "7.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool SubObjectSelect",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Enables or disabled sub-object selection.",
        "since": "7.0",
        "property": ["get", "set"]
      }
    ],
    "methods": [
      {
        "signature": "SelectionFilterSettingsState GetCurrentState()",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the current settings of the application.",
        "since": "7.0"
      },
      {
        "signature": "SelectionFilterSettingsState GetDefaultState()",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the factory settings of the application.",
        "since": "7.0"
      },
      {
        "signature": "System.Void RestoreDefaults()",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Commits the default settings as the current settings.",
        "since": "7.0"
      },
      {
        "signature": "System.Void UpdateFromState(SelectionFilterSettingsState state)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Sets all settings to a particular defined joined state.",
        "since": "7.0",
        "parameters": [
          {
            "name": "state",
            "type": "SelectionFilterSettingsState",
            "summary": "The particular state."
          }
        ]
      }
    ]
  },
  {
    "namespace": "Rhino.ApplicationSettings",
    "name": "SelectionFilterSettingsState",
    "dataType": "class",
    "summary": "Represents a snapshot of <b>SelectionFilterSettings</b> .",
    "properties": [
      {
        "signature": "bool Enabled",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Enables or disables the global object selection filter.",
        "since": "7.0",
        "property": ["get", "set"]
      },
      {
        "signature": "ObjectType GlobalGeometryFilter",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "The global geometry type filter controls which types of geometry will be filtered. Note, the filter can be a bitwise combination of multiple object types.",
        "since": "7.0",
        "property": ["get", "set"]
      },
      {
        "signature": "ObjectType OneShotGeometryFilter",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "The one-shot geometry type filter controls which types of geometry will be filtered for one selection. Note, the filter can be a bitwise combination of multiple object types.",
        "since": "7.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool SubObjectSelect",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Enables or disabled sub-object selection.",
        "since": "7.0",
        "property": ["get", "set"]
      }
    ]
  },
  {
    "namespace": "Rhino.ApplicationSettings",
    "name": "ShortcutKey",
    "dataType": "enum",
    "summary": "Shortcut key combinations",
    "since": "5.0",
    "values": [
      {
        "signature": "F1 = 0",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "F1"
      },
      {
        "signature": "F2",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "F2"
      },
      {
        "signature": "F3",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "F3"
      },
      {
        "signature": "F4",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "F4"
      },
      {
        "signature": "F5",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "F5"
      },
      {
        "signature": "F6",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "F6"
      },
      {
        "signature": "F7",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "F7"
      },
      {
        "signature": "F8",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "F8"
      },
      {
        "signature": "F9",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "F9"
      },
      {
        "signature": "F10",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "F10"
      },
      {
        "signature": "F11",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "F11"
      },
      {
        "signature": "F12",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "F12"
      },
      {
        "signature": "CtrlF1",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Ctrl + F1"
      },
      {
        "signature": "CtrlF2",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Ctrl + F2"
      },
      {
        "signature": "CtrlF3",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Ctrl + F3"
      },
      {
        "signature": "CtrlF4",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Ctrl + F4"
      },
      {
        "signature": "CtrlF5",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Ctrl + F5"
      },
      {
        "signature": "CtrlF6",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Ctrl + F6"
      },
      {
        "signature": "CtrlF7",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Ctrl + F7"
      },
      {
        "signature": "CtrlF8",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Ctrl + F8"
      },
      {
        "signature": "CtrlF9",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Ctrl + F9"
      },
      {
        "signature": "CtrlF10",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Ctrl + F10"
      },
      {
        "signature": "CtrlF11",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Ctrl + F11"
      },
      {
        "signature": "CtrlF12",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Ctrl + F12"
      },
      {
        "signature": "ShiftCtrlF1",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Shift + Ctrl + F1"
      },
      {
        "signature": "ShiftCtrlF2",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Shift + Ctrl + F2"
      },
      {
        "signature": "ShiftCtrlF3",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Shift + Ctrl + F3"
      },
      {
        "signature": "ShiftCtrlF4",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Shift + Ctrl + F4"
      },
      {
        "signature": "ShiftCtrlF5",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Shift + Ctrl + F5"
      },
      {
        "signature": "ShiftCtrlF6",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Shift + Ctrl + F6"
      },
      {
        "signature": "ShiftCtrlF7",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Shift + Ctrl + F7"
      },
      {
        "signature": "ShiftCtrlF8",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Shift + Ctrl + F8"
      },
      {
        "signature": "ShiftCtrlF9",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Shift + Ctrl + F9"
      },
      {
        "signature": "ShiftCtrlF10",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Shift + Ctrl + F10"
      },
      {
        "signature": "ShiftCtrlF11",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Shift + Ctrl + F11"
      },
      {
        "signature": "ShiftCtrlF12",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Shift + Ctrl + F12"
      },
      {
        "signature": "AltCtrlF1",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Alt + Ctrl + F1"
      },
      {
        "signature": "AltCtrlF2",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Alt + Ctrl + F2"
      },
      {
        "signature": "AltCtrlF3",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Alt + Ctrl + F3"
      },
      {
        "signature": "AltCtrlF4",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Alt + Ctrl + F4"
      },
      {
        "signature": "AltCtrlF5",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Alt + Ctrl + F5"
      },
      {
        "signature": "AltCtrlF6",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Alt + Ctrl + F6"
      },
      {
        "signature": "AltCtrlF7",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Alt + Ctrl + F7"
      },
      {
        "signature": "AltCtrlF8",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Alt + Ctrl + F8"
      },
      {
        "signature": "AltCtrlF9",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Alt + Ctrl + F9"
      },
      {
        "signature": "AltCtrlF10",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Alt + Ctrl + F10"
      },
      {
        "signature": "AltCtrlF11",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Alt + Ctrl + F11"
      },
      {
        "signature": "AltCtrlF12",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Alt + Ctrl + F12"
      },
      {
        "signature": "CtrlA",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Ctrl + A"
      },
      {
        "signature": "CtrlB",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Ctrl + B"
      },
      {
        "signature": "CtrlC",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Ctrl + C"
      },
      {
        "signature": "CtrlD",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Ctrl + D"
      },
      {
        "signature": "CtrlE",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Ctrl + E"
      },
      {
        "signature": "CtrlF",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Ctrl + F"
      },
      {
        "signature": "CtrlG",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Ctrl + G"
      },
      {
        "signature": "CtrlH",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Ctrl + H"
      },
      {
        "signature": "CtrlI",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Ctrl + I"
      },
      {
        "signature": "CtrlJ",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Ctrl + J"
      },
      {
        "signature": "CtrlK",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Ctrl + K"
      },
      {
        "signature": "CtrlL",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Ctrl + L"
      },
      {
        "signature": "CtrlM",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Ctrl + M"
      },
      {
        "signature": "CtrlN",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Ctrl + N"
      },
      {
        "signature": "CtrlO",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Ctrl + O"
      },
      {
        "signature": "CtrlP",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Ctrl + P"
      },
      {
        "signature": "CtrlQ",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Ctrl + Q"
      },
      {
        "signature": "CtrlR",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Ctrl + R"
      },
      {
        "signature": "CtrlS",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Ctrl + S"
      },
      {
        "signature": "CtrlT",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Ctrl + T"
      },
      {
        "signature": "CtrlU",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Ctrl + U"
      },
      {
        "signature": "CtrlV",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Ctrl + V"
      },
      {
        "signature": "CtrlW",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Ctrl + W"
      },
      {
        "signature": "CtrlX",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Ctrl + X"
      },
      {
        "signature": "CtrlY",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Ctrl + Y"
      },
      {
        "signature": "CtrlZ",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Ctrl + Z"
      },
      {
        "signature": "ShiftCtrlA",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Shift + Ctrl + A"
      },
      {
        "signature": "ShiftCtrlB",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Shift + Ctrl + B"
      },
      {
        "signature": "ShiftCtrlC",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Shift + Ctrl + C"
      },
      {
        "signature": "ShiftCtrlD",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Shift + Ctrl + D"
      },
      {
        "signature": "ShiftCtrlE",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Shift + Ctrl + E"
      },
      {
        "signature": "ShiftCtrlF",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Shift + Ctrl + F"
      },
      {
        "signature": "ShiftCtrlG",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Shift + Ctrl + G"
      },
      {
        "signature": "ShiftCtrlH",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Shift + Ctrl + H"
      },
      {
        "signature": "ShiftCtrlI",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Shift + Ctrl + I"
      },
      {
        "signature": "ShiftCtrlJ",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Shift + Ctrl + J"
      },
      {
        "signature": "ShiftCtrlK",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Shift + Ctrl + K"
      },
      {
        "signature": "ShiftCtrlL",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Shift + Ctrl + L"
      },
      {
        "signature": "ShiftCtrlM",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Shift + Ctrl + M"
      },
      {
        "signature": "ShiftCtrlN",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Shift + Ctrl + N"
      },
      {
        "signature": "ShiftCtrlO",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Shift + Ctrl + O"
      },
      {
        "signature": "ShiftCtrlP",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Shift + Ctrl + P"
      },
      {
        "signature": "ShiftCtrlQ",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Shift + Ctrl + Q"
      },
      {
        "signature": "ShiftCtrlR",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Shift + Ctrl + R"
      },
      {
        "signature": "ShiftCtrlS",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Shift + Ctrl + S"
      },
      {
        "signature": "ShiftCtrlT",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Shift + Ctrl + T"
      },
      {
        "signature": "ShiftCtrlU",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Shift + Ctrl + U"
      },
      {
        "signature": "ShiftCtrlV",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Shift + Ctrl + V"
      },
      {
        "signature": "ShiftCtrlW",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Shift + Ctrl + W"
      },
      {
        "signature": "ShiftCtrlX",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Shift + Ctrl + X"
      },
      {
        "signature": "ShiftCtrlY",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Shift + Ctrl + Y"
      },
      {
        "signature": "ShiftCtrlZ",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Shift + Ctrl + Z"
      },
      {
        "signature": "AltCtrlA",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Alt + Ctrl + A"
      },
      {
        "signature": "AltCtrlB",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Alt + Ctrl + B"
      },
      {
        "signature": "AltCtrlC",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Alt + Ctrl + C"
      },
      {
        "signature": "AltCtrlD",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Alt + Ctrl + D"
      },
      {
        "signature": "AltCtrlE",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Alt + Ctrl + E"
      },
      {
        "signature": "AltCtrlF",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Alt + Ctrl + F"
      },
      {
        "signature": "AltCtrlG",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Alt + Ctrl + G"
      },
      {
        "signature": "AltCtrlH",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Alt + Ctrl + H"
      },
      {
        "signature": "AltCtrlI",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Alt + Ctrl + I"
      },
      {
        "signature": "AltCtrlJ",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Alt + Ctrl + J"
      },
      {
        "signature": "AltCtrlK",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Alt + Ctrl + K"
      },
      {
        "signature": "AltCtrlL",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Alt + Ctrl + L"
      },
      {
        "signature": "AltCtrlM",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Alt + Ctrl + M"
      },
      {
        "signature": "AltCtrlN",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Alt + Ctrl + N"
      },
      {
        "signature": "AltCtrlO",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Alt + Ctrl + O"
      },
      {
        "signature": "AltCtrlP",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Alt + Ctrl + P"
      },
      {
        "signature": "AltCtrlQ",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Alt + Ctrl + Q"
      },
      {
        "signature": "AltCtrlR",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Alt + Ctrl + R"
      },
      {
        "signature": "AltCtrlS",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Alt + Ctrl + S"
      },
      {
        "signature": "AltCtrlT",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Alt + Ctrl + T"
      },
      {
        "signature": "AltCtrlU",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Alt + Ctrl + U"
      },
      {
        "signature": "AltCtrlV",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Alt + Ctrl + V"
      },
      {
        "signature": "AltCtrlW",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Alt + Ctrl + W"
      },
      {
        "signature": "AltCtrlX",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Alt + Ctrl + X"
      },
      {
        "signature": "AltCtrlY",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Alt + Ctrl + Y"
      },
      {
        "signature": "AltCtrlZ",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Alt + Ctrl + Z"
      },
      {
        "signature": "Ctrl0",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Ctrl + 0"
      },
      {
        "signature": "Ctrl1",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Ctrl + 1"
      },
      {
        "signature": "Ctrl2",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Ctrl + 2"
      },
      {
        "signature": "Ctrl3",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Ctrl + 3"
      },
      {
        "signature": "Ctrl4",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Ctrl + 4"
      },
      {
        "signature": "Ctrl5",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Ctrl + 5"
      },
      {
        "signature": "Ctrl6",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Ctrl + 6"
      },
      {
        "signature": "Ctrl7",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Ctrl + 7"
      },
      {
        "signature": "Ctrl8",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Ctrl + 8"
      },
      {
        "signature": "Ctrl9",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Ctrl + 9"
      },
      {
        "signature": "ShiftCtrl0",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Shift + Ctrl + 0"
      },
      {
        "signature": "ShiftCtrl1",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Shift + Ctrl + 1"
      },
      {
        "signature": "ShiftCtrl2",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Shift + Ctrl + 2"
      },
      {
        "signature": "ShiftCtrl3",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Shift + Ctrl + 3"
      },
      {
        "signature": "ShiftCtrl4",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Shift + Ctrl + 4"
      },
      {
        "signature": "ShiftCtrl5",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Shift + Ctrl + 5"
      },
      {
        "signature": "ShiftCtrl6",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Shift + Ctrl + 6"
      },
      {
        "signature": "ShiftCtrl7",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Shift + Ctrl + 7"
      },
      {
        "signature": "ShiftCtrl8",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Shift + Ctrl + 8"
      },
      {
        "signature": "ShiftCtrl9",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Shift + Ctrl + 9"
      },
      {
        "signature": "AltCtrl0",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Alt + Ctrl + 0"
      },
      {
        "signature": "AltCtrl1",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Alt + Ctrl + 1"
      },
      {
        "signature": "AltCtrl2",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Alt + Ctrl + 2"
      },
      {
        "signature": "AltCtrl3",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Alt + Ctrl + 3"
      },
      {
        "signature": "AltCtrl4",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Alt + Ctrl + 4"
      },
      {
        "signature": "AltCtrl5",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Alt + Ctrl + 5"
      },
      {
        "signature": "AltCtrl6",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Alt + Ctrl + 6"
      },
      {
        "signature": "AltCtrl7",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Alt + Ctrl + 7"
      },
      {
        "signature": "AltCtrl8",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Alt + Ctrl + 8"
      },
      {
        "signature": "AltCtrl9",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Alt + Ctrl + 9"
      },
      {
        "signature": "Home",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Home"
      },
      {
        "signature": "End",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "End"
      },
      {
        "signature": "CtrlHome",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Ctrl + Home"
      },
      {
        "signature": "CtrlEnd",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Ctrl + End"
      },
      {
        "signature": "ShiftHome",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Shift + Home"
      },
      {
        "signature": "ShiftEnd",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Shift + End"
      },
      {
        "signature": "ShiftCtrlHome",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Shift + Ctrl + Home"
      },
      {
        "signature": "ShiftCtrlEnd",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Shift + Ctrl + End"
      },
      {
        "signature": "AltCtrlHome",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Alt + Ctrl + Home"
      },
      {
        "signature": "AltCtrlEnd",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Alt + Ctrl + End"
      },
      {
        "signature": "Tab",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Tab"
      },
      {
        "signature": "PageUp",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Page Up"
      },
      {
        "signature": "PageDown",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Page Down"
      },
      {
        "signature": "ShiftPageUp",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Shift + Page Up"
      },
      {
        "signature": "ShiftPageDown",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Shift + Page Down"
      },
      {
        "signature": "CtrlPageUp",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Ctrl + Page Up"
      },
      {
        "signature": "CtrlPageDown",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Ctrl + Page Down"
      },
      {
        "signature": "ShiftCtrlPageUp",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Shift + Ctrl + Page Up"
      },
      {
        "signature": "ShiftCtrlPageDown",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Shift + Ctrl + Page Down"
      },
      {
        "signature": "AltCtrlPageUp",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Alt + Ctrl + Page Up"
      },
      {
        "signature": "AltCtrlPageDown",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Alt + Ctrl + Page Down"
      },
      {
        "signature": "None",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "No shortcut key"
      },
      {
        "signature": "AltHome",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Alt + Home"
      },
      {
        "signature": "AltEnd",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Alt + Home"
      },
      {
        "signature": "AltA",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Alt + A"
      },
      {
        "signature": "AltB",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Alt + B"
      },
      {
        "signature": "AltC",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Alt + C"
      },
      {
        "signature": "AltD",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Alt + D"
      },
      {
        "signature": "AltE",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Alt + E"
      },
      {
        "signature": "AltF",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Alt + F"
      },
      {
        "signature": "AltG",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Alt + G"
      },
      {
        "signature": "AltH",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Alt + H"
      },
      {
        "signature": "AltI",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Alt + I"
      },
      {
        "signature": "AltJ",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Alt + J"
      },
      {
        "signature": "AltK",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Alt + K"
      },
      {
        "signature": "AltL",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Alt + L"
      },
      {
        "signature": "AltM",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Alt + M"
      },
      {
        "signature": "AltN",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Alt + N"
      },
      {
        "signature": "AltO",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Alt + O"
      },
      {
        "signature": "AltP",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Alt + P"
      },
      {
        "signature": "AltQ",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Alt + Q"
      },
      {
        "signature": "AltR",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Alt + R"
      },
      {
        "signature": "AltS",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Alt + S"
      },
      {
        "signature": "AltT",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Alt + T"
      },
      {
        "signature": "AltU",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Alt + U"
      },
      {
        "signature": "AltV",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Alt + V"
      },
      {
        "signature": "AltW",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Alt + W"
      },
      {
        "signature": "AltX",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Alt + X"
      },
      {
        "signature": "AltY",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Alt + Y"
      },
      {
        "signature": "AltZ",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Alt + Z"
      },
      {
        "signature": "Alt0",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Alt + 0"
      },
      {
        "signature": "Alt1",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Alt + 1"
      },
      {
        "signature": "Alt2",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Alt + 2"
      },
      {
        "signature": "Alt3",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Alt + 3"
      },
      {
        "signature": "Alt4",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Alt + 4"
      },
      {
        "signature": "Alt5",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Alt + 5"
      },
      {
        "signature": "Alt6",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Alt + 6"
      },
      {
        "signature": "Alt7",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Alt + 7"
      },
      {
        "signature": "Alt8",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Alt + 8"
      },
      {
        "signature": "Alt9",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Alt + 9"
      },
      {
        "signature": "AltF1",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Alt + F1"
      },
      {
        "signature": "AltF2",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Alt + F2"
      },
      {
        "signature": "AltF3",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Alt + F3"
      },
      {
        "signature": "AltF4",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Alt + F4"
      },
      {
        "signature": "AltF5",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Alt + F5"
      },
      {
        "signature": "AltF6",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Alt + F6"
      },
      {
        "signature": "AltF7",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Alt + F7"
      },
      {
        "signature": "AltF8",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Alt + F8"
      },
      {
        "signature": "AltF9",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Alt + F9"
      },
      {
        "signature": "AltF10",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Alt + F10"
      },
      {
        "signature": "AltF11",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Alt + F11"
      },
      {
        "signature": "AltF12",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Alt + F12"
      },
      {
        "signature": "AltShiftHome",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Alt + Shift + Home"
      },
      {
        "signature": "AltShiftEnd",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Alt + Shift + End"
      },
      {
        "signature": "AltShiftA",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Alt + Shift + A"
      },
      {
        "signature": "AltShiftB",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Alt + Shift + B"
      },
      {
        "signature": "AltShiftC",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Alt + Shift + C"
      },
      {
        "signature": "AltShiftD",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Alt + Shift + D"
      },
      {
        "signature": "AltShiftE",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Alt + Shift + E"
      },
      {
        "signature": "AltShiftF",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Alt + Shift + F"
      },
      {
        "signature": "AltShiftG",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Alt + Shift + G"
      },
      {
        "signature": "AltShiftH",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Alt + Shift + H"
      },
      {
        "signature": "AltShiftI",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Alt + Shift + I"
      },
      {
        "signature": "AltShiftJ",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Alt + Shift + J"
      },
      {
        "signature": "AltShiftK",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Alt + Shift + K"
      },
      {
        "signature": "AltShiftL",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Alt + Shift + L"
      },
      {
        "signature": "AltShiftM",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Alt + Shift + M"
      },
      {
        "signature": "AltShiftN",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Alt + Shift + N"
      },
      {
        "signature": "AltShiftO",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Alt + Shift + O"
      },
      {
        "signature": "AltShiftP",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Alt + Shift + P"
      },
      {
        "signature": "AltShiftQ",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Alt + Shift + Q"
      },
      {
        "signature": "AltShiftR",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Alt + Shift + R"
      },
      {
        "signature": "AltShiftS",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Alt + Shift + S"
      },
      {
        "signature": "AltShiftT",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Alt + Shift + T"
      },
      {
        "signature": "AltShiftU",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Alt + Shift + U"
      },
      {
        "signature": "AltShiftV",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Alt + Shift + V"
      },
      {
        "signature": "AltShiftW",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Alt + Shift + W"
      },
      {
        "signature": "AltShiftX",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Alt + Shift + X"
      },
      {
        "signature": "AltShiftY",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Alt + Shift + Y"
      },
      {
        "signature": "AltShiftZ",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Alt + Shift + Z"
      },
      {
        "signature": "AltShift0",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Alt + Shift + 0"
      },
      {
        "signature": "AltShift1",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Alt + Shift + 1"
      },
      {
        "signature": "AltShift2",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Alt + Shift + 2"
      },
      {
        "signature": "AltShift3",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Alt + Shift + 3"
      },
      {
        "signature": "AltShift4",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Alt + Shift + 4"
      },
      {
        "signature": "AltShift5",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Alt + Shift + 5"
      },
      {
        "signature": "AltShift6",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Alt + Shift + 6"
      },
      {
        "signature": "AltShift7",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Alt + Shift + 7"
      },
      {
        "signature": "AltShift8",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Alt + Shift + 8"
      },
      {
        "signature": "AltShift9",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Alt + Shift + 9"
      },
      {
        "signature": "AltShiftF1",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Alt + Shift + F1"
      },
      {
        "signature": "AltShiftF2",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Alt + Shift + F2"
      },
      {
        "signature": "AltShiftF3",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Alt + Shift + F3"
      },
      {
        "signature": "AltShiftF4",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Alt + Shift + F4"
      },
      {
        "signature": "AltShiftF5",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Alt + Shift + F5"
      },
      {
        "signature": "AltShiftF6",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Alt + Shift + F6"
      },
      {
        "signature": "AltShiftF7",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Alt + Shift + F7"
      },
      {
        "signature": "AltShiftF8",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Alt + Shift + F8"
      },
      {
        "signature": "AltShiftF9",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Alt + Shift + F9"
      },
      {
        "signature": "AltShiftF10",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Alt + Shift + F10"
      },
      {
        "signature": "AltShiftF11",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Alt + Shift + F11"
      },
      {
        "signature": "AltShiftF12",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Alt + Shift + F12"
      },
      {
        "signature": "MacControlHome",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Control + Home (Mac)"
      },
      {
        "signature": "MacControlEnd",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Control + End (Mac)"
      },
      {
        "signature": "MacControlA",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Control + A (Mac)"
      },
      {
        "signature": "MacControlB",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Control + B (Mac)"
      },
      {
        "signature": "MacControlC",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Control + C (Mac)"
      },
      {
        "signature": "MacControlD",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Control + D (Mac)"
      },
      {
        "signature": "MacControlE",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Control + E (Mac)"
      },
      {
        "signature": "MacControlF",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Control + F (Mac)"
      },
      {
        "signature": "MacControlG",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Control + G (Mac)"
      },
      {
        "signature": "MacControlH",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Control + H (Mac)"
      },
      {
        "signature": "MacControlI",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Control + I (Mac)"
      },
      {
        "signature": "MacControlJ",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Control + J (Mac)"
      },
      {
        "signature": "MacControlK",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Control + K (Mac)"
      },
      {
        "signature": "MacControlL",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Control + L (Mac)"
      },
      {
        "signature": "MacControlM",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Control + M (Mac)"
      },
      {
        "signature": "MacControlN",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Control + N (Mac)"
      },
      {
        "signature": "MacControlO",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Control + O (Mac)"
      },
      {
        "signature": "MacControlP",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Control + P (Mac)"
      },
      {
        "signature": "MacControlQ",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Control + Q (Mac)"
      },
      {
        "signature": "MacControlR",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Control + R (Mac)"
      },
      {
        "signature": "MacControlS",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Control + S (Mac)"
      },
      {
        "signature": "MacControlT",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Control + T (Mac)"
      },
      {
        "signature": "MacControlU",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Control + U (Mac)"
      },
      {
        "signature": "MacControlV",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Control + V (Mac)"
      },
      {
        "signature": "MacControlW",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Control + W (Mac)"
      },
      {
        "signature": "MacControlX",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Control + X (Mac)"
      },
      {
        "signature": "MacControlY",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Control + Y (Mac)"
      },
      {
        "signature": "MacControlZ",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Control + Z (Mac)"
      },
      {
        "signature": "MacControl0",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Control + 0 (Mac)"
      },
      {
        "signature": "MacControl1",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Control + 1 (Mac)"
      },
      {
        "signature": "MacControl2",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Control + 2 (Mac)"
      },
      {
        "signature": "MacControl3",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Control + 3 (Mac)"
      },
      {
        "signature": "MacControl4",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Control + 4 (Mac)"
      },
      {
        "signature": "MacControl5",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Control + 5 (Mac)"
      },
      {
        "signature": "MacControl6",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Control + 6 (Mac)"
      },
      {
        "signature": "MacControl7",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Control + 7 (Mac)"
      },
      {
        "signature": "MacControl8",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Control + 8 (Mac)"
      },
      {
        "signature": "MacControl9",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Control + 9 (Mac)"
      },
      {
        "signature": "MacControlF1",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Control + F1 (Mac)"
      },
      {
        "signature": "MacControlF2",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Control + F2 (Mac)"
      },
      {
        "signature": "MacControlF3",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Control + F3 (Mac)"
      },
      {
        "signature": "MacControlF4",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Control + F4 (Mac)"
      },
      {
        "signature": "MacControlF5",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Control + F5 (Mac)"
      },
      {
        "signature": "MacControlF6",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Control + F6 (Mac)"
      },
      {
        "signature": "MacControlF7",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Control + F7 (Mac)"
      },
      {
        "signature": "MacControlF8",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Control + F8 (Mac)"
      },
      {
        "signature": "MacControlF9",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Control + F9 (Mac)"
      },
      {
        "signature": "MacControlF10",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Control + F10 (Mac)"
      },
      {
        "signature": "MacControlF11",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Control + F11 (Mac)"
      },
      {
        "signature": "MacControlF12",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Control + F12 (Mac)"
      },
      {
        "signature": "MacControlAltHome",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Control + Alt + Home (Mac)"
      },
      {
        "signature": "MacControlAltEnd",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Control + Alt + End (Mac)"
      },
      {
        "signature": "MacControlAltA",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Control + Alt + A (Mac)"
      },
      {
        "signature": "MacControlAltB",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Control + Alt + B (Mac)"
      },
      {
        "signature": "MacControlAltC",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Control + Alt + C (Mac)"
      },
      {
        "signature": "MacControlAltD",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Control + Alt + D (Mac)"
      },
      {
        "signature": "MacControlAltE",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Control + Alt + E (Mac)"
      },
      {
        "signature": "MacControlAltF",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Control + Alt + F (Mac)"
      },
      {
        "signature": "MacControlAltG",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Control + Alt + G (Mac)"
      },
      {
        "signature": "MacControlAltH",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Control + Alt + H (Mac)"
      },
      {
        "signature": "MacControlAltI",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Control + Alt + I (Mac)"
      },
      {
        "signature": "MacControlAltJ",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Control + Alt + J (Mac)"
      },
      {
        "signature": "MacControlAltK",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Control + Alt + K (Mac)"
      },
      {
        "signature": "MacControlAltL",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Control + Alt + L (Mac)"
      },
      {
        "signature": "MacControlAltM",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Control + Alt + M (Mac)"
      },
      {
        "signature": "MacControlAltN",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Control + Alt + N (Mac)"
      },
      {
        "signature": "MacControlAltO",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Control + Alt + O (Mac)"
      },
      {
        "signature": "MacControlAltP",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Control + Alt + P (Mac)"
      },
      {
        "signature": "MacControlAltQ",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Control + Alt + Q (Mac)"
      },
      {
        "signature": "MacControlAltR",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Control + Alt + R (Mac)"
      },
      {
        "signature": "MacControlAltS",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Control + Alt + S (Mac)"
      },
      {
        "signature": "MacControlAltT",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Control + Alt + T (Mac)"
      },
      {
        "signature": "MacControlAltU",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Control + Alt + U (Mac)"
      },
      {
        "signature": "MacControlAltV",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Control + Alt + Alt + V (Mac)"
      },
      {
        "signature": "MacControlAltW",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Control + Alt + W (Mac)"
      },
      {
        "signature": "MacControlAltX",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Control + Alt + X (Mac)"
      },
      {
        "signature": "MacControlAltY",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Control + Alt + Y (Mac)"
      },
      {
        "signature": "MacControlAltZ",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Control + Alt + Z (Mac)"
      },
      {
        "signature": "MacControlAlt0",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Control + Alt + 0 (Mac)"
      },
      {
        "signature": "MacControlAlt1",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Control + Alt + 1 (Mac)"
      },
      {
        "signature": "MacControlAlt2",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Control + Alt + 2 (Mac)"
      },
      {
        "signature": "MacControlAlt3",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Control + Alt + 3 (Mac)"
      },
      {
        "signature": "MacControlAlt4",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Control + Alt + 4 (Mac)"
      },
      {
        "signature": "MacControlAlt5",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Control + Alt + 5 (Mac)"
      },
      {
        "signature": "MacControlAlt6",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Control + Alt + 6 (Mac)"
      },
      {
        "signature": "MacControlAlt7",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Control + Alt + 7 (Mac)"
      },
      {
        "signature": "MacControlAlt8",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Control + Alt + 8 (Mac)"
      },
      {
        "signature": "MacControlAlt9",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Control + Alt + 9 (Mac)"
      },
      {
        "signature": "MacControlAltF1",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Control + Alt + F1 (Mac)"
      },
      {
        "signature": "MacControlAltF2",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Control + Alt + F2 (Mac)"
      },
      {
        "signature": "MacControlAltF3",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Control + Alt + F3 (Mac)"
      },
      {
        "signature": "MacControlAltF4",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Control + Alt + F4 (Mac)"
      },
      {
        "signature": "MacControlAltF5",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Control + Alt + F5 (Mac)"
      },
      {
        "signature": "MacControlAltF6",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Control + Alt + F6 (Mac)"
      },
      {
        "signature": "MacControlAltF7",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Control + Alt + F7 (Mac)"
      },
      {
        "signature": "MacControlAltF8",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Control + Alt + F8 (Mac)"
      },
      {
        "signature": "MacControlAltF9",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Control + Alt + F9 (Mac)"
      },
      {
        "signature": "MacControlAltF10",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Control + Alt + F10 (Mac)"
      },
      {
        "signature": "MacControlAltF11",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Control + Alt + F11 (Mac)"
      },
      {
        "signature": "MacControlAltF12",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Control + Alt + F12 (Mac)"
      },
      {
        "signature": "MacControlOptionHome",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Control + Option + Home (Mac)"
      },
      {
        "signature": "MacControlOptionEnd",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Control + Option + End (Mac)"
      },
      {
        "signature": "MacControlOptionA",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Control + Option + A (Mac)"
      },
      {
        "signature": "MacControlOptionB",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Control + Option + B (Mac)"
      },
      {
        "signature": "MacControlOptionC",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Control + Option + C (Mac)"
      },
      {
        "signature": "MacControlOptionD",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Control + Option + D (Mac)"
      },
      {
        "signature": "MacControlOptionE",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Control + Option + E (Mac)"
      },
      {
        "signature": "MacControlOptionF",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Control + Option + F (Mac)"
      },
      {
        "signature": "MacControlOptionG",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Control + Option + G (Mac)"
      },
      {
        "signature": "MacControlOptionH",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Control + Option + H (Mac)"
      },
      {
        "signature": "MacControlOptionI",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Control + Option + I (Mac)"
      },
      {
        "signature": "MacControlOptionJ",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Control + Option + J (Mac)"
      },
      {
        "signature": "MacControlOptionK",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Control + Option + K (Mac)"
      },
      {
        "signature": "MacControlOptionL",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Control + Option + L (Mac)"
      },
      {
        "signature": "MacControlOptionM",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Control + Option + M (Mac)"
      },
      {
        "signature": "MacControlOptionN",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Control + Option + N (Mac)"
      },
      {
        "signature": "MacControlOptionO",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Control + Option + O (Mac)"
      },
      {
        "signature": "MacControlOptionP",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Control + Option + P (Mac)"
      },
      {
        "signature": "MacControlOptionQ",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Control + Option + Q (Mac)"
      },
      {
        "signature": "MacControlOptionR",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Control + Option + R (Mac)"
      },
      {
        "signature": "MacControlOptionS",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Control + Option + S (Mac)"
      },
      {
        "signature": "MacControlOptionT",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Control + Option + T (Mac)"
      },
      {
        "signature": "MacControlOptionU",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Control + Option + U (Mac)"
      },
      {
        "signature": "MacControlOptionV",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Control + Option + V (Mac)"
      },
      {
        "signature": "MacControlOptionW",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Control + Option + W (Mac)"
      },
      {
        "signature": "MacControlOptionX",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Control + Option + X (Mac)"
      },
      {
        "signature": "MacControlOptionY",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Control + Option + Y (Mac)"
      },
      {
        "signature": "MacControlOptionZ",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Control + Option + Z (Mac)"
      },
      {
        "signature": "MacControlOption0",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Control + Option + 0 (Mac)"
      },
      {
        "signature": "MacControlOption1",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Control + Option + 1 (Mac)"
      },
      {
        "signature": "MacControlOption2",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Control + Option + 2 (Mac)"
      },
      {
        "signature": "MacControlOption3",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Control + Option + 3 (Mac)"
      },
      {
        "signature": "MacControlOption4",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Control + Option + 4 (Mac)"
      },
      {
        "signature": "MacControlOption5",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Control + Option + 5 (Mac)"
      },
      {
        "signature": "MacControlOption6",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Control + Option + 6 (Mac)"
      },
      {
        "signature": "MacControlOption7",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Control + Option + 7 (Mac)"
      },
      {
        "signature": "MacControlOption8",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Control + Option + 8 (Mac)"
      },
      {
        "signature": "MacControlOption9",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Control + Option + 9 (Mac)"
      },
      {
        "signature": "MacControlOptionF1",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Control + Option + F1 (Mac)"
      },
      {
        "signature": "MacControlOptionF2",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Control + Option + F2 (Mac)"
      },
      {
        "signature": "MacControlOptionF3",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Control + Option + F3 (Mac)"
      },
      {
        "signature": "MacControlOptionF4",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Control + Option + F4 (Mac)"
      },
      {
        "signature": "MacControlOptionF5",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Control + Option + F5 (Mac)"
      },
      {
        "signature": "MacControlOptionF6",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Control + Option + F6 (Mac)"
      },
      {
        "signature": "MacControlOptionF7",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Control + Option + F7 (Mac)"
      },
      {
        "signature": "MacControlOptionF8",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Control + Option + F8 (Mac)"
      },
      {
        "signature": "MacControlOptionF9",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Control + Option + F9 (Mac)"
      },
      {
        "signature": "MacControlOptionF10",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Control + Option + F10 (Mac)"
      },
      {
        "signature": "MacControlOptionF11",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Control + Option + F11 (Mac)"
      },
      {
        "signature": "MacControlOptionF12",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Control + Option + F12 (Mac)"
      },
      {
        "signature": "MacControlShiftHome",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Control + Shift + Home (Mac)"
      },
      {
        "signature": "MacControlShiftEnd",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Control + Shift + End (Mac)"
      },
      {
        "signature": "MacControlShiftA",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Control + Shift + A (Mac)"
      },
      {
        "signature": "MacControlShiftB",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Control + Shift + B (Mac)"
      },
      {
        "signature": "MacControlShiftC",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Control + Shift + C (Mac)"
      },
      {
        "signature": "MacControlShiftD",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Control + Shift + D (Mac)"
      },
      {
        "signature": "MacControlShiftE",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Control + Shift + E (Mac)"
      },
      {
        "signature": "MacControlShiftF",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Control + Shift + F (Mac)"
      },
      {
        "signature": "MacControlShiftG",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Control + Shift + G (Mac)"
      },
      {
        "signature": "MacControlShiftH",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Control + Shift + H (Mac)"
      },
      {
        "signature": "MacControlShiftI",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Control + Shift + I (Mac)"
      },
      {
        "signature": "MacControlShiftJ",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Control + Shift + J (Mac)"
      },
      {
        "signature": "MacControlShiftK",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Control + Shift + K (Mac)"
      },
      {
        "signature": "MacControlShiftL",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Control + Shift + L (Mac)"
      },
      {
        "signature": "MacControlShiftM",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Control + Shift + M (Mac)"
      },
      {
        "signature": "MacControlShiftN",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Control + Shift + N (Mac)"
      },
      {
        "signature": "MacControlShiftO",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Control + Shift + O (Mac)"
      },
      {
        "signature": "MacControlShiftP",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Control + Shift + P (Mac)"
      },
      {
        "signature": "MacControlShiftQ",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Control + Shift + Q (Mac)"
      },
      {
        "signature": "MacControlShiftR",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Control + Shift + R (Mac)"
      },
      {
        "signature": "MacControlShiftS",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Control + Shift + S (Mac)"
      },
      {
        "signature": "MacControlShiftT",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Control + Shift + T (Mac)"
      },
      {
        "signature": "MacControlShiftU",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Control + Shift + U (Mac)"
      },
      {
        "signature": "MacControlShiftV",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Control + Shift + V (Mac)"
      },
      {
        "signature": "MacControlShiftW",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Control + Shift + W (Mac)"
      },
      {
        "signature": "MacControlShiftX",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Control + Shift + X (Mac)"
      },
      {
        "signature": "MacControlShiftY",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Control + Shift + Y (Mac)"
      },
      {
        "signature": "MacControlShiftZ",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Control + Shift + Z (Mac)"
      },
      {
        "signature": "MacControlShift0",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Control + Shift + 0 (Mac)"
      },
      {
        "signature": "MacControlShift1",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Control + Shift + 1 (Mac)"
      },
      {
        "signature": "MacControlShift2",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Control + Shift + 2 (Mac)"
      },
      {
        "signature": "MacControlShift3",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Control + Shift + 3 (Mac)"
      },
      {
        "signature": "MacControlShift4",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Control + Shift + 4 (Mac)"
      },
      {
        "signature": "MacControlShift5",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Control + Shift + 5 (Mac)"
      },
      {
        "signature": "MacControlShift6",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Control + Shift + 6 (Mac)"
      },
      {
        "signature": "MacControlShift7",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Control + Shift + 7 (Mac)"
      },
      {
        "signature": "MacControlShift8",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Control + Shift + 8 (Mac)"
      },
      {
        "signature": "MacControlShift9",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Control + Shift + 9 (Mac)"
      },
      {
        "signature": "MacControlShiftF1",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Control + Shift + F1 (Mac)"
      },
      {
        "signature": "MacControlShiftF2",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Control + Shift + F2 (Mac)"
      },
      {
        "signature": "MacControlShiftF3",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Control + Shift + F3 (Mac)"
      },
      {
        "signature": "MacControlShiftF4",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Control + Shift + F4 (Mac)"
      },
      {
        "signature": "MacControlShiftF5",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Control + Shift + F5 (Mac)"
      },
      {
        "signature": "MacControlShiftF6",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Control + Shift + F6 (Mac)"
      },
      {
        "signature": "MacControlShiftF7",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Control + Shift + F7 (Mac)"
      },
      {
        "signature": "MacControlShiftF8",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Control + Shift + F8 (Mac)"
      },
      {
        "signature": "MacControlShiftF9",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Control + Shift + F9 (Mac)"
      },
      {
        "signature": "MacControlShiftF10",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Control + Shift + F10 (Mac)"
      },
      {
        "signature": "MacControlShiftF11",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Control + Shift + F11 (Mac)"
      },
      {
        "signature": "MacControlShiftF12",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Control + Shift + F12 (Mac)"
      },
      {
        "signature": "CtrlPlus",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Ctrl/Command + Plus"
      },
      {
        "signature": "CtrlMinus",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Ctrl/Command + Minus"
      }
    ]

  },
  {
    "namespace": "Rhino.ApplicationSettings",
    "name": "ShortcutKeySettings",
    "dataType": "class",
    "summary": "Contains static methods and properties to control keyboard shortcut keys",
    "constructors": [
      {
        "signature": "ShortcutKeySettings()",
        "summary": "Initializes a new instance of the ShortcutKeySettings class"
      }
    ],
    "methods": [
      {
        "signature": "KeyboardShortcut[] GetDefaults()",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Get all the default shortcuts registered with Rhino",
        "since": "8.13"
      },
      {
        "signature": "System.String GetLabel(ShortcutKey key)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Get the macro label associated with a given keyboard shortcut",
        "since": "8.0"
      },
      {
        "signature": "System.String GetMacro(ShortcutKey key)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Get macro associated with a given keyboard shortcut",
        "since": "5.0"
      },
      {
        "signature": "KeyboardShortcut[] GetShortcuts()",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Get all shortcuts registered with Rhino",
        "since": "8.12"
      },
      {
        "signature": "System.Boolean IsAcceptableKeyCombo(Rhino.UI.KeyboardKey key, Rhino.UI.ModifierKey modifier)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Is a key plus modifier combination one that can be used with Rhino",
        "since": "8.12"
      },
      {
        "signature": "System.Void SetMacro(Rhino.UI.KeyboardKey key, Rhino.UI.ModifierKey modifier, System.String macro)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Set a macro for a given key and modifier combination",
        "since": "8.12"
      },
      {
        "signature": "System.Void SetMacro(ShortcutKey key, System.String macro)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Set macro associated with a keyboard shortcut",
        "since": "5.0"
      },
      {
        "signature": "System.Void Update(IEnumerable<KeyboardShortcut> shortcuts, System.Boolean replaceAll)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Add or modify shortcuts with a list or KeyboardShortcut elements",
        "since": "8.12"
      }
    ]
  },
  {
    "namespace": "Rhino.ApplicationSettings",
    "name": "SmartTrackSettings",
    "dataType": "class",
    "summary": "Contains static methods and properties that target the Smart Track feature behavior.",
    "constructors": [
      {
        "signature": "SmartTrackSettings()",
        "summary": "Initializes a new instance of the SmartTrackSettings class"
      }
    ],
    "properties": [
      {
        "signature": "int ActivationDelayMilliseconds",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the activation delay in milliseconds.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "Color ActivePointColor",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the active point color.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "Color GuideColor",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the active guide color.",
        "since": "8.21",
        "property": ["get", "set"]
      },
      {
        "signature": "Color LineColor",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the smart track line color.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool MarkerSmartPoint",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "TODO - Figure out what this does.",
        "since": "9.0",
        "property": ["get", "set"]
      },
      {
        "signature": "int MaxSmartPoints",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the maximum number of smart points.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool Parallels",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Turns on and off the ability to draw parallel tracking lines.",
        "since": "9.0",
        "property": ["get", "set"]
      },
      {
        "signature": "Color PointColor",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the point color.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool SemiPermanentPoints",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Toggles the retaining of captured points for the duration of a command as opposed to discarding them after each mouse click. For example, when you use the Copy command, clicking the mouse to place an object does not clear the existing smart points.",
        "since": "9.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool ShowMultipleTypes",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "TODO - Figure out what this does.",
        "since": "9.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool SmartBasePoint",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "See Implied from. When a single Smart point is active, you will see the cursor tooltip with a distance.You can either type a distance or enter relative coordinates (e.g. @10,5) to place a point relative to the active smart point.",
        "since": "9.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool SmartOrtho",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets a value indicating if the 'Smart Ortho' feature is active.  \nOrthogonal lines are then drawn automatically.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool SmartPointAtCPlaneOrigin",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "The active viewport construction plane origin is automatically tagged as a smart point, making it possible to snap to it, and snap to ortho lines radiating from it.",
        "since": "9.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool SmartSuppress",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "TODO - Figure out what this does.",
        "since": "9.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool SmartTangents",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets a value indicating if the 'Smart Tangents' feature is active.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool StrongOrtho",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "TODO - Figure out what this does.",
        "since": "9.0",
        "property": ["get", "set"]
      },
      {
        "signature": "Color TanPerpLineColor",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the tangent and perpendicular line color.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool UseDottedLines",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets a value indicating if lines are drawn dotted.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool UseSmartTrack",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets if the Smart Track feature is active.",
        "since": "5.0",
        "property": ["get", "set"]
      }
    ],
    "methods": [
      {
        "signature": "SmartTrackSettingsState GetCurrentState()",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the current settings.",
        "since": "5.0",
        "returns": "A new Smart Track state with current settings."
      },
      {
        "signature": "SmartTrackSettingsState GetDefaultState()",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the Smart Track factory settings.",
        "since": "5.0",
        "returns": "A new Smart Track state with factory settings."
      },
      {
        "signature": "System.Void UpdateFromState(SmartTrackSettingsState state)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Updates from a particular setting state.",
        "since": "5.0",
        "parameters": [
          {
            "name": "state",
            "type": "SmartTrackSettingsState",
            "summary": "The new state that will be set."
          }
        ]
      }
    ]
  },
  {
    "namespace": "Rhino.ApplicationSettings",
    "name": "SmartTrackSettingsState",
    "dataType": "class",
    "summary": "Represents a snapshot of <b>SmartTrackSettings</b> .",
    "properties": [
      {
        "signature": "int ActivationDelayMilliseconds",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the activation delay in milliseconds.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "Color ActivePointColor",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the active point color.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "Color GuideColor",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the active guide color",
        "since": "8.21",
        "property": ["get", "set"]
      },
      {
        "signature": "Color LineColor",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the smart track line color.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool MarkerSmartPoint",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "TODO - Figure out what this does.",
        "since": "9.0",
        "property": ["get", "set"]
      },
      {
        "signature": "int MaxSmartPoints",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the maximum number of smart points.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool Parallels",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Turns on and off the ability to draw parallel tracking lines.",
        "since": "9.0",
        "property": ["get", "set"]
      },
      {
        "signature": "Color PointColor",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the point color.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool SemiPermanentPoints",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Toggles the retaining of captured points for the duration of a command as opposed to discarding them after each mouse click. For example, when you use the Copy command, clicking the mouse to place an object does not clear the existing smart points.",
        "since": "9.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool ShowMultipleTypes",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "TODO - Figure out what this does.",
        "since": "9.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool SmartBasePoint",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "See Implied from. When a single Smart point is active, you will see the cursor tooltip with a distance.You can either type a distance or enter relative coordinates (e.g. @10,5) to place a point relative to the active smart point.",
        "since": "9.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool SmartOrtho",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets a value indicating if the 'Smart Ortho' feature is active.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool SmartPointAtCPlaneOrigin",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "The active viewport construction plane origin is automatically tagged as a smart point, making it possible to snap to it, and snap to ortho lines radiating from it.",
        "since": "9.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool SmartSuppress",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "TODO - Figure out what this does.",
        "since": "9.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool SmartTangents",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets a value indicating if the 'Smart Tangents' feature is active.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool StrongOrtho",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "TODO - Figure out what this does.",
        "since": "9.0",
        "property": ["get", "set"]
      },
      {
        "signature": "Color TanPerpLineColor",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the tangent and perpendicular line color.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool UseDottedLines",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets a value indicating if lines are drawn dotted.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool UseSmartTrack",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets if the 'smart track' feature is active.",
        "since": "5.0",
        "property": ["get", "set"]
      }
    ]
  },
  {
    "namespace": "Rhino.ApplicationSettings",
    "name": "SoftTransformSettings",
    "dataType": "class",
    "summary": "Contains static methods and properties to modify soft transform settings",
    "constructors": [
      {
        "signature": "SoftTransformSettings()",
        "summary": "Initializes a new instance of the SoftTransformSettings class"
      }
    ],
    "properties": [
      {
        "signature": "int CvCountU",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Controls the number of control vertices affected by soft transform for surfaces in the U direction.",
        "since": "9.0",
        "property": ["get", "set"]
      },
      {
        "signature": "int CvCountV",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Controls the number of control vertices affected by soft transform for surfaces in the V direction.",
        "since": "9.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool Enabled",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "When enabled other unselected components on an object will be moved during a transformation within the specified radius according to the falloff shape.",
        "since": "9.0",
        "property": ["get", "set"]
      },
      {
        "signature": "Color FalloffColor",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Controls the color used to shade meshes and edges when an object is affected by soft transform.",
        "since": "9.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool MeasureDistanceAlong",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "When True the distance for components affected by soft transform is calculated along the object. Otherwise world distance is used.",
        "since": "9.0",
        "property": ["get", "set"]
      },
      {
        "signature": "double Radius",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "The radius of effect for soft transform. Other components on the object this distance and closer to selected components will be transformed.",
        "since": "9.0",
        "property": ["get", "set"]
      },
      {
        "signature": "int Shape",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "The shape of the falloff curve. 0 = Smooth 1 = Linear 2 = Round 3 = Sharp",
        "since": "9.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool ShowConstraintWidgets",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Enables or disables constraint widgets on the edges of surfaces when points are on.",
        "since": "9.0",
        "property": ["get", "set"]
      }
    ]
  },
  {
    "namespace": "Rhino.ApplicationSettings",
    "name": "ThicknessAnalysisSettings",
    "dataType": "class",
    "summary": "Contains static methods and properties to modify Zebra analysis-related commands.",
    "since": "9.0",
    "constructors": [
      {
        "signature": "ThicknessAnalysisSettings()",
        "summary": "Initializes a new instance of the ThicknessAnalysisSettings class"
      }
    ],
    "properties": [
      {
        "signature": "Interval DistanceRange",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "The distance range.",
        "since": "9.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool ShowIsoCurves",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Get or sets the display of surface isocurves.",
        "since": "9.0",
        "property": ["get", "set"]
      }
    ],
    "methods": [
      {
        "signature": "ThicknessAnalysisSettingsState GetCurrentState()",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the current settings of the application.",
        "since": "9.0"
      },
      {
        "signature": "ThicknessAnalysisSettingsState GetDefaultState()",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the factory settings of the application.",
        "since": "9.0"
      },
      {
        "signature": "System.Void RestoreDefaults()",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Commits the default settings as the current settings.",
        "since": "9.0"
      },
      {
        "signature": "System.Void UpdateFromState(ThicknessAnalysisSettingsState state)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Sets all settings to a particular defined joined state.",
        "since": "9.0",
        "parameters": [
          {
            "name": "state",
            "type": "ThicknessAnalysisSettingsState",
            "summary": "The particular state."
          }
        ]
      }
    ]
  },
  {
    "namespace": "Rhino.ApplicationSettings",
    "name": "ThicknessAnalysisSettingsState",
    "dataType": "class",
    "summary": "Represents a snapshot of <b>ThicknessAnalysisSettings</b> .",
    "since": "9.0",
    "properties": [
      {
        "signature": "Interval DistanceRange",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "The distance range.",
        "since": "9.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool ShowIsoCurves",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Get or sets the display of surface isocurves.",
        "since": "9.0",
        "property": ["get", "set"]
      }
    ]
  },
  {
    "namespace": "Rhino.ApplicationSettings",
    "name": "ViewSettings",
    "dataType": "class",
    "summary": "Contains static methods and properties to control view settings.",
    "constructors": [
      {
        "signature": "ViewSettings()",
        "summary": "Initializes a new instance of the ViewSettings class"
      }
    ],
    "properties": [
      {
        "signature": "bool AlwaysPanParallelViews",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the 'always pan parallel views' value.  \nIf the view is not looking straight at the construction plane, then     sets parallel viewports so they will not rotate.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool AutoAdjustTargetDepth",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the 'Auto adjust camera target after Pan and Zoom' value.",
        "since": "8.19",
        "property": ["get", "set"]
      },
      {
        "signature": "bool DefinedViewSetClippingPlanes",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the 'Named views set clipping planes' value.",
        "since": "8.19",
        "property": ["get", "set"]
      },
      {
        "signature": "bool DefinedViewSetCPlane",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the 'Named views set CPlane' value.  \nWhen true, restoring a named view causes the construction plane saved with that view to also restore.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool DefinedViewSetDisplayMode",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the 'Named views set display mode' value.",
        "since": "8.19",
        "property": ["get", "set"]
      },
      {
        "signature": "bool DefinedViewSetProjection",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the 'Named views set projection' value.  \nWhen true, restoring a named view causes the viewport projection saved with the view to also restore.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool LinkedViewports",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the 'linked views' activated setting.  \nTrue enables real-time view synchronization.     When a standard view is manipulated, the camera lens length of all parallel projection     viewports are set to match the current viewport.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool PanPlanParallelViewsWithControlShiftRMB",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the 'Pan plan parallel views with Control+Shift+RMB' value.",
        "since": "8.19",
        "property": ["get", "set"]
      },
      {
        "signature": "bool PanReverseKeyboardAction",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets if panning with the keyboard is reversed.  \nfalse, then Rhino pans the camera in the direction of the arrow key you press.     true, then Rhino pans the scene instead.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "double PanScreenFraction",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the faction used as multiplier to pan the screen.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "int RotateCircleIncrement",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the rotation increment.  \nWhen the user rotates a view with the keyboard, Rhino rotates the view in steps.     The usual step is 1/60th of a circle, which equals six degrees.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool RotateReverseKeyboard",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the rotation direction.  \nIf true, then Rhino rotates the camera around the scene, otherwise, rotates the scene itself.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool RotateToView",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the rotation reference.  \nIf true, then the views rotates relative to the view axes; false, than relative to the world x, y, and z axes.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool RotateViewAroundAutogumball",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the 'Rotate view around auto gumball' value.",
        "since": "8.19",
        "property": ["get", "set"]
      },
      {
        "signature": "bool RotateViewAroundObjectAtMouseCursor",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the 'Rotate view around object at mouse cursor' value.",
        "since": "8.19",
        "property": ["get", "set"]
      },
      {
        "signature": "bool SingleClickMaximize",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the 'single-click maximize' value.  \nWhen true, maximizing a viewport needs a single click on the viewport title rather than a double-click.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "double ThreePointPerspectiveLensLength",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the three point perspective lens length. The default is 50mm.",
        "since": "8.20",
        "property": ["get"]
      },
      {
        "signature": "double TwoPointPerspectiveLensLength",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the two point perspective lens length. The default is 20mm.",
        "since": "8.20",
        "property": ["get"]
      },
      {
        "signature": "ViewRotationStyle ViewRotation",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the view rotation value.",
        "since": "8.1",
        "property": ["get", "set"]
      },
      {
        "signature": "double ZoomExtentsParallelViewBorder",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Border amount to apply to parallel viewport during zoom extents",
        "since": "6.3",
        "property": ["get", "set"]
      },
      {
        "signature": "double ZoomExtentsPerspectiveViewBorder",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Border amount to apply to perspective viewport during zoom extents",
        "since": "6.3",
        "property": ["get", "set"]
      },
      {
        "signature": "double ZoomScale",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the step size for zooming with a wheeled mouse or the Page Up and Page Down keys.",
        "since": "5.0",
        "property": ["get", "set"]
      }
    ],
    "methods": [
      {
        "signature": "ViewSettingsState GetCurrentState()",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the current settings.",
        "since": "5.0",
        "returns": "A new view state with current settings."
      },
      {
        "signature": "ViewSettingsState GetDefaultState()",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the view factory settings.",
        "since": "5.0",
        "returns": "A new view state with factory settings."
      },
      {
        "signature": "System.Void RestoreDefaults()",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Updates from the default setting state.",
        "since": "5.0"
      },
      {
        "signature": "System.Void UpdateFromState(ViewSettingsState state)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Updates from a particular setting state.",
        "since": "5.0",
        "parameters": [
          {
            "name": "state",
            "type": "ViewSettingsState",
            "summary": "The new state that will be set."
          }
        ]
      }
    ]
  },
  {
    "namespace": "Rhino.ApplicationSettings",
    "name": "ViewSettings.ViewRotationStyle",
    "dataType": "enum",
    "summary": "View rotation styles.",
    "since": "8.1",
    "values": [
      {
        "signature": "RotateAroundWorldAxes = 0",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Makes the view rotate relative to the world axes. You can use the tilt keys to rotate the view around the view depth axis."
      },
      {
        "signature": "RotateRelativeToView = 1",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Makes the view rotate relative to the view axes rather than the model x, y, and z axes."
      },
      {
        "signature": "RotateRelativeToViewV2Style = 2",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "The view rotation is always relative to the previous dynamic view."
      },
      {
        "signature": "RotateAroundCplaneZaxis = 3",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Makes the view (RotateView command) or camera (RotateCamera command) rotate around the construction plane z-axis."
      }
    ]

  },
  {
    "namespace": "Rhino.ApplicationSettings",
    "name": "ViewSettingsState",
    "dataType": "class",
    "summary": "Represents a snapshot of <b>ViewSettings</b> .",
    "since": "5.0",
    "properties": [
      {
        "signature": "bool AlwaysPanParallelViews",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the 'always pan parallel views' value.  \nIf the view is not looking straight at the construction plane, then     sets parallel viewports so they will not rotate.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool DefinedViewSetCPlane",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the 'named views set CPlane' value.  \nWhen true, restoring a named view causes the construction plane saved with that view to also restore.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool DefinedViewSetProjection",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the 'named views set projection' value.  \nWhen true, restoring a named view causes the viewport projection saved with the view to also restore.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool LinkedViewports",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the 'linked views' activated setting.  \nTrue enables real-time view synchronization.     When a standard view is manipulated, the camera lens length of all parallel projection     viewports are set to match the current viewport.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool PanReverseKeyboardAction",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets if panning with the keyboard is reversed.  \nfalse, then Rhino pans the camera in the direction of the arrow key you press.     true, then Rhino pans the scene instead.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "double PanScreenFraction",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the faction used as multiplier to pan the screen.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "int RotateCircleIncrement",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the rotation increment.  \nWhen the user rotates a view with the keyboard, Rhino rotates the view in steps.     The usual step is 1/60th of a circle, which equals six degrees.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool RotateReverseKeyboard",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the rotation direction.  \nIf true, then Rhino rotates the camera around the scene, otherwise, rotates the scene itself.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool RotateToView",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the rotation reference.  \nIf true, then the views rotates relative to the view axes; false, than relative to the world x, y, and z axes.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool RotateViewAroundAutogumball",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "9.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool SingleClickMaximize",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the 'single-click maximize' value.  \nWhen true, maximizing a viewport needs a single click on the viewport title rather than a double-click.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "double ThreePointPerspectiveLensLength",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the three point perspective lens length. The default is 50mm.",
        "since": "8.20",
        "property": ["get", "set"]
      },
      {
        "signature": "double TwoPointPerspectiveLensLength",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the two point perspective lens length. The default is 20mm.",
        "since": "8.20",
        "property": ["get", "set"]
      },
      {
        "signature": "ViewRotationStyle ViewRotation",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the view rotation value.",
        "since": "8.1",
        "property": ["get", "set"]
      },
      {
        "signature": "double ZoomExtentsParallelViewBorder",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Border amount to apply to parallel viewport during zoom extents",
        "since": "6.3",
        "property": ["get", "set"]
      },
      {
        "signature": "double ZoomExtentsPerspectiveViewBorder",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Border amount to apply to perspective viewport during zoom extents",
        "since": "6.3",
        "property": ["get", "set"]
      },
      {
        "signature": "double ZoomScale",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the step size for zooming with a wheeled mouse or the Page Up and Page Down keys.",
        "since": "5.0",
        "property": ["get", "set"]
      }
    ]
  },
  {
    "namespace": "Rhino.ApplicationSettings",
    "name": "WidgetColor",
    "dataType": "enum",
    "summary": "Contains enumerated constant values to represent logical colors associated with elements of the user interface.",
    "values": [
      {
        "signature": "UAxisColor = 0",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "The color of the mapping widget u-axis."
      },
      {
        "signature": "VAxisColor = 1",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "The color of the mapping widget v-axis.."
      },
      {
        "signature": "WAxisColor = 2",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "The color of the mapping widget w-axis."
      }
    ]

  },
  {
    "namespace": "Rhino.ApplicationSettings",
    "name": "ZebraAnalysisSettings",
    "dataType": "class",
    "summary": "Contains static methods and properties to modify Zebra analysis-related commands.",
    "since": "7.8",
    "constructors": [
      {
        "signature": "ZebraAnalysisSettings()",
        "summary": "Initializes a new instance of the ZebraAnalysisSettings class"
      }
    ],
    "properties": [
      {
        "signature": "bool ShowIsoCurves",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Get or sets the display of surface isocurves.",
        "since": "7.8",
        "property": ["get", "set"]
      },
      {
        "signature": "Color StripeColor",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the stripe color.",
        "since": "7.8",
        "property": ["get", "set"]
      },
      {
        "signature": "int StripeThickness",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the stripe thickness, where 0 = thinnest and 6 = thickest.",
        "since": "7.8",
        "property": ["get", "set"]
      },
      {
        "signature": "bool VerticalStripes",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Set to True for vertical stripes, or False for horizontal stripes.",
        "since": "7.8",
        "property": ["get", "set"]
      }
    ],
    "methods": [
      {
        "signature": "ZebraAnalysisSettingsState GetCurrentState()",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the current settings of the application.",
        "since": "7.8"
      },
      {
        "signature": "ZebraAnalysisSettingsState GetDefaultState()",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the factory settings of the application.",
        "since": "7.8"
      },
      {
        "signature": "System.Void RestoreDefaults()",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Commits the default settings as the current settings.",
        "since": "7.8"
      },
      {
        "signature": "System.Void UpdateFromState(ZebraAnalysisSettingsState state)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Sets all settings to a particular defined joined state.",
        "since": "7.8",
        "parameters": [
          {
            "name": "state",
            "type": "ZebraAnalysisSettingsState",
            "summary": "The particular state."
          }
        ]
      }
    ]
  },
  {
    "namespace": "Rhino.ApplicationSettings",
    "name": "ZebraAnalysisSettingsState",
    "dataType": "class",
    "summary": "Represents a snapshot of <b>ZebraAnalysisSettings</b> .",
    "since": "7.8",
    "properties": [
      {
        "signature": "bool ShowIsoCurves",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Get or sets the display of surface isocurves.",
        "since": "7.8",
        "property": ["get", "set"]
      },
      {
        "signature": "Color StripeColor",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the stripe color.",
        "since": "7.8",
        "property": ["get", "set"]
      },
      {
        "signature": "int StripeThickness",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the stripe thickness, where 0 = thinnest and 6 = thickest.",
        "since": "7.8",
        "property": ["get", "set"]
      },
      {
        "signature": "bool VerticalStripes",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Set to True for vertical stripes, or False for horizontal stripes.",
        "since": "7.8",
        "property": ["get", "set"]
      }
    ]
  },
  {
    "namespace": "Rhino",
    "name": "BitmapExtensions",
    "dataType": "class",
    "summary": "Rhino specific extension methods for System.Drawing.Bitmap",
    "constructors": [
      {
        "signature": "BitmapExtensions()",
        "summary": "Initializes a new instance of the BitmapExtensions class"
      }
    ],
    "methods": [
      {
        "signature": "FileReference BitmapAsTextureFileReference(this System.Drawing.Bitmap bitmap, System.UInt32 crc)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Inserts bitmap into Rhino's texture manager and returns a FileReference.",
        "since": "7.7",
        "parameters": [
          {
            "name": "bitmap",
            "type": "System.Drawing.Bitmap",
            "summary": "The bitmap which will be referenced by the FileReference."
          },
          {
            "name": "crc",
            "type": "System.UInt32",
            "summary": "The crc of the bitmap. This should be a unique number which changes if the contents of the bitmap changes. NOTE: if a different bitmap is provided using the same crc as a previous bitmap, then the previous bitmap will be overwritten in the texture manager and both previously returned FileReferences will reference the newly provided bitmap."
          }
        ]
      },
      {
        "signature": "System.Drawing.Bitmap ConvertToNormalMap(this System.Drawing.Bitmap bitmap, System.Boolean bLossyCompressionSource, out System.Boolean bPositiveZComponent)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Use this function to convert a System.Drawing.Bitmap from a bump to a normal texture",
        "since": "7.5",
        "parameters": [
          {
            "name": "bitmap",
            "type": "System.Drawing.Bitmap",
            "summary": ""
          },
          {
            "name": "bLossyCompressionSource",
            "type": "System.Boolean",
            "summary": "True if the source of the bitmap is an image with lossy compression (e.g. jpg). False otherwise.  The check will be less strict if the image can contain errors due to lossy compression."
          },
          {
            "name": "bPositiveZComponent",
            "type": "System.Boolean",
            "summary": "True if the image is a normal map with the z-component mapped to the range 0 .. +1.  False if the image is a normal map with the z-component mapped to the range -1 .. +1."
          }
        ]
      },
      {
        "signature": "System.Boolean IsNormalMap(this System.Drawing.Bitmap bitmap, System.Boolean bLossyCompressionSource, out System.Boolean bPositiveZComponent)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Call this method to see if the DIB appears to be a normal map.",
        "since": "7.5",
        "parameters": [
          {
            "name": "bitmap",
            "type": "System.Drawing.Bitmap",
            "summary": ""
          },
          {
            "name": "bLossyCompressionSource",
            "type": "System.Boolean",
            "summary": "True if the source of the bitmap is an image with lossy compression (e.g. jpg). False otherwise.  The check will be less strict if the image can contain errors due to lossy compression."
          },
          {
            "name": "bPositiveZComponent",
            "type": "System.Boolean",
            "summary": "True if the image is a normal map with the z-component mapped to the range 0 .. +1.  False if the image is a normal map with the z-component mapped to the range -1 .. +1."
          }
        ],
        "returns": "Returns True if the bitmap appears to be a normal map. False otherwise."
      }
    ]
  },
  {
    "namespace": "Rhino.Collections",
    "name": "ArchivableDictionary",
    "dataType": "class",
    "summary": "Represents a dictionary class that can be attached to objects and   can be serialized (saved) at necessity.  \nSee remarks for layout.",
    "remarks": "This is the layout of this object:  \n.  \nBEGINCHUNK (TCODE_ANONYMOUS_CHUNK)  \n|- version (int)  \n|- entry count (int)  \nfor entry count entries  \n|- BEGINCHUNK (TCODE_ANONYMOUS_CHUNK)  \n|- key (string)  \n|- entry contents  \n|- ENDCHUNK (TCODE_ANONYMOUS_CHUNK)  \nENDCHUNK (TCODE_ANONYMOUS_CHUNK)",
    "interfaces": ["ICloneable", "IDictionary<string, object>", "ISerializable"],
    "constructors": [
      {
        "signature": "ArchivableDictionary()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Initializes an instance of a dictionary for writing to a 3dm archive.",
        "since": "5.0"
      },
      {
        "signature": "ArchivableDictionary(int version, string name)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Initializes an instance of a dictionary for writing to a 3dm archive.",
        "since": "5.0",
        "parameters": [
          {
            "name": "version",
            "type": "System.Int32",
            "summary": "custom version used to help the plug-in developer determine which version of a dictionary is being written. One good way to write version information is to use a date style integer (YYYYMMDD)"
          },
          {
            "name": "name",
            "type": "System.String",
            "summary": "Optional name to associate with this dictionary. NOTE: if this dictionary is set as a sub-dictionary, the name will be changed to the sub-dictionary key entry"
          }
        ]
      },
      {
        "signature": "ArchivableDictionary(int version)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Initializes an instance of a dictionary for writing to a 3dm archive.",
        "since": "5.0",
        "parameters": [
          {
            "name": "version",
            "type": "System.Int32",
            "summary": "Custom version used to help the plug-in developer determine which version of a dictionary is being written. One good way to write version information is to use a date style integer (YYYYMMDD)"
          }
        ]
      },
      {
        "signature": "ArchivableDictionary(SerializationInfo info, StreamingContext context)",
        "modifiers": ["protected"],
        "protected": true,
        "virtual": false,
        "summary": "Protected constructor for internal use.",
        "parameters": [
          {
            "name": "info",
            "type": "System.Runtime.Serialization.SerializationInfo",
            "summary": "Serialization data."
          },
          {
            "name": "context",
            "type": "System.Runtime.Serialization.StreamingContext",
            "summary": "Serialization stream."
          }
        ]
      },
      {
        "signature": "ArchivableDictionary(UserData parentUserData)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Initializes an instance of a dictionary for writing to a 3dm archive",
        "since": "5.0",
        "parameters": [
          {
            "name": "parentUserData",
            "type": "DocObjects.Custom.UserData",
            "summary": "parent user data if this dictionary is associated with user data"
          }
        ]
      }
    ],
    "properties": [
      {
        "signature": "uint ChangeSerialNumber",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Retrieve current change serial number. This is a number that gets increased each time a datum is set or changed.",
        "since": "7.8",
        "property": ["get"]
      },
      {
        "signature": "int Count",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the number of key/value pairs contained in the dictionary.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "string[] Keys",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets all entry names or keys.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "string Name",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the name string of this <b>ArchivableDictionary</b> .",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "UserData ParentUserData",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "If this dictionary is part of user-data (or is a UserDictionary), then this is the parent user data. None if this dictionary is not part of user-data",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "object[] Values",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets all values in this dictionary.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "int Version",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the version of this <b>ArchivableDictionary</b> .",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "object this[string key]",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the value associated with the specified key."
      }
    ],
    "methods": [
      {
        "signature": "System.Boolean AddContentsFrom(ArchivableDictionary source)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Add the contents from the source dictionary.",
        "since": "5.4"
      },
      {
        "signature": "System.Void Clear()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Removes all keys and values from the dictionary.",
        "since": "5.0"
      },
      {
        "signature": "ArchivableDictionary Clone()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Constructs a deep copy of this object.",
        "since": "5.0",
        "returns": "The copy of this object."
      },
      {
        "signature": "System.Boolean ContainsKey(System.String key)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Determines whether the dictionary contains the specified key.",
        "since": "5.0",
        "parameters": [
          {
            "name": "key",
            "type": "System.String",
            "summary": "The key to locate."
          }
        ],
        "returns": "True if the dictionary contains an element with the specified key; otherwise, false."
      },
      {
        "signature": "System.Boolean GetBool(System.String key, System.Boolean defaultValue)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Get value as Boolean, will return defaultValue unless value was created using Set(string key, Boolean value)",
        "since": "5.0"
      },
      {
        "signature": "System.Boolean GetBool(System.String key)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Get value as Boolean, will only succeed if value was created using Set(string key, Boolean value)",
        "since": "5.0"
      },
      {
        "signature": "System.Byte[] GetBytes(System.String key, System.Byte[] defaultValue)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Get value as byte[], will return defaultValue unless value was created using Set(string key, byte[] value)",
        "since": "5.9"
      },
      {
        "signature": "System.Byte[] GetBytes(System.String key)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Get value as byte[], will only succeed if value was created using Set(string key, byte[] value)",
        "since": "5.9"
      },
      {
        "signature": "ArchivableDictionary GetDictionary(System.String key, ArchivableDictionary defaultValue)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Get value as ArchivableDictionary, will return defaultValue unless value was created using Set(string key, ArchivableDictionary value)",
        "since": "5.9"
      },
      {
        "signature": "ArchivableDictionary GetDictionary(System.String key)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Get value as ArchivableDictionary, will only succeed if value was created using Set(string key, ArchivableDictionary value)",
        "since": "5.9"
      },
      {
        "signature": "System.Double GetDouble(System.String key, System.Double defaultValue)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Get value as double, will only succeed if value was created using Set(string key, double value)",
        "since": "5.10"
      },
      {
        "signature": "System.Double GetDouble(System.String key)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Get value as double, will only succeed if value was created using Set(string key, double value)",
        "since": "5.0"
      },
      {
        "signature": "IEnumerator<KeyValuePair<string, object>> GetEnumerator()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the enumerator of this dictionary.",
        "since": "5.0",
        "returns": "A <b>IEnumerator{T}</b> , where T is an instance of <b>KeyValuePair{T0,T1}</b> , with T0 set as string, and T1 as System.Object."
      },
      {
        "signature": "T GetEnumValue()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Get an enum value",
        "since": "5.4"
      },
      {
        "signature": "T GetEnumValue(System.String key)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Get an enum value from the dictionary using a custom key.",
        "since": "5.4"
      },
      {
        "signature": "System.Single GetFloat(System.String key, System.Single defaultValue)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Get value as float, will return defaultValue unless value was created using Set(string key, float value)",
        "since": "5.0"
      },
      {
        "signature": "System.Single GetFloat(System.String key)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Get value as float, will only succeed if value was created using Set(string key, float value)",
        "since": "5.0"
      },
      {
        "signature": "System.Guid GetGuid(System.String key, System.Guid defaultValue)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Get value as Guid, will return defaultValue unless value was created using Set(string key, Guid value)",
        "since": "5.0"
      },
      {
        "signature": "System.Guid GetGuid(System.String key)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Get value as Guid, will only succeed if value was created using Set(string key, Guid value)",
        "since": "5.0"
      },
      {
        "signature": "System.Int32 Getint(System.String key, System.Int32 defaultValue)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Get value as int, will return defaultValue unless value was created using Set(string key, int value)",
        "since": "5.0"
      },
      {
        "signature": "System.Int32 GetInteger(System.String key, System.Int32 defaultValue)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Get value as int, will return defaultValue unless value was created using Set(string key, int value)",
        "since": "5.0"
      },
      {
        "signature": "System.Int32 GetInteger(System.String key)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Get value as int, will only succeed if value was created using Set(string key, int value)",
        "since": "5.0"
      },
      {
        "signature": "System.Void GetObjectData(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context)",
        "modifiers": ["public", "virtual"],
        "protected": false,
        "virtual": true,
        "summary": "Populates a System.Runtime.Serialization.SerializationInfo with the data needed to serialize the target object.",
        "since": "7.0",
        "parameters": [
          {
            "name": "info",
            "type": "System.Runtime.Serialization.SerializationInfo",
            "summary": "The System.Runtime.Serialization.SerializationInfo to populate with data."
          },
          {
            "name": "context",
            "type": "System.Runtime.Serialization.StreamingContext",
            "summary": "The destination (see System.Runtime.Serialization.StreamingContext) for this serialization."
          }
        ]
      },
      {
        "signature": "Geometry.Plane GetPlane(System.String key, Geometry.Plane defaultValue)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Get value as Plane, will return defaultValue unless value was created using Set(string key, Plane value)",
        "since": "6.11",
        "parameters": [
          {
            "name": "key",
            "type": "System.String",
            "summary": "The key."
          },
          {
            "name": "defaultValue",
            "type": "Geometry.Plane",
            "summary": "The default value."
          }
        ],
        "returns": "The value as Plane."
      },
      {
        "signature": "Geometry.Plane GetPlane(System.String key)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Get value as Plane, will return defaultValue unless value was created using Set(string key, Plane value)",
        "since": "6.11",
        "parameters": [
          {
            "name": "key",
            "type": "System.String",
            "summary": "The key."
          }
        ],
        "returns": "The value as Plane."
      },
      {
        "signature": "Geometry.Point3d GetPoint3d(System.String key, Geometry.Point3d defaultValue)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Get value as Point3d, will return defaultValue unless value was created using Set(string key, Point3d value)",
        "since": "5.0"
      },
      {
        "signature": "Geometry.Point3d GetPoint3d(System.String key)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Get value as Point3d, will only succeed if value was created using Set(string key, Point3d value)",
        "since": "5.0"
      },
      {
        "signature": "Geometry.Point3f GetPoint3f(System.String key, Geometry.Point3f defaultValue)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Get value as Point3f, will return defaultValue unless value was created using Set(string key, Point3f value)",
        "since": "5.0"
      },
      {
        "signature": "Geometry.Point3f GetPoint3f(System.String key)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Get value as Point3f, will only succeed if value was created using Set(string key, Point3f value)",
        "since": "5.0"
      },
      {
        "signature": "System.String GetString(System.String key, System.String defaultValue)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Get value as string, will return defaultValue unless value was created using Set(string key, string value)",
        "since": "5.0",
        "parameters": [
          {
            "name": "key",
            "type": "System.String",
            "summary": "The key which points to the string"
          },
          {
            "name": "defaultValue",
            "type": "System.String",
            "summary": "The string"
          }
        ]
      },
      {
        "signature": "System.String GetString(System.String key)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Get value as string, will only succeed if value was created using Set(string key, string value)",
        "since": "5.0",
        "parameters": [
          {
            "name": "key",
            "type": "System.String",
            "summary": "The key which points to the string"
          }
        ],
        "returns": "The string"
      },
      {
        "signature": "Geometry.Vector3d GetVector3d(System.String key, Geometry.Vector3d defaultValue)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Get value as Vector3d, will return defaultValue unless value was created using Set(string key, Vector3d value)",
        "since": "5.0"
      },
      {
        "signature": "Geometry.Vector3d GetVector3d(System.String key)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Get value as Vector3d, will only succeed if value was created using Set(string key, Vector3d value)",
        "since": "5.0"
      },
      {
        "signature": "System.Boolean Remove(System.String key)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Removes the value with the specified key from the dictionary.",
        "since": "5.0",
        "parameters": [
          {
            "name": "key",
            "type": "System.String",
            "summary": "The key of the element to remove."
          }
        ],
        "returns": "True if the element is successfully found and removed; otherwise, false. This method returns False if key is not found."
      },
      {
        "signature": "System.Boolean RemoveEnumValue()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Remove an enum value from the dictionary.",
        "since": "5.4"
      },
      {
        "signature": "System.Boolean ReplaceContentsWith(ArchivableDictionary source)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Replace the contents of the dictionary with that of the given source dictionary.",
        "since": "5.4"
      },
      {
        "signature": "System.Boolean Set(System.String key, ArchivableDictionary val)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Sets another <b>ArchivableDictionary</b> as entry in this dictionary.",
        "since": "5.0",
        "parameters": [
          {
            "name": "key",
            "type": "System.String",
            "summary": "A text key."
          },
          {
            "name": "val",
            "type": "ArchivableDictionary",
            "summary": "An object for that key.  \nBecause this class is a reference type and is mutable, changes to this object will propagate to the object inside the dictionary.  \nIt is up to the user to clone this entry when appropriate."
          }
        ]
      },
      {
        "signature": "System.Boolean Set(System.String key, DocObjects.ObjRef val)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Sets a <b>Rhino.DocObjects.ObjRef</b>",
        "since": "5.8",
        "parameters": [
          {
            "name": "key",
            "type": "System.String",
            "summary": "A text key"
          },
          {
            "name": "val",
            "type": "DocObjects.ObjRef",
            "summary": "An object for that key  \nBecause this class is a reference type and is mutable, changes to this object will propagate to the object inside the dictionary.  \nIt is up to the user to clone this entry when appropriate."
          }
        ]
      },
      {
        "signature": "System.Boolean Set(System.String key, Geometry.BoundingBox val)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Sets a <b>Rhino.Geometry.BoundingBox</b> .",
        "since": "5.0",
        "parameters": [
          {
            "name": "key",
            "type": "System.String",
            "summary": "A text key."
          },
          {
            "name": "val",
            "type": "Geometry.BoundingBox",
            "summary": "A value for that key.  \nBecause  has value semantics, changes to the assigning value will leave this entry unchanged."
          }
        ]
      },
      {
        "signature": "System.Boolean Set(System.String key, Geometry.GeometryBase val)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Sets any class deriving from the <b>Rhino.Geometry.GeometryBase</b> base class.",
        "since": "5.0",
        "parameters": [
          {
            "name": "key",
            "type": "System.String",
            "summary": "A text key."
          },
          {
            "name": "val",
            "type": "Geometry.GeometryBase",
            "summary": "A geometry object for that key.  \nBecause this class is a reference type and is mutable, changes to this object will propagate to the object inside the dictionary.  \nIt is up to the user to clone this entry when appropriate. You can use  for this."
          }
        ]
      },
      {
        "signature": "System.Boolean Set(System.String key, Geometry.Interval val)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Sets an <b>Rhino.Geometry.Interval</b> .",
        "since": "5.0",
        "parameters": [
          {
            "name": "key",
            "type": "System.String",
            "summary": "A text key."
          },
          {
            "name": "val",
            "type": "Geometry.Interval",
            "summary": "A value for that key.  \nBecause  has value semantics, changes to the assigning value will leave this entry unchanged."
          }
        ]
      },
      {
        "signature": "System.Boolean Set(System.String key, Geometry.Line val)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Sets a <b>Rhino.Geometry.Line</b> .",
        "since": "5.0",
        "parameters": [
          {
            "name": "key",
            "type": "System.String",
            "summary": "A text key."
          },
          {
            "name": "val",
            "type": "Geometry.Line",
            "summary": "A value for that key.  \nBecause  has value semantics, changes to the assigning value will leave this entry unchanged."
          }
        ]
      },
      {
        "signature": "System.Boolean Set(System.String key, Geometry.MeshingParameters val)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Sets a <b>Rhino.Geometry.MeshingParameters</b> .",
        "since": "5.0",
        "parameters": [
          {
            "name": "key",
            "type": "System.String",
            "summary": "A text key."
          },
          {
            "name": "val",
            "type": "Geometry.MeshingParameters",
            "summary": "An object for that key.  \nBecause this class is a reference type and is mutable, changes to this object will propagate to the object inside the dictionary.  \nIt is up to the user to clone this entry when appropriate."
          }
        ]
      },
      {
        "signature": "System.Boolean Set(System.String key, Geometry.Plane val)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Sets a <b>Rhino.Geometry.Plane</b> .",
        "since": "5.0",
        "parameters": [
          {
            "name": "key",
            "type": "System.String",
            "summary": "A text key."
          },
          {
            "name": "val",
            "type": "Geometry.Plane",
            "summary": "A plane for that key.  \nBecause  has value semantics, changes to the assigning value will leave this entry unchanged."
          }
        ]
      },
      {
        "signature": "System.Boolean Set(System.String key, Geometry.Point2d val)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Sets a <b>Rhino.Geometry.Point2d</b> .",
        "since": "5.0",
        "parameters": [
          {
            "name": "key",
            "type": "System.String",
            "summary": "A text key."
          },
          {
            "name": "val",
            "type": "Geometry.Point2d",
            "summary": "A point for that key.  \nBecause  has value semantics, changes to the assigning value will leave this entry unchanged."
          }
        ]
      },
      {
        "signature": "System.Boolean Set(System.String key, Geometry.Point3d val)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Sets a <b>Rhino.Geometry.Point3d</b> .",
        "since": "5.0",
        "parameters": [
          {
            "name": "key",
            "type": "System.String",
            "summary": "A text key."
          },
          {
            "name": "val",
            "type": "Geometry.Point3d",
            "summary": "A point for that key.  \nBecause  has value semantics, changes to the assigning value will leave this entry unchanged."
          }
        ]
      },
      {
        "signature": "System.Boolean Set(System.String key, Geometry.Point3f val)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Sets a <b>Rhino.Geometry.Point3f</b> .",
        "since": "5.0",
        "parameters": [
          {
            "name": "key",
            "type": "System.String",
            "summary": "A text key."
          },
          {
            "name": "val",
            "type": "Geometry.Point3f",
            "summary": "A value for that key.  \nBecause  has value semantics, changes to the assigning value will leave this entry unchanged."
          }
        ]
      },
      {
        "signature": "System.Boolean Set(System.String key, Geometry.Point4d val)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Sets a <b>Rhino.Geometry.Point4d</b> .",
        "since": "5.0",
        "parameters": [
          {
            "name": "key",
            "type": "System.String",
            "summary": "A text key."
          },
          {
            "name": "val",
            "type": "Geometry.Point4d",
            "summary": "A value for that key.  \nBecause  has value semantics, changes to the assigning value will leave this entry unchanged."
          }
        ]
      },
      {
        "signature": "System.Boolean Set(System.String key, Geometry.Ray3d val)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Sets a <b>Rhino.Geometry.Ray3d</b> .",
        "since": "5.0",
        "parameters": [
          {
            "name": "key",
            "type": "System.String",
            "summary": "A text key."
          },
          {
            "name": "val",
            "type": "Geometry.Ray3d",
            "summary": "A value for that key.  \nBecause  has value semantics and is immutable, no changes to this object are possible."
          }
        ]
      },
      {
        "signature": "System.Boolean Set(System.String key, Geometry.Transform val)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Sets a <b>Rhino.Geometry.Transform</b> .",
        "since": "5.0",
        "parameters": [
          {
            "name": "key",
            "type": "System.String",
            "summary": "A text key."
          },
          {
            "name": "val",
            "type": "Geometry.Transform",
            "summary": "A transform for that key.  \nBecause  has value semantics, changes to the assigning value will leave this entry unchanged."
          }
        ]
      },
      {
        "signature": "System.Boolean Set(System.String key, Geometry.Vector2d val)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Sets a <b>Rhino.Geometry.Vector2d</b> .",
        "since": "5.0",
        "parameters": [
          {
            "name": "key",
            "type": "System.String",
            "summary": "A text key."
          },
          {
            "name": "val",
            "type": "Geometry.Vector2d",
            "summary": "A value for that key.  \nBecause  has value semantics, changes to the assigning value will leave this entry unchanged."
          }
        ]
      },
      {
        "signature": "System.Boolean Set(System.String key, Geometry.Vector3d val)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Sets a <b>Rhino.Geometry.Vector3d</b> .",
        "since": "5.0",
        "parameters": [
          {
            "name": "key",
            "type": "System.String",
            "summary": "A text key."
          },
          {
            "name": "val",
            "type": "Geometry.Vector3d",
            "summary": "A value for that key.  \nBecause  has value semantics, changes to the assigning value will leave this entry unchanged."
          }
        ]
      },
      {
        "signature": "System.Boolean Set(System.String key, Geometry.Vector3f val)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Sets a <b>Rhino.Geometry.Vector3f</b> .",
        "since": "5.0",
        "parameters": [
          {
            "name": "key",
            "type": "System.String",
            "summary": "A text key."
          },
          {
            "name": "val",
            "type": "Geometry.Vector3f",
            "summary": "A value for that key.  \nBecause  has value semantics, changes to the assigning value will leave this entry unchanged."
          }
        ]
      },
      {
        "signature": "System.Boolean Set(System.String key, IEnumerable<bool> val)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Sets a list, an array or any enumerable of <b>bool</b> .",
        "since": "5.0",
        "parameters": [
          {
            "name": "key",
            "type": "System.String",
            "summary": "A text key."
          },
          {
            "name": "val",
            "type": "IEnumerable<bool>",
            "summary": "A value for that key.  \nBecause this interface is a reference type, changes to the assigned object will modify this entry inside the dictionary.  \nIt is up to the user to clone this entry when appropriate."
          }
        ],
        "returns": "True if set operation succeeded, otherwise false."
      },
      {
        "signature": "System.Boolean Set(System.String key, IEnumerable<byte> val)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Sets a list, an array or any enumerable of <b>byte</b> .",
        "since": "5.0",
        "parameters": [
          {
            "name": "key",
            "type": "System.String",
            "summary": "A text key."
          },
          {
            "name": "val",
            "type": "IEnumerable<byte>",
            "summary": "A value for that key  \nBecause this interface is a reference type, changes to the assigned object will modify this entry inside the dictionary.  \nIt is up to the user to clone this entry when appropriate."
          }
        ],
        "returns": "True if set operation succeeded, otherwise false."
      },
      {
        "signature": "System.Boolean Set(System.String key, IEnumerable<double> val)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Sets a list, an array or any enumerable of <b>double</b> .",
        "since": "5.0",
        "parameters": [
          {
            "name": "key",
            "type": "System.String",
            "summary": "A text key."
          },
          {
            "name": "val",
            "type": "IEnumerable<double>",
            "summary": "A value for that key.  \nBecause this interface is a reference type, changes to the assigned object will modify this entry inside the dictionary.  \nIt is up to the user to clone this entry when appropriate."
          }
        ],
        "returns": "True if set operation succeeded, otherwise false."
      },
      {
        "signature": "System.Boolean Set(System.String key, IEnumerable<float> val)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Sets a list, an array or any enumerable of <b>float</b> .",
        "since": "5.0",
        "parameters": [
          {
            "name": "key",
            "type": "System.String",
            "summary": "A text key."
          },
          {
            "name": "val",
            "type": "IEnumerable<float>",
            "summary": "A value for that key.  \nBecause this interface is a reference type, changes to the assigned object will modify this entry inside the dictionary.  \nIt is up to the user to clone this entry when appropriate."
          }
        ],
        "returns": "True if set operation succeeded, otherwise false."
      },
      {
        "signature": "System.Boolean Set(System.String key, IEnumerable<GeometryBase> val)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Sets an array of <b>Rhino.Geometry.GeometryBase</b>",
        "since": "7.0",
        "parameters": [
          {
            "name": "key",
            "type": "System.String",
            "summary": "A text key"
          },
          {
            "name": "val",
            "type": "IEnumerable<Geometry.GeometryBase>",
            "summary": "An object for that key  \nBecause this class is a reference type and is mutable, changes to this object will propagate to the object inside the dictionary.  \nIt is up to the user to clone this entry when appropriate."
          }
        ],
        "returns": "True if successful, False otherwise."
      },
      {
        "signature": "System.Boolean Set(System.String key, IEnumerable<Guid> val)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Sets a list, an array or any enumerable of <b>Guid</b> .",
        "since": "5.0",
        "parameters": [
          {
            "name": "key",
            "type": "System.String",
            "summary": "A text key."
          },
          {
            "name": "val",
            "type": "IEnumerable<Guid>",
            "summary": "A value for that key.  \nBecause this interface is a reference type, changes to the assigned object will modify this entry inside the dictionary.  \nIt is up to the user to clone this entry when appropriate."
          }
        ],
        "returns": "True if set operation succeeded, otherwise false."
      },
      {
        "signature": "System.Boolean Set(System.String key, IEnumerable<int> val)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Sets a list, an array or any enumerable of <b>int</b> .",
        "since": "5.0",
        "parameters": [
          {
            "name": "key",
            "type": "System.String",
            "summary": "A text key."
          },
          {
            "name": "val",
            "type": "IEnumerable<int>",
            "summary": "A value for that key.  \nBecause this interface is a reference type, changes to the assigned object will modify this entry inside the dictionary.  \nIt is up to the user to clone this entry when appropriate."
          }
        ],
        "returns": "True if set operation succeeded, otherwise false."
      },
      {
        "signature": "System.Boolean Set(System.String key, IEnumerable<ObjRef> val)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Sets an array of <b>Rhino.DocObjects.ObjRef</b>",
        "since": "5.8",
        "parameters": [
          {
            "name": "key",
            "type": "System.String",
            "summary": "A text key"
          },
          {
            "name": "val",
            "type": "IEnumerable<DocObjects.ObjRef>",
            "summary": "An object for that key  \nBecause this class is a reference type and is mutable, changes to this object will propagate to the object inside the dictionary.  \nIt is up to the user to clone this entry when appropriate."
          }
        ]
      },
      {
        "signature": "System.Boolean Set(System.String key, IEnumerable<sbyte> val)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Sets a list, an array or any enumerable of <b>sbyte</b> .",
        "since": "5.0",
        "parameters": [
          {
            "name": "key",
            "type": "System.String",
            "summary": "A text key."
          },
          {
            "name": "val",
            "type": "IEnumerable<sbyte>",
            "summary": "A value for that key.  \nBecause this interface is a reference type, changes to the assigned object will modify this entry inside the dictionary.  \nIt is up to the user to clone this entry when appropriate."
          }
        ],
        "returns": "True if set operation succeeded, otherwise false."
      },
      {
        "signature": "System.Boolean Set(System.String key, IEnumerable<short> val)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Sets a list, an array or any enumerable of <b>short</b> .",
        "since": "5.0",
        "parameters": [
          {
            "name": "key",
            "type": "System.String",
            "summary": "A text key."
          },
          {
            "name": "val",
            "type": "IEnumerable<short>",
            "summary": "A value for that key.  \nBecause this interface is a reference type, changes to the assigned object will modify this entry inside the dictionary.  \nIt is up to the user to clone this entry when appropriate."
          }
        ],
        "returns": "True if set operation succeeded, otherwise false."
      },
      {
        "signature": "System.Boolean Set(System.String key, IEnumerable<string> val)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Sets a list, an array or any enumerable of <b>string</b> .",
        "since": "5.0",
        "parameters": [
          {
            "name": "key",
            "type": "System.String",
            "summary": "A text key."
          },
          {
            "name": "val",
            "type": "IEnumerable<string>",
            "summary": "A value for that key.  \nBecause this interface is a reference type, changes to the assigned object will modify this entry inside the dictionary.  \nIt is up to the user to clone this entry when appropriate."
          }
        ],
        "returns": "True if set operation succeeded, otherwise false."
      },
      {
        "signature": "System.Boolean Set(System.String key, System.Boolean val)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Sets a <b>bool</b> .",
        "since": "5.0",
        "parameters": [
          {
            "name": "key",
            "type": "System.String",
            "summary": "The text key."
          },
          {
            "name": "val",
            "type": "System.Boolean",
            "summary": "A <b>bool</b> value.  \nBecause  has value semantics, changes to the assigning value will leave this entry unchanged."
          }
        ],
        "returns": "True if set operation succeeded, otherwise false."
      },
      {
        "signature": "System.Boolean Set(System.String key, System.Byte val)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Sets a <b>byte</b> .",
        "since": "5.0",
        "parameters": [
          {
            "name": "key",
            "type": "System.String",
            "summary": "The text key."
          },
          {
            "name": "val",
            "type": "System.Byte",
            "summary": "A <b>byte</b> .  \nBecause  has value semantics, changes to the assigning value will leave this entry unchanged."
          }
        ],
        "returns": "True if set operation succeeded, otherwise false."
      },
      {
        "signature": "System.Boolean Set(System.String key, System.Double val)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Sets a <b>double</b> .",
        "since": "5.0",
        "parameters": [
          {
            "name": "key",
            "type": "System.String",
            "summary": "The text key."
          },
          {
            "name": "val",
            "type": "System.Double",
            "summary": "A <b>double</b> .  \nBecause  has value semantics, changes to the assigning value will leave this entry unchanged."
          }
        ],
        "returns": "True if set operation succeeded, otherwise false."
      },
      {
        "signature": "System.Boolean Set(System.String key, System.Drawing.Color val)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Sets a <b>System.Drawing.Color</b> .",
        "since": "5.0",
        "parameters": [
          {
            "name": "key",
            "type": "System.String",
            "summary": "A text key."
          },
          {
            "name": "val",
            "type": "System.Drawing.Color",
            "summary": "A value for that key.  \nBecause  has value semantics, changes to the     assigning value will leave this entry unchanged."
          }
        ],
        "returns": "True if set operation succeeded, otherwise false."
      },
      {
        "signature": "System.Boolean Set(System.String key, System.Drawing.Font val)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Sets a <b>System.Drawing.Font</b> .",
        "since": "5.0",
        "parameters": [
          {
            "name": "key",
            "type": "System.String",
            "summary": "A text key."
          },
          {
            "name": "val",
            "type": "System.Drawing.Font",
            "summary": "A value for that key.  \nBecause  is immutable, it is not possible to modify the object while it is in this dictionary."
          }
        ]
      },
      {
        "signature": "System.Boolean Set(System.String key, System.Drawing.Point val)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Sets a <b>System.Drawing.Point</b> .",
        "since": "5.0",
        "parameters": [
          {
            "name": "key",
            "type": "System.String",
            "summary": "A text key."
          },
          {
            "name": "val",
            "type": "System.Drawing.Point",
            "summary": "A value for that key.  \nBecause  has value semantics, changes to the assigning value will leave this entry unchanged."
          }
        ]
      },
      {
        "signature": "System.Boolean Set(System.String key, System.Drawing.PointF val)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Sets a <b>System.Drawing.PointF</b> .",
        "since": "5.0",
        "parameters": [
          {
            "name": "key",
            "type": "System.String",
            "summary": "A text key."
          },
          {
            "name": "val",
            "type": "System.Drawing.PointF",
            "summary": "A value for that key.  \nBecause  has value semantics, changes to the assigning value will leave this entry unchanged."
          }
        ]
      },
      {
        "signature": "System.Boolean Set(System.String key, System.Drawing.Rectangle val)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Sets a <b>System.Drawing.Rectangle</b> .",
        "since": "5.0",
        "parameters": [
          {
            "name": "key",
            "type": "System.String",
            "summary": "A text key."
          },
          {
            "name": "val",
            "type": "System.Drawing.Rectangle",
            "summary": "A value for that key.  \nBecause  has value semantics, changes to the assigning value will leave this entry unchanged."
          }
        ]
      },
      {
        "signature": "System.Boolean Set(System.String key, System.Drawing.RectangleF val)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Sets a <b>System.Drawing.RectangleF</b> .",
        "since": "5.0",
        "parameters": [
          {
            "name": "key",
            "type": "System.String",
            "summary": "A text key."
          },
          {
            "name": "val",
            "type": "System.Drawing.RectangleF",
            "summary": "A value for that key.  \nBecause  has value semantics, changes to the assigning value will leave this entry unchanged."
          }
        ]
      },
      {
        "signature": "System.Boolean Set(System.String key, System.Drawing.Size val)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Sets a <b>System.Drawing.Size</b> .",
        "since": "5.0",
        "parameters": [
          {
            "name": "key",
            "type": "System.String",
            "summary": "A text key."
          },
          {
            "name": "val",
            "type": "System.Drawing.Size",
            "summary": "A value for that key.  \nBecause  has value semantics, changes to the assigning value will leave this entry unchanged."
          }
        ]
      },
      {
        "signature": "System.Boolean Set(System.String key, System.Drawing.SizeF val)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Sets a <b>System.Drawing.SizeF</b> .",
        "since": "5.0",
        "parameters": [
          {
            "name": "key",
            "type": "System.String",
            "summary": "A text key."
          },
          {
            "name": "val",
            "type": "System.Drawing.SizeF",
            "summary": "A value for that key.  \nBecause  has value semantics, changes to the assigning value will leave this entry unchanged."
          }
        ]
      },
      {
        "signature": "System.Boolean Set(System.String key, System.Guid val)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Sets a <b>Guid</b> .",
        "since": "5.0",
        "parameters": [
          {
            "name": "key",
            "type": "System.String",
            "summary": "The text key."
          },
          {
            "name": "val",
            "type": "System.Guid",
            "summary": "A <b>Guid</b> .  \nBecause  has value semantics, changes to the assigning value will leave this entry unchanged."
          }
        ],
        "returns": "True if set operation succeeded, otherwise false."
      },
      {
        "signature": "System.Boolean Set(System.String key, System.Int16 val)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Sets a <b>short</b> .",
        "since": "5.0",
        "parameters": [
          {
            "name": "key",
            "type": "System.String",
            "summary": "The text key."
          },
          {
            "name": "val",
            "type": "System.Int16",
            "summary": "A <b>short</b> .  \nBecause  has value semantics, changes to the assigning value will leave this entry unchanged."
          }
        ],
        "returns": "True if set operation succeeded, otherwise false."
      },
      {
        "signature": "System.Boolean Set(System.String key, System.Int32 val)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Sets a <b>int</b> .",
        "since": "5.0",
        "parameters": [
          {
            "name": "key",
            "type": "System.String",
            "summary": "The text key."
          },
          {
            "name": "val",
            "type": "System.Int32",
            "summary": "A <b>int</b> .  \nBecause  has value semantics, changes to the assigning value will leave this entry unchanged."
          }
        ],
        "returns": "True if set operation succeeded, otherwise false."
      },
      {
        "signature": "System.Boolean Set(System.String key, System.Int64 val)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Sets a <b>long</b> .",
        "since": "5.0",
        "parameters": [
          {
            "name": "key",
            "type": "System.String",
            "summary": "The text key."
          },
          {
            "name": "val",
            "type": "System.Int64",
            "summary": "A <b>long</b> .  \nBecause  has value semantics, changes to the assigning value will leave this entry unchanged."
          }
        ],
        "returns": "True if set operation succeeded, otherwise false."
      },
      {
        "signature": "System.Boolean Set(System.String key, System.SByte val)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Sets a <b>sbyte</b> .",
        "since": "5.0",
        "parameters": [
          {
            "name": "key",
            "type": "System.String",
            "summary": "The text key."
          },
          {
            "name": "val",
            "type": "System.SByte",
            "summary": "A <b>sbyte</b> .  \nBecause  has value semantics, changes to the assigning value will leave this entry unchanged."
          }
        ],
        "returns": "True if set operation succeeded, otherwise false."
      },
      {
        "signature": "System.Boolean Set(System.String key, System.Single val)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Sets a <b>float</b> .",
        "since": "5.0",
        "parameters": [
          {
            "name": "key",
            "type": "System.String",
            "summary": "The text key."
          },
          {
            "name": "val",
            "type": "System.Single",
            "summary": "A <b>float</b> .  \nBecause  has value semantics, changes to the assigning value will leave this entry unchanged."
          }
        ],
        "returns": "True if set operation succeeded, otherwise false."
      },
      {
        "signature": "System.Boolean Set(System.String key, System.String val)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Sets a <b>string</b> .",
        "since": "5.0",
        "parameters": [
          {
            "name": "key",
            "type": "System.String",
            "summary": "The text key."
          },
          {
            "name": "val",
            "type": "System.String",
            "summary": "A <b>string</b> .  \nBecause  is immutable, it is not possible to modify the object while it is in this dictionary."
          }
        ],
        "returns": "True if set operation succeeded, otherwise false."
      },
      {
        "signature": "System.Boolean Set(System.String key, System.UInt16 val)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Sets a <b>ushort</b> .",
        "since": "5.0",
        "parameters": [
          {
            "name": "key",
            "type": "System.String",
            "summary": "The text key."
          },
          {
            "name": "val",
            "type": "System.UInt16",
            "summary": "A <b>ushort</b> .  \nBecause  has value semantics, changes to the assigning value will leave this entry unchanged."
          }
        ],
        "returns": "True if set operation succeeded, otherwise false."
      },
      {
        "signature": "System.Boolean Set(System.String key, System.UInt32 val)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Sets a <b>uint</b> .",
        "since": "5.0",
        "parameters": [
          {
            "name": "key",
            "type": "System.String",
            "summary": "The text key."
          },
          {
            "name": "val",
            "type": "System.UInt32",
            "summary": "A <b>uint</b> .  \nBecause  has value semantics, changes to the assigning value will leave this entry unchanged."
          }
        ],
        "returns": "True if set operation succeeded, otherwise false."
      },
      {
        "signature": "System.Boolean SetEnumValue(System.String key, T enumValue)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Set an enum value in the dictionary with a custom key.",
        "since": "5.4"
      },
      {
        "signature": "System.Boolean SetEnumValue(T enumValue)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Set an enum value",
        "since": "5.4"
      },
      {
        "signature": "System.Boolean TryGetBool(System.String key, out System.Boolean value)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Get value as Boolean, will only succeed if value was created using Set(string key, Boolean value)",
        "since": "5.0"
      },
      {
        "signature": "System.Boolean TryGetBytes(System.String key, out System.Byte[] value)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Get value as byte[], will only succeed if value was created using Set(string key, byte[] value)",
        "since": "5.9"
      },
      {
        "signature": "System.Boolean TryGetDictionary(System.String key, out ArchivableDictionary value)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Get value as ArchivableDictionary, will only succeed if value was created using Set(string key, ArchivableDictionary value)",
        "since": "5.9"
      },
      {
        "signature": "System.Boolean TryGetDouble(System.String key, out System.Double value)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Get value as double, will only succeed if value was created using Set(string key, double value)",
        "since": "5.0"
      },
      {
        "signature": "System.Boolean TryGetEnumValue(System.String key, out T enumValue)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Attempt to get an enum value from the dictionary using a custom key.",
        "since": "5.4"
      },
      {
        "signature": "System.Boolean TryGetFloat(System.String key, out System.Single value)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Get value as float, will only succeed if value was created using Set(string key, float value)",
        "since": "5.0"
      },
      {
        "signature": "System.Boolean TryGetGuid(System.String key, out System.Guid value)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Get value as Guid, will only succeed if value was created using Set(string key, Guid value)",
        "since": "5.0"
      },
      {
        "signature": "System.Boolean TryGetInteger(System.String key, out System.Int32 value)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Get value as int, will only succeed if value was created using Set(string key, int value)",
        "since": "5.0"
      },
      {
        "signature": "System.Boolean TryGetPlane(System.String key, out Geometry.Plane value)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Get value as Plane, will only succeed if value was created using Set(string key, Plane value)",
        "since": "6.11",
        "parameters": [
          {
            "name": "key",
            "type": "System.String",
            "summary": "The key."
          },
          {
            "name": "value",
            "type": "Geometry.Plane",
            "summary": "The value."
          }
        ],
        "returns": "The value as Plane."
      },
      {
        "signature": "System.Boolean TryGetPoint3d(System.String key, out Geometry.Point3d value)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Get value as Point3d, will only succeed if value was created using Set(string key, Point3d value)",
        "since": "5.0"
      },
      {
        "signature": "System.Boolean TryGetPoint3f(System.String key, out Geometry.Point3f value)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Get value as Point3f, will only succeed if value was created using Set(string key, Point3f value)",
        "since": "5.0"
      },
      {
        "signature": "System.Boolean TryGetString(System.String key, out System.String value)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Get value as string, will only succeed if value was created using Set(string key, string value)",
        "since": "5.0"
      },
      {
        "signature": "System.Boolean TryGetValue(System.String key, out System.Object value)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the value associated with the specified key.",
        "since": "5.0",
        "parameters": [
          {
            "name": "key",
            "type": "System.String",
            "summary": "The key of the value to get."
          },
          {
            "name": "value",
            "type": "System.Object",
            "summary": "When this method returns and if the key is found, contains the value associated with the specified key; otherwise, null. This parameter is passed uninitialized."
          }
        ],
        "returns": "True if the dictionary contains an element with the specified key; otherwise, false."
      },
      {
        "signature": "System.Boolean TryGetVector3d(System.String key, out Geometry.Vector3d value)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Get value as Vector3d, will only succeed if value was created using Set(string key, Vector3d value)",
        "since": "5.0"
      }
    ]
  },
  {
    "namespace": "Rhino.Collections",
    "name": "CurveList",
    "dataType": "class",
    "summary": "Represents a list of curves.",
    "baseclass": "RhinoList<Curve>",
    "constructors": [
      {
        "signature": "CurveList()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Initializes a new empty list of curves.",
        "since": "5.0"
      },
      {
        "signature": "CurveList(IEnumerable<Curve> collection)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Initializes a new list that is filled with all items of the input enumerable.  \nInput items are not explicitly duplicated (this is a shallow copy).",
        "since": "5.0",
        "parameters": [
          {
            "name": "collection",
            "type": "IEnumerable<Curve>",
            "summary": "A list, an array or any enumerable set of <b>Curve</b> ."
          }
        ]
      },
      {
        "signature": "CurveList(int initialCapacity)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Initializes a new empty list of curves with a predefined capacity.  \nThis is the amount of items the list will accept before resizing.",
        "since": "5.0"
      }
    ],
    "methods": [
      {
        "signature": "System.Void Add(Arc arc)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Adds an arc to this list.",
        "since": "5.0",
        "parameters": [
          {
            "name": "arc",
            "type": "Arc",
            "summary": "An arc value that will be the model of the new internal curve."
          }
        ]
      },
      {
        "signature": "System.Void Add(Circle circle)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Adds a circle to this list.",
        "since": "5.0",
        "parameters": [
          {
            "name": "circle",
            "type": "Circle",
            "summary": "A circle value that will be the model of the new internal curve."
          }
        ]
      },
      {
        "signature": "System.Void Add(Ellipse ellipse)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Adds an ellipse to this list.",
        "since": "5.0",
        "parameters": [
          {
            "name": "ellipse",
            "type": "Ellipse",
            "summary": "An ellipse that will be the model of the new internal curve."
          }
        ]
      },
      {
        "signature": "System.Void Add(IEnumerable<Point3d> polyline)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Adds a polyline to this list.",
        "since": "5.0",
        "parameters": [
          {
            "name": "polyline",
            "type": "IEnumerable<Point3d>",
            "summary": "A polyline value that will be copied in a new polyline.  \nThis argument can be null, an array, a list or any enumerable set of ."
          }
        ]
      },
      {
        "signature": "System.Void Add(Line line)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Adds a line to this list.",
        "since": "5.0",
        "parameters": [
          {
            "name": "line",
            "type": "Line",
            "summary": "A line value that will be the model of the new internal curve."
          }
        ]
      },
      {
        "signature": "System.Void Insert(System.Int32 index, Arc arc)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Inserts an arc at a given index of this list.",
        "since": "5.0",
        "parameters": [
          {
            "name": "index",
            "type": "System.Int32",
            "summary": "A 0-based position in the list."
          },
          {
            "name": "arc",
            "type": "Arc",
            "summary": "The arc value from which to construct the new curve."
          }
        ]
      },
      {
        "signature": "System.Void Insert(System.Int32 index, Circle circle)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Inserts a line at a given index of this list.",
        "since": "5.0",
        "parameters": [
          {
            "name": "index",
            "type": "System.Int32",
            "summary": "A 0-based position in the list."
          },
          {
            "name": "circle",
            "type": "Circle",
            "summary": "The circle value from which to construct the new curve."
          }
        ]
      },
      {
        "signature": "System.Void Insert(System.Int32 index, Ellipse ellipse)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Inserts an ellipse at a given index of this list.",
        "since": "5.0",
        "parameters": [
          {
            "name": "index",
            "type": "System.Int32",
            "summary": "A 0-based position in the list."
          },
          {
            "name": "ellipse",
            "type": "Ellipse",
            "summary": "The ellipse value from which to construct the new curve."
          }
        ]
      },
      {
        "signature": "System.Void Insert(System.Int32 index, IEnumerable<Point3d> polyline)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Inserts a polyline at a given index of this list.",
        "since": "5.0",
        "parameters": [
          {
            "name": "index",
            "type": "System.Int32",
            "summary": "A 0-based position in the list."
          },
          {
            "name": "polyline",
            "type": "IEnumerable<Point3d>",
            "summary": "The polyline enumerable from which to construct a copy curve.  \nThis argument can be null, an array, a list or any enumerable set of     ."
          }
        ]
      },
      {
        "signature": "System.Void Insert(System.Int32 index, Line line)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Inserts a line at a given index of this list.",
        "since": "5.0",
        "parameters": [
          {
            "name": "index",
            "type": "System.Int32",
            "summary": "A 0-based position in the list."
          },
          {
            "name": "line",
            "type": "Line",
            "summary": "The line value from which to construct the new curve."
          }
        ]
      },
      {
        "signature": "System.Boolean Transform(Transform xform)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Transform all the curves in this list. If at least a single transform failed this function returns false.",
        "since": "5.0",
        "parameters": [
          {
            "name": "xform",
            "type": "Transform",
            "summary": "Transformation to apply to all curves."
          }
        ]
      }
    ]
  },
  {
    "namespace": "Rhino.Collections",
    "name": "IResizableList",
    "dataType": "interface",
    "summary": "Provides the ability to resize a generic list by setting the Count property.",
    "properties": [
      {
        "signature": "int Count",
        "modifiers": ["new"],
        "protected": true,
        "virtual": false,
        "summary": "Gets or sets the length of the list. This hides (Shadows in Vb.Net) the read-only Count property of the generic list.",
        "property": ["get", "set"]
      }
    ]
  },
  {
    "namespace": "Rhino.Collections",
    "name": "Point3dList",
    "dataType": "class",
    "summary": "Represents a list of <b>Point3d</b> .",
    "baseclass": "RhinoList<Point3d>",
    "interfaces": ["ICloneable", "IEquatable<Point3dList>"],
    "constructors": [
      {
        "signature": "Point3dList()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Initializes a new empty list with default capacity.",
        "since": "5.0"
      },
      {
        "signature": "Point3dList(IEnumerable<Point3d> collection)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Initializes a new point list by copying the values from another set.",
        "since": "5.0",
        "parameters": [
          {
            "name": "collection",
            "type": "IEnumerable<Point3d>",
            "summary": "The collection to copy from."
          }
        ]
      },
      {
        "signature": "Point3dList(int initialCapacity)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Initializes a new point list with a preallocated initial capacity.",
        "since": "5.0",
        "parameters": [
          {
            "name": "initialCapacity",
            "type": "System.Int32",
            "summary": "The number of added items before which the underlying array will be resized."
          }
        ]
      },
      {
        "signature": "Point3dList(Point3d[] initialPoints)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Constructs a new point list from values in a point array.",
        "since": "5.0",
        "parameters": [
          {
            "name": "initialPoints",
            "type": "Point3d[]",
            "summary": "Points to add to the list."
          }
        ]
      }
    ],
    "properties": [
      {
        "signature": "BoundingBox BoundingBox",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Even though this is a property, it is not a \"fast\" calculation. Every point is evaluated in order to get the bounding box of the list.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "XAccess X",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns an indexer with all X coordinates in this list.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "YAccess Y",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns an indexer with all Y coordinates in this list.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "ZAccess Z",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns an indexer with all Z coordinates in this list.",
        "since": "5.0",
        "property": ["get"]
      }
    ],
    "methods": [
      {
        "signature": "System.Int32 ClosestIndexInList(IList<Point3d> list, Point3d testPoint)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Finds the index of the point in a list of points that is closest to a test point.",
        "since": "5.0",
        "parameters": [
          {
            "name": "list",
            "type": "IList<Point3d>",
            "summary": "A list of points."
          },
          {
            "name": "testPoint",
            "type": "Point3d",
            "summary": "Point to compare against."
          }
        ],
        "returns": "Index of closest point in the list on success or -1 on error."
      },
      {
        "signature": "Point3d ClosestPointInList(IList<Point3d> list, Point3d testPoint)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Finds the point in a list of points that is closest to a test point.",
        "since": "5.0",
        "parameters": [
          {
            "name": "list",
            "type": "IList<Point3d>",
            "summary": "A list of points."
          },
          {
            "name": "testPoint",
            "type": "Point3d",
            "summary": "Point to compare against."
          }
        ],
        "returns": "A point."
      },
      {
        "signature": "System.Void Add(System.Double x, System.Double y, System.Double z)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Adds a Point3d to the end of the list with given x,y,z coordinates.",
        "since": "5.0",
        "parameters": [
          {
            "name": "x",
            "type": "System.Double",
            "summary": "The X coordinate."
          },
          {
            "name": "y",
            "type": "System.Double",
            "summary": "The Y coordinate."
          },
          {
            "name": "z",
            "type": "System.Double",
            "summary": "The Z coordinate."
          }
        ]
      },
      {
        "signature": "System.Int32 ClosestIndex(Point3d testPoint)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Finds the index of the point that is closest to a test point in this list.",
        "since": "5.0",
        "parameters": [
          {
            "name": "testPoint",
            "type": "Point3d",
            "summary": "point to compare against."
          }
        ],
        "returns": "index of closest point in the list on success. -1 on error."
      },
      {
        "signature": "Point3dList Duplicate()",
        "modifiers": ["public", "new"],
        "protected": false,
        "virtual": false,
        "summary": "Returns a deep copy of this point list instance.",
        "since": "6.0",
        "returns": "The duplicated list."
      },
      {
        "signature": "System.Boolean Equals(Point3dList other)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Determines if the point lists are exactly equal.",
        "since": "7.1",
        "returns": "True is objects are exactly equal in value."
      },
      {
        "signature": "System.Boolean Equals(System.Object obj)",
        "modifiers": ["public", "override"],
        "protected": false,
        "virtual": false,
        "summary": "Overrides the default object equality to compare lists by value.",
        "returns": "True is objects are exactly equal in value."
      },
      {
        "signature": "System.Int32 GetHashCode()",
        "modifiers": ["public", "override"],
        "protected": false,
        "virtual": false,
        "summary": "Creates a hash code for this object.",
        "returns": "An int that serves as an hash code. This is currently a XOR of all doubles, XORed in line."
      },
      {
        "signature": "System.Void SetAllX(System.Double xValue)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Set all the X values for the points to a single value",
        "since": "5.6"
      },
      {
        "signature": "System.Void SetAllY(System.Double yValue)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Set all the Y values for the points to a single value",
        "since": "5.6"
      },
      {
        "signature": "System.Void SetAllZ(System.Double zValue)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Set all the Z values for the points to a single value",
        "since": "5.6"
      },
      {
        "signature": "System.Void Transform(Transform xform)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Applies a transform to all the points in the list.",
        "since": "5.0",
        "parameters": [
          {
            "name": "xform",
            "type": "Transform",
            "summary": "Transform to apply."
          }
        ]
      }
    ]
  },
  {
    "namespace": "Rhino.Collections",
    "name": "Point3dList.XAccess",
    "dataType": "class",
    "summary": "Utility class for easy-access of x-components of points inside an ON_3dPointList.",
    "properties": [
      {
        "signature": "double this[int index]",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the x-coordinate of the specified point."
      }
    ]
  },
  {
    "namespace": "Rhino.Collections",
    "name": "Point3dList.YAccess",
    "dataType": "class",
    "summary": "Utility class for easy-access of x-components of points inside an ON_3dPointList.",
    "properties": [
      {
        "signature": "double this[int index]",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the y-coordinate of the specified point."
      }
    ]
  },
  {
    "namespace": "Rhino.Collections",
    "name": "Point3dList.ZAccess",
    "dataType": "class",
    "summary": "Utility class for easy-access of z-components of points inside an ON_3dPointList.",
    "properties": [
      {
        "signature": "double this[int index]",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the z-coordinate of the specified point."
      }
    ]
  },
  {
    "namespace": "Rhino.Collections",
    "name": "RhinoList",
    "dataType": "class",
    "summary": "Provides helper methods to work with <b>RhinoList<T></b> and other collections.",
    "constructors": [
      {
        "signature": "RhinoList()",
        "summary": "Initializes a new instance of the RhinoList class"
      }
    ],
    "methods": [
      {
        "signature": "IEnumerable<int[]> Point2dKNeighbors(IEnumerable<Point2d> hayPoints, IEnumerable<Point2d> needlePoints, System.Int32 amount)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Finds a certain amour of points in a list of single-precision 2D points that are the k-closest to a test point. This method searches needlePoints by computing all distances from each point cloud point and keeping a \"short list\".",
        "since": "6.0",
        "parameters": [
          {
            "name": "hayPoints",
            "type": "IEnumerable<Point2d>",
            "summary": "A point cloud to be searched."
          },
          {
            "name": "needlePoints",
            "type": "IEnumerable<Point2d>",
            "summary": "Points to search for."
          },
          {
            "name": "amount",
            "type": "System.Int32",
            "summary": "The required amount of closest neighbors to find."
          }
        ],
        "returns": "An enumerable of arrays of indices; each array contains the indices for each of the needlePts."
      },
      {
        "signature": "IEnumerable<int[]> Point2fKNeighbors(IEnumerable<Point2f> hayPoints, IEnumerable<Point2f> needlePoints, System.Int32 amount)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Finds a certain amour of points in a list of single-precision 2D points that are the k-closest to a test point. This method searches needlePoints by computing all distances from each point cloud point and keeping a \"short list\".",
        "since": "6.0",
        "parameters": [
          {
            "name": "hayPoints",
            "type": "IEnumerable<Point2f>",
            "summary": "A point cloud to be searched."
          },
          {
            "name": "needlePoints",
            "type": "IEnumerable<Point2f>",
            "summary": "Points to search for."
          },
          {
            "name": "amount",
            "type": "System.Int32",
            "summary": "The required amount of closest neighbors to find."
          }
        ],
        "returns": "An enumerable of arrays of indices; each array contains the indices for each of the needlePts."
      },
      {
        "signature": "IEnumerable<int[]> Point3dKNeighbors(IEnumerable<Point3d> hayPoints, IEnumerable<Point3d> needlePoints, System.Int32 amount)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Finds a certain amour of points in a list of 3D points that are the k-closest to a test point. This method searches needlePoints by computing all distances from each point cloud point and keeping a \"short list\". See RTree KNeighbors for alternatives.",
        "since": "6.0",
        "parameters": [
          {
            "name": "hayPoints",
            "type": "IEnumerable<Point3d>",
            "summary": "A point cloud to be searched."
          },
          {
            "name": "needlePoints",
            "type": "IEnumerable<Point3d>",
            "summary": "Points to search for."
          },
          {
            "name": "amount",
            "type": "System.Int32",
            "summary": "The required amount of closest neighbors to find."
          }
        ],
        "returns": "An enumerable of arrays of indices; each array contains the indices for each of the needlePts."
      },
      {
        "signature": "IEnumerable<int[]> Point3fKNeighbors(IEnumerable<Point3f> hayPoints, IEnumerable<Point3f> needlePoints, System.Int32 amount)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Finds a certain amour of points in a list of single-precision 3D points that are the k-closest to a test point. This method searches needlePoints by computing all distances from each point cloud point and keeping a \"short list\".",
        "since": "6.0",
        "parameters": [
          {
            "name": "hayPoints",
            "type": "IEnumerable<Point3f>",
            "summary": "A point cloud to be searched."
          },
          {
            "name": "needlePoints",
            "type": "IEnumerable<Point3f>",
            "summary": "Points to search for."
          },
          {
            "name": "amount",
            "type": "System.Int32",
            "summary": "The required amount of closest neighbors to find."
          }
        ],
        "returns": "An enumerable of arrays of indices; each array contains the indices for each of the needlePts."
      },
      {
        "signature": "IEnumerable<int[]> PointCloudKNeighbors(PointCloud pointcloud, IEnumerable<Point3d> needlePoints, System.Int32 amount)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Finds a certain amount of points in a list of 3D points that are the k-closest to a test point. This method searches needlePoints by computing all distances from each point cloud point and keeping a short list.",
        "since": "6.0",
        "parameters": [
          {
            "name": "pointcloud",
            "type": "PointCloud",
            "summary": "A point cloud to be searched."
          },
          {
            "name": "needlePoints",
            "type": "IEnumerable<Point3d>",
            "summary": "Points to search for."
          },
          {
            "name": "amount",
            "type": "System.Int32",
            "summary": "The required amount of closest neighbors to find."
          }
        ],
        "returns": "An enumerable of arrays of indices; each array contains the indices for each of the needlePts."
      }
    ]
  },
  {
    "namespace": "Rhino.Collections",
    "name": "RhinoList<T>",
    "dataType": "class",
    "summary": "Represents a list of generic data. This class is similar to System.Collections.Generic.List(T) but exposes a few more methods.",
    "interfaces": ["IList<T>", "IList", "ICloneable"],
    "constructors": [
      {
        "signature": "RhinoList<T>()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Initializes a new, empty list."
      },
      {
        "signature": "RhinoList<T>(IEnumerable<T> collection)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Initializes this list as a shallow duplicate of another list, array or any other enumerable set of T.",
        "parameters": [
          {
            "name": "collection",
            "type": "IEnumerable<T>",
            "summary": "Collection of items to duplicate."
          }
        ]
      },
      {
        "signature": "RhinoList<T>(int amount, T defaultValue)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Initializes a new list with a specified amount of values.",
        "parameters": [
          {
            "name": "amount",
            "type": "System.Int32",
            "summary": "Number of values to add to this list. Must be equal to or larger than zero."
          },
          {
            "name": "defaultValue",
            "type": "T",
            "summary": "Value to add, for reference types, the same item will be added over and over again."
          }
        ]
      },
      {
        "signature": "RhinoList<T>(int initialCapacity)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Initializes an empty list with a certain capacity.",
        "parameters": [
          {
            "name": "initialCapacity",
            "type": "System.Int32",
            "summary": "Number of items this list can store without resizing."
          }
        ]
      },
      {
        "signature": "RhinoList<T>(RhinoList<T> list)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Initializes an new list by shallow duplicating another list.",
        "parameters": [
          {
            "name": "list",
            "type": "RhinoList<T>",
            "summary": "List to mimic."
          }
        ]
      }
    ],
    "properties": [
      {
        "signature": "int Capacity",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the total number of elements the internal data structure can hold without resizing.",
        "property": ["get", "set"]
      },
      {
        "signature": "int Count",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the number of elements actually contained in the List.",
        "property": ["get"]
      },
      {
        "signature": "T First",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the first item in the list. This is synonymous to calling List[0].",
        "property": ["get", "set"]
      },
      {
        "signature": "T Last",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the last item in the list. This is synonymous to calling List[Count-1].",
        "property": ["get", "set"]
      },
      {
        "signature": "int NullCount",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the number of None references (Nothing in Visual Basic) in this list. If T is a ValueType, this property always return zero.",
        "property": ["get"]
      },
      {
        "signature": "T this[int index]",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the element at the specified index."
      }
    ],
    "methods": [
      {
        "signature": "System.Void Add(T item)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Adds an object to the end of the List.",
        "parameters": [
          {
            "name": "item",
            "type": "T",
            "summary": "Item to append."
          }
        ]
      },
      {
        "signature": "System.Void AddRange(IEnumerable<T> collection)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Adds the elements of the specified collection to the end of the List.",
        "parameters": [
          {
            "name": "collection",
            "type": "IEnumerable<T>",
            "summary": "The collection whose elements should be added to the end of the List. The collection itself cannot be a None reference (Nothing in Visual Basic), but it can contain elements that are a None reference (Nothing in Visual Basic), if type T is a reference type."
          }
        ]
      },
      {
        "signature": "System.Void AddRange(System.Collections.IEnumerable collection)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Adds the elements of the specified collection to the end of the List.",
        "parameters": [
          {
            "name": "collection",
            "type": "System.Collections.IEnumerable",
            "summary": "The collection whose elements should be added to the end of the List. The collection itself cannot be a None reference (Nothing in Visual Basic), but it can contain elements that are a None reference (Nothing in Visual Basic). Objects in collection which cannot be represented as T will throw exceptions."
          }
        ]
      },
      {
        "signature": "ReadOnlyCollection<T> AsReadOnly()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Constructs a read-only wrapper of this class.",
        "returns": "A wrapper."
      },
      {
        "signature": "System.Int32 BinarySearch(System.Int32 index, System.Int32 count, T item, IComparer<T> comparer)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Searches the entire sorted List for an element using the specified comparer and returns the zero-based index of the element.",
        "parameters": [
          {
            "name": "index",
            "type": "System.Int32",
            "summary": "The zero-based starting index of the range to search."
          },
          {
            "name": "count",
            "type": "System.Int32",
            "summary": "The length of the range to search."
          },
          {
            "name": "item",
            "type": "T",
            "summary": "The object to locate. The value can be a None reference (Nothing in Visual Basic) for reference types."
          },
          {
            "name": "comparer",
            "type": "IComparer<T>",
            "summary": "The IComparer(T) implementation to use when comparing elements. Or a None reference (Nothing in Visual Basic) to use the default comparer Comparer(T)::Default."
          }
        ],
        "returns": "The zero-based index of item in the sorted List, if item is found; otherwise, a negative number that is the bitwise complement of the index of the next element that is larger than item or, if there is no larger element, the bitwise complement of Count."
      },
      {
        "signature": "System.Int32 BinarySearch(T item, IComparer<T> comparer)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Searches the entire sorted List for an element using the specified comparer and returns the zero-based index of the element.",
        "parameters": [
          {
            "name": "item",
            "type": "T",
            "summary": "The object to locate. The value can be a None reference (Nothing in Visual Basic) for reference types."
          },
          {
            "name": "comparer",
            "type": "IComparer<T>",
            "summary": "The IComparer(T) implementation to use when comparing elements. Or a None reference (Nothing in Visual Basic) to use the default comparer Comparer(T)::Default."
          }
        ],
        "returns": "The zero-based index of item in the sorted List, if item is found; otherwise, a negative number that is the bitwise complement of the index of the next element that is larger than item or, if there is no larger element, the bitwise complement of Count."
      },
      {
        "signature": "System.Int32 BinarySearch(T item)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Searches the entire sorted List for an element using the default comparer and returns the zero-based index of the element.",
        "parameters": [
          {
            "name": "item",
            "type": "T",
            "summary": "The object to locate. The value can be a None reference (Nothing in Visual Basic) for reference types."
          }
        ],
        "returns": "The zero-based index of item in the sorted List, if item is found; otherwise, a negative number that is the bitwise complement of the index of the next element that is larger than item or, if there is no larger element, the bitwise complement of Count."
      },
      {
        "signature": "System.Void Clear()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Removes all elements from the List."
      },
      {
        "signature": "System.Boolean Contains(T item)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Determines whether an element is in the List.",
        "parameters": [
          {
            "name": "item",
            "type": "T",
            "summary": "The object to locate in the List. The value can be a None reference (Nothing in Visual Basic) for reference types."
          }
        ],
        "returns": "True if item is found in the List; otherwise, false."
      },
      {
        "signature": "RhinoList<TOutput> ConvertAll(Converter<T, TOutput> converter)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Aggregates all results of a conversion function over this table into a new list.",
        "parameters": [
          {
            "name": "converter",
            "type": "Converter<T, TOutput>",
            "summary": "A conversion function that can transform from T to TOutput."
          }
        ],
        "returns": "The new list."
      },
      {
        "signature": "System.Void CopyTo(System.Int32 index, T[] array, System.Int32 arrayIndex, System.Int32 count)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Copies a range of elements from the List to a compatible one-dimensional array, starting at the specified index of the target array.",
        "parameters": [
          {
            "name": "index",
            "type": "System.Int32",
            "summary": "The zero-based index in the source List at which copying begins."
          },
          {
            "name": "array",
            "type": "T[]",
            "summary": "The one-dimensional Array that is the destination of the elements copied from List. The Array must have zero-based indexing."
          },
          {
            "name": "arrayIndex",
            "type": "System.Int32",
            "summary": "The zero-based index in array at which copying begins."
          },
          {
            "name": "count",
            "type": "System.Int32",
            "summary": "The number of elements to copy."
          }
        ]
      },
      {
        "signature": "System.Void CopyTo(T[] array, System.Int32 arrayIndex)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Copies the entire List to a compatible one-dimensional array, starting at the specified index of the target array.",
        "parameters": [
          {
            "name": "array",
            "type": "T[]",
            "summary": "The one-dimensional Array that is the destination of the elements copied from List. The Array must have zero-based indexing."
          },
          {
            "name": "arrayIndex",
            "type": "System.Int32",
            "summary": "The zero-based index in array at which copying begins."
          }
        ]
      },
      {
        "signature": "System.Void CopyTo(T[] array)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Copies the entire List to a compatible one-dimensional array, starting at the beginning of the target array.",
        "parameters": [
          {
            "name": "array",
            "type": "T[]",
            "summary": "The one-dimensional Array that is the destination of the elements copied from List. The Array must have zero-based indexing."
          }
        ]
      },
      {
        "signature": "RhinoList<T> Duplicate()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns a shallow copy of this instance. If the generic type is comprised of only value types (struct, enum, ptr), then the result will be a deep copy.",
        "returns": "The duplicated list."
      },
      {
        "signature": "System.Boolean Exists(Predicate<T> match)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Determines whether the List contains elements that match the conditions defined by the specified predicate.",
        "parameters": [
          {
            "name": "match",
            "type": "Predicate<T>",
            "summary": "The Predicate(T) delegate that defines the conditions of the elements to search for."
          }
        ],
        "returns": "True if the List contains one or more elements that match the conditions defined by the specified predicate; otherwise, false."
      },
      {
        "signature": "T Find(Predicate<T> match)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Searches for an element that matches the conditions defined by the specified predicate, and returns the first occurrence within the entire List.",
        "parameters": [
          {
            "name": "match",
            "type": "Predicate<T>",
            "summary": "The Predicate(T) delegate that defines the conditions of the element to search for."
          }
        ],
        "returns": "The first element that matches the conditions defined by the specified predicate, if found; otherwise, the default value for type T."
      },
      {
        "signature": "RhinoList<T> FindAll(Predicate<T> match)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Retrieves all the elements that match the conditions defined by the specified predicate.",
        "parameters": [
          {
            "name": "match",
            "type": "Predicate<T>",
            "summary": "The Predicate(T) delegate that defines the conditions of the elements to search for."
          }
        ],
        "returns": "A ON_List(T) containing all the elements that match the conditions defined by the specified predicate, if found; otherwise, an empty ON_List(T)."
      },
      {
        "signature": "System.Int32 FindIndex(Predicate<T> match)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Searches for an element that matches the conditions defined by the specified predicate, and returns the zero-based index of the first occurrence within the entire List.",
        "parameters": [
          {
            "name": "match",
            "type": "Predicate<T>",
            "summary": "The Predicate(T) delegate that defines the conditions of the element to search for."
          }
        ],
        "returns": "The zero-based index of the first occurrence of an element that matches the conditions defined by match, if found; otherwise, -1."
      },
      {
        "signature": "System.Int32 FindIndex(System.Int32 startIndex, Predicate<T> match)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Searches for an element that matches the conditions defined by the specified predicate, and returns the zero-based index of the first occurrence within the entire List.",
        "parameters": [
          {
            "name": "startIndex",
            "type": "System.Int32",
            "summary": "The zero-based starting index of the search."
          },
          {
            "name": "match",
            "type": "Predicate<T>",
            "summary": "The Predicate(T) delegate that defines the conditions of the element to search for."
          }
        ],
        "returns": "The zero-based index of the first occurrence of an element that matches the conditions defined by match, if found; otherwise, -1."
      },
      {
        "signature": "System.Int32 FindIndex(System.Int32 startIndex, System.Int32 count, Predicate<T> match)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Searches for an element that matches the conditions defined by the specified predicate, and returns the zero-based index of the first occurrence within the range of elements in the List that extends from the specified index to the last element.",
        "parameters": [
          {
            "name": "startIndex",
            "type": "System.Int32",
            "summary": "The zero-based starting index of the search."
          },
          {
            "name": "count",
            "type": "System.Int32",
            "summary": "The number of elements in the section to search."
          },
          {
            "name": "match",
            "type": "Predicate<T>",
            "summary": "The Predicate(T) delegate that defines the conditions of the element to search for."
          }
        ],
        "returns": "The zero-based index of the first occurrence of an element that matches the conditions defined by match, if found; otherwise, -1."
      },
      {
        "signature": "T FindLast(Predicate<T> match)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Searches for an element that matches the conditions defined by the specified predicate, and returns the last occurrence within the entire List.",
        "parameters": [
          {
            "name": "match",
            "type": "Predicate<T>",
            "summary": "The Predicate(T) delegate that defines the conditions of the element to search for."
          }
        ],
        "returns": "The last element that matches the conditions defined by the specified predicate, if found; otherwise, the default value for type T."
      },
      {
        "signature": "System.Int32 FindLastIndex(Predicate<T> match)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Searches for an element that matches the conditions defined by the specified predicate, and returns the zero-based index of the last occurrence within the entire List.",
        "parameters": [
          {
            "name": "match",
            "type": "Predicate<T>",
            "summary": "The Predicate(T) delegate that defines the conditions of the element to search for."
          }
        ],
        "returns": "The zero-based index of the last occurrence of an element that matches the conditions defined by match, if found; otherwise, -1."
      },
      {
        "signature": "System.Int32 FindLastIndex(System.Int32 startIndex, Predicate<T> match)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Searches for an element that matches the conditions defined by the specified predicate, and returns the zero-based index of the last occurrence within the entire List.",
        "parameters": [
          {
            "name": "startIndex",
            "type": "System.Int32",
            "summary": "The zero-based starting index of the backward search."
          },
          {
            "name": "match",
            "type": "Predicate<T>",
            "summary": "The Predicate(T) delegate that defines the conditions of the element to search for."
          }
        ],
        "returns": "The zero-based index of the last occurrence of an element that matches the conditions defined by match, if found; otherwise, -1."
      },
      {
        "signature": "System.Int32 FindLastIndex(System.Int32 startIndex, System.Int32 count, Predicate<T> match)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Searches for an element that matches the conditions defined by the specified predicate, and returns the zero-based index of the last occurrence within the entire List.",
        "parameters": [
          {
            "name": "startIndex",
            "type": "System.Int32",
            "summary": "The zero-based starting index of the backward search."
          },
          {
            "name": "count",
            "type": "System.Int32",
            "summary": "The number of elements in the section to search."
          },
          {
            "name": "match",
            "type": "Predicate<T>",
            "summary": "The Predicate(T) delegate that defines the conditions of the element to search for."
          }
        ],
        "returns": "The zero-based index of the last occurrence of an element that matches the conditions defined by match, if found; otherwise, -1."
      },
      {
        "signature": "System.Void ForEach(Action<T> action)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Performs the specified action on each element of the List.",
        "parameters": [
          {
            "name": "action",
            "type": "Action<T>",
            "summary": "The Action(T) delegate to perform on each element of the List."
          }
        ]
      },
      {
        "signature": "IEnumerator<T> GetEnumerator()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Constructs an enumerator that is capable of iterating over all items in this list.",
        "returns": "The new enumerator."
      },
      {
        "signature": "RhinoList<T> GetRange(System.Int32 index, System.Int32 count)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Constructs a shallow copy of a range of elements in the source List.",
        "parameters": [
          {
            "name": "index",
            "type": "System.Int32",
            "summary": "The zero-based List index at which the range starts."
          },
          {
            "name": "count",
            "type": "System.Int32",
            "summary": "The number of elements in the range."
          }
        ],
        "returns": "A shallow copy of a range of elements in the source List."
      },
      {
        "signature": "System.Int32 IndexOf(T item, System.Int32 index, System.Int32 count)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Searches for the specified object and returns the zero-based index of the first occurrence within the range of elements in the List that starts at the specified index and contains the specified number of elements.",
        "parameters": [
          {
            "name": "item",
            "type": "T",
            "summary": "The object to locate in the List. The value can be a None reference (Nothing in Visual Basic) for reference types."
          },
          {
            "name": "index",
            "type": "System.Int32",
            "summary": "The zero-based starting index of the search."
          },
          {
            "name": "count",
            "type": "System.Int32",
            "summary": "The number of elements in the section to search."
          }
        ],
        "returns": "The zero-based index of the first occurrence of item within the entire List, if found; otherwise, -1."
      },
      {
        "signature": "System.Int32 IndexOf(T item, System.Int32 index)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Searches for the specified object and returns the zero-based index of the first occurrence within the range of elements in the List that extends from the specified index to the last element.",
        "parameters": [
          {
            "name": "item",
            "type": "T",
            "summary": "The object to locate in the List. The value can be a None reference (Nothing in Visual Basic) for reference types."
          },
          {
            "name": "index",
            "type": "System.Int32",
            "summary": "The zero-based starting index of the search."
          }
        ],
        "returns": "The zero-based index of the first occurrence of item within the entire List, if found; otherwise, -1."
      },
      {
        "signature": "System.Int32 IndexOf(T item)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Searches for the specified object and returns the zero-based index of the first occurrence within the entire List.",
        "parameters": [
          {
            "name": "item",
            "type": "T",
            "summary": "The object to locate in the List. The value can be a None reference (Nothing in Visual Basic) for reference types."
          }
        ],
        "returns": "The zero-based index of the first occurrence of item within the entire List, if found; otherwise, -1."
      },
      {
        "signature": "System.Void Insert(System.Int32 index, T item)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Inserts an element into the List at the specified index.",
        "parameters": [
          {
            "name": "index",
            "type": "System.Int32",
            "summary": "The zero-based index at which item should be inserted."
          },
          {
            "name": "item",
            "type": "T",
            "summary": "The object to insert. The value can be a None reference (Nothing in Visual Basic) for reference types."
          }
        ]
      },
      {
        "signature": "System.Void InsertRange(System.Int32 index, IEnumerable<T> collection)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Inserts the elements of a collection into the List at the specified index.",
        "parameters": [
          {
            "name": "index",
            "type": "System.Int32",
            "summary": "The zero-based index at which the new elements should be inserted."
          },
          {
            "name": "collection",
            "type": "IEnumerable<T>",
            "summary": "The collection whose elements should be inserted into the List. The collection itself cannot be a None reference (Nothing in Visual Basic), but it can contain elements that are a None reference (Nothing in Visual Basic), if type T is a reference type."
          }
        ]
      },
      {
        "signature": "System.Int32 LastIndexOf(T item, System.Int32 index, System.Int32 count)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Searches for the specified object and returns the zero-based index of the last occurrence within the range of elements in the List that contains the specified number of elements and ends at the specified index.",
        "parameters": [
          {
            "name": "item",
            "type": "T",
            "summary": "The object to locate in the List. The value can be a None reference (Nothing in Visual Basic) for reference types."
          },
          {
            "name": "index",
            "type": "System.Int32",
            "summary": "The zero-based starting index of the backward search."
          },
          {
            "name": "count",
            "type": "System.Int32",
            "summary": "The number of elements in the section to search."
          }
        ],
        "returns": "The zero-based index of the last occurrence of item within the entire the List, if found; otherwise, -1."
      },
      {
        "signature": "System.Int32 LastIndexOf(T item, System.Int32 index)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Searches for the specified object and returns the zero-based index of the last occurrence within the range of elements in the List that extends from the first element to the specified index.",
        "parameters": [
          {
            "name": "item",
            "type": "T",
            "summary": "The object to locate in the List. The value can be a None reference (Nothing in Visual Basic) for reference types."
          },
          {
            "name": "index",
            "type": "System.Int32",
            "summary": "The zero-based starting index of the backward search."
          }
        ],
        "returns": "The zero-based index of the last occurrence of item within the entire the List, if found; otherwise, -1."
      },
      {
        "signature": "System.Int32 LastIndexOf(T item)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Searches for the specified object and returns the zero-based index of the last occurrence within the entire List.",
        "parameters": [
          {
            "name": "item",
            "type": "T",
            "summary": "The object to locate in the List. The value can be a None reference (Nothing in Visual Basic) for reference types."
          }
        ],
        "returns": "The zero-based index of the last occurrence of item within the entire the List, if found; otherwise, -1."
      },
      {
        "signature": "System.Int32 RemapIndex(System.Int32 index)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Remap an index in the infinite range onto the List index range.",
        "parameters": [
          {
            "name": "index",
            "type": "System.Int32",
            "summary": "Index to remap."
          }
        ],
        "returns": "Remapped index."
      },
      {
        "signature": "System.Boolean Remove(T item)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Removes the first occurrence of a specific object from the List.",
        "parameters": [
          {
            "name": "item",
            "type": "T",
            "summary": "The object to remove from the List. The value can be a None reference (Nothing in Visual Basic) for reference types."
          }
        ],
        "returns": "True if item is successfully removed; otherwise, false. This method also returns False if item was not found in the List."
      },
      {
        "signature": "System.Int32 RemoveAll(Predicate<T> match)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Removes the all the elements that match the conditions defined by the specified predicate.",
        "parameters": [
          {
            "name": "match",
            "type": "Predicate<T>",
            "summary": "The Predicate(T) delegate that defines the conditions of the elements to remove."
          }
        ],
        "returns": "The number of elements removed from the List."
      },
      {
        "signature": "System.Void RemoveAt(System.Int32 index)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Removes the element at the specified index of the List.",
        "parameters": [
          {
            "name": "index",
            "type": "System.Int32",
            "summary": "The zero-based index of the element to remove."
          }
        ]
      },
      {
        "signature": "System.Int32 RemoveNulls()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Removes all elements from the List that are None references (Nothing in Visual Basic). This function will not do anything if T is not a Reference type.",
        "returns": "The number of nulls removed from the List."
      },
      {
        "signature": "System.Void RemoveRange(System.Int32 index, System.Int32 count)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Removes a range of elements from the List.",
        "parameters": [
          {
            "name": "index",
            "type": "System.Int32",
            "summary": "The zero-based starting index of the range of elements to remove."
          },
          {
            "name": "count",
            "type": "System.Int32",
            "summary": "The number of elements to remove."
          }
        ]
      },
      {
        "signature": "System.Void Reverse()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Reverses the order of the elements in the entire List."
      },
      {
        "signature": "System.Void Reverse(System.Int32 index, System.Int32 count)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Reverses the order of the elements in the specified range.",
        "parameters": [
          {
            "name": "index",
            "type": "System.Int32",
            "summary": "The zero-based starting index of the range to reverse."
          },
          {
            "name": "count",
            "type": "System.Int32",
            "summary": "The number of elements in the range to reverse."
          }
        ]
      },
      {
        "signature": "System.Void Sort()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Sorts the elements in the entire List using the default comparer."
      },
      {
        "signature": "System.Void Sort(Comparison<T> comparison)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Sorts the elements in the entire list using the specified comparer.",
        "parameters": [
          {
            "name": "comparison",
            "type": "Comparison<T>",
            "summary": "The System.Comparison(T) to use when comparing elements."
          }
        ]
      },
      {
        "signature": "System.Void Sort(IComparer<T> comparer)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Sorts the elements in the entire list using the specified System.Comparison(T)",
        "parameters": [
          {
            "name": "comparer",
            "type": "IComparer<T>",
            "summary": "The IComparer(T) implementation to use when comparing elements, or a None reference (Nothing in Visual Basic) to use the default comparer Comparer(T).Default."
          }
        ]
      },
      {
        "signature": "System.Void Sort(System.Double[] keys)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Sort this list based on a list of numeric keys of equal length. The keys array will not be altered.",
    "remarks": "This function does not exist on the DotNET List class. David thought it was a good idea.",
        "parameters": [
          {
            "name": "keys",
            "type": "System.Double[]",
            "summary": "Numeric keys to sort with."
          }
        ]
      },
      {
        "signature": "System.Void Sort(System.Int32 index, System.Int32 count, IComparer<T> comparer)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Sorts the elements in a range of elements in list using the specified comparer.",
        "parameters": [
          {
            "name": "index",
            "type": "System.Int32",
            "summary": "The zero-based starting index of the range to sort."
          },
          {
            "name": "count",
            "type": "System.Int32",
            "summary": "The length of the range to sort."
          },
          {
            "name": "comparer",
            "type": "IComparer<T>",
            "summary": "The IComparer(T) implementation to use when comparing elements, or a None reference (Nothing in Visual Basic) to use the default comparer Comparer(T).Default."
          }
        ]
      },
      {
        "signature": "System.Void Sort(System.Int32[] keys)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Sort this list based on a list of numeric keys of equal length. The keys array will not be altered.",
    "remarks": "This function does not exist on the DotNET List class. David thought it was a good idea.",
        "parameters": [
          {
            "name": "keys",
            "type": "System.Int32[]",
            "summary": "Numeric keys to sort with."
          }
        ]
      },
      {
        "signature": "T[] ToArray()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Constructs an array that contains all items in this list.",
        "returns": "An array containing all items in this list."
      },
      {
        "signature": "System.Void TrimExcess()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Sets the capacity to the actual number of elements in the List, if that number is less than a threshold value.",
    "remarks": "This function differs from the DotNET implementation of List<T> since that one only trims the excess if the excess exceeds 10% of the list length."
      },
      {
        "signature": "System.Boolean TrueForAll(Predicate<T> match)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Determines whether every element in the List matches the conditions defined by the specified predicate.",
        "parameters": [
          {
            "name": "match",
            "type": "Predicate<T>",
            "summary": "The Predicate(T) delegate that defines the conditions to check against the elements."
          }
        ],
        "returns": "True if every element in the List matches the conditions defined by the specified predicate; otherwise, false. If the list has no elements, the return value is true."
      }
    ]
  },
  {
    "namespace": "Rhino.Collections",
    "name": "TransformObjectList",
    "dataType": "class",
    "summary": "A collection of Rhino object, grip objects, and the Rhino objects that owns the grips. Used by the TransformCommand and GetTransform classes.",
    "interfaces": ["IDisposable"],
    "constructors": [
      {
        "signature": "TransformObjectList()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      }
    ],
    "properties": [
      {
        "signature": "int Count",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Number of elements in this list",
        "since": "5.10",
        "property": ["get"]
      },
      {
        "signature": "bool DisplayFeedbackEnabled",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "int GripCount",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Number of elements in grip list",
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "int GripOwnerCount",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Number of elements in grip owner list",
        "since": "6.0",
        "property": ["get"]
      }
    ],
    "methods": [
      {
        "signature": "System.Void Add(DocObjects.ObjRef objref)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Add an ObjRef to this list. Use this to add polyedges so the references are properly counted",
        "since": "5.10"
      },
      {
        "signature": "System.Void Add(DocObjects.RhinoObject rhinoObject)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Add a RhinoObject to this list",
        "since": "5.10"
      },
      {
        "signature": "System.Int32 AddObjects(GetObject go, System.Boolean allowGrips)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Add objects to list with a GetObject",
        "since": "6.0",
        "parameters": [
          {
            "name": "go",
            "type": "GetObject",
            "summary": "Setup the GetObject, i.e. prompt, geometry filter, allow pre/post select before passing it as an argument."
          },
          {
            "name": "allowGrips",
            "type": "System.Boolean",
            "summary": "Specifically allow grips to be selected.  if true, grips must also be included in geometry filter of the GetObject in order to be selected."
          }
        ],
        "returns": "Number of objects selected."
      },
      {
        "signature": "System.Void Clear()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Remove all elements from this list",
        "since": "5.10"
      },
      {
        "signature": "System.Void Dispose()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "System.Void Dispose(System.Boolean disposing)",
        "modifiers": ["protected", "virtual"],
        "protected": true,
        "virtual": true
      },
      {
        "signature": "BoundingBox GetBoundingBox(System.Boolean regularObjects, System.Boolean grips)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the bounding box of all of the objects that this list contains.",
        "since": "5.0",
        "parameters": [
          {
            "name": "regularObjects",
            "type": "System.Boolean",
            "summary": "True if any object except grips should be included; otherwise false."
          },
          {
            "name": "grips",
            "type": "System.Boolean",
            "summary": "True if grips should be included; otherwise false."
          }
        ],
        "returns": "Unset BoundingBox if this list is empty."
      },
      {
        "signature": "GripObject[] GripArray()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets access to the internal GripObject array of the TransformObjectList object.",
        "since": "6.0",
        "returns": "An array of grip objects, or an empty array if there were no grip objects."
      },
      {
        "signature": "RhinoObject[] GripOwnerArray()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets access to the internal GripOwner array of the TransformObjectList object.",
        "since": "6.0",
        "returns": "A n array of Rhino objects that are the owners of the grip objects the collection, or an empty array if there were no Rhino objects."
      },
      {
        "signature": "RhinoObject[] ObjectArray()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets access to the internal RhinoObject array of the TransformObjectList object.",
        "since": "7.0",
        "returns": "An array of Rhino objects, or an empty array if there were no Rhino objects."
      },
      {
        "signature": "System.Boolean UpdateDisplayFeedbackTransform(Transform xform)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      }
    ]
  },
  {
    "namespace": "Rhino.Commands",
    "name": "Command",
    "dataType": "class",
    "summary": "Defines a base class for all commands. This class is abstract.",
    "constructors": [
      {
        "signature": "Command()",
        "modifiers": ["protected"],
        "protected": true,
        "virtual": false,
        "summary": "Default protected constructor. It only allows instantiation through sub-classing."
      }
    ],
    "properties": [
      {
        "signature": "Guid LastCommandId",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the ID of the last commands.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "Result LastCommandResult",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the result code of the last command.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "string CommandContextHelpUrl",
        "modifiers": ["protected", "virtual"],
        "protected": true,
        "virtual": true,
        "summary": "Gets the URL of the command contextual help. This is usually a location of a local CHM file.  \nThe default implementation return an empty string.",
        "property": ["get"]
      },
      {
        "signature": "string EnglishName",
        "modifiers": ["public", "abstract"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the name of the command. This method is abstract.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "bool HistoryReplayOnObjectAttributeChange",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "By default, object attribute changes do not trigger history replay. Set this property to true, typically in the command's constructor, if you want objects created with this command to trigger history replay when their attributes change.",
        "since": "8.34",
        "property": ["get", "set"]
      },
      {
        "signature": "Guid Id",
        "modifiers": ["public", "virtual"],
        "protected": false,
        "virtual": true,
        "summary": "Gets the  unique ID of this command. It is best to use a Guid attribute for each custom derived command class since this will keep the id consistent between sessions of Rhino  <b>System.Runtime.InteropServices.GuidAttribute</b>",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "string LocalName",
        "modifiers": ["public", "virtual"],
        "protected": false,
        "virtual": true,
        "summary": "Gets the local name of the command.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "PlugIn PlugIn",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the plug-in where this commands is placed.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "PersistentSettings Settings",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the settings of the command.",
        "since": "5.0",
        "property": ["get"]
      }
    ],
    "methods": [
      {
        "signature": "System.Void DisplayHelp(System.Guid commandId)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Displays help for a command.",
        "since": "5.0",
        "parameters": [
          {
            "name": "commandId",
            "type": "System.Guid",
            "summary": "A command ID."
          }
        ]
      },
      {
        "signature": "System.String GetCommandContextHelpUrl(System.Guid commandId)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Returns a command's context help url.",
        "since": "8.18",
        "parameters": [
          {
            "name": "commandId",
            "type": "System.Guid",
            "summary": "A command ID."
          }
        ],
        "returns": "The command's context url if provided."
      },
      {
        "signature": "System.String[] GetCommandNames(System.Boolean english, System.Boolean loaded)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Gets list of command names in Rhino. This list does not include Test, Alpha, or System commands.",
        "since": "5.0",
        "parameters": [
          {
            "name": "english",
            "type": "System.Boolean",
            "summary": "if true, retrieve the English name for every command. if false, retrieve the local name for every command."
          },
          {
            "name": "loaded",
            "type": "System.Boolean",
            "summary": "if true, only get names of currently loaded commands. if false, get names of all registered (may not be currently loaded) commands."
          }
        ],
        "returns": "An array instance with command names. This array could be empty, but not null."
      },
      {
        "signature": "System.Guid[] GetCommandStack()",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Determines if Rhino is currently running a command. Because Rhino allow for transparent commands (commands that can be run from inside of other commands), this method returns the total ids of active commands.",
        "since": "5.0",
        "returns": "Ids of running commands or None if no commands are currently running. The \"active\" command is at the end of this list."
      },
      {
        "signature": "Style GetCommandStyle(System.Guid commandId)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Returns a command's style flags.",
        "since": "9.0",
        "parameters": [
          {
            "name": "commandId",
            "type": "System.Guid",
            "summary": "A command ID."
          }
        ],
        "returns": "The command's style flags, or <b>Style.None</b> if the command is not found."
      },
      {
        "signature": "MostRecentCommandDescription[] GetMostRecentCommands()",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Gets an array of most recent command descriptions.",
        "since": "5.0",
        "returns": "An array of command descriptions."
      },
      {
        "signature": "System.Boolean InCommand()",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Determines if Rhino is currently running a command.",
        "since": "5.0",
        "returns": "True if a command is currently running, False if no commands are currently running."
      },
      {
        "signature": "System.Boolean InScriptRunnerCommand()",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "This is a low level tool to determine if Rhino is currently running a script running command like \"ReadCommandFile\" or the RhinoScript plug-in's \"RunScript\".",
        "since": "5.0",
        "returns": "True if a script running command is active."
      },
      {
        "signature": "System.Boolean IsCommand(System.String name)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Determines is a string is a command.",
        "since": "5.0",
        "parameters": [
          {
            "name": "name",
            "type": "System.String",
            "summary": "A string."
          }
        ],
        "returns": "True if the string is a command."
      },
      {
        "signature": "System.Boolean IsValidCommandName(System.String name)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Determines if a string is a valid command name.",
        "since": "5.0",
        "parameters": [
          {
            "name": "name",
            "type": "System.String",
            "summary": "A string."
          }
        ],
        "returns": "True if the string is a valid command name."
      },
      {
        "signature": "System.Guid LookupCommandId(System.String name, System.Boolean searchForEnglishName)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Returns the ID of a command.",
        "since": "5.0",
        "parameters": [
          {
            "name": "name",
            "type": "System.String",
            "summary": "The name of the command."
          },
          {
            "name": "searchForEnglishName",
            "type": "System.Boolean",
            "summary": "True if the name is to searched in English. This ensures that a '_' is prepended to the name."
          }
        ],
        "returns": "An of the command, or <b>Guid.Empty</b> on error."
      },
      {
        "signature": "System.String LookupCommandName(System.Guid commandId, System.Boolean englishName)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Returns the command name given a command ID.",
        "since": "5.0",
        "parameters": [
          {
            "name": "commandId",
            "type": "System.Guid",
            "summary": "A command ID."
          },
          {
            "name": "englishName",
            "type": "System.Boolean",
            "summary": "True if the requested command is in English."
          }
        ],
        "returns": "The command name, or None on error."
      },
      {
        "signature": "System.Void RunProxyCommand(RunCommandDelegate commandCallback, RhinoDoc doc, System.Object data)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Execute some code as if it were running in a command",
        "since": "6.13",
        "parameters": [
          {
            "name": "commandCallback",
            "type": "RunCommandDelegate",
            "summary": ""
          },
          {
            "name": "doc",
            "type": "RhinoDoc",
            "summary": ""
          },
          {
            "name": "data",
            "type": "System.Object",
            "summary": "optional extra data to pass to callback"
          }
        ]
      },
      {
        "signature": "System.Void OnHelp()",
        "modifiers": ["protected", "virtual"],
        "protected": true,
        "virtual": true,
        "summary": "Is called when the user needs assistance with this command."
      },
      {
        "signature": "System.Boolean ReplayHistory(Rhino.DocObjects.ReplayHistoryData replayData)",
        "modifiers": ["protected", "virtual"],
        "protected": true,
        "virtual": true,
        "summary": "Repeats an operation of a command.  \nIn order to make this function work, you will likely need to grab the Result property that gives the      list of input objects. Then, you will be able to replace these inputs by using one of the UpdateToX() methods      of the ReplayHistoryResult.  \nYou should NOT use any document AddX() or ReplaceX() functions, as they will break history.",
        "parameters": [
          {
            "name": "replayData",
            "type": "Rhino.DocObjects.ReplayHistoryData",
            "summary": "The replay history information."
          }
        ],
        "returns": "True if the operation succeeded.  \nThe default implementation always returns false."
      },
      {
        "signature": "Result RunCommand(RhinoDoc doc, RunMode mode)",
        "modifiers": ["protected", "abstract"],
        "protected": true,
        "virtual": false,
        "summary": "Executes the command.",
        "parameters": [
          {
            "name": "doc",
            "type": "RhinoDoc",
            "summary": "The current document."
          },
          {
            "name": "mode",
            "type": "RunMode",
            "summary": "The command running mode."
          }
        ],
        "returns": "The command result code."
      }
    ],
    "events": [
      {
        "signature": "EventHandler<CommandEventArgs> BeginCommand",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Called just before command.RunCommand().",
        "since": "5.0"
      },
      {
        "signature": "EventHandler<CommandEventArgs> EndCommand",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Called immediately after command.RunCommand().",
        "since": "5.0"
      },
      {
        "signature": "EventHandler<UndoRedoEventArgs> UndoRedo",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Used to monitor Rhino's built in undo/redo support.",
        "since": "5.0"
      }
    ]

  },
  {
    "namespace": "Rhino.Commands",
    "name": "CommandEventArgs",
    "dataType": "class",
    "baseclass": "EventArgs",
    "properties": [
      {
        "signature": "string CommandEnglishName",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the English name of the command that raised this event.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "string CommandHelpURL",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the help url of the command that raised this event.",
        "since": "8.0",
    "remarks": "Null is a possible return. Calling function must check before using result. m_help_url will get set only if the commmand has a ContextHelpURL override.",
        "property": ["get"]
      },
      {
        "signature": "Guid CommandId",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the ID of the command that raised this event.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "string CommandLocalName",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the name of the command that raised this event in the local language.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "string CommandPluginName",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the name of the plug-in that this command belongs to.  If the command is internal to Rhino, then this property is an empty string.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "Result CommandResult",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the result of the command that raised this event. This value is only meaningful during EndCommand events.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "RhinoDoc Document",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "uint DocumentRuntimeSerialNumber",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get", "set"]
      }
    ]
  },
  {
    "namespace": "Rhino.Commands",
    "name": "CommandStyleAttribute",
    "dataType": "class",
    "summary": "Decorates <b>Command</b> to provide styles.",
    "baseclass": "Attribute",
    "constructors": [
      {
        "signature": "CommandStyleAttribute(Style styles)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Initializes a new command style attribute class.",
        "since": "5.0",
        "parameters": [
          {
            "name": "styles",
            "type": "Style",
            "summary": "Set of values combined using a bitwise OR operation to get the desired combination of command styles."
          }
        ]
      }
    ],
    "properties": [
      {
        "signature": "Style Styles",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the associated style.",
        "since": "5.0",
        "property": ["get"]
      }
    ]
  },
  {
    "namespace": "Rhino.Commands",
    "name": "CustomUndoEventArgs",
    "dataType": "class",
    "summary": "Argument package that is passed to a custom undo delegate",
    "baseclass": "EventArgs",
    "properties": [
      {
        "signature": "string ActionDescription",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "Guid CommandId",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "bool CreatedByRedo",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "RhinoDoc Document",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "object Tag",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "uint UndoSerialNumber",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0",
        "property": ["get"]
      }
    ]
  },
  {
    "namespace": "Rhino.Commands",
    "name": "MostRecentCommandDescription",
    "dataType": "class",
    "summary": "Stores the macro and display string of the most recent command.",
    "constructors": [
      {
        "signature": "MostRecentCommandDescription()",
        "summary": "Initializes a new instance of the MostRecentCommandDescription class"
      }
    ],
    "properties": [
      {
        "signature": "string DisplayString",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "string Macro",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0",
        "property": ["get", "set"]
      }
    ]
  },
  {
    "namespace": "Rhino.Commands",
    "name": "Result",
    "dataType": "enum",
    "summary": "Defines enumerated constant values for several command result types.",
    "since": "5.0",
    "values": [
      {
        "signature": "Success = 0",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Command worked."
      },
      {
        "signature": "Cancel  = 1",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "User canceled command."
      },
      {
        "signature": "Nothing = 2",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Command did nothing but cancel was not pressed."
      },
      {
        "signature": "Failure",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Command failed (bad input, computational problem, etc.)"
      },
      {
        "signature": "UnknownCommand",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Command not found (user probably had a typo in command name)."
      },
      {
        "signature": "CancelModelessDialog",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Commands canceled and modeless dialog."
      },
      {
        "signature": "ExitRhino = 0x0FFFFFFF",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "exit RhinoCommon."
      }
    ]

  },
  {
    "namespace": "Rhino.Commands",
    "name": "RunMode",
    "dataType": "enum",
    "summary": "Provides enumerated constants for a command running mode. This is currently interactive or scripted.",
    "since": "5.0",
    "values": [
      {
        "signature": "Interactive = 0",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Can use dialogs for input. Must use message boxes to report serious error conditions."
      },
      {
        "signature": "Scripted = 1",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "All input must come from command line, GetPoint, GetObject, GetString, etc.  Must use message boxes to report serious error conditions.  Script mode gets used when a command is run with a hyphen (-) prefix."
      }
    ]

  },
  {
    "namespace": "Rhino.Commands",
    "name": "SelCommand",
    "dataType": "class",
    "summary": "For adding nestable whole object and subobject selection commands, derive your command from SelCommand and override the abstract SelFilter and virtual SelSubObjectFilter functions.",
    "baseclass": "Rhino.Commands.Command",
    "constructors": [
      {
        "signature": "SelCommand()",
        "summary": "Initializes a new instance of the SelCommand class"
      }
    ],
    "properties": [
      {
        "signature": "bool BeQuiet",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool TestGrips",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool TestLights",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0",
        "property": ["get", "set"]
      }
    ],
    "methods": [
      {
        "signature": "Result RunCommand(RhinoDoc doc, RunMode mode)",
        "modifiers": ["protected", "override"],
        "protected": true,
        "virtual": false
      },
      {
        "signature": "System.Boolean SelFilter(Rhino.DocObjects.RhinoObject rhObj)",
        "modifiers": ["protected", "abstract"],
        "protected": true,
        "virtual": false,
        "summary": "Override this abstract function and return True if object should be selected.",
        "parameters": [
          {
            "name": "rhObj",
            "type": "Rhino.DocObjects.RhinoObject",
            "summary": "The object to check regarding selection status."
          }
        ],
        "returns": "True if the object should be selected; False otherwise."
      },
      {
        "signature": "System.Boolean SelSubObjectFilter(Rhino.DocObjects.RhinoObject rhObj, List<ComponentIndex> indicesToSelect)",
        "modifiers": ["protected", "virtual"],
        "protected": true,
        "virtual": true,
        "summary": "To select subobjects, override this virtual function, add component indices of the subobjects that should get selected to indicesToSelect list and return true. This is called only if the SelFilter returns False and the whole object does not get selected.",
        "since": "7.9",
        "parameters": [
          {
            "name": "rhObj",
            "type": "Rhino.DocObjects.RhinoObject",
            "summary": "The object to check regarding selection status."
          },
          {
            "name": "indicesToSelect",
            "type": "List<Rhino.Geometry.ComponentIndex>",
            "summary": "The component indices of the subobjects to select."
          }
        ],
        "returns": "True if components added to indicesToSelect should get selected."
      }
    ]
  },
  {
    "namespace": "Rhino.Commands",
    "name": "Style",
    "dataType": "enum",
    "summary": "Defines bitwise mask flags for different styles of commands, such as  <b>Style.Hidden</b> or <b>Style.DoNotRepeat</b> .",
    "since": "5.0",
    "values": [
      {
        "signature": "None = 0",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "No flag is defined."
      },
      {
        "signature": "Hidden = 1",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Also known as a \"test\" command. The command name does not auto-complete when typed on the command line an is therefore not discoverable. Useful for writing commands that users don't normally have access to."
      },
      {
        "signature": "ScriptRunner = 2",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "For commands that want to run scripts as if they were typed at the command line (like RhinoScript's RunScript command)"
      },
      {
        "signature": "Transparent = 4",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Transparent commands can be run inside of other commands. The command does not modify the contents of the model's geometry in any way. Examples of transparent commands include commands that change views and toggle snap states.  Any command that adds or deletes, a view cannot be transparent."
      },
      {
        "signature": "DoNotRepeat = 8",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "The command should not be repeated by pressing \"ENTER\" immediately after the command finishes."
      },
      {
        "signature": "NotUndoable = 16",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "By default, all commands are undo-able."
      },
      {
        "signature": "System = 32",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "reserved"
      }
    ]

  },
  {
    "namespace": "Rhino.Commands",
    "name": "TransformCommand",
    "dataType": "class",
    "baseclass": "Rhino.Commands.Command",
    "constructors": [
      {
        "signature": "TransformCommand()",
        "summary": "Initializes a new instance of the TransformCommand class"
      }
    ],
    "methods": [
      {
        "signature": "System.Void DuplicateObjects(Rhino.Collections.TransformObjectList list)",
        "modifiers": ["protected"],
        "protected": true,
        "virtual": false
      },
      {
        "signature": "System.Void ResetGrips(Rhino.Collections.TransformObjectList list)",
        "modifiers": ["protected"],
        "protected": true,
        "virtual": false,
        "summary": "Sets dynamic grip locations back to starting grip locations. This makes things like the Copy command work when grips are \"copied\".",
        "parameters": [
          {
            "name": "list",
            "type": "Rhino.Collections.TransformObjectList",
            "summary": "A list of object to transform. This is a special list type."
          }
        ]
      },
      {
        "signature": "Result SelectObjects(System.String prompt, DocObjects.ObjectType filter, Rhino.Collections.TransformObjectList list)",
        "modifiers": ["protected"],
        "protected": true,
        "virtual": false,
        "summary": "Selects objects within the command.",
        "parameters": [
          {
            "name": "prompt",
            "type": "System.String",
            "summary": "The selection prompt."
          },
          {
            "name": "filter",
            "type": "DocObjects.ObjectType",
            "summary": "Geometry filter to limit selection. Use function above if you do not need specific types."
          },
          {
            "name": "list",
            "type": "Rhino.Collections.TransformObjectList",
            "summary": "A list of objects to transform. This is a special list type."
          }
        ],
        "returns": "The operation result."
      },
      {
        "signature": "Result SelectObjects(System.String prompt, Rhino.Collections.TransformObjectList list)",
        "modifiers": ["protected"],
        "protected": true,
        "virtual": false,
        "summary": "Selects objects within the command.",
        "parameters": [
          {
            "name": "prompt",
            "type": "System.String",
            "summary": "The selection prompt."
          },
          {
            "name": "list",
            "type": "Rhino.Collections.TransformObjectList",
            "summary": "A list of objects to transform. This is a special list type."
          }
        ],
        "returns": "The operation result."
      },
      {
        "signature": "System.Void TransformObjects(Rhino.Collections.TransformObjectList list, Rhino.Geometry.Transform xform, System.Boolean copy, System.Boolean autoHistory)",
        "modifiers": ["protected"],
        "protected": true,
        "virtual": false
      }
    ]
  },
  {
    "namespace": "Rhino.Commands",
    "name": "UndoRedoEventArgs",
    "dataType": "class",
    "summary": "Undo Redo Event Arguments",
    "baseclass": "EventArgs",
    "since": "5.0",
    "properties": [
      {
        "signature": "Guid CommandId",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "The id of the Rhino command. This can be Guid.Empty.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "uint DocumentSerialNumber",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "The document runtime serial number.",
        "since": "9.0",
        "property": ["get"]
      },
      {
        "signature": "bool IsBeforeBeginRecording",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "8.0",
        "property": ["get"]
      },
      {
        "signature": "bool IsBeforeEndRecording",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "8.0",
        "property": ["get"]
      },
      {
        "signature": "bool IsBeginRecording",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "bool IsBeginRedo",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "bool IsBeginUndo",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "bool IsEndRecording",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "bool IsEndRedo",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "bool IsEndUndo",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "bool IsPurgeRecord",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "uint UndoSerialNumber",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "The undo record serial number.",
        "since": "5.0",
        "property": ["get"]
      }
    ]
  },
  {
    "namespace": "Rhino.Display",
    "name": "BackgroundStyle",
    "dataType": "enum",
    "summary": "Constants that define how the background of a viewport should be filled.",
    "since": "5.0",
    "values": [
      {
        "signature": "SolidColor = 0",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Single solid color fill."
      },
      {
        "signature": "WallpaperImage = 1",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Simple image background wallpaper."
      },
      {
        "signature": "Gradient = 2",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Two color top/bottom color gradient."
      },
      {
        "signature": "Environment = 3",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Using a Render Environment."
      }
    ]

  },
  {
    "namespace": "Rhino.Display",
    "name": "BlendMode",
    "dataType": "enum",
    "summary": "Defines enumerated constants for display blend modes.",
    "since": "5.0",
    "values": [
      {
        "signature": "Zero = 0",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Blends using 0."
      },
      {
        "signature": "One = 1",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Blends using 1."
      },
      {
        "signature": "SourceColor = 0x0300",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Blends using source color."
      },
      {
        "signature": "OneMinusSourceColor = 0x0301",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Blends using 1-source color."
      },
      {
        "signature": "SourceAlpha = 0x0302",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Blends using the source alpha channel."
      },
      {
        "signature": "OneMinusSourceAlpha = 0x0303",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Blends using 1-the source alpha channel."
      },
      {
        "signature": "DestinationAlpha = 0x0304",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Blends using the destination alpha channel."
      },
      {
        "signature": "OneMinusDestinationAlpha = 0x0305",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Blends using 1-the destination alpha channel."
      },
      {
        "signature": "DestinationColor = 0x0306",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Blends using the destination color."
      },
      {
        "signature": "OneMinusDestinationColor = 0x0307",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Blends using 1-the destination color."
      },
      {
        "signature": "SourceAlphaSaturate = 0x0308",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Blends using the source alpha saturation."
      }
    ]

  },
  {
    "namespace": "Rhino.Display",
    "name": "CalculateBoundingBoxEventArgs",
    "dataType": "class",
    "baseclass": "Rhino.Display.DrawEventArgs",
    "properties": [
      {
        "signature": "BoundingBox BoundingBox",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the current bounding box.",
        "since": "5.0",
        "property": ["get"]
      }
    ],
    "methods": [
      {
        "signature": "System.Void IncludeBoundingBox(BoundingBox box)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Unites a bounding box with the current display bounding box in order to ensure dynamic objects in \"box\" are drawn.",
        "since": "5.0",
        "parameters": [
          {
            "name": "box",
            "type": "BoundingBox",
            "summary": "The box to unite."
          }
        ]
      }
    ]
  },
  {
    "namespace": "Rhino.Display",
    "name": "Color4f",
    "dataType": "struct",
    "summary": "Color defined by 4 floating point values.",
    "constructors": [
      {
        "signature": "Color4f(Color color)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "Color4f(Color4f color)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "Color4f(float red, float green, float blue, float alpha)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "Color4f(int argb)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "7.0"
      }
    ],
    "properties": [
      {
        "signature": "Color4f Black",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "Color4f Empty",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "Color4f White",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "float A",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "float B",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "float G",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "float L",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.3",
        "property": ["get"]
      },
      {
        "signature": "float R",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0",
        "property": ["get"]
      }
    ],
    "methods": [
      {
        "signature": "Color4f ApplyGamma(Color4f col, System.Single gamma)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "6.0"
      },
      {
        "signature": "Color4f FromArgb(System.Single a, Color4f color)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "5.11"
      },
      {
        "signature": "Color4f FromArgb(System.Single a, System.Single r, System.Single g, System.Single b)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "5.11"
      },
      {
        "signature": "System.Drawing.Color AsSystemColor()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "Color4f BlendTo(System.Single t, Color4f col)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "System.Boolean Equals(System.Object obj)",
        "modifiers": ["public", "override"],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "System.Int32 GetHashCode()",
        "modifiers": ["public", "override"],
        "protected": false,
        "virtual": false
      }
    ],
    "operators": [
      {
        "signature": "bool operator !=(Color4f a, Color4f b)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "bool operator ==(Color4f a, Color4f b)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      }
    ]

  },
  {
    "namespace": "Rhino.Display",
    "name": "ColorCMYK",
    "dataType": "struct",
    "summary": "Represents a CMYK (Cyan, Magenta, Yellow, Key) color with double precision floating point channels. CMYK colors are used primarily in printing environments as they provide a good simulation of physical ink.",
    "constructors": [
      {
        "signature": "ColorCMYK(Color rgb)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Initializes a new instance of ColorCMYK that is equivalent to an ARGB color.",
        "since": "5.0",
    "remarks": "Exact conversions between color spaces are often not possible.",
        "parameters": [
          {
            "name": "rgb",
            "type": "System.Drawing.Color",
            "summary": "ARGB color to mimic."
          }
        ]
      },
      {
        "signature": "ColorCMYK(double alpha, double cyan, double magenta, double yellow, double key)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Initializes a new instance of ColorCMYK with custom channel values.",
        "since": "5.0",
        "parameters": [
          {
            "name": "alpha",
            "type": "System.Double",
            "summary": "Alpha channel value. Alpha channels are limited to the 0.0 and 1.0 range."
          },
          {
            "name": "cyan",
            "type": "System.Double",
            "summary": "Cyan channel value. Cyan channels are limited to the 0.0 and 1.0 range."
          },
          {
            "name": "magenta",
            "type": "System.Double",
            "summary": "Magenta channel value. Magenta channels are limited to the 0.0 and 1.0 range."
          },
          {
            "name": "yellow",
            "type": "System.Double",
            "summary": "Yellow channel value. Yellow channels are limited to the 0.0 and 1.0 range."
          },
          {
            "name": "key",
            "type": "System.Double",
            "summary": "Key channel value. Key channels are limited to the 0.0 and 1.0 range."
          }
        ]
      },
      {
        "signature": "ColorCMYK(double cyan, double magenta, double yellow, double key)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Initializes a new instance of ColorCMYK with custom channel values.",
        "since": "5.0",
        "parameters": [
          {
            "name": "cyan",
            "type": "System.Double",
            "summary": "Cyan channel value. Cyan channels are limited to the 0.0 and 1.0 range."
          },
          {
            "name": "magenta",
            "type": "System.Double",
            "summary": "Magenta channel value. Magenta channels are limited to the 0.0 and 1.0 range."
          },
          {
            "name": "yellow",
            "type": "System.Double",
            "summary": "Yellow channel value. Yellow channels are limited to the 0.0 and 1.0 range."
          },
          {
            "name": "key",
            "type": "System.Double",
            "summary": "Key channel value. Key channels are limited to the 0.0 and 1.0 range."
          }
        ]
      },
      {
        "signature": "ColorCMYK(double cyan, double magenta, double yellow)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Initializes a new instance of ColorCMYK with custom channel values. The cyan, magenta and yellow values will be adjusted based on their combined darkness.",
        "since": "5.0",
        "parameters": [
          {
            "name": "cyan",
            "type": "System.Double",
            "summary": "Cyan channel hint."
          },
          {
            "name": "magenta",
            "type": "System.Double",
            "summary": "Magenta channel hint."
          },
          {
            "name": "yellow",
            "type": "System.Double",
            "summary": "Yellow channel hint."
          }
        ]
      }
    ],
    "properties": [
      {
        "signature": "double A",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the Alpha channel value. Alpha channels are limited to the 0~1 range.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "double C",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the Cyan channel value. Cyan channels are limited to the 0~1 range.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "double K",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the Key channel value. Key channels are limited to the 0~1 range.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "double M",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the Magenta channel value. Magenta channels are limited to the 0~1 range.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "double Y",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the Yellow channel value. Yellow channels are limited to the 0~1 range.",
        "since": "5.0",
        "property": ["get", "set"]
      }
    ],
    "methods": [
      {
        "signature": "ColorCMYK CreateFromHSL(ColorHSL hsl)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Constructs the nearest CMYK equivalent of an HSL color.",
        "since": "5.0",
        "parameters": [
          {
            "name": "hsl",
            "type": "ColorHSL",
            "summary": "Target color in HSL space."
          }
        ],
        "returns": "The CMYK equivalent of the HSL color."
      },
      {
        "signature": "ColorCMYK CreateFromHSV(ColorHSV hsv)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Constructs the nearest CMYK equivalent of an HSV color.",
        "since": "6.0",
        "parameters": [
          {
            "name": "hsv",
            "type": "ColorHSV",
            "summary": "Target color in HSV space."
          }
        ],
        "returns": "The CMYK equivalent of the HSV color."
      },
      {
        "signature": "ColorCMYK CreateFromLAB(ColorLAB lab)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Constructs the nearest CMYK equivalent of a LAB color.",
        "since": "5.0",
        "parameters": [
          {
            "name": "lab",
            "type": "ColorLAB",
            "summary": "Target color in LAB space."
          }
        ],
        "returns": "The CMYK equivalent of the LAB color."
      },
      {
        "signature": "ColorCMYK CreateFromLCH(ColorLCH lch)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Constructs the nearest CMYK equivalent of a LCH color.",
        "since": "5.0",
        "parameters": [
          {
            "name": "lch",
            "type": "ColorLCH",
            "summary": "Target color in LCH space."
          }
        ],
        "returns": "The CMYK equivalent of the LCH color."
      },
      {
        "signature": "ColorCMYK CreateFromRGBA(ColorRGBA rgba)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Create the nearest CMYK equivalent of a RGBA color.",
        "since": "7.0",
        "parameters": [
          {
            "name": "rgba",
            "type": "ColorRGBA",
            "summary": "Target color in RGBA space."
          }
        ],
        "returns": "The CMYK equivalent of the RGBA color."
      },
      {
        "signature": "ColorCMYK CreateFromXYZ(ColorXYZ xyz)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Constructs the nearest CMYK equivalent of an XYZ color.",
        "since": "5.0",
        "parameters": [
          {
            "name": "xyz",
            "type": "ColorXYZ",
            "summary": "Target color in XYZ space."
          }
        ],
        "returns": "The CMYK equivalent of the XYZ color."
      }
    ]
  },
  {
    "namespace": "Rhino.Display",
    "name": "ColorGradient",
    "dataType": "class",
    "constructors": [
      {
        "signature": "ColorGradient()",
        "summary": "Initializes a new instance of the ColorGradient class"
      }
    ],
    "properties": [
      {
        "signature": "Point3d EndPoint",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "End point of gradient",
        "since": "7.0",
        "property": ["get", "set"]
      },
      {
        "signature": "GradientType GradientType",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gradient fill type associated with this hatch",
        "since": "7.0",
        "property": ["get", "set"]
      },
      {
        "signature": "double Repeat",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Repeat factor for gradient. Factors greater than 1 define a reflected repeat factor while values less than -1 define a wrapped repeat factor.",
        "since": "7.0",
        "property": ["get", "set"]
      },
      {
        "signature": "Point3d StartPoint",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Start point of gradient",
        "since": "7.0",
        "property": ["get", "set"]
      }
    ],
    "methods": [
      {
        "signature": "ColorGradient Duplicate()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Create a duplicate of this color gradient.",
        "since": "8.8",
        "returns": "An exact duplicate of this color gradient."
      },
      {
        "signature": "ColorStop[] GetColorStops()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Get sorted list of colors / positions that a gradient is defined over",
        "since": "7.0"
      },
      {
        "signature": "System.Void SetColorStops(IEnumerable<ColorStop> stops)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Set color stops for the gradient",
        "since": "7.0"
      }
    ]
  },
  {
    "namespace": "Rhino.Display",
    "name": "ColorHSL",
    "dataType": "struct",
    "summary": "Represents an HSL (Hue, Saturation, Luminance) color with double precision floating point channels. HSL colors are used primarily in Graphical User Interface environments as they provide a very natural approach to picking colors.",
    "constructors": [
      {
        "signature": "ColorHSL(Color rgb)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Constructs a new instance of ColorHSL that is equivalent to an ARGB color.",
        "since": "5.0",
    "remarks": "Exact conversions between color spaces are often not possible.",
        "parameters": [
          {
            "name": "rgb",
            "type": "System.Drawing.Color",
            "summary": "ARGB color to mimic."
          }
        ]
      },
      {
        "signature": "ColorHSL(double alpha, double hue, double saturation, double luminance)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Constructs a new instance of ColorHSL with custom channel values.",
        "since": "5.0",
        "parameters": [
          {
            "name": "alpha",
            "type": "System.Double",
            "summary": "Alpha channel value. Channel will be limited to 0~1."
          },
          {
            "name": "hue",
            "type": "System.Double",
            "summary": "Hue channel value. Hue channels rotate between 0.0 and 1.0."
          },
          {
            "name": "saturation",
            "type": "System.Double",
            "summary": "Saturation channel value. Channel will be limited to 0~1."
          },
          {
            "name": "luminance",
            "type": "System.Double",
            "summary": "Luminance channel value. Channel will be limited to 0~1."
          }
        ]
      },
      {
        "signature": "ColorHSL(double hue, double saturation, double luminance)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Constructs a new instance of ColorHSL with custom channel values.",
        "since": "5.0",
        "parameters": [
          {
            "name": "hue",
            "type": "System.Double",
            "summary": "Hue channel value. Hue channels rotate between 0.0 and 1.0."
          },
          {
            "name": "saturation",
            "type": "System.Double",
            "summary": "Saturation channel value. Channel will be limited to 0~1."
          },
          {
            "name": "luminance",
            "type": "System.Double",
            "summary": "Luminance channel value. Channel will be limited to 0~1."
          }
        ]
      }
    ],
    "properties": [
      {
        "signature": "double A",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the alpha channel value. Alpha channels are limited to a 0~1 range.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "double H",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the hue channel value. Hue channels rotate between 0.0 and 1.0.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "double L",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the luminance channel value. Luminance channels are limited to a 0~1 range.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "double S",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the saturation channel value. Saturation channels are limited to a 0~1 range.",
        "since": "5.0",
        "property": ["get", "set"]
      }
    ],
    "methods": [
      {
        "signature": "ColorHSL CreateFromCMYK(ColorCMYK cmyk)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Create the nearest HSL equivalent of a CMYK color.",
        "since": "5.0",
        "parameters": [
          {
            "name": "cmyk",
            "type": "ColorCMYK",
            "summary": "Target color in CMYK space."
          }
        ],
        "returns": "The HSL equivalent of the CMYK color."
      },
      {
        "signature": "ColorHSL CreateFromHSV(ColorHSV hsv)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Constructs the nearest HSL equivalent of an HSV color.",
        "since": "6.0",
        "parameters": [
          {
            "name": "hsv",
            "type": "ColorHSV",
            "summary": "Target color in HSV space."
          }
        ],
        "returns": "The HSL equivalent of the HSV color."
      },
      {
        "signature": "ColorHSL CreateFromLAB(ColorLAB lab)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Create the nearest HSL equivalent of a LAB color.",
        "since": "5.0",
        "parameters": [
          {
            "name": "lab",
            "type": "ColorLAB",
            "summary": "Target color in LAB space."
          }
        ],
        "returns": "The HSL equivalent of the LAB color."
      },
      {
        "signature": "ColorHSL CreateFromLCH(ColorLCH lch)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Create the nearest HSL equivalent of a LCH color.",
        "since": "5.0",
        "parameters": [
          {
            "name": "lch",
            "type": "ColorLCH",
            "summary": "Target color in LCH space."
          }
        ],
        "returns": "The HSL equivalent of the LCH color."
      },
      {
        "signature": "ColorHSL CreateFromRGBA(ColorRGBA rgba)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Create the nearest HSL equivalent of a RGBA color.",
        "since": "7.0",
        "parameters": [
          {
            "name": "rgba",
            "type": "ColorRGBA",
            "summary": "Target color in RGBA space."
          }
        ],
        "returns": "The HSL equivalent of the RGBA color."
      },
      {
        "signature": "ColorHSL CreateFromXYZ(ColorXYZ xyz)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Create the nearest HSL equivalent of an XYZ color.",
        "since": "5.0",
        "parameters": [
          {
            "name": "xyz",
            "type": "ColorXYZ",
            "summary": "Target color in XYZ space."
          }
        ],
        "returns": "The HSL equivalent of the XYZ color."
      },
      {
        "signature": "System.Drawing.Color ToArgbColor()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Convert HSL color to an equivalent System.Drawing.Color.",
        "since": "5.0",
        "returns": "A .Net framework library color value."
      }
    ]
  },
  {
    "namespace": "Rhino.Display",
    "name": "ColorHSV",
    "dataType": "struct",
    "summary": "Represents an HSV (Hue, Saturation, Value) color with double precision floating point channels. HSV colors (also sometimes called HSB, where B means Brightness) are similar to HSL colors in that they represent colors in a cylindrical color space, and are intended to provide intuitive means to edit the brightness of a particular color over RGB color space where each color channel would need to be modified to affect the color brightness.",
    "constructors": [
      {
        "signature": "ColorHSV(Color rgb)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Constructs a new instance of ColorHSV that is equivalent to an ARGB color.",
        "since": "6.0",
    "remarks": "Exact conversions between color spaces are often not possible.",
        "parameters": [
          {
            "name": "rgb",
            "type": "System.Drawing.Color",
            "summary": "ARGB color to mimic."
          }
        ]
      },
      {
        "signature": "ColorHSV(double alpha, double hue, double saturation, double value)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Constructs a new instance of ColorHSV with custom channel values.",
        "since": "6.0",
        "parameters": [
          {
            "name": "alpha",
            "type": "System.Double",
            "summary": "Alpha channel value. Channel will be limited to 0~1."
          },
          {
            "name": "hue",
            "type": "System.Double",
            "summary": "Hue channel value. Hue channels rotate between 0.0 and 1.0."
          },
          {
            "name": "saturation",
            "type": "System.Double",
            "summary": "Saturation channel value. Channel will be limited to 0~1."
          },
          {
            "name": "value",
            "type": "System.Double",
            "summary": "Value (Brightness) channel value. Channel will be limited to 0~1."
          }
        ]
      },
      {
        "signature": "ColorHSV(double hue, double saturation, double value)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Constructs a new instance of ColorHSV with custom channel values.",
        "since": "6.0",
        "parameters": [
          {
            "name": "hue",
            "type": "System.Double",
            "summary": "Hue channel value. Hue channels rotate between 0.0 and 1.0."
          },
          {
            "name": "saturation",
            "type": "System.Double",
            "summary": "Saturation channel value. Channel will be limited to 0~1."
          },
          {
            "name": "value",
            "type": "System.Double",
            "summary": "Value (Brightness) channel value. Channel will be limited to 0~1."
          }
        ]
      }
    ],
    "properties": [
      {
        "signature": "double A",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the alpha channel value. Alpha channels are limited to a 0~1 range.",
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "double H",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the hue channel value. Hue channels rotate between 0.0 and 1.0.",
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "double S",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the saturation channel value. Saturation channels are limited to a 0~1 range.",
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "double V",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the value (brightness) channel value. Value channels are limited to a 0~1 range.",
        "since": "6.0",
        "property": ["get", "set"]
      }
    ],
    "methods": [
      {
        "signature": "ColorHSV CreateFromCMYK(ColorCMYK cmyk)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Create the nearest HSV equivalent of a CMYK color.",
        "since": "6.0",
        "parameters": [
          {
            "name": "cmyk",
            "type": "ColorCMYK",
            "summary": "Target color in CMYK space."
          }
        ],
        "returns": "The HSV equivalent of the CMYK color."
      },
      {
        "signature": "ColorHSV CreateFromHSL(ColorHSL hsl)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Constructs the nearest HSV equivalent of an HSL color.",
        "since": "6.0",
        "parameters": [
          {
            "name": "hsl",
            "type": "ColorHSL",
            "summary": "Target color in HSL space."
          }
        ],
        "returns": "The HSV equivalent of the HSL color."
      },
      {
        "signature": "ColorHSV CreateFromLAB(ColorLAB lab)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Create the nearest HSV equivalent of a LAB color.",
        "since": "6.0",
        "parameters": [
          {
            "name": "lab",
            "type": "ColorLAB",
            "summary": "Target color in LAB space."
          }
        ],
        "returns": "The HSV equivalent of the LAB color."
      },
      {
        "signature": "ColorHSV CreateFromLCH(ColorLCH lch)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Create the nearest HSV equivalent of a LCH color.",
        "since": "6.0",
        "parameters": [
          {
            "name": "lch",
            "type": "ColorLCH",
            "summary": "Target color in LCH space."
          }
        ],
        "returns": "The HSV equivalent of the LCH color."
      },
      {
        "signature": "ColorHSV CreateFromRGBA(ColorRGBA rgba)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Create the nearest HSV equivalent of a RGBA color.",
        "since": "7.0",
        "parameters": [
          {
            "name": "rgba",
            "type": "ColorRGBA",
            "summary": "Target color in RGBA space."
          }
        ],
        "returns": "The HSV equivalent of the RGBA color."
      },
      {
        "signature": "ColorHSV CreateFromXYZ(ColorXYZ xyz)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Create the nearest HSV equivalent of an XYZ color.",
        "since": "6.0",
        "parameters": [
          {
            "name": "xyz",
            "type": "ColorXYZ",
            "summary": "Target color in XYZ space."
          }
        ],
        "returns": "The HSV equivalent of the XYZ color."
      },
      {
        "signature": "System.Drawing.Color ToArgbColor()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Convert HSV color to an equivalent System.Drawing.Color.",
        "since": "6.0",
        "returns": "A .Net framework library color value."
      }
    ]
  },
  {
    "namespace": "Rhino.Display",
    "name": "ColorLAB",
    "dataType": "struct",
    "summary": "Represents a LAB (Lightness, A, B) color with double precision floating point channels. LAB colors are based on nonlinearly compressed CIE XYZ color space coordinates. The A and B parameters of a LAB color represent the opponents.",
    "constructors": [
      {
        "signature": "ColorLAB(Color rgb)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Constructs a new instance of ColorLAB that is equivalent to an ARGB color.",
        "since": "5.0",
    "remarks": "Exact conversions between color spaces are often not possible.",
        "parameters": [
          {
            "name": "rgb",
            "type": "System.Drawing.Color",
            "summary": "ARGB color to mimic."
          }
        ]
      },
      {
        "signature": "ColorLAB(double alpha, double lightness, double a, double b)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Constructs a new instance of ColorLAB with custom channel values.",
        "since": "5.0"
      },
      {
        "signature": "ColorLAB(double lightness, double a, double b)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Constructs a new instance of ColorLAB with custom channel values.",
        "since": "5.0"
      }
    ],
    "properties": [
      {
        "signature": "double A",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the Base channel. The channel is limited to -1~+1.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "double Alpha",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the Alpha channel. The channel is limited to 0~1.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "double B",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the Opponent channel. The channel is limited to -1~+1.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "double L",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the lightness channel. The channel is limited to 0~1.",
        "since": "5.0",
        "property": ["get", "set"]
      }
    ],
    "methods": [
      {
        "signature": "ColorLAB CreateFromCMYK(ColorCMYK cmyk)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Create the nearest LAB equivalent of a CMYK color.",
        "since": "5.0",
        "parameters": [
          {
            "name": "cmyk",
            "type": "ColorCMYK",
            "summary": "Target color in CMYK space."
          }
        ],
        "returns": "The LAB equivalent of the CMYK color."
      },
      {
        "signature": "ColorLAB CreateFromHSL(ColorHSL hsl)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Create the nearest LAB equivalent of an HSL color.",
        "since": "5.0",
        "parameters": [
          {
            "name": "hsl",
            "type": "ColorHSL",
            "summary": "Target color in HSL space."
          }
        ],
        "returns": "The LAB equivalent of the HSL color."
      },
      {
        "signature": "ColorLAB CreateFromHSV(ColorHSV hsv)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Constructs the nearest LAB equivalent of an HSV color.",
        "since": "6.0",
        "parameters": [
          {
            "name": "hsv",
            "type": "ColorHSV",
            "summary": "Target color in HSV space."
          }
        ],
        "returns": "The LAB equivalent of the HSV color."
      },
      {
        "signature": "ColorLAB CreateFromLCH(ColorLCH lch)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Create the nearest LAB equivalent of an LCH color.",
        "since": "5.0",
        "parameters": [
          {
            "name": "lch",
            "type": "ColorLCH",
            "summary": "Target color in LCH space."
          }
        ],
        "returns": "The LAB equivalent of the LCH color."
      },
      {
        "signature": "ColorLAB CreateFromRGBA(ColorRGBA rgb)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Create the nearest LAB equivalent of an RGBA color.",
        "since": "7.1",
        "parameters": [
          {
            "name": "rgb",
            "type": "ColorRGBA",
            "summary": "Target color in RGBA space."
          }
        ],
        "returns": "The LAB equivalent of the RGBA color."
      },
      {
        "signature": "ColorLAB CreateFromXYZ(ColorXYZ xyz)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Create the nearest LAB equivalent of an XYZ color.",
        "since": "5.0",
        "parameters": [
          {
            "name": "xyz",
            "type": "ColorXYZ",
            "summary": "Target color in XYZ space."
          }
        ],
        "returns": "The LAB equivalent of the XYZ color."
      }
    ]
  },
  {
    "namespace": "Rhino.Display",
    "name": "ColorLCH",
    "dataType": "struct",
    "summary": "Represents an LCH (Lightness, A, B) color with double precision floating point channels. LCH colors (also sometimes called CIELUV) are transformation of the 1931 CIE XYZ color space, in order to approach perceptual uniformity. They are primarily used in computer graphics which deal with colored lights.",
    "constructors": [
      {
        "signature": "ColorLCH(Color rgb)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Constructs a new instance of ColorLCH that is equivalent to an ARGB color.",
        "since": "5.0",
    "remarks": "Exact conversions between color spaces are often not possible.",
        "parameters": [
          {
            "name": "rgb",
            "type": "System.Drawing.Color",
            "summary": "ARGB color to mimic."
          }
        ]
      },
      {
        "signature": "ColorLCH(double alpha, double lightness, double chroma, double hue)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Constructs a new instance of ColorLCH with custom channel values.",
        "since": "5.0",
        "parameters": [
          {
            "name": "alpha",
            "type": "System.Double",
            "summary": "Value of Alpha channel. This channel is limited to 0~1."
          },
          {
            "name": "lightness",
            "type": "System.Double",
            "summary": "Value of Lightness channel. This channel is limited to 0~1."
          },
          {
            "name": "chroma",
            "type": "System.Double",
            "summary": "Value of Chroma channel. This channel is limited to -1~1."
          },
          {
            "name": "hue",
            "type": "System.Double",
            "summary": "Value of Hue channel. This channel is limited to 0~360."
          }
        ]
      },
      {
        "signature": "ColorLCH(double lightness, double chroma, double hue)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Constructs a new instance of ColorLCH with custom channel values.",
        "since": "5.0",
        "parameters": [
          {
            "name": "lightness",
            "type": "System.Double",
            "summary": "Value of lightness channel. This channel is limited to 0~1."
          },
          {
            "name": "chroma",
            "type": "System.Double",
            "summary": "Value of chroma channel. This channel is limited to -1~1."
          },
          {
            "name": "hue",
            "type": "System.Double",
            "summary": "Value of chroma channel. This channel is limited to 0~360."
          }
        ]
      }
    ],
    "properties": [
      {
        "signature": "double A",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the Alpha channel. The Alpha channel is limited to the 0~1 range.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "double C",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the Chroma channel. Chroma is defined from -1.0 to +1.0.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "double H",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the Hue channel. The hue channel is limited to the 0~360 degree range.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "double L",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the Lightness channel.",
        "since": "5.0",
        "property": ["get", "set"]
      }
    ],
    "methods": [
      {
        "signature": "ColorLCH CreateFromCMYK(ColorCMYK cmyk)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Create the nearest LCH equivalent of a CMYK color.",
        "since": "5.0",
        "parameters": [
          {
            "name": "cmyk",
            "type": "ColorCMYK",
            "summary": "Target color in CMYK space."
          }
        ],
        "returns": "The LCH equivalent of the CMYK color."
      },
      {
        "signature": "ColorLCH CreateFromHSL(ColorHSL hsl)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Create the nearest LCH equivalent of an HSL color.",
        "since": "5.0",
        "parameters": [
          {
            "name": "hsl",
            "type": "ColorHSL",
            "summary": "Target color in HSL space."
          }
        ],
        "returns": "The LCH equivalent of the HSL color."
      },
      {
        "signature": "ColorLCH CreateFromLAB(ColorLAB lab)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Create the nearest LCH equivalent of a LAB color.",
        "since": "5.0",
        "parameters": [
          {
            "name": "lab",
            "type": "ColorLAB",
            "summary": "Target color in LAB space."
          }
        ],
        "returns": "The LCH equivalent of the LAB color."
      },
      {
        "signature": "ColorLCH CreateFromRGBA(ColorRGBA rgb)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Create the nearest LCH equivalent of an RGBA color.",
        "since": "7.1",
        "parameters": [
          {
            "name": "rgb",
            "type": "ColorRGBA",
            "summary": "Target color in RGBA space."
          }
        ],
        "returns": "The LCH equivalent of the RGBA color."
      },
      {
        "signature": "ColorLCH CreateFromXYZ(ColorXYZ xyz)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Create the nearest LCH equivalent of an XYZ color.",
        "since": "5.0",
        "parameters": [
          {
            "name": "xyz",
            "type": "ColorXYZ",
            "summary": "Target color in XYZ space."
          }
        ],
        "returns": "The LCH equivalent of the XYZ color."
      },
      {
        "signature": "System.Void MakePositive()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Ensure the Chromaticity of this color is positive.",
        "since": "5.0"
      }
    ]
  },
  {
    "namespace": "Rhino.Display",
    "name": "ColorRGBA",
    "dataType": "struct",
    "summary": "Represents a sRGBA (Red, Green, Blue, Alpha) color with double precision floating point channel.",
    "constructors": [
      {
        "signature": "ColorRGBA(Color color)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Constructs a new instance of ColorRGBA that is equivalent to an ARGB color.",
        "since": "7.0",
        "parameters": [
          {
            "name": "color",
            "type": "System.Drawing.Color",
            "summary": "ARGB color to mimic."
          }
        ]
      },
      {
        "signature": "ColorRGBA(ColorRGBA color, double alpha)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "8.0"
      },
      {
        "signature": "ColorRGBA(ColorRGBA color)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "7.0"
      },
      {
        "signature": "ColorRGBA(double red, double green, double blue, double alpha)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "7.0"
      },
      {
        "signature": "ColorRGBA(double red, double green, double blue)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "7.0"
      },
      {
        "signature": "ColorRGBA(int argb)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Constructs a new instance of ColorRGBA that is equivalent to an ARGB color.",
        "since": "7.0",
        "parameters": [
          {
            "name": "argb",
            "type": "System.Int32",
            "summary": "ARGB color to mimic."
          }
        ]
      }
    ],
    "properties": [
      {
        "signature": "ColorRGBA Black",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "7.0",
        "property": ["get"]
      },
      {
        "signature": "ColorRGBA Blue",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "7.0",
        "property": ["get"]
      },
      {
        "signature": "ColorRGBA Green",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "7.0",
        "property": ["get"]
      },
      {
        "signature": "ColorRGBA Red",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "7.0",
        "property": ["get"]
      },
      {
        "signature": "ColorRGBA White",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "7.0",
        "property": ["get"]
      },
      {
        "signature": "double A",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the alpha channel value. Alpha channels are limited to a 0~1 range.",
        "since": "7.0",
        "property": ["get", "set"]
      },
      {
        "signature": "double B",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the blue channel value. Blue channels are limited to a 0~1 range.",
        "since": "7.0",
        "property": ["get", "set"]
      },
      {
        "signature": "double G",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the green channel value. Green channels are limited to a 0~1 range.",
        "since": "7.0",
        "property": ["get", "set"]
      },
      {
        "signature": "double R",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the red channel value. Red channels are limited to a 0~1 range.",
        "since": "7.0",
        "property": ["get", "set"]
      }
    ],
    "methods": [
      {
        "signature": "ColorRGBA ApplyGamma(ColorRGBA col, System.Double gamma)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "7.0"
      },
      {
        "signature": "ColorRGBA CreateFromArgb(System.Byte alpha, System.Byte red, System.Byte green, System.Byte blue)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Constructs a RGBA color from the four ARGB components (alpha, red, green, and blue) values.",
        "since": "8.0",
        "parameters": [
          {
            "name": "alpha",
            "type": "System.Byte",
            "summary": "The alpha component. Valid values are 0 through 255."
          },
          {
            "name": "red",
            "type": "System.Byte",
            "summary": "The red component. Valid values are 0 through 255."
          },
          {
            "name": "green",
            "type": "System.Byte",
            "summary": "The green component. Valid values are 0 through 255."
          },
          {
            "name": "blue",
            "type": "System.Byte",
            "summary": "The blue component. Valid values are 0 through 255."
          }
        ],
        "returns": "A RGBA color with the specified component values."
      },
      {
        "signature": "ColorRGBA CreateFromArgb(System.Byte red, System.Byte green, System.Byte blue)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Constructs a RGBA color from the specified 8-bit components (red, green, and blue) values. The alpha value is implicitly 1.0 (fully opaque).",
        "since": "8.0",
        "parameters": [
          {
            "name": "red",
            "type": "System.Byte",
            "summary": "The red component. Valid values are 0 through 255."
          },
          {
            "name": "green",
            "type": "System.Byte",
            "summary": "The green component. Valid values are 0 through 255."
          },
          {
            "name": "blue",
            "type": "System.Byte",
            "summary": "The blue component. Valid values are 0 through 255."
          }
        ],
        "returns": "A RGBA color with the specified component values."
      },
      {
        "signature": "ColorRGBA CreateFromCMYK(ColorCMYK cmyk)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Create the nearest RGBA equivalent of a CMYK color.",
        "since": "7.0",
        "parameters": [
          {
            "name": "cmyk",
            "type": "ColorCMYK",
            "summary": "Target color in CMYK space."
          }
        ],
        "returns": "The RGBA equivalent of the CMYK color."
      },
      {
        "signature": "ColorRGBA CreateFromHSL(ColorHSL hsl)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Constructs the nearest RGBA equivalent of an HSV color.",
        "since": "7.0",
        "parameters": [
          {
            "name": "hsl",
            "type": "ColorHSL",
            "summary": "Target color in HSL space."
          }
        ],
        "returns": "The RGBA equivalent of the HSL color."
      },
      {
        "signature": "ColorRGBA CreateFromHSV(ColorHSV hsv)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Constructs the nearest RGBA equivalent of an HSL color.",
        "since": "7.0",
        "parameters": [
          {
            "name": "hsv",
            "type": "ColorHSV",
            "summary": "Target color in HSL space."
          }
        ],
        "returns": "The RGBA equivalent of the HSL color."
      },
      {
        "signature": "ColorRGBA CreateFromLAB(ColorLAB lab)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Create the nearest RGBA equivalent of a LAB color.",
        "since": "7.0",
        "parameters": [
          {
            "name": "lab",
            "type": "ColorLAB",
            "summary": "Target color in LAB space."
          }
        ],
        "returns": "The RGBA equivalent of the LAB color."
      },
      {
        "signature": "ColorRGBA CreateFromLCH(ColorLCH lch)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Create the nearest RGBA equivalent of a LCH color.",
        "since": "7.0",
        "parameters": [
          {
            "name": "lch",
            "type": "ColorLCH",
            "summary": "Target color in LCH space."
          }
        ],
        "returns": "The RGBA equivalent of the LCH color."
      },
      {
        "signature": "ColorRGBA CreateFromXYZ(ColorXYZ xyz)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Create the nearest RGBA equivalent of an XYZ color.",
        "since": "7.0",
        "parameters": [
          {
            "name": "xyz",
            "type": "ColorXYZ",
            "summary": "Target color in XYZ space."
          }
        ],
        "returns": "The RGBA equivalent of the XYZ color."
      },
      {
        "signature": "ColorRGBA BlendTo(ColorRGBA col, System.Double coefficient)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "7.0"
      },
      {
        "signature": "System.Int32 CompareTo(ColorRGBA other)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Compares this <b>ColorRGBA</b> with another <b>ColorRGBA</b> .  \nChannels evaluation priority is first A, then R, then G, then B.",
        "since": "7.0",
        "parameters": [
          {
            "name": "other",
            "type": "ColorRGBA",
            "summary": "The other <b>ColorRGBA</b> to use in comparison."
          }
        ],
        "returns": "0: if this is identical to other  \n-1: if this < other  \n+1: if this > other"
      },
      {
        "signature": "System.Boolean EpsilonEquals(ColorRGBA other, System.Double epsilon)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Check that all values in other are within epsilon of the values in this",
        "since": "7.0"
      },
      {
        "signature": "System.Boolean Equals(ColorRGBA other)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Determines whether the specified ColorRGBA has the same values as the present color.",
        "since": "7.0",
        "parameters": [
          {
            "name": "other",
            "type": "ColorRGBA",
            "summary": "The specified color."
          }
        ],
        "returns": "True if color has the same channel values as this; otherwise false."
      },
      {
        "signature": "System.Boolean Equals(System.Object obj)",
        "modifiers": ["public", "override"],
        "protected": false,
        "virtual": false,
        "since": "7.0"
      },
      {
        "signature": "System.Int32 GetHashCode()",
        "modifiers": ["public", "override"],
        "protected": false,
        "virtual": false,
        "since": "7.0"
      },
      {
        "signature": "System.Int32 ToArgb()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Converts this color to a 32-bit ARGB value.",
        "since": "7.35",
        "returns": "The 32-bit ARGB value that corresponds to this color"
      },
      {
        "signature": "System.String ToString()",
        "modifiers": ["public", "override"],
        "protected": false,
        "virtual": false,
        "since": "7.0"
      },
      {
        "signature": "System.String ToString(System.String format, System.IFormatProvider formatProvider)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "7.0"
      }
    ],
    "operators": [
      {
        "signature": "bool operator !=(ColorRGBA a, ColorRGBA b)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "7.0"
      },
      {
        "signature": "bool operator ==(ColorRGBA a, ColorRGBA b)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "7.0"
      }
    ]

  },
  {
    "namespace": "Rhino.Display",
    "name": "ColorStop",
    "dataType": "struct",
    "summary": "Combination of a color and position. Used in defining gradient fills",
    "constructors": [
      {
        "signature": "ColorStop(Color color, double t)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Create color stop from a color and position",
        "since": "7.0"
      }
    ],
    "properties": [
      {
        "signature": "Color Color",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "7.0",
        "property": ["get", "set"]
      },
      {
        "signature": "double Position",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Parameter that Color is defined at",
        "since": "7.0",
        "property": ["get", "set"]
      }
    ]
  },
  {
    "namespace": "Rhino.Display",
    "name": "ColorXYZ",
    "dataType": "struct",
    "summary": "Represents an XYZ (Hue, Saturation, Luminance) color with double precision floating point channels. XYZ colors are based on the CIE 1931 XYZ color space standard and they mimic the natural sensitivity of cones in the human retina.",
    "constructors": [
      {
        "signature": "ColorXYZ(Color rgb)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Constructs a new instance of ColorXYZ that is equivalent to an ARGB color.",
        "since": "5.0",
    "remarks": "Exact conversions between color spaces are often not possible.",
        "parameters": [
          {
            "name": "rgb",
            "type": "System.Drawing.Color",
            "summary": "ARGB color to mimic."
          }
        ]
      },
      {
        "signature": "ColorXYZ(double alpha, double x, double y, double z)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Constructs a new instance of ColorXYZ with custom channel values.",
        "since": "5.0",
        "parameters": [
          {
            "name": "alpha",
            "type": "System.Double",
            "summary": "Alpha channel value, channel will be limited to 0~1."
          },
          {
            "name": "x",
            "type": "System.Double",
            "summary": "X channel value, channel will be limited to 0~1."
          },
          {
            "name": "y",
            "type": "System.Double",
            "summary": "Y channel value, channel will be limited to 0~1."
          },
          {
            "name": "z",
            "type": "System.Double",
            "summary": "Z channel value, channel will be limited to 0~1."
          }
        ]
      },
      {
        "signature": "ColorXYZ(double x, double y, double z)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Constructs a new instance of ColorXYZ with custom channel values.",
        "since": "5.0",
        "parameters": [
          {
            "name": "x",
            "type": "System.Double",
            "summary": "X channel value, channel will be limited to 0~1."
          },
          {
            "name": "y",
            "type": "System.Double",
            "summary": "Y channel value, channel will be limited to 0~1."
          },
          {
            "name": "z",
            "type": "System.Double",
            "summary": "Z channel value, channel will be limited to 0~1."
          }
        ]
      }
    ],
    "properties": [
      {
        "signature": "double A",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or set the Alpha channel value. Channel will be limited to 0~1.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "double X",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or set the X channel value. Channel will be limited to 0~1.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "double Y",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or set the Y channel value. Channel will be limited to 0~1.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "double Z",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or set the Z channel value. Channel will be limited to 0~1.",
        "since": "5.0",
        "property": ["get", "set"]
      }
    ],
    "methods": [
      {
        "signature": "ColorXYZ CreateFromCMYK(ColorCMYK cmyk)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Create the nearest XYZ equivalent of a CMYK color.",
        "since": "5.0",
        "parameters": [
          {
            "name": "cmyk",
            "type": "ColorCMYK",
            "summary": "Target color in CMYK space."
          }
        ],
        "returns": "The XYZ equivalent of the CMYK color."
      },
      {
        "signature": "ColorXYZ CreateFromHSL(ColorHSL hsl)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Create the nearest XYZ equivalent of an HSL color.",
        "since": "5.0",
        "parameters": [
          {
            "name": "hsl",
            "type": "ColorHSL",
            "summary": "Target color in HSL space."
          }
        ],
        "returns": "The XYZ equivalent of the HSL color."
      },
      {
        "signature": "ColorXYZ CreateFromHSV(ColorHSV hsv)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Constructs the nearest XYZ equivalent of an HSV color.",
        "since": "6.0",
        "parameters": [
          {
            "name": "hsv",
            "type": "ColorHSV",
            "summary": "Target color in HSV space."
          }
        ],
        "returns": "The XYZ equivalent of the HSV color."
      },
      {
        "signature": "ColorXYZ CreateFromLAB(ColorLAB lab)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Create the nearest XYZ equivalent of a Lab color.",
        "since": "5.0",
        "parameters": [
          {
            "name": "lab",
            "type": "ColorLAB",
            "summary": "Target color in LAB space."
          }
        ],
        "returns": "The XYZ equivalent of the LAB color."
      },
      {
        "signature": "ColorXYZ CreateFromLCH(ColorLCH lch)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Create the nearest XYZ equivalent of an LCH color.",
        "since": "5.0",
        "parameters": [
          {
            "name": "lch",
            "type": "ColorLCH",
            "summary": "Target color in LCH space."
          }
        ],
        "returns": "The XYZ equivalent of the LCH color."
      },
      {
        "signature": "ColorXYZ CreateFromRGBA(ColorRGBA rgba)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Create the nearest XYZ equivalent of a RGBA color.",
        "since": "7.0",
        "parameters": [
          {
            "name": "rgba",
            "type": "ColorRGBA",
            "summary": "Target color in RGBA space."
          }
        ],
        "returns": "The XYZ equivalent of the RGBA color."
      }
    ]
  },
  {
    "namespace": "Rhino.Display",
    "name": "CullFaceMode",
    "dataType": "enum",
    "since": "5.0",
    "values": [
      {
        "signature": "DrawFrontAndBack = 0",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "DrawFrontFaces = 1",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "DrawBackFaces = 2",
        "modifiers": [],
        "protected": false,
        "virtual": false
      }
    ]

  },
  {
    "namespace": "Rhino.Display",
    "name": "CullObjectEventArgs",
    "dataType": "class",
    "baseclass": "Rhino.Display.DrawEventArgs",
    "properties": [
      {
        "signature": "bool CullObject",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.3",
        "property": ["get", "set"]
      },
      {
        "signature": "RhinoObject RhinoObject",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.3",
        "property": ["get"]
      },
      {
        "signature": "uint RhinoObjectSerialNumber",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the rhino object runtime serial number.",
        "since": "6.14",
        "property": ["get"]
      }
    ]
  },
  {
    "namespace": "Rhino.Display",
    "name": "CustomDisplay",
    "dataType": "class",
    "summary": "Provides some basic (indeed, very basic) mechanisms for drawing custom geometry in viewports.",
    "interfaces": ["IDisposable"],
    "constructors": [
      {
        "signature": "CustomDisplay(bool enable)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Constructs a new CustomDisplay instance. Youmustcall Dispose() when you are done with this instance, otherwise the display methods will never be switched off.",
        "since": "5.0",
        "parameters": [
          {
            "name": "enable",
            "type": "System.Boolean",
            "summary": "If true, the display will be enabled immediately."
          }
        ]
      }
    ],
    "properties": [
      {
        "signature": "BoundingBox ClippingBox",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the clipping box of this CustomDisplay.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "bool Enabled",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the Enabled state of this CustomDisplay instance. If you wish to terminate this CustomDisplay, place a call to Dispose() instead.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool IsDisposed",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets a value indicating whether this CustomDisplay instance has been disposed. Once a CustomDisplay has been disposed, you can no longer use it.",
        "since": "5.0",
        "property": ["get"]
      }
    ],
    "methods": [
      {
        "signature": "System.Void AddArc(Arc arc, Color color, System.Int32 thickness)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Adds a new, colored arc to the display list.",
        "since": "5.0",
        "parameters": [
          {
            "name": "arc",
            "type": "Arc",
            "summary": "Arc to add."
          },
          {
            "name": "color",
            "type": "Color",
            "summary": "Color of arc."
          },
          {
            "name": "thickness",
            "type": "System.Int32",
            "summary": "Thickness of arc."
          }
        ]
      },
      {
        "signature": "System.Void AddArc(Arc arc, Color color)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Adds a new, colored arc to the display list.",
        "since": "5.0",
        "parameters": [
          {
            "name": "arc",
            "type": "Arc",
            "summary": "Arc to add."
          },
          {
            "name": "color",
            "type": "Color",
            "summary": "Color of arc."
          }
        ]
      },
      {
        "signature": "System.Void AddArc(Arc arc)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Adds a new, black arc to the display list.",
        "since": "5.0",
        "parameters": [
          {
            "name": "arc",
            "type": "Arc",
            "summary": "Arc to add."
          }
        ]
      },
      {
        "signature": "System.Void AddCircle(Circle circle, Color color, System.Int32 thickness)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Adds a new, colored circle to the display list.",
        "since": "5.0",
        "parameters": [
          {
            "name": "circle",
            "type": "Circle",
            "summary": "Circle to add."
          },
          {
            "name": "color",
            "type": "Color",
            "summary": "Color of circle."
          },
          {
            "name": "thickness",
            "type": "System.Int32",
            "summary": "Thickness of circle."
          }
        ]
      },
      {
        "signature": "System.Void AddCircle(Circle circle, Color color)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Adds a new, colored arc to the display list.",
        "since": "5.0",
        "parameters": [
          {
            "name": "circle",
            "type": "Circle",
            "summary": "Circle to add."
          },
          {
            "name": "color",
            "type": "Color",
            "summary": "Color of circle."
          }
        ]
      },
      {
        "signature": "System.Void AddCircle(Circle circle)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Adds a new, black circle to the display list.",
        "since": "5.0",
        "parameters": [
          {
            "name": "circle",
            "type": "Circle",
            "summary": "Circle to add."
          }
        ]
      },
      {
        "signature": "System.Void AddCurve(Curve curve, Color color, System.Int32 thickness)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Adds a new, colored curve to the display list. The curve will be duplicated so changes to the original will not affect the display.",
        "since": "5.0",
        "parameters": [
          {
            "name": "curve",
            "type": "Curve",
            "summary": "Curve to add."
          },
          {
            "name": "color",
            "type": "Color",
            "summary": "Color of curve."
          },
          {
            "name": "thickness",
            "type": "System.Int32",
            "summary": "Thickness of curve."
          }
        ]
      },
      {
        "signature": "System.Void AddCurve(Curve curve, Color color)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Adds a new, colored curve to the display list. The curve will be duplicated so changes to the original will not affect the display.",
        "since": "5.0",
        "parameters": [
          {
            "name": "curve",
            "type": "Curve",
            "summary": "Curve to add."
          },
          {
            "name": "color",
            "type": "Color",
            "summary": "Color of curve."
          }
        ]
      },
      {
        "signature": "System.Void AddCurve(Curve curve)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Adds a new, black curve to the display list. The curve will be duplicated so changes to the original will not affect the display.",
        "since": "5.0",
        "parameters": [
          {
            "name": "curve",
            "type": "Curve",
            "summary": "Curve to add."
          }
        ]
      },
      {
        "signature": "System.Void AddLine(Line line, Color color, System.Int32 thickness)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Adds a new, colored line to the display list.",
        "since": "5.0",
        "parameters": [
          {
            "name": "line",
            "type": "Line",
            "summary": "Line to add."
          },
          {
            "name": "color",
            "type": "Color",
            "summary": "Color of line."
          },
          {
            "name": "thickness",
            "type": "System.Int32",
            "summary": "Thickness of line."
          }
        ]
      },
      {
        "signature": "System.Void AddLine(Line line, Color color)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Adds a new, colored line to the display list.",
        "since": "5.0",
        "parameters": [
          {
            "name": "line",
            "type": "Line",
            "summary": "Line to add."
          },
          {
            "name": "color",
            "type": "Color",
            "summary": "Color of line."
          }
        ]
      },
      {
        "signature": "System.Void AddLine(Line line)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Adds a new, black line to the display list.",
        "since": "5.0",
        "parameters": [
          {
            "name": "line",
            "type": "Line",
            "summary": "Line to add."
          }
        ]
      },
      {
        "signature": "System.Void AddPoint(Point3d point, Color color, PointStyle style, System.Int32 radius)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Adds a new stylized point to the display list.",
        "since": "5.0",
        "parameters": [
          {
            "name": "point",
            "type": "Point3d",
            "summary": "Point to add."
          },
          {
            "name": "color",
            "type": "Color",
            "summary": "Color of point."
          },
          {
            "name": "style",
            "type": "PointStyle",
            "summary": "Display style of point."
          },
          {
            "name": "radius",
            "type": "System.Int32",
            "summary": "Radius of point widget."
          }
        ]
      },
      {
        "signature": "System.Void AddPoint(Point3d point, Color color)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Adds a new colored point to the display list.",
        "since": "5.0",
        "parameters": [
          {
            "name": "point",
            "type": "Point3d",
            "summary": "Point to add."
          },
          {
            "name": "color",
            "type": "Color",
            "summary": "Color of point."
          }
        ]
      },
      {
        "signature": "System.Void AddPoint(Point3d point)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Adds a new, black point to the display list.",
        "since": "5.0",
        "parameters": [
          {
            "name": "point",
            "type": "Point3d",
            "summary": "Point to add."
          }
        ]
      },
      {
        "signature": "System.Void AddPoints(IEnumerable<Point3d> points, Color color, PointStyle style, System.Int32 radius)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Adds a collection of stylized points to the display list.",
        "since": "5.0",
        "parameters": [
          {
            "name": "points",
            "type": "IEnumerable<Point3d>",
            "summary": "Points to add."
          },
          {
            "name": "color",
            "type": "Color",
            "summary": "Color of points."
          },
          {
            "name": "style",
            "type": "PointStyle",
            "summary": "Display style of points."
          },
          {
            "name": "radius",
            "type": "System.Int32",
            "summary": "Radius of point widgets."
          }
        ]
      },
      {
        "signature": "System.Void AddPoints(IEnumerable<Point3d> points, Color color)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Adds a collection of colored points to the display list.",
        "since": "5.0",
        "parameters": [
          {
            "name": "points",
            "type": "IEnumerable<Point3d>",
            "summary": "Points to add."
          },
          {
            "name": "color",
            "type": "Color",
            "summary": "Color of points."
          }
        ]
      },
      {
        "signature": "System.Void AddPoints(IEnumerable<Point3d> points)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Adds a collection of black points to the display list.",
        "since": "5.0",
        "parameters": [
          {
            "name": "points",
            "type": "IEnumerable<Point3d>",
            "summary": "Points to add."
          }
        ]
      },
      {
        "signature": "System.Void AddPolygon(IEnumerable<Point3d> polygon, Color fillColor, Color edgeColor, System.Boolean drawFill, System.Boolean drawEdge)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Adds a polygon to the drawing list. Polygons are not like Hatches, when you supply a concave polygon, the shading probably won't work.",
        "since": "5.0",
        "parameters": [
          {
            "name": "polygon",
            "type": "IEnumerable<Point3d>",
            "summary": "Points that define the corners of the polygon."
          },
          {
            "name": "fillColor",
            "type": "Color",
            "summary": "Fill color of polygon."
          },
          {
            "name": "edgeColor",
            "type": "Color",
            "summary": "Edge color of polygon."
          },
          {
            "name": "drawFill",
            "type": "System.Boolean",
            "summary": "If true, the polygon contents will be drawn."
          },
          {
            "name": "drawEdge",
            "type": "System.Boolean",
            "summary": "If true, the polygon edge will be drawn."
          }
        ]
      },
      {
        "signature": "System.Void AddText(System.String text, Plane plane, System.Double size, Color color)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Adds a new, colored 3D text object to the display list.",
        "since": "5.0",
        "parameters": [
          {
            "name": "text",
            "type": "System.String",
            "summary": "Text to add."
          },
          {
            "name": "plane",
            "type": "Plane",
            "summary": "Plane for text orientation."
          },
          {
            "name": "size",
            "type": "System.Double",
            "summary": "Height (in units) of font."
          },
          {
            "name": "color",
            "type": "Color",
            "summary": "Color of text."
          }
        ]
      },
      {
        "signature": "System.Void AddText(System.String text, Plane plane, System.Double size)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Adds a new, black 3D text object to the display list.",
        "since": "5.0",
        "parameters": [
          {
            "name": "text",
            "type": "System.String",
            "summary": "Text to add."
          },
          {
            "name": "plane",
            "type": "Plane",
            "summary": "Plane for text orientation."
          },
          {
            "name": "size",
            "type": "System.Double",
            "summary": "Height (in units) of font."
          }
        ]
      },
      {
        "signature": "System.Void AddText(Text3d text, Color color)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Adds a new 3D text object to the display list.",
        "since": "5.0",
        "parameters": [
          {
            "name": "text",
            "type": "Text3d",
            "summary": "Text object to add."
          },
          {
            "name": "color",
            "type": "Color",
            "summary": "Color of text object."
          }
        ]
      },
      {
        "signature": "System.Void AddVector(Point3d anchor, Vector3d span, Color color, System.Boolean drawAnchor)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Adds a new, colored vector to the display list.",
        "since": "5.0",
        "parameters": [
          {
            "name": "anchor",
            "type": "Point3d",
            "summary": "Anchor point of vector."
          },
          {
            "name": "span",
            "type": "Vector3d",
            "summary": "Direction and magnitude of vector."
          },
          {
            "name": "color",
            "type": "Color",
            "summary": "Color of vector."
          },
          {
            "name": "drawAnchor",
            "type": "System.Boolean",
            "summary": "Include a point at the vector anchor."
          }
        ]
      },
      {
        "signature": "System.Void AddVector(Point3d anchor, Vector3d span, Color color)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Adds a new, colored vector to the display list.",
        "since": "5.0",
        "parameters": [
          {
            "name": "anchor",
            "type": "Point3d",
            "summary": "Anchor point of vector."
          },
          {
            "name": "span",
            "type": "Vector3d",
            "summary": "Direction and magnitude of vector."
          },
          {
            "name": "color",
            "type": "Color",
            "summary": "Color of vector."
          }
        ]
      },
      {
        "signature": "System.Void AddVector(Point3d anchor, Vector3d span)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Adds a new, black vector to the display list.",
        "since": "5.0",
        "parameters": [
          {
            "name": "anchor",
            "type": "Point3d",
            "summary": "Anchor point of vector."
          },
          {
            "name": "span",
            "type": "Vector3d",
            "summary": "Direction and magnitude of vector."
          }
        ]
      },
      {
        "signature": "System.Void Clear()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Clear the drawing lists.",
        "since": "5.0"
      },
      {
        "signature": "System.Void Dispose()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Dispose this CustomDisplay instance. You must call this function in order to properly shut down the CustomDisplay.",
        "since": "5.0"
      }
    ]
  },
  {
    "namespace": "Rhino.Display",
    "name": "DefinedViewportProjection",
    "dataType": "enum",
    "summary": "Parallel and perspective projections that are \"standard\" in Rhino",
    "since": "5.0",
    "values": [
      {
        "signature": "None = 0",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Top = 1",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Bottom = 2",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Left = 3",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Right = 4",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Front = 5",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Back = 6",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Perspective = 7",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "TwoPointPerspective = 8",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "ParallelReflected = 9",
        "modifiers": [],
        "protected": false,
        "virtual": false
      }
    ]

  },
  {
    "namespace": "Rhino.Display",
    "name": "DepthMode",
    "dataType": "enum",
    "since": "5.0",
    "values": [
      {
        "signature": "Neutral = 0",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "AlwaysInFront = 1",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "AlwaysInBack = 2",
        "modifiers": [],
        "protected": false,
        "virtual": false
      }
    ]

  },
  {
    "namespace": "Rhino.Display",
    "name": "DisplayBitmap",
    "dataType": "class",
    "summary": "A bitmap resource that can be used by the display pipeline (currently only in OpenGL display).  Reuse DisplayBitmaps for drawing if possible; it is much more expensive to construct new DisplayBitmaps than it is to reuse existing DisplayBitmaps.",
    "interfaces": ["IDisposable"],
    "constructors": [
      {
        "signature": "DisplayBitmap(Bitmap bitmap)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Constructs a DisplayBitmap from an existing bitmap.",
        "since": "5.0",
        "parameters": [
          {
            "name": "bitmap",
            "type": "System.Drawing.Bitmap",
            "summary": "The original bitmap."
          }
        ]
      },
      {
        "signature": "DisplayBitmap(string path, Bitmap bitmap)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Creates a DisplayBitmap either from a path, or a bitmap. If the path is null, a random tag name will be used. If the bitmap is null, the bitmap will be loaded from the path. If both are null, the object is invalid. if both are valid objects, the bitmap will be used and it will be added to Rhino's bitmap cache with the path supplied.  In other words, this is a way to add a bitmap from memory directly into Rhino's memory cache.",
        "since": "7.16",
        "parameters": [
          {
            "name": "path",
            "type": "System.String",
            "summary": "If null, use a temporary tag name.  If non-null, use that path in Rhino's bitmap cache.  Note, this version does not support URLs."
          },
          {
            "name": "bitmap",
            "type": "System.Drawing.Bitmap",
            "summary": "If null, load the bitmap from the supplied path.  If non-null, creates the bitmap from the data supplied."
          }
        ]
      }
    ],
    "properties": [
      {
        "signature": "Size Size",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Size of the underlying bitmap image",
        "since": "7.0",
        "property": ["get"]
      }
    ],
    "methods": [
      {
        "signature": "DisplayBitmap Load(System.String path)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Load a DisplayBitmap from and image file on disk or from URL. If path starts with http:// or https:// then an attempt is made to load the bitmap from an online resource",
        "since": "5.0",
        "parameters": [
          {
            "name": "path",
            "type": "System.String",
            "summary": "A location from which to load the file."
          }
        ],
        "returns": "The new display bitmap, or None on error."
      },
      {
        "signature": "System.Void Dispose()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Actively reclaims unmanaged resources that this instance uses.",
        "since": "5.0"
      },
      {
        "signature": "System.Void Dispose(System.Boolean disposing)",
        "modifiers": ["protected", "virtual"],
        "protected": true,
        "virtual": true,
        "summary": "For derived class implementers.  \nThis method is called with argument True when class user calls Dispose(), while with argument False when     the Garbage Collector invokes the finalizer, or Finalize() method.  \nYou must reclaim all used unmanaged resources in both cases, and can use this chance to call Dispose on disposable fields if the argument is true.  \nAlso, you must call the base virtual method within your overriding method.",
        "parameters": [
          {
            "name": "disposing",
            "type": "System.Boolean",
            "summary": "True if the call comes from the Dispose() method; False if it comes from the Garbage Collector finalizer."
          }
        ]
      },
      {
        "signature": "System.Void GetBlendModes(out BlendMode source, out BlendMode destination)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the source and destination blend modes.",
        "since": "5.0",
        "parameters": [
          {
            "name": "source",
            "type": "BlendMode",
            "summary": "The source blend mode is assigned to this out parameter."
          },
          {
            "name": "destination",
            "type": "BlendMode",
            "summary": "The destination blend mode is assigned to this out parameter."
          }
        ]
      },
      {
        "signature": "System.Void SetBlendFunction(BlendMode source, BlendMode destination)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Sets blending function used to determine how this bitmap is blended with the current frame buffer color.  The default setting is SourceAlpha for source and OneMinusSourceAlpha for destination.  See OpenGL's glBlendFunc for details.  \nhttp://www.opengl.org/sdk/docs/man/xhtml/glBlendFunc.xml",
        "since": "5.0",
        "parameters": [
          {
            "name": "source",
            "type": "BlendMode",
            "summary": "The source blend mode."
          },
          {
            "name": "destination",
            "type": "BlendMode",
            "summary": "The destination blend mode."
          }
        ]
      },
      {
        "signature": "System.Void Update(System.Drawing.Bitmap bitmap)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Update the image used for this DisplayBitmap",
        "since": "8.14"
      }
    ]
  },
  {
    "namespace": "Rhino.Display",
    "name": "DisplayBitmapDrawList",
    "dataType": "class",
    "constructors": [
      {
        "signature": "DisplayBitmapDrawList()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      }
    ],
    "properties": [
      {
        "signature": "BoundingBox BoundingBox",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "int MaximumCachedSortLists",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Maximum number of cached sort order index lists stored on this class. Default is 10, but depending on the number of points in this list you may get better performance by setting this value to a certain percentage of the point count.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "double SortAngleTolerance",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Angle in radians used to determine if an index list is \"parallel enough\" to a viewports camera angle. Default is 0.0873 radians (5 degrees)",
        "since": "5.0",
        "property": ["get", "set"]
      }
    ],
    "methods": [
      {
        "signature": "System.Void SetPoints(IEnumerable<Point3d> points, IEnumerable<Color> colors)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "System.Void SetPoints(IEnumerable<Point3d> points, System.Drawing.Color blendColor)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "System.Void SetPoints(IEnumerable<Point3d> points)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "System.Int32[] Sort(Geometry.Vector3d cameraDirection)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      }
    ]
  },
  {
    "namespace": "Rhino.Display",
    "name": "DisplayConduit",
    "dataType": "class",
    "constructors": [
      {
        "signature": "DisplayConduit()",
        "modifiers": ["protected"],
        "protected": true,
        "virtual": false
      }
    ],
    "properties": [
      {
        "signature": "bool Enabled",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "ObjectType GeometryFilter",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "The geometry filter will ensure that your conduit's per-object functions will only be called for objects that are of certain geometry type",
        "since": "7.0",
        "property": ["get", "set"]
      },
      {
        "signature": "ActiveSpace SpaceFilter",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "If you want this conduit to only work in a specific space (model or page), then set this filter to that specific space. The default is None meaning no filter is applied",
        "since": "6.0",
        "property": ["get", "set"]
      }
    ],
    "methods": [
      {
        "signature": "System.Void Bind(RhinoViewport viewport)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Bind this conduit to a specific viewport"
      },
      {
        "signature": "System.Void CalculateBoundingBox(CalculateBoundingBoxEventArgs e)",
        "modifiers": ["protected", "virtual"],
        "protected": true,
        "virtual": true,
        "summary": "Library developers should override this function to increase the bounding box of scene so it includes the geometry that you plan to draw in the \"Draw\" virtual functions.  \nThe default implementation does nothing.",
        "parameters": [
          {
            "name": "e",
            "type": "CalculateBoundingBoxEventArgs",
            "summary": "The event argument contain the current bounding box state."
          }
        ]
      },
      {
        "signature": "System.Void CalculateBoundingBoxZoomExtents(CalculateBoundingBoxEventArgs e)",
        "modifiers": ["protected", "virtual"],
        "protected": true,
        "virtual": true,
        "summary": "If you want to participate in the Zoom Extents command with your display conduit, then you will need to override ZoomExtentsBoundingBox.  Typically you could just call your CalculateBoundingBox override, but you may also want to spend a little more time here and compute a tighter bounding box for your conduit geometry if that is needed.  \nThe default implementation does nothing.",
        "parameters": [
          {
            "name": "e",
            "type": "CalculateBoundingBoxEventArgs",
            "summary": "The event argument contain the current bounding box state."
          }
        ]
      },
      {
        "signature": "System.Void DrawForeground(DrawEventArgs e)",
        "modifiers": ["protected", "virtual"],
        "protected": true,
        "virtual": true,
        "summary": "Called after all non-highlighted objects have been drawn and PostDrawObjects has been called. Depth writing and testing are turned OFF. If you want to draw with depth writing/testing, see PostDrawObjects.  \nThe default implementation does nothing.",
        "parameters": [
          {
            "name": "e",
            "type": "DrawEventArgs",
            "summary": "The event argument contains the current viewport and display state."
          }
        ]
      },
      {
        "signature": "System.Void DrawOverlay(DrawEventArgs e)",
        "modifiers": ["protected", "virtual"],
        "protected": true,
        "virtual": true,
        "summary": "If Rhino is in a feedback mode, the draw overlay call allows for temporary geometry to be drawn on top of everything in the scene. This is similar to the dynamic draw routine that occurs with custom get point.  \nThe default implementation does nothing.",
        "parameters": [
          {
            "name": "e",
            "type": "DrawEventArgs",
            "summary": "The event argument contains the current viewport and display state."
          }
        ]
      },
      {
        "signature": "System.Void ExclusiveBind(RhinoViewport viewport)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Exclusively bind this conduit to a specific viewport"
      },
      {
        "signature": "System.Void GetSelectionFilter(out System.Boolean on, out System.Boolean checkSubObjects)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "The selection filter will make per-object conduit functions only be called for selected objects (when the filter is turned on)",
        "since": "7.0"
      },
      {
        "signature": "System.Void ObjectCulling(CullObjectEventArgs e)",
        "modifiers": ["protected", "virtual"],
        "protected": true,
        "virtual": true,
        "summary": "The default implementation does nothing."
      },
      {
        "signature": "System.Void OnEnable(System.Boolean enable)",
        "modifiers": ["protected", "virtual"],
        "protected": true,
        "virtual": true,
        "summary": "Called when the enabled state changes for this class instance",
        "since": "7.0"
      },
      {
        "signature": "System.Void PostDrawObjects(DrawEventArgs e)",
        "modifiers": ["protected", "virtual"],
        "protected": true,
        "virtual": true,
        "summary": "Called after all non-highlighted objects have been drawn. Depth writing and testing are still turned on. If you want to draw without depth writing/testing, see DrawForeground.  \nThe default implementation does nothing.",
        "parameters": [
          {
            "name": "e",
            "type": "DrawEventArgs",
            "summary": "The event argument contains the current viewport and display state."
          }
        ]
      },
      {
        "signature": "System.Void PreDrawObject(DrawObjectEventArgs e)",
        "modifiers": ["protected", "virtual"],
        "protected": true,
        "virtual": true,
        "summary": "Called before every object in the scene is drawn."
      },
      {
        "signature": "System.Void PreDrawObjects(DrawEventArgs e)",
        "modifiers": ["protected", "virtual"],
        "protected": true,
        "virtual": true,
        "summary": "Called before objects are been drawn. Depth writing and testing are on.  \nThe default implementation does nothing.",
        "parameters": [
          {
            "name": "e",
            "type": "DrawEventArgs",
            "summary": "The event argument contain the current viewport and display state."
          }
        ]
      },
      {
        "signature": "System.Void SetObjectIdFilter(IEnumerable<Guid> ids)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Set object Ids that this conduit's per-object functions will only be called for",
        "since": "7.0"
      },
      {
        "signature": "System.Void SetObjectIdFilter(System.Guid id)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Set an object Id that this conduit's per-object functions will only be called for",
        "since": "7.0"
      },
      {
        "signature": "System.Void SetSelectionFilter(System.Boolean on, System.Boolean checkSubObjects)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "The selection filter will make per-object conduit functions only be called for selected objects (when the filter is turned on)",
        "since": "7.0"
      },
      {
        "signature": "System.Void UnbindAll()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Remove viewport bindings"
      }
    ]
  },
  {
    "namespace": "Rhino.Display",
    "name": "DisplayEngine",
    "dataType": "class",
    "interfaces": ["IDisposable"],
    "constructors": [
      {
        "signature": "DisplayEngine()",
        "modifiers": ["protected"],
        "protected": true,
        "virtual": false
      }
    ],
    "methods": [
      {
        "signature": "System.Void Dispose()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Actively reclaims unmanaged resources that this instance uses.",
        "since": "6.0"
      }
    ]
  },
  {
    "namespace": "Rhino.Display",
    "name": "DisplayMaterial",
    "dataType": "class",
    "interfaces": ["IDisposable"],
    "constructors": [
      {
        "signature": "DisplayMaterial()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Constructs a default material.",
        "since": "5.0"
      },
      {
        "signature": "DisplayMaterial(Color diffuse, Color specular, Color ambient, Color emission, double shine, double transparency)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Constructs a material with custom properties.",
        "since": "5.0",
        "parameters": [
          {
            "name": "diffuse",
            "type": "Color",
            "summary": "Diffuse color of material. The alpha component of the Diffuse color is ignored."
          },
          {
            "name": "specular",
            "type": "Color",
            "summary": "Specular color of material. The alpha component of the Specular color is ignored."
          },
          {
            "name": "ambient",
            "type": "Color",
            "summary": "Ambient color of material. The alpha component of the Ambient color is ignored."
          },
          {
            "name": "emission",
            "type": "Color",
            "summary": "Emission color of material. The alpha component of the Emission color is ignored."
          },
          {
            "name": "shine",
            "type": "System.Double",
            "summary": "Shine (highlight size) of material."
          },
          {
            "name": "transparency",
            "type": "System.Double",
            "summary": "Transparency of material (0.0 = opaque, 1.0 = transparent)"
          }
        ]
      },
      {
        "signature": "DisplayMaterial(Color diffuse, double transparency)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Constructs a default material with a specific diffuse color and transparency.",
        "since": "5.0",
        "parameters": [
          {
            "name": "diffuse",
            "type": "Color",
            "summary": "Diffuse color of material. The alpha component of the Diffuse color is ignored."
          },
          {
            "name": "transparency",
            "type": "System.Double",
            "summary": "Transparency factor (0.0 = opaque, 1.0 = transparent)"
          }
        ]
      },
      {
        "signature": "DisplayMaterial(Color diffuse)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Constructs a default material with a specific diffuse color.",
        "since": "5.0",
        "parameters": [
          {
            "name": "diffuse",
            "type": "Color",
            "summary": "Diffuse color of material. The alpha component of the Diffuse color is ignored."
          }
        ]
      },
      {
        "signature": "DisplayMaterial(DisplayMaterial other)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Duplicate another material.",
        "since": "5.0"
      },
      {
        "signature": "DisplayMaterial(Material material)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      }
    ],
    "properties": [
      {
        "signature": "Color Ambient",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the Ambient color of the Material. The alpha component of the color will be ignored.",
        "since": "5.0",
        "obsolete": "This property is obsolete: ambient is no longer supported",
        "property": ["get", "set"]
      },
      {
        "signature": "Color BackAmbient",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the Ambient color of the back side of the Material. The alpha component of the color will be ignored.",
        "since": "5.0",
        "obsolete": "This property is obsolete: ambient is no longer supported",
        "property": ["get", "set"]
      },
      {
        "signature": "Color BackDiffuse",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the Diffuse color of the back side of the Material. The alpha component of the color will be ignored.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "Color BackEmission",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the Emissive color of the back side of the Material. The alpha component of the color will be ignored.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "double BackShine",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the shine factor of the back side of the material (0.0 to 1.0)",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "Color BackSpecular",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the Specular color of the back side of the Material. The alpha component of the color will be ignored.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "double BackTransparency",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the transparency of the back side material (0.0 = opaque to 1.0 = transparent)",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "Color Diffuse",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the Diffuse color of the Material. The alpha component of the color will be ignored.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "Color Emission",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the Emissive color of the Material. The alpha component of the color will be ignored.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool IsTwoSided",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "double Shine",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the shine factor of the material (0.0 to 1.0)",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "Color Specular",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the Specular color of the Material. The alpha component of the color will be ignored.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "double Transparency",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the transparency of the material (0.0 = opaque to 1.0 = transparent)",
        "since": "5.0",
        "property": ["get", "set"]
      }
    ],
    "methods": [
      {
        "signature": "System.Void Dispose()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "System.Void Dispose(System.Boolean disposing)",
        "modifiers": ["protected", "virtual"],
        "protected": true,
        "virtual": true
      },
      {
        "signature": "Rhino.DocObjects.Texture GetBitmapTexture(System.Boolean front)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "Rhino.DocObjects.Texture GetBumpTexture(System.Boolean front)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the bump texture for this display material.",
        "since": "5.0",
        "returns": "The texture, or None if no bump texture has been added to this material."
      },
      {
        "signature": "Rhino.DocObjects.Texture GetEnvironmentTexture(System.Boolean front)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "Rhino.DocObjects.Texture GetTransparencyTexture(System.Boolean front)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "System.Boolean SetBitmapTexture(Rhino.DocObjects.Texture texture, System.Boolean front)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "System.Boolean SetBitmapTexture(System.String filename, System.Boolean front)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "System.Boolean SetBumpTexture(Rhino.DocObjects.Texture texture, System.Boolean front)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "System.Boolean SetBumpTexture(System.String filename, System.Boolean front)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "System.Boolean SetEnvironmentTexture(Rhino.DocObjects.Texture texture, System.Boolean front)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "System.Boolean SetEnvironmentTexture(System.String filename, System.Boolean front)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "System.Boolean SetTransparencyTexture(Rhino.DocObjects.Texture texture, System.Boolean front)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "System.Boolean SetTransparencyTexture(System.String filename, System.Boolean front)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      }
    ]
  },
  {
    "namespace": "Rhino.Display",
    "name": "DisplayModeChangedEventArgs",
    "dataType": "class",
    "baseclass": "EventArgs",
    "properties": [
      {
        "signature": "Guid ChangedDisplayModeId",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.18",
        "property": ["get"]
      },
      {
        "signature": "Guid OldDisplayModeId",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.18",
        "property": ["get"]
      },
      {
        "signature": "RhinoDoc RhinoDoc",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.18",
        "property": ["get"]
      },
      {
        "signature": "RhinoViewport Viewport",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.18",
        "property": ["get"]
      }
    ]
  },
  {
    "namespace": "Rhino.Display",
    "name": "DisplayModeDescription",
    "dataType": "class",
    "summary": "Description of a how Rhino will display in a viewport. These are the modes that are listed under \"Advanced display\" in the options dialog.",
    "interfaces": ["IDisposable", "ISerializable"],
    "properties": [
      {
        "signature": "Guid AmbientOcclusionId",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "Guid ArtisticId",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "6.26",
        "property": ["get"]
      },
      {
        "signature": "Guid GhostedId",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "Guid MonochromeId",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "8.14",
        "property": ["get"]
      },
      {
        "signature": "Guid PenId",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "Guid RaytracedId",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "Guid RenderedId",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "Guid RenderedShadowsId",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "Guid ShadedId",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "Guid TechId",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "Guid WireframeId",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "Guid XRayId",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "bool AllowObjectAssignment",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "DisplayPipelineAttributes DisplayAttributes",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "string EnglishName",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "Guid Id",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "bool InMenu",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "string LocalName",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "bool PipelineLocked",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool ShadedPipelineRequired",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool SupportsShadeCommand",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool SupportsShading",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool WireframePipelineRequired",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0",
        "property": ["get", "set"]
      }
    ],
    "methods": [
      {
        "signature": "System.Guid AddDisplayMode(DisplayModeDescription displayMode)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Adds a new display mode from an existing description. Note that this only registers the mode in memory; call UpdateDisplayMode to persist it to disk.",
        "since": "5.0",
        "parameters": [
          {
            "name": "displayMode",
            "type": "DisplayModeDescription",
            "summary": "The display mode description to add."
          }
        ],
        "returns": "The id of the new display mode if successful. Guid.Empty on error."
      },
      {
        "signature": "System.Guid AddDisplayMode(System.String name)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Adds a new display mode. Note that this only registers the mode in memory; call UpdateDisplayMode to persist it to disk.",
        "since": "6.7",
        "parameters": [
          {
            "name": "name",
            "type": "System.String",
            "summary": "The name of the new display mode."
          }
        ],
        "returns": "The id of the new display mode if successful. Guid.Empty on error."
      },
      {
        "signature": "System.Guid CopyDisplayMode(System.Guid id, System.String name)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Copies an existing display mode. Note that this only registers the new mode in memory; call UpdateDisplayMode to persist it to disk.",
        "since": "6.7",
        "parameters": [
          {
            "name": "id",
            "type": "System.Guid",
            "summary": "The id of the existing display mode to copy."
          },
          {
            "name": "name",
            "type": "System.String",
            "summary": "The name of the new display mode."
          }
        ],
        "returns": "The id of the new display mode if successful. Guid.Empty on error."
      },
      {
        "signature": "System.Boolean DeleteDiplayMode(System.Guid id)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Deletes an existing display mode.",
        "since": "5.0",
        "deprecated": "7.0",
        "obsolete": "Use DisplayModeDescription.DeleteDisplayMode",
        "parameters": [
          {
            "name": "id",
            "type": "System.Guid",
            "summary": "The id of the existing display mode to delete."
          }
        ],
        "returns": "True if successful, False otherwise."
      },
      {
        "signature": "System.Boolean DeleteDisplayMode(System.Guid id)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Deletes an existing display mode.",
        "since": "7.0",
        "parameters": [
          {
            "name": "id",
            "type": "System.Guid",
            "summary": "The id of the existing display mode to delete."
          }
        ],
        "returns": "True if successful, False otherwise."
      },
      {
        "signature": "System.Boolean ExportToFile(DisplayModeDescription displayMode, System.String filename)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Exports a DisplayModeDescription to a Windows-style .ini file.",
        "since": "6.0",
        "parameters": [
          {
            "name": "displayMode",
            "type": "DisplayModeDescription",
            "summary": "The DisplayModeDescription to export."
          },
          {
            "name": "filename",
            "type": "System.String",
            "summary": "The name of the file to create."
          }
        ]
      },
      {
        "signature": "DisplayModeDescription FindByName(System.String englishName)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Finds a display mode description by its English name.",
        "since": "5.0",
        "parameters": [
          {
            "name": "englishName",
            "type": "System.String",
            "summary": "The English name of the display mode."
          }
        ],
        "returns": "The display mode description if found, None otherwise."
      },
      {
        "signature": "DisplayModeDescription GetDisplayMode(System.Guid id)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Gets a display mode description by id.",
        "since": "5.0",
        "parameters": [
          {
            "name": "id",
            "type": "System.Guid",
            "summary": "The id of the display mode."
          }
        ],
        "returns": "The display mode description if found, None otherwise."
      },
      {
        "signature": "DisplayModeDescription[] GetDisplayModes()",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Gets all display mode descriptions that Rhino currently knows about.",
        "since": "5.0",
        "returns": "Copies of all of the display mode descriptions. If you want to modify these descriptions, you must call UpdateDisplayMode or AddDisplayMode."
      },
      {
        "signature": "System.Guid ImportFromFile(System.String filename, System.Boolean interactive)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Imports a DisplayModeDescription from a Windows-style .ini file.",
        "since": "8.27",
        "parameters": [
          {
            "name": "filename",
            "type": "System.String",
            "summary": "The name of the file to import."
          },
          {
            "name": "interactive",
            "type": "System.Boolean",
            "summary": "True to show user interface messages, False to suppress any user interface messages."
          }
        ],
        "returns": "The id of the DisplayModeDescription if successful."
      },
      {
        "signature": "System.Guid ImportFromFile(System.String filename)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Imports a DisplayModeDescription from a Windows-style .ini file.",
        "since": "6.0",
        "parameters": [
          {
            "name": "filename",
            "type": "System.String",
            "summary": "The name of the file to import."
          }
        ],
        "returns": "The id of the DisplayModeDescription if successful."
      },
      {
        "signature": "System.Boolean UpdateDisplayMode(DisplayModeDescription displayMode)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Updates an existing display mode and immediately saves it to disk. Call this after AddDisplayMode/CopyDisplayMode or changing DisplayAttributes to persist the change; otherwise an unrelated settings save elsewhere in Rhino can reload the display mode list from disk and silently discard the unsaved mode.",
        "since": "5.0",
        "parameters": [
          {
            "name": "displayMode",
            "type": "DisplayModeDescription",
            "summary": "The display mode description to update."
          }
        ],
        "returns": "True if successful, False otherwise."
      },
      {
        "signature": "System.Void Dispose()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "System.Void Dispose(System.Boolean disposing)",
        "modifiers": ["protected", "virtual"],
        "protected": true,
        "virtual": true
      }
    ]
  },
  {
    "namespace": "Rhino.Display",
    "name": "DisplayPen",
    "dataType": "class",
    "summary": "Pen used to define stroke applied to several DisplayPipeline draw functions",
    "constructors": [
      {
        "signature": "DisplayPen()",
        "summary": "Initializes a new instance of the DisplayPen class"
      }
    ],
    "properties": [
      {
        "signature": "LineCapStyle CapStyle",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "How caps are drawn at the ends of open curves",
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "Color Color",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Color applied to stroke",
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "Color HaloColor",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Halos are blended colors drawn around a curve for purposes like selection",
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "float HaloThickness",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Halos are blended colors drawn around a curve for purposes like selection",
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "LineJoinStyle JoinStyle",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "How corners of curves are joined",
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool PatternAutoscale",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Scale pattern in detail views",
        "since": "9.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool PatternBySegment",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Restart patterns at corners in a curve",
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool PatternLengthInWorldUnits",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "If true, lengths in pattern definition are interpreted to be in world units. If false, screen pixel distances are used.",
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "float PatternOffset",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Offset to apply to pattern. If RhinoMath.UnsetSingle, then pattern is centered to keep even dash lengths at ends",
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "float PatternScale",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Scale applied to the pattern, use 0.0 to let Rhino apply global scale.",
        "since": "9.0",
        "property": ["get", "set"]
      },
      {
        "signature": "float Thickness",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Thickness for stroke",
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "CoordinateSystem ThicknessSpace",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Coordinate system for the pen's thickness",
        "since": "8.0",
        "property": ["get", "set"]
      }
    ],
    "methods": [
      {
        "signature": "DisplayPen FromLinetype(Linetype linetype, System.Drawing.Color color, System.Double patternScale)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Create a display pen that matches a linetype definition",
        "since": "8.0",
        "parameters": [
          {
            "name": "linetype",
            "type": "Linetype",
            "summary": ""
          },
          {
            "name": "color",
            "type": "System.Drawing.Color",
            "summary": ""
          },
          {
            "name": "patternScale",
            "type": "System.Double",
            "summary": "scale to be applied to linetype dash pattern. Typically this is 1.0."
          }
        ]
      },
      {
        "signature": "DisplayPen FromLinetype(Linetype linetype, System.Drawing.Color color)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Create a display pen that matches a linetype definition on any viewport.",
        "since": "9.0"
      },
      {
        "signature": "DisplayPen Duplicate()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Create a duplicate of this display pen.",
        "since": "8.0",
        "returns": "An exact duplicate of this display pen."
      },
      {
        "signature": "System.Single[] PatternAsArray()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Get the pattern for this pen as an array of dash,gap,dash,gap... values",
        "since": "8.0"
      },
      {
        "signature": "System.Void SetPattern(IEnumerable<float> dashesAndGaps)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Set pattern to apply for a stroke.",
        "since": "8.0",
        "parameters": [
          {
            "name": "dashesAndGaps",
            "type": "System.Collections.Generic.IEnumerable<float>",
            "summary": "Lengths of dashes and gaps for a pattern. Dash is always assumed the first item. There is a limit to 8 dashes and gaps total"
          }
        ]
      },
      {
        "signature": "System.Void SetTaper(System.Single startThickness, System.Single endThickness, Point2f taperPoint)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Positions and thickness at those positions along a curve that define a taper.",
        "since": "8.0"
      },
      {
        "signature": "Point2f[] TaperAsArray()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Collection of positions and thicknesses at those positions to define a taper Rhino currently only supports either no taper or a single taper. An array is used here in case Rhino supports multiple taper values in the future.",
        "since": "8.0"
      }
    ]
  },
  {
    "namespace": "Rhino.Display",
    "name": "DisplayPipeline",
    "dataType": "class",
    "summary": "The display pipeline calls events during specific phases of drawing   During the drawing of a single frame the events are called in the following order.    [Begin Drawing of a Frame] <ul><li>CalculateBoundingBox</li><li>CalculateClippingPanes</li><li>SetupFrustum</li><li>SetupLighting</li><li>InitializeFrameBuffer</li><li>DrawBackground</li><li>If this is a layout and detail objects exist the channels are called in the same order for each detail object (drawn as a nested viewport)</li><li>PreDrawObjects</li><li>For Each Visible Non Highlighted Object<ul><li>SetupObjectDisplayAttributes</li><li>PreDrawObject</li><li>DrawObject</li><li>PostDrawObject</li></ul></li><li>PostDrawObjects - depth writing/testing on</li><li>DrawForeGround - depth writing/testing off</li><li>For Each Visible Highlighted Object<ul><li>SetupObjectDisplayAttributes</li><li>PreDrawObject</li><li>DrawObject</li><li>PostDrawObject</li></ul></li><li>PostProcessFrameBuffer (If a delegate exists that requires this)</li><li>DrawOverlay (if Rhino is in a feedback mode)</li></ul> [End of Drawing of a Frame]  \nNOTE: There may be multiple DrawObject calls for a single object. An example of when this could         happen would be with a shaded sphere. The shaded mesh is first drawn and these channels would         be processed; then at a later time the isocurves for the sphere would be drawn.",
    "properties": [
      {
        "signature": "RhinoObject ActiveObject",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.7",
        "property": ["get"]
      },
      {
        "signature": "int ActiveObjectNestingLevel",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.7",
        "property": ["get"]
      },
      {
        "signature": "RhinoObject[] ActiveObjectNestingStack",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.7",
        "property": ["get"]
      },
      {
        "signature": "RhinoObject ActiveTopLevelObject",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.7",
        "property": ["get"]
      },
      {
        "signature": "int DefaultCurveThickness",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the curve thickness as defined by the current display mode. Note: this only applies to curve objects, Brep and Mesh wires may have different settings.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "DepthMode DepthMode",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "DisplayPipelineAttributes DisplayPipelineAttributes",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.3",
        "property": ["get"]
      },
      {
        "signature": "float DpiScale",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Scale factor used for high resolution displays. When a monitor that this pipeline is drawing to is at a DPI of 96, this value is one. On high DPI monitors, this value will commonly be greater than one.",
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "bool DrawingGrips",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets a value that indicates whether the pipeline is currently in a grip drawing operation.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "bool DrawingSurfaces",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets a value that indicates whether the pipeline is currently in a surface drawing operation.  Surface drawing means draw the shaded triangles of a mesh representing the surface (mesh, extrusion, or brep).  This is useful when inside of a draw event or display conduit to check and see if the geometry is about to be drawn as a shaded set of triangles representing the geometry. See DrawingWires to check and see if the wireframe representation of the geometry is going to be drawn.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "bool DrawingWires",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets a value that indicates whether the pipeline is currently in a curve drawing operation. This is useful when inside of a draw event or display conduit to check and see if the geometry is about to be drawn is going to be drawing the wire representation of the geometry (mesh, extrusion, or brep).  See DrawingSurfaces to check and see if the shaded mesh representation of the geometry is going to be drawn.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "Bitmap FrameBuffer",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the contents of the frame buffer that this pipeline is drawing to.",
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "Size FrameSize",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the size of the frame buffer that this pipeline is drawing to.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "bool IsDynamicDisplay",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets a value that indicates whether the viewport is in Dynamic Display state. Dynamic display is the state a viewport is in when it is rapidly redrawing because of an operation like panning or rotating. The pipeline will drop some level of detail while inside a dynamic display state to keep the frame rate as high as possible.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "bool IsInViewCapture",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets a value that indicates whether this pipeline is currently drawing for ViewCaptureToFile or ViewCaptureToClipboard",
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "bool IsOpen",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Is True of the pipeline is open, False otherwise.",
        "since": "7.0",
        "property": ["get"]
      },
      {
        "signature": "bool IsOpenGL",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets a value indicating whether or not this pipeline is drawing into an OpenGL context.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "bool IsPrinting",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets a value that indicates whether this pipeline is currently drawing for printing purposes.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "bool IsStereoMode",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets a value that indicates whether this pipeline is currently using an engine that is performing stereo style drawing. Stereo drawing is for providing an \"enhanced 3-D\" effect through stereo viewing devices.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "Transform ModelTransform",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the current model transformation that is applied to vertices when drawing.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool ModelTransformIsIdentity",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets a value that indicates whether the Model Transform is an Identity transformation.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "int NestLevel",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the current nested viewport drawing level. This is used to know if you are currently inside the drawing of a nested viewport (detail object in Rhino).  \nNest level = 0 Drawing is occurring in a standard Rhino viewport or on the page viewport.  \nNest level = 1 Drawing is occurring inside a detail view object.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "int RenderPass",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the current pass that the pipeline is in for drawing a frame. Typically drawing a frame requires a single pass through the DrawFrameBuffer function, but some special display effects can be achieved through drawing with multiple passes.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "bool ShadingRequired",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the \"ShadingRequired\" flag. This flag gets set inside the pipeline when a request is made to draw a shaded mesh but the current render engine doesn't support shaded mesh drawing...at this point the redraw mechanism will make sure everything will work the next time around.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "int StereoProjection",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the current stereo projection if stereo mode is on.  \n0 = left  \n1 = right If stereo mode is not enables, this property always returns 0.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "bool SupportsShading",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets whether or not this pipeline supports shaded meshes.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "RhinoViewport Viewport",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "ZBiasMode ZBiasMode",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0",
        "property": ["get", "set"]
      }
    ],
    "methods": [
      {
        "signature": "System.UInt32 AvailableOpenGLVersion(out System.Boolean coreProfile)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "If Rhino is using OpenGL for display, this function will return major.minor version of OpenGL available for this instance of Rhino",
        "since": "6.21",
        "parameters": [
          {
            "name": "coreProfile",
            "type": "System.Boolean",
            "summary": "If true, OpenGL is being used in \"core profile\" mode"
          }
        ],
        "returns": "major version * 10 + minor version For example, OpenGL 4.5 returns 45"
      },
      {
        "signature": "System.Boolean CullControlPolygon()",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Returns a value indicating if only points on the side of the surface that face the camera are displayed.",
        "since": "5.0",
        "returns": "True if back faces of surface and mesh control polygons are culled. This value is determined by the _CullControlPolygon command."
      },
      {
        "signature": "System.Drawing.Bitmap DrawToBitmap(RhinoViewport viewport, System.Int32 width, System.Int32 height)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Draw a given viewport to an off-screen bitmap.",
        "since": "5.0",
        "parameters": [
          {
            "name": "viewport",
            "type": "RhinoViewport",
            "summary": "Viewport to draw."
          },
          {
            "name": "width",
            "type": "System.Int32",
            "summary": "Width of target image."
          },
          {
            "name": "height",
            "type": "System.Int32",
            "summary": "Height of target image."
          }
        ],
        "returns": "A bitmap containing the given view, or None on error."
      },
      {
        "signature": "System.Void GetDrawListSerialNumbers(out System.UInt32 modelSerialNumber, out System.UInt32 pageSerialNumber)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the current model and page view draw list serial numbers, which can be used to determine if a model or page view needs to be redrawn.",
        "since": "7.0",
        "parameters": [
          {
            "name": "modelSerialNumber",
            "type": "System.UInt32",
            "summary": "The current model draw list serial number."
          },
          {
            "name": "pageSerialNumber",
            "type": "System.UInt32",
            "summary": "The current page view draw list serial number."
          }
        ]
      },
      {
        "signature": "System.Boolean MakeDefaultOpenGLContextCurrent()",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Make a \"default\" OpenGL context current",
        "since": "7.0"
      },
      {
        "signature": "System.Int32[] SupportedMultisamlpleModes(DisplayTechnology technology)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Multisample modes available",
        "since": "9.0"
      },
      {
        "signature": "System.Int32 AddClippingPlane(Point3d point, Vector3d normal)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Add a clipping plane to be used during the drawing of this frame",
        "since": "6.3",
        "parameters": [
          {
            "name": "point",
            "type": "Point3d",
            "summary": "point on the plane"
          },
          {
            "name": "normal",
            "type": "Vector3d",
            "summary": "vector perpendicular to the plane"
          }
        ],
        "returns": "index for the added clipping plane"
      },
      {
        "signature": "System.Void ClearFrameBuffer(System.Drawing.Color color)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Fill the frame buffer with a single color. This function also clears the depth buffer for engines that support depth buffered drawing.",
        "since": "8.0",
        "parameters": [
          {
            "name": "color",
            "type": "System.Drawing.Color",
            "summary": "the color to fill the frame buffer with"
          }
        ]
      },
      {
        "signature": "DisplayPipeline Clone(RhinoViewport viewport)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Clones the pipeline. Creates an identical copy of \"this\" pipeline. Copies all conduits from \"this\" pipeline to the new pipeline.",
        "since": "7.0",
        "returns": "The newly cloned pipeline if successful, None otherwise. or failed to close."
      },
      {
        "signature": "System.Boolean Close()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Closes the pipeline.",
        "since": "7.0",
        "returns": "True if the pipeline was closed, False if it was already closed or failed to close."
      },
      {
        "signature": "System.Void Draw2dLine(System.Drawing.Point from, System.Drawing.Point to, System.Drawing.Color color, System.Single thickness)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0"
      },
      {
        "signature": "System.Void Draw2dLine(System.Drawing.PointF from, System.Drawing.PointF to, System.Drawing.Color color, System.Single thickness)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0"
      },
      {
        "signature": "System.Void Draw2dRectangle(System.Drawing.Rectangle rectangle, System.Drawing.Color strokeColor, System.Int32 thickness, System.Drawing.Color fillColor)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.10"
      },
      {
        "signature": "System.Void Draw2dText(System.String text, System.Drawing.Color color, Point2d screenCoordinate, System.Boolean middleJustified, System.Int32 height, System.String fontface)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Draws 2D text on the viewport.",
        "since": "5.0",
        "parameters": [
          {
            "name": "text",
            "type": "System.String",
            "summary": "the string to draw."
          },
          {
            "name": "color",
            "type": "System.Drawing.Color",
            "summary": "text color."
          },
          {
            "name": "screenCoordinate",
            "type": "Point2d",
            "summary": "definition point in screen coordinates (0,0 is top-left corner)"
          },
          {
            "name": "middleJustified",
            "type": "System.Boolean",
            "summary": "if True text is centered around the definition point, otherwise it is lower-left justified."
          },
          {
            "name": "height",
            "type": "System.Int32",
            "summary": "height in pixels (good default is 12)"
          },
          {
            "name": "fontface",
            "type": "System.String",
            "summary": "font name (good default is \"Arial\")"
          }
        ]
      },
      {
        "signature": "System.Void Draw2dText(System.String text, System.Drawing.Color color, Point2d screenCoordinate, System.Boolean middleJustified, System.Int32 height)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Draws 2D text on the viewport.",
        "since": "5.0",
        "parameters": [
          {
            "name": "text",
            "type": "System.String",
            "summary": "the string to draw."
          },
          {
            "name": "color",
            "type": "System.Drawing.Color",
            "summary": "text color."
          },
          {
            "name": "screenCoordinate",
            "type": "Point2d",
            "summary": "definition point in screen coordinates (0,0 is top-left corner)"
          },
          {
            "name": "middleJustified",
            "type": "System.Boolean",
            "summary": "if True text is centered around the definition point, otherwise it is lower-left justified."
          },
          {
            "name": "height",
            "type": "System.Int32",
            "summary": "height in pixels (good default is 12)"
          }
        ]
      },
      {
        "signature": "System.Void Draw2dText(System.String text, System.Drawing.Color color, Point2d screenCoordinate, System.Boolean middleJustified)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Draws 2D text on the viewport.",
        "since": "5.0",
        "parameters": [
          {
            "name": "text",
            "type": "System.String",
            "summary": "the string to draw."
          },
          {
            "name": "color",
            "type": "System.Drawing.Color",
            "summary": "text color."
          },
          {
            "name": "screenCoordinate",
            "type": "Point2d",
            "summary": "definition point in screen coordinates (0,0 is top-left corner)"
          },
          {
            "name": "middleJustified",
            "type": "System.Boolean",
            "summary": "if True text is centered around the definition point, otherwise it is lower-left justified."
          }
        ]
      },
      {
        "signature": "System.Void Draw2dText(System.String text, System.Drawing.Color color, Point3d worldCoordinate, System.Boolean middleJustified, System.Int32 height, System.String fontface)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Draws 2D text on the viewport.",
        "since": "5.0",
        "parameters": [
          {
            "name": "text",
            "type": "System.String",
            "summary": "The string to draw."
          },
          {
            "name": "color",
            "type": "System.Drawing.Color",
            "summary": "Text color."
          },
          {
            "name": "worldCoordinate",
            "type": "Point3d",
            "summary": "Definition point in world coordinates."
          },
          {
            "name": "middleJustified",
            "type": "System.Boolean",
            "summary": "If True text is centered around the definition point, otherwise it is lower-left justified."
          },
          {
            "name": "height",
            "type": "System.Int32",
            "summary": "Height in pixels (good default is 12)."
          },
          {
            "name": "fontface",
            "type": "System.String",
            "summary": "Font name (good default is \"Arial\")."
          }
        ]
      },
      {
        "signature": "System.Void Draw2dText(System.String text, System.Drawing.Color color, Point3d worldCoordinate, System.Boolean middleJustified, System.Int32 height)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Draws 2D text on the viewport.",
        "since": "5.0",
        "parameters": [
          {
            "name": "text",
            "type": "System.String",
            "summary": "the string to draw."
          },
          {
            "name": "color",
            "type": "System.Drawing.Color",
            "summary": "text color."
          },
          {
            "name": "worldCoordinate",
            "type": "Point3d",
            "summary": "definition point in world coordinates."
          },
          {
            "name": "middleJustified",
            "type": "System.Boolean",
            "summary": "if True text is centered around the definition point, otherwise it is lower-left justified."
          },
          {
            "name": "height",
            "type": "System.Int32",
            "summary": "height in pixels (good default is 12)"
          }
        ]
      },
      {
        "signature": "System.Void Draw2dText(System.String text, System.Drawing.Color color, Point3d worldCoordinate, System.Boolean middleJustified)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Draws 2D text on the viewport.",
        "since": "5.0",
        "parameters": [
          {
            "name": "text",
            "type": "System.String",
            "summary": "the string to draw."
          },
          {
            "name": "color",
            "type": "System.Drawing.Color",
            "summary": "text color."
          },
          {
            "name": "worldCoordinate",
            "type": "Point3d",
            "summary": "definition point in world coordinates."
          },
          {
            "name": "middleJustified",
            "type": "System.Boolean",
            "summary": "if True text is centered around the definition point, otherwise it is lower-left justified."
          }
        ]
      },
      {
        "signature": "System.Void Draw3dText(System.String text, System.Drawing.Color color, Plane textPlane, System.Double height, System.String fontface, System.Boolean bold, System.Boolean italic, DocObjects.TextHorizontalAlignment horizontalAlignment, DocObjects.TextVerticalAlignment verticalAlignment)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.4"
      },
      {
        "signature": "System.Void Draw3dText(System.String text, System.Drawing.Color color, Plane textPlane, System.Double height, System.String fontface, System.Boolean bold, System.Boolean italic)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0"
      },
      {
        "signature": "System.Void Draw3dText(System.String text, System.Drawing.Color color, Plane textPlane, System.Double height, System.String fontface)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "System.Void Draw3dText(Text3d text, System.Drawing.Color color, Plane textPlane)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Draws 3d text with a different plane than what is defined in the Text3d class.",
        "since": "5.0",
        "parameters": [
          {
            "name": "text",
            "type": "Text3d",
            "summary": "The string to draw."
          },
          {
            "name": "color",
            "type": "System.Drawing.Color",
            "summary": "Text color."
          },
          {
            "name": "textPlane",
            "type": "Plane",
            "summary": "The plane for the text object."
          }
        ]
      },
      {
        "signature": "System.Void Draw3dText(Text3d text, System.Drawing.Color color, Point3d textPlaneOrigin)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Draws 3d text using the Text3d plane with an adjusted origin.",
        "since": "5.0",
        "parameters": [
          {
            "name": "text",
            "type": "Text3d",
            "summary": "The string to draw."
          },
          {
            "name": "color",
            "type": "System.Drawing.Color",
            "summary": "Text color."
          },
          {
            "name": "textPlaneOrigin",
            "type": "Point3d",
            "summary": "The origin of the plane to draw."
          }
        ]
      },
      {
        "signature": "System.Void Draw3dText(Text3d text, System.Drawing.Color color)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "System.Void DrawActivePoint(Point3d point)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Draws a point in style used during \"GetPoint\" operations",
        "since": "6.0",
        "parameters": [
          {
            "name": "point",
            "type": "Point3d",
            "summary": "Location of the point in world coordinates"
          }
        ]
      },
      {
        "signature": "System.Void DrawAnnotation(AnnotationBase annotation, DocObjects.RhinoObject parentObject, System.Drawing.Color color)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Draws an annotation geometry while evaluating any embedded text fields (e.g. %<Date>%, %<DocumentText(\"...\")>%) against the supplied parent <b>DocObjects.RhinoObject</b> . Intended for preview conduits that draw a modified copy of an annotation's geometry while the user is editing it — the regular geometry-only overload skips field evaluation because it has no display cache to anchor to.",
        "since": "9.0"
      },
      {
        "signature": "System.Void DrawAnnotation(AnnotationBase annotation, System.Drawing.Color color)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0"
      },
      {
        "signature": "System.Void DrawAnnotationArrowhead(Arrowhead arrowhead, Transform xform, System.Drawing.Color color)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0"
      },
      {
        "signature": "System.Void DrawArc(Arc arc, System.Drawing.Color color, System.Int32 thickness)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Draw a single arc object.",
        "since": "5.0",
        "parameters": [
          {
            "name": "arc",
            "type": "Arc",
            "summary": "Arc to draw."
          },
          {
            "name": "color",
            "type": "System.Drawing.Color",
            "summary": "Color to draw with."
          },
          {
            "name": "thickness",
            "type": "System.Int32",
            "summary": "Thickness (in pixels) of arc."
          }
        ]
      },
      {
        "signature": "System.Void DrawArc(Arc arc, System.Drawing.Color color)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Draw a single arc object.",
        "since": "5.0",
        "parameters": [
          {
            "name": "arc",
            "type": "Arc",
            "summary": "Arc to draw."
          },
          {
            "name": "color",
            "type": "System.Drawing.Color",
            "summary": "Color to draw with."
          }
        ]
      },
      {
        "signature": "System.Void DrawArrow(Line line, System.Double headSize, System.Drawing.Color color, System.Single shaftWidth)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Draw a Grasshopper 2 style vector arrow. This method is relatively slow as it requires the construction of a DisplayPen and a PolylineCurve. However it is more accurate than other arrow drawing methods in that the tip of the drawn arrow is very close to the actual end of the line, the tip is always sharp, and the arrow head is resized to never be too small or large. Also note this method already takes into account logical pixel scaling.",
        "parameters": [
          {
            "name": "line",
            "type": "Line",
            "summary": "Vector shaft to draw."
          },
          {
            "name": "headSize",
            "type": "System.Double",
            "summary": "Size of the head as a factor of arrow length. 0.1 would be a decent size."
          },
          {
            "name": "color",
            "type": "System.Drawing.Color",
            "summary": "Color of arrow geometry."
          },
          {
            "name": "shaftWidth",
            "type": "System.Single",
            "summary": "Width of arrow geometry. Note that the shaft is drawn using a method which only supports integer thicknesses and the arrow head is drawn thicker to counter the human perception of seeing angled lines thinner than they really are."
          }
        ]
      },
      {
        "signature": "System.Void DrawArrow(Line line, System.Drawing.Color color, System.Double screenSize, System.Double relativeSize)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Draws a single arrow object. An arrow consists of a Shaft and an Arrow head at the end of the shaft.",
        "since": "5.0",
        "parameters": [
          {
            "name": "line",
            "type": "Line",
            "summary": "Arrow shaft."
          },
          {
            "name": "color",
            "type": "System.Drawing.Color",
            "summary": "Color of arrow."
          },
          {
            "name": "screenSize",
            "type": "System.Double",
            "summary": "If screenSize != 0.0 then the size (in screen pixels) of the arrow head will be equal to screenSize."
          },
          {
            "name": "relativeSize",
            "type": "System.Double",
            "summary": "If relativeSize != 0.0 and screen size == 0.0 the size of the arrow head will be proportional to the arrow shaft length."
          }
        ]
      },
      {
        "signature": "System.Void DrawArrow(Line line, System.Drawing.Color color)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Draws a single arrow object. An arrow consists of a Shaft and an Arrow head at the end of the shaft.",
        "since": "5.0",
        "parameters": [
          {
            "name": "line",
            "type": "Line",
            "summary": "Arrow shaft."
          },
          {
            "name": "color",
            "type": "System.Drawing.Color",
            "summary": "Color of arrow."
          }
        ]
      },
      {
        "signature": "System.Void DrawArrowHead(Point3d tip, Vector3d direction, System.Drawing.Color color, System.Double screenSize, System.Double worldSize)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Draws a single arrow head.",
        "since": "5.0",
        "parameters": [
          {
            "name": "tip",
            "type": "Point3d",
            "summary": "Point of arrow head tip."
          },
          {
            "name": "direction",
            "type": "Vector3d",
            "summary": "Direction in which arrow head is pointing."
          },
          {
            "name": "color",
            "type": "System.Drawing.Color",
            "summary": "Color of arrow head."
          },
          {
            "name": "screenSize",
            "type": "System.Double",
            "summary": "If screenSize != 0.0, then the size (in screen pixels) of the arrow head will be equal to the screenSize."
          },
          {
            "name": "worldSize",
            "type": "System.Double",
            "summary": "If worldSize != 0.0 and screen size == 0.0 the size of the arrow head will be equal to the number of units in worldSize."
          }
        ]
      },
      {
        "signature": "System.Void DrawArrows(IEnumerable<Line> lines, System.Drawing.Color color)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Draws a collection of arrow objects. An arrow consists of a Shaft and an Arrow head at the end of the shaft.",
        "since": "5.0",
        "parameters": [
          {
            "name": "lines",
            "type": "System.Collections.Generic.IEnumerable<Line>",
            "summary": "Arrow shafts."
          },
          {
            "name": "color",
            "type": "System.Drawing.Color",
            "summary": "Color of arrows."
          }
        ]
      },
      {
        "signature": "System.Void DrawArrows(Line[] lines, System.Drawing.Color color)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Draws a collection of arrow objects. An arrow consists of a Shaft and an Arrow head at the end of the shaft.",
        "since": "5.0",
        "parameters": [
          {
            "name": "lines",
            "type": "Line[]",
            "summary": "Arrow shafts."
          },
          {
            "name": "color",
            "type": "System.Drawing.Color",
            "summary": "Color of arrows."
          }
        ]
      },
      {
        "signature": "System.Void DrawBitmap(DisplayBitmap bitmap, System.Int32 left, System.Int32 top)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Draws a bitmap in screen coordinates",
        "since": "5.10",
        "parameters": [
          {
            "name": "bitmap",
            "type": "DisplayBitmap",
            "summary": "bitmap to draw"
          },
          {
            "name": "left",
            "type": "System.Int32",
            "summary": "where top/left corner of bitmap should appear in screen coordinates"
          },
          {
            "name": "top",
            "type": "System.Int32",
            "summary": "where top/left corner of bitmap should appear in screen coordinates"
          }
        ]
      },
      {
        "signature": "System.Void DrawBox(BoundingBox box, System.Drawing.Color color, System.Int32 thickness)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Draws the edges of a BoundingBox.",
        "since": "5.0",
        "parameters": [
          {
            "name": "box",
            "type": "BoundingBox",
            "summary": "Box to draw."
          },
          {
            "name": "color",
            "type": "System.Drawing.Color",
            "summary": "Color to draw in."
          },
          {
            "name": "thickness",
            "type": "System.Int32",
            "summary": "Thickness (in pixels) of box edges."
          }
        ]
      },
      {
        "signature": "System.Void DrawBox(BoundingBox box, System.Drawing.Color color)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Draws the edges of a BoundingBox.",
        "since": "5.0",
        "parameters": [
          {
            "name": "box",
            "type": "BoundingBox",
            "summary": "Box to draw."
          },
          {
            "name": "color",
            "type": "System.Drawing.Color",
            "summary": "Color to draw in."
          }
        ]
      },
      {
        "signature": "System.Void DrawBox(Box box, System.Drawing.Color color, System.Int32 thickness)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Draws the edges of a Box object.",
        "since": "5.0",
        "parameters": [
          {
            "name": "box",
            "type": "Box",
            "summary": "Box to draw."
          },
          {
            "name": "color",
            "type": "System.Drawing.Color",
            "summary": "Color to draw in."
          },
          {
            "name": "thickness",
            "type": "System.Int32",
            "summary": "Thickness (in pixels) of box edges."
          }
        ]
      },
      {
        "signature": "System.Void DrawBox(Box box, System.Drawing.Color color)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Draws the edges of a Box object.",
        "since": "5.0",
        "parameters": [
          {
            "name": "box",
            "type": "Box",
            "summary": "Box to draw."
          },
          {
            "name": "color",
            "type": "System.Drawing.Color",
            "summary": "Color to draw in."
          }
        ]
      },
      {
        "signature": "System.Void DrawBoxCorners(BoundingBox box, System.Drawing.Color color, System.Double size, System.Int32 thickness)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Draws corner widgets of a world aligned bounding box.",
        "since": "5.0",
        "parameters": [
          {
            "name": "box",
            "type": "BoundingBox",
            "summary": "Box to draw."
          },
          {
            "name": "color",
            "type": "System.Drawing.Color",
            "summary": "Color to draw with."
          },
          {
            "name": "size",
            "type": "System.Double",
            "summary": "Size (in model units) of the corner widgets."
          },
          {
            "name": "thickness",
            "type": "System.Int32",
            "summary": "Thickness (in pixels) of the corner widgets."
          }
        ]
      },
      {
        "signature": "System.Void DrawBoxCorners(BoundingBox box, System.Drawing.Color color, System.Double size)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Draws corner widgets of a world aligned bounding box.",
        "since": "5.0",
        "parameters": [
          {
            "name": "box",
            "type": "BoundingBox",
            "summary": "Box to draw."
          },
          {
            "name": "color",
            "type": "System.Drawing.Color",
            "summary": "Color to draw with."
          },
          {
            "name": "size",
            "type": "System.Double",
            "summary": "Size (in model units) of the corner widgets."
          }
        ]
      },
      {
        "signature": "System.Void DrawBoxCorners(BoundingBox box, System.Drawing.Color color)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Draws corner widgets of a world aligned bounding box. Widget size will be 5% of the Box diagonal.",
        "since": "5.0",
        "parameters": [
          {
            "name": "box",
            "type": "BoundingBox",
            "summary": "Box to draw."
          },
          {
            "name": "color",
            "type": "System.Drawing.Color",
            "summary": "Color to draw with."
          }
        ]
      },
      {
        "signature": "System.Void DrawBrepShaded(Brep brep, DisplayMaterial material)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Draws a shaded mesh representation of a brep.",
        "since": "5.0",
        "parameters": [
          {
            "name": "brep",
            "type": "Brep",
            "summary": "Brep to draw."
          },
          {
            "name": "material",
            "type": "DisplayMaterial",
            "summary": "Material to draw faces with."
          }
        ]
      },
      {
        "signature": "System.Void DrawBrepWires(Brep brep, System.Drawing.Color color, System.Int32 wireDensity)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Draws all the wireframe curves of a brep object.",
        "since": "5.0",
        "parameters": [
          {
            "name": "brep",
            "type": "Brep",
            "summary": "Brep to draw."
          },
          {
            "name": "color",
            "type": "System.Drawing.Color",
            "summary": "Color of Wireframe curves."
          },
          {
            "name": "wireDensity",
            "type": "System.Int32",
            "summary": "\"Density\" of wireframe curves.  \n-1 = no internal wires.  \n0 = default internal wires.  \n>0 = custom high density."
          }
        ]
      },
      {
        "signature": "System.Void DrawBrepWires(Brep brep, System.Drawing.Color color)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Draws all the wireframe curves of a brep object.",
        "since": "5.0",
        "parameters": [
          {
            "name": "brep",
            "type": "Brep",
            "summary": "Brep to draw."
          },
          {
            "name": "color",
            "type": "System.Drawing.Color",
            "summary": "Color of Wireframe curves."
          }
        ]
      },
      {
        "signature": "System.Void DrawCircle(Circle circle, System.Drawing.Color color, System.Int32 thickness)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Draw a single circle object.",
        "since": "5.0",
        "parameters": [
          {
            "name": "circle",
            "type": "Circle",
            "summary": "Circle to draw."
          },
          {
            "name": "color",
            "type": "System.Drawing.Color",
            "summary": "Color to draw with."
          },
          {
            "name": "thickness",
            "type": "System.Int32",
            "summary": "Thickness (in pixels) of circle."
          }
        ]
      },
      {
        "signature": "System.Void DrawCircle(Circle circle, System.Drawing.Color color)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Draw a single circle object.",
        "since": "5.0",
        "parameters": [
          {
            "name": "circle",
            "type": "Circle",
            "summary": "Circle to draw."
          },
          {
            "name": "color",
            "type": "System.Drawing.Color",
            "summary": "Color to draw with."
          }
        ]
      },
      {
        "signature": "System.Void DrawClippingPlaneWires(ClippingPlaneSurface clippingPlane, System.Drawing.Color color)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Draw a cipping plane",
        "since": "9.0"
      },
      {
        "signature": "System.Void DrawCone(Cone cone, System.Drawing.Color color, System.Int32 thickness)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Draw a wireframe cone.",
        "since": "5.0",
        "parameters": [
          {
            "name": "cone",
            "type": "Cone",
            "summary": "Cone to draw."
          },
          {
            "name": "color",
            "type": "System.Drawing.Color",
            "summary": "Color to draw with."
          },
          {
            "name": "thickness",
            "type": "System.Int32",
            "summary": "Thickness (in pixels) of Cone wires."
          }
        ]
      },
      {
        "signature": "System.Void DrawCone(Cone cone, System.Drawing.Color color)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Draw a wireframe cone.",
        "since": "5.0",
        "parameters": [
          {
            "name": "cone",
            "type": "Cone",
            "summary": "Cone to draw."
          },
          {
            "name": "color",
            "type": "System.Drawing.Color",
            "summary": "Color to draw with."
          }
        ]
      },
      {
        "signature": "System.Void DrawConstructionPlane(DocObjects.ConstructionPlane constructionPlane)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Draws a construction plane.",
        "since": "5.0",
        "parameters": [
          {
            "name": "constructionPlane",
            "type": "DocObjects.ConstructionPlane",
            "summary": "The construction plane to draw."
          }
        ]
      },
      {
        "signature": "System.Void DrawCurvatureGraph(Curve curve, System.Drawing.Color color, System.Int32 hairScale, System.Int32 hairDensity, System.Int32 sampleDensity)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Draw a typical Rhino Curvature Graph.",
        "since": "5.0",
        "parameters": [
          {
            "name": "curve",
            "type": "Curve",
            "summary": "Base curve for curvature graph."
          },
          {
            "name": "color",
            "type": "System.Drawing.Color",
            "summary": "Color of curvature graph."
          },
          {
            "name": "hairScale",
            "type": "System.Int32",
            "summary": "100 = True length, > 100 magnified, < 100 shortened."
          },
          {
            "name": "hairDensity",
            "type": "System.Int32",
            "summary": ">= 0 larger numbers = more hairs (good default is 1)."
          },
          {
            "name": "sampleDensity",
            "type": "System.Int32",
            "summary": "Between 1 and 10. Higher numbers draw smoother outer curves. (good default is 2)."
          }
        ]
      },
      {
        "signature": "System.Void DrawCurvatureGraph(Curve curve, System.Drawing.Color color, System.Int32 hairScale)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Draw a typical Rhino Curvature Graph.",
        "since": "5.0",
        "parameters": [
          {
            "name": "curve",
            "type": "Curve",
            "summary": "Base curve for curvature graph."
          },
          {
            "name": "color",
            "type": "System.Drawing.Color",
            "summary": "Color of curvature graph."
          },
          {
            "name": "hairScale",
            "type": "System.Int32",
            "summary": "100 = True length, > 100 magnified, < 100 shortened."
          }
        ]
      },
      {
        "signature": "System.Void DrawCurvatureGraph(Curve curve, System.Drawing.Color color)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Draw a typical Rhino Curvature Graph.",
        "since": "5.0",
        "parameters": [
          {
            "name": "curve",
            "type": "Curve",
            "summary": "Base curve for curvature graph."
          },
          {
            "name": "color",
            "type": "System.Drawing.Color",
            "summary": "Color of curvature graph."
          }
        ]
      },
      {
        "signature": "System.Void DrawCurvaturePreview(Brep brep, System.Drawing.Color color)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Draws a Brep in Curvature Analysis preview.",
        "since": "9.0",
        "parameters": [
          {
            "name": "brep",
            "type": "Brep",
            "summary": "Brep to draw."
          },
          {
            "name": "color",
            "type": "System.Drawing.Color",
            "summary": "Objct color."
          }
        ]
      },
      {
        "signature": "System.Void DrawCurvaturePreview(Mesh mesh, System.Drawing.Color color)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Draws a Mesh in Curvature Analysis preview.",
        "since": "9.0",
        "parameters": [
          {
            "name": "mesh",
            "type": "Mesh",
            "summary": "Mesh to draw."
          },
          {
            "name": "color",
            "type": "System.Drawing.Color",
            "summary": "Objct color."
          }
        ]
      },
      {
        "signature": "System.Void DrawCurve(Curve curve, DisplayPen pen)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "8.0"
      },
      {
        "signature": "System.Void DrawCurve(Curve curve, System.Drawing.Color color, System.Int32 thickness)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Draw a single Curve object.",
        "since": "5.0",
        "parameters": [
          {
            "name": "curve",
            "type": "Curve",
            "summary": "Curve to draw."
          },
          {
            "name": "color",
            "type": "System.Drawing.Color",
            "summary": "Color to draw with."
          },
          {
            "name": "thickness",
            "type": "System.Int32",
            "summary": "Thickness (in pixels) of curve."
          }
        ]
      },
      {
        "signature": "System.Void DrawCurve(Curve curve, System.Drawing.Color color)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Draw a single Curve object.",
        "since": "5.0",
        "parameters": [
          {
            "name": "curve",
            "type": "Curve",
            "summary": "Curve to draw."
          },
          {
            "name": "color",
            "type": "System.Drawing.Color",
            "summary": "Color to draw with."
          }
        ]
      },
      {
        "signature": "System.Void DrawCylinder(Cylinder cylinder, System.Drawing.Color color, System.Int32 thickness)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Draw a wireframe cylinder.",
        "since": "5.0",
        "parameters": [
          {
            "name": "cylinder",
            "type": "Cylinder",
            "summary": "Cylinder to draw."
          },
          {
            "name": "color",
            "type": "System.Drawing.Color",
            "summary": "Color to draw with."
          },
          {
            "name": "thickness",
            "type": "System.Int32",
            "summary": "Thickness (in pixels) of cylinder wires."
          }
        ]
      },
      {
        "signature": "System.Void DrawCylinder(Cylinder cylinder, System.Drawing.Color color)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Draw a wireframe cylinder.",
        "since": "5.0",
        "parameters": [
          {
            "name": "cylinder",
            "type": "Cylinder",
            "summary": "Cylinder to draw."
          },
          {
            "name": "color",
            "type": "System.Drawing.Color",
            "summary": "Color to draw with."
          }
        ]
      },
      {
        "signature": "System.Void DrawDirectionArrow(Point3d location, Vector3d direction, System.Drawing.Color color)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "System.Void DrawDot(Point3d worldPosition, System.String text, System.Drawing.Color dotColor, System.Drawing.Color textColor)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Draw a text dot in world coordinates.",
        "since": "5.0",
        "parameters": [
          {
            "name": "worldPosition",
            "type": "Point3d",
            "summary": "Location of dot in world coordinates."
          },
          {
            "name": "text",
            "type": "System.String",
            "summary": "Text content of dot."
          },
          {
            "name": "dotColor",
            "type": "System.Drawing.Color",
            "summary": "Dot background color."
          },
          {
            "name": "textColor",
            "type": "System.Drawing.Color",
            "summary": "Dot foreground color."
          }
        ]
      },
      {
        "signature": "System.Void DrawDot(Point3d worldPosition, System.String text)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Draws a text dot in world coordinates.",
        "since": "5.0",
        "parameters": [
          {
            "name": "worldPosition",
            "type": "Point3d",
            "summary": "Location of dot in world coordinates."
          },
          {
            "name": "text",
            "type": "System.String",
            "summary": "Text content of dot."
          }
        ]
      },
      {
        "signature": "System.Void DrawDot(System.Single screenX, System.Single screenY, System.String text, System.Drawing.Color dotColor, System.Drawing.Color textColor)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Draws a text dot in screen coordinates.",
        "since": "6.0",
        "parameters": [
          {
            "name": "screenX",
            "type": "System.Single",
            "summary": "X coordinate (in pixels) of dot center."
          },
          {
            "name": "screenY",
            "type": "System.Single",
            "summary": "Y coordinate (in pixels) of dot center."
          },
          {
            "name": "text",
            "type": "System.String",
            "summary": "Text content of dot."
          },
          {
            "name": "dotColor",
            "type": "System.Drawing.Color",
            "summary": "Dot background color."
          },
          {
            "name": "textColor",
            "type": "System.Drawing.Color",
            "summary": "Dot foreground color."
          }
        ]
      },
      {
        "signature": "System.Void DrawDot(System.Single screenX, System.Single screenY, System.String text)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Draws a text dot in screen coordinates.",
        "since": "6.0",
        "parameters": [
          {
            "name": "screenX",
            "type": "System.Single",
            "summary": "X coordinate (in pixels) of dot center."
          },
          {
            "name": "screenY",
            "type": "System.Single",
            "summary": "Y coordinate (in pixels) of dot center."
          },
          {
            "name": "text",
            "type": "System.String",
            "summary": "Text content of dot."
          }
        ]
      },
      {
        "signature": "System.Void DrawDot(TextDot dot, System.Drawing.Color fillColor, System.Drawing.Color textColor, System.Drawing.Color borderColor)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Draw a text dot as defined by the text dot class",
        "since": "6.0"
      },
      {
        "signature": "System.Void DrawDottedLine(Line line, System.Drawing.Color color)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Draws a single dotted line.",
        "since": "5.0",
        "parameters": [
          {
            "name": "line",
            "type": "Line",
            "summary": "Line to draw."
          },
          {
            "name": "color",
            "type": "System.Drawing.Color",
            "summary": "Color of line."
          }
        ]
      },
      {
        "signature": "System.Void DrawDottedLine(Point3d from, Point3d to, System.Drawing.Color color)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Draws a single dotted line.",
        "since": "5.0",
        "parameters": [
          {
            "name": "from",
            "type": "Point3d",
            "summary": "Line start point."
          },
          {
            "name": "to",
            "type": "Point3d",
            "summary": "Line end point."
          },
          {
            "name": "color",
            "type": "System.Drawing.Color",
            "summary": "Color of line."
          }
        ]
      },
      {
        "signature": "System.Void DrawDottedPolyline(IEnumerable<Point3d> points, System.Drawing.Color color, System.Boolean close)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Draws a set of connected lines (polyline) in a dotted pattern (0x00001111).",
        "since": "5.0",
        "parameters": [
          {
            "name": "points",
            "type": "System.Collections.Generic.IEnumerable<Point3d>",
            "summary": "End points of each line segment."
          },
          {
            "name": "color",
            "type": "System.Drawing.Color",
            "summary": "Color of polyline."
          },
          {
            "name": "close",
            "type": "System.Boolean",
            "summary": "Draw a line between the first and last points."
          }
        ]
      },
      {
        "signature": "System.Void DrawDraftAnglePreview(Brep brep, System.Drawing.Color color)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Draws a Brep in Draft Angle preview.",
        "since": "9.0",
        "parameters": [
          {
            "name": "brep",
            "type": "Brep",
            "summary": "Brep to draw."
          },
          {
            "name": "color",
            "type": "System.Drawing.Color",
            "summary": "Objct color."
          }
        ]
      },
      {
        "signature": "System.Void DrawDraftAnglePreview(Mesh mesh, System.Drawing.Color color)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Draws a Mesh in Draft Angle preview.",
        "since": "9.0",
        "parameters": [
          {
            "name": "mesh",
            "type": "Mesh",
            "summary": "Mesh to draw."
          },
          {
            "name": "color",
            "type": "System.Drawing.Color",
            "summary": "Objct color."
          }
        ]
      },
      {
        "signature": "System.Void DraweInferencePoint(Point3d P, Color color)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Draw inference point used in gesture based snapping",
        "since": "8.17",
        "parameters": [
          {
            "name": "P",
            "type": "Point3d",
            "summary": "Location of point in world coordinates"
          },
          {
            "name": "color",
            "type": "Color",
            "summary": "Color of the point"
          }
        ]
      },
      {
        "signature": "System.Void DrawEmapPreview(Brep brep, System.Drawing.Color color)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Draws a Brep in Environment Map preview.",
        "since": "9.0",
        "parameters": [
          {
            "name": "brep",
            "type": "Brep",
            "summary": "Brep to draw."
          },
          {
            "name": "color",
            "type": "System.Drawing.Color",
            "summary": "Objct color."
          }
        ]
      },
      {
        "signature": "System.Void DrawEmapPreview(Mesh mesh, System.Drawing.Color color)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Draws a Mesh in Environment Map preview.",
        "since": "9.0",
        "parameters": [
          {
            "name": "mesh",
            "type": "Mesh",
            "summary": "Mesh to draw."
          },
          {
            "name": "color",
            "type": "System.Drawing.Color",
            "summary": "Objct color."
          }
        ]
      },
      {
        "signature": "System.Void DrawExtrusionWires(Extrusion extrusion, System.Drawing.Color color, System.Int32 wireDensity)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Draws all the wireframe curves of an extrusion object.",
        "since": "6.0",
        "parameters": [
          {
            "name": "extrusion",
            "type": "Extrusion",
            "summary": "Extrusion to draw."
          },
          {
            "name": "color",
            "type": "System.Drawing.Color",
            "summary": "Color of Wireframe curves."
          },
          {
            "name": "wireDensity",
            "type": "System.Int32",
            "summary": "\"Density\" of wireframe curves.  \n-1 = no internal wires.  \n0 = default internal wires.  \n>0 = custom high density."
          }
        ]
      },
      {
        "signature": "System.Void DrawExtrusionWires(Extrusion extrusion, System.Drawing.Color color)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Draws all the wireframe curves of an extrusion object.",
        "since": "6.0",
        "parameters": [
          {
            "name": "extrusion",
            "type": "Extrusion",
            "summary": "Extrusion to draw."
          },
          {
            "name": "color",
            "type": "System.Drawing.Color",
            "summary": "Color of Wireframe curves."
          }
        ]
      },
      {
        "signature": "System.Void DrawGradientHatch(Hatch hatch, IEnumerable<ColorStop> stops, Point3d point1, Point3d point2, System.Boolean linearGradient, System.Single repeat, DisplayPen boundary, System.Drawing.Color backgroundFillColor)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "8.0"
      },
      {
        "signature": "System.Void DrawGradientHatch(Hatch hatch, IEnumerable<ColorStop> stops, Point3d point1, Point3d point2, System.Boolean linearGradient, System.Single repeat, System.Single boundaryThickness, System.Drawing.Color boundaryColor)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "7.0"
      },
      {
        "signature": "System.Void DrawGradientHatch(Hatch hatch, System.Drawing.Color color1, System.Drawing.Color color2, Point3d point1, Point3d point2, System.Boolean linearGradient, System.Single boundaryThickness, System.Drawing.Color boundaryColor)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Draw a two point gradient filled hatch",
        "since": "7.0"
      },
      {
        "signature": "System.Void DrawGradientLines(IEnumerable<Line> lines, System.Single strokeWidth, IEnumerable<ColorStop> stops, Point3d point1, Point3d point2, System.Boolean linearGradient, System.Single repeat)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "7.0"
      },
      {
        "signature": "System.Void DrawGradientMesh(Mesh mesh, IEnumerable<ColorStop> stops, Point3d point1, Point3d point2, System.Boolean linearGradient, System.Single repeat)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "7.0"
      },
      {
        "signature": "System.Void DrawHatch(Hatch hatch, System.Drawing.Color hatchColor, DisplayPen boundary, System.Drawing.Color backgroundFillColor)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "8.0"
      },
      {
        "signature": "System.Void DrawHatch(Hatch hatch, System.Drawing.Color hatchColor, System.Drawing.Color boundaryColor)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0"
      },
      {
        "signature": "System.Void DrawInferenceLine(Point3d P, Point3d O, Color color, InferenceLineType type)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Draw an inference line used in gesture based snapping",
        "since": "8.17",
        "parameters": [
          {
            "name": "P",
            "type": "Point3d",
            "summary": "First point used to define the line in world coordinates"
          },
          {
            "name": "O",
            "type": "Point3d",
            "summary": "Second point used to define the line in world coordinates"
          },
          {
            "name": "color",
            "type": "Color",
            "summary": "Color of line"
          },
          {
            "name": "type",
            "type": "InferenceLineType",
            "summary": "Type of line <b>InferenceLineType</b>"
          }
        ]
      },
      {
        "signature": "System.Void DrawInstanceDefinition(DocObjects.InstanceDefinition instanceDefinition, Transform xform)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Draws an <b>DocObjects.InstanceDefinition</b> .",
        "since": "7.15",
        "parameters": [
          {
            "name": "instanceDefinition",
            "type": "DocObjects.InstanceDefinition",
            "summary": "The instance definition."
          },
          {
            "name": "xform",
            "type": "Transform",
            "summary": "The transformation."
          }
        ]
      },
      {
        "signature": "System.Void DrawInstanceDefinition(DocObjects.InstanceDefinition instanceDefinition)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Draws an <b>DocObjects.InstanceDefinition</b> .",
        "since": "7.15",
        "parameters": [
          {
            "name": "instanceDefinition",
            "type": "DocObjects.InstanceDefinition",
            "summary": "The instance definition."
          }
        ]
      },
      {
        "signature": "System.Void DrawInstanceDefinitionShaded(DocObjects.InstanceDefinition instanceDefinition, DisplayMaterial material, Transform xform)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Draws a shaded <b>DocObjects.InstanceDefinition</b> .",
        "since": "7.15",
        "parameters": [
          {
            "name": "instanceDefinition",
            "type": "DocObjects.InstanceDefinition",
            "summary": "The instance definition."
          },
          {
            "name": "material",
            "type": "DisplayMaterial",
            "summary": "Material to draw faces with."
          },
          {
            "name": "xform",
            "type": "Transform",
            "summary": "The transformation."
          }
        ]
      },
      {
        "signature": "System.Void DrawInstanceDefinitionShaded(DocObjects.InstanceDefinition instanceDefinition, DisplayMaterial material)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Draws a shaded <b>DocObjects.InstanceDefinition</b> .",
        "since": "7.15",
        "parameters": [
          {
            "name": "instanceDefinition",
            "type": "DocObjects.InstanceDefinition",
            "summary": "The instance definition."
          },
          {
            "name": "material",
            "type": "DisplayMaterial",
            "summary": "Material to draw faces with."
          }
        ]
      },
      {
        "signature": "System.Void DrawLight(Light light, System.Drawing.Color wireframeColor)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Draws a light.",
        "since": "8.4",
        "parameters": [
          {
            "name": "light",
            "type": "Light",
            "summary": "The light to draw."
          },
          {
            "name": "wireframeColor",
            "type": "System.Drawing.Color",
            "summary": "The wireframe color."
          }
        ]
      },
      {
        "signature": "System.Void DrawLine(Line line, DisplayPen pen)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "8.0"
      },
      {
        "signature": "System.Void DrawLine(Line line, System.Drawing.Color color, System.Int32 thickness)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Draws a single line object.",
        "since": "5.0",
        "parameters": [
          {
            "name": "line",
            "type": "Line",
            "summary": "Line to draw."
          },
          {
            "name": "color",
            "type": "System.Drawing.Color",
            "summary": "Color to draw line in."
          },
          {
            "name": "thickness",
            "type": "System.Int32",
            "summary": "Thickness (in pixels) of line."
          }
        ]
      },
      {
        "signature": "System.Void DrawLine(Line line, System.Drawing.Color color)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Draws a single line object.",
        "since": "5.0",
        "parameters": [
          {
            "name": "line",
            "type": "Line",
            "summary": "Line to draw."
          },
          {
            "name": "color",
            "type": "System.Drawing.Color",
            "summary": "Color to draw line in."
          }
        ]
      },
      {
        "signature": "System.Void DrawLine(Point3d from, Point3d to, System.Drawing.Color color, System.Int32 thickness)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Draws a single line object.",
        "since": "5.0",
        "parameters": [
          {
            "name": "from",
            "type": "Point3d",
            "summary": "Line from point."
          },
          {
            "name": "to",
            "type": "Point3d",
            "summary": "Line to point."
          },
          {
            "name": "color",
            "type": "System.Drawing.Color",
            "summary": "Color to draw line in."
          },
          {
            "name": "thickness",
            "type": "System.Int32",
            "summary": "Thickness (in pixels) of line."
          }
        ]
      },
      {
        "signature": "System.Void DrawLine(Point3d from, Point3d to, System.Drawing.Color color)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Draws a single line object.",
        "since": "5.0",
        "parameters": [
          {
            "name": "from",
            "type": "Point3d",
            "summary": "Line from point."
          },
          {
            "name": "to",
            "type": "Point3d",
            "summary": "Line to point."
          },
          {
            "name": "color",
            "type": "System.Drawing.Color",
            "summary": "Color to draw line in."
          }
        ]
      },
      {
        "signature": "System.Void DrawLineArrow(Line line, System.Drawing.Color color, System.Int32 thickness, System.Double size)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Draws an arrow made up of three line segments.",
        "since": "5.0",
        "parameters": [
          {
            "name": "line",
            "type": "Line",
            "summary": "Base line for arrow."
          },
          {
            "name": "color",
            "type": "System.Drawing.Color",
            "summary": "Color of arrow."
          },
          {
            "name": "thickness",
            "type": "System.Int32",
            "summary": "Thickness (in pixels) of the arrow line segments."
          },
          {
            "name": "size",
            "type": "System.Double",
            "summary": "Size (in world units) of the arrow tip lines."
          }
        ]
      },
      {
        "signature": "System.Void DrawLineNoClip(Point3d from, Point3d to, System.Drawing.Color color, System.Int32 thickness)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Draws a single line object .This version of line drawing will draw the segments of the line that extend beyond the near and far planes of the view frustum with depths on those planes",
        "since": "7.1",
        "parameters": [
          {
            "name": "from",
            "type": "Point3d",
            "summary": "Line from point."
          },
          {
            "name": "to",
            "type": "Point3d",
            "summary": "Line to point."
          },
          {
            "name": "color",
            "type": "System.Drawing.Color",
            "summary": "Color to draw line in."
          },
          {
            "name": "thickness",
            "type": "System.Int32",
            "summary": "Thickness (in pixels) of line."
          }
        ]
      },
      {
        "signature": "System.Void DrawLines(IEnumerable<Line> lines, System.Drawing.Color color, System.Int32 thickness)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Draws a set of lines with a given color and thickness. If you want the fastest possible set of lines to be drawn, pass a Line[] for lines.",
        "since": "5.0",
        "parameters": [
          {
            "name": "lines",
            "type": "System.Collections.Generic.IEnumerable<Line>",
            "summary": "Lines to draw."
          },
          {
            "name": "color",
            "type": "System.Drawing.Color",
            "summary": "Color to draw with."
          },
          {
            "name": "thickness",
            "type": "System.Int32",
            "summary": "Thickness (in pixels) of lines."
          }
        ]
      },
      {
        "signature": "System.Void DrawLines(IEnumerable<Line> lines, System.Drawing.Color color)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Draws a set of lines with a given color and thickness. If you want the fastest possible set of lines to be drawn, pass a Line[] for lines.",
        "since": "5.0",
        "parameters": [
          {
            "name": "lines",
            "type": "System.Collections.Generic.IEnumerable<Line>",
            "summary": "Lines to draw."
          },
          {
            "name": "color",
            "type": "System.Drawing.Color",
            "summary": "Color to draw with."
          }
        ]
      },
      {
        "signature": "System.Void DrawLines(Line[] lines, DisplayPen pen)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "8.0"
      },
      {
        "signature": "System.Void DrawLinesNoClip(IEnumerable<Line> lines, System.Drawing.Color color, System.Int32 thickness)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Draws a multiple lines. This version of line drawing will draw the segments of the line that extend beyond the near and far planes of the view frustum with depths on those planes",
        "since": "8.15",
        "parameters": [
          {
            "name": "lines",
            "type": "System.Collections.Generic.IEnumerable<Line>",
            "summary": "the lines to draw"
          },
          {
            "name": "color",
            "type": "System.Drawing.Color",
            "summary": "Color to draw lines in"
          },
          {
            "name": "thickness",
            "type": "System.Int32",
            "summary": "Thickness (in pixels) of lines"
          }
        ]
      },
      {
        "signature": "System.Void DrawMarker(Point3d tip, Vector3d direction, System.Drawing.Color color, System.Int32 thickness, System.Double size, System.Double rotation)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Draws an arrow marker as a view-aligned widget.",
        "since": "5.0",
        "parameters": [
          {
            "name": "tip",
            "type": "Point3d",
            "summary": "Location of arrow tip point."
          },
          {
            "name": "direction",
            "type": "Vector3d",
            "summary": "Direction of arrow."
          },
          {
            "name": "color",
            "type": "System.Drawing.Color",
            "summary": "Color of arrow widget."
          },
          {
            "name": "thickness",
            "type": "System.Int32",
            "summary": "Thickness of arrow widget lines."
          },
          {
            "name": "size",
            "type": "System.Double",
            "summary": "Size (in pixels) of the arrow shaft."
          },
          {
            "name": "rotation",
            "type": "System.Double",
            "summary": "Rotational angle adjustment (in radians, counter-clockwise of direction."
          }
        ]
      },
      {
        "signature": "System.Void DrawMarker(Point3d tip, Vector3d direction, System.Drawing.Color color, System.Int32 thickness, System.Double size)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Draws an arrow marker as a view-aligned widget.",
        "since": "5.0",
        "parameters": [
          {
            "name": "tip",
            "type": "Point3d",
            "summary": "Location of arrow tip point."
          },
          {
            "name": "direction",
            "type": "Vector3d",
            "summary": "Direction of arrow."
          },
          {
            "name": "color",
            "type": "System.Drawing.Color",
            "summary": "Color of arrow widget."
          },
          {
            "name": "thickness",
            "type": "System.Int32",
            "summary": "Thickness of arrow widget lines."
          },
          {
            "name": "size",
            "type": "System.Double",
            "summary": "Size (in pixels) of the arrow shaft."
          }
        ]
      },
      {
        "signature": "System.Void DrawMarker(Point3d tip, Vector3d direction, System.Drawing.Color color, System.Int32 thickness)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Draws an arrow marker as a view-aligned widget.",
        "since": "5.0",
        "parameters": [
          {
            "name": "tip",
            "type": "Point3d",
            "summary": "Location of arrow tip point."
          },
          {
            "name": "direction",
            "type": "Vector3d",
            "summary": "Direction of arrow."
          },
          {
            "name": "color",
            "type": "System.Drawing.Color",
            "summary": "Color of arrow widget."
          },
          {
            "name": "thickness",
            "type": "System.Int32",
            "summary": "Thickness of arrow widget lines."
          }
        ]
      },
      {
        "signature": "System.Void DrawMarker(Point3d tip, Vector3d direction, System.Drawing.Color color)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Draws an arrow marker as a view-aligned widget.",
        "since": "5.0",
        "parameters": [
          {
            "name": "tip",
            "type": "Point3d",
            "summary": "Location of arrow tip point."
          },
          {
            "name": "direction",
            "type": "Vector3d",
            "summary": "Direction of arrow."
          },
          {
            "name": "color",
            "type": "System.Drawing.Color",
            "summary": "Color of arrow widget."
          }
        ]
      },
      {
        "signature": "System.Void DrawMeshFalseColors(Mesh mesh)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Draws the mesh faces as False color patches. The mesh must have Vertex Colors defined for this to work.",
        "since": "5.0",
        "parameters": [
          {
            "name": "mesh",
            "type": "Mesh",
            "summary": "Mesh to draw."
          }
        ]
      },
      {
        "signature": "System.Void DrawMeshShaded(Mesh mesh, Color diffuseMaterialColor, IsoDrawEffect zebraSettings)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Draws shaded mesh with isodraw settings applied (zebra)",
        "since": "9.0"
      },
      {
        "signature": "System.Void DrawMeshShaded(Mesh mesh, DisplayMaterial material, IEnumerable<int> faceIndices)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Draws the shaded faces of a given mesh.",
        "since": "8.20",
        "parameters": [
          {
            "name": "mesh",
            "type": "Mesh",
            "summary": "Mesh to draw."
          },
          {
            "name": "material",
            "type": "DisplayMaterial",
            "summary": "Material to draw faces with."
          },
          {
            "name": "faceIndices",
            "type": "IEnumerable<int>",
            "summary": "An enumeration of the indices of specific faces to draw."
          }
        ]
      },
      {
        "signature": "System.Void DrawMeshShaded(Mesh mesh, DisplayMaterial material, System.Int32[] faceIndices)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Draws the shaded faces of a given mesh.",
        "since": "5.0",
        "parameters": [
          {
            "name": "mesh",
            "type": "Mesh",
            "summary": "Mesh to draw."
          },
          {
            "name": "material",
            "type": "DisplayMaterial",
            "summary": "Material to draw faces with."
          },
          {
            "name": "faceIndices",
            "type": "System.Int32[]",
            "summary": "Indices of specific faces to draw."
          }
        ]
      },
      {
        "signature": "System.Void DrawMeshShaded(Mesh mesh, DisplayMaterial material)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Draws the shaded faces of a given mesh.",
        "since": "5.0",
        "parameters": [
          {
            "name": "mesh",
            "type": "Mesh",
            "summary": "Mesh to draw."
          },
          {
            "name": "material",
            "type": "DisplayMaterial",
            "summary": "Material to draw faces with."
          }
        ]
      },
      {
        "signature": "System.Void DrawMeshVertices(Mesh mesh, System.Drawing.Color color)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Draws all the vertices in a given mesh.",
        "since": "5.0",
        "parameters": [
          {
            "name": "mesh",
            "type": "Mesh",
            "summary": "Mesh for vertex drawing."
          },
          {
            "name": "color",
            "type": "System.Drawing.Color",
            "summary": "Color of mesh vertices."
          }
        ]
      },
      {
        "signature": "System.Void DrawMeshWires(Mesh mesh, System.Drawing.Color color, System.Int32 thickness)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Draws all the wires in a given mesh.",
        "since": "5.0",
        "parameters": [
          {
            "name": "mesh",
            "type": "Mesh",
            "summary": "Mesh for wire drawing."
          },
          {
            "name": "color",
            "type": "System.Drawing.Color",
            "summary": "Color of mesh wires."
          },
          {
            "name": "thickness",
            "type": "System.Int32",
            "summary": "Thickness (in pixels) of mesh wires."
          }
        ]
      },
      {
        "signature": "System.Void DrawMeshWires(Mesh mesh, System.Drawing.Color color)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Draws all the wires in a given mesh.",
        "since": "5.0",
        "parameters": [
          {
            "name": "mesh",
            "type": "Mesh",
            "summary": "Mesh for wire drawing."
          },
          {
            "name": "color",
            "type": "System.Drawing.Color",
            "summary": "Color of mesh wires."
          }
        ]
      },
      {
        "signature": "System.Void DrawObject(DocObjects.RhinoObject rhinoObject, Transform xform)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Draws a <b>DocObjects.RhinoObject</b> with an applied transformation.",
        "since": "5.0",
        "parameters": [
          {
            "name": "rhinoObject",
            "type": "DocObjects.RhinoObject",
            "summary": "The Rhino object."
          },
          {
            "name": "xform",
            "type": "Transform",
            "summary": "The transformation."
          }
        ]
      },
      {
        "signature": "System.Void DrawObject(DocObjects.RhinoObject rhinoObject)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Draws a <b>DocObjects.RhinoObject</b> .",
        "since": "5.0",
        "parameters": [
          {
            "name": "rhinoObject",
            "type": "DocObjects.RhinoObject",
            "summary": "The Rhino object."
          }
        ]
      },
      {
        "signature": "System.Void DrawParticles(ParticleSystem particles, DisplayBitmap bitmap)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "System.Void DrawParticles(ParticleSystem particles, DisplayBitmap[] bitmaps)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "System.Void DrawParticles(ParticleSystem particles)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "System.Void DrawPatternedLine(Line line, System.Drawing.Color color, System.Int32 pattern, System.Int32 thickness)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Draws a single line with specified pattern.",
        "since": "6.0",
        "parameters": [
          {
            "name": "line",
            "type": "Line",
            "summary": "Line to draw."
          },
          {
            "name": "color",
            "type": "System.Drawing.Color",
            "summary": "Color of line."
          },
          {
            "name": "pattern",
            "type": "System.Int32",
            "summary": "Pattern of the line (like 0x00001111 for dotted line)."
          },
          {
            "name": "thickness",
            "type": "System.Int32",
            "summary": "Thickness (in pixels) of lines."
          }
        ]
      },
      {
        "signature": "System.Void DrawPatternedLine(Point3d from, Point3d to, System.Drawing.Color color, System.Int32 pattern, System.Int32 thickness)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Draws a single line with specified pattern.",
        "since": "6.0",
        "parameters": [
          {
            "name": "from",
            "type": "Point3d",
            "summary": "Line start point."
          },
          {
            "name": "to",
            "type": "Point3d",
            "summary": "Line end point."
          },
          {
            "name": "color",
            "type": "System.Drawing.Color",
            "summary": "Color of line."
          },
          {
            "name": "pattern",
            "type": "System.Int32",
            "summary": "Pattern of the line (like 0x00001111 for dotted line)."
          },
          {
            "name": "thickness",
            "type": "System.Int32",
            "summary": "Thickness (in pixels) of lines."
          }
        ]
      },
      {
        "signature": "System.Void DrawPatternedPolyline(IEnumerable<Point3d> points, System.Drawing.Color color, System.Int32 pattern, System.Int32 thickness, System.Boolean close)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Draws a set of connected lines (polyline) with specified pattern.",
        "since": "6.0",
        "parameters": [
          {
            "name": "points",
            "type": "System.Collections.Generic.IEnumerable<Point3d>",
            "summary": "End points of each line segment."
          },
          {
            "name": "color",
            "type": "System.Drawing.Color",
            "summary": "Color of polyline."
          },
          {
            "name": "pattern",
            "type": "System.Int32",
            "summary": "Pattern to use for the line (like 0x00001111 for dotted)."
          },
          {
            "name": "thickness",
            "type": "System.Int32",
            "summary": "Thickness (in pixels) of lines."
          },
          {
            "name": "close",
            "type": "System.Boolean",
            "summary": "Draw a line between the first and last points."
          }
        ]
      },
      {
        "signature": "System.Void DrawPoint(Point3d point, PointStyle style, System.Drawing.Color strokeColor, System.Drawing.Color fillColor, System.Single radius, System.Single strokeWidth, System.Single secondarySize, System.Single rotationRadians, System.Boolean diameterIsInPixels, System.Boolean autoScaleForDpi)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0"
      },
      {
        "signature": "System.Void DrawPoint(Point3d point, PointStyle style, System.Int32 radius, System.Drawing.Color color)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Draws a point with a given radius, style and color.",
        "since": "5.0",
        "parameters": [
          {
            "name": "point",
            "type": "Point3d",
            "summary": "Location of point in world coordinates."
          },
          {
            "name": "style",
            "type": "PointStyle",
            "summary": "Point display style."
          },
          {
            "name": "radius",
            "type": "System.Int32",
            "summary": "Point size in pixels."
          },
          {
            "name": "color",
            "type": "System.Drawing.Color",
            "summary": "Color of point. If style is ControlPoint, this will be the border color."
          }
        ]
      },
      {
        "signature": "System.Void DrawPoint(Point3d point, PointStyle style, System.Single radius, System.Drawing.Color color)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Draws a point with a given radius, style and color.",
        "since": "6.0",
        "parameters": [
          {
            "name": "point",
            "type": "Point3d",
            "summary": "Location of point in world coordinates."
          },
          {
            "name": "style",
            "type": "PointStyle",
            "summary": "Point display style."
          },
          {
            "name": "radius",
            "type": "System.Single",
            "summary": "Point size in pixels."
          },
          {
            "name": "color",
            "type": "System.Drawing.Color",
            "summary": "Color of point. If style is ControlPoint, this will be the border color."
          }
        ]
      },
      {
        "signature": "System.Void DrawPoint(Point3d point, System.Drawing.Color color)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Draws a point with a given radius, style and color.",
        "since": "5.0",
        "parameters": [
          {
            "name": "point",
            "type": "Point3d",
            "summary": "Location of point in world coordinates."
          },
          {
            "name": "color",
            "type": "System.Drawing.Color",
            "summary": "Color of point."
          }
        ]
      },
      {
        "signature": "System.Void DrawPoint(Point3d point)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Draws a point using the current display attribute size, style and color",
        "since": "6.0",
        "parameters": [
          {
            "name": "point",
            "type": "Point3d",
            "summary": "Location of point in world coordinates."
          }
        ]
      },
      {
        "signature": "System.Void DrawPointCloud(PointCloud cloud, System.Int32 size, System.Drawing.Color color)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Draws a point cloud.",
        "since": "5.0",
        "parameters": [
          {
            "name": "cloud",
            "type": "PointCloud",
            "summary": "Point cloud to draw."
          },
          {
            "name": "size",
            "type": "System.Int32",
            "summary": "Size of points."
          },
          {
            "name": "color",
            "type": "System.Drawing.Color",
            "summary": "Color of points in the cloud, if the cloud has a color array this setting is ignored."
          }
        ]
      },
      {
        "signature": "System.Void DrawPointCloud(PointCloud cloud, System.Int32 size)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Draws a point cloud.",
        "since": "5.0",
        "parameters": [
          {
            "name": "cloud",
            "type": "PointCloud",
            "summary": "Point cloud to draw, if the cloud has a color array, it will be used, otherwise the points will be black."
          },
          {
            "name": "size",
            "type": "System.Int32",
            "summary": "Size of points."
          }
        ]
      },
      {
        "signature": "System.Void DrawPointCloud(PointCloud cloud, System.Single size, System.Drawing.Color color)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Draws a point cloud.",
        "since": "6.0",
        "parameters": [
          {
            "name": "cloud",
            "type": "PointCloud",
            "summary": "Point cloud to draw."
          },
          {
            "name": "size",
            "type": "System.Single",
            "summary": "Size of points."
          },
          {
            "name": "color",
            "type": "System.Drawing.Color",
            "summary": "Color of points in the cloud, if the cloud has a color array this setting is ignored."
          }
        ]
      },
      {
        "signature": "System.Void DrawPointCloud(PointCloud cloud, System.Single size)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Draws a point cloud.",
        "since": "6.0",
        "parameters": [
          {
            "name": "cloud",
            "type": "PointCloud",
            "summary": "Point cloud to draw, if the cloud has a color array, it will be used, otherwise the points will be black."
          },
          {
            "name": "size",
            "type": "System.Single",
            "summary": "Size of points."
          }
        ]
      },
      {
        "signature": "System.Void DrawPoints(DisplayPointSet points, DisplayPointAttributes fallbackAttributes, DisplayPointAttributes overrideAttributes)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "8.0"
      },
      {
        "signature": "System.Void DrawPoints(DisplayPointSet points)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "8.0"
      },
      {
        "signature": "System.Void DrawPoints(IEnumerable<Point3d> points, PointStyle style, System.Drawing.Color strokeColor, System.Drawing.Color fillColor, System.Single radius, System.Single strokeWidth, System.Single secondarySize, System.Single rotationRadians, System.Boolean diameterIsInPixels, System.Boolean autoScaleForDpi)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0"
      },
      {
        "signature": "System.Void DrawPoints(IEnumerable<Point3d> points, PointStyle style, System.Int32 radius, System.Drawing.Color color)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Draw a set of points with a given radius, style and color.",
        "since": "5.0",
        "parameters": [
          {
            "name": "points",
            "type": "System.Collections.Generic.IEnumerable<Point3d>",
            "summary": "Location of points in world coordinates."
          },
          {
            "name": "style",
            "type": "PointStyle",
            "summary": "Point display style."
          },
          {
            "name": "radius",
            "type": "System.Int32",
            "summary": "Point size in pixels."
          },
          {
            "name": "color",
            "type": "System.Drawing.Color",
            "summary": "Color of points. If style is ControlPoint, this will be the border color."
          }
        ]
      },
      {
        "signature": "System.Void DrawPoints(IEnumerable<Point3d> points, PointStyle style, System.Single radius, System.Drawing.Color color)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Draw a set of points with a given radius, style and color.",
        "since": "6.0",
        "parameters": [
          {
            "name": "points",
            "type": "System.Collections.Generic.IEnumerable<Point3d>",
            "summary": "Location of points in world coordinates."
          },
          {
            "name": "style",
            "type": "PointStyle",
            "summary": "Point display style."
          },
          {
            "name": "radius",
            "type": "System.Single",
            "summary": "Point size in pixels."
          },
          {
            "name": "color",
            "type": "System.Drawing.Color",
            "summary": "Color of points. If style is ControlPoint, this will be the border color."
          }
        ]
      },
      {
        "signature": "System.Void DrawPolygon(IEnumerable<Point3d> points, System.Drawing.Color color, System.Boolean filled)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Draws a filled, convex polygon from a collection of points.",
        "since": "5.0",
        "parameters": [
          {
            "name": "points",
            "type": "System.Collections.Generic.IEnumerable<Point3d>",
            "summary": "Collection of world coordinate points that are connected by lines to form a closed shape. Collection must contain at least 3 points."
          },
          {
            "name": "color",
            "type": "System.Drawing.Color",
            "summary": "Color to draw with."
          },
          {
            "name": "filled",
            "type": "System.Boolean",
            "summary": "True if the closed area should be filled with color. False if you want to draw just the border of the closed shape."
          }
        ]
      },
      {
        "signature": "System.Void DrawPolyline(IEnumerable<Point3d> polyline, System.Drawing.Color color, System.Int32 thickness)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Draws a single Polyline object.",
        "since": "5.0",
        "parameters": [
          {
            "name": "polyline",
            "type": "System.Collections.Generic.IEnumerable<Point3d>",
            "summary": "Polyline to draw."
          },
          {
            "name": "color",
            "type": "System.Drawing.Color",
            "summary": "Color to draw in."
          },
          {
            "name": "thickness",
            "type": "System.Int32",
            "summary": "Thickness (in pixels) of the Polyline."
          }
        ]
      },
      {
        "signature": "System.Void DrawPolyline(IEnumerable<Point3d> polyline, System.Drawing.Color color)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Draws a single Polyline object.",
        "since": "5.0",
        "parameters": [
          {
            "name": "polyline",
            "type": "System.Collections.Generic.IEnumerable<Point3d>",
            "summary": "Polyline to draw."
          },
          {
            "name": "color",
            "type": "System.Drawing.Color",
            "summary": "Color to draw in."
          }
        ]
      },
      {
        "signature": "System.Void DrawRoundedRectangle(System.Drawing.PointF center, System.Single pixelWidth, System.Single pixelHeight, System.Single cornerRadius, System.Drawing.Color strokeColor, System.Single strokeWidth, System.Drawing.Color fillColor)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0"
      },
      {
        "signature": "System.Void DrawSphere(Sphere sphere, System.Drawing.Color color, System.Int32 thickness)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Draw a wireframe sphere.",
        "since": "5.0",
        "parameters": [
          {
            "name": "sphere",
            "type": "Sphere",
            "summary": "Sphere to draw."
          },
          {
            "name": "color",
            "type": "System.Drawing.Color",
            "summary": "Color to draw with."
          },
          {
            "name": "thickness",
            "type": "System.Int32",
            "summary": "Thickness (in pixels) of Sphere wires."
          }
        ]
      },
      {
        "signature": "System.Void DrawSphere(Sphere sphere, System.Drawing.Color color)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Draw a wireframe sphere.",
        "since": "5.0",
        "parameters": [
          {
            "name": "sphere",
            "type": "Sphere",
            "summary": "Sphere to draw."
          },
          {
            "name": "color",
            "type": "System.Drawing.Color",
            "summary": "Color to draw with."
          }
        ]
      },
      {
        "signature": "System.Void DrawSprite(DisplayBitmap bitmap, Point2d screenLocation, System.Single size, System.Drawing.Color blendColor)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "System.Void DrawSprite(DisplayBitmap bitmap, Point2d screenLocation, System.Single width, System.Single height)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Draw screen oriented image centered at 2d screen location",
        "since": "7.0"
      },
      {
        "signature": "System.Void DrawSprite(DisplayBitmap bitmap, Point2d screenLocation, System.Single size)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "System.Void DrawSprite(DisplayBitmap bitmap, Point3d worldLocation, System.Single size, System.Boolean sizeInWorldSpace)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "System.Void DrawSprite(DisplayBitmap bitmap, Point3d worldLocation, System.Single size, System.Drawing.Color blendColor, System.Boolean sizeInWorldSpace)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "System.Void DrawSprites(DisplayBitmap bitmap, DisplayBitmapDrawList items, System.Single size, System.Boolean sizeInWorldSpace)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "System.Void DrawSprites(DisplayBitmap bitmap, DisplayBitmapDrawList items, System.Single size, Vector3d translation, System.Boolean sizeInWorldSpace)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "System.Boolean DrawStereoFrameBuffer(DocObjects.ViewportInfo viewportLeft, DocObjects.ViewportInfo viewportRight, out System.UInt32 handleLeft, out System.UInt32 handleRight)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Draws the viewport as seen from the left and the right eye viewports and returns the result as OpenGL texture handles.",
        "since": "6.8",
        "parameters": [
          {
            "name": "viewportLeft",
            "type": "DocObjects.ViewportInfo",
            "summary": "The viewport representing the left eye location and look direction."
          },
          {
            "name": "viewportRight",
            "type": "DocObjects.ViewportInfo",
            "summary": "The viewport representing the right eye location and look direction."
          },
          {
            "name": "handleLeft",
            "type": "System.UInt32",
            "summary": "Will contain the OpenGL texture handle which references the left output color buffer."
          },
          {
            "name": "handleRight",
            "type": "System.UInt32",
            "summary": "Will contain the OpenGL texture handle which references the right output color buffer."
          }
        ],
        "returns": "True if drawing succeeded, False otherwise."
      },
      {
        "signature": "System.Void DrawSubDShaded(SubD subd, DisplayMaterial material)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Draw a shaded mesh representation of a SubD",
        "since": "7.0",
        "parameters": [
          {
            "name": "subd",
            "type": "SubD",
            "summary": "SubD to draw"
          },
          {
            "name": "material",
            "type": "DisplayMaterial",
            "summary": "Material to draw faces with"
          }
        ]
      },
      {
        "signature": "System.Void DrawSubDWires(SubD subd, DisplayPen boundaryPen, DisplayPen smoothInteriorPen, DisplayPen creasePen, DisplayPen nonmanifoldPen)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Draws all the wireframe curves os a SubD object using different pens",
        "since": "8.11",
        "parameters": [
          {
            "name": "subd",
            "type": "SubD",
            "summary": "SubD to draw"
          },
          {
            "name": "boundaryPen",
            "type": "DisplayPen",
            "summary": "Pen to use for boundary wires. If null, no boundary wires will be drawn"
          },
          {
            "name": "smoothInteriorPen",
            "type": "DisplayPen",
            "summary": "Pen to use for smooth interior wires. If null, no smooth interior wires will be drawn"
          },
          {
            "name": "creasePen",
            "type": "DisplayPen",
            "summary": "Pen to use for crease wires. If null, no crease wires will be drawn"
          },
          {
            "name": "nonmanifoldPen",
            "type": "DisplayPen",
            "summary": "Pen to use for non-manifold wires. If null, no non-manifold wires will be drawn"
          }
        ]
      },
      {
        "signature": "System.Void DrawSubDWires(SubD subd, System.Drawing.Color color, System.Single thickness)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Draws all the wireframe curves of a SubD object",
        "since": "7.0",
        "parameters": [
          {
            "name": "subd",
            "type": "SubD",
            "summary": "SubD to draw"
          },
          {
            "name": "color",
            "type": "System.Drawing.Color",
            "summary": "wire color"
          },
          {
            "name": "thickness",
            "type": "System.Single",
            "summary": "wire thickness"
          }
        ]
      },
      {
        "signature": "System.Void DrawSurface(Surface surface, System.Drawing.Color wireColor, System.Int32 wireDensity)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Draw wireframe display for a single surface.",
        "since": "5.0",
        "parameters": [
          {
            "name": "surface",
            "type": "Surface",
            "summary": "Surface to draw."
          },
          {
            "name": "wireColor",
            "type": "System.Drawing.Color",
            "summary": "Color to draw with."
          },
          {
            "name": "wireDensity",
            "type": "System.Int32",
            "summary": "Thickness (in pixels) or wires to draw."
          }
        ]
      },
      {
        "signature": "System.Void DrawSurfaceDirectionIndicators(SurfaceDirectionIndicators directionIndicators)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Draw surface indicators"
      },
      {
        "signature": "System.Void DrawText(TextEntity text, System.Drawing.Color color, System.Double scale)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0"
      },
      {
        "signature": "System.Void DrawText(TextEntity text, System.Drawing.Color color, Transform xform)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0"
      },
      {
        "signature": "System.Void DrawText(TextEntity text, System.Drawing.Color color)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0"
      },
      {
        "signature": "System.Void DrawTorus(Torus torus, System.Drawing.Color color, System.Int32 thickness)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Draw a wireframe torus.",
        "since": "5.0",
        "parameters": [
          {
            "name": "torus",
            "type": "Torus",
            "summary": "Torus to draw."
          },
          {
            "name": "color",
            "type": "System.Drawing.Color",
            "summary": "Color to draw with."
          },
          {
            "name": "thickness",
            "type": "System.Int32",
            "summary": "Thickness (in pixels) of torus wires."
          }
        ]
      },
      {
        "signature": "System.Void DrawTorus(Torus torus, System.Drawing.Color color)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Draw a wireframe torus.",
        "since": "5.0",
        "parameters": [
          {
            "name": "torus",
            "type": "Torus",
            "summary": "Torus to draw."
          },
          {
            "name": "color",
            "type": "System.Drawing.Color",
            "summary": "Color to draw with."
          }
        ]
      },
      {
        "signature": "System.Void DrawZebraPreview(Brep brep, System.Drawing.Color color)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Draws a shaded Brep with Zebra stripe preview.",
        "since": "6.16",
        "parameters": [
          {
            "name": "brep",
            "type": "Brep",
            "summary": "Brep to draw."
          },
          {
            "name": "color",
            "type": "System.Drawing.Color",
            "summary": "Object color."
          }
        ]
      },
      {
        "signature": "System.Void DrawZebraPreview(Mesh mesh, System.Drawing.Color color)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Draws a shaded Mesh with Zebra stripe preview.",
        "since": "7.4",
        "parameters": [
          {
            "name": "mesh",
            "type": "Mesh",
            "summary": "Mesh to draw."
          },
          {
            "name": "color",
            "type": "System.Drawing.Color",
            "summary": "Object color."
          }
        ]
      },
      {
        "signature": "System.Void EnableClippingPlanes(System.Boolean enable)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Enable or disable the Clipping Plane logic of the engine.",
        "since": "5.0",
        "parameters": [
          {
            "name": "enable",
            "type": "System.Boolean",
            "summary": "True to enable Clipping Planes, False to disable."
          }
        ]
      },
      {
        "signature": "System.Void EnableColorWriting(System.Boolean enable)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Enable or disable the ColorWriting behavior of the engine.",
        "since": "5.0",
        "parameters": [
          {
            "name": "enable",
            "type": "System.Boolean",
            "summary": "True to enable ColorWriting, False to disable."
          }
        ]
      },
      {
        "signature": "System.Void EnableDepthTesting(System.Boolean enable)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Enable or disable the DepthTesting behavior of the engine. When DepthTesting is disabled, objects in front will no longer occlude objects behind them.",
        "since": "5.0",
        "parameters": [
          {
            "name": "enable",
            "type": "System.Boolean",
            "summary": "True to enable DepthTesting, False to disable."
          }
        ]
      },
      {
        "signature": "System.Void EnableDepthWriting(System.Boolean enable)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Enable or disable the DepthWriting behavior of the engine. When DepthWriting is disabled, drawn geometry does not affect the Z-Buffer.",
        "since": "5.0",
        "parameters": [
          {
            "name": "enable",
            "type": "System.Boolean",
            "summary": "True to enable DepthWriting, False to disable."
          }
        ]
      },
      {
        "signature": "System.Void EnableLighting(System.Boolean enable)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Enable or disable the Lighting logic of the engine.",
        "since": "5.0",
        "parameters": [
          {
            "name": "enable",
            "type": "System.Boolean",
            "summary": "True to enable Lighting, False to disable."
          }
        ]
      },
      {
        "signature": "System.Void Flush()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Force the pipeline to immediately flush any cached geometry to the display",
        "since": "7.0"
      },
      {
        "signature": "Light[] GetLights()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Get lights that this pipeline is current using",
        "since": "6.3"
      },
      {
        "signature": "System.Single[] GetOpenGLCameraToClip()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Get an array of 16 floats that represents the \"camera\" to \"clip\" coordinate transformation in OpenGL's right handed coordinate system",
        "since": "6.0"
      },
      {
        "signature": "System.Single[] GetOpenGLWorldToCamera(System.Boolean includeModelTransform)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Get an array of 16 floats that represents the \"world\" to \"camera\" coordinate transformation in OpenGL's right handed coordinate system",
        "since": "6.0"
      },
      {
        "signature": "System.Single[] GetOpenGLWorldToClip(System.Boolean includeModelTransform)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Get an array of 16 floats that represents the \"world\" to \"clip\" coordinate transformation in OpenGL's right handed coordinate system",
        "since": "6.0"
      },
      {
        "signature": "System.Boolean InterruptDrawing()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Tests to see if the pipeline should stop drawing more geometry and just show what it has so far. If a drawing operation is taking a long time, this function will return True and tell Rhino it should just finish up and show the frame buffer. This is used in dynamic drawing operations.",
        "since": "5.0",
        "returns": "True if the pipeline should stop attempting to draw more geometry and just show the frame buffer."
      },
      {
        "signature": "System.Boolean IsActive(DocObjects.RhinoObject rhinoObject)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Determines if an object can be visible in this viewport based on it's object type and display attributes. This test does not check for visibility based on location of the object. NOTE: Use CRhinoDisplayPipeline::IsVisible() to perform \"visibility\" tests based on location (is some part of the object in the view frustum). Use CRhinoDisplayPipeline::IsActive() to perform \"visibility\" tests based on object type.",
        "since": "5.0",
        "parameters": [
          {
            "name": "rhinoObject",
            "type": "DocObjects.RhinoObject",
            "summary": "Object to test."
          }
        ],
        "returns": "True if this object can be drawn in the pipeline's viewport based on it's object type and display attributes."
      },
      {
        "signature": "System.Boolean IsInTiledDraw(out System.Drawing.Size fullSize, out System.Drawing.Rectangle currentTile)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns True if the currently drawn frame is part of a tiled capture. Tiled captures are performed when creating large raster outputs.",
        "since": "8.2",
        "parameters": [
          {
            "name": "fullSize",
            "type": "System.Drawing.Size",
            "summary": "Final full size area that is being created"
          },
          {
            "name": "currentTile",
            "type": "System.Drawing.Rectangle",
            "summary": "What portion of the fullSize area that is currently being drawn"
          }
        ],
        "returns": "True if a tiled capture is being performed. If false, the fullSize parameter will have the same size as currentTile"
      },
      {
        "signature": "System.Boolean IsVisible(BoundingBox bbox)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Test a given box for visibility inside the view frustum under the current viewport and model transformation settings.",
        "since": "5.0",
        "parameters": [
          {
            "name": "bbox",
            "type": "BoundingBox",
            "summary": "Box to test for visibility."
          }
        ],
        "returns": "True if at least some portion of the box is visible, False if not."
      },
      {
        "signature": "System.Boolean IsVisible(DocObjects.RhinoObject rhinoObject)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Test a given object for visibility inside the view frustum under the current viewport and model transformation settings. This function calls a virtual IsVisibleFinal function that sub-classed pipelines can add extra tests to. In the base class, this test only tests visibility based on the objects world coordinates location and does not pay attention to the object's attributes.  NOTE: Use CRhinoDisplayPipeline::IsVisible() to perform \"visibility\" tests based on location (is some part of the object in the view frustum). Use CRhinoDisplayPipeline::IsActive() to perform \"visibility\" tests based on object type.",
        "since": "5.0",
        "parameters": [
          {
            "name": "rhinoObject",
            "type": "DocObjects.RhinoObject",
            "summary": "Object to test."
          }
        ],
        "returns": "True if the object is visible, False if not."
      },
      {
        "signature": "System.Boolean IsVisible(Point3d worldCoordinate)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Test a given 3d world coordinate point for visibility inside the view frustum under the current viewport and model transformation settings.",
        "since": "5.0",
        "parameters": [
          {
            "name": "worldCoordinate",
            "type": "Point3d",
            "summary": "Point to test for visibility."
          }
        ],
        "returns": "True if the point is visible, False if it is not."
      },
      {
        "signature": "System.Drawing.Rectangle Measure2dText(System.String text, Point2d definitionPoint, System.Boolean middleJustified, System.Double rotationRadians, System.Int32 height, System.String fontFace)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Determines screen rectangle that would be drawn to using the Draw2dText(..) function with the same parameters.",
        "since": "5.10",
        "parameters": [
          {
            "name": "text",
            "type": "System.String",
            "summary": "text to measure."
          },
          {
            "name": "definitionPoint",
            "type": "Point2d",
            "summary": "either lower-left or middle of text."
          },
          {
            "name": "middleJustified",
            "type": "System.Boolean",
            "summary": "true=middle justified. false=lower-left justified."
          },
          {
            "name": "rotationRadians",
            "type": "System.Double",
            "summary": "text rotation in radians"
          },
          {
            "name": "height",
            "type": "System.Int32",
            "summary": "height in pixels (good default is 12)"
          },
          {
            "name": "fontFace",
            "type": "System.String",
            "summary": "font name (good default is \"Arial\")"
          }
        ],
        "returns": "rectangle in the viewport's screen coordinates on success."
      },
      {
        "signature": "System.Boolean Open()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Opens the pipeline.",
        "since": "7.0",
        "returns": "True if the pipeline was opened, False if it was already open or failed to open."
      },
      {
        "signature": "System.Void PopClipTesting()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Pop a ClipTesting flag off the engine's stack.",
        "since": "5.0",
        "deprecated": "6.0",
        "obsolete": "Use PopDepthTesting"
      },
      {
        "signature": "System.Void PopCullFaceMode()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Pop a FaceCull flag off the engine's stack.",
        "since": "5.0"
      },
      {
        "signature": "System.Void PopDepthTesting()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Pop a DepthTesting flag off the engine's stack.",
        "since": "5.0"
      },
      {
        "signature": "System.Void PopDepthWriting()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Pop a DepthWriting flag off the engine's stack.",
        "since": "5.0"
      },
      {
        "signature": "System.Void PopModelTransform()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Pop a model transformation off the engine's model transform stack.",
        "since": "5.0"
      },
      {
        "signature": "System.Void PopProjection()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Pop a view projection off this pipelines projection stack",
        "since": "8.0"
      },
      {
        "signature": "System.Void Push2dProjection()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Push the current view projection and set the viewport up to be a simple 2D top projection where the camera frustum matches the same size as the screen port. This allows geometry draw functions to act like they are working with typical 2d graphics APIs on a window",
        "since": "8.0"
      },
      {
        "signature": "System.Void PushClipTesting(System.Boolean enable)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Push a ClipTesting flag on the engine's stack.",
        "since": "5.0",
        "deprecated": "6.0",
        "obsolete": "Use PushDepthTesting",
        "parameters": [
          {
            "name": "enable",
            "type": "System.Boolean",
            "summary": "ClipTesting flag."
          }
        ]
      },
      {
        "signature": "System.Void PushCullFaceMode(CullFaceMode mode)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Push a FaceCull flag on the engine's stack.",
        "since": "5.0",
        "parameters": [
          {
            "name": "mode",
            "type": "CullFaceMode",
            "summary": "FaceCull flag."
          }
        ]
      },
      {
        "signature": "System.Void PushDepthTesting(System.Boolean enable)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Push a DepthTesting flag on the engine's stack.",
        "since": "5.0",
        "parameters": [
          {
            "name": "enable",
            "type": "System.Boolean",
            "summary": "DepthTesting flag."
          }
        ]
      },
      {
        "signature": "System.Void PushDepthWriting(System.Boolean enable)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Push a DepthWriting flag on the engine's stack.",
        "since": "5.0",
        "parameters": [
          {
            "name": "enable",
            "type": "System.Boolean",
            "summary": "DepthWriting flag."
          }
        ]
      },
      {
        "signature": "System.Void PushModelTransform(Transform xform)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Push a model transformation on the engine's model transform stack.",
        "since": "5.0",
        "parameters": [
          {
            "name": "xform",
            "type": "Transform",
            "summary": "Transformation to push."
          }
        ]
      },
      {
        "signature": "System.Void RemoveClippingPlane(System.Int32 index)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Remove a clipping plane from the pipeline for this frame",
        "since": "6.3"
      },
      {
        "signature": "DisplayMaterial SetupDisplayMaterial(RhinoDoc doc, RhinoObject rhinoObject, ObjectAttributes attributes, Transform instanceTransform)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Sets up a display material.",
        "since": "8.0",
        "parameters": [
          {
            "name": "doc",
            "type": "RhinoDoc",
            "summary": "The active document."
          },
          {
            "name": "rhinoObject",
            "type": "RhinoObject",
            "summary": "The Rhino object."
          },
          {
            "name": "attributes",
            "type": "ObjectAttributes",
            "summary": "The object attributes."
          },
          {
            "name": "instanceTransform",
            "type": "Transform",
            "summary": "The instance object transformation."
          }
        ],
        "returns": "A display material if successful, None otherwise."
      },
      {
        "signature": "DisplayMaterial SetupDisplayMaterial(RhinoDoc doc, RhinoObject rhinoObject, ObjectAttributes attributes)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Sets up a display material.",
        "since": "8.0",
        "parameters": [
          {
            "name": "doc",
            "type": "RhinoDoc",
            "summary": "The active document."
          },
          {
            "name": "rhinoObject",
            "type": "RhinoObject",
            "summary": "The Rhino object."
          },
          {
            "name": "attributes",
            "type": "ObjectAttributes",
            "summary": "The object attributes."
          }
        ],
        "returns": "A display material if successful, None otherwise."
      },
      {
        "signature": "DisplayMaterial SetupDisplayMaterial(RhinoDoc doc, RhinoObject rhinoObject)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Sets up a display material.",
        "since": "8.0",
        "parameters": [
          {
            "name": "doc",
            "type": "RhinoDoc",
            "summary": "The active document."
          },
          {
            "name": "rhinoObject",
            "type": "RhinoObject",
            "summary": "The Rhino object."
          }
        ],
        "returns": "A display material if successful, None otherwise."
      },
      {
        "signature": "DisplayMaterial SetupDisplayMaterial(System.Drawing.Color color)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "8.0"
      }
    ],
    "events": [
      {
        "signature": "EventHandler<CalculateBoundingBoxEventArgs> CalculateBoundingBox",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "EventHandler<CalculateBoundingBoxEventArgs> CalculateBoundingBoxZoomExtents",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Calculate a bounding to include in the Zoom Extents command.",
        "since": "5.0"
      },
      {
        "signature": "EventHandler<CullObjectEventArgs> ObjectCulling",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "5.3"
      },
      {
        "signature": "EventHandler<DisplayModeChangedEventArgs> DisplayModeChanged",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "6.18"
      },
      {
        "signature": "EventHandler<DrawEventArgs> DrawForeground",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Called after all non-highlighted objects have been drawn and PostDrawObjects has been called. Depth writing and testing are turned OFF. If you want to draw with depth writing/testing, see PostDrawObjects.",
        "since": "5.0",
    "remarks": "This event is actually passed a DrawForegroundEventArgs, but we could not change the event declaration without breaking the SDK. Cast to a DrawForegroundEventArgs if you need it."
      },
      {
        "signature": "EventHandler<DrawEventArgs> DrawOverlay",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "If Rhino is in a feedback mode, the draw overlay call allows for temporary geometry to be drawn on top of everything in the scene. This is similar to the dynamic draw routine that occurs with custom get point.",
        "since": "5.0"
      },
      {
        "signature": "EventHandler<DrawEventArgs> PostDrawObjects",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Called after all non-highlighted objects have been drawn. Depth writing and testing are still turned on. If you want to draw without depth writing/testing, see DrawForeground.",
        "since": "5.0"
      },
      {
        "signature": "EventHandler<DrawEventArgs> PreDrawObjects",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Called before objects are been drawn. Depth writing and testing are on.",
        "since": "5.0"
      },
      {
        "signature": "EventHandler<DrawEventArgs> PreDrawTransparentObjects",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Called before transparent objects have been drawn. Depth writing and testing are on.",
        "since": "6.12"
      },
      {
        "signature": "EventHandler<DrawEventArgs> ViewportProjectionChanged",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Called when the projection changes for a viewport being drawn.",
        "since": "6.18"
      },
      {
        "signature": "EventHandler<DrawObjectEventArgs> PostDrawObject",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Called right after an individual object has been drawn. NOTE: Do not use this event unless you absolutely need to.  It is called for every object in the document and can slow display down if a large number of objects exist in the document",
        "since": "7.0"
      },
      {
        "signature": "EventHandler<DrawObjectEventArgs> PreDrawObject",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Called right before an individual object is being drawn. NOTE: Do not use this event unless you absolutely need to.  It is called for every object in the document and can slow display down if a large number of objects exist in the document",
        "since": "5.0"
      },
      {
        "signature": "EventHandler<InitFrameBufferEventArgs> InitFrameBuffer",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "6.18"
      }
    ]

  },
  {
    "namespace": "Rhino.Display",
    "name": "DisplayPipeline.InferenceLineType",
    "dataType": "enum",
    "since": "8.17",
    "values": [
      {
        "signature": "Chord = 0",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "A chord from P to Q"
      },
      {
        "signature": "Ray = 1",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "A ray from P through Q"
      },
      {
        "signature": "InfiniteLine = 2",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "An infinite line through P and Q"
      }
    ]

  },
  {
    "namespace": "Rhino.Display",
    "name": "DisplayPipelineAttributes",
    "dataType": "class",
    "summary": "Represents display pipeline settings, such as \"show transparency\" and \"show grips\".",
    "interfaces": ["IDisposable", "ISerializable"],
    "constructors": [
      {
        "signature": "DisplayPipelineAttributes(SerializationInfo info, StreamingContext context)",
        "modifiers": ["protected"],
        "protected": true,
        "virtual": false
      }
    ],
    "properties": [
      {
        "signature": "Color AmbientLightingColor",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.3",
        "property": ["get", "set"]
      },
      {
        "signature": "int AxesSizePercentage",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Size of axes as a percentage of the grid extents.",
        "since": "8.11",
        "property": ["get", "set"]
      },
      {
        "signature": "BackfaceStyle BackfaceDisplayStyle",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Changes the display of the backfaces (the side opposite of the surface normal direction).",
        "since": "8.20",
        "property": ["get", "set"]
      },
      {
        "signature": "Color BackMaterialDiffuseColor",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "8.8",
        "property": ["get", "set"]
      },
      {
        "signature": "double BackMaterialShine",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Get or set the back material shine (0 to Rhino.DocObjects.MaxShine). You must call DisplayModeDescription.UpdateDisplayMode() to commit this change.",
        "since": "8.4",
        "property": ["get", "set"]
      },
      {
        "signature": "double BackMaterialTransparency",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Get or set the back material transparency (0 to 100). You must call DisplayModeDescription.UpdateDisplayMode() to commit this change.",
        "since": "8.4",
        "property": ["get", "set"]
      },
      {
        "signature": "bool BackOverrideObjectReflectivity",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Objects acquire reflectivity from render materials.",
        "since": "8.21",
        "property": ["get", "set"]
      },
      {
        "signature": "bool BackOverrideObjectTransparency",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Objects acquire transparency from render materials.",
        "since": "8.21",
        "property": ["get", "set"]
      },
      {
        "signature": "bool BakeTextures",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Adds the ability to display procedural textures in viewports. When it is turned off, procedural textures in viewports look different from the rendering.",
        "since": "8.14",
        "property": ["get", "set"]
      },
      {
        "signature": "BoundingBoxDisplayMode BoundingBoxMode",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.1",
        "property": ["get", "set"]
      },
      {
        "signature": "bool CastShadows",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Cast shadows.",
        "since": "6.4",
        "property": ["get", "set"]
      },
      {
        "signature": "Color ClippingEdgeColor",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Clipping edge color",
        "since": "8.11",
        "property": ["get", "set"]
      },
      {
        "signature": "ClippingEdgeColorUse ClippingEdgeColorUsage",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Specifies how the color for the Edges is determined",
        "since": "8.11",
        "property": ["get", "set"]
      },
      {
        "signature": "int ClippingEdgeThickness",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Edge thickness in pixels.",
        "since": "8.11",
        "property": ["get", "set"]
      },
      {
        "signature": "Color ClippingFillColor",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Clipping plane fill color",
        "since": "8.11",
        "property": ["get", "set"]
      },
      {
        "signature": "ClippingPlaneFillColorUse ClippingPlaneFillColorUsage",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Specifies how the color for the clipping plane object fill is determined.",
        "since": "8.11",
        "property": ["get", "set"]
      },
      {
        "signature": "Color ClippingShadeColor",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Clipping plane solid color",
        "since": "8.11",
        "property": ["get", "set"]
      },
      {
        "signature": "ClippingShadeColorUse ClippingShadeColorUsage",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Specifies how to shade the clipping plane",
        "since": "8.11",
        "property": ["get", "set"]
      },
      {
        "signature": "bool ClippingShadeSelectedPlane",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Shades the selected clipping plane.",
        "since": "8.11",
        "property": ["get", "set"]
      },
      {
        "signature": "int ClippingShadeTransparency",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Specifies the clipping plane transparency percentage.",
        "since": "8.11",
        "property": ["get", "set"]
      },
      {
        "signature": "bool ClipSelectionHighlight",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Clips the highlight wires. Shaded selections always clip.",
        "since": "8.11",
        "property": ["get", "set"]
      },
      {
        "signature": "int ColorReductionPct",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "8.6",
        "property": ["get", "set"]
      },
      {
        "signature": "ContextsForDraw ContextForDraw",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.5",
        "property": ["get"]
      },
      {
        "signature": "Color ControlPolygonColor",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Control polygon color",
        "since": "8.11",
        "property": ["get", "set"]
      },
      {
        "signature": "int ControlPolygonGripSize",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "The control point size in pixels.",
        "since": "8.11",
        "property": ["get", "set"]
      },
      {
        "signature": "bool ControlPolygonHighlight",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Highlights the segments of the control polygon on either side of the control points.",
        "since": "8.11",
        "property": ["get", "set"]
      },
      {
        "signature": "bool ControlPolygonShow",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Shows the control polygon and only shows the control points.",
        "since": "8.11",
        "property": ["get", "set"]
      },
      {
        "signature": "bool ControlPolygonShowPoints",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Shows the control points while the control polygon is displayed.",
        "since": "8.11",
        "property": ["get", "set"]
      },
      {
        "signature": "bool ControlPolygonShowSurface",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Shows the object while the control polygon is displayed.",
        "since": "8.11",
        "property": ["get", "set"]
      },
      {
        "signature": "PointStyle ControlPolygonStyle",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "PointStyle for the control polygon. Supported values are ControlPoint, RoundControlPoint, VariableDot, and RoundDot",
        "since": "8.11",
        "property": ["get", "set"]
      },
      {
        "signature": "bool ControlPolygonUseFixedSingleColor",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Specifies a color for the control polygon.",
        "since": "8.11",
        "property": ["get", "set"]
      },
      {
        "signature": "bool ControlPolygonUseSolidLines",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Use dotted / solid lines",
        "since": "8.11",
        "property": ["get", "set"]
      },
      {
        "signature": "int ControlPolygonWireThickness",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "The width of the control polygon lines in pixels.",
        "since": "8.11",
        "property": ["get", "set"]
      },
      {
        "signature": "bool CullBackfaces",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "8.8",
        "property": ["get", "set"]
      },
      {
        "signature": "Color CurveColor",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Color used for drawing curves",
        "since": "5.1",
        "property": ["get", "set"]
      },
      {
        "signature": "int CurveThickness",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Pixel thickness for curves",
        "since": "5.1",
        "property": ["get", "set"]
      },
      {
        "signature": "float CurveThicknessScale",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Scale thickness for curves",
        "since": "8.4",
        "property": ["get", "set"]
      },
      {
        "signature": "CurveThicknessUse CurveThicknessUsage",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Use a pixel thickness (CurveThickness) or a scale thickness (CurveThicknessScale)",
        "since": "8.4",
        "property": ["get", "set"]
      },
      {
        "signature": "double CustomGroundPlaneAltitude",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Height above the world XY plane in model units",
        "since": "8.10",
        "property": ["get", "set"]
      },
      {
        "signature": "bool CustomGroundPlaneAutomaticAltitude",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Turns on auto-elevation that moves Ground Plane to the lowest point of the objects in the model.",
        "since": "8.10",
        "property": ["get", "set"]
      },
      {
        "signature": "bool CustomGroundPlaneOn",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Turn the custom ground plane on or off",
        "since": "8.10",
        "property": ["get", "set"]
      },
      {
        "signature": "bool CustomGroundPlaneShadowOnly",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Makes the ground plane transparent, but allows shadows to still be cast on it.",
        "since": "8.10",
        "property": ["get", "set"]
      },
      {
        "signature": "bool DisableConduits",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool DisableTransparency",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "DynamicDisplayUse DynamicDisplayUsage",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Sets the appearance of objects in the display",
        "since": "8.11",
        "property": ["get", "set"]
      },
      {
        "signature": "string EnglishName",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "FrameBufferFillMode FillMode",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Get or set the frame buffer fill mode.",
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "Color FrontDiffuse",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Shades the current viewport with no smoothing so the individual render mesh faces are visible.",
        "since": "8.14",
        "property": ["get", "set"]
      },
      {
        "signature": "bool FrontFlatShaded",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Shades the current viewport with no smoothing so the individual render mesh faces are visible.",
        "since": "8.14",
        "property": ["get", "set"]
      },
      {
        "signature": "double FrontMaterialShine",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Get or set the front material shine (0 to Rhino.DocObjects.MaxShine). You must call DisplayModeDescription.UpdateDisplayMode() to commit this change.",
        "since": "8.4",
        "property": ["get", "set"]
      },
      {
        "signature": "double FrontMaterialTransparency",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Get or set the front material transparency (0 to 100). You must call DisplayModeDescription.UpdateDisplayMode() to commit this change.",
        "since": "8.4",
        "property": ["get", "set"]
      },
      {
        "signature": "bool FrontOverrideObjectColor",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "8.14",
        "property": ["get", "set"]
      },
      {
        "signature": "bool FrontOverrideObjectReflectivity",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Objects acquire reflectivity from render materials.",
        "since": "8.21",
        "property": ["get", "set"]
      },
      {
        "signature": "bool FrontOverrideObjectTransparency",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Objects acquire transparency from render materials.",
        "since": "8.21",
        "property": ["get", "set"]
      },
      {
        "signature": "bool GhostLockedObjects",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Set locked appearance",
        "since": "8.11",
        "property": ["get", "set"]
      },
      {
        "signature": "Color GridPlaneColor",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "The color of the grid plane",
        "since": "8.11",
        "property": ["get", "set"]
      },
      {
        "signature": "int GridPlaneTransparency",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Transparency of the grid plane, percentage (0-100)",
        "since": "8.11",
        "property": ["get", "set"]
      },
      {
        "signature": "GridPlaneVisibilityMode GridPlaneVisibility",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Set when to show the grid plane",
        "since": "8.11",
        "property": ["get", "set"]
      },
      {
        "signature": "int GridTransparency",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Transparency of the grid, percentage (0-100)",
        "since": "8.11",
        "property": ["get", "set"]
      },
      {
        "signature": "GroundPlaneUsages GroundPlaneUsage",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Turn on or off custom Ground plane settungs",
        "since": "8.14",
        "property": ["get", "set"]
      },
      {
        "signature": "bool HighlightSurfaces",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Shades entire object with highlight color.",
        "since": "8.11",
        "property": ["get", "set"]
      },
      {
        "signature": "Guid Id",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "bool IgnoreHighlights",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool LayersFollowLockUsage",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Applies the settings for locked objects to locked layers.",
        "since": "8.11",
        "property": ["get", "set"]
      },
      {
        "signature": "LightingSchema LightingScheme",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "8.4",
        "property": ["get", "set"]
      },
      {
        "signature": "LinearWorkflowUsages LinearWorkflowUsage",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Turn on or off custom linear workflow settings",
        "since": "8.14",
        "property": ["get", "set"]
      },
      {
        "signature": "string LocalName",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "Color LockedColor",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Locked Object Color",
        "since": "8.11",
        "property": ["get", "set"]
      },
      {
        "signature": "bool LockedObjectsDrawBehindOthers",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Locked object are drawn behind other objects",
        "since": "5.1",
        "property": ["get", "set"]
      },
      {
        "signature": "int LockedObjectTransparency",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "LockedObjectTransparency.",
        "since": "8.11",
        "property": ["get", "set"]
      },
      {
        "signature": "LockedObjectUse LockedObjectUsage",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Set asource of display attributes for locked objects",
        "since": "8.11",
        "property": ["get", "set"]
      },
      {
        "signature": "Color MeshEdgeColor",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Sets the mesh edge color",
        "since": "8.11",
        "property": ["get", "set"]
      },
      {
        "signature": "int MeshEdgeColorReduction",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "The darken percentage of the color",
        "since": "8.11",
        "property": ["get", "set"]
      },
      {
        "signature": "int MeshEdgeThickness",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Mesh edge width in pixels",
        "since": "8.11",
        "property": ["get", "set"]
      },
      {
        "signature": "Color MeshNakedEdgeColor",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Sets the naked edge color",
        "since": "8.11",
        "property": ["get", "set"]
      },
      {
        "signature": "int MeshNakedEdgeColorReduction",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "The darken percentage of the color",
        "since": "8.11",
        "property": ["get", "set"]
      },
      {
        "signature": "int MeshNakedEdgeThickness",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Naked mesh edge width in pixels.}",
        "since": "8.11",
        "property": ["get", "set"]
      },
      {
        "signature": "Color MeshNonmanifoldEdgeColor",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Sets the nonmanifold edge color",
        "since": "8.11",
        "property": ["get", "set"]
      },
      {
        "signature": "int MeshNonmanifoldEdgeColorReduction",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "The darken percentage of the color",
        "since": "8.11",
        "property": ["get", "set"]
      },
      {
        "signature": "int MeshNonmanifoldEdgeThickness",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Non-manifold mesh edge width in pixels",
        "since": "8.11",
        "property": ["get", "set"]
      },
      {
        "signature": "MeshDisplayAttributes MeshSpecificAttributes",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "int MeshVertexSize",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Mesh vertex size in pixels",
        "since": "8.11",
        "property": ["get", "set"]
      },
      {
        "signature": "Color ObjectColor",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool PlaneUsesGridColor",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "If true, use the grid thin line color in App settings",
        "since": "8.11",
        "property": ["get", "set"]
      },
      {
        "signature": "float PointCloudRadius",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "8.4",
        "property": ["get", "set"]
      },
      {
        "signature": "PointStyle PointCloudStyle",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "8.4",
        "property": ["get", "set"]
      },
      {
        "signature": "float PointRadius",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "PointStyle PointStyle",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool PostProcessFrameBuffer",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Linear workflow Adjust output image",
        "since": "8.14",
        "property": ["get", "set"]
      },
      {
        "signature": "float PostProcessGamma",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Linear workflow Output image gamma",
        "since": "8.14",
        "property": ["get", "set"]
      },
      {
        "signature": "bool PreProcessColors",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Linear workflow input colors",
        "since": "8.14",
        "property": ["get", "set"]
      },
      {
        "signature": "float PreProcessGamma",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Linear workflow input gamma",
        "since": "8.14",
        "property": ["get", "set"]
      },
      {
        "signature": "bool PreProcessTextures",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Linear workflow input textures",
        "since": "8.14",
        "property": ["get", "set"]
      },
      {
        "signature": "Guid RealtimeDisplayId",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Get the ID of the real-time display engine attached to the view. This will be Guid.Empty if no real-time display engine is in use. This can be the case for instance when starting a _Render session for a real-time viewport integration. That still would cause this ID to be Guid.Empty.",
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "int RealtimeRenderPasses",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Get or set the real-time passes amount",
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool ShadeVertexColors",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Shade using vertex colors.",
        "since": "6.4",
        "property": ["get", "set"]
      },
      {
        "signature": "bool ShadingEnabled",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Draw shaded meshes and surfaces",
        "since": "5.1",
        "property": ["get", "set"]
      },
      {
        "signature": "double ShadowBiasX",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "ShadowBiasX (Self shadowing artifacts) from 0 (dirty) to 50 (cleaner).",
        "since": "8.11",
        "property": ["get", "set"]
      },
      {
        "signature": "float ShadowClippingRadius",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Camera-based shadow clipping radius",
        "since": "8.11",
        "property": ["get", "set"]
      },
      {
        "signature": "Color ShadowColor",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.3",
        "property": ["get", "set"]
      },
      {
        "signature": "double ShadowEdgeBlur",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Set blurring from 0 (no blurring) to 16 (maximum blurring)",
        "since": "8.11",
        "property": ["get", "set"]
      },
      {
        "signature": "int ShadowIntensity",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Shadow intensity (percentage 0-100)",
        "since": "8.11",
        "property": ["get", "set"]
      },
      {
        "signature": "int ShadowMemoryUsage",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Value from 1 to 16384 indicating how much memory is to be allocated. Actual memory use is ShadowMemoryUsage*ShadowMemoryUsage*4.",
        "since": "8.11",
        "property": ["get", "set"]
      },
      {
        "signature": "bool ShadowsIgnoreUserDefinedClippingPlanes",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "If true, shadows ignore user-defined clipping planes",
        "since": "8.11",
        "property": ["get", "set"]
      },
      {
        "signature": "int ShadowSoftEdgeQuality",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Soft edge quality, from 0 (none/faster) to 12 (softer/slower)",
        "since": "8.11",
        "property": ["get", "set"]
      },
      {
        "signature": "bool ShadowsOn",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Enable shadows",
        "since": "8.11",
        "property": ["get", "set"]
      },
      {
        "signature": "int ShadowTransparencyTolerance",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Transparency tolerance from 0 (never cast shadows) to 100 (always case shadows)",
        "since": "8.11",
        "property": ["get", "set"]
      },
      {
        "signature": "bool ShowAnnotations",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Show annotations.",
        "since": "6.4",
        "property": ["get", "set"]
      },
      {
        "signature": "bool ShowClipIntersectionEdges",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Show edges and hatches where clipping planes clip objects",
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool ShowClipIntersectionSurfaces",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Show fills where clipping planes clip solid objects",
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool ShowClippingEdges",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Shows the edges between the clipping plane and clipped objects.",
        "since": "8.11",
        "property": ["get", "set"]
      },
      {
        "signature": "bool ShowClippingFills",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "When a clipping plane intersects a 3-D object and the section is closed, the section is filled.",
        "since": "8.11",
        "property": ["get", "set"]
      },
      {
        "signature": "bool ShowClippingPlanes",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Show clipping planes.",
        "since": "6.4",
        "property": ["get", "set"]
      },
      {
        "signature": "bool ShowCreases",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "9.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool ShowCurves",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Draw curves",
        "since": "5.1",
        "property": ["get", "set"]
      },
      {
        "signature": "bool ShowEdges",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "9.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool ShowGrips",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool ShowHiddenLines",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "9.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool ShowIntersections",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "9.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool ShowIsoCurves",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Draw surface ISO curves.",
        "since": "6.4",
        "property": ["get", "set"]
      },
      {
        "signature": "bool ShowLighting",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "9.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool ShowLights",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Show light widgets.",
        "since": "6.4",
        "property": ["get", "set"]
      },
      {
        "signature": "bool ShowMeshEdges",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Display mesh edges on/off",
        "since": "8.11",
        "property": ["get", "set"]
      },
      {
        "signature": "bool ShowMeshNakedEdges",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Display mesh naked edges on/off",
        "since": "8.11",
        "property": ["get", "set"]
      },
      {
        "signature": "bool ShowMeshNonmanifoldEdges",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Display mesh manifold edges on/off",
        "since": "8.11",
        "property": ["get", "set"]
      },
      {
        "signature": "bool ShowPointClouds",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Show point clouds.",
        "since": "6.4",
        "property": ["get", "set"]
      },
      {
        "signature": "bool ShowPoints",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Show points.",
        "since": "6.4",
        "property": ["get", "set"]
      },
      {
        "signature": "bool ShowRealtimeRenderProgressBar",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Get or set whether the display is used for preview rendering or not.",
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool ShowSeams",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "9.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool ShowSilhouttes",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "9.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool ShowSubDBoundary",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Set visibility of SubD naked edges.",
        "since": "8.10",
        "property": ["get", "set"]
      },
      {
        "signature": "bool ShowSubDCreases",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Set visibility of SubD creased edges.",
        "since": "8.10",
        "property": ["get", "set"]
      },
      {
        "signature": "bool ShowSubDEdges",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Set visibility of SubD smooth edges.",
        "since": "8.10",
        "property": ["get", "set"]
      },
      {
        "signature": "bool ShowSubDNonmanifoldEdges",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Turn on/off color differentiation of SubD symmetry children.",
        "since": "8.10",
        "property": ["get", "set"]
      },
      {
        "signature": "bool ShowSubDReflectionPlanePreview",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "8.10",
        "property": ["get", "set"]
      },
      {
        "signature": "bool ShowSurfaceEdge",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Turn Surface Edge visibility on or off",
        "since": "8.6",
        "property": ["get", "set"]
      },
      {
        "signature": "bool ShowSurfaceEdges",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Show surface edges.",
        "since": "6.4",
        "property": ["get", "set"]
      },
      {
        "signature": "bool ShowSurfaceNakedEdge",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Turn Surface Naked Edge visibility on or off",
        "since": "8.6",
        "property": ["get", "set"]
      },
      {
        "signature": "bool ShowTangentEdges",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Show tangent edges.",
        "since": "6.4",
        "property": ["get", "set"]
      },
      {
        "signature": "bool ShowTangentSeams",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Show tangent seams.",
        "since": "6.4",
        "property": ["get", "set"]
      },
      {
        "signature": "bool ShowText",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Show text.",
        "since": "6.4",
        "property": ["get", "set"]
      },
      {
        "signature": "int SkylightShadowQuality",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Skylight shadow quality, from 0 (lowest) to 8 (highest)",
        "since": "8.11",
        "property": ["get", "set"]
      },
      {
        "signature": "StereoContext StereoContext",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Get or set the stereo render context.",
        "since": "7.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool SubDBoundaryApplyPattern",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Apply pattern to the edge",
        "since": "8.9",
        "property": ["get", "set"]
      },
      {
        "signature": "int SubDBoundaryColorReduction",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Color reduction percentage",
        "since": "8.9",
        "property": ["get", "set"]
      },
      {
        "signature": "Color SubDBoundaryEdgeColor",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Edge color",
        "since": "8.9",
        "property": ["get", "set"]
      },
      {
        "signature": "SubDEdgeColorUse SubDBoundaryEdgeColorUsage",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Edge color usage",
        "since": "8.9",
        "property": ["get", "set"]
      },
      {
        "signature": "float SubDBoundaryEdgeThickness",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Edge thickness (pixels).",
        "since": "8.9",
        "property": ["get", "set"]
      },
      {
        "signature": "float SubDBoundaryThicknessScale",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Edge thickness scale",
        "since": "8.9",
        "property": ["get", "set"]
      },
      {
        "signature": "SubDThicknessUse SubDBoundaryThicknessUsage",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "8.9",
        "property": ["get", "set"]
      },
      {
        "signature": "bool SubDCreaseInteriorApplyPattern",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Apply pattern to the edge",
        "since": "8.9",
        "property": ["get", "set"]
      },
      {
        "signature": "int SubDCreaseInteriorColorReduction",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Color reduction percentage",
        "since": "8.9",
        "property": ["get", "set"]
      },
      {
        "signature": "Color SubDCreaseInteriorEdgeColor",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Edge color",
        "since": "8.9",
        "property": ["get", "set"]
      },
      {
        "signature": "SubDEdgeColorUse SubDCreaseInteriorEdgeColorUsage",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Edge color usage",
        "since": "8.9",
        "property": ["get", "set"]
      },
      {
        "signature": "float SubDCreaseInteriorEdgeThickness",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Edge thickness (pixels).",
        "since": "8.9",
        "property": ["get", "set"]
      },
      {
        "signature": "float SubDCreaseInteriorThicknessScale",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Edge thickness scale",
        "since": "8.9",
        "property": ["get", "set"]
      },
      {
        "signature": "SubDThicknessUse SubDCreaseInteriorThicknessUsage",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "8.9",
        "property": ["get", "set"]
      },
      {
        "signature": "bool SubDNonManifoldApplyPattern",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Apply pattern to the edge",
        "since": "8.9",
        "property": ["get", "set"]
      },
      {
        "signature": "int SubDNonManifoldColorReduction",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Color reduction percentage",
        "since": "8.9",
        "property": ["get", "set"]
      },
      {
        "signature": "Color SubDNonManifoldEdgeColor",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Edge color",
        "since": "8.9",
        "property": ["get", "set"]
      },
      {
        "signature": "SubDEdgeColorUse SubDNonManifoldEdgeColorUsage",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Edge color usage",
        "since": "8.9",
        "property": ["get", "set"]
      },
      {
        "signature": "float SubDNonManifoldEdgeThickness",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Edge thickness (pixels).",
        "since": "8.9",
        "property": ["get", "set"]
      },
      {
        "signature": "float SubDNonManifoldThicknessScale",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Edge thickness scale",
        "since": "8.9",
        "property": ["get", "set"]
      },
      {
        "signature": "SubDThicknessUse SubDNonManifoldThicknessUsage",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "8.9",
        "property": ["get", "set"]
      },
      {
        "signature": "Color SubDReflectionAxisLineColor",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Reflection axis line color",
        "since": "8.9",
        "property": ["get", "set"]
      },
      {
        "signature": "float SubDReflectionAxisLineThickness",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "9.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool SubDReflectionPlaneAxisLineOn",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Apply Turnh on or off the reflection plane axis line",
        "since": "8.9",
        "property": ["get", "set"]
      },
      {
        "signature": "Color SubDReflectionPlaneColor",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Reflection plane color",
        "since": "8.9",
        "property": ["get", "set"]
      },
      {
        "signature": "int SubDReflectionPlaneColorReduction",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "SubD replection plane color reduction percentage",
        "since": "8.9",
        "property": ["get", "set"]
      },
      {
        "signature": "SubDReflectionPlaneColorUse SubDReflectionPlaneColorUsage",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "SubD replection plane color use",
        "since": "8.9",
        "property": ["get", "set"]
      },
      {
        "signature": "bool SubDSmoothInteriorApplyPattern",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Apply pattern to the edge",
        "since": "8.9",
        "property": ["get", "set"]
      },
      {
        "signature": "int SubDSmoothInteriorColorReduction",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Color reduction percentage",
        "since": "8.9",
        "property": ["get", "set"]
      },
      {
        "signature": "Color SubDSmoothInteriorEdgeColor",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Edge color",
        "since": "8.9",
        "property": ["get", "set"]
      },
      {
        "signature": "SubDEdgeColorUse SubDSmoothInteriorEdgeColorUsage",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Edge color usage",
        "since": "8.9",
        "property": ["get", "set"]
      },
      {
        "signature": "float SubDSmoothInteriorEdgeThickness",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Edge thickness (pixels).",
        "since": "8.9",
        "property": ["get", "set"]
      },
      {
        "signature": "float SubDSmoothInteriorThicknessScale",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Edge thickness scale",
        "since": "8.9",
        "property": ["get", "set"]
      },
      {
        "signature": "SubDThicknessUse SubDSmoothInteriorThicknessUsage",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "8.9",
        "property": ["get", "set"]
      },
      {
        "signature": "SubDThicknessUse SubDThicknessUsage",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Thickness usage, pixel thickness or a scale thickness",
        "since": "8.9",
        "property": ["get", "set"]
      },
      {
        "signature": "bool SurfaceEdgeApplyPattern",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Turn pattern application on or off",
        "since": "8.6",
        "property": ["get", "set"]
      },
      {
        "signature": "Color SurfaceEdgeColor",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "8.6",
        "property": ["get", "set"]
      },
      {
        "signature": "int SurfaceEdgeColorReduction",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "8.6",
        "property": ["get", "set"]
      },
      {
        "signature": "int SurfaceEdgeColorReductionPercent",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "8.7",
        "property": ["get", "set"]
      },
      {
        "signature": "SurfaceEdgeColorUse SurfaceEdgeColorUsage",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "8.6",
        "property": ["get", "set"]
      },
      {
        "signature": "int SurfaceEdgeThickness",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Thickness for surface edges",
        "since": "6.1",
        "property": ["get", "set"]
      },
      {
        "signature": "float SurfaceEdgeThicknessScale",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "8.6",
        "property": ["get", "set"]
      },
      {
        "signature": "bool SurfaceIsoColorsUsed",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "8.6",
        "property": ["get", "set"]
      },
      {
        "signature": "bool SurfaceIsoShowForFlatFaces",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "8.6",
        "property": ["get", "set"]
      },
      {
        "signature": "bool SurfaceIsoSingleColor",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "8.6",
        "property": ["get", "set"]
      },
      {
        "signature": "int SurfaceIsoThickness",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "8.6",
        "property": ["get", "set"]
      },
      {
        "signature": "float SurfaceIsoThicknessUScale",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "8.6",
        "property": ["get", "set"]
      },
      {
        "signature": "bool SurfaceIsoThicknessUsed",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "8.6",
        "property": ["get", "set"]
      },
      {
        "signature": "float SurfaceIsoThicknessVScale",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "8.6",
        "property": ["get", "set"]
      },
      {
        "signature": "float SurfaceIsoThicknessWScale",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "8.7",
        "property": ["get", "set"]
      },
      {
        "signature": "Color SurfaceIsoUColor",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "8.6",
        "property": ["get", "set"]
      },
      {
        "signature": "int SurfaceIsoUThickness",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "8.6",
        "property": ["get", "set"]
      },
      {
        "signature": "Color SurfaceIsoUVColor",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "8.6",
        "property": ["get", "set"]
      },
      {
        "signature": "Color SurfaceIsoVColor",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "8.6",
        "property": ["get", "set"]
      },
      {
        "signature": "int SurfaceIsoVThickness",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "8.6",
        "property": ["get", "set"]
      },
      {
        "signature": "int SurfaceNakedAdgeColorReduction",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "8.6",
        "property": ["get", "set"]
      },
      {
        "signature": "bool SurfaceNakedEdgeApplyPattern",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Turn pattern application on or off",
        "since": "8.6",
        "property": ["get", "set"]
      },
      {
        "signature": "Color SurfaceNakedEdgeColor",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "8.6",
        "property": ["get", "set"]
      },
      {
        "signature": "int SurfaceNakedEdgeColorReductionPercent",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "8.7",
        "property": ["get", "set"]
      },
      {
        "signature": "SurfaceNakedEdgeColorUse SurfaceNakedEdgeColorUsage",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "8.6",
        "property": ["get", "set"]
      },
      {
        "signature": "int SurfaceNakedEdgeThickness",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "8.6",
        "property": ["get", "set"]
      },
      {
        "signature": "float SurfaceNakedEdgeThicknessScale",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "8.6",
        "property": ["get", "set"]
      },
      {
        "signature": "bool UseAssignedObjectMaterial",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets whether objects ought to be drawn using their assigned rendering material.",
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool UseBackfaceMaterial",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Use the backface material for displaying backfaces.",
        "since": "8.20",
        "property": ["get", "set"]
      },
      {
        "signature": "bool UseCustomBackface",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Use a custom material for displaying backfaces.",
        "since": "8.20",
        "property": ["get", "set"]
      },
      {
        "signature": "bool UseCustomObjectColor",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets whether objects ought to be drawn using a custom color.",
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool UseCustomObjectColorBackfaces",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets whether objects ought to be drawn using a custom color for back faces.",
        "since": "7.1",
        "property": ["get", "set"]
      },
      {
        "signature": "bool UseCustomObjectMaterial",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets whether objects ought to be drawn using a custom material.",
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool UseCustomObjectMaterialBackfaces",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets whether objects ought to be drawn using a custom material on backfaces.",
        "since": "7.1",
        "property": ["get", "set"]
      },
      {
        "signature": "bool UseLightColor",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Draw lights using light color",
        "since": "8.11",
        "property": ["get", "set"]
      },
      {
        "signature": "bool UseObjectBackfaceMaterial",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Use the backface material of the object for displaying its backfaces.",
        "since": "8.20",
        "property": ["get", "set"]
      },
      {
        "signature": "bool UseSectionStyles",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "When enabled, the appearances of clipping fills and edges are based on objects' section style properties.",
        "since": "8.11",
        "property": ["get", "set"]
      },
      {
        "signature": "bool UseSingleCurveColor",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Use a single color for drawing curves",
        "since": "6.3",
        "property": ["get", "set"]
      },
      {
        "signature": "ViewDisplayAttributes ViewSpecificAttributes",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "WorldAxesIconColorUse WorldAxesIconColorUsage",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "8.11",
        "property": ["get", "set"]
      },
      {
        "signature": "bool XrayAllObjects",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0",
        "property": ["get", "set"]
      }
    ],
    "methods": [
      {
        "signature": "System.Void Dispose()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "System.Void Dispose(System.Boolean disposing)",
        "modifiers": ["protected", "virtual"],
        "protected": true,
        "virtual": true
      },
      {
        "signature": "System.Void GetColorFadeEffect(out Color fadeColor, out System.Single fadeAmount)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Get the current color fade effect data.",
        "since": "8.0",
        "parameters": [
          {
            "name": "fadeColor",
            "type": "Color",
            "summary": "The current fade amount"
          },
          {
            "name": "fadeAmount",
            "type": "System.Single",
            "summary": "The current fade color"
          }
        ]
      },
      {
        "signature": "CurveThicknessUse GetCurveThicknessUsage()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets current usage, pixel thickness (CurveThickness) or a scale thickness (CurveThicknessScale)",
        "since": "8.7"
      },
      {
        "signature": "System.Void GetDiagonalHatchEffect(out System.Single hatchStrength, out System.Single hatchWidth)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Get the current diagonal hatch strength and width in pixels.",
        "since": "8.0",
        "parameters": [
          {
            "name": "hatchStrength",
            "type": "System.Single",
            "summary": "The strength of the hatch effect."
          },
          {
            "name": "hatchWidth",
            "type": "System.Single",
            "summary": "The width of the diagonal hatch in pixels."
          }
        ]
      },
      {
        "signature": "System.Single GetDitherTransparencyEffect()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Get the current dither transparency amount.",
        "since": "8.0"
      },
      {
        "signature": "System.Void GetFill(out Color topLeft, out Color bottomLeft, out Color topRight, out Color bottomRight)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Get fill colors used for clearing the frame buffer",
        "since": "6.23"
      },
      {
        "signature": "System.Void GetObjectData(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context)",
        "modifiers": ["public", "virtual"],
        "protected": false,
        "virtual": true,
        "since": "5.0"
      },
      {
        "signature": "SurfaceThicknessUse GetSurfaceEdgeThicknessUsage()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Helper function for setting the SurfaceEdgeThicknessFlags",
        "since": "8.6"
      },
      {
        "signature": "System.Void GetSurfaceIsoApplyPattern(out System.Boolean u, out System.Boolean v, out System.Boolean w)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "8.6",
        "parameters": [
          {
            "name": "u",
            "type": "System.Boolean",
            "summary": "Gets mode in the u direction"
          },
          {
            "name": "v",
            "type": "System.Boolean",
            "summary": "Gets mode in the v direction"
          },
          {
            "name": "w",
            "type": "System.Boolean",
            "summary": "Gets mode in the w direction"
          }
        ]
      },
      {
        "signature": "SurfaceIsoColorUse GetSurfaceIsoColorUsage()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Helper function for getting SurfaceIsoColorsUsed and SurfaceSingleIsoColor",
        "since": "8.6"
      },
      {
        "signature": "SurfaceIsoThicknessUse GetSurfaceIsoThicknessUsage()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "This is a helper function that combines getting IsoThicknessUsed and SurfaceNakedEdgeThicknessUsageFlags settings to correspond to the behavor of the Settings page.",
        "since": "8.6"
      },
      {
        "signature": "SurfaceNakedEdgeThicknessUse GetSurfaceNakedEdgeThicknessUsage()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "This is a helper function that combines getting SurfaceNakeEdgeUseNormalThickness and SurfaceNakedEdgeThicknessUsageFlags settings to correspond to the behavor of the Settings page.",
        "since": "8.6"
      },
      {
        "signature": "System.Boolean HasColorFadeEffect()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns TRUE if there is a color fade effect enabled with a color fade effect amount larger than 0.0, FALSE otherwise.",
        "since": "8.0"
      },
      {
        "signature": "System.Boolean HasDiagonalHatchEffect()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns TRUE if there is a diagonal hatch effect enabled with a hatch strength larger than 0.0, FALSE otherwise.",
        "since": "8.0"
      },
      {
        "signature": "System.Boolean HasDitherTransparencyEffect()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns TRUE if there is a dither transparency effect enabled with a transparency amount larger than 0.0, FALSE otherwise.",
        "since": "8.0"
      },
      {
        "signature": "System.Void SetColorFadeEffect(in Color fadeColor, in System.Single fadeAmount)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Set a color fade effect to make objects fade a given amount towards a given color.",
        "since": "8.0",
        "parameters": [
          {
            "name": "fadeColor",
            "type": "Color",
            "summary": "The amount of fade towards the given color (0..1)."
          },
          {
            "name": "fadeAmount",
            "type": "System.Single",
            "summary": "The color to fade towards."
          }
        ]
      },
      {
        "signature": "System.Void SetCurveThicknessUsage(CurveThicknessUse usage)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Sets usage, pixel thickness (CurveThickness) or a scale thickness (CurveThicknessScale)",
        "since": "8.7"
      },
      {
        "signature": "System.Void SetDiagonalHatchEffect(in System.Single hatchStrength, in System.Single hatchWidth)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Set a diagonal hatch effect to make objects render with diagonal hatch with a given strength and width in pixels. The effect works by brightening and darkening pixels in a diagonal pattern.",
        "since": "8.0",
        "parameters": [
          {
            "name": "hatchStrength",
            "type": "System.Single",
            "summary": "The strength of the hatch effect (0..1)."
          },
          {
            "name": "hatchWidth",
            "type": "System.Single",
            "summary": "The width of the diagonal hatch in pixels (>= 0)."
          }
        ]
      },
      {
        "signature": "System.Void SetDitherTransparencyEffect(in System.Single transparencyAmount)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Set a dither transparency effect to make objects render with a given amount of transparency using a dither effect.",
        "since": "8.0",
        "parameters": [
          {
            "name": "transparencyAmount",
            "type": "System.Single",
            "summary": "The amount of transparency (0..1)."
          }
        ]
      },
      {
        "signature": "System.Void SetFill(Color gradientTopLeft, Color gradientBottomLeft, Color gradientTopRight, Color gradientBottomRight)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Set the fill mode to four color gradient and set the colors",
        "since": "6.23"
      },
      {
        "signature": "System.Void SetFill(Color gradientTop, Color gradientBottom)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Set fill mode to two color and set the colors",
        "since": "6.23"
      },
      {
        "signature": "System.Void SetFill(Color singleColor)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Set fill mode to solid color and set the fill color",
        "since": "6.23"
      },
      {
        "signature": "System.Void SetSurfaceEdgeThicknessUsage(SurfaceThicknessUse use)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Helper function for getting the SurfaceEdgeThicknessFlags",
        "since": "8.10"
      },
      {
        "signature": "System.Void SetSurfaceIsoApplyPattern(System.Boolean u, System.Boolean v, System.Boolean w)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "8.6"
      },
      {
        "signature": "System.Void SetSurfaceIsoColorUsage(SurfaceIsoColorUse use)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Helper function for setting SurfaceIsoColorsUsed and SurfaceIsoSingleColor",
        "since": "8.6"
      },
      {
        "signature": "System.Void SetSurfaceIsoThicknessUsage(SurfaceIsoThicknessUse value)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "This is a helper function that combines setting IsoThicknessUsed and SurfaceNakedEdgeThicknessUsageFlags settings to correspond to the behavor of the Settings page.",
        "since": "8.6"
      },
      {
        "signature": "System.Void SetSurfaceNakedEdgeThicknessUsage(SurfaceNakedEdgeThicknessUse use)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "This is a helper function that combines setting SurfaceNakeEdgeUseNormalThickness and SurfaceNakedEdgeThicknessUsageFlags settings to correspond to the behavor of the Settings page.",
        "since": "8.6"
      }
    ]
  },
  {
    "namespace": "Rhino.Display",
    "name": "DisplayPipelineAttributes.BackfaceStyle",
    "dataType": "enum",
    "summary": "Values for changing the display of the backface (the side opposite of the surface normal direction).",
    "since": "8.20",
    "values": [
      {
        "signature": "UseFrontFaceSettings = 0",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "No color change.",
        "since": "8.20"
      },
      {
        "signature": "CullBackfaces = 1",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Surfaces viewed from the back will be transparent.",
        "since": "8.20"
      },
      {
        "signature": "UseObjectColor = 2",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Surfaces viewed from the back use the color specified in the object's display properties.",
        "since": "8.20"
      },
      {
        "signature": "SingleColorAllBackfaces = 3",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "All backfaces display a specified color regardless of the object color.",
        "since": "8.20"
      },
      {
        "signature": "UseRenderMaterial = 4",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Shades using rendering material.",
        "since": "8.20"
      },
      {
        "signature": "CustomMaterialAllBackfaces = 5",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Use a custom material for all backfaces.",
        "since": "8.20"
      }
    ]

  },
  {
    "namespace": "Rhino.Display",
    "name": "DisplayPipelineAttributes.BoundingBoxDisplayMode",
    "dataType": "enum",
    "since": "6.1",
    "values": [
      {
        "signature": "None = UnsafeNativeMethods.DisplayPipelineAttributesBBox.BBoxOff",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "OnDuringDynamicDisplay = UnsafeNativeMethods.DisplayPipelineAttributesBBox.BBoxOnDynamicDisplay",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "OnAlways = UnsafeNativeMethods.DisplayPipelineAttributesBBox.BBoxOnAlways",
        "modifiers": [],
        "protected": false,
        "virtual": false
      }
    ]

  },
  {
    "namespace": "Rhino.Display",
    "name": "DisplayPipelineAttributes.ClippingEdgeColorUse",
    "dataType": "enum",
    "since": "8.11",
    "values": [
      {
        "signature": "PlaneColor = 0",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Uses the clipping plane's color (object or layer)."
      },
      {
        "signature": "SolidColor = 1",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Solid color"
      },
      {
        "signature": "ObjectColor = 2",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Uses the object's color (object or layer)."
      }
    ]

  },
  {
    "namespace": "Rhino.Display",
    "name": "DisplayPipelineAttributes.ClippingPlaneFillColorUse",
    "dataType": "enum",
    "since": "8.11",
    "values": [
      {
        "signature": "ViewportColor = 0",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Follows how the object displays in the viewport."
      },
      {
        "signature": "RenderMaterialColor = 1",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Uses the object's render material."
      },
      {
        "signature": "PlaneMaterialColor = 2",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Uses the clipping plane's color or layer color property."
      },
      {
        "signature": "SolidColor = 3",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Solid color"
      }
    ]

  },
  {
    "namespace": "Rhino.Display",
    "name": "DisplayPipelineAttributes.ClippingShadeColorUse",
    "dataType": "enum",
    "since": "8.11",
    "values": [
      {
        "signature": "PlaneColor = 0",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Uses the clipping plane's color (object or layer)."
      },
      {
        "signature": "PlaneMaterialColor = 1",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Uses the plane's render material (object or layer)."
      },
      {
        "signature": "SolidColor = 2",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Solid Color"
      }
    ]

  },
  {
    "namespace": "Rhino.Display",
    "name": "DisplayPipelineAttributes.ContextsForDraw",
    "dataType": "enum",
    "since": "6.5",
    "values": [
      {
        "signature": "Unset = 0",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "FilePreview = 1",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "ViewCapture = 2",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Printing = 3",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "UIPreview = 4",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Mask = 5",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "RenderOverlays = 6",
        "modifiers": [],
        "protected": false,
        "virtual": false
      }
    ]

  },
  {
    "namespace": "Rhino.Display",
    "name": "DisplayPipelineAttributes.CurveThicknessUse",
    "dataType": "enum",
    "since": "8.6",
    "values": [
      {
        "signature": "ObjectWidth = 0",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Pixels = 1",
        "modifiers": [],
        "protected": false,
        "virtual": false
      }
    ]

  },
  {
    "namespace": "Rhino.Display",
    "name": "DisplayPipelineAttributes.DynamicDisplayUse",
    "dataType": "enum",
    "since": "8.11",
    "values": [
      {
        "signature": "UseAppSettings = 0",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Use system default settings."
      },
      {
        "signature": "DisplayObjectBoundingBox = 1",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Reduces the display of objects to their bounding boxes. This can speed up the display on large models."
      }
    ]

  },
  {
    "namespace": "Rhino.Display",
    "name": "DisplayPipelineAttributes.FrameBufferFillMode",
    "dataType": "enum",
    "since": "6.0",
    "values": [
      {
        "signature": "DefaultColor = UnsafeNativeMethods.FrameBufferFillMode.DEFAULT_COLOR",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "SolidColor = UnsafeNativeMethods.FrameBufferFillMode.SOLID_COLOR",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Gradient2Color = UnsafeNativeMethods.FrameBufferFillMode.GRADIENT_2_COLOR",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Gradient4Color = UnsafeNativeMethods.FrameBufferFillMode.GRADIENT_4_COLOR",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Bitmap = UnsafeNativeMethods.FrameBufferFillMode.BITMAP",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Renderer = UnsafeNativeMethods.FrameBufferFillMode.RENDERER",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Transparent = UnsafeNativeMethods.FrameBufferFillMode.TRANSPARENT",
        "modifiers": [],
        "protected": false,
        "virtual": false
      }
    ]

  },
  {
    "namespace": "Rhino.Display",
    "name": "DisplayPipelineAttributes.GridPlaneVisibilityMode",
    "dataType": "enum",
    "since": "8.11",
    "values": [
      {
        "signature": "ShowOnlyIfGridVisible = 0",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Show only when grid is on"
      },
      {
        "signature": "AlwaysShow = 1",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Show always"
      }
    ]

  },
  {
    "namespace": "Rhino.Display",
    "name": "DisplayPipelineAttributes.GroundPlaneUsages",
    "dataType": "enum",
    "since": "8.14",
    "values": [
      {
        "signature": "ByDocument = 0",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Custom = 1",
        "modifiers": [],
        "protected": false,
        "virtual": false
      }
    ]

  },
  {
    "namespace": "Rhino.Display",
    "name": "DisplayPipelineAttributes.LightingSchema",
    "dataType": "enum",
    "since": "8.4",
    "values": [
      {
        "signature": "None = 0",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "DefaultLighting = 1",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "SceneLighting = 2",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "CustomLighting = 3",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "AmbientOcclusion = 4",
        "modifiers": [],
        "protected": false,
        "virtual": false
      }
    ]

  },
  {
    "namespace": "Rhino.Display",
    "name": "DisplayPipelineAttributes.LinearWorkflowUsages",
    "dataType": "enum",
    "since": "8.14",
    "values": [
      {
        "signature": "ByDocument = 0",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Custom = 1",
        "modifiers": [],
        "protected": false,
        "virtual": false
      }
    ]

  },
  {
    "namespace": "Rhino.Display",
    "name": "DisplayPipelineAttributes.LockedObjectUse",
    "dataType": "enum",
    "since": "8.11",
    "values": [
      {
        "signature": "UseObjectAttributes = 0",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Uses the object's specified attributes."
      },
      {
        "signature": "SpecifyColor = 1",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Use specified lock color"
      },
      {
        "signature": "UseAppSettings = 2",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Use settings specified in Appearance: Colors Options."
      }
    ]

  },
  {
    "namespace": "Rhino.Display",
    "name": "DisplayPipelineAttributes.MeshDisplayAttributes",
    "dataType": "class",
    "properties": [
      {
        "signature": "Color AllMeshWiresColor",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Color.Empty means that we are NOT using a single color for all mesh wires.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool HighlightMeshes",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "int MeshWireThickness",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool ShowMeshVertices",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool ShowMeshWires",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0",
        "property": ["get", "set"]
      }
    ]
  },
  {
    "namespace": "Rhino.Display",
    "name": "DisplayPipelineAttributes.SubDEdgeColorUse",
    "dataType": "enum",
    "summary": "SubD edge color use",
    "since": "8.9",
    "values": [
      {
        "signature": "ObjectColor = 0",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "SingleColorForAll = 1",
        "modifiers": [],
        "protected": false,
        "virtual": false
      }
    ]

  },
  {
    "namespace": "Rhino.Display",
    "name": "DisplayPipelineAttributes.SubDReflectionPlaneColorUse",
    "dataType": "enum",
    "summary": "SubD replection plane color use",
    "since": "8.9",
    "values": [
      {
        "signature": "ObjectColor = 0",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "CustomColor = 1",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "SingleColorForAll = 2",
        "modifiers": [],
        "protected": false,
        "virtual": false
      }
    ]

  },
  {
    "namespace": "Rhino.Display",
    "name": "DisplayPipelineAttributes.SubDThicknessUse",
    "dataType": "enum",
    "since": "8.9",
    "values": [
      {
        "signature": "ObjectWidth = 0",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Pixels = 1",
        "modifiers": [],
        "protected": false,
        "virtual": false
      }
    ]

  },
  {
    "namespace": "Rhino.Display",
    "name": "DisplayPipelineAttributes.SurfaceEdgeColorUse",
    "dataType": "enum",
    "since": "8.6",
    "values": [
      {
        "signature": "ObjectColor = 0",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "IsocurveColor = 1",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "SingleColorForAll = 2",
        "modifiers": [],
        "protected": false,
        "virtual": false
      }
    ]

  },
  {
    "namespace": "Rhino.Display",
    "name": "DisplayPipelineAttributes.SurfaceIsoColorUse",
    "dataType": "enum",
    "since": "8.6",
    "values": [
      {
        "signature": "ObjectColor = 0",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "SingleColorForAll = 1",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "SpecifiedUV = 2",
        "modifiers": [],
        "protected": false,
        "virtual": false
      }
    ]

  },
  {
    "namespace": "Rhino.Display",
    "name": "DisplayPipelineAttributes.SurfaceIsoThicknessUse",
    "dataType": "enum",
    "since": "8.6",
    "values": [
      {
        "signature": "ObjectWidth = 0",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "SingleWidthForAllCurves = 1",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "PixelsUV = 2",
        "modifiers": [],
        "protected": false,
        "virtual": false
      }
    ]

  },
  {
    "namespace": "Rhino.Display",
    "name": "DisplayPipelineAttributes.SurfaceNakedEdgeColorUse",
    "dataType": "enum",
    "since": "8.6",
    "values": [
      {
        "signature": "UseSurfaceEdgeSettings = 0",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "ObjectColor = 1",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "IsoCurveColor = 2",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "SingleColorForAll = 3",
        "modifiers": [],
        "protected": false,
        "virtual": false
      }
    ]

  },
  {
    "namespace": "Rhino.Display",
    "name": "DisplayPipelineAttributes.SurfaceNakedEdgeThicknessUse",
    "dataType": "enum",
    "since": "8.6",
    "values": [
      {
        "signature": "UseSurfaceEdgeSettings = 0",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "ObjectWidth = 1",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Pixels = 2",
        "modifiers": [],
        "protected": false,
        "virtual": false
      }
    ]

  },
  {
    "namespace": "Rhino.Display",
    "name": "DisplayPipelineAttributes.SurfaceThicknessUse",
    "dataType": "enum",
    "since": "8.10",
    "values": [
      {
        "signature": "ObjectWidth = 0",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Pixels = 1",
        "modifiers": [],
        "protected": false,
        "virtual": false
      }
    ]

  },
  {
    "namespace": "Rhino.Display",
    "name": "DisplayPipelineAttributes.ViewDisplayAttributes",
    "dataType": "class",
    "properties": [
      {
        "signature": "bool BlendGrid",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool DrawGrid",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool DrawGridAxes",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool DrawTransparentGridPlane",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool DrawWorldAxes",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool DrawZAxis",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "float GridBoundaryThickness",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "The thickness of the grid boundary.",
        "since": "9.0",
        "property": ["get", "set"]
      },
      {
        "signature": "float GridCornerRadius",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "The radius used to round the corners of the grid.",
        "since": "9.0",
        "property": ["get", "set"]
      },
      {
        "signature": "float GridFade",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "The amount the grid fades out towards its edges, from 0.0 (no fade) to 1.0 (full fade).",
        "since": "9.0",
        "property": ["get", "set"]
      },
      {
        "signature": "double HorizontalViewportScale",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool ShowGridOnTop",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool UseDocumentGrid",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "double VerticalViewportScale",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "Color WorldAxisColorX",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "Color WorldAxisColorY",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "Color WorldAxisColorZ",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0",
        "property": ["get", "set"]
      }
    ]
  },
  {
    "namespace": "Rhino.Display",
    "name": "DisplayPipelineAttributes.WorldAxesIconColorUse",
    "dataType": "enum",
    "since": "8.11",
    "values": [
      {
        "signature": "UseApplicationSettings = 0",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Use default setting"
      },
      {
        "signature": "SameAsGridAxesColors = 1",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Set colors for grid axes in Appearance: Colors Options"
      },
      {
        "signature": "Custom = 2",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Use specified custom colors"
      }
    ]

  },
  {
    "namespace": "Rhino.Display",
    "name": "DisplayPoint",
    "dataType": "class",
    "summary": "A 3d point with attributes used by the display pipeline",
    "constructors": [
      {
        "signature": "DisplayPoint(Point3d location)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "8.0"
      }
    ],
    "properties": [
      {
        "signature": "Point3d Location",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "8.0",
        "property": ["get"]
      }
    ],
    "methods": [
      {
        "signature": "DisplayPoint WithAttributes(DisplayPointAttributes attributes)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "8.0"
      }
    ]
  },
  {
    "namespace": "Rhino.Display",
    "name": "DisplayPointAttributes",
    "dataType": "class",
    "constructors": [
      {
        "signature": "DisplayPointAttributes()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "8.0"
      },
      {
        "signature": "DisplayPointAttributes(DisplayPointAttributes attributes)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "8.0"
      }
    ],
    "properties": [
      {
        "signature": "float? Diameter",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "Color? FillColor",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "PointStyle? PointStyle",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "float? RotationRadians",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "float? SecondarySize",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "Color? StrokeColor",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "float? StrokeWidth",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "8.0",
        "property": ["get", "set"]
      }
    ]
  },
  {
    "namespace": "Rhino.Display",
    "name": "DisplayPointSet",
    "dataType": "class",
    "interfaces": ["IDisposable"],
    "constructors": [
      {
        "signature": "DisplayPointSet()",
        "summary": "Initializes a new instance of the DisplayPointSet class"
      }
    ],
    "methods": [
      {
        "signature": "DisplayPointSet Create(IEnumerable<DisplayPoint> points)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "8.0"
      },
      {
        "signature": "System.Void Dispose()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "8.0"
      }
    ]
  },
  {
    "namespace": "Rhino.Display",
    "name": "DisplayTechnology",
    "dataType": "enum",
    "summary": "Graphics display techologies.",
    "since": "7.0",
    "values": [
      {
        "signature": "None = 0",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "OpenGL = 1",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Metal = 2",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "DirectX = 3",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Software = 4",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Vulkan = 5",
        "modifiers": [],
        "protected": false,
        "virtual": false
      }
    ]

  },
  {
    "namespace": "Rhino.Display",
    "name": "DrawEventArgs",
    "dataType": "class",
    "baseclass": "EventArgs",
    "properties": [
      {
        "signature": "DisplayPipeline Display",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "RhinoDoc RhinoDoc",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "RhinoViewport Viewport",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0",
        "property": ["get"]
      }
    ]
  },
  {
    "namespace": "Rhino.Display",
    "name": "DrawForegroundEventArgs",
    "dataType": "class",
    "baseclass": "Rhino.Display.DrawEventArgs",
    "properties": [
      {
        "signature": "bool DrawWorldAxes",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool WorldAxesDrawn",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0",
        "property": ["get", "set"]
      }
    ]
  },
  {
    "namespace": "Rhino.Display",
    "name": "DrawFrameStages",
    "dataType": "enum",
    "since": "5.0",
    "values": [
      {
        "signature": "InitializeFrameBuffer = 0x00000001",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "SetupFrustum = 0x00000002",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "ObjectCulling = 0x00000004",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "CalculateBoundingBox = 0x00000008",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "CalculateClippingPlanes = 0x00000010",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "SetupLighting = 0x00000020",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "DrawBackground = 0x00000040",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "PreDrawObjects = 0x00000080",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "DrawObject = 0x00000100",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "PostDrawObjects = 0x00000200",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "DrawForeGround = 0x00000400",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "DrawOverlay = 0x00000800",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "PostProcessFrameBuffer = 0x00001000",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "MeshingParameters = 0x00002000",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "ObjectDisplayAttributes = 0x00004000",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "PreObjectDraw = 0x00008000",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "PostObjectDraw = 0x00010000",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "ViewExtents = 0x00020000",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "DrawMiddleGround = PreDrawObjects | DrawObject | PostDrawObjects",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "ObjectBasedChannel = ObjectCulling | DrawObject | ObjectDisplayAttributes | PreObjectDraw | PostObjectDraw",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "All = 0xFFFFFFFF & ~ViewExtents",
        "modifiers": [],
        "protected": false,
        "virtual": false
      }
    ]

  },
  {
    "namespace": "Rhino.Display",
    "name": "DrawObjectEventArgs",
    "dataType": "class",
    "baseclass": "Rhino.Display.DrawEventArgs",
    "properties": [
      {
        "signature": "bool DrawObject",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "RhinoObject RhinoObject",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0",
        "property": ["get"]
      }
    ]
  },
  {
    "namespace": "Rhino.Display",
    "name": "FlairLayer",
    "dataType": "enum",
    "values": [
      {
        "signature": "Normals = 0",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Depth = 1",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Shadows = 2",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Shading = 3",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Material = 4",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Details = 5",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Background = 6",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Selection = 7",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Unknown = -1",
        "modifiers": [],
        "protected": false,
        "virtual": false
      }
    ]

  },
  {
    "namespace": "Rhino.Display",
    "name": "GradientType",
    "dataType": "enum",
    "summary": "Style of color gradient",
    "since": "7.0",
    "values": [
      {
        "signature": "None = 0",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "No gradient"
      },
      {
        "signature": "Linear = 1",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Linear (or axial) gradient between two points"
      },
      {
        "signature": "Radial = 2",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Radial (or spherical) gradient using a center point and a radius"
      },
      {
        "signature": "LinearDisabled = 3",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Disabled linear gradient. Useful for keeping gradient information around, but not having it displayed"
      },
      {
        "signature": "RadialDisabled = 4",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Disabled radial gradient. Useful for keeping gradient information around, but not having it displayed"
      }
    ]

  },
  {
    "namespace": "Rhino.Display",
    "name": "InitFrameBufferEventArgs",
    "dataType": "class",
    "baseclass": "EventArgs",
    "methods": [
      {
        "signature": "System.Void SetFill(System.Drawing.Color topLeft, System.Drawing.Color bottomLeft, System.Drawing.Color topRight, System.Drawing.Color bottomRight)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.18"
      },
      {
        "signature": "System.Void SetFill(System.Drawing.Color top, System.Drawing.Color bottom)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.18"
      },
      {
        "signature": "System.Void SetFill(System.Drawing.Color color)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.18"
      }
    ]
  },
  {
    "namespace": "Rhino.Display",
    "name": "IsoDrawEffect",
    "dataType": "class",
    "constructors": [
      {
        "signature": "IsoDrawEffect()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "9.0"
      }
    ],
    "properties": [
      {
        "signature": "Vector3d Direction",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "9.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool DiscardGap",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "9.0",
        "property": ["get", "set"]
      },
      {
        "signature": "IsoDrawMode DrawMode",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "9.0",
        "property": ["get", "set"]
      },
      {
        "signature": "double Falloff",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "9.0",
        "property": ["get", "set"]
      },
      {
        "signature": "int Frequency",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "9.0",
        "property": ["get", "set"]
      },
      {
        "signature": "Color GapColor",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "9.0",
        "property": ["get", "set"]
      },
      {
        "signature": "double GapSize",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "9.0",
        "property": ["get", "set"]
      },
      {
        "signature": "Point3d Point",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "9.0",
        "property": ["get", "set"]
      },
      {
        "signature": "double RotationRadians",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "9.0",
        "property": ["get", "set"]
      },
      {
        "signature": "int UsedBandColorCount",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "9.0",
        "property": ["get", "set"]
      }
    ],
    "methods": [
      {
        "signature": "Color GetBandColor(System.Int32 index)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "9.0"
      },
      {
        "signature": "System.Boolean SetBandColor(System.Int32 index, Color color)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "9.0"
      }
    ]
  },
  {
    "namespace": "Rhino.Display",
    "name": "IsoDrawMode",
    "dataType": "enum",
    "summary": "Defines how drawing should be performed when drawing with iso intervals aka zebra or banded drawing",
    "since": "9.0",
    "values": [
      {
        "signature": "None = 0",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "DirectionalLight = 1",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "DirectionalLightXY = 2",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "DirectionalLightXYDots = 3",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "DirectionalLightCameraX = 4",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "DirectionalLightCameraY = 5",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "DirectionalLightCameraXY = 6",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "DirectionalLightCameraXYDots = 7",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "DirectionalLightCameraZ = 8",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "PointLight = 9",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "PointLightCamera = 10",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "CylindricalStatic = 11",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "DirectionalDistance = 12",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "DirectionalDistanceCamera = 13",
        "modifiers": [],
        "protected": false,
        "virtual": false
      }
    ]

  },
  {
    "namespace": "Rhino.Display",
    "name": "IsometricCamera",
    "dataType": "enum",
    "summary": "Isometric camera orientation.",
    "since": "8.10",
    "values": [
      {
        "signature": "None = 0",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Northeast = 1",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Northwest = 2",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Southeast = 3",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Southwest = 4",
        "modifiers": [],
        "protected": false,
        "virtual": false
      }
    ]

  },
  {
    "namespace": "Rhino.Display",
    "name": "PageViewPropertiesChangeEventArgs",
    "dataType": "class",
    "summary": "PageView properties change event arguments.",
    "baseclass": "EventArgs",
    "since": "8.9",
    "properties": [
      {
        "signature": "RhinoDoc Document",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the Rhino document.",
        "since": "8.9",
        "property": ["get"]
      },
      {
        "signature": "uint DocumentSerialNumber",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "The serial number of the Rhino document.",
        "since": "8.9",
        "property": ["get", "set"]
      },
      {
        "signature": "RhinoPageView PageView",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the Rhino page view.",
        "since": "8.9",
        "property": ["get"]
      },
      {
        "signature": "uint PageViewSerialNumber",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "The serial number of the page view.",
        "since": "8.9",
        "property": ["get", "set"]
      }
    ]
  },
  {
    "namespace": "Rhino.Display",
    "name": "PageViewSpaceChangeEventArgs",
    "dataType": "class",
    "summary": "PageView space change event arguments.",
    "baseclass": "EventArgs",
    "since": "5.0",
    "properties": [
      {
        "signature": "Guid NewActiveDetailId",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "The id of the detail object was set active.  Note, if this id is equal to Guid.Empty, then the active detail object is the page view itself.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "Guid OldActiveDetailId",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "The id of the previously active detail object. Note, if this id is equal to Guid.Empty, then the active detail object was the page view itself.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "RhinoPageView PageView",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "The page view on which a different detail object was set active.",
        "since": "5.0",
        "property": ["get"]
      }
    ]
  },
  {
    "namespace": "Rhino.Display",
    "name": "PointStyle",
    "dataType": "enum",
    "summary": "Defines styles used for drawing points.",
    "values": [
      {
        "signature": "Simple = 0",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Square"
      },
      {
        "signature": "ControlPoint = 1",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Square with white center"
      },
      {
        "signature": "ActivePoint = 2",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Like a control point but includes vertical/horizontal crosshair lines."
      },
      {
        "signature": "X = 3",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "X shape"
      },
      {
        "signature": "RoundSimple = 4",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Circular"
      },
      {
        "signature": "RoundControlPoint = 5",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Circular with white center"
      },
      {
        "signature": "RoundActivePoint = 6",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Round control point with crosshair lines"
      },
      {
        "signature": "Circle = RoundSimple",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Circle or ring shape when secondarySize is set"
      },
      {
        "signature": "Square = Simple",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Square or diamond shape when rotated"
      },
      {
        "signature": "Triangle = 7",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Triangular shape"
      },
      {
        "signature": "Heart = 8",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Heart shape"
      },
      {
        "signature": "Chevron = 9",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Chevron shape (two directional arrows)"
      },
      {
        "signature": "Clover = 10",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Three unioned circles"
      },
      {
        "signature": "Tag = 11",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Tag shape"
      },
      {
        "signature": "Asterisk = 12",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "* shape"
      },
      {
        "signature": "Pin = 13",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Map style pin symbol. secondarySize defines hole zie in pin"
      },
      {
        "signature": "ArrowTail = 14",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Arrow shape with tail as definition point. Shape is offset from tail by secondarySize."
      },
      {
        "signature": "ArrowTip = 15",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Arrow shape with tip as definition point. Shape is offset from tip by secondarySize."
      },
      {
        "signature": "VariableDot = 50",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Solid filled, single color square"
      },
      {
        "signature": "SolidSquare = VariableDot",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Solid filled, single color square"
      },
      {
        "signature": "RoundDot = 51",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Solid filled, single color circle, same as SolidRound"
      },
      {
        "signature": "SolidRound = RoundDot",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Solid filled, single color circle"
      },
      {
        "signature": "SolidCircle = RoundDot",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Solid filled, single color circle"
      },
      {
        "signature": "None = 1000",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "No style (unset)"
      }
    ]

  },
  {
    "namespace": "Rhino.Display",
    "name": "RhinoPageView",
    "dataType": "class",
    "summary": "A window that contains a single layout 'page'",
    "baseclass": "Rhino.Display.RhinoView",
    "properties": [
      {
        "signature": "DetailViewObject ActiveDetail",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns the active detail object. If no detail is active, or if the page is active, then None is returned.",
        "since": "7.0",
        "property": ["get"]
      },
      {
        "signature": "Guid ActiveDetailId",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns the id of the active detail. If no detail is active, or if the page is active, then Guid.Empty is returned.",
        "since": "7.0",
        "property": ["get"]
      },
      {
        "signature": "RhinoViewport ActiveViewport",
        "modifiers": ["public", "override"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the active viewport. The ActiveViewport is the same as the MainViewport for standard RhinoViews. In a RhinoPageView, the active viewport may be the RhinoViewport of a child detail object. Most of the time, you will use ActiveViewport unless you explicitly need to work with the main viewport.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "string Description",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets and sets a brief description of the page view.",
        "since": "9.0",
        "property": ["get", "set"]
      },
      {
        "signature": "double PageHeight",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Height of the page in the document's PageUnitSystem",
        "since": "5.10",
        "property": ["get", "set"]
      },
      {
        "signature": "bool PageIsActive",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns True if the page is active, rather than any detail view. This occurs when the MainViewport.Id == ActiveViewportID.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "string PageName",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Same as the MainViewport.Name.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "int PageNumber",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the runtime page number and updates the page number for all of the other pages. The first page has a value of 0.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "int PageViewGroupCount",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the number of page view groups this page view belongs to.",
        "since": "9.0",
        "property": ["get"]
      },
      {
        "signature": "double PageWidth",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Width of the page in the document's PageUnitSystem",
        "since": "5.10",
        "property": ["get", "set"]
      },
      {
        "signature": "string PaperName",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns the name of the layout's media, or paper (e.g. Letter, Legal, A1, etc.), used to determine the page width and page height.",
        "since": "6.15",
        "property": ["get"]
      },
      {
        "signature": "string PrinterName",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns the name of the layout's destination printer.",
        "since": "6.15",
        "property": ["get"]
      }
    ],
    "methods": [
      {
        "signature": "DetailViewObject AddDetailView(System.String title, Geometry.Point2d corner0, Geometry.Point2d corner1, DefinedViewportProjection initialProjection)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Creates a detail view object that is displayed on this page and adds it to the document.",
        "since": "5.0",
        "parameters": [
          {
            "name": "title",
            "type": "System.String",
            "summary": "The detail view title."
          },
          {
            "name": "corner0",
            "type": "Geometry.Point2d",
            "summary": "Corners of the detail view in world coordinates."
          },
          {
            "name": "corner1",
            "type": "Geometry.Point2d",
            "summary": "Corners of the detail view in world coordinates."
          },
          {
            "name": "initialProjection",
            "type": "DefinedViewportProjection",
            "summary": "The defined initial projection type."
          }
        ],
        "returns": "Newly created detail view on success, None on error."
      },
      {
        "signature": "System.Void AddToPageViewGroup(System.Int32 pageViewGroupIndex)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Add this page view to a page view group.",
        "since": "9.0",
        "parameters": [
          {
            "name": "pageViewGroupIndex",
            "type": "System.Int32",
            "summary": "Zero-based index of the page view group."
          }
        ]
      },
      {
        "signature": "RhinoPageView Duplicate(System.Boolean duplicatePageGeometry)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Copies a page view.",
        "since": "6.3",
        "parameters": [
          {
            "name": "duplicatePageGeometry",
            "type": "System.Boolean",
            "summary": "Set True if you want the page view geometry copied, along with the view."
          }
        ],
        "returns": "The new page view if successful, None otherwise."
      },
      {
        "signature": "DetailViewObject[] GetDetailViews()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets a list of the detail view objects associated with this layout.",
        "since": "5.0",
        "returns": "An array of detail view objects if successful, an empty array if the layout has no details."
      },
      {
        "signature": "System.Int32[] GetPageViewGroupList()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets an array of page view group indices this page view belongs to.",
        "since": "9.0",
        "returns": "An array of page view group indices if successful, otherwise an empty array."
      },
      {
        "signature": "System.Drawing.Bitmap GetPreviewImage(System.Drawing.Size size, System.Boolean grayScale)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Creates a preview image of the page.",
        "since": "7.0",
        "parameters": [
          {
            "name": "size",
            "type": "System.Drawing.Size",
            "summary": "The size of the preview image."
          },
          {
            "name": "grayScale",
            "type": "System.Boolean",
            "summary": "Set True to produce a grayscale image, False to produce a color image."
          }
        ],
        "returns": "A bitmap if successful, None otherwise."
      },
      {
        "signature": "System.Boolean IsInPageViewGroup(System.Int32 pageViewGroupIndex)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Determines if this page view belongs in a page view group.",
        "since": "9.0",
        "returns": "True if the page view belongs in the page view group, otherwise false."
      },
      {
        "signature": "System.Int32 PageViewGroupSortIndex(System.Int32 pageViewGroupIndex)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets this page view's sort index within a page view group. The sort index determines the order of the page view among the other members of the group, independent of the document page (view-table) order.",
        "since": "9.0",
        "parameters": [
          {
            "name": "pageViewGroupIndex",
            "type": "System.Int32",
            "summary": "Zero-based index of the page view group."
          }
        ],
        "returns": "The zero-based sort index, or <b>RhinoMath.UnsetIntIndex</b> when the page view is not in the group or the group is unsorted (uses page-number order)."
      },
      {
        "signature": "System.Void RemoveFromAllageViewGroups()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Removes this page view to all page view groups.",
        "since": "9.0"
      },
      {
        "signature": "System.Void RemoveFromPageViewGroup(System.Int32 pageViewGroupIndex)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Removes this page view to a page view group.",
        "since": "9.0",
        "parameters": [
          {
            "name": "pageViewGroupIndex",
            "type": "System.Int32",
            "summary": "Zero-based index of the page view group."
          }
        ]
      },
      {
        "signature": "System.Boolean SetActiveDetail(System.Guid detailId)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Sets the active detail.",
        "since": "5.0",
        "parameters": [
          {
            "name": "detailId",
            "type": "System.Guid",
            "summary": "The id of the detail view object to set active."
          }
        ],
        "returns": "True if successful, False otherwise."
      },
      {
        "signature": "System.Boolean SetActiveDetail(System.String detailName, System.Boolean compareCase)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Sets the active detail.",
        "since": "5.0",
        "parameters": [
          {
            "name": "detailName",
            "type": "System.String",
            "summary": "The name, or title, of the detail to set active."
          },
          {
            "name": "compareCase",
            "type": "System.Boolean",
            "summary": "Unused."
          }
        ],
        "returns": "True if successful, False otherwise."
      },
      {
        "signature": "System.Void SetPageAsActive()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Deactivates the active details and sets the page view as active.",
        "since": "5.0"
      },
      {
        "signature": "System.Void SetPageViewGroupSortIndex(System.Int32 pageViewGroupIndex, System.Int32 sortIndex)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Sets this page view's sort index (position) within a page view group, repositioning it among the group's members and renumbering the rest so the group stays contiguously ordered. A sort index at or beyond the member count moves the page view to the end. If the page view is not yet in the group, it is added.",
        "since": "9.0",
        "parameters": [
          {
            "name": "pageViewGroupIndex",
            "type": "System.Int32",
            "summary": "Zero-based index of the page view group."
          },
          {
            "name": "sortIndex",
            "type": "System.Int32",
            "summary": "The desired zero-based position within the group."
          }
        ]
      }
    ],
    "events": [
      {
        "signature": "EventHandler<PageViewPropertiesChangeEventArgs> PageViewPropertiesChange",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "EventHandler<PageViewSpaceChangeEventArgs> PageViewSpaceChange",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      }
    ]

  },
  {
    "namespace": "Rhino.Display",
    "name": "RhinoView",
    "dataType": "class",
    "summary": "A RhinoView represents a single \"window\" display of a document. A view could contain one or many RhinoViewports (many in the case of Layout views with detail viewports). Standard Rhino modeling views have one viewport.",
    "properties": [
      {
        "signature": "bool EnableDrawing",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the 'drawing enabled' flag. By default, drawing is enabled.  \nThere are some rare situations where scripts want to disable drawing for a while.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "RhinoViewport ActiveViewport",
        "modifiers": ["public", "virtual"],
        "protected": false,
        "virtual": true,
        "summary": "The ActiveViewport is the same as the MainViewport for standard RhinoViews. In a RhinoPageView, the active viewport may be the RhinoViewport of a child detail object. Most of the time, you will use ActiveViewport unless you explicitly need to work with the main viewport.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "Guid ActiveViewportID",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns viewport ID for the active viewport. Faster than ActiveViewport function when working with page views.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "Rectangle Bounds",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the size and location of the view including its non-client elements, in pixels, relative to the parent control.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "Rectangle ClientRectangle",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the rectangle that represents the client area of the view.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "DisplayPipeline DisplayPipeline",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the display pipeline used for this view.",
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "RhinoDoc Document",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "bool Floating",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Floating state of RhinoView. if true, then the view will be in a floating frame window. Otherwise the view will be embedded in the main frame.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "IntPtr Handle",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the window handle that this view is bound to.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "bool InDynamicViewChange",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "True if the view is being dynamically changed by mouse moves, arrow keys, trackballs, etc.",
        "since": "8.1",
        "property": ["get"]
      },
      {
        "signature": "RhinoViewport MainViewport",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "A RhinoView contains a \"main viewport\" that fills the entire view client window. RhinoPageViews may also contain nested child RhinoViewports for implementing detail viewports. The MainViewport will always return this RhinoView's m_vp.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "bool Maximized",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "RealtimeDisplayMode RealtimeDisplayMode",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the RealtimeDisplayMode active for this view. None if the view doesn't have a RealtimeDisplayMode set.",
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "uint RuntimeSerialNumber",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "Rectangle ScreenRectangle",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the rectangle that represents the client area of the view in screen coordinates.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "Size Size",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the size of the view",
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool TitleVisible",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Visibility of the viewport title window.",
        "since": "5.0",
        "property": ["get", "set"]
      }
    ],
    "methods": [
      {
        "signature": "RhinoView FromRuntimeSerialNumber(System.UInt32 serialNumber)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Get a RhinoView from it's unique runtime serial number",
        "since": "6.0",
        "returns": "RhinoView or None if no view exists for a given serial number"
      },
      {
        "signature": "System.Drawing.Bitmap CaptureToBitmap()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Capture View contents to a bitmap.",
        "since": "5.0",
        "returns": "The bitmap of the complete view."
      },
      {
        "signature": "System.Drawing.Bitmap CaptureToBitmap(DisplayModeDescription mode)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Capture View contents to a bitmap using a display mode description to define how drawing is performed.",
        "since": "5.0",
        "parameters": [
          {
            "name": "mode",
            "type": "DisplayModeDescription",
            "summary": "The display mode."
          }
        ],
        "returns": "A new bitmap."
      },
      {
        "signature": "System.Drawing.Bitmap CaptureToBitmap(DisplayPipelineAttributes attributes)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Captures view contents to a bitmap using display attributes to define how drawing is performed.",
        "since": "5.0",
        "parameters": [
          {
            "name": "attributes",
            "type": "DisplayPipelineAttributes",
            "summary": "The specific display mode attributes."
          }
        ],
        "returns": "A new bitmap."
      },
      {
        "signature": "System.Drawing.Bitmap CaptureToBitmap(System.Boolean grid, System.Boolean worldAxes, System.Boolean cplaneAxes)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Captures the view contents to a bitmap allowing for visibility of grid and axes.",
        "since": "5.0",
        "parameters": [
          {
            "name": "grid",
            "type": "System.Boolean",
            "summary": "True if the construction plane grid should be visible."
          },
          {
            "name": "worldAxes",
            "type": "System.Boolean",
            "summary": "True if the world axis should be visible."
          },
          {
            "name": "cplaneAxes",
            "type": "System.Boolean",
            "summary": "True if the construction plane close the grid should be visible."
          }
        ],
        "returns": "A new bitmap."
      },
      {
        "signature": "System.Drawing.Bitmap CaptureToBitmap(System.Drawing.Size size, DisplayModeDescription mode)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Capture View contents to a bitmap using a display mode description to define how drawing is performed.",
        "since": "5.0",
        "parameters": [
          {
            "name": "size",
            "type": "System.Drawing.Size",
            "summary": "The width and height of the returned bitmap."
          },
          {
            "name": "mode",
            "type": "DisplayModeDescription",
            "summary": "The display mode."
          }
        ],
        "returns": "A new bitmap."
      },
      {
        "signature": "System.Drawing.Bitmap CaptureToBitmap(System.Drawing.Size size, DisplayPipelineAttributes attributes)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Capture View contents to a bitmap using display attributes to define how drawing is performed.",
        "since": "5.0",
        "parameters": [
          {
            "name": "size",
            "type": "System.Drawing.Size",
            "summary": "The width and height of the returned bitmap."
          },
          {
            "name": "attributes",
            "type": "DisplayPipelineAttributes",
            "summary": "The specific display mode attributes."
          }
        ],
        "returns": "A new bitmap."
      },
      {
        "signature": "System.Drawing.Bitmap CaptureToBitmap(System.Drawing.Size size, System.Boolean grid, System.Boolean worldAxes, System.Boolean cplaneAxes)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Captures a part of the view contents to a bitmap allowing for visibility of grid and axes.",
        "since": "5.0",
        "parameters": [
          {
            "name": "size",
            "type": "System.Drawing.Size",
            "summary": "The width and height of the returned bitmap."
          },
          {
            "name": "grid",
            "type": "System.Boolean",
            "summary": "True if the construction plane grid should be visible."
          },
          {
            "name": "worldAxes",
            "type": "System.Boolean",
            "summary": "True if the world axis should be visible."
          },
          {
            "name": "cplaneAxes",
            "type": "System.Boolean",
            "summary": "True if the construction plane close the grid should be visible."
          }
        ],
        "returns": "A new bitmap."
      },
      {
        "signature": "System.Drawing.Bitmap CaptureToBitmap(System.Drawing.Size size)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Capture View contents to a bitmap.",
        "since": "5.0",
        "parameters": [
          {
            "name": "size",
            "type": "System.Drawing.Size",
            "summary": "Size of Bitmap to capture to."
          }
        ],
        "returns": "The bitmap of the specified part of the view."
      },
      {
        "signature": "Geometry.Point2d ClientToScreen(Geometry.Point2d clientPoint)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "System.Drawing.Point ClientToScreen(System.Drawing.Point clientPoint)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "System.Boolean Close()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Remove this View from Rhino. DO NOT attempt to use this instance of this class after calling Close.",
        "since": "5.0",
        "returns": "True on success"
      },
      {
        "signature": "System.Boolean CreateShadedPreviewImage(System.String imagePath, System.Drawing.Size size, System.Boolean ignoreHighlights, System.Boolean drawConstructionPlane, System.Boolean useGhostedShading)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Creates a bitmap preview image of model.",
        "since": "5.0",
        "parameters": [
          {
            "name": "imagePath",
            "type": "System.String",
            "summary": "[in] The name of the bitmap file to create.  The extension of the imagePath controls the format of the bitmap file created (BMP, TGA, JPG, PCX, PNG, TIF)."
          },
          {
            "name": "size",
            "type": "System.Drawing.Size",
            "summary": "[in] The width and height of the bitmap in pixels."
          },
          {
            "name": "ignoreHighlights",
            "type": "System.Boolean",
            "summary": "True if highlighted elements should be drawn normally."
          },
          {
            "name": "drawConstructionPlane",
            "type": "System.Boolean",
            "summary": "True if the CPlane should be drawn."
          },
          {
            "name": "useGhostedShading",
            "type": "System.Boolean",
            "summary": "True if ghosted shading (partially transparent shading) should be used."
          }
        ],
        "returns": "True if successful."
      },
      {
        "signature": "System.Boolean CreateWireframePreviewImage(System.String imagePath, System.Drawing.Size size, System.Boolean ignoreHighlights, System.Boolean drawConstructionPlane)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Creates a bitmap preview image of model.",
        "since": "5.0",
        "parameters": [
          {
            "name": "imagePath",
            "type": "System.String",
            "summary": "[in] The name of the bitmap file to create.  The extension of the imagePath controls the format of the bitmap file created (BMP, TGA, JPG, PCX, PNG, TIF)."
          },
          {
            "name": "size",
            "type": "System.Drawing.Size",
            "summary": "[in] The width and height of the bitmap in pixels."
          },
          {
            "name": "ignoreHighlights",
            "type": "System.Boolean",
            "summary": "True if highlighted elements should be drawn normally."
          },
          {
            "name": "drawConstructionPlane",
            "type": "System.Boolean",
            "summary": "True if the CPlane should be drawn."
          }
        ],
        "returns": "True if successful."
      },
      {
        "signature": "System.Boolean Equals(System.Object obj)",
        "modifiers": ["public", "override"],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "System.Int32 GetHashCode()",
        "modifiers": ["public", "override"],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "System.Boolean MouseCaptured(System.Boolean bIncludeMovement)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns whether or not the mouse is captured in this view.",
        "since": "6.0",
        "parameters": [
          {
            "name": "bIncludeMovement",
            "type": "System.Boolean",
            "summary": "If captured, test if the mouse has moved between mouse button down and mouse button up."
          }
        ],
        "returns": "True if captured, False otherwise."
      },
      {
        "signature": "System.Void Redraw()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Redraws this view.",
        "since": "5.0",
    "remarks": "If you change something in \"this\" view like the projection, construction plane, background bitmap, etc., then you need to call RhinoView.Redraw() to redraw \"this\" view./ The other views will not be changed. If you change something in the document (like adding new geometry to the model), then you need to call RhinoDoc.Views.Redraw() to redraw all the views."
      },
      {
        "signature": "Geometry.Point2d ScreenToClient(Geometry.Point2d screenPoint)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.8"
      },
      {
        "signature": "System.Drawing.Point ScreenToClient(System.Drawing.Point screenPoint)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Converts a point in screen coordinates to client coordinates for this view.",
        "since": "5.0",
        "parameters": [
          {
            "name": "screenPoint",
            "type": "System.Drawing.Point",
            "summary": "The 2D screen point."
          }
        ],
        "returns": "A 2D point in client coordinates."
      },
      {
        "signature": "System.UInt32 ShowToast(System.String message, System.Int32 textHeight, System.Drawing.PointF location)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Shows a temporary popup message in the lower right corner of the view",
        "since": "8.0",
        "parameters": [
          {
            "name": "message",
            "type": "System.String",
            "summary": "The message to be shown"
          },
          {
            "name": "textHeight",
            "type": "System.Int32",
            "summary": "The height of the message"
          },
          {
            "name": "location",
            "type": "System.Drawing.PointF",
            "summary": "The location of the message"
          }
        ],
        "returns": "The runtime serial number of the view toast"
      },
      {
        "signature": "System.UInt32 ShowToast(System.String message, System.Int32 textHeight)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Shows a temporary popup message in the lower right corner of the view",
        "since": "8.0",
        "parameters": [
          {
            "name": "message",
            "type": "System.String",
            "summary": "The message to be shown"
          },
          {
            "name": "textHeight",
            "type": "System.Int32",
            "summary": "The height of the message"
          }
        ],
        "returns": "The runtime serial number of the view toast"
      },
      {
        "signature": "System.UInt32 ShowToast(System.String message)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Shows a temporary popup message in the lower right corner of the view",
        "since": "8.0",
        "parameters": [
          {
            "name": "message",
            "type": "System.String",
            "summary": "The message to be shown"
          }
        ],
        "returns": "The runtime serial number of the view toast"
      },
      {
        "signature": "System.Double SpeedTest(System.Int32 frameCount, System.Boolean freezeDrawList, System.Int32 direction, System.Double angleDeltaRadians)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.8"
      }
    ],
    "events": [
      {
        "signature": "EventHandler<ViewEnableDrawingEventArgs> EnableDrawingChanged",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Called when the state of <b>EnableDrawing</b> changes.",
        "since": "8.15"
      },
      {
        "signature": "EventHandler<ViewEventArgs> Create",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "EventHandler<ViewEventArgs> Destroy",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "EventHandler<ViewEventArgs> Modified",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "7.0"
      },
      {
        "signature": "EventHandler<ViewEventArgs> Rename",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "EventHandler<ViewEventArgs> SetActive",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      }
    ]

  },
  {
    "namespace": "Rhino.Display",
    "name": "RhinoViewport",
    "dataType": "class",
    "summary": "Displays geometry with a given projection. In standard modeling views there is a one to one relationship between RhinoView and RhinoViewports. In a page layout, there may be multiple RhinoViewports for a single layout.",
    "interfaces": ["IDisposable"],
    "constructors": [
      {
        "signature": "RhinoViewport()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "RhinoViewport(RhinoViewport other)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      }
    ],
    "properties": [
      {
        "signature": "Rectangle Bounds",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the size and location of the viewport, in pixels, relative to the parent view.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "double Camera35mmLensLength",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "double CameraAngle",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the 1/2 of smallest subtended view angle.",
        "since": "9.0",
        "property": ["get", "set"]
      },
      {
        "signature": "Vector3d CameraDirection",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "Point3d CameraLocation",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "Point3d CameraTarget",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Viewport target point.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "Vector3d CameraUp",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "Vector3d CameraX",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the \"unit to the right\" vector.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "Vector3d CameraY",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the \"unit up\" vector.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "Vector3d CameraZ",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the unit vector in CameraDirection.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "uint ChangeCounter",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "The value of change counter is incremented every time the view projection or construction plane changes. The user can the mouse and nestable view manipulation commands to change a view at any time. The value of change counter can be used to detect these changes in code that is sensitive to the view projection.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "bool ConstructionAxesVisible",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool ConstructionGridVisible",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "DisplayModeDescription DisplayMode",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "double FrustumAspect",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the width/height ratio of the frustum.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "Guid Id",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Unique id for this viewport.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "bool IsParallelProjection",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "bool IsPerspectiveProjection",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "bool IsPlanView",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "True if construction plane z axis is parallel to camera direction.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "bool IsTwoPointPerspectiveProjection",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "bool IsValidCamera",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "bool IsValidFrustum",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "bool LockedProjection",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "If true, the camera location, camera direction, and lens angle should not be changed.",
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "string Name",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Name associated with this viewport.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "RhinoView ParentView",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the parent view, if there is one  Every RhinoView has an associated RhinoViewport that does all the 3d display work. Those associated viewports return the RhinoView as their parent view. However, RhinoViewports are used in other image creating contexts that do not have a parent RhinoView.  If you call ParentView, you MUST check for NULL return values.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "double ScreenPortAspect",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "screen port's width/height.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "Size Size",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Get or set the height and width of the viewport (in pixels)",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "int UserStringCount",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.18",
        "property": ["get"]
      },
      {
        "signature": "ViewportType ViewportType",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "string WallpaperFilename",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "bool WallpaperGrayscale",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "bool WallpaperVisible",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "bool WorldAxesVisible",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0",
        "property": ["get", "set"]
      }
    ],
    "methods": [
      {
        "signature": "RhinoViewport FromId(System.Guid id)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Call this method to get the viewport with the specified Id.",
        "since": "6.0",
        "parameters": [
          {
            "name": "id",
            "type": "System.Guid",
            "summary": "Id to search for."
          }
        ],
        "returns": "Returns a RhinoViewport if the Id is found otherwise null."
      },
      {
        "signature": "System.Boolean ChangeToParallelProjection(System.Boolean symmetricFrustum)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Use this function to change projections of valid viewports from perspective to parallel. It will make common additional adjustments to the frustum so the resulting views are similar. The camera location and direction will not be changed.",
        "since": "5.0",
        "parameters": [
          {
            "name": "symmetricFrustum",
            "type": "System.Boolean",
            "summary": "True if you want the resulting frustum to be symmetric."
          }
        ],
        "returns": "If the current projection is parallel and bSymmetricFrustum, FrustumIsLeftRightSymmetric() and FrustumIsTopBottomSymmetric() are all equal, then no changes are made and True is returned."
      },
      {
        "signature": "System.Boolean ChangeToParallelReflectedProjection()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "When a viewport is set to Parallel Reflected projection, the geometry on the ceiling is shown as if it is mirrored to the floor below.",
        "since": "8.14"
      },
      {
        "signature": "System.Boolean ChangeToPerspectiveProjection(System.Boolean symmetricFrustum, System.Double lensLength)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Use this function to change projections of valid viewports from parallel to perspective. It will make common additional adjustments to the frustum and camera location so the resulting views are similar. The camera direction and target point are not be changed.",
        "since": "5.0",
        "parameters": [
          {
            "name": "symmetricFrustum",
            "type": "System.Boolean",
            "summary": "True if you want the resulting frustum to be symmetric."
          },
          {
            "name": "lensLength",
            "type": "System.Double",
            "summary": "(pass 50.0 when in doubt) 35 mm lens length to use when changing from parallel to perspective projections. If the current projection is perspective or lens_length is <= 0.0, then this parameter is ignored."
          }
        ],
        "returns": "If the current projection is perspective and bSymmetricFrustum, FrustumIsLeftRightSymmetric() and FrustumIsTopBottomSymmetric() are all equal, then no changes are made and True is returned."
      },
      {
        "signature": "System.Boolean ChangeToPerspectiveProjection(System.Double targetDistance, System.Boolean symmetricFrustum, System.Double lensLength)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Use this function to change projections of valid viewports from parallel to perspective. It will make common additional adjustments to the frustum and camera location so the resulting views are similar. The camera direction and target point are not be changed.",
        "since": "5.0",
        "parameters": [
          {
            "name": "targetDistance",
            "type": "System.Double",
            "summary": "If RhinoMath.UnsetValue this parameter is ignored. Otherwise it must be > 0 and indicates which plane in the current view frustum should be preserved."
          },
          {
            "name": "symmetricFrustum",
            "type": "System.Boolean",
            "summary": "True if you want the resulting frustum to be symmetric."
          },
          {
            "name": "lensLength",
            "type": "System.Double",
            "summary": "(pass 50.0 when in doubt) 35 mm lens length to use when changing from parallel to perspective projections. If the current projection is perspective or lens_length is <= 0.0, then this parameter is ignored."
          }
        ],
        "returns": "If the current projection is perspective and bSymmetricFrustum, FrustumIsLeftRightSymmetric() and FrustumIsTopBottomSymmetric() are all equal, then no changes are made and True is returned."
      },
      {
        "signature": "System.Boolean ChangeToTwoPointPerspectiveProjection(System.Double targetDistance, Rhino.Geometry.Vector3d up, System.Double lensLength)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Use this function to change projections of valid viewports to a two point perspective.  It will make common additional adjustments to the frustum and camera location and direction so the resulting views are similar.",
        "since": "6.0",
        "parameters": [
          {
            "name": "targetDistance",
            "type": "System.Double",
            "summary": "If RhinoMath.UnsetValue this parameter is ignored. Otherwise it must be > 0 and indicates which plane in the current view frustum should be preserved."
          },
          {
            "name": "up",
            "type": "Rhino.Geometry.Vector3d",
            "summary": "This direction will be the locked up direction.  Pass ON_3dVector::ZeroVector if you want to use the world axis direction that is closest to the current up direction. Pass CameraY() if you want to preserve the current up direction."
          },
          {
            "name": "lensLength",
            "type": "System.Double",
            "summary": "(pass 50.0 when in doubt) 35 mm lens length to use when changing from parallel to perspective projections. If the current projection is perspective or lens_length is <= 0.0, then this parameter is ignored."
          }
        ],
        "returns": "If the current projection is perspective and bSymmetricFrustum, FrustumIsLeftRightSymmetric() and FrustumIsTopBottomSymmetric() are all equal, then no changes are made and True is returned."
      },
      {
        "signature": "System.Boolean ChangeToTwoPointPerspectiveProjection(System.Double lensLength)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Use this function to change projections of valid viewports to a two point perspective.  It will make common additional adjustments to the frustum and camera location and direction so the resulting views are similar.",
        "since": "6.0",
        "parameters": [
          {
            "name": "lensLength",
            "type": "System.Double",
            "summary": "(pass 50.0 when in doubt) 35 mm lens length to use when changing from parallel to perspective projections. If the current projection is perspective or lens_length is <= 0.0, then this parameter is ignored."
          }
        ],
        "returns": "If the current projection is perspective and bSymmetricFrustum, FrustumIsLeftRightSymmetric() and FrustumIsTopBottomSymmetric() are all equal, then no changes are made and True is returned."
      },
      {
        "signature": "System.Void ClearTraceImage()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Remove trace image (background bitmap) for this viewport if one exists.",
        "since": "5.0"
      },
      {
        "signature": "System.Drawing.Point ClientToScreen(Point2d clientPoint)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "System.Drawing.Point ClientToScreen(System.Drawing.Point clientPoint)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "Line ClientToWorld(Point2d clientPoint)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "Line ClientToWorld(System.Drawing.Point clientPoint)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "Plane ConstructionPlane()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Simple plane information for this viewport's construction plane. If you want detailed construction plane information, use GetConstructionPlane.",
        "since": "5.0"
      },
      {
        "signature": "System.Void DeleteAllUserStrings()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.18"
      },
      {
        "signature": "System.Boolean DeleteUserString(System.String key)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.18"
      },
      {
        "signature": "System.Void Dispose()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "System.Void Dispose(System.Boolean disposing)",
        "modifiers": ["protected", "virtual"],
        "protected": true,
        "virtual": true
      },
      {
        "signature": "System.Boolean GetCameraAngle(out System.Double halfDiagonalAngle, out System.Double halfVerticalAngle, out System.Double halfHorizontalAngle)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "BoundingBox GetCameraExtents(IEnumerable<Point3d> points)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "System.Boolean GetCameraFrame(out Plane frame)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the camera plane.",
        "since": "5.0",
        "parameters": [
          {
            "name": "frame",
            "type": "Plane",
            "summary": "A plane is assigned to this out parameter during the call, if the operation succeeded."
          }
        ],
        "returns": "True if current camera orientation is valid."
      },
      {
        "signature": "DocObjects.ConstructionPlane GetConstructionPlane()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "System.Boolean GetDepth(BoundingBox bbox, out System.Double nearDistance, out System.Double farDistance)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets near and far clipping distances of a bounding box.",
        "since": "5.0",
        "parameters": [
          {
            "name": "bbox",
            "type": "BoundingBox",
            "summary": "The bounding box."
          },
          {
            "name": "nearDistance",
            "type": "System.Double",
            "summary": "The near distance is assigned to this out parameter during this call."
          },
          {
            "name": "farDistance",
            "type": "System.Double",
            "summary": "The far distance is assigned to this out parameter during this call."
          }
        ],
        "returns": "True if the bounding box intersects the view frustum and near_dist/far_dist were set. False if the bounding box does not intersect the view frustum."
      },
      {
        "signature": "System.Boolean GetDepth(Point3d point, out System.Double distance)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets clipping distance of a point.",
        "since": "5.0",
        "parameters": [
          {
            "name": "point",
            "type": "Point3d",
            "summary": "A 3D point."
          },
          {
            "name": "distance",
            "type": "System.Double",
            "summary": "A computed distance is assigned to this out parameter if this call succeeds."
          }
        ],
        "returns": "True if the point is in the view frustum and near_dist/far_dist were set. False if the bounding box does not intersect the view frustum."
      },
      {
        "signature": "System.Boolean GetDepth(Sphere sphere, out System.Double nearDistance, out System.Double farDistance)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets near and far clipping distances of a sphere.",
        "since": "5.0",
        "parameters": [
          {
            "name": "sphere",
            "type": "Sphere",
            "summary": "The sphere."
          },
          {
            "name": "nearDistance",
            "type": "System.Double",
            "summary": "The near distance is assigned to this out parameter during this call."
          },
          {
            "name": "farDistance",
            "type": "System.Double",
            "summary": "The far distance is assigned to this out parameter during this call."
          }
        ],
        "returns": "True if the sphere intersects the view frustum and near_dist/far_dist were set. False if the sphere does not intersect the view frustum."
      },
      {
        "signature": "Point3d[] GetFarRect()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Get corners of far clipping plane rectangle.",
        "since": "5.0",
        "returns": "[left_bottom, right_bottom, left_top, right_top] points on success None on failure."
      },
      {
        "signature": "System.Boolean GetFrustum(out System.Double left, out System.Double right, out System.Double bottom, out System.Double top, out System.Double nearDistance, out System.Double farDistance)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the view frustum.",
        "since": "5.0",
        "parameters": [
          {
            "name": "left",
            "type": "System.Double",
            "summary": "left < right."
          },
          {
            "name": "right",
            "type": "System.Double",
            "summary": "left < right."
          },
          {
            "name": "bottom",
            "type": "System.Double",
            "summary": "bottom < top."
          },
          {
            "name": "top",
            "type": "System.Double",
            "summary": "bottom < top."
          },
          {
            "name": "nearDistance",
            "type": "System.Double",
            "summary": "0 < nearDistance < farDistance."
          },
          {
            "name": "farDistance",
            "type": "System.Double",
            "summary": "0 < nearDistance < farDistance."
          }
        ],
        "returns": "True if operation succeeded."
      },
      {
        "signature": "System.Boolean GetFrustumBottomPlane(out Plane plane)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Get bottom world frustum clipping plane.",
        "since": "5.0",
        "parameters": [
          {
            "name": "plane",
            "type": "Plane",
            "summary": "frustum bottom side clipping plane. The normal points into the visible region of the frustum. If the projection is perspective, the origin is at the camera location, otherwise the origin is the point on the plane that is closest to the camera location."
          }
        ],
        "returns": "True if camera and frustum are valid and plane was set."
      },
      {
        "signature": "BoundingBox GetFrustumBoundingBox()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "System.Boolean GetFrustumCenter(out Point3d center)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns world coordinates of frustum's center.",
        "since": "5.0",
        "parameters": [
          {
            "name": "center",
            "type": "Point3d",
            "summary": "The center coordinate is assigned to this out parameter if this call succeeds."
          }
        ],
        "returns": "True if the center was successfully computed."
      },
      {
        "signature": "System.Boolean GetFrustumFarPlane(out Plane plane)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Get far clipping plane.",
        "since": "5.0",
        "parameters": [
          {
            "name": "plane",
            "type": "Plane",
            "summary": "far clipping plane if camera and frustum are valid. The plane's frame is the same as the camera's frame. The origin is located at the intersection of the camera direction ray and the far clipping plane."
          }
        ],
        "returns": "True if camera and frustum are valid."
      },
      {
        "signature": "System.Boolean GetFrustumLeftPlane(out Plane plane)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Get left world frustum clipping plane.",
        "since": "5.0",
        "parameters": [
          {
            "name": "plane",
            "type": "Plane",
            "summary": "frustum left side clipping plane. The normal points into the visible region of the frustum. If the projection is perspective, the origin is at the camera location, otherwise the origin is the point on the plane that is closest to the camera location."
          }
        ],
        "returns": "True if camera and frustum are valid and plane was set."
      },
      {
        "signature": "System.Boolean GetFrustumLine(System.Double screenX, System.Double screenY, out Line worldLine)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the world coordinate line in the view frustum that projects to a point on the screen.",
        "since": "5.0",
        "parameters": [
          {
            "name": "screenX",
            "type": "System.Double",
            "summary": "(screenx,screeny) = screen location."
          },
          {
            "name": "screenY",
            "type": "System.Double",
            "summary": "(screenx,screeny) = screen location."
          },
          {
            "name": "worldLine",
            "type": "Line",
            "summary": "3d world coordinate line segment starting on the near clipping plane and ending on the far clipping plane."
          }
        ],
        "returns": "True if successful. False if view projection or frustum is invalid."
      },
      {
        "signature": "System.Boolean GetFrustumNearPlane(out Plane plane)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Get near clipping plane.",
        "since": "5.0",
        "parameters": [
          {
            "name": "plane",
            "type": "Plane",
            "summary": "near clipping plane if camera and frustum are valid. The plane's frame is the same as the camera's frame. The origin is located at the intersection of the camera direction ray and the near clipping plane."
          }
        ],
        "returns": "True if camera and frustum are valid."
      },
      {
        "signature": "System.Boolean GetFrustumRightPlane(out Plane plane)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Get right world frustum clipping plane.",
        "since": "5.0",
        "parameters": [
          {
            "name": "plane",
            "type": "Plane",
            "summary": "frustum right side clipping plane. The normal points into the visible region of the frustum. If the projection is perspective, the origin is at the camera location, otherwise the origin is the point on the plane that is closest to the camera location."
          }
        ],
        "returns": "True if camera and frustum are valid and plane was set."
      },
      {
        "signature": "System.Boolean GetFrustumTopPlane(out Plane plane)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Get top world frustum clipping plane.",
        "since": "5.0",
        "parameters": [
          {
            "name": "plane",
            "type": "Plane",
            "summary": "frustum top side clipping plane. The normal points into the visible region of the frustum. If the projection is perspective, the origin is at the camera location, otherwise the origin is the point on the plane that is closest to the camera location."
          }
        ],
        "returns": "True if camera and frustum are valid and plane was set."
      },
      {
        "signature": "Point3d[] GetNearRect()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Get corners of near clipping plane rectangle.",
        "since": "5.0",
        "returns": "[left_bottom, right_bottom, left_top, right_top] points on success None on failure."
      },
      {
        "signature": "Transform GetPickTransform(System.Drawing.Point clientPoint)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Takes a rectangle in screen coordinates and returns a transformation that maps the 3d frustum defined by the rectangle to a -1/+1 clipping coordinate box. This takes a single point and inflates it by Rhino.ApplicationSettings.ModelAidSettings.MousePickBoxRadius to define the screen rectangle.",
        "since": "5.0",
        "parameters": [
          {
            "name": "clientPoint",
            "type": "System.Drawing.Point",
            "summary": "The client point."
          }
        ],
        "returns": "A transformation matrix."
      },
      {
        "signature": "Transform GetPickTransform(System.Drawing.Rectangle clientRectangle)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Takes a rectangle in screen coordinates and returns a transformation that maps the 3d frustum defined by the rectangle to a -1/+1 clipping coordinate box.",
        "since": "5.0",
        "parameters": [
          {
            "name": "clientRectangle",
            "type": "System.Drawing.Rectangle",
            "summary": "The client rectangle."
          }
        ],
        "returns": "A transformation matrix."
      },
      {
        "signature": "Transform GetPickTransform(System.Int32 clientX, System.Int32 clientY)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Takes a rectangle in screen coordinates and returns a transformation that maps the 3d frustum defined by the rectangle to a -1/+1 clipping coordinate box. This takes a single point and inflates it by Rhino.ApplicationSettings.ModelAidSettings.MousePickBoxRadius to define the screen rectangle.",
        "since": "5.0",
        "parameters": [
          {
            "name": "clientX",
            "type": "System.Int32",
            "summary": "The client point X coordinate."
          },
          {
            "name": "clientY",
            "type": "System.Int32",
            "summary": "The client point Y coordinate."
          }
        ],
        "returns": "A transformation matrix."
      },
      {
        "signature": "System.Boolean GetScreenPort(out System.Int32 portLeft, out System.Int32 portRight, out System.Int32 portBottom, out System.Int32 portTop, out System.Int32 portNear, out System.Int32 portFar)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Location of viewport in pixels.  These are provided so you can set the port you are using and get the appropriate transformations to and from screen space.",
        "since": "5.0",
        "parameters": [
          {
            "name": "portLeft",
            "type": "System.Int32",
            "summary": "portLeft != portRight."
          },
          {
            "name": "portRight",
            "type": "System.Int32",
            "summary": "portLeft != portRight."
          },
          {
            "name": "portBottom",
            "type": "System.Int32",
            "summary": "portTop != portBottom."
          },
          {
            "name": "portTop",
            "type": "System.Int32",
            "summary": "portTop != portBottom."
          },
          {
            "name": "portNear",
            "type": "System.Int32",
            "summary": "The viewport near value."
          },
          {
            "name": "portFar",
            "type": "System.Int32",
            "summary": "The viewport far value."
          }
        ],
        "returns": "True if the operation is successful."
      },
      {
        "signature": "Transform GetTransform(DocObjects.CoordinateSystem sourceSystem, DocObjects.CoordinateSystem destinationSystem)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets a transform from origin coordinate system to a target coordinate system.",
        "since": "5.0",
        "parameters": [
          {
            "name": "sourceSystem",
            "type": "DocObjects.CoordinateSystem",
            "summary": "The origin coordinate system."
          },
          {
            "name": "destinationSystem",
            "type": "DocObjects.CoordinateSystem",
            "summary": "The target coordinate system."
          }
        ],
        "returns": "4x4 transformation matrix (acts on the left) Identity matrix is returned if this function fails."
      },
      {
        "signature": "System.String GetUserString(System.String key)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets a user string.",
        "since": "6.18",
        "parameters": [
          {
            "name": "key",
            "type": "System.String",
            "summary": "id used to retrieve the string."
          }
        ],
        "returns": "string associated with the key if successful. None if no key was found."
      },
      {
        "signature": "System.Collections.Specialized.NameValueCollection GetUserStrings()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets an independent copy of the collection of (user text key, user text value) pairs attached to this object.",
        "since": "6.18",
        "returns": "A collection of key strings and values strings. This"
      },
      {
        "signature": "System.Double[] GetViewScale()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Get Scale transform applied to the viewport",
        "since": "8.0"
      },
      {
        "signature": "System.Boolean GetWorldToScreenScale(Point3d pointInFrustum, out System.Double pixelsPerUnit)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the world to screen size scaling factor at a point in frustum.",
        "since": "5.0",
        "parameters": [
          {
            "name": "pointInFrustum",
            "type": "Point3d",
            "summary": "A point in frustum."
          },
          {
            "name": "pixelsPerUnit",
            "type": "System.Double",
            "summary": "scale = number of pixels per world unit at the 3d point.  \nThis out parameter is assigned during this call."
          }
        ],
        "returns": "True if the operation is successful."
      },
      {
        "signature": "System.Boolean IsVisible(BoundingBox bbox)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns True if some portion of a world coordinate bounding box is potentially visible in the viewing frustum.",
        "since": "5.0",
        "parameters": [
          {
            "name": "bbox",
            "type": "BoundingBox",
            "summary": "A bounding box that is tested for visibility."
          }
        ],
        "returns": "True if the box is potentially visible; otherwise false."
      },
      {
        "signature": "System.Boolean IsVisible(Point3d point)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Determines if a world coordinate point is visible in the viewing frustum.",
        "since": "5.0",
        "parameters": [
          {
            "name": "point",
            "type": "Point3d",
            "summary": "A point that is tested for visibility."
          }
        ],
        "returns": "True if the point is visible; otherwise false."
      },
      {
        "signature": "System.Boolean KeyboardDolly(System.Boolean leftRight, System.Double amount)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Emulates the keyboard arrow key in terms of interaction.",
        "since": "5.0",
        "parameters": [
          {
            "name": "leftRight",
            "type": "System.Boolean",
            "summary": "left/right dolly if true, up/down dolly if false."
          },
          {
            "name": "amount",
            "type": "System.Double",
            "summary": "The dolly amount."
          }
        ],
        "returns": "True if operation succeeded; otherwise false."
      },
      {
        "signature": "System.Boolean KeyboardDollyInOut(System.Double amount)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Emulates the keyboard arrow key in terms of interaction.",
        "since": "5.0",
        "parameters": [
          {
            "name": "amount",
            "type": "System.Double",
            "summary": "The dolly amount."
          }
        ],
        "returns": "True if operation succeeded; otherwise false."
      },
      {
        "signature": "System.Boolean KeyboardRotate(System.Boolean leftRight, System.Double angleRadians)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Emulates the keyboard arrow key in terms of interaction.",
        "since": "5.0",
        "parameters": [
          {
            "name": "leftRight",
            "type": "System.Boolean",
            "summary": "left/right rotate if true, up/down rotate if false."
          },
          {
            "name": "angleRadians",
            "type": "System.Double",
            "summary": "If less than 0, rotation is to left or down. If greater than 0, rotation is to right or up."
          }
        ],
        "returns": "True if operation succeeded; otherwise false."
      },
      {
        "signature": "System.Boolean Magnify(System.Double magnificationFactor, System.Boolean mode, System.Drawing.Point fixedScreenPoint)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Zooms or dollies in order to scale the viewport projection of observed objects.",
        "since": "5.0",
        "parameters": [
          {
            "name": "magnificationFactor",
            "type": "System.Double",
            "summary": "The scale factor."
          },
          {
            "name": "mode",
            "type": "System.Boolean",
            "summary": "False = perform a \"dolly\" magnification by moving the camera towards/away from the target so that the amount of the screen subtended by an object changes. True = perform a \"zoom\" magnification by adjusting the \"lens\" angle"
          },
          {
            "name": "fixedScreenPoint",
            "type": "System.Drawing.Point",
            "summary": "A point in the screen that should remain fixed."
          }
        ],
        "returns": "True if operation succeeded; otherwise false."
      },
      {
        "signature": "System.Boolean Magnify(System.Double magnificationFactor, System.Boolean mode)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Zooms or dollies in order to scale the viewport projection of observed objects.",
        "since": "5.0",
        "parameters": [
          {
            "name": "magnificationFactor",
            "type": "System.Double",
            "summary": "The scale factor."
          },
          {
            "name": "mode",
            "type": "System.Boolean",
            "summary": "False = perform a \"dolly\" magnification by moving the camera towards/away from the target so that the amount of the screen subtended by an object changes. True = perform a \"zoom\" magnification by adjusting the \"lens\" angle"
          }
        ],
        "returns": "True if operation succeeded; otherwise false."
      },
      {
        "signature": "System.Boolean MouseAdjustLensLength(System.Drawing.Point mousePreviousPoint, System.Drawing.Point mouseCurrentPoint, System.Boolean moveTarget)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Adjusts the camera lens length.",
        "since": "6.0",
        "parameters": [
          {
            "name": "mousePreviousPoint",
            "type": "System.Drawing.Point",
            "summary": "The mouse previous point."
          },
          {
            "name": "mouseCurrentPoint",
            "type": "System.Drawing.Point",
            "summary": "The mouse current point."
          },
          {
            "name": "moveTarget",
            "type": "System.Boolean",
            "summary": "Should this operation move the target?"
          }
        ]
      },
      {
        "signature": "System.Boolean MouseDollyZoom(System.Drawing.Point mousePreviousPoint, System.Drawing.Point mouseCurrentPoint)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Zooms lens (thus adjusting the field of view) while moving the camera.",
        "since": "5.0",
        "parameters": [
          {
            "name": "mousePreviousPoint",
            "type": "System.Drawing.Point",
            "summary": "The mouse previous point."
          },
          {
            "name": "mouseCurrentPoint",
            "type": "System.Drawing.Point",
            "summary": "The mouse current point."
          }
        ]
      },
      {
        "signature": "System.Boolean MouseInOutDolly(System.Drawing.Point mousePreviousPoint, System.Drawing.Point mouseCurrentPoint)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Moves the camera towards or away from the view maintaining focus on the view.",
        "since": "5.0",
        "parameters": [
          {
            "name": "mousePreviousPoint",
            "type": "System.Drawing.Point",
            "summary": "The mouse previous point."
          },
          {
            "name": "mouseCurrentPoint",
            "type": "System.Drawing.Point",
            "summary": "The mouse current point."
          }
        ]
      },
      {
        "signature": "System.Boolean MouseLateralDolly(System.Drawing.Point mousePreviousPoint, System.Drawing.Point mouseCurrentPoint)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Pans the camera",
        "since": "6.0",
        "parameters": [
          {
            "name": "mousePreviousPoint",
            "type": "System.Drawing.Point",
            "summary": "The mouse previous point."
          },
          {
            "name": "mouseCurrentPoint",
            "type": "System.Drawing.Point",
            "summary": "The mouse current point."
          }
        ]
      },
      {
        "signature": "System.Boolean MouseMagnify(System.Drawing.Point mousePreviousPoint, System.Drawing.Point mouseCurrentPoint)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Moves the camera towards or away from the view.",
        "since": "5.0",
        "parameters": [
          {
            "name": "mousePreviousPoint",
            "type": "System.Drawing.Point",
            "summary": "The mouse previous point."
          },
          {
            "name": "mouseCurrentPoint",
            "type": "System.Drawing.Point",
            "summary": "The mouse current point."
          }
        ]
      },
      {
        "signature": "System.Boolean MouseRotateAroundTarget(System.Drawing.Point mousePreviousPoint, System.Drawing.Point mouseCurrentPoint)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Rotates the viewport around target.",
        "since": "5.0",
        "parameters": [
          {
            "name": "mousePreviousPoint",
            "type": "System.Drawing.Point",
            "summary": "The mouse previous point."
          },
          {
            "name": "mouseCurrentPoint",
            "type": "System.Drawing.Point",
            "summary": "The mouse current point."
          }
        ]
      },
      {
        "signature": "System.Boolean MouseRotateCamera(System.Drawing.Point mousePreviousPoint, System.Drawing.Point mouseCurrentPoint)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Rotates the view around the camera location.",
        "since": "5.0",
        "parameters": [
          {
            "name": "mousePreviousPoint",
            "type": "System.Drawing.Point",
            "summary": "The mouse previous point."
          },
          {
            "name": "mouseCurrentPoint",
            "type": "System.Drawing.Point",
            "summary": "The mouse current point."
          }
        ]
      },
      {
        "signature": "System.Boolean MouseTilt(System.Drawing.Point mousePreviousPoint, System.Drawing.Point mouseCurrentPoint)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Tilts the camera view.",
        "since": "5.0",
        "parameters": [
          {
            "name": "mousePreviousPoint",
            "type": "System.Drawing.Point",
            "summary": "The mouse previous point."
          },
          {
            "name": "mouseCurrentPoint",
            "type": "System.Drawing.Point",
            "summary": "The mouse current point."
          }
        ]
      },
      {
        "signature": "System.Boolean NextConstructionPlane()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Sets the construction plane to the plane that was active before the last call to PreviousConstructionPlane.",
        "since": "5.0",
        "returns": "True if successful."
      },
      {
        "signature": "System.Boolean NextViewProjection()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Sets the view projection and target to the settings that were active before the last call to PrevView.",
        "since": "5.0",
        "returns": "True if the view stack was popped."
      },
      {
        "signature": "System.Boolean PopConstructionPlane()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Sets the construction plane to the plane that was active before the last call to PushConstructionPlane.",
        "since": "5.0",
        "returns": "True if a construction plane was popped."
      },
      {
        "signature": "System.Boolean PopViewProjection()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Sets the view projection and target to the settings at the top of the view stack and removes those settings from the view stack.",
        "since": "5.0",
        "returns": "True if there were settings that could be popped from the stack."
      },
      {
        "signature": "System.Boolean PreviousConstructionPlane()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Sets the construction plane to the plane that was active before the last call to NextConstructionPlane or SetConstructionPlane.",
        "since": "5.0",
        "returns": "True if successful."
      },
      {
        "signature": "System.Boolean PreviousViewProjection()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Sets the view projection and target to the settings that were active before the last call to NextViewProjection.",
        "since": "5.0",
        "returns": "True if the view stack was popped."
      },
      {
        "signature": "System.Void PushConstructionPlane(DocObjects.ConstructionPlane cplane)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Pushes the current construction plane on the viewport's construction plane stack and sets the construction plane to cplane.",
        "since": "5.0",
        "parameters": [
          {
            "name": "cplane",
            "type": "DocObjects.ConstructionPlane",
            "summary": "The construction plane to push."
          }
        ]
      },
      {
        "signature": "System.Boolean PushViewInfo(DocObjects.ViewInfo viewinfo, System.Boolean includeTraceImage)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "System.Void PushViewProjection()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Appends the current view projection and target to the viewport's view stack.",
        "since": "5.0"
      },
      {
        "signature": "System.Boolean Rotate(System.Double angleRadians, Vector3d rotationAxis, Point3d rotationCenter)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Rotates about the specified axis. A positive rotation angle results in a counter-clockwise rotation about the axis (right hand rule).",
        "since": "5.0",
        "parameters": [
          {
            "name": "angleRadians",
            "type": "System.Double",
            "summary": "angle of rotation in radians."
          },
          {
            "name": "rotationAxis",
            "type": "Vector3d",
            "summary": "direction of the axis of rotation."
          },
          {
            "name": "rotationCenter",
            "type": "Point3d",
            "summary": "point on the axis of rotation."
          }
        ],
        "returns": "True if geometry successfully rotated."
      },
      {
        "signature": "System.Drawing.Point ScreenToClient(System.Drawing.Point screenPoint)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "System.Void SetCameraDirection(Vector3d cameraDirection, System.Boolean updateTargetLocation)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Set viewport camera direction. By default the target location is changed so that the vector from the camera location to the target is parallel to the camera direction.",
        "since": "5.0",
        "parameters": [
          {
            "name": "cameraDirection",
            "type": "Vector3d",
            "summary": "new camera direction."
          },
          {
            "name": "updateTargetLocation",
            "type": "System.Boolean",
            "summary": "if true, the target location is changed so that the vector from the camera location to the target is parallel to the camera direction. If false, the target location is not changed. See the remarks section of RhinoViewport.SetTarget for important details."
          }
        ]
      },
      {
        "signature": "System.Void SetCameraLocation(Point3d cameraLocation, System.Boolean updateTargetLocation)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Set viewport camera location. By default the target location is changed so that the vector from the camera location to the target is parallel to the camera direction vector.",
        "since": "5.0",
        "parameters": [
          {
            "name": "cameraLocation",
            "type": "Point3d",
            "summary": "new camera location."
          },
          {
            "name": "updateTargetLocation",
            "type": "System.Boolean",
            "summary": "if true, the target location is changed so that the vector from the camera location to the target is parallel to the camera direction vector. If false, the target location is not changed. See the remarks section of RhinoViewport.SetTarget for important details."
          }
        ]
      },
      {
        "signature": "System.Void SetCameraLocations(Point3d targetLocation, Point3d cameraLocation)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Set viewport camera location and target location. The camera direction vector is changed so that it is parallel to the vector from the camera location to the target location.",
        "since": "5.0",
        "parameters": [
          {
            "name": "targetLocation",
            "type": "Point3d",
            "summary": "new target location."
          },
          {
            "name": "cameraLocation",
            "type": "Point3d",
            "summary": "new camera location."
          }
        ]
      },
      {
        "signature": "System.Void SetCameraTarget(Point3d targetLocation, System.Boolean updateCameraLocation)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Set viewport target point. By default the camera location is translated so that the camera direction vector is parallel to the vector from the camera location to the target location.",
        "since": "5.0",
    "remarks": "In general, Rhino users expect to have the camera direction vector and the vector from the camera location to the target location to be parallel. If you use the RhinoViewport functions to set the camera location, camera direction, and target point, then the relationship between these three points and vectors is automatically maintained.  If you directly manipulate the camera properties, then you should carefully set the target by calling SetTarget() with updateCameraLocation=false.",
        "parameters": [
          {
            "name": "targetLocation",
            "type": "Point3d",
            "summary": "new target location."
          },
          {
            "name": "updateCameraLocation",
            "type": "System.Boolean",
            "summary": "if true, the camera location is translated so that the camera direction vector is parallel to the vector from the camera location to the target location. If false, the camera location is not changed."
          }
        ]
      },
      {
        "signature": "System.Void SetClippingPlanes(BoundingBox box)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Sets optimal clipping planes to view objects in a world coordinate 3d bounding box.",
        "since": "5.0",
        "parameters": [
          {
            "name": "box",
            "type": "BoundingBox",
            "summary": "The bounding box"
          }
        ]
      },
      {
        "signature": "System.Void SetConstructionPlane(DocObjects.ConstructionPlane cplane)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Sets the construction plane to cplane.",
        "since": "5.0",
        "parameters": [
          {
            "name": "cplane",
            "type": "DocObjects.ConstructionPlane",
            "summary": "The construction plane to set."
          }
        ]
      },
      {
        "signature": "System.Void SetConstructionPlane(Plane plane)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "System.Boolean SetProjection(DefinedViewportProjection projection, System.String viewName, System.Boolean updateConstructionPlane)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Set viewport to a defined projection.",
        "since": "5.0",
        "parameters": [
          {
            "name": "projection",
            "type": "DefinedViewportProjection",
            "summary": "The \"standard\" projection type."
          },
          {
            "name": "viewName",
            "type": "System.String",
            "summary": "If not None or empty, the name is set."
          },
          {
            "name": "updateConstructionPlane",
            "type": "System.Boolean",
            "summary": "If true, the construction plane is set to the viewport plane."
          }
        ],
        "returns": "True if successful."
      },
      {
        "signature": "System.Boolean SetProjection(IsometricCamera projection, System.String viewName, System.Boolean updateConstructionPlane)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Set viewport to a defined projection.",
        "since": "9.0",
        "parameters": [
          {
            "name": "projection",
            "type": "IsometricCamera",
            "summary": "The \"isometric\" projection type."
          },
          {
            "name": "viewName",
            "type": "System.String",
            "summary": "If not None or empty, the name is set."
          },
          {
            "name": "updateConstructionPlane",
            "type": "System.Boolean",
            "summary": "If true, the construction plane is set to the viewport plane."
          }
        ],
        "returns": "True if successful."
      },
      {
        "signature": "System.Boolean SetScreenPort(System.Int32 portLeft, System.Int32 portRight, System.Int32 portBottom, System.Int32 portTop, System.Int32 portNear, System.Int32 portFar)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Location of viewport in pixels.  These are provided so you can set the port you are using and get the appropriate transformations to and from screen space.",
        "since": "9.0",
        "parameters": [
          {
            "name": "portLeft",
            "type": "System.Int32",
            "summary": "portLeft != portRight."
          },
          {
            "name": "portRight",
            "type": "System.Int32",
            "summary": "portLeft != portRight."
          },
          {
            "name": "portBottom",
            "type": "System.Int32",
            "summary": "portTop != portBottom."
          },
          {
            "name": "portTop",
            "type": "System.Int32",
            "summary": "portTop != portBottom."
          },
          {
            "name": "portNear",
            "type": "System.Int32",
            "summary": "The viewport near value."
          },
          {
            "name": "portFar",
            "type": "System.Int32",
            "summary": "The viewport far value."
          }
        ],
        "returns": "True if the operation is successful."
      },
      {
        "signature": "System.Boolean SetToPlanView(Point3d planeOrigin, Vector3d planeXaxis, Vector3d planeYaxis, System.Boolean setConstructionPlane)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "System.Boolean SetTraceImage(System.String bitmapFileName, Plane plane, System.Double width, System.Double height, System.Boolean grayscale, System.Boolean filtered)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Set trace image (background bitmap) for this viewport.",
        "since": "5.0",
        "parameters": [
          {
            "name": "bitmapFileName",
            "type": "System.String",
            "summary": "The bitmap file name."
          },
          {
            "name": "plane",
            "type": "Plane",
            "summary": "A picture plane."
          },
          {
            "name": "width",
            "type": "System.Double",
            "summary": "The picture width."
          },
          {
            "name": "height",
            "type": "System.Double",
            "summary": "The picture height."
          },
          {
            "name": "grayscale",
            "type": "System.Boolean",
            "summary": "True if the picture should be in grayscale."
          },
          {
            "name": "filtered",
            "type": "System.Boolean",
            "summary": "True if image should be filtered (bilinear) before displayed."
          }
        ],
        "returns": "True if successful."
      },
      {
        "signature": "System.Boolean SetUserString(System.String key, System.String value)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Attach a user string (key,value combination) to this geometry.",
        "since": "6.18",
        "parameters": [
          {
            "name": "key",
            "type": "System.String",
            "summary": "id used to retrieve this string."
          },
          {
            "name": "value",
            "type": "System.String",
            "summary": "string associated with key. If null, the key will be removed"
          }
        ],
        "returns": "True on success."
      },
      {
        "signature": "System.Boolean SetUserStrings(IEnumerable<KeyValuePair<string, string>> items, System.Boolean replace)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Attach a user string (key,value combination) to this viewport.",
        "since": "8.18",
        "parameters": [
          {
            "name": "items",
            "type": "System.Collections.Generic.IEnumerable<System.Collections.Generic.KeyValuePair<string, string>>",
            "summary": "collection of key-value pairs to set."
          },
          {
            "name": "replace",
            "type": "System.Boolean",
            "summary": "If True, the previous user string will be removed"
          }
        ],
        "returns": "True on success."
      },
      {
        "signature": "System.Boolean SetViewProjection(DocObjects.ViewportInfo projection, System.Boolean updateTargetLocation)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Sets the viewport camera projection.",
        "since": "5.0",
        "parameters": [
          {
            "name": "projection",
            "type": "DocObjects.ViewportInfo",
            "summary": "The \"standard\" projection type."
          },
          {
            "name": "updateTargetLocation",
            "type": "System.Boolean",
            "summary": "if true, the target location is changed so that the vector from the camera location to the target is parallel to the camera direction vector.  If false, the target location is not changed."
          }
        ],
        "returns": "True on success."
      },
      {
        "signature": "System.Boolean SetWallpaper(System.String imageFilename, System.Boolean grayscale, System.Boolean visible)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "System.Boolean SetWallpaper(System.String imageFilename, System.Boolean grayscale)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "Point2d WorldToClient(Point3d worldPoint)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Convert a point from world coordinates in the viewport to a 2d screen point in the local coordinates of the viewport (X/Y of point is relative to top left corner of viewport on screen)",
        "since": "5.0",
        "parameters": [
          {
            "name": "worldPoint",
            "type": "Point3d",
            "summary": "The 3D point in world coordinates."
          }
        ],
        "returns": "The 2D point on the screen."
      },
      {
        "signature": "System.Boolean ZoomBoundingBox(BoundingBox box)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Zooms the viewport to the given bounding box.",
        "since": "5.0",
        "parameters": [
          {
            "name": "box",
            "type": "BoundingBox",
            "summary": "The bounding box to zoom."
          }
        ],
        "returns": "True if operation succeeded; otherwise false."
      },
      {
        "signature": "System.Boolean ZoomExtents()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Dollies the camera location and so that the view frustum contains all of the selected document objects that can be seen in view. If the projection is perspective, the camera angle is not changed.",
        "since": "5.0",
        "returns": "True if successful."
      },
      {
        "signature": "System.Boolean ZoomExtentsSelected()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Dollies the camera location and so that the view frustum contains all of the selected document objects that can be seen in view. If the projection is perspective, the camera angle is not changed.",
        "since": "5.0",
        "returns": "True if successful."
      },
      {
        "signature": "System.Boolean ZoomWindow(Rectangle rect)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Zooms the viewport to the given rectangle.",
        "since": "7.33",
        "parameters": [
          {
            "name": "rect",
            "type": "Rectangle",
            "summary": "A 2d screen rectangle in client coordinates of the parent Rhino view, where 0,0 is the upper left corner of the view window."
          }
        ],
        "returns": "True if operation succeeded; otherwise false."
      }
    ]
  },
  {
    "namespace": "Rhino.Display",
    "name": "ShaderLanguage",
    "dataType": "enum",
    "summary": "Graphics Shader Language https://en.wikipedia.org/wiki/OpenGL_Shading_Language#Versions",
    "values": [
      {
        "signature": "GLSL_ES100 = 1",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Used for OpenGL ES 2.0 and WebGL 1.0"
      },
      {
        "signature": "GLSL_ES300 = 2",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Used for OpenGL ES 3.0 and WebGL 2.0"
      },
      {
        "signature": "GLSL_ES310 = 3",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "GLSL_120 = 4",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Used for OpenGL 2.1"
      },
      {
        "signature": "GLSL_130 = 5",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Used for OpenGL 3.0"
      },
      {
        "signature": "GLSL_140 = 6",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Used for OpenGL 3.1"
      },
      {
        "signature": "GLSL_150 = 7",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Used for OpenGL 3.2"
      },
      {
        "signature": "GLSL_330 = 8",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Used for OpenGL 3.3"
      },
      {
        "signature": "GLSL_400 = 9",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Used for OpenGL 4.0"
      },
      {
        "signature": "GLSL_410 = 10",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Used for OpenGL 4.1"
      },
      {
        "signature": "GLSL_420 = 11",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Used for OpenGL 4.2"
      },
      {
        "signature": "GLSL_430 = 12",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Used for OpenGL 4.3"
      },
      {
        "signature": "GLSL_440 = 13",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Used for OpenGL 4.4"
      },
      {
        "signature": "Metal = 14",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Metal for Apple"
      }
    ]

  },
  {
    "namespace": "Rhino.Display",
    "name": "StereoContext",
    "dataType": "enum",
    "since": "7.0",
    "values": [
      {
        "signature": "None = 0",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "LeftEye = 1",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "RightEye = 2",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "BothEyes = 3",
        "modifiers": [],
        "protected": false,
        "virtual": false
      }
    ]

  },
  {
    "namespace": "Rhino.Display",
    "name": "Text3d",
    "dataType": "class",
    "summary": "3D aligned text with font settings.",
    "interfaces": ["IDisposable"],
    "constructors": [
      {
        "signature": "Text3d(string text, Plane plane, double height)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Constructs a new instance of Text3d.",
        "since": "5.0",
        "parameters": [
          {
            "name": "text",
            "type": "System.String",
            "summary": "Text string."
          },
          {
            "name": "plane",
            "type": "Plane",
            "summary": "3D Plane for text."
          },
          {
            "name": "height",
            "type": "System.Double",
            "summary": "Height (in units) for text."
          }
        ]
      },
      {
        "signature": "Text3d(string text)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Constructs a new instance of Text3d.",
        "since": "5.0",
        "parameters": [
          {
            "name": "text",
            "type": "System.String",
            "summary": "Text string."
          }
        ]
      }
    ],
    "properties": [
      {
        "signature": "bool Bold",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets whether this Text3d object will be drawn in Bold.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "BoundingBox BoundingBox",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the bounding box for this Text3d object.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "string FontFace",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the FontFace name.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "double Height",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the height (in units) of this Text3d object. The height should be a positive number larger than zero.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "TextHorizontalAlignment HorizontalAlignment",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Horizontal alignment that this Text3d is drawn with",
        "since": "6.4",
        "property": ["get", "set"]
      },
      {
        "signature": "bool Italic",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets whether this Text3d object will be drawn in Italics.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "string Text",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the text string for this Text3d object.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "Plane TextPlane",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the 3D aligned plane for this Text3d object.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "TextVerticalAlignment VerticalAlignment",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Vertical alignment that this Text3d is drawn with",
        "since": "6.4",
        "property": ["get", "set"]
      }
    ],
    "methods": [
      {
        "signature": "System.Void Dispose()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Actively reclaims unmanaged resources that this instance uses.",
        "since": "5.0"
      }
    ]
  },
  {
    "namespace": "Rhino.Display",
    "name": "ViewCapture",
    "dataType": "class",
    "constructors": [
      {
        "signature": "ViewCapture()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0"
      }
    ],
    "properties": [
      {
        "signature": "bool DrawAxes",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool DrawGrid",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool DrawGridAxes",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "int Height",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Height of capture in Pixels",
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool Preview",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "int RealtimeRenderPasses",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool ScaleScreenItems",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool TransparentBackground",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "int Width",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Width of capture in Pixels",
        "since": "6.0",
        "property": ["get", "set"]
      }
    ],
    "methods": [
      {
        "signature": "Bitmap CaptureToBitmap(ViewCaptureSettings settings)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "6.0"
      },
      {
        "signature": "System.Xml.XmlDocument CaptureToSvg(ViewCaptureSettings settings)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "6.0"
      },
      {
        "signature": "System.Boolean SendToPrinter(System.String printerName, ViewCaptureSettings[] settings, System.Int32 copies)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Send a list of view capture settings to a printer. Each setting represents a single page.",
        "since": "8.0",
        "parameters": [
          {
            "name": "printerName",
            "type": "System.String",
            "summary": ""
          },
          {
            "name": "settings",
            "type": "ViewCaptureSettings[]",
            "summary": ""
          },
          {
            "name": "copies",
            "type": "System.Int32",
            "summary": "number of copies to print"
          }
        ],
        "returns": "True on success"
      },
      {
        "signature": "System.Boolean SendToPrinter(System.String printerName, ViewCaptureSettings[] settings)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Send a list of view capture settings to a printer. Each setting represents a single page.",
        "since": "8.0",
        "returns": "True on success"
      },
      {
        "signature": "Bitmap CaptureToBitmap(RhinoView sourceView)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0"
      }
    ]
  },
  {
    "namespace": "Rhino.Display",
    "name": "ViewCaptureSettings",
    "dataType": "class",
    "summary": "Holds information required to generate high resolution output of a RhinoViewport. This is used for generating paper prints or image files",
    "interfaces": ["IDisposable"],
    "constructors": [
      {
        "signature": "ViewCaptureSettings()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Construct default view capture settings",
        "since": "6.0"
      },
      {
        "signature": "ViewCaptureSettings(RhinoPageView sourcePageView, double dpi)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Constructor",
        "since": "6.0",
        "parameters": [
          {
            "name": "sourcePageView",
            "type": "RhinoPageView",
            "summary": "The Rhino page view to capture or print."
          },
          {
            "name": "dpi",
            "type": "System.Double",
            "summary": "Capture \"density\" in dots per inch."
          }
        ]
      },
      {
        "signature": "ViewCaptureSettings(RhinoView sourceView, Size mediaSize, double dpi)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Constructor",
        "since": "6.0",
        "parameters": [
          {
            "name": "sourceView",
            "type": "RhinoView",
            "summary": "The Rhino view to capture or print."
          },
          {
            "name": "mediaSize",
            "type": "Size",
            "summary": "The size of the output media."
          },
          {
            "name": "dpi",
            "type": "System.Double",
            "summary": "Capture \"density\" in dots per inch."
          }
        ]
      },
      {
        "signature": "ViewCaptureSettings(ViewCaptureSettings other)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Copy constructor",
        "since": "8.5",
        "parameters": [
          {
            "name": "other",
            "type": "ViewCaptureSettings",
            "summary": "settings to copy data from"
          }
        ]
      }
    ],
    "properties": [
      {
        "signature": "bool ApplyDisplayModeThicknessScales",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Should curves and edges have their thicknesses scaled based the on the display mode settings for a view being captured (default is false)",
        "since": "8.5",
        "property": ["get", "set"]
      },
      {
        "signature": "double ArrowheadSizeMillimeters",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Arrowhead size in millimeters.",
        "since": "6.15",
        "property": ["get", "set"]
      },
      {
        "signature": "Rectangle CropRectangle",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Actual area of output rectangle that view capture is sent to.",
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "double DefaultPrintWidthMillimeters",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Line thickness, in millimeters, used to print objects with no defined thickness.",
        "since": "6.15",
        "property": ["get", "set"]
      },
      {
        "signature": "RhinoDoc Document",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.15",
        "property": ["get", "set"]
      },
      {
        "signature": "bool DrawAxis",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool DrawBackground",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool DrawBackgroundBitmap",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.2",
        "property": ["get", "set"]
      },
      {
        "signature": "bool DrawClippingPlanes",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool DrawGrid",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool DrawLights",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool DrawLockedObjects",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool DrawMargins",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "Rectangle DrawRectangle",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Rectangle where drawing is confined to on MediaSize",
        "since": "8.5",
        "property": ["get"]
      },
      {
        "signature": "bool DrawSelectedObjectsOnly",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool DrawWallpaper",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.2",
        "property": ["get", "set"]
      },
      {
        "signature": "string FooterText",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Text drawn at the bottom of the output",
        "since": "7.6",
        "property": ["get", "set"]
      },
      {
        "signature": "string HeaderText",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Text drawn at the top of the output",
        "since": "7.6",
        "property": ["get", "set"]
      },
      {
        "signature": "double HorizontalScale",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Horizontal stretch to be applied to output. Useful for calibrating printers",
        "since": "8.4",
        "property": ["get", "set"]
      },
      {
        "signature": "bool IsScaleToFit",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns True if the model has been scaled to fit.",
        "since": "6.21",
        "property": ["get"]
      },
      {
        "signature": "bool IsValid",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "bool LinetypeWidthUnitsArePageLengths",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool MatchLinetypePatternDefinition",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Default is true. Linetype scales are normally generated right before printing/view capture in order to get linetypes to print to the same lengths as defined. If false, the linetypes are not scaled and the current pattern lengths as seen on the screen as used.",
        "since": "7.6",
        "property": ["get", "set"]
      },
      {
        "signature": "Size MediaSize",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Total size of the image or page in dots",
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "int ModelScaleType",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.21",
        "property": ["get", "set"]
      },
      {
        "signature": "AnchorLocation OffsetAnchor",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.2",
        "property": ["get", "set"]
      },
      {
        "signature": "ColorMode OutputColor",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.8",
        "property": ["get", "set"]
      },
      {
        "signature": "double PointSizeMillimeters",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Size of point objects in millimeters. if scale <= 0 the size is minimized so points are always drawn as small as possible",
        "since": "6.15",
        "property": ["get", "set"]
      },
      {
        "signature": "bool RasterMode",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.17",
        "property": ["get", "set"]
      },
      {
        "signature": "double Resolution",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Capture \"density\" in dots per inch.",
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "double TextDotPointSize",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Font point size use for printing text dots. The default value is 10.0. This has morphed into a scale setting as individual text dots have their own sizes. A value of 20 will print dots at double of their size setting while a value of 10 will print with no scaling applied.",
        "since": "7.27",
        "property": ["get", "set"]
      },
      {
        "signature": "bool UsePrintWidths",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.15",
        "property": ["get", "set"]
      },
      {
        "signature": "double VerticalScale",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Vertical stretch to be applied to output. Useful for calibrating printers",
        "since": "8.4",
        "property": ["get", "set"]
      },
      {
        "signature": "ViewAreaMapping ViewArea",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "How the RhinoViewport is mapped to the output rectangle",
        "since": "7.7",
        "property": ["get", "set"]
      },
      {
        "signature": "double WireThicknessScale",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Scaling factor to apply to object print widths (typically 1.0). This is helpful when printing something at 1/2 scale and having all of the curves print 1/2 as thick.",
        "since": "6.15",
        "property": ["get", "set"]
      }
    ],
    "methods": [
      {
        "signature": "ViewCaptureSettings CreatePreviewSettings(System.Drawing.Size size)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Create a ViewCaptureSettings based on this instance, but scaled to fit in a different sized area. Scaling is also performed on dpi. This is primarily used to for capturing images that are shown as print previews",
        "since": "7.9",
        "returns": "new ViewCaptureSettings instance on success. Null on failure"
      },
      {
        "signature": "System.Void Dispose()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Actively reclaims unmanaged resources that this instance uses.",
        "since": "6.0"
      },
      {
        "signature": "System.Boolean Equals(ViewCaptureSettings other)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Check if the contents of this object is the same as another object",
        "since": "8.5",
        "parameters": [
          {
            "name": "other",
            "type": "ViewCaptureSettings",
            "summary": "other settings to compare against"
          }
        ]
      },
      {
        "signature": "System.Boolean GetMargins(UnitSystem lengthUnits, out System.Double left, out System.Double top, out System.Double right, out System.Double bottom)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Get distances from the edge of the paper (MediaSize) to the CropRectangle in a defined unit system",
        "since": "6.2",
        "parameters": [
          {
            "name": "lengthUnits",
            "type": "UnitSystem",
            "summary": "Units to get distances in"
          },
          {
            "name": "left",
            "type": "System.Double",
            "summary": "Distance from left edge of paper to left edge of CropRectangle"
          },
          {
            "name": "top",
            "type": "System.Double",
            "summary": "Distance from top edge of paper to top edge of CropRectangle"
          },
          {
            "name": "right",
            "type": "System.Double",
            "summary": "Distance from right edge of paper to right edge of CropRectangle"
          },
          {
            "name": "bottom",
            "type": "System.Double",
            "summary": "Distance from bottom edge of paper to bottom edge of CropRectangle"
          }
        ],
        "returns": "True if successful. False if unsuccessful (this could happen if there is no set device_dpi)"
      },
      {
        "signature": "System.Double GetModelScale(UnitSystem pageUnits, UnitSystem modelUnits)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns the model scale factor.",
        "since": "6.21",
        "parameters": [
          {
            "name": "pageUnits",
            "type": "UnitSystem",
            "summary": "The current page units."
          },
          {
            "name": "modelUnits",
            "type": "UnitSystem",
            "summary": "The current model units."
          }
        ],
        "returns": "The model scale factor."
      },
      {
        "signature": "System.Void GetOffset(UnitSystem lengthUnits, out System.Boolean fromMargin, out System.Double x, out System.Double y)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.2"
      },
      {
        "signature": "RhinoViewport GetViewport()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Get RhinoViewport that this view capture settings is targeting",
        "since": "8.0"
      },
      {
        "signature": "System.Boolean Load(System.String name, PersistentSettings settings)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "8.1"
      },
      {
        "signature": "System.Boolean MatchViewportAspectRatio()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Adjust crop rectangle to match the aspect ratio of the original viewport that these settings reference",
        "since": "7.9",
        "returns": "True on success"
      },
      {
        "signature": "System.Void MaximizePrintableArea()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Minimize cropping so the full drawable area is used",
        "since": "7.9"
      },
      {
        "signature": "System.Void Save(System.String name, PersistentSettings settings)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "8.1"
      },
      {
        "signature": "System.Void SetLayout(Size mediaSize, Rectangle cropRectangle)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0"
      },
      {
        "signature": "System.Boolean SetMarginBottom(UnitSystem lengthUnits, System.Double distance)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Set the distance from the bottom edge of the paper to the CropRectangle",
        "since": "8.5",
        "parameters": [
          {
            "name": "lengthUnits",
            "type": "UnitSystem",
            "summary": "units that distance is defined in"
          },
          {
            "name": "distance",
            "type": "System.Double",
            "summary": "distance to set"
          }
        ],
        "returns": "True if successful. False if unsuccessful (this could happen if there is no set device_dpi)"
      },
      {
        "signature": "System.Boolean SetMarginLeft(UnitSystem lengthUnits, System.Double distance)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Set the distance from the left edge of the paper to the CropRectangle",
        "since": "8.5",
        "parameters": [
          {
            "name": "lengthUnits",
            "type": "UnitSystem",
            "summary": "units that distance is defined in"
          },
          {
            "name": "distance",
            "type": "System.Double",
            "summary": "distance to set"
          }
        ],
        "returns": "True if successful. False if unsuccessful (this could happen if there is no set device_dpi)"
      },
      {
        "signature": "System.Boolean SetMarginRight(UnitSystem lengthUnits, System.Double distance)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Set the distance from the right edge of the paper to the CropRectangle",
        "since": "8.5",
        "parameters": [
          {
            "name": "lengthUnits",
            "type": "UnitSystem",
            "summary": "units that distance is defined in"
          },
          {
            "name": "distance",
            "type": "System.Double",
            "summary": "distance to set"
          }
        ],
        "returns": "True if successful. False if unsuccessful (this could happen if there is no set device_dpi)"
      },
      {
        "signature": "System.Boolean SetMargins(UnitSystem lengthUnits, System.Double left, System.Double top, System.Double right, System.Double bottom)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Set distances from the edge of the paper (MediaSize) to the CropRectange in a defined unit system",
        "since": "6.2",
        "parameters": [
          {
            "name": "lengthUnits",
            "type": "UnitSystem",
            "summary": "Units that left, top, right, and bottom are defined in"
          },
          {
            "name": "left",
            "type": "System.Double",
            "summary": "Distance from left edge of paper to left edge of CropRectangle"
          },
          {
            "name": "top",
            "type": "System.Double",
            "summary": "Distance from top edge of paper to top edge of CropRectangle"
          },
          {
            "name": "right",
            "type": "System.Double",
            "summary": "Distance from right edge of paper to right edge of CropRectangle"
          },
          {
            "name": "bottom",
            "type": "System.Double",
            "summary": "Distance from bottom edge of paper to bottom edge of CropRectangle"
          }
        ],
        "returns": "True if successful. False if unsuccessful (this could happen if there is no set device_dpi)"
      },
      {
        "signature": "System.Boolean SetMarginTop(UnitSystem lengthUnits, System.Double distance)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Set the distance from the top edge of the paper to the CropRectangle",
        "since": "8.5",
        "parameters": [
          {
            "name": "lengthUnits",
            "type": "UnitSystem",
            "summary": "units that distance is defined in"
          },
          {
            "name": "distance",
            "type": "System.Double",
            "summary": "distance to set"
          }
        ],
        "returns": "True if successful. False if unsuccessful (this could happen if there is no set device_dpi)"
      },
      {
        "signature": "System.Void SetModelScaleToFit(System.Boolean promptOnChange)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Scales the model to fit.",
        "since": "6.21",
        "parameters": [
          {
            "name": "promptOnChange",
            "type": "System.Boolean",
            "summary": "Prompt the user if the model scale will change."
          }
        ]
      },
      {
        "signature": "System.Void SetModelScaleToValue(System.Double scale)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Sets the model scale to a value.",
        "since": "6.21",
        "parameters": [
          {
            "name": "scale",
            "type": "System.Double",
            "summary": "The scale value."
          }
        ]
      },
      {
        "signature": "System.Void SetOffset(UnitSystem lengthUnits, System.Boolean fromMargin, System.Double x, System.Double y)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.2"
      },
      {
        "signature": "System.Void SetViewport(RhinoViewport viewport)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.15"
      },
      {
        "signature": "System.Void SetWindowRect(Point2d screenPoint1, Point2d screenPoint2)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Set the print area to a window selection based on two points in screen coordinates",
        "since": "7.4",
        "parameters": [
          {
            "name": "screenPoint1",
            "type": "Point2d",
            "summary": "first point; it doesn't matter what corner of the rectangle this point represents"
          },
          {
            "name": "screenPoint2",
            "type": "Point2d",
            "summary": "point representing opposite corner of rectangle from screenPoint1"
          }
        ]
      },
      {
        "signature": "System.Void SetWindowRect(Point3d worldPoint1, Point3d worldPoint2)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Set the print area to a window selection based on two points in world coordinates",
        "since": "7.4",
        "parameters": [
          {
            "name": "worldPoint1",
            "type": "Point3d",
            "summary": "First point in world coordinates. This point is projected to screen coordinates"
          },
          {
            "name": "worldPoint2",
            "type": "Point3d",
            "summary": "Second point in world coordinates. This point is projected to screen coordinates"
          }
        ]
      }
    ]
  },
  {
    "namespace": "Rhino.Display",
    "name": "ViewCaptureSettings.AnchorLocation",
    "dataType": "enum",
    "since": "6.2",
    "values": [
      {
        "signature": "LowerLeft = UnsafeNativeMethods.PrintInfoAnchor.LowerLeft",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "LowerRight = UnsafeNativeMethods.PrintInfoAnchor.LowerRight",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "UpperLeft = UnsafeNativeMethods.PrintInfoAnchor.UpperLeft",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "UpperRight = UnsafeNativeMethods.PrintInfoAnchor.UpperRight",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Center = UnsafeNativeMethods.PrintInfoAnchor.Center",
        "modifiers": [],
        "protected": false,
        "virtual": false
      }
    ]

  },
  {
    "namespace": "Rhino.Display",
    "name": "ViewCaptureSettings.ColorMode",
    "dataType": "enum",
    "since": "6.8",
    "values": [
      {
        "signature": "DisplayColor",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "PrintColor",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "BlackAndWhite",
        "modifiers": [],
        "protected": false,
        "virtual": false
      }
    ]

  },
  {
    "namespace": "Rhino.Display",
    "name": "ViewCaptureSettings.ViewAreaMapping",
    "dataType": "enum",
    "summary": "Defines how a viewport is mapped to output.",
    "values": [
      {
        "signature": "View = 0",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Best fit rectangle of what is displayed in a viewport"
      },
      {
        "signature": "Extents = 1",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Zoom projection to all visible geometry in a viewport"
      },
      {
        "signature": "Window = 2",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Use window rectangle defined by user"
      }
    ]

  },
  {
    "namespace": "Rhino.Display",
    "name": "ViewEnableDrawingEventArgs",
    "dataType": "class",
    "summary": "View enable drawing event argument.",
    "baseclass": "EventArgs",
    "since": "8.15",
    "properties": [
      {
        "signature": "RhinoDoc Document",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the Rhino document.",
        "since": "8.15",
        "property": ["get"]
      },
      {
        "signature": "uint DocumentSerialNumber",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "The serial number of the Rhino document.",
        "since": "8.15",
        "property": ["get", "set"]
      },
      {
        "signature": "bool DrawingEnabled",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "True if drawing is enabled, False otherwise.",
        "since": "8.15",
        "property": ["get", "set"]
      }
    ]
  },
  {
    "namespace": "Rhino.Display",
    "name": "ViewEventArgs",
    "dataType": "class",
    "summary": "View event arguments.",
    "baseclass": "EventArgs",
    "since": "5.0",
    "properties": [
      {
        "signature": "RhinoView View",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0",
        "property": ["get"]
      }
    ]
  },
  {
    "namespace": "Rhino.Display",
    "name": "ViewportType",
    "dataType": "enum",
    "since": "5.0",
    "values": [
      {
        "signature": "StandardModelingViewport = 0",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "PageViewMainViewport = 1",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "DetailViewport = 2",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "UVEditorViewport = 3",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "BlockEditorViewport = 4",
        "modifiers": [],
        "protected": false,
        "virtual": false
      }
    ]

  },
  {
    "namespace": "Rhino.Display",
    "name": "ViewTypeFilter",
    "dataType": "enum",
    "summary": "Filter for view types to list",
    "values": [
      {
        "signature": "None = 0",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "No views"
      },
      {
        "signature": "Model = 1",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Standard Rhino model views"
      },
      {
        "signature": "Page = 2",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Page views"
      },
      {
        "signature": "ModelStyleViews = 0xFFFFFFF ^ 2",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "All view styles except Page."
      },
      {
        "signature": "UVEditor = 4",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "UV Editor views"
      },
      {
        "signature": "BlockEditor = 8",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Block Editor views"
      },
      {
        "signature": "All = 0xFFFFFFF",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "All views"
      }
    ]

  },
  {
    "namespace": "Rhino.Display",
    "name": "VisualAnalysisMode",
    "dataType": "class",
    "summary": "Represents a base class for visual analysis modes.  \nThis class is abstract.",
    "constructors": [
      {
        "signature": "VisualAnalysisMode()",
        "summary": "Initializes a new instance of the VisualAnalysisMode class"
      }
    ],
    "properties": [
      {
        "signature": "Guid RhinoCurvatureColorAnalyisModeId",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Id for Rhino's built-in curvature color analysis mode.  Surface curvature is shown using False color mapping.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "Guid RhinoCurvatureGraphAnalysisModeId",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Id for Rhino's built-in curvature graphs analysis mode. Curvature hair is shown on curves and surfaces.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "Guid RhinoDirectionAnalysisModeId",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Id for Rhino's built-in direction analysis mode.",
        "since": "9.0",
        "property": ["get"]
      },
      {
        "signature": "Guid RhinoDraftAngleAnalysisModeId",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Id for Rhino's built-in draft angle analysis mode.  Draft angle is displayed using False colors.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "Guid RhinoEdgeAnalysisModeId",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Id for Rhino's built-in edge analysis mode. Brep and mesh edges are shown in a selected color.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "Guid RhinoEdgeContinuityAlalysisModeId",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Id for Rhino's built-in edge continuity analysis mode.",
        "since": "7.0",
        "property": ["get"]
      },
      {
        "signature": "Guid RhinoEmapAnalysisModeId",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Id for Rhino's built-in emap analysis mode.  An environment map is shown on surfaces and meshes.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "Guid RhinoEndAnalysisModeId",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Id for Rhino's built-in End analysis mode.",
        "since": "9.0",
        "property": ["get"]
      },
      {
        "signature": "Guid RhinoThicknessAnalysisModeId",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Id for Rhino's built-in thickness analysis mode.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "Guid RhinoZebraStripeAnalysisModeId",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Id for Rhino's built-in zebra stripe analysis mode. Zebra stripes are shown on surfaces and meshes.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "Guid Id",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the visual analysis mode GUID. The Guid is specified with the <b>System.Runtime.InteropServices.GuidAttribute</b>  applied to the class.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "string Name",
        "modifiers": ["public", "abstract"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the name of the analysis mode. It is used by the _What command and the object properties details window to describe the object.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "bool ShowIsoCurves",
        "modifiers": ["public", "virtual"],
        "protected": false,
        "virtual": true,
        "summary": "Gets True if this visual analysis mode will show isocuves on shaded surface objects.  Often a mode's user interface will provide a way to change this setting.  \nThe default is false.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "AnalysisStyle Style",
        "modifiers": ["public", "abstract"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the visual analysis mode style.",
        "since": "5.0",
        "property": ["get"]
      }
    ],
    "methods": [
      {
        "signature": "System.Boolean AdjustAnalysisMeshes(RhinoDoc doc, System.Guid analysisModeId)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Interactively adjusts surface analysis meshes of objects using a Rhino built-in analysis mode.",
        "since": "7.0",
        "parameters": [
          {
            "name": "doc",
            "type": "RhinoDoc",
            "summary": "The Rhino document."
          },
          {
            "name": "analysisModeId",
            "type": "System.Guid",
            "summary": "The id of the analysis mode."
          }
        ],
        "returns": "True if successful, False otherwise."
      },
      {
        "signature": "System.Void CurvatureColorAutoRange()",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Adjusts the auto range values for curvature analysis.",
        "since": "9.0"
      },
      {
        "signature": "System.Void CurvatureColorMaxRange()",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Adjusts the max range values for curvature analysis.",
        "since": "9.0"
      },
      {
        "signature": "VisualAnalysisMode Find(System.Guid id)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Finds a visual analysis mode by guid.",
        "since": "5.0",
        "parameters": [
          {
            "name": "id",
            "type": "System.Guid",
            "summary": "The globally unique identifier to search for."
          }
        ],
        "returns": "The found visual analysis mode, or None if it was not found, or on error."
      },
      {
        "signature": "VisualAnalysisMode Find(System.Type t)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Finds a visual analysis mode by type.",
        "since": "5.0",
        "parameters": [
          {
            "name": "t",
            "type": "System.Type",
            "summary": "A visual analysis mode type."
          }
        ],
        "returns": "A visual analysis mode on success, or None on error."
      },
      {
        "signature": "VisualAnalysisMode Register(System.Type customAnalysisModeType)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Registers a custom visual analysis mode for use in Rhino.  It is OK to call register multiple times for a single custom analysis mode type, since subsequent register calls will notice that the type has already been registered.",
        "since": "5.0",
        "parameters": [
          {
            "name": "customAnalysisModeType",
            "type": "System.Type",
            "summary": "Must be a type that is a subclass of VisualAnalysisMode."
          }
        ],
        "returns": "An instance of registered analysis mode on success."
      },
      {
        "signature": "System.Void DrawBrepObject(Rhino.DocObjects.BrepObject brep, DisplayPipeline pipeline)",
        "modifiers": ["protected", "virtual"],
        "protected": true,
        "virtual": true,
        "summary": "Draws one brep. Override this method to add your custom behavior.  \nThe default implementation does nothing.",
        "parameters": [
          {
            "name": "brep",
            "type": "Rhino.DocObjects.BrepObject",
            "summary": "A brep object."
          },
          {
            "name": "pipeline",
            "type": "DisplayPipeline",
            "summary": "The current display pipeline."
          }
        ]
      },
      {
        "signature": "System.Void DrawCurveObject(Rhino.DocObjects.CurveObject curve, DisplayPipeline pipeline)",
        "modifiers": ["protected", "virtual"],
        "protected": true,
        "virtual": true,
        "summary": "If Style==Wireframe, then the default decomposes the curve object into nurbs curve segments and calls the virtual DrawNurbsCurve for each segment.",
        "parameters": [
          {
            "name": "curve",
            "type": "Rhino.DocObjects.CurveObject",
            "summary": "A document curve object."
          },
          {
            "name": "pipeline",
            "type": "DisplayPipeline",
            "summary": "The drawing pipeline."
          }
        ]
      },
      {
        "signature": "System.Void DrawMesh(Rhino.DocObjects.RhinoObject obj, Rhino.Geometry.Mesh mesh, DisplayPipeline pipeline)",
        "modifiers": ["protected", "virtual"],
        "protected": true,
        "virtual": true,
        "summary": "Draws a mesh.  \nThe default implementation does nothing.",
        "parameters": [
          {
            "name": "obj",
            "type": "Rhino.DocObjects.RhinoObject",
            "summary": "A Rhino object corresponding to the surface."
          },
          {
            "name": "mesh",
            "type": "Rhino.Geometry.Mesh",
            "summary": "The mesh geometry."
          },
          {
            "name": "pipeline",
            "type": "DisplayPipeline",
            "summary": "The current display pipeline."
          }
        ]
      },
      {
        "signature": "System.Void DrawMeshObject(Rhino.DocObjects.MeshObject mesh, DisplayPipeline pipeline)",
        "modifiers": ["protected", "virtual"],
        "protected": true,
        "virtual": true,
        "summary": "Draws one mesh. Override this method to add your custom behavior.  \nThe default implementation does nothing.",
        "parameters": [
          {
            "name": "mesh",
            "type": "Rhino.DocObjects.MeshObject",
            "summary": "A mesh object."
          },
          {
            "name": "pipeline",
            "type": "DisplayPipeline",
            "summary": "The current display pipeline."
          }
        ]
      },
      {
        "signature": "System.Void DrawNurbsCurve(Rhino.DocObjects.RhinoObject obj, Rhino.Geometry.NurbsCurve curve, DisplayPipeline pipeline)",
        "modifiers": ["protected", "virtual"],
        "protected": true,
        "virtual": true,
        "summary": "Draws a NURBS curve. This is a good function to override for analysis modes like curvature hair display.  \nThe default implementation does nothing.",
        "parameters": [
          {
            "name": "obj",
            "type": "Rhino.DocObjects.RhinoObject",
            "summary": "A Rhino object corresponding to the curve."
          },
          {
            "name": "curve",
            "type": "Rhino.Geometry.NurbsCurve",
            "summary": "The curve geometry."
          },
          {
            "name": "pipeline",
            "type": "DisplayPipeline",
            "summary": "The current display pipeline."
          }
        ]
      },
      {
        "signature": "System.Void DrawNurbsSurface(Rhino.DocObjects.RhinoObject obj, Rhino.Geometry.NurbsSurface surface, DisplayPipeline pipeline)",
        "modifiers": ["protected", "virtual"],
        "protected": true,
        "virtual": true,
        "summary": "Draws a NURBS surface. This is a good function to override to display object-related meshes.  \nThe default implementation does nothing.",
        "parameters": [
          {
            "name": "obj",
            "type": "Rhino.DocObjects.RhinoObject",
            "summary": "A Rhino object corresponding to the surface."
          },
          {
            "name": "surface",
            "type": "Rhino.Geometry.NurbsSurface",
            "summary": "The surface geometry."
          },
          {
            "name": "pipeline",
            "type": "DisplayPipeline",
            "summary": "The current display pipeline."
          }
        ]
      },
      {
        "signature": "System.Void DrawPointCloudObject(Rhino.DocObjects.PointCloudObject pointCloud, DisplayPipeline pipeline)",
        "modifiers": ["protected", "virtual"],
        "protected": true,
        "virtual": true,
        "summary": "Draws one point cloud. Override this method to add your custom behavior.  \nThe default implementation does nothing.",
        "parameters": [
          {
            "name": "pointCloud",
            "type": "Rhino.DocObjects.PointCloudObject",
            "summary": "A point cloud object."
          },
          {
            "name": "pipeline",
            "type": "DisplayPipeline",
            "summary": "The current display pipeline."
          }
        ]
      },
      {
        "signature": "System.Void DrawPointObject(Rhino.DocObjects.PointObject point, DisplayPipeline pipeline)",
        "modifiers": ["protected", "virtual"],
        "protected": true,
        "virtual": true,
        "summary": "Draws one point. Override this method to add your custom behavior.  \nThe default implementation does nothing.",
        "parameters": [
          {
            "name": "point",
            "type": "Rhino.DocObjects.PointObject",
            "summary": "A point object."
          },
          {
            "name": "pipeline",
            "type": "DisplayPipeline",
            "summary": "The current display pipeline."
          }
        ]
      },
      {
        "signature": "System.Void EnableUserInterface(System.Boolean on)",
        "modifiers": ["public", "virtual"],
        "protected": false,
        "virtual": true,
        "summary": "Turns the analysis mode's user interface on and off. For Rhino's built in modes this opens or closes the modeless dialog that controls the analysis mode's display settings.",
        "since": "5.0",
        "parameters": [
          {
            "name": "on",
            "type": "System.Boolean",
            "summary": "True if the interface should be shown; False if it should be concealed."
          }
        ]
      },
      {
        "signature": "System.Boolean ObjectSupportsAnalysisMode(Rhino.DocObjects.RhinoObject obj)",
        "modifiers": ["public", "virtual"],
        "protected": false,
        "virtual": true,
        "summary": "Gets a value indicating if this visual analysis mode can be used on a given Rhino object.",
        "since": "5.0",
        "parameters": [
          {
            "name": "obj",
            "type": "Rhino.DocObjects.RhinoObject",
            "summary": "The object to be tested."
          }
        ],
        "returns": "True if this mode can indeed be used on the object; otherwise false."
      },
      {
        "signature": "System.Void SetUpDisplayAttributes(Rhino.DocObjects.RhinoObject obj, DisplayPipelineAttributes attributes)",
        "modifiers": ["protected", "virtual"],
        "protected": true,
        "virtual": true,
        "summary": "If an analysis mode needs to modify display attributes, this is the place to do it.  In particular, Style==Texture, then this function must be overridden.",
    "remarks": "Shaded analysis modes that use texture mapping, like zebra and emap, override this function set the texture, diffuse_color, and EnableLighting parameter.",
        "parameters": [
          {
            "name": "obj",
            "type": "Rhino.DocObjects.RhinoObject",
            "summary": "The object for which to set up attributes."
          },
          {
            "name": "attributes",
            "type": "DisplayPipelineAttributes",
            "summary": "The linked attributes."
          }
        ]
      },
      {
        "signature": "System.Void UpdateVertexColors(Rhino.DocObjects.RhinoObject obj, Rhino.Geometry.Mesh[] meshes)",
        "modifiers": ["protected", "virtual"],
        "protected": true,
        "virtual": true,
        "summary": "If Style==falseColor, then this virtual function must be overridden. Rhino calls this function when it is time for to set the False colors on the analysis mesh vertices.  For breps, there is one mesh per face. For mesh objects there is a single mesh.",
        "parameters": [
          {
            "name": "obj",
            "type": "Rhino.DocObjects.RhinoObject",
            "summary": "The object for which to update vertex colors."
          },
          {
            "name": "meshes",
            "type": "Rhino.Geometry.Mesh[]",
            "summary": "An array of meshes that should be updated."
          }
        ]
      }
    ]
  },
  {
    "namespace": "Rhino.Display",
    "name": "VisualAnalysisMode.AnalysisStyle",
    "dataType": "enum",
    "summary": "Contains enumerated values for analysis styles, such as wireframe, texture or False colors..",
    "since": "5.0",
    "values": [
      {
        "signature": "Wireframe = 1",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "The analysis is showing with wires."
      },
      {
        "signature": "Texture = 2",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "The analysis is showing with textures."
      },
      {
        "signature": "FalseColor = 4",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "The analysis is showing with False colors."
      }
    ]

  },
  {
    "namespace": "Rhino.Display",
    "name": "VisualAnalysisMode.EdgeContinuityMode",
    "dataType": "enum",
    "summary": "Continuity mode to report",
    "values": [
      {
        "signature": "Distance = 0",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "G0 Continuity"
      },
      {
        "signature": "Tangency = 1",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "G1 Continuity"
      },
      {
        "signature": "Curvature = 2",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "G2 Continuity"
      }
    ]

  },
  {
    "namespace": "Rhino.Display",
    "name": "ZBiasMode",
    "dataType": "enum",
    "summary": "Biasing applied to geometry to attempt to get coplanar items to draw on top of or below other geometry",
    "since": "5.0",
    "values": [
      {
        "signature": "Neutral = 0",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "TowardsCamera = 1",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "AwayFromCamera = 2",
        "modifiers": [],
        "protected": false,
        "virtual": false
      }
    ]

  },
  {
    "namespace": "Rhino.Display",
    "name": "ZBufferCapture",
    "dataType": "class",
    "summary": "Provides functionality for getting the z-buffer values from a viewport and a given display mode",
    "interfaces": ["IDisposable"],
    "constructors": [
      {
        "signature": "ZBufferCapture(RhinoViewport viewport)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.3"
      }
    ],
    "methods": [
      {
        "signature": "System.Void Dispose()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Actively reclaims unmanaged resources that this instance uses.",
        "since": "5.3"
      },
      {
        "signature": "System.Void Dispose(System.Boolean disposing)",
        "modifiers": ["protected", "virtual"],
        "protected": true,
        "virtual": true,
        "summary": "For derived class implementers.  \nThis method is called with argument True when class user calls Dispose(), while with argument False when     the Garbage Collector invokes the finalizer, or Finalize() method.  \nYou must reclaim all used unmanaged resources in both cases, and can use this chance to call Dispose on disposable fields if the argument is true.  \nAlso, you must call the base virtual method within your overriding method.",
        "parameters": [
          {
            "name": "disposing",
            "type": "System.Boolean",
            "summary": "True if the call comes from the Dispose() method; False if it comes from the Garbage Collector finalizer."
          }
        ]
      },
      {
        "signature": "System.Drawing.Bitmap GrayscaleDib()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.3"
      },
      {
        "signature": "System.Int32 HitCount()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.3"
      },
      {
        "signature": "System.Single MaxZ()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.3"
      },
      {
        "signature": "System.Single MinZ()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.3"
      },
      {
        "signature": "System.Void SetDisplayMode(System.Guid modeId)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.3"
      },
      {
        "signature": "System.Void ShowAnnotations(System.Boolean on)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.3"
      },
      {
        "signature": "System.Void ShowCurves(System.Boolean on)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.3"
      },
      {
        "signature": "System.Void ShowIsocurves(System.Boolean on)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.3"
      },
      {
        "signature": "System.Void ShowLights(System.Boolean on)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.3"
      },
      {
        "signature": "System.Void ShowMeshWires(System.Boolean on)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.3"
      },
      {
        "signature": "System.Void ShowPoints(System.Boolean on)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.3"
      },
      {
        "signature": "System.Void ShowText(System.Boolean on)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.3"
      },
      {
        "signature": "Point3d WorldPointAt(System.Int32 x, System.Int32 y)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.3"
      },
      {
        "signature": "System.Single ZValueAt(System.Int32 x, System.Int32 y)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.3"
      }
    ]
  },
  {
    "namespace": "Rhino",
    "name": "DisplayDeviceInfo",
    "dataType": "class",
    "summary": "Get information about display devices found on this machine (GPUs).",
    "constructors": [
      {
        "signature": "DisplayDeviceInfo()",
        "summary": "Initializes a new instance of the DisplayDeviceInfo class"
      }
    ],
    "methods": [
      {
        "signature": "List<GpuDeviceInfo> GpuDeviceInfos()",
        "modifiers": ["static", "public"],
        "protected": false,
        "virtual": false,
        "summary": "Get a list of GpuDeviceInfo for GPUs found on this machine.",
        "since": "7.3",
        "returns": "List of GpuDeviceInfo"
      },
      {
        "signature": "List<string> GpuNames()",
        "modifiers": ["static", "public"],
        "protected": false,
        "virtual": false,
        "summary": "Get a list with the names of all GPUs on this machine.",
        "since": "7.3",
        "returns": "List of strings"
      }
    ]
  },
  {
    "namespace": "Rhino.DocObjects",
    "name": "ActiveSpace",
    "dataType": "enum",
    "summary": "Defines the current working space.",
    "since": "5.0",
    "values": [
      {
        "signature": "None = 0",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "There is no working space."
      },
      {
        "signature": "ModelSpace = 1",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "3d modeling or \"world\" space."
      },
      {
        "signature": "PageSpace = 2",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "page/layout/paper/printing space."
      },
      {
        "signature": "UVEditorSpace = 3",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "UV Editor space."
      },
      {
        "signature": "BlockEditorSpace = 4",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Block Editor space."
      }
    ]

  },
  {
    "namespace": "Rhino.DocObjects",
    "name": "AngleDisplayMode",
    "dataType": "enum",
    "summary": "Defines enumerated values for the display of angles.",
    "since": "6.0",
    "values": [
      {
        "signature": "Degrees = 0",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Shows angle in decimal degrees"
      },
      {
        "signature": "DMS = 1",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Show angle as degree,minute,second."
      },
      {
        "signature": "Grads = 2",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Show angle as grads."
      }
    ]

  },
  {
    "namespace": "Rhino.DocObjects",
    "name": "AngularDimensionObject",
    "dataType": "class",
    "summary": "Rhino Object that represents an angular dimension geometry and attributes",
    "baseclass": "Rhino.DocObjects.DimensionObject",
    "properties": [
      {
        "signature": "AngularDimension AngularDimensionGeometry",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Get the dimension geometry for this object.",
        "since": "6.0",
        "property": ["get"]
      }
    ]
  },
  {
    "namespace": "Rhino.DocObjects",
    "name": "AnimationProperties",
    "dataType": "class",
    "summary": "Contains information used by the Animation Tools to create sun, season, turntable and fly through animations.",
    "interfaces": ["IDisposable"],
    "constructors": [
      {
        "signature": "AnimationProperties()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Initializes a new instance of the <b>AnimationProperties</b> class.",
        "since": "6.11"
      },
      {
        "signature": "AnimationProperties(AnimationProperties source)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Initialize new instance of the AnimationProperties class.",
        "since": "6.11",
        "parameters": [
          {
            "name": "source",
            "type": "AnimationProperties",
            "summary": "If not null, settings are copied from source"
          }
        ]
      }
    ],
    "properties": [
      {
        "signature": "string AnimationName",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the name of the animation sequence.",
        "since": "6.11",
        "property": ["get", "set"]
      },
      {
        "signature": "Guid CameraPathId",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the object ID of the camera path.",
        "since": "6.11",
        "property": ["get", "set"]
      },
      {
        "signature": "Point3d[] CameraPoints",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets points of the camera path.",
        "since": "6.11",
        "property": ["get", "set"]
      },
      {
        "signature": "string CaptureMethod",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the capture method of the animation which is either preview or full.",
        "since": "6.11",
        "property": ["get", "set"]
      },
      {
        "signature": "CaptureTypes CaptureType",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the capture type of the animation.",
        "since": "6.11",
        "property": ["get", "set"]
      },
      {
        "signature": "int CurrentFrame",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the current frame during animation record.",
        "since": "7.12",
        "property": ["get", "set"]
      },
      {
        "signature": "string[] Dates",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the dates that are calculated for seasonal/one day sun animations.",
        "since": "6.11",
        "property": ["get", "set"]
      },
      {
        "signature": "int DaysBetweenFrames",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the days between captured frames for seasonal sun animation.",
        "since": "6.11",
        "property": ["get", "set"]
      },
      {
        "signature": "Guid DisplayMode",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the ID of the view display mode (wireframe, shaded...).",
        "since": "6.11",
        "property": ["get", "set"]
      },
      {
        "signature": "int EndDay",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the end day for seasonal day sun animation in the range 1 to 31.",
        "since": "6.11",
        "property": ["get", "set"]
      },
      {
        "signature": "int EndHour",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the end hour for one day sun animation in the range 0 to 23.",
        "since": "6.11",
        "property": ["get", "set"]
      },
      {
        "signature": "int EndMinutes",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the end minutes for one day sun animation in the range 0 to 59.",
        "since": "6.11",
        "property": ["get", "set"]
      },
      {
        "signature": "int EndMonth",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the end month for seasonal day sun animation in the range 1 to 12.",
        "since": "6.11",
        "property": ["get", "set"]
      },
      {
        "signature": "int EndSeconds",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the end seconds for one day sun animation in the range 0 to 59.",
        "since": "6.11",
        "property": ["get", "set"]
      },
      {
        "signature": "int EndYear",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the end year for seasonal day sun animation in the range 1800 to 2199.",
        "since": "6.11",
        "property": ["get", "set"]
      },
      {
        "signature": "string FileExtension",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the file extension of the saved frames created by the animation.",
        "since": "6.11",
        "property": ["get", "set"]
      },
      {
        "signature": "string FolderName",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the location for the saved frames.",
        "since": "6.11",
        "property": ["get", "set"]
      },
      {
        "signature": "int FrameCount",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the number of frames to be captured.",
        "since": "6.11",
        "property": ["get", "set"]
      },
      {
        "signature": "string HtmlFileName",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the HTML file name. This property is the same as <b>AnimationName</b> .",
        "since": "7.12",
        "property": ["get", "set"]
      },
      {
        "signature": "string HtmlFullPath",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Return HTML file path consisting of FolderName and HtmlFileName.  To change this set FolderName and HtmlFileName.",
        "since": "7.12",
        "property": ["get"]
      },
      {
        "signature": "string[] Images",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the full path to the saved frames of an animation.",
        "since": "6.11",
        "property": ["get", "set"]
      },
      {
        "signature": "double Latitude",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the latitude for sun animations in the range of -90 to +90.",
        "since": "6.11",
        "property": ["get", "set"]
      },
      {
        "signature": "int LightIndex",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Internal value used while previewing animation.",
        "since": "6.11",
        "property": ["get", "set"]
      },
      {
        "signature": "double Longitude",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the longitude for sun animations in the range of -180 to +180.",
        "since": "6.11",
        "property": ["get", "set"]
      },
      {
        "signature": "int MinutesBetweenFrames",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the minutes between captured frames for one day sun animation.",
        "since": "6.11",
        "property": ["get", "set"]
      },
      {
        "signature": "double NorthAngle",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the world angle corresponding to North in degrees. This angle is zero along the x-axis and increases anticlockwise.",
        "since": "6.11",
        "property": ["get", "set"]
      },
      {
        "signature": "bool RenderFull",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets a value indicating whether to capture a frame in rendered mode.",
        "since": "6.11",
        "property": ["get", "set"]
      },
      {
        "signature": "bool RenderPreview",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets a value indicating whether to capture a frame in preview rendered mode.",
        "since": "6.11",
        "property": ["get", "set"]
      },
      {
        "signature": "int StartDay",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the start day for seasonal/one day sun animation in the range 1 to 31.",
        "since": "6.11",
        "property": ["get", "set"]
      },
      {
        "signature": "int StartHour",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the start hour for seasonal/one day sun animation in the range 0 to 23.",
        "since": "6.11",
        "property": ["get", "set"]
      },
      {
        "signature": "int StartMinutes",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the start minutes for seasonal/one day sun animation in the range 0 to 59.",
        "since": "6.11",
        "property": ["get", "set"]
      },
      {
        "signature": "int StartMonth",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the start month for seasonal/one day sun animation in the range 1 to 12.",
        "since": "6.11",
        "property": ["get", "set"]
      },
      {
        "signature": "int StartSeconds",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the start seconds for seasonal/one day sun animation in the range 0 to 59.",
        "since": "6.11",
        "property": ["get", "set"]
      },
      {
        "signature": "int StartYear",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the start year for seasonal/one day sun animation in the range 1800 to 2199.",
        "since": "6.11",
        "property": ["get", "set"]
      },
      {
        "signature": "Guid TargetPathId",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the object ID of the target path.",
        "since": "6.11",
        "property": ["get", "set"]
      },
      {
        "signature": "Point3d[] TargetPoints",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets points of the target path.",
        "since": "6.11",
        "property": ["get", "set"]
      },
      {
        "signature": "string ViewportName",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the viewport that will be captured.",
        "since": "6.11",
        "property": ["get", "set"]
      }
    ],
    "methods": [
      {
        "signature": "System.Void Dispose()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Actively reclaims unmanaged resources that this instance uses.",
        "since": "6.11"
      },
      {
        "signature": "System.Void Dispose(System.Boolean disposing)",
        "modifiers": ["protected", "virtual"],
        "protected": true,
        "virtual": true,
        "summary": "For derived class implementers.  \nThis method is called with argument True when class user calls Dispose(), while with argument False when     the Garbage Collector invokes the finalizer, or Finalize() method.  \nYou must reclaim all used unmanaged resources in both cases, and can use this chance to call Dispose on disposable fields if the argument is true.  \nAlso, you must call the base virtual method within your overriding method.",
        "parameters": [
          {
            "name": "disposing",
            "type": "System.Boolean",
            "summary": "True if the call comes from the Dispose() method; False if it comes from the Garbage Collector finalizer."
          }
        ]
      }
    ]
  },
  {
    "namespace": "Rhino.DocObjects",
    "name": "AnimationProperties.CaptureTypes",
    "dataType": "enum",
    "summary": "Constants that define the mode of the animation tools.",
    "since": "6.11",
    "values": [
      {
        "signature": "Path = UnsafeNativeMethods.AnimationPropertiesCaptureTypes.Path",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Camera and target movement along separate path curves"
      },
      {
        "signature": "Turntable = UnsafeNativeMethods.AnimationPropertiesCaptureTypes.Turntable",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Rotate a view around the target."
      },
      {
        "signature": "Flythrough = UnsafeNativeMethods.AnimationPropertiesCaptureTypes.Flythrough",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Camera and target movement along a path curve"
      },
      {
        "signature": "DaySunStudy = UnsafeNativeMethods.AnimationPropertiesCaptureTypes.DaySunStudy",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Sun movement through a specified calendar day"
      },
      {
        "signature": "SeasonalSunStudy = UnsafeNativeMethods.AnimationPropertiesCaptureTypes.SeasonalSunStudy",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Sun movement through a specified week, month, or year"
      },
      {
        "signature": "None = UnsafeNativeMethods.AnimationPropertiesCaptureTypes.None",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "No capture type specified"
      }
    ]

  },
  {
    "namespace": "Rhino.DocObjects",
    "name": "AnnotationObjectBase",
    "dataType": "class",
    "summary": "Base class for all annotation objects (text and dimensions)",
    "baseclass": "Rhino.DocObjects.RhinoObject",
    "properties": [
      {
        "signature": "AnnotationBase AnnotationGeometry",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Get the annotation base geometry for this object",
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "string DisplayText",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the text that is displayed to users.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "bool HasMeasurableTextFields",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Test if the text in the annotation object contains fields that involve length, area, or volume measurements",
        "since": "7.0",
        "property": ["get"]
      }
    ]
  },
  {
    "namespace": "Rhino.DocObjects",
    "name": "BasepointZero",
    "dataType": "enum",
    "summary": "Specifies enumerated constants used to indicate the zero level convention relating to a location on Earth.  \nThis is used in conjunction with the  class.",
    "since": "5.0",
    "deprecated": "8.6",
    "values": [
      {
        "signature": "GroundLevel = 0",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "The ground level is the convention for 0."
      },
      {
        "signature": "MeanSeaLevel = 1",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "The mean sea level is the convention for 0."
      },
      {
        "signature": "CenterOfEarth = 2",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "The center of the planet is the convention for 0."
      }
    ]

  },
  {
    "namespace": "Rhino.DocObjects",
    "name": "BitmapEntry",
    "dataType": "class",
    "summary": "Rhino.DocObjects.Tables.BitmapTable entry",
    "baseclass": "Rhino.DocObjects.ModelComponent",
    "properties": [
      {
        "signature": "ModelComponentType ComponentType",
        "modifiers": ["public", "override"],
        "protected": false,
        "virtual": false,
        "summary": "Returns <b>ModelComponentType.Image</b> .",
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "string FileName",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "The name of this bitmap.",
        "since": "5.1",
        "property": ["get"]
      },
      {
        "signature": "bool IsReference",
        "modifiers": ["public", "override"],
        "protected": false,
        "virtual": false,
        "summary": "Gets a value indicting whether this bitmap is a referenced bitmap. Referenced bitmaps are part of referenced documents.",
        "since": "5.1",
        "property": ["get"]
      }
    ],
    "methods": [
      {
        "signature": "System.Boolean Save(System.String fileName)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.1"
      }
    ]
  },
  {
    "namespace": "Rhino.DocObjects",
    "name": "BrepObject",
    "dataType": "class",
    "summary": "Represents a <b>Rhino.Geometry.Brep</b> in a document.",
    "baseclass": "Rhino.DocObjects.RhinoObject",
    "properties": [
      {
        "signature": "Brep BrepGeometry",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the Brep geometry linked with this object.",
        "since": "5.0",
        "property": ["get"]
      }
    ],
    "methods": [
      {
        "signature": "Brep DuplicateBrepGeometry()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Constructs a new deep copy of the Brep geometry.",
        "since": "5.0",
        "returns": "The copy of the geometry."
      }
    ]
  },
  {
    "namespace": "Rhino.DocObjects",
    "name": "CentermarkObject",
    "dataType": "class",
    "summary": "Rhino Object that represents a centermark geometry and attributes",
    "baseclass": "Rhino.DocObjects.DimensionObject",
    "properties": [
      {
        "signature": "Centermark CentermarkGeometry",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Get the dimension geometry for this object.",
        "since": "6.0",
        "property": ["get"]
      }
    ]
  },
  {
    "namespace": "Rhino.DocObjects",
    "name": "ClippingPlaneObject",
    "dataType": "class",
    "summary": "Represents the object of a <b>Rhino.Geometry.ClippingPlaneSurface</b> , stored in the Rhino document and with attributes.",
    "baseclass": "Rhino.DocObjects.RhinoObject",
    "properties": [
      {
        "signature": "ClippingPlaneSurface ClippingPlaneGeometry",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the clipping plane surface.",
        "since": "5.0",
        "property": ["get"]
      }
    ],
    "methods": [
      {
        "signature": "System.Boolean AddClipViewport(Rhino.Display.RhinoViewport viewport, System.Boolean commit)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Adds a viewport to the list of viewports that this clipping plane clips.",
        "since": "6.1",
        "parameters": [
          {
            "name": "viewport",
            "type": "Rhino.Display.RhinoViewport",
            "summary": "The viewport to add."
          },
          {
            "name": "commit",
            "type": "System.Boolean",
            "summary": "Commit the change. When in doubt, set this parameter to true."
          }
        ],
        "returns": "True if the viewport was added, False if the viewport is already in the list."
      },
      {
        "signature": "System.Boolean RemoveClipViewport(Rhino.Display.RhinoViewport viewport, System.Boolean commit)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Removes a viewport from the list of viewports that this clipping plane clips.",
        "since": "6.1",
        "parameters": [
          {
            "name": "viewport",
            "type": "Rhino.Display.RhinoViewport",
            "summary": "The viewport to remove."
          },
          {
            "name": "commit",
            "type": "System.Boolean",
            "summary": "Commit the change. When in doubt, set this parameter to true."
          }
        ],
        "returns": "True if the viewport was removed, False if the viewport was not in the list."
      }
    ]
  },
  {
    "namespace": "Rhino.DocObjects",
    "name": "ConstructionPlane",
    "dataType": "class",
    "summary": "Represents a construction plane inside the document.  \nUse Rhino.DocObjects.Tables.NamedConstructionPlaneTable   methods and indexers to add and access a .",
    "constructors": [
      {
        "signature": "ConstructionPlane()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Initializes a new instance of <b>ConstructionPlane</b> .",
        "since": "5.0"
      }
    ],
    "properties": [
      {
        "signature": "bool DepthBuffered",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets whether the grid is drawn on top of geometry.  \nfalse=grid is always drawn behind 3d geometry  \ntrue=grid is drawn at its depth as a 3d plane and grid lines obscure things behind the grid.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "int GridLineCount",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the total amount of grid lines in each direction.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "double GridSpacing",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the distance between grid lines.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "Color GridXColor",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the color of the grid X-axis mark.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "Color GridYColor",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the color of the grid Y-axis mark.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "Color GridZColor",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the color of the grid Z-axis mark.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "string Name",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the name of the construction plane.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "Plane Plane",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the geometric plane to use for construction.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool ShowAxes",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets whether the axes of the grid should be visible.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool ShowGrid",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets whether the grid itself should be visible.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool ShowZAxis",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets whether the Z axis of the grid should be visible.",
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "double SnapSpacing",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "when \"grid snap\" is enabled, the distance between snap points. Typically this is the same distance as grid spacing.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "Color ThickLineColor",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the color of the thicker, wider line.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "int ThickLineFrequency",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the recurrence of a wider line on the grid.  \n0: No lines are thick, all are drawn thin.  \n1: All lines are thick.  \n2: Every other line is thick.  \n3: One line in three lines is thick (and two are thin).  \n4: ...",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "Color ThinLineColor",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the color of the thinner, less prominent line.",
        "since": "5.0",
        "property": ["get", "set"]
      }
    ]
  },
  {
    "namespace": "Rhino.DocObjects",
    "name": "ConstructionPlaneGridDefaults",
    "dataType": "class",
    "summary": "Default grid settings for a document",
    "constructors": [
      {
        "signature": "ConstructionPlaneGridDefaults()",
        "summary": "Initializes a new instance of the ConstructionPlaneGridDefaults class"
      }
    ],
    "properties": [
      {
        "signature": "int GridLineCount",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Number of grid lines in each direction",
        "since": "8.13",
        "property": ["get", "set"]
      },
      {
        "signature": "double GridSpacing",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Distance between grid lines",
        "since": "8.13",
        "property": ["get", "set"]
      },
      {
        "signature": "int GridThickFrequency",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "This line frequency. 0: none, 1: all lines are thick, 2: every other is thick, ...",
        "since": "8.13",
        "property": ["get", "set"]
      },
      {
        "signature": "bool ShowGrid",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Show the grid",
        "since": "8.13",
        "property": ["get", "set"]
      },
      {
        "signature": "bool ShowGridAxes",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Show the grid axes",
        "since": "8.13",
        "property": ["get", "set"]
      },
      {
        "signature": "bool ShowWorldAxes",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Show the world axes icon in the corner",
        "since": "8.13",
        "property": ["get", "set"]
      },
      {
        "signature": "double SnapSpacing",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "When grid snap is enabled, the distance between snap points. Typically this is the same distance as grid spacing",
        "since": "8.13",
        "property": ["get", "set"]
      }
    ]
  },
  {
    "namespace": "Rhino.DocObjects",
    "name": "CoordinateSystem",
    "dataType": "enum",
    "summary": "Defines enumerated values for coordinate systems to use as references.",
    "since": "5.0",
    "values": [
      {
        "signature": "World = 0",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "The world coordinate system. This has origin (0,0,0), X unit axis is (1, 0, 0) and Y unit axis is (0, 1, 0)."
      },
      {
        "signature": "Camera = 1",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "The camera coordinate system."
      },
      {
        "signature": "Clip = 2",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "The clip coordinate system."
      },
      {
        "signature": "Screen = 3",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "The screen coordinate system."
      }
    ]

  },
  {
    "namespace": "Rhino.DocObjects",
    "name": "CurveObject",
    "dataType": "class",
    "summary": "A Rhino Object that represents curve geometry and attributes",
    "baseclass": "Rhino.DocObjects.RhinoObject",
    "properties": [
      {
        "signature": "Curve CurveGeometry",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns the underlying curve geometry.",
        "since": "5.0",
        "property": ["get"]
      }
    ],
    "methods": [
      {
        "signature": "Curve DuplicateCurveGeometry()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns a copy of the underlying curve geometry.",
        "since": "5.0"
      },
      {
        "signature": "GeometryBase[] GetLinetypeSegments()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Converts the linetype pattern of the curve into curve segments and points based on the active Rhino viewport.",
        "since": "8.4",
        "returns": "An array of curve and point objects if successful."
      },
      {
        "signature": "GeometryBase[] GetLinetypeSegments(RhinoViewport viewport)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Converts the linetype pattern of the curve into curve segments and points based on the specified Rhino viewport.",
        "since": "8.4",
        "parameters": [
          {
            "name": "viewport",
            "type": "RhinoViewport",
            "summary": "The Rhino viewport used to generate the curve segments and points."
          }
        ],
        "returns": "An array of curve and point objects if successful."
      }
    ]
  },
  {
    "namespace": "Rhino.DocObjects.Custom",
    "name": "ClassIdAttribute",
    "dataType": "class",
    "summary": "Useful for legacy UserData",
    "baseclass": "Attribute",
    "constructors": [
      {
        "signature": "ClassIdAttribute(string id)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Initializes a class id attribute.",
        "since": "6.0",
        "parameters": [
          {
            "name": "id",
            "type": "System.String",
            "summary": "String in the form of a Guid."
          }
        ]
      }
    ],
    "properties": [
      {
        "signature": "Guid Id",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the associated style.",
        "since": "6.0",
        "property": ["get", "set"]
      }
    ]
  },
  {
    "namespace": "Rhino.DocObjects.Custom",
    "name": "CustomBrepObject",
    "dataType": "class",
    "baseclass": "Rhino.DocObjects.BrepObject",
    "interfaces": ["IDisposable"],
    "constructors": [
      {
        "signature": "CustomBrepObject()",
        "modifiers": ["protected"],
        "protected": true,
        "virtual": false
      },
      {
        "signature": "CustomBrepObject(Brep brep)",
        "modifiers": ["protected"],
        "protected": true,
        "virtual": false
      }
    ],
    "methods": [
      {
        "signature": "System.Void Dispose(System.Boolean disposing)",
        "modifiers": ["protected", "override"],
        "protected": true,
        "virtual": false
      }
    ]
  },
  {
    "namespace": "Rhino.DocObjects.Custom",
    "name": "CustomCurveObject",
    "dataType": "class",
    "baseclass": "Rhino.DocObjects.CurveObject",
    "interfaces": ["IDisposable"],
    "constructors": [
      {
        "signature": "CustomCurveObject()",
        "modifiers": ["protected"],
        "protected": true,
        "virtual": false
      },
      {
        "signature": "CustomCurveObject(Curve curve)",
        "modifiers": ["protected"],
        "protected": true,
        "virtual": false
      }
    ],
    "methods": [
      {
        "signature": "System.Void Dispose()",
        "modifiers": ["public", "new"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "System.Void Dispose(System.Boolean disposing)",
        "modifiers": ["protected", "override"],
        "protected": true,
        "virtual": false
      },
      {
        "signature": "Curve SetCurve(Curve curve)",
        "modifiers": ["protected"],
        "protected": true,
        "virtual": false,
        "summary": "Only for developers who are defining custom subclasses of CurveObject. Directly sets the internal curve geometry for this object.  Note that this function does not work with Rhino's \"undo\".",
    "remarks": "Note that this function does not work with Rhino's \"undo\".  The typical approach for adjusting the curve geometry is to modify the object that you get when you call the CurveGeometry property and then call CommitChanges.",
        "returns": "The old curve geometry that was set for this object"
      }
    ]
  },
  {
    "namespace": "Rhino.DocObjects.Custom",
    "name": "CustomGripObject",
    "dataType": "class",
    "baseclass": "Rhino.DocObjects.GripObject",
    "interfaces": ["IDisposable"],
    "constructors": [
      {
        "signature": "CustomGripObject()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      }
    ],
    "properties": [
      {
        "signature": "int Index",
        "modifiers": ["public", "new"],
        "protected": false,
        "virtual": false,
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "Point3d OriginalLocation",
        "modifiers": ["public", "new"],
        "protected": false,
        "virtual": false,
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "double Weight",
        "modifiers": ["public", "override"],
        "protected": false,
        "virtual": false,
        "since": "5.0",
        "property": ["get", "set"]
      }
    ],
    "methods": [
      {
        "signature": "System.Void Dispose()",
        "modifiers": ["public", "new"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "System.Void Dispose(System.Boolean disposing)",
        "modifiers": ["protected", "override"],
        "protected": true,
        "virtual": false
      },
      {
        "signature": "System.Void NewLocation()",
        "modifiers": ["public", "virtual"],
        "protected": false,
        "virtual": true,
        "since": "5.0"
      }
    ]
  },
  {
    "namespace": "Rhino.DocObjects.Custom",
    "name": "CustomMeshObject",
    "dataType": "class",
    "baseclass": "Rhino.DocObjects.MeshObject",
    "interfaces": ["IDisposable"],
    "constructors": [
      {
        "signature": "CustomMeshObject()",
        "modifiers": ["protected"],
        "protected": true,
        "virtual": false
      },
      {
        "signature": "CustomMeshObject(Mesh mesh)",
        "modifiers": ["protected"],
        "protected": true,
        "virtual": false
      }
    ],
    "methods": [
      {
        "signature": "System.Void Dispose()",
        "modifiers": ["public", "new"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "System.Void Dispose(System.Boolean disposing)",
        "modifiers": ["protected", "override"],
        "protected": true,
        "virtual": false
      }
    ]
  },
  {
    "namespace": "Rhino.DocObjects.Custom",
    "name": "CustomObjectGrips",
    "dataType": "class",
    "interfaces": ["IDisposable"],
    "constructors": [
      {
        "signature": "CustomObjectGrips()",
        "modifiers": ["protected"],
        "protected": true,
        "virtual": false
      }
    ],
    "properties": [
      {
        "signature": "int GripCount",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "bool GripsMoved",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "If GripsMoved is True if some of the grips have ever been moved GripObject.NewLocation() sets GripsMoved=true.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "bool NewLocation",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "True if some of the grips have been moved. GripObject.NewLocation() sets NewLocation=true.  Derived classes can set NewLocation to False after updating temporary display information.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "RhinoObject OwnerObject",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Owner of the grips.",
        "since": "5.0",
        "property": ["get"]
      }
    ],
    "methods": [
      {
        "signature": "System.Boolean Dragging()",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Determines if grips are currently being dragged.",
        "since": "5.0",
        "returns": "True if grips are dragged."
      },
      {
        "signature": "System.Void RegisterGripsEnabler(TurnOnGripsEventHandler enabler, System.Type customGripsType)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "System.Void AddGrip(Rhino.DocObjects.Custom.CustomGripObject grip)",
        "modifiers": ["protected"],
        "protected": true,
        "virtual": false
      },
      {
        "signature": "System.Void Dispose()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "System.Void Dispose(System.Boolean disposing)",
        "modifiers": ["protected", "virtual"],
        "protected": true,
        "virtual": true
      },
      {
        "signature": "CustomGripObject Grip(System.Int32 index)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "GripObject NeighborGrip(System.Int32 gripIndex, System.Int32 dr, System.Int32 ds, System.Int32 dt, System.Boolean wrap)",
        "modifiers": ["protected", "virtual"],
        "protected": true,
        "virtual": true,
        "summary": "Get neighbors.",
        "parameters": [
          {
            "name": "gripIndex",
            "type": "System.Int32",
            "summary": "index of grip where the search begins."
          },
          {
            "name": "dr",
            "type": "System.Int32",
            "summary": "1 = next grip in the first parameter direction.  \n-1 = previous grip in the first parameter direction."
          },
          {
            "name": "ds",
            "type": "System.Int32",
            "summary": "1 = next grip in the second parameter direction.  \n-1 = previous grip in the second parameter direction."
          },
          {
            "name": "dt",
            "type": "System.Int32",
            "summary": "1 = next grip in the third parameter direction.  \n-1 = rev grip in the third parameter direction."
          },
          {
            "name": "wrap",
            "type": "System.Boolean",
            "summary": "If True and object is \"closed\", the search will wrap."
          }
        ],
        "returns": "Pointer to the desired neighbor or NULL if there is no neighbor."
      },
      {
        "signature": "Rhino.Geometry.GeometryBase NewGeometry()",
        "modifiers": ["protected", "virtual"],
        "protected": true,
        "virtual": true,
        "summary": "If the grips control just one object, then override NewGeometry(). When NewGeometry() is called, return new geometry calculated from the current grip locations. This happens once at the end of a grip drag.",
        "returns": "The new geometry. The default implementation returns null."
      },
      {
        "signature": "Rhino.Geometry.NurbsSurface NurbsSurface()",
        "modifiers": ["protected", "virtual"],
        "protected": true,
        "virtual": true,
        "summary": "If the grips control a NURBS surface, this returns a pointer to that surface.  You can look at but you must NEVER change this surface.",
        "returns": "A pointer to a NURBS surface or null."
      },
      {
        "signature": "GripObject NurbsSurfaceGrip(System.Int32 i, System.Int32 j)",
        "modifiers": ["protected", "virtual"],
        "protected": true,
        "virtual": true,
        "summary": "If the grips are control points of a NURBS surface, then this gets the index of the grip that controls the (i,j)-th CV.",
        "parameters": [
          {
            "name": "i",
            "type": "System.Int32",
            "summary": "The index in the first dimension."
          },
          {
            "name": "j",
            "type": "System.Int32",
            "summary": "The index in the second dimension."
          }
        ],
        "returns": "A grip controlling a NURBS surface CV or null."
      },
      {
        "signature": "System.Void OnDraw(GripsDrawEventArgs args)",
        "modifiers": ["protected", "virtual"],
        "protected": true,
        "virtual": true,
        "summary": "Draws the grips. In your implementation, override this if you need to draw dynamic elements and then call this base implementation to draw the grips themselves.",
        "parameters": [
          {
            "name": "args",
            "type": "GripsDrawEventArgs",
            "summary": "The grips draw event arguments."
          }
        ]
      },
      {
        "signature": "System.Void OnReset()",
        "modifiers": ["protected", "virtual"],
        "protected": true,
        "virtual": true,
        "summary": "Resets location of all grips to original spots and cleans up stuff that was created by dynamic dragging.  This is required when dragging is canceled or in the Copy command when grips are \"copied\". The override should clean up dynamic workspace stuff."
      },
      {
        "signature": "System.Void OnResetMeshes()",
        "modifiers": ["protected", "virtual"],
        "protected": true,
        "virtual": true,
        "summary": "Just before Rhino turns off object grips, it calls this function. If grips have modified any display meshes, they must override this function and restore the meshes to their original states."
      },
      {
        "signature": "System.Void OnUpdateMesh(Rhino.Geometry.MeshType meshType)",
        "modifiers": ["protected", "virtual"],
        "protected": true,
        "virtual": true,
        "summary": "Just before Rhino shades an object with grips on, it calls this method to update the display meshes.  Grips that modify surface or mesh objects must override this function and modify the display meshes here.",
        "parameters": [
          {
            "name": "meshType",
            "type": "Rhino.Geometry.MeshType",
            "summary": "The mesh type being updated."
          }
        ]
      }
    ]
  },
  {
    "namespace": "Rhino.DocObjects.Custom",
    "name": "CustomPointObject",
    "dataType": "class",
    "baseclass": "Rhino.DocObjects.PointObject",
    "interfaces": ["IDisposable"],
    "constructors": [
      {
        "signature": "CustomPointObject()",
        "modifiers": ["protected"],
        "protected": true,
        "virtual": false
      },
      {
        "signature": "CustomPointObject(Point point)",
        "modifiers": ["protected"],
        "protected": true,
        "virtual": false
      }
    ],
    "methods": [
      {
        "signature": "System.Void Dispose()",
        "modifiers": ["public", "new"],
        "protected": false,
        "virtual": false,
        "since": "5.6"
      },
      {
        "signature": "System.Void Dispose(System.Boolean disposing)",
        "modifiers": ["protected", "override"],
        "protected": true,
        "virtual": false
      }
    ]
  },
  {
    "namespace": "Rhino.DocObjects.Custom",
    "name": "GripsDrawEventArgs",
    "dataType": "class",
    "baseclass": "Rhino.Display.DrawEventArgs",
    "properties": [
      {
        "signature": "int ControlPolygonStyle",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "What kind of line is used to display things like control polygons. 0 = no control polygon,  1 = solid control polygon,  2 = dotted control polygon.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool DrawDynamicStuff",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "If true, then draw stuff that does not move when grips are dragged, like the control polygon of the \"original\" curve.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "bool DrawStaticStuff",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "If true, then draw stuff that moves when grips are dragged, like the curve being bent by a dragged control point.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "Color GripColor",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "int GripStatusCount",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "Color LockedGripColor",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "Color SelectedGripColor",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0",
        "property": ["get", "set"]
      }
    ],
    "methods": [
      {
        "signature": "System.Void DrawControlPolygonLine(Rhino.Geometry.Line line, GripStatus startStatus, GripStatus endStatus)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Draws the lines in a control polygons.  \nThis is an helper function.",
        "since": "5.0",
        "parameters": [
          {
            "name": "line",
            "type": "Rhino.Geometry.Line",
            "summary": "Line between two grips."
          },
          {
            "name": "startStatus",
            "type": "GripStatus",
            "summary": "Grip status at start of line."
          },
          {
            "name": "endStatus",
            "type": "GripStatus",
            "summary": "Grip status at end of line."
          }
        ]
      },
      {
        "signature": "System.Void DrawControlPolygonLine(Rhino.Geometry.Line line, System.Int32 startStatus, System.Int32 endStatus)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Draws the lines in a control polygons.  \nThis is an helper function.",
        "since": "5.0",
        "parameters": [
          {
            "name": "line",
            "type": "Rhino.Geometry.Line",
            "summary": "Line between two grips."
          },
          {
            "name": "startStatus",
            "type": "System.Int32",
            "summary": "Index of Grip status at start of line."
          },
          {
            "name": "endStatus",
            "type": "System.Int32",
            "summary": "Index if Grip status at end of line."
          }
        ]
      },
      {
        "signature": "System.Void DrawControlPolygonLine(Rhino.Geometry.Point3d start, Rhino.Geometry.Point3d end, System.Int32 startStatus, System.Int32 endStatus)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Draws the lines in a control polygons.  \nThis is an helper function.",
        "since": "5.0",
        "parameters": [
          {
            "name": "start",
            "type": "Rhino.Geometry.Point3d",
            "summary": "The point start."
          },
          {
            "name": "end",
            "type": "Rhino.Geometry.Point3d",
            "summary": "The point end."
          },
          {
            "name": "startStatus",
            "type": "System.Int32",
            "summary": "Index of Grip status at start of line defined by start and end."
          },
          {
            "name": "endStatus",
            "type": "System.Int32",
            "summary": "Index if Grip status at end of line defined by start and end."
          }
        ]
      },
      {
        "signature": "GripStatus GripStatus(System.Int32 index)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "System.Void RestoreViewportSettings()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      }
    ]
  },
  {
    "namespace": "Rhino.DocObjects.Custom",
    "name": "GripStatus",
    "dataType": "class",
    "properties": [
      {
        "signature": "bool Culled",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool Visible",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0",
        "property": ["get"]
      }
    ]
  },
  {
    "namespace": "Rhino.DocObjects.Custom",
    "name": "UnknownUserData",
    "dataType": "class",
    "summary": "Represents user data with unknown origin.",
    "baseclass": "Rhino.DocObjects.Custom.UserData",
    "constructors": [
      {
        "signature": "UnknownUserData(IntPtr pointerNativeUserData)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Constructs a new unknown data entity.",
        "since": "5.0",
        "parameters": [
          {
            "name": "pointerNativeUserData",
            "type": "System.IntPtr",
            "summary": "A pointer to the entity."
          }
        ]
      }
    ]
  },
  {
    "namespace": "Rhino.DocObjects.Custom",
    "name": "UserData",
    "dataType": "class",
    "summary": "Provides a base class for custom classes of information which may be attached to geometry or attribute classes.",
    "interfaces": ["IDisposable"],
    "constructors": [
      {
        "signature": "UserData()",
        "summary": "Initializes a new instance of the UserData class"
      }
    ],
    "properties": [
      {
        "signature": "string Description",
        "modifiers": ["public", "virtual"],
        "protected": false,
        "virtual": true,
        "summary": "Descriptive name of the user data.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "bool ShouldWrite",
        "modifiers": ["public", "virtual"],
        "protected": false,
        "virtual": true,
        "summary": "If you want to save this user data in a 3dm file, override ShouldWrite and return true.  If you do support serialization, you must also override the Read and Write functions.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "Transform Transform",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Updated if user data is attached to a piece of geometry that is transformed and the virtual OnTransform() is not overridden.  If you override OnTransform() and want Transform to be updated, then call the base class OnTransform() in your override. The default constructor sets Transform to the identity.",
        "since": "5.0",
        "property": ["get", "set"]
      }
    ],
    "methods": [
      {
        "signature": "System.Void Copy(Runtime.CommonObject source, Runtime.CommonObject destination)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Expert user tool that copies user data that has a positive CopyCount from the source object to a destination object. Generally speaking you don't need to use Copy(). Simply rely on things like the copy constructors to do the right thing.",
        "since": "5.0",
        "parameters": [
          {
            "name": "source",
            "type": "Runtime.CommonObject",
            "summary": "A source object for the data."
          },
          {
            "name": "destination",
            "type": "Runtime.CommonObject",
            "summary": "A destination object for the data."
          }
        ]
      },
      {
        "signature": "System.Guid MoveUserDataFrom(Runtime.CommonObject objectWithUserData)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Moves the user data from objectWithUserData to a temporary data storage identified by the return Guid.  When MoveUserDataFrom returns, the objectWithUserData will not have any user data.",
        "since": "5.0",
        "parameters": [
          {
            "name": "objectWithUserData",
            "type": "Runtime.CommonObject",
            "summary": "Object with user data attached."
          }
        ],
        "returns": "Guid identifier for storage of UserData that is held in a temporary list by this class. This function should be used in conjunction with MoveUserDataTo to transfer the user data to a different object. Returns Guid.Empty if there was no user data to transfer."
      },
      {
        "signature": "System.Void MoveUserDataTo(Runtime.CommonObject objectToGetUserData, System.Guid id, System.Boolean append)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Moves the user data.  \nSee  for more information.",
        "since": "5.0",
        "parameters": [
          {
            "name": "objectToGetUserData",
            "type": "Runtime.CommonObject",
            "summary": "Object data source."
          },
          {
            "name": "id",
            "type": "System.Guid",
            "summary": "Target."
          },
          {
            "name": "append",
            "type": "System.Boolean",
            "summary": "If the data should be appended or replaced."
          }
        ]
      },
      {
        "signature": "System.Void Dispose()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Actively reclaims unmanaged resources that this instance uses.",
        "since": "5.0"
      },
      {
        "signature": "System.Void Dispose(System.Boolean disposing)",
        "modifiers": ["protected", "virtual"],
        "protected": true,
        "virtual": true,
        "summary": "For derived class implementers.  \nThis method is called with argument True when class user calls Dispose(), while with argument False when     the Garbage Collector invokes the finalizer, or Finalize() method.  \nYou must reclaim all used unmanaged resources in both cases, and can use this chance to call Dispose on disposable fields if the argument is true.  \nAlso, you must call the base virtual method within your overriding method.",
        "parameters": [
          {
            "name": "disposing",
            "type": "System.Boolean",
            "summary": "True if the call comes from the Dispose() method; False if it comes from the Garbage Collector finalizer."
          }
        ]
      },
      {
        "signature": "System.Void OnDuplicate(UserData source)",
        "modifiers": ["protected", "virtual"],
        "protected": true,
        "virtual": true,
        "summary": "Is called when the object is being duplicated.",
        "parameters": [
          {
            "name": "source",
            "type": "UserData",
            "summary": "The source data."
          }
        ]
      },
      {
        "signature": "System.Void OnTransform(Geometry.Transform transform)",
        "modifiers": ["protected", "virtual"],
        "protected": true,
        "virtual": true,
        "summary": "Is called when the object associated with this data is transformed. If you override this function, make sure to call the base class if you want the stored Transform to be updated.",
        "parameters": [
          {
            "name": "transform",
            "type": "Geometry.Transform",
            "summary": "The transform being applied."
          }
        ]
      },
      {
        "signature": "System.Boolean Read(FileIO.BinaryArchiveReader archive)",
        "modifiers": ["protected", "virtual"],
        "protected": true,
        "virtual": true,
        "summary": "Reads the content of this data from a stream archive.",
        "parameters": [
          {
            "name": "archive",
            "type": "FileIO.BinaryArchiveReader",
            "summary": "An archive."
          }
        ],
        "returns": "True if the data was successfully written. The default implementation always returns false."
      },
      {
        "signature": "System.Boolean Write(FileIO.BinaryArchiveWriter archive)",
        "modifiers": ["protected", "virtual"],
        "protected": true,
        "virtual": true,
        "summary": "Writes the content of this data to a stream archive.",
        "parameters": [
          {
            "name": "archive",
            "type": "FileIO.BinaryArchiveWriter",
            "summary": "An archive."
          }
        ],
        "returns": "True if the data was successfully written. The default implementation always returns false."
      }
    ]
  },
  {
    "namespace": "Rhino.DocObjects.Custom",
    "name": "UserDataList",
    "dataType": "class",
    "summary": "Represents a collection of user data.",
    "interfaces": ["IEnumerable<UserData>"],
    "properties": [
      {
        "signature": "int Count",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Number of UserData objects in this list.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "UserData this[int index]",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Retrieve through indexer. Read-only access."
      }
    ],
    "methods": [
      {
        "signature": "System.Boolean Add(UserData userdata)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "If the user-data is already in a different UserDataList, it will be removed from that list and added to this list.",
        "since": "5.0",
        "parameters": [
          {
            "name": "userdata",
            "type": "UserData",
            "summary": "Data element."
          }
        ],
        "returns": "Whether this operation succeeded."
      },
      {
        "signature": "System.Boolean Contains(System.Guid userdataId)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Checks for the existence of a specific type of user-data in this list Both .NET and native user-data is checked",
        "since": "6.1"
      },
      {
        "signature": "UserData Find(System.Type userdataType)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Finds a specific data type in this regulated collection.",
        "since": "5.0",
        "parameters": [
          {
            "name": "userdataType",
            "type": "System.Type",
            "summary": "A data type."
          }
        ],
        "returns": "The found data, or None of nothing was found."
      },
      {
        "signature": "IEnumerator<UserData> GetEnumerator()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Get enumerator for UserDataList",
        "since": "6.0"
      },
      {
        "signature": "System.Void Purge()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Removes all user data from this geometry.",
        "since": "6.0",
    "remarks": "User <b>Remove</b> to delete a single, known, item."
      },
      {
        "signature": "System.Boolean Remove(UserData userdata)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Remove the user-data from this list",
        "since": "5.6",
        "returns": "True if the user data was successfully removed"
      }
    ]
  },
  {
    "namespace": "Rhino.DocObjects.Custom",
    "name": "UserDataListEnumerator",
    "dataType": "class",
    "summary": "Enumerator for UserDataList",
    "interfaces": ["IEnumerator<UserData>"],
    "constructors": [
      {
        "signature": "UserDataListEnumerator(UserDataList udl)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Create new UserDataListEnumerator",
        "since": "6.0",
        "parameters": [
          {
            "name": "udl",
            "type": "UserDataList",
            "summary": "UserDataList to enumerate"
          }
        ]
      }
    ],
    "properties": [
      {
        "signature": "UserData Current",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Get current UserData on the enumerator.",
        "since": "6.0",
        "property": ["get"]
      }
    ],
    "methods": [
      {
        "signature": "System.Void Dispose()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Implement Dispose(). NOP.",
        "since": "6.0"
      },
      {
        "signature": "System.Boolean MoveNext()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Advance enumerator to next UserData item.",
        "since": "6.0",
        "returns": "True if there is a next item."
      },
      {
        "signature": "System.Void Reset()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Reset the enumerator",
        "since": "6.0"
      }
    ]
  },
  {
    "namespace": "Rhino.DocObjects.Custom",
    "name": "UserDictionary",
    "dataType": "class",
    "summary": "Defines the storage data class for a <b>Rhino.Collections.ArchivableDictionary</b> .",
    "baseclass": "Rhino.DocObjects.Custom.UserData",
    "constructors": [
      {
        "signature": "UserDictionary()",
        "summary": "Initializes a new instance of the UserDictionary class"
      }
    ],
    "properties": [
      {
        "signature": "string Description",
        "modifiers": ["public", "override"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the text \"RhinoCommon UserDictionary\".",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "ArchivableDictionary Dictionary",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the dictionary that is associated with this class.  \nThis dictionary is unique.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "bool ShouldWrite",
        "modifiers": ["public", "override"],
        "protected": false,
        "virtual": false,
        "summary": "Writes this entity if the count is larger than 0.",
        "since": "5.0",
        "property": ["get"]
      }
    ],
    "methods": [
      {
        "signature": "System.Void OnDuplicate(UserData source)",
        "modifiers": ["protected", "override"],
        "protected": true,
        "virtual": false,
        "summary": "Clones the user data.",
        "parameters": [
          {
            "name": "source",
            "type": "UserData",
            "summary": "The source data."
          }
        ]
      },
      {
        "signature": "System.Boolean Read(FileIO.BinaryArchiveReader archive)",
        "modifiers": ["protected", "override"],
        "protected": true,
        "virtual": false,
        "summary": "Is called to read this entity.",
        "parameters": [
          {
            "name": "archive",
            "type": "FileIO.BinaryArchiveReader",
            "summary": "An archive."
          }
        ],
        "returns": "Always returns true."
      },
      {
        "signature": "System.Boolean Write(FileIO.BinaryArchiveWriter archive)",
        "modifiers": ["protected", "override"],
        "protected": true,
        "virtual": false,
        "summary": "Is called to write this entity.",
        "parameters": [
          {
            "name": "archive",
            "type": "FileIO.BinaryArchiveWriter",
            "summary": "An archive."
          }
        ],
        "returns": "Always returns true."
      }
    ]
  },
  {
    "namespace": "Rhino.DocObjects",
    "name": "DetailViewObject",
    "dataType": "class",
    "summary": "A detail view object is a nested Rhino viewport placed on a page view with a 2D closed curve boundary. It can be any type of modeling view.",
    "baseclass": "Rhino.DocObjects.RhinoObject",
    "properties": [
      {
        "signature": "string DescriptiveTitle",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Detail objects have two strings that can be used to describe the detail: 1. The name string that is part of the object's attributes 2. The viewport projection title that is part of the viewport This function combines these two strings to create a single \"description\" string in the form of attribute_name - projection_title.",
        "since": "7.0",
        "property": ["get"]
      },
      {
        "signature": "DetailView DetailGeometry",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns the detail view geometry.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "bool IsActive",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the active state of the detail view. Note, setting this property will trigger a <b>RhinoPageView.PageViewSpaceChange</b> event.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "Transform PageToWorldTransform",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns the page coordinate to world coordinate transformation.",
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "RhinoPageView ParentPageView",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the page view that this detail view belongs to.",
        "since": "9.0",
    "remarks": "Every detail view object belongs to one page view. Page views can be parent to multiple detail views.",
        "property": ["get"]
      },
      {
        "signature": "RhinoViewport Viewport",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the detail view's viewport.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "Transform WorldToPageTransform",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the world coordinate to page coordinate transformation.",
        "since": "6.0",
        "property": ["get"]
      }
    ],
    "methods": [
      {
        "signature": "System.Boolean CommitViewportChanges()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "System.Boolean GetFormattedScale(ScaleFormat format, out System.String value)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns the detail view object's scale as a formatted string. The detail view object's viewport must be to parallel projection.",
        "since": "7.0",
        "parameters": [
          {
            "name": "format",
            "type": "ScaleFormat",
            "summary": "The scale format."
          },
          {
            "name": "value",
            "type": "System.String",
            "summary": "The formatted string"
          }
        ],
        "returns": "True if successful, False otherwise"
      },
      {
        "signature": "System.Boolean TryGetModelLength(System.Double paper, out System.Double model)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Converts a paper length into a model length.",
        "since": "8.17"
      },
      {
        "signature": "System.Boolean TryGetPaperLength(System.Double model, out System.Double paper)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Converts a paper length into a model length.",
        "since": "8.17"
      }
    ]
  },
  {
    "namespace": "Rhino.DocObjects",
    "name": "DetailViewObject.ScaleFormat",
    "dataType": "enum",
    "summary": "Detail view object scale formats.",
    "since": "7.0",
    "values": [
      {
        "signature": "None",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "No formatting"
      },
      {
        "signature": "PageLengthToOne",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "#:1"
      },
      {
        "signature": "OneToModelLength",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "1:#"
      },
      {
        "signature": "OneInchToModelLengthFeet",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "1\" = #'"
      },
      {
        "signature": "ModelLengthInchToOneFoot",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "#\" = 1'"
      },
      {
        "signature": "ModelLengthInchToOneFootInch",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "#' = 1'-0\""
      }
    ]

  },
  {
    "namespace": "Rhino.DocObjects",
    "name": "DimensionObject",
    "dataType": "class",
    "summary": "Rhino Object that represents dimension geometry and attributes",
    "baseclass": "Rhino.DocObjects.AnnotationObjectBase",
    "properties": [
      {
        "signature": "DimensionStyle DimensionStyle",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the <b>DimensionStyle</b>  associated with this OrdinateDimensionObject.",
        "since": "6.0",
        "property": ["get"]
      }
    ]
  },
  {
    "namespace": "Rhino.DocObjects",
    "name": "DimensionStyle",
    "dataType": "class",
    "summary": "Can also be considered an annotation style since it is used for more than just dimensions",
    "baseclass": "Rhino.DocObjects.ModelComponent",
    "constructors": [
      {
        "signature": "DimensionStyle()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Create a new non-document controlled annotation style",
        "since": "5.0"
      },
      {
        "signature": "DimensionStyle(SerializationInfo info, StreamingContext context)",
        "modifiers": ["protected"],
        "protected": true,
        "virtual": false
      }
    ],
    "properties": [
      {
        "signature": "bool AlternateBelowLine",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "LengthDisplay AlternateDimensionLengthDisplay",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "double AlternateLengthFactor",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "int AlternateLengthResolution",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "string AlternatePrefix",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "double AlternateRoundoff",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "string AlternateSuffix",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "int AlternateToleranceResolution",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool AlternateUnitsDisplay",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "ZeroSuppression AlternateZeroSuppress",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "AngleDisplayFormat AngleFormat",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "int AngleResolution",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "ZeroSuppression AngleZeroSuppress",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "double AngularRoundoff",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "int ArcLengthSymbol",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "Guid ArrowBlockId1",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "Guid ArrowBlockId2",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "double ArrowLength",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "ArrowType ArrowType1",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "ArrowType ArrowType2",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "double BaselineSpacing",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "double CentermarkSize",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "CenterMarkStyle CenterMarkType",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "double ClippingArrowLength",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "property": ["get", "set"]
      },
      {
        "signature": "ClippingArrowType ClippingArrowType1",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "property": ["get", "set"]
      },
      {
        "signature": "ClippingArrowType ClippingArrowType2",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "property": ["get", "set"]
      },
      {
        "signature": "ModelComponentType ComponentType",
        "modifiers": ["public", "override"],
        "protected": false,
        "virtual": false,
        "summary": "Returns <b>ModelComponentType.DimStyle</b> .",
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "char DecimalSeparator",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "7.0",
        "property": ["get", "set"]
      },
      {
        "signature": "LengthDisplay DimensionLengthDisplay",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "double DimensionLineExtension",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "double DimensionScale",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "ScaleValue DimensionScaleValue",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "LeaderContentAngleStyle DimRadialTextAngleType",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "TextLocation DimRadialTextLocation",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "TextOrientation DimRadialTextOrientation",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "LeaderContentAngleStyle DimTextAngleType",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "TextLocation DimTextLocation",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "TextOrientation DimTextOrientation",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool DrawForward",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool DrawTextMask",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "double ExtensionLineExtension",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "double ExtensionLineOffset",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "ArrowFit FitArrow",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.20",
        "property": ["get", "set"]
      },
      {
        "signature": "TextFit FitText",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.20",
        "property": ["get", "set"]
      },
      {
        "signature": "double FixedExtensionLength",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool FixedExtensionOn",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "Font Font",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool ForceDimensionLineBetweenExtensionLines",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.20",
        "property": ["get", "set"]
      },
      {
        "signature": "bool HasFieldOverrides",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Checks if any fields in this DimensionStyle are overrides",
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "bool IsChild",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Tests if this DimensionStyle is a child of any other DimensionStyle",
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "bool IsDeleted",
        "modifiers": ["public", "override"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "bool IsReference",
        "modifiers": ["public", "override"],
        "protected": false,
        "virtual": false,
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "Guid LeaderArrowBlockId",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "double LeaderArrowLength",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "ArrowType LeaderArrowType",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.6",
        "property": ["get", "set"]
      },
      {
        "signature": "LeaderContentAngleStyle LeaderContentAngleType",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Style of leader content angle Horizontal Aligned Rotated",
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "LeaderCurveStyle LeaderCurveType",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool LeaderHasLanding",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "double LeaderLandingLength",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "TextHorizontalAlignment LeaderTextHorizontalAlignment",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "TextOrientation LeaderTextOrientation",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "double LeaderTextRotationDegrees",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "double LeaderTextRotationRadians",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Angle of leader text for Rotated style",
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "TextVerticalAlignment LeaderTextVerticalAlignment",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "double LengthFactor",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "int LengthResolution",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "double LineSpaceScale",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "9.0",
        "property": ["get", "set"]
      },
      {
        "signature": "Color MaskColor",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "MaskType MaskColorSource",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "MaskFrame MaskFrameType",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "7.0",
        "property": ["get", "set"]
      },
      {
        "signature": "double MaskOffset",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "Guid ParentId",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Get or Set the Id of this DimensionStyle's parent. If ParentId is Guid.Empty, this DimensionStyle has no parent",
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "string Prefix",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "double Roundoff",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "double ScaleLeftLengthMillimeters",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "double ScaleRightLengthMillimeters",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "StackDisplayFormat StackFractionFormat",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "double StackHeightScale",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "string Suffix",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool SuppressArrow1",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool SuppressArrow2",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool SuppressExtension1",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool SuppressExtension2",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "double TextGap",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "double TextHeight",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "TextHorizontalAlignment TextHorizontalAlignment",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "int TextMoveLeader",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "TextOrientation TextOrientation",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "double TextRotation",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool TextUnderlined",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "TextVerticalAlignment TextVerticalAlignment",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "ToleranceDisplayFormat ToleranceFormat",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "double ToleranceHeightScale",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "double ToleranceLowerValue",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "int ToleranceResolution",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "double ToleranceUpperValue",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "ZeroSuppression ToleranceZeroSuppress",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool UseKerning",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "9.0",
        "property": ["get", "set"]
      },
      {
        "signature": "int UserStringCount",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the amount of user strings.",
        "since": "8.9",
        "property": ["get"]
      },
      {
        "signature": "ZeroSuppression ZeroSuppress",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get", "set"]
      }
    ],
    "methods": [
      {
        "signature": "UnitSystem AlternateDimensionLengthDisplayUnit(System.UInt32 model_serial_number)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0"
      },
      {
        "signature": "System.Void ClearAllFieldOverrides()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Sets all the fields in this DimensionStyle to be not overridden Does not change any dimstyle_id's or parent_id's",
        "since": "6.0"
      },
      {
        "signature": "System.Void ClearFieldOverride(Field field)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Set the field as not overridden",
        "since": "6.0"
      },
      {
        "signature": "System.Void CopyFrom(DimensionStyle source)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Copy settings from source dimension style without changing the name, Id or index of this DimensionStyle.",
        "since": "6.0",
        "parameters": [
          {
            "name": "source",
            "type": "DimensionStyle",
            "summary": "DimensionStyle to copy settings from."
          }
        ]
      },
      {
        "signature": "Bitmap CreatePreviewBitmap(System.Int32 width, System.Int32 height, System.Boolean transparent)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "9.0"
      },
      {
        "signature": "Bitmap CreatePreviewBitmap(System.Int32 width, System.Int32 height)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0"
      },
      {
        "signature": "System.Void DeleteAllUserStrings()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "8.9"
      },
      {
        "signature": "System.Boolean DeleteUserString(System.String key)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "8.9"
      },
      {
        "signature": "UnitSystem DimensionLengthDisplayUnit(System.UInt32 model_serial_number)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0"
      },
      {
        "signature": "DimensionStyle Duplicate()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Construct a deep (full) copy of this object.",
        "since": "6.0",
        "returns": "An object of the same type as this, with the same properties and behavior."
      },
      {
        "signature": "DimensionStyle Duplicate(System.String newName, System.Guid newId, System.Guid newParentId)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Construct a deep (full) copy of this object.",
        "since": "6.0",
        "returns": "An object of the same type as this, with the same properties and behavior."
      },
      {
        "signature": "System.String GetUserString(System.String key)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets user string from this geometry.",
        "since": "8.9",
        "parameters": [
          {
            "name": "key",
            "type": "System.String",
            "summary": "id used to retrieve the string."
          }
        ],
        "returns": "string associated with the key if successful. None if no key was found."
      },
      {
        "signature": "System.Collections.Specialized.NameValueCollection GetUserStrings()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets a copy of all (user key string, user value string) pairs attached to this geometry.",
        "since": "8.9",
        "returns": "A new collection."
      },
      {
        "signature": "System.Boolean IsChildOf(System.Guid parentId)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Tests if this DimensionStyle is a child of a specific DimensionStyle",
        "since": "6.0",
        "returns": "True if this is a child of the DimensionStyle with Parent False otherwise."
      },
      {
        "signature": "System.Boolean IsFieldOverriden(Field field)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "System.Void ScaleLengthValues(System.Double scale)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Scales all length values by 'scale'",
        "since": "6.0"
      },
      {
        "signature": "System.Void SetFieldOverride(Field field)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Set a field as overridden",
        "since": "6.0"
      },
      {
        "signature": "System.Boolean SetUserString(System.String key, System.String value)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Attach a user string (key,value combination) to this geometry.",
        "since": "8.9",
        "parameters": [
          {
            "name": "key",
            "type": "System.String",
            "summary": "id used to retrieve this string."
          },
          {
            "name": "value",
            "type": "System.String",
            "summary": "string associated with key."
          }
        ],
        "returns": "True on success."
      }
    ]
  },
  {
    "namespace": "Rhino.DocObjects",
    "name": "DimensionStyle.AngleDisplayFormat",
    "dataType": "enum",
    "summary": "Display format for angles",
    "values": [
      {
        "signature": "DecimalDegrees   = 0",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Decimal Degrees"
      },
      {
        "signature": "DegMinSec        = 1",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Degrees Minutes Seconds"
      },
      {
        "signature": "Radians          = 2",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Decimal Radians"
      },
      {
        "signature": "Grads            = 3",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Decimal Gradians"
      }
    ]

  },
  {
    "namespace": "Rhino.DocObjects",
    "name": "DimensionStyle.ArrowFit",
    "dataType": "enum",
    "summary": "Arrow display position inside or outside extension lines",
    "values": [
      {
        "signature": "Auto = 0",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Auto - Display when space permits"
      },
      {
        "signature": "ArrowsInside = 1",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Force arrows inside extensions"
      },
      {
        "signature": "ArrowsOutside = 2",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Force arrows outside extensions"
      }
    ]

  },
  {
    "namespace": "Rhino.DocObjects",
    "name": "DimensionStyle.ArrowType",
    "dataType": "enum",
    "summary": "Defines enumerated values for arrowhead shapes.",
    "values": [
      {
        "signature": "None = 0",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "UserBlock = 1",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "SolidTriangle = 2",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Dot = 3",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Tick = 4",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "ShortTriangle = 5",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "OpenArrow = 6",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Rectangle = 7",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "LongTriangle = 8",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "LongerTriangle = 9",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "SolidDatumTriangle = 10",
        "modifiers": [],
        "protected": false,
        "virtual": false
      }
    ]

  },
  {
    "namespace": "Rhino.DocObjects",
    "name": "DimensionStyle.CenterMarkStyle",
    "dataType": "enum",
    "summary": "Style for drawing centermark for Radial dimensions and Centermark objects",
    "values": [
      {
        "signature": "None = 0",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "No centermark display"
      },
      {
        "signature": "Mark = 1",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "+ mark only"
      },
      {
        "signature": "MarkAndLines = 2",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "+ mark and lines to radius"
      }
    ]

  },
  {
    "namespace": "Rhino.DocObjects",
    "name": "DimensionStyle.ClippingArrowType",
    "dataType": "enum",
    "summary": "Defines enumerated values for arrowhead shapes.",
    "values": [
      {
        "signature": "None = 0",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Triangle = 1",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "OffsetTriangle = 2",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Arrow = 3",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "OffsetArrow = 4",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "OpenArrow = 5",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Rectangle = 6",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Ribbon = 7",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Line = 8",
        "modifiers": [],
        "protected": false,
        "virtual": false
      }
    ]

  },
  {
    "namespace": "Rhino.DocObjects",
    "name": "DimensionStyle.Field",
    "dataType": "enum",
    "summary": "Field identifiers used for file i/o and getting/setting values",
    "values": [
      {
        "signature": "Unset                          = 0",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Name                           = 1",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Dimension style Name property. Cannot be inherited from parent."
      },
      {
        "signature": "Index                          = 2",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Dimension style runtime model component index property. Cannot be inherited from parent."
      },
      {
        "signature": "ExtensionLineExtension         = 3",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "ExtensionLineOffset            = 4",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Arrowsize                      = 5",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "LeaderArrowsize                = 6",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Centermark                     = 7",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "TextGap                        = 8",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "TextHeight                     = 9",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "DimTextLocation                = 10",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Linear, angular, and ordinate dimension text location above/in/below"
      },
      {
        "signature": "MaskFrameType                  = 11",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Text mask frame"
      },
      {
        "signature": "LengthResolution               = 12",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "AngleFormat                    = 13",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "AngleResolution                = 14",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Font                           = 15",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "LengthFactor                   = 16",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "LengthFactor is a rarely used. It applies when a model is being drawn to a scale and the dimension length values should be reverse scaled. For example, if a model is drawn at 1/4 scale, a line 5 units long indicates the real world line is 20 units long. In this case setting LengthFactor to 4 would cause a linear dimension applied to that line to display a value of 20."
      },
      {
        "signature": "Alternate                      = 17",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "AlternateLengthFactor          = 18",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "AlternateLengthFactor is a rarely used. See Length factor for a description of this property."
      },
      {
        "signature": "AlternateLengthResolution      = 20",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Prefix                         = 21",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Suffix                         = 22",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "AlternatePrefix                = 23",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "AlternateSuffix                = 24",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "DimensionLineExtension         = 25",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "SuppressExtension1             = 26",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "SuppressExtension2             = 27",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "ExtLineColorSource             = 28",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "DimLineColorSource             = 29",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "ArrowColorSource               = 30",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "TextColorSource                = 31",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "ExtLineColor                   = 32",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "DimLineColor                   = 33",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "ArrowColor                     = 34",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "TextColor                      = 35",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "ExtLinePlotColorSource         = 36",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "DimLinePlotColorSource         = 37",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "ArrowPlotColorSource           = 38",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "TextPlotColorSource            = 39",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "ExtLinePlotColor               = 40",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "DimLinePlotColor               = 41",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "ArrowPlotColor                 = 42",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "TextPlotColor                  = 43",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "ExtLinePlotWeightSource        = 44",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "DimLinePlotWeightSource        = 45",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "ExtLinePlotWeight_mm           = 46",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "DimLinePlotWeight_mm           = 47",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "ToleranceFormat                = 48",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "ToleranceResolution            = 49",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "ToleranceUpperValue            = 50",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "ToleranceLowerValue            = 51",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "AltToleranceResolution         = 52",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "ToleranceHeightScale           = 53",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "BaselineSpacing                = 54",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "DrawMask                       = 55",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "MaskColorSource                = 56",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "MaskColor                      = 57",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "MaskBorder                     = 58",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "DimensionScale                 = 59",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "DimscaleSource                 = 60",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "FixedExtensionLength           = 61",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "FixedExtensionOn               = 62",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "TextRotation                   = 63",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "SuppressArrow1                 = 64",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "SuppressArrow2                 = 65",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "TextmoveLeader                 = 66",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "ArclengthSymbol                = 67",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "StackTextheightScale           = 68",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "StackFormat                    = 69",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "AltRound                       = 70",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Round                          = 71",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "AngularRound                   = 72",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "AltZeroSuppress                = 73",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "AngleZeroSuppress              = 75",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "ZeroSuppress                   = 76",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "AltBelow                       = 77",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "ArrowType1                     = 78",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "ArrowType2                     = 79",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "LeaderArrowType                = 80",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "ArrowBlockId1                  = 81",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "ArrowBlockId2                  = 82",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "LeaderArrowBlock               = 83",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "DimRadialTextLocation          = 84",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Radial dimension text location above/in/below"
      },
      {
        "signature": "TextVerticalAlignment          = 85",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "LeaderTextVerticalAlignment    = 86",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "LeaderContentAngleStyle        = 87",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "LeaderCurveType                = 88",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "LeaderContentAngle             = 89",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "LeaderHasLanding               = 90",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "LeaderLandingLength            = 91",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "MaskFlags                      = 92",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "CentermarkStyle                = 93",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "TextHorizontalAlignment        = 94",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "LeaderTextHorizontalAlignment  = 95",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "DrawForward                    = 96",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "SignedOrdinate                 = 97",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "UnitSystem                     = 98",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Unit system for dimension rendering sizes like  TextHeight, TextGap, ArrowSize, ExtOffset, and dozens of other properties that control the appearance and placement of the components used to render a dimension."
      },
      {
        "signature": "TextMask                       = 99",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "TextOrientation                = 100",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "LeaderTextOrientation          = 101",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "DimTextOrientation             = 102",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "DimRadialTextOrientation       = 103",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "DimTextAngleStyle              = 104",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "DimRadialTextAngleStyle        = 105",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "TextUnderlined                 = 106",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "DimensionLengthDisplay = 109",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Dimension length display. See ON_DimStyle::DimensionLengthDisplay() for a description of this parameter."
      },
      {
        "signature": "AlternateDimensionLengthDisplay = 110",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Alternate dimension length display. See ON_DimStyle::AlternateDimensionLengthDisplay() for a description of this parameter."
      },
      {
        "signature": "ForceDimLine = 111",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Force dimension line to draw when text is moved outside"
      },
      {
        "signature": "ArrowFit = 112",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Arrow position when arrows won't fit between extensions"
      },
      {
        "signature": "TextFit = 113",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Text position when text won't fit between extensions"
      },
      {
        "signature": "DecimalSeparator = 114",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Character to use for decimal separator in dimension text"
      },
      {
        "signature": "Kerning = 115",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Enable kerning for placement of characters"
      },
      {
        "signature": "LineSpaceScale = 116",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Scale applied for line spacing"
      },
      {
        "signature": "ClippingArrowType1 = 117",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "ClippingArrowType2 = 118",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "ClippingArrowSize = 119",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Count = 120",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Every enum UINT value that identifies a valid dimension style property is less than the UINT value of Count."
      }
    ]

  },
  {
    "namespace": "Rhino.DocObjects",
    "name": "DimensionStyle.LeaderContentAngleStyle",
    "dataType": "enum",
    "summary": "Angle for text or other leader or dimension content",
    "values": [
      {
        "signature": "Horizontal = 0",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Annotation text is horizontal in annotation object's plane"
      },
      {
        "signature": "Aligned = 1",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Aligned with last leader direction or dimension line"
      },
      {
        "signature": "Rotated = 2",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Explicit angle"
      }
    ]

  },
  {
    "namespace": "Rhino.DocObjects",
    "name": "DimensionStyle.LeaderCurveStyle",
    "dataType": "enum",
    "summary": "Type of leader curve",
    "values": [
      {
        "signature": "None = 0",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Polyline = 1",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Spline = 2",
        "modifiers": [],
        "protected": false,
        "virtual": false
      }
    ]

  },
  {
    "namespace": "Rhino.DocObjects",
    "name": "DimensionStyle.LengthDisplay",
    "dataType": "enum",
    "summary": "Dimension display length unit system and style",
    "values": [
      {
        "signature": "ModelUnits = 0",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Decimal current model units"
      },
      {
        "signature": "Millmeters = 3",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Decimal Millimeters"
      },
      {
        "signature": "Centimeters = 4",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Decimal Centimeters"
      },
      {
        "signature": "Meters = 5",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Decimal Meters"
      },
      {
        "signature": "Kilometers = 6",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Decimal Kilometers"
      },
      {
        "signature": "InchesDecimal = 7",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Decimal Inches"
      },
      {
        "signature": "InchesFractional = 1",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Fractional Inches ( 1.75 inches displays as 1-3/4 )"
      },
      {
        "signature": "FeetDecimal = 8",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Decimal Feet"
      },
      {
        "signature": "FeetAndInches = 2",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Feet and Inches ( 14.75 inches displays as 1'-2-3/4\" )"
      },
      {
        "signature": "Miles = 9",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Decimal Miles"
      }
    ]

  },
  {
    "namespace": "Rhino.DocObjects",
    "name": "DimensionStyle.LengthDisplayFormat",
    "dataType": "enum",
    "summary": "Obsolete format for length display - use ON_DimStyle::DimensionLengthDisplay instead",
    "values": [
      {
        "signature": "Decimal       = 0",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Obsolete - use ON_DimStyle::DimensionLengthDisplay::ModelUnits."
      },
      {
        "signature": "Fractional    = 1",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Obsolete - use ON_DimStyle::DimensionLengthDisplay::InchesFractional"
      },
      {
        "signature": "FeetInches = 2",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Obsolete - use ON_DimStyle::DimensionLengthDisplay::FeetAndInches"
      },
      {
        "signature": "FeetDecimalInches = 3",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Obsolete - use ON_DimStyle::DimensionLengthDisplay::FeetAndInches enum."
      }
    ]

  },
  {
    "namespace": "Rhino.DocObjects",
    "name": "DimensionStyle.MaskFrame",
    "dataType": "enum",
    "summary": "Draw a frame stroke around the text mask area",
    "values": [
      {
        "signature": "NoFrame = 0",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Text mask frame not drawn"
      },
      {
        "signature": "RectFrame = 1",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Text mask frame outline rectangle drawn"
      },
      {
        "signature": "CapsuleFrame = 2",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Text mask frame outline capsule drawn"
      },
      {
        "signature": "CircleFrame = 3",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Text mask frame outline circle drawn"
      },
      {
        "signature": "SquareFrame = 4",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Text mask frame outline square drawn"
      },
      {
        "signature": "DiamondFrame = 5",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Text mask frame outline square rotated 45 degrees"
      },
      {
        "signature": "TriangleFrame = 6",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Text mask frame outline triangle drawn"
      },
      {
        "signature": "HexagonFrame = 7",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Text mask frame outline as a hexagon"
      },
      {
        "signature": "HexagonCapsuleFrame = 8",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Text mask frame outline as an elongated hexagon"
      },
      {
        "signature": "RoundRectFrame = 9",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Text mask frame outline as a rounded rectangle"
      }
    ]

  },
  {
    "namespace": "Rhino.DocObjects",
    "name": "DimensionStyle.MaskType",
    "dataType": "enum",
    "summary": "Text mask drawn with background color or explicit color",
    "values": [
      {
        "signature": "BackgroundColor = 0",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Text mask drawn with background color"
      },
      {
        "signature": "MaskColor = 1",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Text mask drawn with explicit color"
      }
    ]

  },
  {
    "namespace": "Rhino.DocObjects",
    "name": "DimensionStyle.StackDisplayFormat",
    "dataType": "enum",
    "summary": "Format of stacked fractions",
    "values": [
      {
        "signature": "None               = 0",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "No stacking"
      },
      {
        "signature": "StackHorizontal    = 1",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Stack with horizontal line"
      },
      {
        "signature": "StackDiagonal      = 2",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Stack with angled line"
      }
    ]

  },
  {
    "namespace": "Rhino.DocObjects",
    "name": "DimensionStyle.TextFit",
    "dataType": "enum",
    "summary": "Text display position inside or outside extension lines",
    "values": [
      {
        "signature": "Auto = 0",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Auto - Display inside when space permits"
      },
      {
        "signature": "TextInside = 1",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Force text inside extensions"
      },
      {
        "signature": "TextRight = 2",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Force text outside to the right of extensions"
      },
      {
        "signature": "TextLeft = 3",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Force text outside to the left of extensions"
      },
      {
        "signature": "TextHintRight = 4",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Move text outside to the right of extensions when it won't fit inside"
      },
      {
        "signature": "TextHintLeft = 5",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Move text outside to the left of extensions when it won't fit inside"
      }
    ]

  },
  {
    "namespace": "Rhino.DocObjects",
    "name": "DimensionStyle.TextLocation",
    "dataType": "enum",
    "summary": "The location of text in linear, angular, radial, and ordinate dimensions.",
    "values": [
      {
        "signature": "AboveDimLine = 0",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Text is above dimension line."
      },
      {
        "signature": "InDimLine = 1",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Text is centered in dimension line."
      },
      {
        "signature": "BelowDimLine = 2",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Text is below dimension line."
      }
    ]

  },
  {
    "namespace": "Rhino.DocObjects",
    "name": "DimensionStyle.ToleranceDisplayFormat",
    "dataType": "enum",
    "summary": "Style of tolerance display for dimensions",
    "values": [
      {
        "signature": "None = 0",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "No tolerance display"
      },
      {
        "signature": "Symmetrical = 1",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Symmetrical +/- tolerance"
      },
      {
        "signature": "Deviation = 2",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Distance +tol, -tol"
      },
      {
        "signature": "Limits = 3",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Distance upper and lower limits"
      }
    ]

  },
  {
    "namespace": "Rhino.DocObjects",
    "name": "DimensionStyle.ZeroSuppression",
    "dataType": "enum",
    "summary": "Marks leading and trailing zeros for removal.",
    "values": [
      {
        "signature": "None                          = 0",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "No zero suppression."
      },
      {
        "signature": "SuppressLeading               = 1",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Suppress leading zeros."
      },
      {
        "signature": "SuppressTrailing              = 2",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Suppress trailing zeros."
      },
      {
        "signature": "SuppressLeadingAndTrailing    = 3",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Suppress leading and trailing zeros."
      },
      {
        "signature": "SuppressZeroFeet              = 4",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Suppress zero feet."
      },
      {
        "signature": "SuppressZeroInches            = 8",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Suppress zero inches."
      },
      {
        "signature": "SuppressZeroFeetAndZeroInches = 12",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Suppress zero feet and zero inches."
      }
    ]

  },
  {
    "namespace": "Rhino.DocObjects",
    "name": "DisplayMode",
    "dataType": "enum",
    "summary": "Defines enumerated values for display modes, such as wireframe or shaded.",
    "since": "5.0",
    "values": [
      {
        "signature": "Default = 0",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "The default display mode."
      },
      {
        "signature": "Wireframe = 1",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "The wireframe display mode.  \nObjects are generally only outlined by their corresponding isocurves and edges."
      },
      {
        "signature": "Shaded = 2",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "The shaded display mode.  \nObjects are generally displayed with their corresponding isocurves and edges,       and are filled with their display colors."
      },
      {
        "signature": "RenderPreview = 3",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "The render display mode.  \nObjects are generally displayed in a similar way to the one that will be resulting       from rendering."
      }
    ]

  },
  {
    "namespace": "Rhino.DocObjects",
    "name": "DistanceDisplayMode",
    "dataType": "enum",
    "summary": "Defines enumerated values for the display of distances in US customary and Imperial units.",
    "since": "5.0",
    "values": [
      {
        "signature": "Decimal = 0",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Shows distance decimals."
      },
      {
        "signature": "Feet = 1",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Show feet."
      },
      {
        "signature": "FeetAndInches = 2",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Show feet and inches."
      }
    ]

  },
  {
    "namespace": "Rhino.DocObjects",
    "name": "EarthAnchorPoint",
    "dataType": "class",
    "summary": "Contains information about the model's position in latitude, longitude, and elevation for GIS mapping applications.",
    "interfaces": ["IDisposable"],
    "constructors": [
      {
        "signature": "EarthAnchorPoint()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Initializes a new instance of the <b>EarthAnchorPoint</b> class.",
        "since": "5.0"
      }
    ],
    "properties": [
      {
        "signature": "string Description",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the long form of the identifying information about this location.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "double EarthBasepointElevation",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the point elevation on earth, in meters.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "EarthCoordinateSystem EarthBasepointElevationCoordinateSystem",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets a value indicating the zero level convention relating to a location on Earth.",
        "since": "8.5",
        "property": ["get", "set"]
      },
      {
        "signature": "BasepointZero EarthBasepointElevationZero",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets a value indicating the zero level convention relating to a location on Earth.",
        "since": "5.0",
        "obsolete": "Please use EarthBasepointElevationCoordinateSystem property",
        "property": ["get", "set"]
      },
      {
        "signature": "double EarthBasepointLatitude",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets a point latitude on earth, in degrees. +90 = north pole, 0 = equator, -90 = south pole.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "double EarthBasepointLongitude",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the point longitude on earth, in degrees.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "double KMLOrientationHeadingAngleDegrees",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets Keyhole Markup Language (KML) orientation heading angle in degrees.",
        "since": "7.11",
        "property": ["get"]
      },
      {
        "signature": "double KMLOrientationHeadingAngleRadians",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets Keyhole Markup Language (KML) orientation heading angle in radians.",
        "since": "7.11",
        "property": ["get"]
      },
      {
        "signature": "double KMLOrientationRollAngleDegrees",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets Keyhole Markup Language (KML) orientation roll angle in degrees.",
        "since": "7.11",
        "property": ["get"]
      },
      {
        "signature": "double KMLOrientationRollAngleRadians",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets Keyhole Markup Language (KML) orientation roll angle in degrees.",
        "since": "7.11",
        "property": ["get"]
      },
      {
        "signature": "double KMLOrientationTiltAngleDegrees",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets Keyhole Markup Language (KML) orientation tilt angle in degrees.",
        "since": "7.11",
        "property": ["get"]
      },
      {
        "signature": "double KMLOrientationTiltAngleRadians",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets Keyhole Markup Language (KML) orientation tilt angle in degrees.",
        "since": "7.11",
        "property": ["get"]
      },
      {
        "signature": "Point3d ModelBasePoint",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Corresponding model point in model coordinates.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "Vector3d ModelEast",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Earth directions in model coordinates.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "Vector3d ModelNorth",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Earth directions in model coordinates.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "string Name",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the short form of the identifying information about this location.",
        "since": "5.0",
        "property": ["get", "set"]
      }
    ],
    "methods": [
      {
        "signature": "System.Void Dispose()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Actively reclaims unmanaged resources that this instance uses.",
        "since": "5.0"
      },
      {
        "signature": "System.Void Dispose(System.Boolean disposing)",
        "modifiers": ["protected", "virtual"],
        "protected": true,
        "virtual": true,
        "summary": "For derived class implementers.  \nThis method is called with argument True when class user calls Dispose(), while with argument False when     the Garbage Collector invokes the finalizer, or Finalize() method.  \nYou must reclaim all used unmanaged resources in both cases, and can use this chance to call Dispose on disposable fields if the argument is true.  \nAlso, you must call the base virtual method within your overriding method.",
        "parameters": [
          {
            "name": "disposing",
            "type": "System.Boolean",
            "summary": "True if the call comes from the Dispose() method; False if it comes from the Garbage Collector finalizer."
          }
        ]
      },
      {
        "signature": "System.Boolean EarthLocationIsSet()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Checks if the earth location is set or not.",
        "since": "6.0",
        "returns": "Boolean value, True if set else false"
      },
      {
        "signature": "Plane GetEarthAnchorPlane(out Vector3d anchorNorth)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns the earth anchor plane",
        "since": "6.0",
        "returns": "A plane value."
      },
      {
        "signature": "Plane GetModelCompass()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns a plane in model coordinates whose X axis points East, Y axis points North and Z axis points Up. The origin is set to ModelBasepoint.",
        "since": "5.0",
        "returns": "A plane value. This might be invalid on error."
      },
      {
        "signature": "Transform GetModelToEarthTransform(LengthUnit modelUnits)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets a transformation from model coordinates to earth coordinates. This transformation assumes the model is small enough that the curvature of the earth can be ignored.",
        "since": "9.0",
    "remarks": "If M is a point in model coordinates and E = model_to_earth*M, then E.x = latitude in decimal degrees E.y = longitude in decimal degrees E.z = elevation in meters above mean sea level Because the earth is not flat, there is a small amount of error when using a linear transformation to calculate oblate spherical coordinates.  This error is small.  If the distance from P to M is d meters, then the approximation error is latitude error  <= longitude error <= elevation error <= 6379000*((1 + (d/6356000)^2)-1) meters  In particular, if every point in the model is within 1000 meters of the m_model_basepoint, then the maximum approximation errors are latitude error  <= longitude error <= elevation error <= 8 centimeters.",
        "parameters": [
          {
            "name": "modelUnits",
            "type": "LengthUnit",
            "summary": "The model length unit."
          }
        ],
        "returns": "Transform on success. Invalid Transform on error."
      },
      {
        "signature": "Transform GetModelToEarthTransform(UnitSystem modelUnitSystem)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets a transformation from model coordinates to earth coordinates. This transformation assumes the model is small enough that the curvature of the earth can be ignored.",
        "since": "5.0",
        "deprecated": "9.0",
        "obsolete": "Since 9.0",
    "remarks": "If M is a point in model coordinates and E = model_to_earth*M, then E.x = latitude in decimal degrees E.y = longitude in decimal degrees E.z = elevation in meters above mean sea level Because the earth is not flat, there is a small amount of error when using a linear transformation to calculate oblate spherical coordinates.  This error is small.  If the distance from P to M is d meters, then the approximation error is latitude error  <= longitude error <= elevation error <= 6379000*((1 + (d/6356000)^2)-1) meters  In particular, if every point in the model is within 1000 meters of the m_model_basepoint, then the maximum approximation errors are latitude error  <= longitude error <= elevation error <= 8 centimeters.",
        "parameters": [
          {
            "name": "modelUnitSystem",
            "type": "UnitSystem",
            "summary": "The model unit system."
          }
        ],
        "returns": "Transform on success. Invalid Transform on error."
      },
      {
        "signature": "System.Boolean ModelLocationIsSet()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Checks if the model location is set or not.",
        "since": "8.5",
        "returns": "Boolean value, True if set else false"
      }
    ]
  },
  {
    "namespace": "Rhino.DocObjects",
    "name": "EarthCoordinateSystem",
    "dataType": "enum",
    "summary": "ON::EarthCoordinateSystem identifies the standard used to define Earth latitude, longitude, and elevation coordinates.",
    "values": [
      {
        "signature": "Unset = 0",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "ON::EarthCoordinateSystem::Unset"
      },
      {
        "signature": "GroundLevel = 1",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "ON::EarthCoordinateSystem::GroundLevel Not well defined, but latitude and longitude will be good enough for architecture sun studies."
      },
      {
        "signature": "MeanSeaLevel = 2",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "CenterOfEarth = 3",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "ON::EarthCoordinateSystem::CenterOfEarth Not well defined. The Earth's center of mass and center of volume are at different locations."
      },
      {
        "signature": "WGS1984 = 5",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "ON::EarthCoordinateSystem::WGS1984 World Geodetic System 1984 standard. (Current GPS standard.)"
      },
      {
        "signature": "EGM2008 = 6",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "ON::EarthCoordinateSystem::EGM2008 Earth Gravitational Model 2008 standard."
      }
    ]

  },
  {
    "namespace": "Rhino.DocObjects",
    "name": "Environment",
    "dataType": "class",
    "summary": "Represents an environment.",
    "baseclass": "Rhino.Runtime.CommonObject",
    "constructors": [
      {
        "signature": "Environment()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Initializes a new environment.",
        "since": "8.0"
      }
    ],
    "properties": [
      {
        "signature": "Color BackgroundColor",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "The background color.",
        "since": "8.0",
        "property": ["get"]
      },
      {
        "signature": "Texture BackgroundImage",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "The background image texture.",
        "since": "8.0",
        "property": ["get"]
      },
      {
        "signature": "BackgroundProjections BackgroundProjection",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "The background projection.",
        "since": "8.0",
        "property": ["get"]
      }
    ]
  },
  {
    "namespace": "Rhino.DocObjects",
    "name": "Environment.BackgroundProjections",
    "dataType": "enum",
    "summary": "The available background projections.",
    "since": "8.0",
    "values": [
      {
        "signature": "Planar = 0",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Planar."
      },
      {
        "signature": "Spherical = 1",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Spherical."
      },
      {
        "signature": "Emap = 2",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Environment map."
      },
      {
        "signature": "Box = 3",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Box."
      },
      {
        "signature": "Automatic = 4",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Automatic."
      },
      {
        "signature": "LightProbe = 5",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Light probe."
      },
      {
        "signature": "CubeMap = 6",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Cube map."
      },
      {
        "signature": "VerticalCrossCubeMap = 7",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Vertical cross cube map."
      },
      {
        "signature": "HorizontalCrossCubeMap = 8",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Horizontal cross cube map."
      },
      {
        "signature": "Hemispherical = 9",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Hemispherical."
      }
    ]

  },
  {
    "namespace": "Rhino.DocObjects",
    "name": "ExtrusionObject",
    "dataType": "class",
    "baseclass": "Rhino.DocObjects.RhinoObject",
    "properties": [
      {
        "signature": "Extrusion ExtrusionGeometry",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0",
        "property": ["get"]
      }
    ],
    "methods": [
      {
        "signature": "Extrusion DuplicateExtrusionGeometry()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      }
    ]
  },
  {
    "namespace": "Rhino.DocObjects",
    "name": "Font",
    "dataType": "class",
    "summary": "Defines a format for text.",
    "interfaces": ["ISerializable"],
    "constructors": [
      {
        "signature": "Font(string familyName, FontWeight weight, FontStyle style, bool underlined, bool strikethrough)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0"
      },
      {
        "signature": "Font(string familyName, FontWeight weight, FontStyle style, FontStretch stretch, bool underlined, bool strikethrough)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "8.0"
      },
      {
        "signature": "Font(string familyName)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0"
      }
    ],
    "properties": [
      {
        "signature": "bool Bold",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "string Description",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns a long description that includes family, face, weight, stretch and style information. Generally not useful for finding matching fonts.",
        "since": "6.5",
        "property": ["get"]
      },
      {
        "signature": "string EnglishFaceName",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns English Face name",
        "since": "6.9",
        "property": ["get"]
      },
      {
        "signature": "string EnglishFamilyName",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.9",
        "property": ["get"]
      },
      {
        "signature": "string EnglishQuartetName",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.12",
        "property": ["get"]
      },
      {
        "signature": "string FaceName",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns Face name",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "string FamilyName",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.5",
        "property": ["get"]
      },
      {
        "signature": "string FamilyPlusFaceName",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns concatenated Family and Face names",
        "since": "6.9",
        "property": ["get"]
      },
      {
        "signature": "bool IsEngravingFont",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.10",
        "property": ["get"]
      },
      {
        "signature": "bool IsGeometricToleranceFont",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "9.0",
        "property": ["get"]
      },
      {
        "signature": "bool IsInstalled",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Is this font installed on the system",
        "since": "8.7",
        "property": ["get"]
      },
      {
        "signature": "bool IsSimulated",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.5",
        "property": ["get"]
      },
      {
        "signature": "bool IsSingleStrokeFont",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.5",
        "property": ["get"]
      },
      {
        "signature": "bool IsSymbolFont",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.5",
        "property": ["get"]
      },
      {
        "signature": "bool Italic",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "string LogfontName",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns Windows LOGFONT Face name",
        "since": "6.5",
        "property": ["get"]
      },
      {
        "signature": "double PointSize",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "string PostScriptName",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns the Font PostScriptName - \"Apple font name\"",
        "since": "6.5",
        "property": ["get"]
      },
      {
        "signature": "string QuartetName",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.7",
        "property": ["get"]
      },
      {
        "signature": "string RichTextFontName",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns the Font RichTextFontName used in RTF strings: {\\\\fonttbl...{\\\\fN RichTextFontName;}...}",
        "since": "6.5",
        "property": ["get"]
      },
      {
        "signature": "FontStretch Stretch",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "8.0",
        "property": ["get"]
      },
      {
        "signature": "bool Strikeout",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "FontStyle Style",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "bool Underlined",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "FontWeight Weight",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get"]
      }
    ],
    "methods": [
      {
        "signature": "System.String[] AvailableFontFaceNames()",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "Font FromQuartetProperties(System.String quartetName, System.Boolean bold, System.Boolean italic)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "6.7"
      },
      {
        "signature": "Font[] InstalledFonts()",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "6.5"
      },
      {
        "signature": "Font[] InstalledFonts(System.String familyName)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "6.5"
      },
      {
        "signature": "FontQuartet[] InstalledFontsAsQuartets()",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "6.7"
      },
      {
        "signature": "System.Void GetObjectData(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Populates a System.Runtime.Serialization.SerializationInfo with the data needed to serialize the target object.",
        "since": "8.0",
        "parameters": [
          {
            "name": "info",
            "type": "System.Runtime.Serialization.SerializationInfo",
            "summary": "The System.Runtime.Serialization.SerializationInfo to populate with data."
          },
          {
            "name": "context",
            "type": "System.Runtime.Serialization.StreamingContext",
            "summary": "The destination (see System.Runtime.Serialization.StreamingContext) for this serialization."
          }
        ]
      },
      {
        "signature": "Font GetSubstituteFont()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "If this font is not installed on the system, try to find a substitute",
        "since": "8.7"
      }
    ]
  },
  {
    "namespace": "Rhino.DocObjects",
    "name": "Font.FontOrigin",
    "dataType": "enum",
    "summary": "Platform where font originated. This information is useful when searching for appropriate substitutes.",
    "values": [
      {
        "signature": "Unset = 0",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Not set."
      },
      {
        "signature": "Unknown = 1",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Origin unknown. Changing an ON_Font characteristic like weight or style sets the origin to unknown."
      },
      {
        "signature": "WindowsFont = 2",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Set from a Windows IDWriteFont by ON_Font::SetFromDWriteFont() or a Windows LOGFONT by ON_Font::SetFromWindowsLogFont() and FaceName and WindowLogfontName match a font installed on a Windows device."
      },
      {
        "signature": "AppleFont = 3",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Set from an Apple CTFont. The PostScriptName() and FamilyName() match a font installed on device running MacOS or iOS. The FaceName() matches the \"typeface\" name shown in the MacOS FontBook app."
      }
    ]

  },
  {
    "namespace": "Rhino.DocObjects",
    "name": "Font.FontStretch",
    "dataType": "enum",
    "summary": "Horizontal expansion or contraction of font",
    "values": [
      {
        "signature": "Unset = 0",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Not set."
      },
      {
        "signature": "Ultracondensed = 1",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Extracondensed = 2",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Condensed = 3",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Semicondensed = 4",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Medium = 5",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Default font stretch."
      },
      {
        "signature": "Semiexpanded = 6",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Expanded = 7",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Extraexpanded = 8",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Ultraexpanded = 9",
        "modifiers": [],
        "protected": false,
        "virtual": false
      }
    ]

  },
  {
    "namespace": "Rhino.DocObjects",
    "name": "Font.FontStyle",
    "dataType": "enum",
    "summary": "Vertical angle of font Upright, Italic, or Oblique",
    "values": [
      {
        "signature": "Unset = 0",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Not set."
      },
      {
        "signature": "Upright = 1",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Default font style."
      },
      {
        "signature": "Italic = 2",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "The face is sloped so the top is to the right of the base. Face names sometimes use the word \"oblique\" for italic faces."
      },
      {
        "signature": "Oblique = 3",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "The face is sloped so the top is to the left of the base. This is extremely rare. NOTE WELL: Face names sometimes use the word \"oblique\" for italic faces."
      }
    ]

  },
  {
    "namespace": "Rhino.DocObjects",
    "name": "Font.FontType",
    "dataType": "enum",
    "summary": "An enum that reports if the font face is available on the current device.",
    "values": [
      {
        "signature": "Unset = 0",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Not set."
      },
      {
        "signature": "ManagedFont = 1",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "In the managed font list."
      },
      {
        "signature": "InstalledFont = 2",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "In the installed font list."
      }
    ]

  },
  {
    "namespace": "Rhino.DocObjects",
    "name": "Font.FontWeight",
    "dataType": "enum",
    "summary": "Weight enum values Avoid casting these values to int. Use ON_Font::WindowsLogfontWeightFromWeight() or ON_Font::AppleWeightOfFontFromWeight() or add another converter.",
    "values": [
      {
        "signature": "Unset = 0",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Not set."
      },
      {
        "signature": "Thin = 1",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "IsLight = True"
      },
      {
        "signature": "Ultralight = 2",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "IsLight = True"
      },
      {
        "signature": "Light = 3",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "IsLight = True"
      },
      {
        "signature": "Normal = 4",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Default font weight. IsNormalWeight = True  Also called Regular."
      },
      {
        "signature": "Medium = 5",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "IsNormalWeight = True"
      },
      {
        "signature": "Semibold = 6",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "IsBold = True"
      },
      {
        "signature": "Bold = 7",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "IsBold = True"
      },
      {
        "signature": "Ultrabold = 8",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "IsBold = True"
      },
      {
        "signature": "Heavy      = 9",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "IsBold = True Also called Black"
      }
    ]

  },
  {
    "namespace": "Rhino.DocObjects",
    "name": "FontQuartet",
    "dataType": "class",
    "constructors": [
      {
        "signature": "FontQuartet(string name, bool supportsRegular, bool supportsBold, bool supportsItalic, bool supportsBoldItalic)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.26"
      }
    ],
    "properties": [
      {
        "signature": "bool HasBoldFont",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.7",
        "property": ["get", "set"]
      },
      {
        "signature": "bool HasBoldItalicFont",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.7",
        "property": ["get", "set"]
      },
      {
        "signature": "bool HasItalicFont",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.7",
        "property": ["get", "set"]
      },
      {
        "signature": "bool HasRegularFont",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.7",
        "property": ["get", "set"]
      },
      {
        "signature": "string QuartetName",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.7",
        "property": ["get", "set"]
      }
    ],
    "methods": [
      {
        "signature": "System.String ToString()",
        "modifiers": ["public", "override"],
        "protected": false,
        "virtual": false
      }
    ]
  },
  {
    "namespace": "Rhino.DocObjects",
    "name": "GripObject",
    "dataType": "class",
    "baseclass": "Rhino.DocObjects.RhinoObject",
    "properties": [
      {
        "signature": "Point3d CurrentLocation",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "int Index",
        "modifiers": ["public", "override"],
        "protected": false,
        "virtual": false,
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool Moved",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "True if the grip has moved from OriginalLocation.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "Point3d OriginalLocation",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "Guid OwnerId",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "double Weight",
        "modifiers": ["public", "virtual"],
        "protected": false,
        "virtual": true,
        "summary": "The weight of a NURBS control point grip or RhinoMath.UnsetValue if the grip is not a NURBS control point grip.",
        "since": "5.0",
        "property": ["get", "set"]
      }
    ],
    "methods": [
      {
        "signature": "System.Boolean GetCageParameters(out System.Double u, out System.Double v, out System.Double w)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Retrieves the 2d parameter space values of this GripObject from the cage it's associated with.",
        "since": "6.0",
        "returns": "True on success. Output is unreliable if return is false."
      },
      {
        "signature": "System.Int32 GetCurveCVIndices(out System.Int32[] cvIndices)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Retrieves the NURBS curve control point indices of this GripObject from the curve it is associated with.",
        "since": "8.10",
        "parameters": [
          {
            "name": "cvIndices",
            "type": "System.Int32[]",
            "summary": "The NURBS curve control point indices."
          }
        ],
        "returns": "The number of NURBS curve control points managed by this grip. If the grip is not a curve control point, zero is returned."
      },
      {
        "signature": "System.Boolean GetCurveParameters(out System.Double t)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Retrieves the 2d parameter space values of this GripObject from the curve it's associated with.",
        "since": "6.0",
        "returns": "True on success. Output is unreliable if return is false."
      },
      {
        "signature": "System.Boolean GetGripDirections(out Vector3d u, out Vector3d v, out Vector3d normal)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Sometimes grips have directions.  These directions can have any length and do not have to be orthogonal.",
        "since": "6.0",
        "parameters": [
          {
            "name": "u",
            "type": "Vector3d",
            "summary": "u direction"
          },
          {
            "name": "v",
            "type": "Vector3d",
            "summary": "v direction"
          },
          {
            "name": "normal",
            "type": "Vector3d",
            "summary": "normal direction"
          }
        ],
        "returns": "True if the grip has directions."
      },
      {
        "signature": "System.Int32 GetSurfaceCVIndices(out Tuple<int, int>[] cvIndices)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Retrieves the NURBS surface control point indices of this GripObject from the surface it is associated with.",
        "since": "8.10",
        "parameters": [
          {
            "name": "cvIndices",
            "type": "Tuple<int, int>[]",
            "summary": "The NURBS surface control point indices as tuples."
          }
        ],
        "returns": "The number of NURBS surface control points managed by this grip. If the grip is not a surface control point, zero is returned."
      },
      {
        "signature": "System.Boolean GetSurfaceParameters(out System.Double u, out System.Double v)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Retrieves the NURBS surface 2d parameter space values of this GripObject from the surface it's associated with.",
        "since": "6.0",
        "returns": "True on success. Output is unreliable if return is false."
      },
      {
        "signature": "System.Void Move(Point3d newLocation)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Moves the grip to a new location.",
        "since": "5.0",
        "parameters": [
          {
            "name": "newLocation",
            "type": "Point3d",
            "summary": "New location for grip."
          }
        ]
      },
      {
        "signature": "System.Void Move(Transform xform)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Moves the grip to a new location.",
        "since": "5.0",
        "parameters": [
          {
            "name": "xform",
            "type": "Transform",
            "summary": "Transformation applied to the OriginalLocation point."
          }
        ]
      },
      {
        "signature": "System.Void Move(Vector3d delta)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Moves the grip to a new location.",
        "since": "5.0",
        "parameters": [
          {
            "name": "delta",
            "type": "Vector3d",
            "summary": "Translation applied to the OriginalLocation point."
          }
        ]
      },
      {
        "signature": "GripObject NeighborGrip(System.Int32 directionR, System.Int32 directionS, System.Int32 directionT, System.Boolean wrap)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Used to get a grip's logical neighbors, like NURBS curve, surface, and cage control point grips.",
        "since": "5.0",
        "parameters": [
          {
            "name": "directionR",
            "type": "System.Int32",
            "summary": "-1 to go back one grip, +1 to move forward one grip.  For curves, surfaces and cages, this is the first parameter direction."
          },
          {
            "name": "directionS",
            "type": "System.Int32",
            "summary": "-1 to go back one grip, +1 to move forward one grip.  For surfaces and cages this is the second parameter direction."
          },
          {
            "name": "directionT",
            "type": "System.Int32",
            "summary": "For cages this is the third parameter direction"
          },
          {
            "name": "wrap",
            "type": "System.Boolean",
            "summary": ""
          }
        ],
        "returns": "logical neighbor or None if the is no logical neighbor"
      },
      {
        "signature": "System.Void UndoMove()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Undoes any grip moves made by calling Move.",
        "since": "5.0"
      }
    ]
  },
  {
    "namespace": "Rhino.DocObjects",
    "name": "Group",
    "dataType": "class",
    "baseclass": "Rhino.DocObjects.ModelComponent",
    "properties": [
      {
        "signature": "ModelComponentType ComponentType",
        "modifiers": ["public", "override"],
        "protected": false,
        "virtual": false,
        "summary": "Returns <b>ModelComponentType.Group</b> .",
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "int UserStringCount",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the amount of user strings.",
        "since": "6.4",
        "property": ["get"]
      }
    ],
    "methods": [
      {
        "signature": "System.Void DeleteAllUserStrings()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "8.11"
      },
      {
        "signature": "System.Boolean DeleteUserString(System.String key)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "8.11"
      },
      {
        "signature": "System.String GetUserString(System.String key)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets user string from this geometry.",
        "since": "6.4",
        "parameters": [
          {
            "name": "key",
            "type": "System.String",
            "summary": "id used to retrieve the string."
          }
        ],
        "returns": "string associated with the key if successful. None if no key was found."
      },
      {
        "signature": "System.Collections.Specialized.NameValueCollection GetUserStrings()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets a copy of all (user key string, user value string) pairs attached to this geometry.",
        "since": "6.4",
        "returns": "A new collection."
      },
      {
        "signature": "System.Boolean SetUserString(System.String key, System.String value)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Attach a user string (key,value combination) to this geometry.",
        "since": "6.4",
        "parameters": [
          {
            "name": "key",
            "type": "System.String",
            "summary": "id used to retrieve this string."
          },
          {
            "name": "value",
            "type": "System.String",
            "summary": "string associated with key."
          }
        ],
        "returns": "True on success."
      }
    ]
  },
  {
    "namespace": "Rhino.DocObjects",
    "name": "HatchLine",
    "dataType": "class",
    "summary": "Hatch lines are used by hatch pattern to specify the dashes and offset patterns of the lines.",
    "remarks": "Each line has the following information: Angle is the direction of the line counter-clockwise from the x-axis. The first line origin is at the base point. Each line repetition is offset from the previous line. Offset.X is parallel to the line and Offset.Y is perpendicular to the line. The base and offset values are rotated by the line's angle to produce a location in the hatch pattern's coordinate system. There can be gaps and dashes specified for drawing the line. If there are no dashes, the line is solid. Negative length dashes are gaps. Positive length dashes are drawn as line segments.",
    "interfaces": ["IDisposable"],
    "since": "8.0",
    "constructors": [
      {
        "signature": "HatchLine()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Construts a new hatch line.",
        "since": "8.0"
      },
      {
        "signature": "HatchLine(HatchLine hatchLine)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Construts a new hatch line.",
        "since": "8.0",
        "parameters": [
          {
            "name": "hatchLine",
            "type": "HatchLine",
            "summary": "The hatch line to copy."
          }
        ]
      }
    ],
    "properties": [
      {
        "signature": "double Angle",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets and sets the angle, in radians, of the hatch line. The angle is measured counter-clockwise from the x-axis.",
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "Point2d BasePoint",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Get and sets this line's 2d base point.",
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "int DashCount",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the number of dashes + gaps in this line.",
        "since": "8.0",
        "property": ["get"]
      },
      {
        "signature": "IEnumerable<double> GetDashes",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets all of the dashes.",
        "since": "8.0",
        "property": ["get"]
      },
      {
        "signature": "bool IsValid",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Verifies a hatch line is valid.",
        "since": "8.0",
        "property": ["get"]
      },
      {
        "signature": "Vector2d Offset",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Get and sets this line's 2d offset for line repetitions. Offset.X is shift parallel to line. Offset.Y is spacing perpendicular to line.",
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "double PatternLength",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Get the total length of a pattern repeat.",
        "since": "8.0",
        "property": ["get"]
      }
    ],
    "methods": [
      {
        "signature": "System.Void AppendDash(System.Double dash)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Add a dash to the pattern.",
        "since": "8.0",
        "parameters": [
          {
            "name": "dash",
            "type": "System.Double",
            "summary": "Length to append, < 0 for a gap."
          }
        ]
      },
      {
        "signature": "System.Double DashAt(System.Int32 dashIndex)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Get the dash length at the specified index.",
        "since": "8.0",
        "parameters": [
          {
            "name": "dashIndex",
            "type": "System.Int32",
            "summary": "Index of the dash to get."
          }
        ],
        "returns": "The length of the dash. or gap if negative."
      },
      {
        "signature": "System.Void Dispose()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Actively releases the unmanaged object.",
        "since": "8.0"
      },
      {
        "signature": "System.Void Dispose(System.Boolean disposing)",
        "modifiers": ["protected", "virtual"],
        "protected": true,
        "virtual": true,
        "summary": "Releases the unmanaged object."
      },
      {
        "signature": "System.Void SetDashes(IEnumerable<double> dashes)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Sets a new dash array.",
        "since": "8.0",
        "parameters": [
          {
            "name": "dashes",
            "type": "IEnumerable<double>",
            "summary": "The dash enumeration."
          }
        ]
      }
    ]
  },
  {
    "namespace": "Rhino.DocObjects",
    "name": "HatchObject",
    "dataType": "class",
    "baseclass": "Rhino.DocObjects.RhinoObject",
    "properties": [
      {
        "signature": "Hatch HatchGeometry",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0",
        "property": ["get"]
      }
    ]
  },
  {
    "namespace": "Rhino.DocObjects",
    "name": "HatchPattern",
    "dataType": "class",
    "baseclass": "Rhino.DocObjects.ModelComponent",
    "constructors": [
      {
        "signature": "HatchPattern()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "HatchPattern(HatchPattern other)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "8.15"
      }
    ],
    "properties": [
      {
        "signature": "bool AlwaysModelDistances",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Hatchpattern patterns are typically interpreted as distances on the printed output when printing. In this case AlwaysModelDistances is False (default). When set to true, the hatch pattern will be interpreted as being in world distances.",
        "since": "9.0",
        "property": ["get", "set"]
      },
      {
        "signature": "ModelComponentType ComponentType",
        "modifiers": ["public", "override"],
        "protected": false,
        "virtual": false,
        "summary": "Returns <b>ModelComponentType.HatchPattern</b> .",
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "string Description",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets and sets a short description of the pattern.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "HatchPatternFillType FillType",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the pattern's fill type.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "int HatchLineCount",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Get the number of HatchLines in the pattern.",
        "since": "8.0",
        "property": ["get"]
      },
      {
        "signature": "IEnumerable<HatchLine> HatchLines",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets all the hatch lines.",
        "since": "8.0",
        "property": ["get"]
      },
      {
        "signature": "int Index",
        "modifiers": ["public", "override"],
        "protected": false,
        "virtual": false,
        "summary": "Index in the hatch pattern table for this pattern. -1 if not in the table.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool InUse",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns True if the hatch pattern is in use by a Rhino object, a layer, an instance definition, or a section style.",
        "since": "8.15",
        "property": ["get"]
      },
      {
        "signature": "bool IsDeleted",
        "modifiers": ["public", "override"],
        "protected": false,
        "virtual": false,
        "summary": "Deleted hatch patterns are kept in the runtime hatch pattern table so that undo will work with hatch patterns.  Call IsDeleted to determine to determine if a hatch pattern is deleted.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "bool IsReference",
        "modifiers": ["public", "override"],
        "protected": false,
        "virtual": false,
        "summary": "Rhino allows multiple files to be viewed simultaneously. Hatch patterns in the document are \"normal\" or \"reference\". Reference hatch patterns are not saved.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "UnitSystem PatternUnitSystem",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Hatchpattern patterns are typically defined as distances on the printed output when printing. In this case PatternUnitSystem is UnitSystem.None (default). When set to any other unit system, the hatch pattern will be scaled acordingly.",
        "since": "9.0",
        "property": ["get", "set"]
      },
      {
        "signature": "int UserStringCount",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the amount of user strings.",
        "since": "8.9",
        "property": ["get"]
      }
    ],
    "methods": [
      {
        "signature": "HatchPattern[] GetDefaultHatchPatterns()",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Gets Rhino default hatch patterns. These patterns are not in the document hatch pattern table.",
        "since": "9.0",
        "returns": "An array of hatch patterns."
      },
      {
        "signature": "HatchPattern[] ReadFromFile(System.String filename, System.Boolean quiet)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Reads hatch pattern definitions from a file.",
        "since": "5.0",
        "parameters": [
          {
            "name": "filename",
            "type": "System.String",
            "summary": "Name of an existing file. If filename is None or empty, default hatch pattern filename is used."
          },
          {
            "name": "quiet",
            "type": "System.Boolean",
            "summary": "Ignored."
          }
        ],
        "returns": "An array of hatch patterns. This can be null, but not empty."
      },
      {
        "signature": "System.Boolean WriteToFile(System.String filename, HatchPattern hatchPattern)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Writes a hatch pattern defintion to a file.",
        "since": "8.15",
    "remarks": "Output file is in AutoCAD .PAT format.",
        "parameters": [
          {
            "name": "filename",
            "type": "System.String",
            "summary": "Name of file to create. If file exists, it will be overwritten."
          },
          {
            "name": "hatchPattern",
            "type": "HatchPattern",
            "summary": "The hatch pattern to write."
          }
        ],
        "returns": "True if successful, False otherwise."
      },
      {
        "signature": "System.Boolean WriteToFile(System.String filename, IEnumerable<HatchPattern> hatchPatterns)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Writes one or more hatch pattern defintions to a file.",
        "since": "8.15",
    "remarks": "Output file is in AutoCAD .PAT format.",
        "parameters": [
          {
            "name": "filename",
            "type": "System.String",
            "summary": "Name of file to create. If file exists, it will be overwritten."
          },
          {
            "name": "hatchPatterns",
            "type": "IEnumerable<HatchPattern>",
            "summary": "The enumeration of hatch patterns to write."
          }
        ],
        "returns": "True if successful, False otherwise."
      },
      {
        "signature": "System.Int32 AddHatchLine(HatchLine hatchLine)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Add a HatchLine to the pattern.",
        "since": "8.0",
        "parameters": [
          {
            "name": "hatchLine",
            "type": "HatchLine",
            "summary": "The hatch line to add."
          }
        ],
        "returns": "The index of newly added hatch line, or -1 on failure."
      },
      {
        "signature": "Rhino.Geometry.Line[] CreatePreviewGeometry(System.Int32 width, System.Int32 height, System.Double angle)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Creates preview line segments of the hatch pattern.",
        "since": "6.8",
        "parameters": [
          {
            "name": "width",
            "type": "System.Int32",
            "summary": "The width of the preview."
          },
          {
            "name": "height",
            "type": "System.Int32",
            "summary": "The height of the preview."
          },
          {
            "name": "angle",
            "type": "System.Double",
            "summary": "The rotation angle of the pattern display in radians."
          }
        ],
        "returns": "The preview line segments if successful, an empty array on failure."
      },
      {
        "signature": "System.Void DeleteAllUserStrings()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "8.9"
      },
      {
        "signature": "System.Boolean DeleteUserString(System.String key)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "8.9"
      },
      {
        "signature": "System.String GetUserString(System.String key)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets user string from this geometry.",
        "since": "8.9",
        "parameters": [
          {
            "name": "key",
            "type": "System.String",
            "summary": "id used to retrieve the string."
          }
        ],
        "returns": "string associated with the key if successful. None if no key was found."
      },
      {
        "signature": "System.Collections.Specialized.NameValueCollection GetUserStrings()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets a copy of all (user key string, user value string) pairs attached to this geometry.",
        "since": "8.9",
        "returns": "A new collection."
      },
      {
        "signature": "HatchLine HatchLineAt(System.Int32 hatchLineIndex)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets a HatchLine at an index.",
        "since": "8.0",
        "parameters": [
          {
            "name": "hatchLineIndex",
            "type": "System.Int32",
            "summary": "The index of the hatch line."
          }
        ],
        "returns": "The hatch line, or None on failure."
      },
      {
        "signature": "System.Void OnSwitchToNonConst()",
        "modifiers": ["protected", "override"],
        "protected": true,
        "virtual": false
      },
      {
        "signature": "System.Void RemoveAllHatchLines()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Remove all of the hatch line from the pattern.",
        "since": "8.0"
      },
      {
        "signature": "System.Boolean RemoveHatchLine(System.Int32 hatchLineIndex)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Remove a hatch line from the pattern.",
        "since": "8.0",
        "parameters": [
          {
            "name": "hatchLineIndex",
            "type": "System.Int32",
            "summary": "The index of the hatch line to remove."
          }
        ],
        "returns": "True if successful, False if index is out of range."
      },
      {
        "signature": "System.Int32 SetHatchLines(IEnumerable<HatchLine> hatchLines)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Set all of the hatch lines at once. Existing hatch lines are deleted.",
        "since": "8.0",
        "parameters": [
          {
            "name": "hatchLines",
            "type": "IEnumerable<HatchLine>",
            "summary": "An enumeration of hatch lines."
          }
        ],
        "returns": "The number of hatch lines added."
      },
      {
        "signature": "System.Boolean SetUserString(System.String key, System.String value)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Attach a user string (key,value combination) to this geometry.",
        "since": "8.9",
        "parameters": [
          {
            "name": "key",
            "type": "System.String",
            "summary": "id used to retrieve this string."
          },
          {
            "name": "value",
            "type": "System.String",
            "summary": "string associated with key."
          }
        ],
        "returns": "True on success."
      }
    ]
  },
  {
    "namespace": "Rhino.DocObjects",
    "name": "HatchPattern.Defaults",
    "dataType": "class",
    "constructors": [
      {
        "signature": "HatchPattern.Defaults()",
        "summary": "Initializes a new instance of the HatchPattern.Defaults class"
      }
    ],
    "properties": [
      {
        "signature": "HatchPattern Dash",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "HatchPattern Grid",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "HatchPattern Grid60",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "HatchPattern Hatch1",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "HatchPattern Hatch2",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "HatchPattern Hatch3",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "HatchPattern Plus",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "HatchPattern Solid",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "HatchPattern Squares",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get"]
      }
    ]
  },
  {
    "namespace": "Rhino.DocObjects",
    "name": "HatchPatternFillType",
    "dataType": "enum",
    "since": "5.0",
    "values": [
      {
        "signature": "Solid = 0",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Lines = 1",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Gradient = 2",
        "modifiers": [],
        "protected": false,
        "virtual": false
      }
    ]

  },
  {
    "namespace": "Rhino.DocObjects",
    "name": "HistoryRecord",
    "dataType": "class",
    "summary": "Provides a single bundling of information to be passed to Rhino when setting up history for an object.",
    "remarks": "To use this object, just pass it to a RhinoDoc.Add() method along with the needed geometry. Do not reuse this class for more than one history addition.",
    "interfaces": ["IDisposable"],
    "constructors": [
      {
        "signature": "HistoryRecord(Command command, int version)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      }
    ],
    "properties": [
      {
        "signature": "bool CopyOnReplaceObject",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "When an object is replaced and the old object has a history record with this field set, the history record is copied and attached to the new object. That allows a descendant object to continue the history linkage after it is edited.",
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "IntPtr Handle",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Wrapped native C++ pointer to CRhinoHistory instance",
        "since": "5.0",
        "property": ["get"]
      }
    ],
    "methods": [
      {
        "signature": "System.Void Dispose()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Actively reclaims unmanaged resources that this instance uses.",
        "since": "5.0"
      },
      {
        "signature": "System.Void Dispose(System.Boolean disposing)",
        "modifiers": ["protected", "virtual"],
        "protected": true,
        "virtual": true,
        "summary": "For derived class implementers.  \nThis method is called with argument True when class user calls Dispose(), while with argument False when     the Garbage Collector invokes the finalizer, or Finalize() method.  \nYou must reclaim all used unmanaged resources in both cases, and can use this chance to call Dispose on disposable fields if the argument is true.  \nAlso, you must call the base virtual method within your overriding method.",
        "parameters": [
          {
            "name": "disposing",
            "type": "System.Boolean",
            "summary": "True if the call comes from the Dispose() method; False if it comes from the Garbage Collector finalizer."
          }
        ]
      },
      {
        "signature": "System.Boolean SetBool(System.Int32 id, System.Boolean value)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "System.Boolean SetBools(System.Int32 id, IEnumerable<bool> values)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "System.Boolean SetBrep(System.Int32 id, Geometry.Brep value)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "System.Boolean SetColor(System.Int32 id, System.Drawing.Color value)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "System.Boolean SetColors(System.Int32 id, IEnumerable<Color> values)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "System.Boolean SetCurve(System.Int32 id, Geometry.Curve value)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "System.Boolean SetDouble(System.Int32 id, System.Double value)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "System.Boolean SetDoubles(System.Int32 id, IEnumerable<double> values)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "System.Boolean SetGuid(System.Int32 id, System.Guid value)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "System.Boolean SetGuids(System.Int32 id, IEnumerable<Guid> values)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "System.Boolean SetHistoryVersion(System.Int32 historyVersion)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Specifies a non-zero integer that identifies the version of this history record. The virtual ReplayHistory() functions can check this version to avoid replaying history using information created by earlier versions of the command.",
        "since": "6.0",
        "parameters": [
          {
            "name": "historyVersion",
            "type": "System.Int32",
            "summary": "Any non-zero integer. It is strongly suggested that something like YYYYMMDD be used."
          }
        ],
        "returns": "True if successful."
      },
      {
        "signature": "System.Boolean SetInt(System.Int32 id, System.Int32 value)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "System.Boolean SetInts(System.Int32 id, IEnumerable<int> values)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "System.Boolean SetMesh(System.Int32 id, Geometry.Mesh value)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "System.Boolean SetObjRef(System.Int32 id, ObjRef value)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "System.Boolean SetPoint3d(System.Int32 id, Rhino.Geometry.Point3d value)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "System.Boolean SetPoint3dOnObject(System.Int32 id, ObjRef objref, Rhino.Geometry.Point3d value)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "System.Boolean SetPoint3ds(System.Int32 id, IEnumerable<Point3d> values)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "System.Boolean SetString(System.Int32 id, System.String value)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "System.Boolean SetStrings(System.Int32 id, IEnumerable<string> values)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "System.Boolean SetSurface(System.Int32 id, Geometry.Surface value)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "System.Boolean SetTransorm(System.Int32 id, Rhino.Geometry.Transform value)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "System.Boolean SetVector3d(System.Int32 id, Rhino.Geometry.Vector3d value)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "System.Boolean SetVector3ds(System.Int32 id, IEnumerable<Vector3d> values)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      }
    ]
  },
  {
    "namespace": "Rhino.DocObjects",
    "name": "InstanceDefinition",
    "dataType": "class",
    "summary": "This is the same as <b>InstanceDefinitionGeometry</b> , but in a Rhino document.",
    "baseclass": "Rhino.Geometry.InstanceDefinitionGeometry",
    "properties": [
      {
        "signature": "InstanceDefinitionArchiveFileStatus ArchiveFileStatus",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns the archive file status of a linked instance definition.",
        "since": "5.2",
        "property": ["get"]
      },
      {
        "signature": "ModelComponentType ComponentType",
        "modifiers": ["public", "override"],
        "protected": false,
        "virtual": false,
        "summary": "Returns <b>ModelComponentType.InstanceDefinition</b> .",
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "int Index",
        "modifiers": ["public", "override"],
        "protected": false,
        "virtual": false,
        "summary": "Index of this instance definition in the index definition table.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "bool IsDeleted",
        "modifiers": ["public", "override"],
        "protected": false,
        "virtual": false,
        "summary": "Returns True if this instance definition is deleted. Deleted object are not saved to a file archive.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "bool IsReference",
        "modifiers": ["public", "override"],
        "protected": false,
        "virtual": false,
        "summary": "An object from a work session reference model is reference a reference object and cannot be modified.  An object is a reference object if, and only if, it is on a reference layer.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "bool IsTenuous",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "True if this instance definition is from a linked file. It will be saved only if it is referenced by an instance reference object that is in the active geometry list and is being saved. Note that there can be multiple linked instance definitions with references to tenuous instance definitions.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "InstanceDefinitionLayerStyle LayerStyle",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Specifies how model components (layers, materials, dimension styles, etc.) from linked instance definition files appear in the active model.",
        "since": "7.8",
        "property": ["get", "set"]
      },
      {
        "signature": "int ObjectCount",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Number of objects this definition uses. This counts the objects that are used to define the geometry. This does NOT count the number of references to this instance definition.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "bool SkipNestedLinkedDefinitions",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "This property applies when an instance definition is linked. If true, when reading the file that defines the content of the linked instance definition, skip any linked instance definitions found in that file. If false, when reading the file that defines the content of the linked instance definition, recursively load linked instance definitions found in that file.",
        "since": "7.8",
        "property": ["get", "set"]
      },
      {
        "signature": "string SourceArchive",
        "modifiers": ["public", "new"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the full file path for linked instance definitions.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "UnitSystem UnitSystem",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the unit system of the instance definition. If the instance definition was imported from another 3dm file, the unit system may differ from that of the document.",
        "since": "7.0",
        "property": ["get", "set"]
      },
      {
        "signature": "InstanceDefinitionUpdateType UpdateType",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0",
        "property": ["get"]
      }
    ],
    "methods": [
      {
        "signature": "System.Drawing.Bitmap CreatePreviewBitmap(Display.DefinedViewportProjection definedViewportProjection, DisplayMode displayMode, System.Drawing.Size bitmapSize, System.Boolean applyDpiScaling)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Creates a preview bitmap of the instance definition.",
        "since": "6.0",
        "parameters": [
          {
            "name": "definedViewportProjection",
            "type": "Display.DefinedViewportProjection",
            "summary": "The view projection."
          },
          {
            "name": "displayMode",
            "type": "DisplayMode",
            "summary": "The display mode."
          },
          {
            "name": "bitmapSize",
            "type": "System.Drawing.Size",
            "summary": "The bitmap size in pixels."
          },
          {
            "name": "applyDpiScaling",
            "type": "System.Boolean",
            "summary": "Specify True to apply DPI scaling (Windows-only)."
          }
        ],
        "returns": "The preview bitmap if successful, None otherwise."
      },
      {
        "signature": "System.Drawing.Bitmap CreatePreviewBitmap(Display.DefinedViewportProjection definedViewportProjection, DisplayMode displayMode, System.Drawing.Size bitmapSize)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Creates a preview bitmap of the instance definition.",
        "since": "5.0",
        "parameters": [
          {
            "name": "definedViewportProjection",
            "type": "Display.DefinedViewportProjection",
            "summary": "The view projection."
          },
          {
            "name": "displayMode",
            "type": "DisplayMode",
            "summary": "The display mode."
          },
          {
            "name": "bitmapSize",
            "type": "System.Drawing.Size",
            "summary": "The bitmap size in pixels."
          }
        ],
        "returns": "The preview bitmap if successful, None otherwise."
      },
      {
        "signature": "System.Drawing.Bitmap CreatePreviewBitmap(Display.DefinedViewportProjection definedViewportProjection, System.Drawing.Size bitmapSize, System.Boolean applyDpiScaling)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Creates a wireframe preview bitmap of the instance definition.",
        "since": "6.0",
        "parameters": [
          {
            "name": "definedViewportProjection",
            "type": "Display.DefinedViewportProjection",
            "summary": "The view projection."
          },
          {
            "name": "bitmapSize",
            "type": "System.Drawing.Size",
            "summary": "The bitmap size in pixels."
          },
          {
            "name": "applyDpiScaling",
            "type": "System.Boolean",
            "summary": "Specify True to apply DPI scaling (Windows-only)."
          }
        ],
        "returns": "The preview bitmap if successful, None otherwise."
      },
      {
        "signature": "System.Drawing.Bitmap CreatePreviewBitmap(Display.DefinedViewportProjection definedViewportProjection, System.Drawing.Size bitmapSize)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Creates a wireframe preview bitmap of the instance definition.",
        "since": "5.0",
        "parameters": [
          {
            "name": "definedViewportProjection",
            "type": "Display.DefinedViewportProjection",
            "summary": "The view projection."
          },
          {
            "name": "bitmapSize",
            "type": "System.Drawing.Size",
            "summary": "The bitmap size in pixels."
          }
        ],
        "returns": "The preview bitmap if successful, None otherwise."
      },
      {
        "signature": "System.Drawing.Bitmap CreatePreviewBitmap(System.Guid displayModeId, Display.DefinedViewportProjection viewportProjection, Display.IsometricCamera isometricCamera, System.Boolean drawDecorations, System.Drawing.Size bitmapSize, System.Boolean applyDpiScaling)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Creates a preview bitmap of the instance definition.",
        "since": "8.10",
        "parameters": [
          {
            "name": "displayModeId",
            "type": "System.Guid",
            "summary": "The id of the display mode to draw with."
          },
          {
            "name": "viewportProjection",
            "type": "Display.DefinedViewportProjection",
            "summary": "The view projection."
          },
          {
            "name": "isometricCamera",
            "type": "Display.IsometricCamera",
            "summary": "The isometric camera angle."
          },
          {
            "name": "drawDecorations",
            "type": "System.Boolean",
            "summary": "Specify True to draw viewport decorations, such as grid and axes."
          },
          {
            "name": "bitmapSize",
            "type": "System.Drawing.Size",
            "summary": "The bitmap size in pixels."
          },
          {
            "name": "applyDpiScaling",
            "type": "System.Boolean",
            "summary": "Specify True to apply DPI scaling (Windows-only)."
          }
        ],
        "returns": "The preview bitmap if successful, None otherwise."
      },
      {
        "signature": "System.Drawing.Bitmap CreatePreviewBitmap(System.Guid definitionObjectId, Display.DefinedViewportProjection viewportProjection, DisplayMode displayMode, System.Drawing.Size bitmapSize, System.Boolean applyDpiScaling)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Creates a preview bitmap of the instance definition.",
        "since": "6.21",
        "parameters": [
          {
            "name": "definitionObjectId",
            "type": "System.Guid",
            "summary": "Id of one of this definition's objects to draw selected."
          },
          {
            "name": "viewportProjection",
            "type": "Display.DefinedViewportProjection",
            "summary": "The view projection."
          },
          {
            "name": "displayMode",
            "type": "DisplayMode",
            "summary": "The display mode."
          },
          {
            "name": "bitmapSize",
            "type": "System.Drawing.Size",
            "summary": "The bitmap size in pixels."
          },
          {
            "name": "applyDpiScaling",
            "type": "System.Boolean",
            "summary": "Specify True to apply DPI scaling (Windows-only)."
          }
        ],
        "returns": "The preview bitmap if successful, None otherwise."
      },
      {
        "signature": "System.Boolean Equals(System.Object obj)",
        "modifiers": ["public", "override"],
        "protected": false,
        "virtual": false,
        "summary": "Equality is checked against InstanceDefinition.Id",
        "returns": "True if obj.Id equals Id"
      },
      {
        "signature": "InstanceDefinition[] GetContainers()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets a list of all the InstanceDefinitions that contain a reference this InstanceDefinition.",
        "since": "5.0",
        "returns": "An array of instance definitions. The returned array can be empty, but not null."
      },
      {
        "signature": "System.Int32 GetHashCode()",
        "modifiers": ["public", "override"],
        "protected": false,
        "virtual": false,
        "summary": "Use Id.GetHashCode()"
      },
      {
        "signature": "RhinoObject[] GetObjects()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets an array with the objects that belong to this instance definition.",
        "since": "5.0",
        "returns": "An array of Rhino objects. The returned array can be empty, but not null."
      },
      {
        "signature": "InstanceObject[] GetReferences(System.Int32 wheretoLook)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets a list of the CRhinoInstanceObjects (inserts) that contains a reference this instance definition.",
        "since": "5.0",
        "parameters": [
          {
            "name": "wheretoLook",
            "type": "System.Int32",
            "summary": "0 = get top level references in active document.  \n1 = get top level and nested references in active document.  \n2 = check for references from other instance definitions."
          }
        ],
        "returns": "An array of instance objects. The returned array can be empty, but not null."
      },
      {
        "signature": "System.Boolean InUse(System.Int32 wheretoLook)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Determines whether the instance definition is referenced.",
        "since": "5.0",
        "parameters": [
          {
            "name": "wheretoLook",
            "type": "System.Int32",
            "summary": "0 = check for top level references in active document.  \n1 = check for top level and nested references in active document.  \n2 = check for references in other instance definitions."
          }
        ],
        "returns": "True if the instance definition is used; otherwise false."
      },
      {
        "signature": "RhinoObject Object(System.Int32 index)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "returns an object used as part of this definition.",
        "since": "5.0",
        "parameters": [
          {
            "name": "index",
            "type": "System.Int32",
            "summary": "0 <= index < ObjectCount."
          }
        ],
        "returns": "Returns an object that is used to define the geometry. Does NOT return an object that references this definition.count the number of references to this instance."
      },
      {
        "signature": "System.Int32 UseCount()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns the number of references of this instance definition in the model. Both top-level references and nested instances are included in the count.",
        "since": "7.4",
        "returns": "The number of references of this instance definition in the model."
      },
      {
        "signature": "System.Int32 UseCount(out System.Int32 topLevelReferenceCount, out System.Int32 nestedReferenceCount)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns the number of references of this instance definition in the model. Both top-level references and nested instances are included in the count.",
        "since": "7.4",
        "parameters": [
          {
            "name": "topLevelReferenceCount",
            "type": "System.Int32",
            "summary": "The number of top-level references."
          },
          {
            "name": "nestedReferenceCount",
            "type": "System.Int32",
            "summary": "The number of nested instances."
          }
        ],
        "returns": "The number of references of this instance definition in the model."
      },
      {
        "signature": "System.Int32 UsesDefinition(System.Int32 otherIdefIndex)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Determines if this instance definition contains a reference to another instance definition.",
        "since": "5.0",
        "parameters": [
          {
            "name": "otherIdefIndex",
            "type": "System.Int32",
            "summary": "index of another instance definition."
          }
        ],
        "returns": "0      no 1      other_idef_index is the index of this instance definition >1      This InstanceDefinition uses the instance definition and the returned value is the nesting depth."
      },
      {
        "signature": "System.Boolean UsesLayer(System.Int32 layerIndex)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns True if some object in the instance definition is on the layer with the specified layer index.",
        "since": "8.7",
        "parameters": [
          {
            "name": "layerIndex",
            "type": "System.Int32",
            "summary": "The index of layer to search for."
          }
        ],
        "returns": "True if there is an object in the instance definition that is on the layer."
      },
      {
        "signature": "System.Boolean UsesLinetype(System.Int32 linetypeIndex)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns True if some object in the instance definition references the linetype with the specified linetype index.",
        "since": "8.7",
        "parameters": [
          {
            "name": "linetypeIndex",
            "type": "System.Int32",
            "summary": "The index of linetype to search for."
          }
        ],
        "returns": "True if there is an object in the instance definition that references that linetype."
      }
    ]
  },
  {
    "namespace": "Rhino.DocObjects",
    "name": "InstanceDefinitionArchiveFileStatus",
    "dataType": "enum",
    "summary": "The archive file of a linked instance definition can have the following possible states. Use InstanceObject.ArchiveFileStatus to query a instance definition's archive file status.",
    "since": "5.2",
    "values": [
      {
        "signature": "NotALinkedInstanceDefinition = -3",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "The instance definition is not a linked instance definition."
      },
      {
        "signature": "LinkedFileNotReadable = -2",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "The instance definition's archive file is not readable."
      },
      {
        "signature": "LinkedFileNotFound = -1",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "The instance definition's archive file cannot be found."
      },
      {
        "signature": "LinkedFileIsUpToDate = 0",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "The instance definition's archive file is up-to-date."
      },
      {
        "signature": "LinkedFileIsNewer = 1",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "The instance definition's archive file is newer."
      },
      {
        "signature": "LinkedFileIsOlder = 2",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "The instance definition's archive file is older."
      },
      {
        "signature": "LinkedFileIsDifferent = 3",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "The instance definition's archive file is different."
      }
    ]

  },
  {
    "namespace": "Rhino.DocObjects",
    "name": "InstanceDefinitionLayerStyle",
    "dataType": "enum",
    "summary": "InstanceDefinition.LayerStyle specifies how model components (layers, materials, dimension styles, etc.) from linked instance definition files appear in the active model.",
    "since": "5.0",
    "values": [
      {
        "signature": "None = 0",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "This is the only valid layer style when the instance definition type is InstanceDefinitionUpdateType.Static or InstanceDefinitionUpdateType.LinkedAndEmbedded. This style is not valid when the instance definition type is InstanceDefinitionUpdateType.Linked."
      },
      {
        "signature": "Active = 1",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Model components (layers, materials, dimension styles, etc.) from linked instance definition files are embedded as ordinary components in the active model. This layer style may be used when the instance definition type is InstanceDefinitionUpdateType.Linked."
      },
      {
        "signature": "Reference = 2",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Layers from the linked instance definition are reference components in the model. This is the default layer style when the instance definition type is InstanceDefinitionUpdateType.Linked. This layer style may be used when the instance definition type is InstanceDefinitionUpdateType.Linked."
      }
    ]

  },
  {
    "namespace": "Rhino.DocObjects",
    "name": "InstanceDefinitionUpdateType",
    "dataType": "enum",
    "summary": "The possible relationships between the instance definition geometry and the archive containing the original definition.",
    "since": "5.0",
    "values": [
      {
        "signature": "Static = 0",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "The Rhino user interface uses the term \"Embedded\" for Static update types. This instance definition is never updated. If m_source_archive is set, it records the origin of the instance definition geometry, but m_source_archive is never used to update the instance definition."
      },
      {
        "signature": "    Embedded = 1",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "This instance definition geometry was imported from another archive and is embedded. If the source archive changes, the user is asked if they want to update the instance definition.",
        "obsolete": "Always use Static"
      },
      {
        "signature": "LinkedAndEmbedded = 2",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "This instance definition geometry was imported from another archive and is embedded. If the source archive changes, the instance definition is automatically updated. If the soruce archive is not available, the instance definition is still valid."
      },
      {
        "signature": "Linked = 3",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "This instance definition geometry was imported from another archive and is not embedded. If the source archive changes, the instance definition is automatically updated. If the source archive is not available, the instance definition is not valid."
      }
    ]

  },
  {
    "namespace": "Rhino.DocObjects",
    "name": "InstanceObject",
    "dataType": "class",
    "baseclass": "Rhino.DocObjects.RhinoObject",
    "properties": [
      {
        "signature": "Point3d InsertionPoint",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Base point coordinates of a block.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "InstanceDefinition InstanceDefinition",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "instance definition that this object uses.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "Transform InstanceXform",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "transformation applied to an instance definition for this object.",
        "since": "5.0",
        "property": ["get"]
      }
    ],
    "methods": [
      {
        "signature": "System.Void Explode(System.Boolean explodeNestedInstances, out RhinoObject[] pieces, out ObjectAttributes[] pieceAttributes, out Transform[] pieceTransforms)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Explodes the instance reference into pieces.",
        "since": "5.0",
        "parameters": [
          {
            "name": "explodeNestedInstances",
            "type": "System.Boolean",
            "summary": "If true, then nested instance references are recursively exploded into pieces until actual geometry is found. If false, an InstanceObject is added to the pieces out parameter when this InstanceObject has nested references."
          },
          {
            "name": "pieces",
            "type": "RhinoObject[]",
            "summary": "An array of Rhino objects will be assigned to this out parameter during this call."
          },
          {
            "name": "pieceAttributes",
            "type": "ObjectAttributes[]",
            "summary": "An array of object attributes will be assigned to this out parameter during this call."
          },
          {
            "name": "pieceTransforms",
            "type": "Transform[]",
            "summary": "An array of the previously applied transform matrices will be assigned to this out parameter during this call."
          }
        ]
      },
      {
        "signature": "System.Void Explode(System.Boolean skipHiddenPieces, System.Guid viewportId, System.Boolean explodeNestedInstances, out RhinoObject[] pieces, out ObjectAttributes[] pieceAttributes, out Transform[] pieceTransforms)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Explodes the instance reference into pieces.",
        "since": "8.9",
        "parameters": [
          {
            "name": "skipHiddenPieces",
            "type": "System.Boolean",
            "summary": "If true, pieces that are not visible will not be appended to the pieces out parameter."
          },
          {
            "name": "viewportId",
            "type": "System.Guid",
            "summary": "If skipHiddenPieces is false, then viewportId is ignored. If bSkipHiddenPieces is True and viewportId is not Guid.Empty, then layer and object per viewport visibility settings are used. If bSkipHiddenPieces is True and viewport_id is Guid.Empty, then layer and object global visibility settings are used."
          },
          {
            "name": "explodeNestedInstances",
            "type": "System.Boolean",
            "summary": "If true, then nested instance references are recursively exploded into pieces until actual geometry is found. If false, an InstanceObject is added to the pieces out parameter when this InstanceObject has nested references."
          },
          {
            "name": "pieces",
            "type": "RhinoObject[]",
            "summary": "An array of Rhino objects will be assigned to this out parameter during this call."
          },
          {
            "name": "pieceAttributes",
            "type": "ObjectAttributes[]",
            "summary": "An array of object attributes will be assigned to this out parameter during this call."
          },
          {
            "name": "pieceTransforms",
            "type": "Transform[]",
            "summary": "An array of the previously applied transform matrices will be assigned to this out parameter during this call."
          }
        ]
      },
      {
        "signature": "RhinoObject SubObjectFromComponentIndex(ComponentIndex ci)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Get a RhinoObject in this block",
        "since": "8.0"
      },
      {
        "signature": "System.Boolean UsesDefinition(System.Int32 definitionIndex, out System.Int32 nestingLevel)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Determine if this reference uses an instance definition",
        "since": "5.2",
        "parameters": [
          {
            "name": "definitionIndex",
            "type": "System.Int32",
            "summary": ""
          },
          {
            "name": "nestingLevel",
            "type": "System.Int32",
            "summary": "If the instance definition is used, this is the definition's nesting depth"
          }
        ],
        "returns": "True or False depending on if the definition is used"
      }
    ]
  },
  {
    "namespace": "Rhino.DocObjects",
    "name": "ItemColorSource",
    "dataType": "enum",
    "summary": "Color source for a per-item color override on object attributes (for example, hatch boundary color or hatch pattern color). Selects whether the color is read from the layer, from the object's main attribute color, inherited from the parent, or read from a custom override color stored on the attribute itself.",
    "since": "9.0",
    "values": [
      {
        "signature": "ColorFromLayer = 0",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Use color assigned to layer."
      },
      {
        "signature": "ColorFromObject = 1",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Use the object's main attribute color."
      },
      {
        "signature": "ColorFromParent = 3",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "For objects with parents (like objects in instance references), use the parent's color. If no parent, treat as ColorFromLayer."
      },
      {
        "signature": "ColorCustom = 4",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Use the per-item custom override color stored on the attribute (for example, the color set by the matching color property such as HatchBoundaryColor or HatchPatternColor)."
      }
    ]

  },
  {
    "namespace": "Rhino.DocObjects",
    "name": "Layer",
    "dataType": "class",
    "baseclass": "Rhino.DocObjects.ModelComponent",
    "interfaces": ["IEquatable<Layer>"],
    "constructors": [
      {
        "signature": "Layer()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      }
    ],
    "properties": [
      {
        "signature": "string PathSeparator",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "The string \"::\" (colon,colon) is used to separate parent and child layer names.",
        "since": "6.0",
        "obsolete": "Use ModelComponent.NamePathSeparator",
        "property": ["get"]
      },
      {
        "signature": "Color Color",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the display color for this layer.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "ComponentStatus ComponentStatus",
        "modifiers": ["public", "override"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the status of the layer.",
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "ModelComponentType ComponentType",
        "modifiers": ["public", "override"],
        "protected": false,
        "virtual": false,
        "summary": "Returns <b>ModelComponentType.Layer</b> .",
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "string Description",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets and sets a short description of the layer.",
        "since": "9.0",
        "property": ["get", "set"]
      },
      {
        "signature": "string FullPath",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the full path to this layer. The full path includes nesting information.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "Guid Id",
        "modifiers": ["public", "override"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the ID of this layer object. You typically do not need to assign a custom ID.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "int IgesLevel",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the IGES level for this layer.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool IsCurrent",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns True if the layer is the current layer.",
        "since": "8.0",
        "property": ["get"]
      },
      {
        "signature": "bool IsDeleted",
        "modifiers": ["public", "override"],
        "protected": false,
        "virtual": false,
        "summary": "Gets a value indicating whether this layer has been deleted and is currently in the Undo buffer.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "bool IsExpanded",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets a value indicating whether this layer is expanded in the Rhino Layer dialog.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool IsLocked",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets a value indicating the locked state of this layer.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool IsReference",
        "modifiers": ["public", "override"],
        "protected": false,
        "virtual": false,
        "summary": "Gets a value indicting whether this layer is a referenced layer. Referenced layers are part of referenced documents.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "bool IsReferenceParentLayer",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns True if the layer is a parent layer of the layer tree from a linked instance definition or the layer tree from a worksession reference model.",
        "since": "8.0",
        "property": ["get"]
      },
      {
        "signature": "bool IsVisible",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the global visibility of this layer.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool IsVisibleInUserInterface",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Return True if the layer is visible in user interfaces that display layers. Returns False if the layer not visible in user interfaces. This is a runtime property that does not persist in .3dm files. This property is also used by the Layers panel to filter layers.",
        "since": "8.9",
        "property": ["get", "set"]
      },
      {
        "signature": "int LayerIndex",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the index of this layer.",
        "since": "5.0",
        "obsolete": "Use the Index property.",
        "property": ["get", "set"]
      },
      {
        "signature": "int LinetypeIndex",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the line-type index for this layer.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool ModelIsVisible",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the model visiblity of this layer.",
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool ModelPersistentVisibility",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the model persistent visibility of this layer. The persistent viability setting is used for layers whose visibility can be changed by a parent layer. In this case, when a parent layer is turned off, then child layers are also turned off. The persistent visibility setting determines what happens when the parent is turned on again.",
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "string Name",
        "modifiers": ["public", "override"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the name of this layer.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "Guid ParentLayerId",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the ID of the parent layer. Layers can be organized in a hierarchical structure, in which case this returns the parent layer ID. If the layer has no parent, Guid.Empty will be returned.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool PersistentVisibility",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the global persistent visibility setting for this layer.",
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool PerViewportIsVisibleInNewDetails",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets and sets the initial per viewport visibility of this layer in newly created detail views.",
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "Color PlotColor",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the plot color for this layer.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "double PlotWeight",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the weight of the plotting pen in millimeters. A weight of 0.0 indicates the \"default\" pen weight should be used. A weight of -1.0 indicates the layer should not be printed.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "RenderMaterial RenderMaterial",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the <b>Render.RenderMaterial</b> for objects on this layer that have MaterialSource() == MaterialFromLayer. A None result indicates that no <b>Render.RenderMaterial</b> has been assigned  and the material created by the default Material constructor or the <b>RenderMaterialIndex</b> should be used.",
        "since": "5.7",
        "property": ["get", "set"]
      },
      {
        "signature": "int RenderMaterialIndex",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the index of render material for objects on this layer that have MaterialSource() == MaterialFromLayer. A material index of -1 indicates no material has been assigned and the material created by the default Material constructor should be used.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "int SectionStyleIndex",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the section style index for this layer.",
        "property": ["get", "set"]
      },
      {
        "signature": "int SortIndex",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Runtime index used to sort layers in layer dialog.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "int UserStringCount",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the amount of user strings.",
        "since": "5.0",
        "property": ["get"]
      }
    ],
    "methods": [
      {
        "signature": "Layer GetDefaultLayerProperties()",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Constructs a layer with the current default properties. The default layer properties are:  \ncolor = Rhino.ApplicationSettings.AppearanceSettings.DefaultLayerColor  \nline style = Rhino.ApplicationSettings.AppearanceSettings.DefaultLayerLineStyle  \nmaterial index = -1  \nIGES level = -1  \nmode = NormalLayer  \nname = empty  \nlayer index = 0 (ignored by AddLayer)",
        "since": "5.0",
        "returns": "A new layer instance."
      },
      {
        "signature": "System.String GetLeafName(Layer layer)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Get a layer name's \"leaf\" level name",
        "since": "6.0",
        "returns": "leaf name or String.Empty if fullPath does not contain a leaf"
      },
      {
        "signature": "System.String GetLeafName(System.String fullPath)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Get a layer name's \"leaf\" level name",
        "since": "6.0",
        "returns": "leaf name or String.Empty if fullPath does not contain a leaf"
      },
      {
        "signature": "System.String GetParentName(Layer layer)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Get a layer's \"parent\" path name",
        "since": "6.0",
        "returns": "parent name or String.Empty"
      },
      {
        "signature": "System.String GetParentName(System.String fullPath)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Get a layer's \"parent\" path name",
        "since": "6.0",
        "returns": "parent name or String.Empty"
      },
      {
        "signature": "System.Boolean IsValidName(System.String name)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Determines if a given string is valid for a layer name.",
        "since": "5.0",
        "deprecated": "8.0",
        "obsolete": "Use ModelComponent.IsValidComponentName",
        "parameters": [
          {
            "name": "name",
            "type": "System.String",
            "summary": "A name to be validated."
          }
        ],
        "returns": "True if the name is valid for a layer name; otherwise, false."
      },
      {
        "signature": "System.Boolean CommitChanges()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0",
        "deprecated": "6.0",
        "obsolete": "No longer needed. Layer changes in the document are now immediate"
      },
      {
        "signature": "System.Void CopyAttributesFrom(Layer otherLayer)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Copy typical attributes from another layer",
        "since": "6.0"
      },
      {
        "signature": "System.Void Default()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Sets layer to default settings.",
        "since": "5.0"
      },
      {
        "signature": "System.Void DeleteAllUserStrings()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "8.9"
      },
      {
        "signature": "System.Void DeleteModelVisible()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Remove any model visibility setting so the layer's global setting will be used for all viewports.",
        "since": "8.0"
      },
      {
        "signature": "System.Void DeletePerViewportColor(System.Guid viewportId)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Remove any per viewport layer color setting so the layer's overall setting will be used for all viewports.",
        "since": "6.0",
        "parameters": [
          {
            "name": "viewportId",
            "type": "System.Guid",
            "summary": "If not Guid.Empty, then the setting for this viewport will be deleted. If Guid.Empty, the all per viewport layer color settings will be removed."
          }
        ]
      },
      {
        "signature": "System.Void DeletePerViewportPlotColor(System.Guid viewportId)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Remove any per viewport layer plot color setting so the layer's overall setting will be used for all viewports.",
        "since": "6.0",
        "parameters": [
          {
            "name": "viewportId",
            "type": "System.Guid",
            "summary": "If not Guid.Empty, then the setting for this viewport will be deleted. If Guid.Empty, the all per viewport layer color settings will be removed."
          }
        ]
      },
      {
        "signature": "System.Void DeletePerViewportPlotWeight(System.Guid viewportId)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Remove any per viewport layer plot weight setting so the layer's overall setting will be used for all viewports.",
        "since": "6.0",
        "parameters": [
          {
            "name": "viewportId",
            "type": "System.Guid",
            "summary": "If not Guid.Empty, then the setting for this viewport will be deleted. If Guid.Empty, the all per viewport layer color settings will be removed."
          }
        ]
      },
      {
        "signature": "System.Void DeletePerViewportSettings(System.Guid viewportId)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Deletes per viewport layer settings.",
        "since": "6.0",
        "parameters": [
          {
            "name": "viewportId",
            "type": "System.Guid",
            "summary": "If not Guid.Empty, then the settings for that viewport are deleted. If Guid.Empty, then all per viewport settings are deleted."
          }
        ]
      },
      {
        "signature": "System.Void DeletePerViewportVisible(System.Guid viewportId)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Remove any per viewport visibility setting so the layer's overall setting will be used for all viewports.",
        "since": "6.0",
        "parameters": [
          {
            "name": "viewportId",
            "type": "System.Guid",
            "summary": "If not Guid.Empty, then the setting for this viewport will be deleted. If Guid.Empty, the all per viewport visibility settings will be removed."
          }
        ]
      },
      {
        "signature": "System.Void DeletePlotColor()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Removes the plot color for layer. The layer's color will be used for the plot color.",
        "since": "8.26"
      },
      {
        "signature": "System.Boolean DeleteUserString(System.String key)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "8.9"
      },
      {
        "signature": "System.Boolean Equals(Layer other)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0"
      },
      {
        "signature": "System.Boolean Equals(System.Object obj)",
        "modifiers": ["public", "override"],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Layer[] GetChildren()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets immediate children of this layer. Note that child layers may have their own children.",
        "since": "5.0",
        "returns": "Array of child layers, sorted by layer index, or None if this layer does not have any children."
      },
      {
        "signature": "Layer[] GetChildren(System.Boolean allChildren)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the children of this layer.",
        "since": "8.0",
        "parameters": [
          {
            "name": "allChildren",
            "type": "System.Boolean",
            "summary": "If false, the immediate children are returned. If true, immediate children, their children, and so on, are returned."
          }
        ],
        "returns": "Array of child layers, sorted by layer index, or None if this layer does not have any children."
      },
      {
        "signature": "SectionStyle GetCustomSectionStyle()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Get an optional custom section style associated with these attributes.",
        "since": "8.0"
      },
      {
        "signature": "System.Int32 GetHashCode()",
        "modifiers": ["public", "override"],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "System.Boolean GetPersistentLocking()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "The persistent locking setting is used for layers that can be locked by a \"parent\" object. A common case is when a layer is a child layer (Layer.ParentI is not nil). In this case, when a parent layer is locked, then child layers are also locked. The persistent locking setting determines what happens when the parent is unlocked again.",
        "since": "5.5"
      },
      {
        "signature": "System.Boolean GetPersistentVisibility()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "The global persistent visibility setting is used for layers whose visibility can be changed by a \"parent\" object. A common case is when a layer is a child layer (ParentId is not nil). In this case, when a parent layer is turned off, then child layers are also turned off. The persistent visibility setting determines what happens when the parent is turned on again.",
        "since": "5.5",
    "remarks": "Returns True if this layer's visibility is controlled by a parent object and the parent is turned on (after being off), then this layer will also be turned on. Returns False if this layer's visibility is controlled by a parent object and the parent layer is turned on (after being off), then this layer will continue to be off.  When the persistent viability is not explicitly set, this property returns the current value of IsVisible"
      },
      {
        "signature": "System.String GetUserString(System.String key)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets user string from this geometry.",
        "since": "5.0",
        "parameters": [
          {
            "name": "key",
            "type": "System.String",
            "summary": "id used to retrieve the string."
          }
        ],
        "returns": "string associated with the key if successful. None if no key was found."
      },
      {
        "signature": "System.Collections.Specialized.NameValueCollection GetUserStrings()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets a copy of all (user key string, user value string) pairs attached to this geometry.",
        "since": "5.0",
        "returns": "A new collection."
      },
      {
        "signature": "System.Boolean HasPerViewportSettings(System.Guid viewportId)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Verifies that a layer has per viewport settings.",
        "since": "6.0",
        "parameters": [
          {
            "name": "viewportId",
            "type": "System.Guid",
            "summary": "If not Guid.Empty, then checks for settings for that specific viewport. If Guid.Empty, then checks for any viewport settings."
          }
        ],
        "returns": "True if the layer has per viewport settings, False otherwise."
      },
      {
        "signature": "System.Boolean HasSelectedObjects(System.Boolean checkSubObjects)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns True if the layer has one or more selected Rhino objects.",
        "since": "8.0",
        "parameters": [
          {
            "name": "checkSubObjects",
            "type": "System.Boolean",
            "summary": "If true, the search will include objects that have some subset of the object selected, like some edges of a Brep. If false, objects where the entire object is not selected are ignored."
          }
        ],
        "returns": "True if the layer has selected Rhino objects, False otherwise."
      },
      {
        "signature": "System.Boolean IsChildOf(Layer otherLayer)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "System.Boolean IsChildOf(System.Guid otherlayerId)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0"
      },
      {
        "signature": "System.Boolean IsChildOf(System.Int32 layerIndex)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "System.Boolean IsParentOf(Layer otherLayer)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "System.Boolean IsParentOf(System.Guid otherLayer)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0"
      },
      {
        "signature": "System.Boolean IsParentOf(System.Int32 layerIndex)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "Layer ParentLayer(System.Boolean rootLevelParent)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns parent of a layer.",
        "since": "8.0",
        "parameters": [
          {
            "name": "rootLevelParent",
            "type": "System.Boolean",
            "summary": "If true, the root level parent is returned. The root level parent never has a parent. If false, the immediate parent is returned. The immediate parent may have a parent."
          }
        ],
        "returns": "The parent layer, or None if the layer does not have a parent."
      },
      {
        "signature": "System.Drawing.Color PerViewportColor(System.Guid viewportId)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the display color for this layer.",
        "since": "6.0",
        "parameters": [
          {
            "name": "viewportId",
            "type": "System.Guid",
            "summary": "If not Guid.Empty, then the setting applies only to the viewport with the specified id."
          }
        ],
        "returns": "The display color."
      },
      {
        "signature": "System.Boolean PerViewportIsVisible(System.Guid viewportId)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the per viewport visibility of this layer.",
        "since": "6.0",
        "parameters": [
          {
            "name": "viewportId",
            "type": "System.Guid",
            "summary": "If not Guid.Empty, then the visibility setting for that viewport is returned. If Guid.Empty, the IsVisible property is returned."
          }
        ],
        "returns": "Returns True if objects on layer are visible."
      },
      {
        "signature": "System.Boolean PerViewportPersistentVisibility(System.Guid viewportId)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the per layer persistent visibility. The persistent viability setting is used for layers whose visibility can be changed by a parent layer. In this case, when a parent layer is turned off, then child layers are also turned off. The persistent visibility setting determines what happens when the parent is turned on again.",
        "since": "6.0",
        "returns": "Return True if this layer's visibility in the specified viewport is controlled by a parent object and the parent is turned on (after being off), then this layer will also be turned on in the specified viewport. Returns False if this layer's visibility in the specified viewport is controlled by a parent object and the parent layer is turned on(after being off), then this layer will continue to be off in the specified viewport."
      },
      {
        "signature": "System.Drawing.Color PerViewportPlotColor(System.Guid viewportId)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the plot color for this layer.",
        "since": "6.0",
        "parameters": [
          {
            "name": "viewportId",
            "type": "System.Guid",
            "summary": "If not Guid.Empty, then the setting applies only to the viewport with the specified id."
          }
        ],
        "returns": "The plot color."
      },
      {
        "signature": "System.Double PerViewportPlotWeight(System.Guid viewportId)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the plot weight, in millimeters, for this layer.",
        "since": "6.0",
        "parameters": [
          {
            "name": "viewportId",
            "type": "System.Guid",
            "summary": "If not Guid.Empty, then the setting applies only to the viewport with the specified id."
          }
        ],
        "returns": "The plot color."
      },
      {
        "signature": "System.Void RemoveCustomSectionStyle()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "8.0"
      },
      {
        "signature": "System.Void SetCustomSectionStyle(SectionStyle sectionStyle)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "8.0"
      },
      {
        "signature": "System.Void SetPersistentLocking(System.Boolean persistentLocking)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Set the persistent locking setting for this layer",
        "since": "5.5"
      },
      {
        "signature": "System.Void SetPersistentVisibility(System.Boolean persistentVisibility)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Set the global persistent visibility setting for this layer.",
        "since": "5.5"
      },
      {
        "signature": "System.Void SetPerViewportColor(System.Guid viewportId, System.Drawing.Color color)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Sets the display color for this layer.",
        "since": "6.0",
        "parameters": [
          {
            "name": "viewportId",
            "type": "System.Guid",
            "summary": "If not Guid.Empty, then the setting applies only to the viewport with the specified id."
          },
          {
            "name": "color",
            "type": "System.Drawing.Color",
            "summary": "The display color."
          }
        ]
      },
      {
        "signature": "System.Void SetPerViewportPersistentVisibility(System.Guid viewportId, System.Boolean persistentVisibility)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Sets the per layer persistent visibility. The persistent viability setting is used for layers whose visibility can be changed by a parent layer. In this case, when a parent layer is turned off, then child layers are also turned off. The persistent visibility setting determines what happens when the parent is turned on again.",
        "since": "6.0",
        "parameters": [
          {
            "name": "viewportId",
            "type": "System.Guid",
            "summary": "If not Guid.Empty, then the setting applies only to the viewport with the specified id. If Guid.Empty, then the setting applies to all viewports with per viewport layer settings."
          },
          {
            "name": "persistentVisibility",
            "type": "System.Boolean",
            "summary": "If true, this layer's visibility in the specified viewport is controlled by a parent object and the parent is turned on (after being off), then this layer will also be turned on in the specified viewport. If false, this layer's visibility in the specified viewport is controlled by a parent object and the parent layer is turned on (after being off), then this layer will continue to be off in the specified viewport."
          }
        ]
      },
      {
        "signature": "System.Void SetPerViewportPlotColor(System.Guid viewportId, System.Drawing.Color color)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Sets the plot color for this layer.",
        "since": "6.0",
        "parameters": [
          {
            "name": "viewportId",
            "type": "System.Guid",
            "summary": "If not Guid.Empty, then the setting applies only to the viewport with the specified id."
          },
          {
            "name": "color",
            "type": "System.Drawing.Color",
            "summary": "The plot color."
          }
        ]
      },
      {
        "signature": "System.Void SetPerViewportPlotWeight(System.Guid viewportId, System.Double plotWeight)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Sets the plot weight, in millimeters, for this layer.",
        "since": "6.0",
        "parameters": [
          {
            "name": "viewportId",
            "type": "System.Guid",
            "summary": "If not Guid.Empty, then the setting applies only to the viewport with the specified id."
          },
          {
            "name": "plotWeight",
            "type": "System.Double",
            "summary": "The plot weight in millimeters. A weight of  0.0 indicates the \"default\" pen weight should be used. A weight of -1.0 indicates the layer should not be printed."
          }
        ]
      },
      {
        "signature": "System.Void SetPerViewportVisible(System.Guid viewportId, System.Boolean visible)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Controls layer visibility in specific viewports.",
        "since": "6.0",
        "parameters": [
          {
            "name": "viewportId",
            "type": "System.Guid",
            "summary": "If not Guid.Empty, then the setting applies only to the viewport with the specified id. If Guid.Empty, then the setting applies to all viewports with per viewport layer settings."
          },
          {
            "name": "visible",
            "type": "System.Boolean",
            "summary": "True to make layer visible, False to make layer invisible."
          }
        ]
      },
      {
        "signature": "System.Boolean SetUserString(System.String key, System.String value)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Attach a user string (key,value combination) to this geometry.",
        "since": "5.0",
        "parameters": [
          {
            "name": "key",
            "type": "System.String",
            "summary": "id used to retrieve this string."
          },
          {
            "name": "value",
            "type": "System.String",
            "summary": "string associated with key."
          }
        ],
        "returns": "True on success."
      },
      {
        "signature": "System.String ToString()",
        "modifiers": ["public", "override"],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "System.Void UnsetModelPersistentVisibility()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Remove any model persistent visibility setting from this layer.",
        "since": "8.0"
      },
      {
        "signature": "System.Void UnsetPersistentLocking()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Remove any explicitly persistent locking settings from this layer",
        "since": "5.5"
      },
      {
        "signature": "System.Void UnsetPersistentVisibility()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Remove any explicit persistent visibility setting from this layer",
        "since": "5.5"
      },
      {
        "signature": "System.Void UnsetPerViewportPersistentVisibility(System.Guid viewportId)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Remove any per viewport persistent visibility setting so the layer's overall setting will be used for all viewports.",
        "since": "6.0",
        "parameters": [
          {
            "name": "viewportId",
            "type": "System.Guid",
            "summary": "If not Guid.Empty, then the setting for this viewport will be deleted. If Guid.Empty, the all per viewport visibility settings will be removed."
          }
        ]
      }
    ],
    "operators": [
      {
        "signature": "bool operator !=(Layer left, Layer right)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "6.0"
      },
      {
        "signature": "bool operator ==(Layer left, Layer right)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "6.0"
      }
    ]

  },
  {
    "namespace": "Rhino.DocObjects",
    "name": "LeaderObject",
    "dataType": "class",
    "summary": "Rhino Object that represents leader geometry and attributes",
    "baseclass": "Rhino.DocObjects.AnnotationObjectBase",
    "properties": [
      {
        "signature": "Leader LeaderGeometry",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Get the leader geometry for this object.",
        "since": "6.0",
        "property": ["get"]
      }
    ]
  },
  {
    "namespace": "Rhino.DocObjects",
    "name": "LightObject",
    "dataType": "class",
    "baseclass": "Rhino.DocObjects.RhinoObject",
    "properties": [
      {
        "signature": "ModelComponentType ComponentType",
        "modifiers": ["public", "override"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "int Index",
        "modifiers": ["public", "override"],
        "protected": false,
        "virtual": false,
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "Light LightGeometry",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0",
        "property": ["get"]
      }
    ],
    "methods": [
      {
        "signature": "Light DuplicateLightGeometry()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      }
    ]
  },
  {
    "namespace": "Rhino.DocObjects",
    "name": "LinearDimensionObject",
    "dataType": "class",
    "summary": "Rhino Object that represents a linear dimension geometry and attributes",
    "baseclass": "Rhino.DocObjects.DimensionObject",
    "properties": [
      {
        "signature": "LinearDimension LinearDimensionGeometry",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Get the dimension geometry for this object.",
        "since": "6.0",
        "property": ["get"]
      }
    ]
  },
  {
    "namespace": "Rhino.DocObjects",
    "name": "LineCapStyle",
    "dataType": "enum",
    "summary": "Shape to be used at the ends of open curves",
    "values": [
      {
        "signature": "Round = 0",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Ends are extended by a half circle with diameter equal to the curve width"
      },
      {
        "signature": "Flat = 1",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Also known as butt. Ends are flat and do not extend"
      },
      {
        "signature": "Square = 2",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Ends are flat and extended by half of the curve width"
      }
    ]

  },
  {
    "namespace": "Rhino.DocObjects",
    "name": "LineJoinStyle",
    "dataType": "enum",
    "summary": "Shape to be used at the corners of curves",
    "values": [
      {
        "signature": "Round = 0",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Rounds corners"
      },
      {
        "signature": "Miter = 1",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Sharp corners where outer edges are extended to a point where they meet"
      },
      {
        "signature": "Bevel = 2",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Beveled corner where outer edges are connected without extending"
      }
    ]

  },
  {
    "namespace": "Rhino.DocObjects",
    "name": "Linetype",
    "dataType": "class",
    "baseclass": "Rhino.DocObjects.ModelComponent",
    "constructors": [
      {
        "signature": "Linetype()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "Linetype(Linetype other)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "8.0"
      }
    ],
    "properties": [
      {
        "signature": "bool AlwaysModelDistances",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Linetype patterns and widths are typically interpreted as distances on the printed output when printing. In this case AlwaysModelDistances is False (default). When set to true, the linetype pattern and width will be interpreted as being in world distances. This is useful for cases like modeling a road as a single curve.",
        "since": "8.6",
        "property": ["get", "set"]
      },
      {
        "signature": "ModelComponentType ComponentType",
        "modifiers": ["public", "override"],
        "protected": false,
        "virtual": false,
        "summary": "Returns <b>ModelComponentType.LinePattern</b> .",
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "bool HasShapes",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Does this linetype have shapes",
        "property": ["get"]
      },
      {
        "signature": "bool InUse",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns True if the linetype is in use by a Rhino object, a layer, an instance definition, or a section style.",
        "since": "8.7",
        "property": ["get"]
      },
      {
        "signature": "bool IsDeleted",
        "modifiers": ["public", "override"],
        "protected": false,
        "virtual": false,
        "summary": "Gets a value indicating whether this linetype has been deleted and is currently in the Undo buffer.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "bool IsModified",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "True if this linetype has been modified by LinetypeTable.ModifyLinetype() and the modifications can be undone.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "bool IsPatternLocked",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns True if the pattern is locked and cannot be modified.",
        "since": "8.0",
        "property": ["get"]
      },
      {
        "signature": "bool IsReference",
        "modifiers": ["public", "override"],
        "protected": false,
        "virtual": false,
        "summary": "Gets a value indicting whether this linetype is a referenced linetype. Referenced linetypes are part of referenced documents.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "LineCapStyle LineCapStyle",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Defines how the ends of open curves should be drawn",
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "LineJoinStyle LineJoinStyle",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Defines how the corners of curves should be drawn",
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "int LinetypeIndex",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "The index of this linetype.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "string Name",
        "modifiers": ["public", "override"],
        "protected": false,
        "virtual": false,
        "summary": "The name of this linetype.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "double PatternLength",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Total length of one repeat of the pattern.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "int SegmentCount",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Number of segments in the pattern.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "BoundingBox ShapeBounds",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "The bounding box of the shapes in this linetype definition.",
        "property": ["get"]
      },
      {
        "signature": "double ShapeGap",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "If shapes are present in this linetype, this is the gap around the shape.",
        "property": ["get", "set"]
      },
      {
        "signature": "Vector2d ShapeLocalOffset",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Local offset applied to shapes",
        "property": ["get", "set"]
      },
      {
        "signature": "double ShapeSpacing",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "If shapes are present in this linetype, this is the distance between shapes",
        "property": ["get", "set"]
      },
      {
        "signature": "int UserStringCount",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the amount of user strings.",
        "since": "8.9",
        "property": ["get"]
      },
      {
        "signature": "double Width",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Base width for this linetype",
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "UnitSystem WidthUnits",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Unit system that widths are defined in. UnitSystem.None is default and means that the width is defined in pixels.",
        "since": "8.0",
        "property": ["get", "set"]
      }
    ],
    "methods": [
      {
        "signature": "Linetype CreateFromPatternString(System.String patternString, System.Boolean millimeters)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Creates a linetype from a pattern string. Values greater than zero represent line segments, and values less than or equal to zero represents space segments.",
        "since": "7.4",
        "parameters": [
          {
            "name": "patternString",
            "type": "System.String",
            "summary": "The pattern string."
          },
          {
            "name": "millimeters",
            "type": "System.Boolean",
            "summary": "Specify True if the pattern is represented in millimeters. Specify False if the pattern is represented in inches."
          }
        ],
        "returns": "A valid linetype if successful, None otherwise."
      },
      {
        "signature": "Linetype[] ReadFromFile(System.String path)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Reads linetypes from either a Rhino .3dm file or an AutoCAD .lin file.",
        "since": "6.6",
        "parameters": [
          {
            "name": "path",
            "type": "System.String",
            "summary": "The path to the file to read."
          }
        ],
        "returns": "An array of linetypes if successful, otherwise an empty array."
      },
      {
        "signature": "System.Boolean AddShape(Curve shapeCurve, System.Double offset)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Add a curve shape to this linetype definition"
      },
      {
        "signature": "System.Boolean AddShape(TextEntity text, System.Double offset)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Add text as a shape to this linetype definition"
      },
      {
        "signature": "System.Int32 AppendSegment(System.Double length, System.Boolean isSolid)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Adds a segment to the pattern.",
        "since": "5.0",
        "parameters": [
          {
            "name": "length",
            "type": "System.Double",
            "summary": "The length of the segment to be added."
          },
          {
            "name": "isSolid",
            "type": "System.Boolean",
            "summary": "If true, the length is interpreted as a line. If false, then the length is interpreted as a space."
          }
        ],
        "returns": "Index of the added segment."
      },
      {
        "signature": "System.Boolean CommitChanges()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "System.Void Default()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Set linetype to default settings.",
        "since": "5.0"
      },
      {
        "signature": "System.Void DeleteAllUserStrings()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "8.9"
      },
      {
        "signature": "System.Boolean DeleteUserString(System.String key)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "8.9"
      },
      {
        "signature": "Linetype DuplicateLinetype()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Duplicates a linetype, clears the name, id, and locked bits.",
        "since": "8.0",
        "returns": "The duplicated linetype if successful, None otherwise."
      },
      {
        "signature": "System.Void GetSegment(System.Int32 index, out System.Double length, out System.Boolean isSolid)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the segment information at a index.",
        "since": "5.0",
        "parameters": [
          {
            "name": "index",
            "type": "System.Int32",
            "summary": "Zero based index of the segment."
          },
          {
            "name": "length",
            "type": "System.Double",
            "summary": "The length of the segment in millimeters."
          },
          {
            "name": "isSolid",
            "type": "System.Boolean",
            "summary": "If the length is interpreted as a line, True is assigned during the call to this out parameter.  \nIf the length is interpreted as a space, then False is assigned during the call to this out parameter."
          }
        ]
      },
      {
        "signature": "Point2d[] GetTaperPoints()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Taper points are positions/width combinations along the length of a curve",
        "since": "8.0"
      },
      {
        "signature": "System.String GetUserString(System.String key)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets user string from this geometry.",
        "since": "8.9",
        "parameters": [
          {
            "name": "key",
            "type": "System.String",
            "summary": "id used to retrieve the string."
          }
        ],
        "returns": "string associated with the key if successful. None if no key was found."
      },
      {
        "signature": "System.Collections.Specialized.NameValueCollection GetUserStrings()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets a copy of all (user key string, user value string) pairs attached to this geometry.",
        "since": "8.9",
        "returns": "A new collection."
      },
      {
        "signature": "System.String PatternString(System.Boolean millimeters)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns a string that represents the pattern of the linetype, which can be used in user interface. Values greater than zero represent line segments, and values less than or equal to zero represent space segments.",
        "since": "7.4",
        "parameters": [
          {
            "name": "millimeters",
            "type": "System.Boolean",
            "summary": "If true, the string is formatted in millimeters. If false, the string is formatted in inches."
          }
        ],
        "returns": "The pattern string."
      },
      {
        "signature": "System.Void RemoveAllShapes()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Remove all shapes from this linetype"
      },
      {
        "signature": "System.Boolean RemoveSegment(System.Int32 index)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Removes a segment in the linetype.",
        "since": "5.0",
        "parameters": [
          {
            "name": "index",
            "type": "System.Int32",
            "summary": "Zero based index of the segment to remove."
          }
        ],
        "returns": "True if the segment index was removed."
      },
      {
        "signature": "System.Void RemoveTaper()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Remove taper information for stroke",
        "since": "8.0"
      },
      {
        "signature": "System.Boolean SetSegment(System.Int32 index, System.Double length, System.Boolean isSolid)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Sets the length and type of the segment at index.",
        "since": "5.0",
        "parameters": [
          {
            "name": "index",
            "type": "System.Int32",
            "summary": "Zero based index of the segment."
          },
          {
            "name": "length",
            "type": "System.Double",
            "summary": "The length of the segment to be added in millimeters."
          },
          {
            "name": "isSolid",
            "type": "System.Boolean",
            "summary": "If true, the length is interpreted as a line. If false, then the length is interpreted as a space."
          }
        ],
        "returns": "True if the operation was successful; otherwise false."
      },
      {
        "signature": "System.Boolean SetSegments(IEnumerable<double> segments)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Set all segments.",
        "since": "6.8",
        "parameters": [
          {
            "name": "segments",
            "type": "IEnumerable<double>",
            "summary": "An array of segments lengths. Lengths >= 0 are interpreted as a line. Lengths < 0 are interpreted as a space."
          }
        ],
        "returns": "True if the segments were replaced"
      },
      {
        "signature": "System.Void SetTaper(System.Double startWidth, Point2d taperPoint, System.Double endWidth)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Set taper for this linetype width a single internal taper point",
        "since": "8.0"
      },
      {
        "signature": "System.Void SetTaper(System.Double startWidth, System.Double endWidth)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Set taper to a simple start width / end width",
        "since": "8.0"
      },
      {
        "signature": "System.Boolean SetUserString(System.String key, System.String value)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Attach a user string (key,value combination) to this geometry.",
        "since": "8.9",
        "parameters": [
          {
            "name": "key",
            "type": "System.String",
            "summary": "id used to retrieve this string."
          },
          {
            "name": "value",
            "type": "System.String",
            "summary": "string associated with key."
          }
        ],
        "returns": "True on success."
      }
    ]
  },
  {
    "namespace": "Rhino.DocObjects",
    "name": "Markup",
    "dataType": "class",
    "summary": "Markup elements that store image data when users create markups",
    "baseclass": "Rhino.DocObjects.ModelComponent",
    "constructors": [
      {
        "signature": "Markup()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Create a new instance of a Markup"
      },
      {
        "signature": "Markup(Markup other)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Create a new Markup that is a copy of another Markup"
      }
    ],
    "properties": [
      {
        "signature": "Bitmap Bitmap",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "property": ["get"]
      },
      {
        "signature": "string Comments",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "property": ["get", "set"]
      },
      {
        "signature": "ModelComponentType ComponentType",
        "modifiers": ["public", "override"],
        "protected": false,
        "virtual": false,
        "summary": "Returns <b>ModelComponentType.Markup</b> .",
        "since": "8.0",
        "property": ["get"]
      },
      {
        "signature": "DateTime Created",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "property": ["get"]
      },
      {
        "signature": "string CreatedBy",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "property": ["get"]
      },
      {
        "signature": "bool IsUnset",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns True if the markup is unset.",
        "since": "9.0",
        "property": ["get"]
      },
      {
        "signature": "DateTime Modified",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "property": ["get"]
      },
      {
        "signature": "string ModifiedBy",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "property": ["get"]
      },
      {
        "signature": "string Name",
        "modifiers": ["override", "public"],
        "protected": false,
        "virtual": false,
        "property": ["get", "set"]
      }
    ],
    "methods": [
      {
        "signature": "System.Void CopyToClipboard()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "System.Boolean ReadRevisionHistory(out System.String createdBy, out System.String lastEditedBy, out System.Int32 revision, out System.DateTime createdOn, out System.DateTime lastEditedOn)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "System.Drawing.Bitmap Thumbnail(System.Int32 height)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "System.Void WriteToFile()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false
      }
    ]
  },
  {
    "namespace": "Rhino.DocObjects",
    "name": "Material",
    "dataType": "class",
    "baseclass": "Rhino.DocObjects.ModelComponent",
    "constructors": [
      {
        "signature": "Material()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "Material(Material other)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0"
      }
    ],
    "properties": [
      {
        "signature": "Material DefaultMaterial",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "double MaxShine",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "bool AlphaTransparency",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "Color AmbientColor",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "ModelComponentType ComponentType",
        "modifiers": ["public", "override"],
        "protected": false,
        "virtual": false,
        "summary": "Returns <b>ModelComponentType.RenderMaterial</b> .",
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "Color DiffuseColor",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool DisableLighting",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "Color EmissionColor",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "double FresnelIndexOfRefraction",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the Fresnel index of refraction of the material, default is 1.56",
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool FresnelReflections",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets if Fresnel reflections are used.",
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "double IndexOfRefraction",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the index of refraction of the material, generally >= 1.0 (speed of light in vacuum)/(speed of light in material)",
        "since": "5.1",
        "property": ["get", "set"]
      },
      {
        "signature": "bool IsDefaultMaterial",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "By default Rhino layers and objects are assigned the default rendering material.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "bool IsDeleted",
        "modifiers": ["public", "override"],
        "protected": false,
        "virtual": false,
        "summary": "Deleted materials are kept in the runtime material table so that undo will work with materials.  Call IsDeleted to determine to determine if a material is deleted.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "bool IsDocumentControlled",
        "modifiers": ["public", "override"],
        "protected": false,
        "virtual": false,
        "summary": "If True this object may not be modified. Any properties or functions that attempt to modify this object when it is set to \"IsReadOnly\" will throw a NotSupportedException.",
        "since": "5.6",
        "property": ["get"]
      },
      {
        "signature": "bool IsPhysicallyBased",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "7.0",
        "property": ["get"]
      },
      {
        "signature": "bool IsReference",
        "modifiers": ["public", "override"],
        "protected": false,
        "virtual": false,
        "summary": "Rhino allows multiple files to be viewed simultaneously. Materials in the document are \"normal\" or \"reference\". Reference materials are not saved.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "int MaterialIndex",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.6",
        "property": ["get"]
      },
      {
        "signature": "string Name",
        "modifiers": ["public", "override"],
        "protected": false,
        "virtual": false,
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "PhysicallyBasedMaterial PhysicallyBased",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "7.0",
        "property": ["get"]
      },
      {
        "signature": "Color PreviewColor",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Very simple preview color function for GUIs.",
        "since": "6.6",
        "property": ["get"]
      },
      {
        "signature": "Guid RDKMaterialID",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the RDK material ID.",
        "since": "8.6",
    "remarks": "Multiple Rhino materials ( with unique component IDs) can have the same RDK material ID.",
        "property": ["get"]
      },
      {
        "signature": "Color ReflectionColor",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "double ReflectionGlossiness",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the reflection glossiness.",
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "double Reflectivity",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets how reflective a material is, 0f is no reflection 1f is 100% reflective.",
        "since": "5.7",
        "property": ["get", "set"]
      },
      {
        "signature": "double RefractionGlossiness",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the refraction glossiness.",
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "RenderMaterial RenderMaterial",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Get the RenderMaterial related to this Material.  Will create a new RenderMaterial if none exists. This can happen for older documents.",
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "Guid RenderMaterialInstanceId",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "Guid RenderPlugInId",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "The Id of the RenderPlugIn that is associated with this material.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "double Shine",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the shine factor of the material.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "Color SpecularColor",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "double Transparency",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the transparency of the material (0.0 = opaque to 1.0 = transparent)",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "Color TransparentColor",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "int UseCount",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Number of objects and layers that use this material.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "int UserStringCount",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0",
        "property": ["get"]
      }
    ],
    "methods": [
      {
        "signature": "System.Void ClearMaterialChannels()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Removes all material channels",
        "since": "6.26"
      },
      {
        "signature": "System.Boolean CommitChanges()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "System.Void CopyFrom(Material other)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0"
      },
      {
        "signature": "System.Void Default()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Set material to default settings.",
        "since": "5.0"
      },
      {
        "signature": "Texture GetBitmapTexture()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "Texture GetBumpTexture()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the bump texture of this material.",
        "since": "5.0",
        "returns": "A texture; or None if no bump texture has been added to this material."
      },
      {
        "signature": "Texture GetEnvironmentTexture()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "Texture GetTexture(TextureType which)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Get the texture that corresponds with the specified texture type for this material.",
        "since": "7.0"
      },
      {
        "signature": "Texture[] GetTextures()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Get array of textures that this material uses",
        "since": "5.7"
      },
      {
        "signature": "Texture GetTransparencyTexture()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "System.String GetUserString(System.String key)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets a user string.",
        "since": "5.0",
        "parameters": [
          {
            "name": "key",
            "type": "System.String",
            "summary": "id used to retrieve the string."
          }
        ],
        "returns": "string associated with the key if successful. None if no key was found."
      },
      {
        "signature": "System.Collections.Specialized.NameValueCollection GetUserStrings()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets an independent copy of the collection of (user text key, user text value) pairs attached to this object.",
        "since": "5.0",
        "returns": "A collection of key strings and values strings. This"
      },
      {
        "signature": "System.Guid MaterialChannelIdFromIndex(System.Int32 material_channel_index)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Finds id of the material channel at given index.",
        "since": "6.26",
        "parameters": [
          {
            "name": "material_channel_index",
            "type": "System.Int32",
            "summary": "Index"
          }
        ],
        "returns": "Id of the material channel"
      },
      {
        "signature": "System.Int32 MaterialChannelIndexFromId(System.Guid material_channel_id, System.Boolean bAddIdIfNotPresent)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Finds index of the material channel that refers to a material channel with the given id. Optionally adds channel if one is not found.",
        "since": "6.26",
        "parameters": [
          {
            "name": "material_channel_id",
            "type": "System.Guid",
            "summary": "Id"
          },
          {
            "name": "bAddIdIfNotPresent",
            "type": "System.Boolean",
            "summary": "Controls whether to add channel if none exist"
          }
        ],
        "returns": "Index of the material channel"
      },
      {
        "signature": "System.Void OnSwitchToNonConst()",
        "modifiers": ["protected", "override"],
        "protected": true,
        "virtual": false
      },
      {
        "signature": "System.Boolean SetBitmapTexture(System.String filename)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "System.Boolean SetBitmapTexture(Texture texture)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "System.Boolean SetBumpTexture(System.String filename)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "System.Boolean SetBumpTexture(Texture texture)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "System.Boolean SetEnvironmentTexture(System.String filename)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "System.Boolean SetEnvironmentTexture(Texture texture)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "System.Boolean SetTexture(Texture texture, TextureType which)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Set the texture that corresponds with the specified texture type for this material.",
        "since": "7.0",
        "parameters": [
          {
            "name": "texture",
            "type": "Texture",
            "summary": "An instance of Rhino.DocObjects.Texture"
          },
          {
            "name": "which",
            "type": "TextureType",
            "summary": "Use Rhino.DocObjects.TextureType"
          }
        ]
      },
      {
        "signature": "System.Boolean SetTransparencyTexture(System.String filename)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "System.Boolean SetTransparencyTexture(Texture texture)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "System.Boolean SetUserString(System.String key, System.String value)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Attach a user string (key,value combination) to this geometry.",
        "since": "5.0",
        "parameters": [
          {
            "name": "key",
            "type": "System.String",
            "summary": "id used to retrieve this string."
          },
          {
            "name": "value",
            "type": "System.String",
            "summary": "string associated with key."
          }
        ],
        "returns": "True on success."
      },
      {
        "signature": "System.Void ToPhysicallyBased()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "7.0"
      }
    ]
  },
  {
    "namespace": "Rhino.DocObjects",
    "name": "MaterialRef",
    "dataType": "class",
    "interfaces": ["IDisposable"],
    "properties": [
      {
        "signature": "Guid BackFaceMaterialId",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "The Id of the Material used to render the back of an object.",
        "since": "5.10",
        "property": ["get"]
      },
      {
        "signature": "int BackFaceMaterialIndex",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "The index of the material used to render the back of an object",
        "since": "5.10",
        "property": ["get"]
      },
      {
        "signature": "Guid FrontFaceMaterialId",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "The Id of the Material used to render the front of an object.",
        "since": "5.10",
        "property": ["get"]
      },
      {
        "signature": "int FrontFaceMaterialIndex",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "The index of the material used to render the front of an object",
        "since": "5.10",
        "property": ["get"]
      },
      {
        "signature": "ObjectMaterialSource MaterialSource",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Determines if the simple material should come from the object or from it's layer.",
        "since": "5.10",
        "property": ["get"]
      },
      {
        "signature": "Guid PlugInId",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Identifies a rendering plug-in",
        "since": "5.10",
        "property": ["get", "set"]
      }
    ],
    "methods": [
      {
        "signature": "System.Void Dispose()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.10"
      }
    ]
  },
  {
    "namespace": "Rhino.DocObjects",
    "name": "MaterialRefCreateParams",
    "dataType": "class",
    "summary": "Options passed to MaterialRefs.Create",
    "constructors": [
      {
        "signature": "MaterialRefCreateParams()",
        "summary": "Initializes a new instance of the MaterialRefCreateParams class"
      }
    ],
    "properties": [
      {
        "signature": "Guid BackFaceMaterialId",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "The Id of the Material used to render the back of an object.",
        "since": "5.10",
        "property": ["get", "set"]
      },
      {
        "signature": "int BackFaceMaterialIndex",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "The index of the material used to render the back of an object",
        "since": "5.10",
        "property": ["get", "set"]
      },
      {
        "signature": "Guid FrontFaceMaterialId",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "The Id of the Material used to render the front of an object.",
        "since": "5.10",
        "property": ["get", "set"]
      },
      {
        "signature": "int FrontFaceMaterialIndex",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "The index of the material used to render the front of an object",
        "since": "5.10",
        "property": ["get", "set"]
      },
      {
        "signature": "ObjectMaterialSource MaterialSource",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Determines if the simple material should come from the object or from it's layer.",
        "since": "5.10",
        "property": ["get", "set"]
      },
      {
        "signature": "Guid PlugInId",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Identifies a rendering plug-in",
        "since": "5.10",
        "property": ["get", "set"]
      }
    ]
  },
  {
    "namespace": "Rhino.DocObjects",
    "name": "MaterialRefs",
    "dataType": "class",
    "summary": "If you are developing a high quality plug-in renderer, and a user is assigning a custom render material to this object, then add rendering material information to the MaterialRefs dictionary.  Note to developers: As soon as the MaterialRefs dictionary contains items rendering material queries slow down.  Do not populate the MaterialRefs dictionary when setting the MaterialIndex will take care of your needs.",
    "interfaces": ["IDictionary<Guid, MaterialRef>"],
    "properties": [
      {
        "signature": "int Count",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the number of elements contained in this dictionary",
        "since": "5.10",
        "property": ["get"]
      },
      {
        "signature": "bool IsReadOnly",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "IDictionary required property, always returns False for this dictionary.",
        "since": "5.10",
        "property": ["get"]
      },
      {
        "signature": "ICollection<Guid> Keys",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets an ICollection containing the plug-in Id's in this dictionary.",
        "since": "5.10",
        "property": ["get"]
      },
      {
        "signature": "ICollection<MaterialRef> Values",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets an ICollection containing the MaterialRef objects in this dictionary.",
        "since": "5.10",
        "property": ["get"]
      },
      {
        "signature": "MaterialRef this[Guid key]",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the element with the specified plug-in Id."
      }
    ],
    "methods": [
      {
        "signature": "System.Void Add(KeyValuePair<Guid, MaterialRef> item)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Adds an item to this dictionary.",
        "parameters": [
          {
            "name": "item",
            "type": "KeyValuePair<Guid, MaterialRef>",
            "summary": "The object to add to this dictionary"
          }
        ]
      },
      {
        "signature": "System.Void Add(System.Guid key, MaterialRef value)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Add or replace an element with the provided key and value to this dictionary.",
        "since": "5.10",
        "parameters": [
          {
            "name": "key",
            "type": "System.Guid",
            "summary": "The plug-in associated with this MaterialRef"
          },
          {
            "name": "value",
            "type": "MaterialRef",
            "summary": "MaterialRef to add to this dictionary"
          }
        ]
      },
      {
        "signature": "System.Void Clear()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Removes all items from this dictionary.",
        "since": "5.10"
      },
      {
        "signature": "System.Boolean Contains(KeyValuePair<Guid, MaterialRef> item)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Determines whether this dictionary contains a specific value.",
        "parameters": [
          {
            "name": "item",
            "type": "KeyValuePair<Guid, MaterialRef>",
            "summary": "The object to locate in this dictionary."
          }
        ],
        "returns": "True if item is found in this dictionary; otherwise, false."
      },
      {
        "signature": "System.Boolean ContainsKey(System.Guid key)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Determines whether this dictionary contains an MaterialRef with the specified plug-in id.",
        "since": "5.10",
        "parameters": [
          {
            "name": "key",
            "type": "System.Guid",
            "summary": "The plug-in Id used to locate a MaterialRef in this dictionary."
          }
        ],
        "returns": "True if this dictionary contains an element with the specified plug-in Id; otherwise, false."
      },
      {
        "signature": "System.Void CopyTo(KeyValuePair<Guid, MaterialRef>[] array, System.Int32 arrayIndex)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Copies the elements of this dictionary to an System.Array, starting at a particular System.Array index.",
        "parameters": [
          {
            "name": "array",
            "type": "KeyValuePair<Guid, MaterialRef>[]",
            "summary": "The one-dimensional System.Array that is the destination of the elements copied from this dictionary. The System.Array must have zero-based indexing."
          },
          {
            "name": "arrayIndex",
            "type": "System.Int32",
            "summary": "The zero-based index in array at which copying begins."
          }
        ]
      },
      {
        "signature": "MaterialRef Create(MaterialRefCreateParams createParams)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Call this method to create a MaterialRef which can be used when calling one of the Add methods.",
        "since": "5.10",
        "parameters": [
          {
            "name": "createParams",
            "type": "MaterialRefCreateParams",
            "summary": "Values used to initialize the MaterialRef"
          }
        ],
        "returns": "A temporary MaterialRef object, the caller is responsible for disposing of this object."
      },
      {
        "signature": "IEnumerator<KeyValuePair<Guid, MaterialRef>> GetEnumerator()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns an enumerator that iterates through this dictionary.",
        "since": "5.10",
        "returns": "A IEnumerator that can be used to iterate this dictionary."
      },
      {
        "signature": "System.Boolean Remove(KeyValuePair<Guid, MaterialRef> item)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Removes the element with the specified plug-in id from the this dictionary.",
        "parameters": [
          {
            "name": "item",
            "type": "KeyValuePair<Guid, MaterialRef>",
            "summary": "The object to remove from this dictionary"
          }
        ]
      },
      {
        "signature": "System.Boolean Remove(System.Guid key)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Removes the MaterialRef with the specified plug-in Id from this dictionary.",
        "since": "5.10",
        "parameters": [
          {
            "name": "key",
            "type": "System.Guid",
            "summary": "The plug-in Id for the MaterialRef to remove."
          }
        ],
        "returns": "True if the MaterialRef is successfully removed; otherwise, false. This method also returns False if key was not found in the original dictionary."
      },
      {
        "signature": "System.Boolean TryGetValue(System.Guid key, out MaterialRef value)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the value associated with the specified key.",
        "since": "5.10",
        "parameters": [
          {
            "name": "key",
            "type": "System.Guid",
            "summary": "The plug-in Id whose MaterialRef to get."
          },
          {
            "name": "value",
            "type": "MaterialRef",
            "summary": "When this method returns, the MaterialRef associated with the specified key, if the key is found; otherwise, null. This parameter is passed uninitialized."
          }
        ],
        "returns": "True if this dictionary contains a MaterialRef with the specified key; otherwise, false."
      }
    ]
  },
  {
    "namespace": "Rhino.DocObjects",
    "name": "MeshObject",
    "dataType": "class",
    "baseclass": "Rhino.DocObjects.RhinoObject",
    "properties": [
      {
        "signature": "bool IsCustomObject",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "Mesh MeshGeometry",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0",
        "property": ["get"]
      }
    ],
    "methods": [
      {
        "signature": "System.Boolean CheckMeshes(IEnumerable<MeshObject> meshObjects, Rhino.FileIO.TextLog textLog, ref MeshCheckParameters parameters)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Examines mesh objects and logs a description of what it finds right or wrong. The various properties the function checks for are described in MeshCheckParameters.",
        "since": "7.0",
        "parameters": [
          {
            "name": "meshObjects",
            "type": "IEnumerable<MeshObject>",
            "summary": "A collection of mesh objects."
          },
          {
            "name": "textLog",
            "type": "Rhino.FileIO.TextLog",
            "summary": "The text log."
          },
          {
            "name": "parameters",
            "type": "MeshCheckParameters",
            "summary": "The mesh checking parameter and results."
          }
        ],
        "returns": "True if successful, False otherwise."
      },
      {
        "signature": "Mesh DuplicateMeshGeometry()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "Mesh SetMesh(Mesh mesh)",
        "modifiers": ["protected"],
        "protected": true,
        "virtual": false,
        "summary": "Only for developers who are defining custom subclasses of MeshObject. Directly sets the internal mesh geometry for this object.  Note that this function does not work with Rhino's \"undo\".",
    "remarks": "Note that this function does not work with Rhino's \"undo\".  The typical approach for adjusting the mesh geometry is to modify the object that you get when you call the MeshGeometry property and then call CommitChanges.",
        "returns": "The old mesh geometry that was set for this object"
      }
    ]
  },
  {
    "namespace": "Rhino.DocObjects",
    "name": "ModelComponent",
    "dataType": "class",
    "summary": "Base class for all components in a model (document) and manages the index, id and other information common to this type of objects.  \nThis class parallels the C++ ON_ModelComponent.",
    "baseclass": "Rhino.Runtime.CommonObject",
    "properties": [
      {
        "signature": "string NamePathSeparator",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Returns the string \"::\". This is the string Rhino uses in layer full path names to separate the names of individual layers.",
        "since": "8.0",
        "property": ["get"]
      },
      {
        "signature": "ComponentStatus ComponentStatus",
        "modifiers": ["public", "virtual"],
        "protected": false,
        "virtual": true,
        "summary": "Gets or sets the component status of the model component.",
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "ModelComponentType ComponentType",
        "modifiers": ["public", "abstract"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the <b>ModelComponentType</b> for this object. Useful in switch statements.",
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "string DeletedName",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the name of a component that is deleted.",
        "since": "6.2",
        "property": ["get"]
      },
      {
        "signature": "bool HasId",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns a value indicating whether the component has an ID.",
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "bool HasIndex",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns a value indicating whether the component has an Index.",
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "bool HasName",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns a value indicating whether the component has a Name.",
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "Guid Id",
        "modifiers": ["public", "virtual"],
        "protected": false,
        "virtual": true,
        "summary": "Gets or sets the ID of the current instance.",
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool IdIsLocked",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns a value indicating whether the component ID is already locked.",
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "int Index",
        "modifiers": ["public", "virtual"],
        "protected": false,
        "virtual": true,
        "summary": "Gets or sets the model component index attribute.",
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool IndexIsLocked",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns a value indicating whether the component Index is already locked.",
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "uint InstanceDefinitionModelSerialNumber",
        "modifiers": ["public", "virtual"],
        "protected": false,
        "virtual": true,
        "summary": "When a component is in a model as part of the information required for a linked instance definition, this value identifies the linked instance definition reference model.",
        "since": "6.12",
    "remarks": "Reference components are not saved in .3dm archives. Typically this value is set and locked by the code that adds a component to a model. This value is not saved in .3dm archives.",
        "property": ["get"]
      },
      {
        "signature": "bool IsComponentStatusLocked",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "The component status itself can be locked. This returns an indication.",
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "bool IsDeleted",
        "modifiers": ["public", "virtual"],
        "protected": false,
        "virtual": true,
        "summary": "True if the component is deleted. Deleted components are kept by the document for undo purposes.",
        "since": "8.0",
        "property": ["get"]
      },
      {
        "signature": "bool IsReference",
        "modifiers": ["public", "virtual"],
        "protected": false,
        "virtual": true,
        "summary": "Gets a value indicting whether this component is a referenced component. Referenced components are part of referenced documents.",
        "since": "8.0",
        "property": ["get"]
      },
      {
        "signature": "bool IsSystemComponent",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "True if this model component is a system constant.  \nAn incomplete list of system constant model components is below:  \n<ul><li>ON_ModelComponent::Unset</li><li>ON_InstanceDefinition::Empty</li><li>ON_Linetype::Unset</li><li>ON_Linetype::Continuous</li><li>ON_Linetype::ByLayer</li><li>ON_Linetype::ByParent</li><li>ON_Layer::Unset</li><li>ON_Layer::Default</li><li>ON_TextStyle::Unset</li><li>ON_TextStyle::Default</li><li>ON_TextStyle::ByLayer</li><li>ON_TextStyle::ByParent</li><li>ON_DimStyle::Unset</li><li>ON_DimStyle::Default</li><li>ON_DimStyle::DefaultInchDecimal</li><li>ON_DimStyle::DefaultInchFractional</li><li>ON_DimStyle::DefaultFootInchArchitecture</li><li>ON_DimStyle::DefaultMillimeterSmall</li><li>ON_DimStyle::DefaultMillimeterLarge</li><li>ON_DimStyle::DefaultMillimeterArchitecture</li></ul>",
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "uint ModelSerialNumber",
        "modifiers": ["public", "virtual"],
        "protected": false,
        "virtual": true,
        "summary": "A value identifying the model that manages this component.",
        "since": "6.12",
    "remarks": "If the component is being managed by a model, this value identifies the model. In Rhino, this value is the document runtime serial number. Typically this value is set and locked by the code that adds a component to a model. This value is not saved in .3dm archives.",
        "property": ["get"]
      },
      {
        "signature": "string Name",
        "modifiers": ["public", "virtual"],
        "protected": false,
        "virtual": true,
        "summary": "Gets or sets the name",
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool NameIsLocked",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns a value indicating whether the component Name is already locked.",
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "uint ReferenceModelSerialNumber",
        "modifiers": ["public", "virtual"],
        "protected": false,
        "virtual": true,
        "summary": "When a component is in a model for reference, this value identifies the reference model.",
        "since": "6.12",
    "remarks": "Reference components are not saved in .3dm archives. Typically this value is set and locked by the code that adds a component to a model. This value is not saved in .3dm archives.",
        "property": ["get"]
      }
    ],
    "methods": [
      {
        "signature": "System.Boolean IsValidComponentName(System.String name)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Tests for a valid model component name.",
        "since": "6.15",
        "parameters": [
          {
            "name": "name",
            "type": "System.String",
            "summary": "The string to validate."
          }
        ],
        "returns": "True if the string is a valid model component name, False otherwise."
      },
      {
        "signature": "System.Boolean ModelComponentTypeIgnoresCase(ModelComponentType type)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Informs the developer if a particular model component type will require case-ignoring searching within a document. This is currently True with groups; False otherwise.",
        "since": "6.0",
        "parameters": [
          {
            "name": "type",
            "type": "ModelComponentType",
            "summary": "True if the component ignores case."
          }
        ]
      },
      {
        "signature": "System.Boolean ModelComponentTypeIncludesParent(ModelComponentType type)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Informs the developer if a particular model component type will include the hash of the parent.",
        "since": "6.0",
        "parameters": [
          {
            "name": "type",
            "type": "ModelComponentType",
            "summary": "True if the component includes parent hash."
          }
        ]
      },
      {
        "signature": "System.Boolean ModelComponentTypeRequiresUniqueName(ModelComponentType type)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Informs the developer if a particular model component type will require uniqueness within a document. This is currently True with render materials and model geometry; False otherwise.",
        "since": "6.0",
        "parameters": [
          {
            "name": "type",
            "type": "ModelComponentType",
            "summary": "The type to check."
          }
        ],
        "returns": "True with render materials and model geometry; False otherwise."
      },
      {
        "signature": "System.Void ClearId()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Resets the HasId property of the model component to false, if possible.",
        "since": "6.0"
      },
      {
        "signature": "System.Void ClearIndex()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Resets the HasIndex property of the model component to false, if possible.",
        "since": "6.0"
      },
      {
        "signature": "System.Void ClearName()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Resets the HasName property of the model component to false, if possible.",
        "since": "6.0"
      },
      {
        "signature": "System.UInt32 DataCRC(System.UInt32 currentRemainder)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Increments the Cyclic Redundancy Check value by this instance.",
        "since": "6.0",
        "parameters": [
          {
            "name": "currentRemainder",
            "type": "System.UInt32",
            "summary": "The current remainder value."
          }
        ],
        "returns": "The updated remainder value."
      },
      {
        "signature": "System.Void LockId()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Locks the component Id property.",
        "since": "6.0"
      },
      {
        "signature": "System.Void LockIndex()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Locks the component Index property.",
        "since": "6.0"
      },
      {
        "signature": "System.Void LockName()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Locks the component Name property.",
        "since": "6.0"
      },
      {
        "signature": "System.String ToString()",
        "modifiers": ["public", "override"],
        "protected": false,
        "virtual": false,
        "summary": "Returns the name of the model component type, and then its name and index.",
    "remarks": "This is provided as a visual aid. Do not rely on this for serialization."
      }
    ]
  },
  {
    "namespace": "Rhino.DocObjects",
    "name": "ModelComponentType",
    "dataType": "enum",
    "summary": "The ON_ModelComponent::Type enum has a value for each explicit component type and two special values, Unset and Mixed. Use an ON_ModelComponentTypeIterator instance to iterate over the ON_ModelComponent::Type values.",
    "values": [
      {
        "signature": "Unset = 0",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "No value set."
      },
      {
        "signature": "Image = 1",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Embedded image (bitmap) components."
      },
      {
        "signature": "TextureMapping = 2",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Texture mapping."
      },
      {
        "signature": "Material = 3",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Material."
      },
      {
        "signature": "RenderMaterial = Material",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Render material. Deprecated in favor of Material."
      },
      {
        "signature": "LinePattern = 4",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Line pattern (linetype)."
      },
      {
        "signature": "Layer = 5",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Layer."
      },
      {
        "signature": "Group = 6",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Group."
      },
      {
        "signature": "TextStyle = 7",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Text style."
      },
      {
        "signature": "DimStyle = 8",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "AnnotationDimension style."
      },
      {
        "signature": "RenderLight = 9",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Render light."
      },
      {
        "signature": "HatchPattern = 10",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Hatch pattern."
      },
      {
        "signature": "InstanceDefinition = 11",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Instance definition."
      },
      {
        "signature": "ModelGeometry = 12",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Model objects (points, curves, surfaces, ..., annotation, page details, ...), including objects referenced by instance definitions."
      },
      {
        "signature": "HistoryRecord = 13",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "History record."
      },
      {
        "signature": "RenderContent = 14",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Render content."
      },
      {
        "signature": "EmbeddedFile = 15",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Embedded file for render texture."
      },
      {
        "signature": "ObsoleteValue = 16",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "This value was never used and is now obsolete."
      },
      {
        "signature": "SectionStyle = 17",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Section style attributes"
      },
      {
        "signature": "Markup = 18",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Markup entity"
      },
      {
        "signature": "PageViewGroup = 19",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Page view group."
      },
      {
        "signature": "NumOf",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Number of items above."
      },
      {
        "signature": "Mixed = 0xFE",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Multiple component types. Used when a component type filter must include all explicit component types."
      }
    ]

  },
  {
    "namespace": "Rhino.DocObjects",
    "name": "MorphControlObject",
    "dataType": "class",
    "summary": "Represents a <b>Rhino.Geometry.MorphControl</b> in a document.",
    "baseclass": "Rhino.DocObjects.RhinoObject"
  },
  {
    "namespace": "Rhino.DocObjects",
    "name": "NamedViewWidgetObject",
    "dataType": "class",
    "baseclass": "Rhino.DocObjects.RhinoObject",
    "properties": [
      {
        "signature": "string AssociatedNamedView",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "7.5",
        "property": ["get"]
      }
    ]
  },
  {
    "namespace": "Rhino.DocObjects",
    "name": "ObjectAttributes",
    "dataType": "class",
    "summary": "Attributes (color, material, layer,...) associated with a rhino object",
    "baseclass": "Rhino.Runtime.CommonObject",
    "constructors": [
      {
        "signature": "ObjectAttributes()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "ObjectAttributes(SerializationInfo info, StreamingContext context)",
        "modifiers": ["protected"],
        "protected": true,
        "virtual": false
      }
    ],
    "properties": [
      {
        "signature": "int OCSMappingChannelId",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "The mapping channel id to use when calling MappingChannel to retrieve the OCS mapping if there is one.",
        "since": "7.17",
        "property": ["get"]
      },
      {
        "signature": "bool CastsShadows",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets an object's casts shadows property, or whether or not an object casts shadows on other objects and a ground plane.",
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "SectionLabelStyle ClippingPlaneLabelStyle",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Defines how a label for a clipping plane object should be shown",
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "ObjectColorSource ColorSource",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "The color used to display an object is specified in one of three ways. If ColorSource is ON::color_from_layer, then the object's layer ON_Layer::Color() is used. If ColorSource is ON::color_from_object, then value of m_color is used. If ColorSource is ON::color_from_material, then the diffuse color of the object's render material is used.  See ON_3dmObjectAttributes::MaterialSource() to determine where to get the definition of the object's render material.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "MeshingParameters CustomMeshingParameters",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns or sets the per-object render meshing parameters, which controls the object's render mesh density. If this property is null, then the object uses the document's render meshing parameters. To remove the per-object render meshing parameters, set this property to null.",
        "since": "7.6",
        "property": ["get", "set"]
      },
      {
        "signature": "Decals Decals",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets all object decals associated with this object.",
        "since": "5.10",
        "property": ["get"]
      },
      {
        "signature": "bool DetailBackgroundVisible",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Should the background color show for a detail",
        "since": "9.0",
        "property": ["get", "set"]
      },
      {
        "signature": "int DisplayOrder",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Display order used to force objects to be drawn on top or behind each other. Larger numbers draw on top of smaller numbers.  \n0  = draw object in standard depth buffered order  \n<0 = draw object behind \"normal\" draw order objects  \n>0 = draw object on top of \"normal\" draw order objects",
        "since": "5.10",
        "property": ["get", "set"]
      },
      {
        "signature": "bool EnableCustomMeshingParameters",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "En/disables the custom meshing parameters enabled state.",
        "since": "9.0",
        "property": ["get", "set"]
      },
      {
        "signature": "File3dmMeshModifiers File3dmMeshModifiers",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Get an object that provides access to mesh modifiers when the attributes is for a File3dmObject.",
        "since": "8.0",
        "property": ["get"]
      },
      {
        "signature": "int GroupCount",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "number of groups object belongs to.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "bool HasMapping",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "A mapping from any plug-in source is associated with these attributes Need to do this here to respond correctly to ModifyObjectAttributes event",
        "since": "5.10",
        "property": ["get"]
      },
      {
        "signature": "Color HatchBackgroundFillColor",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Fill color for hatches (default is Color.Empty)",
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "Color HatchBackgroundFillPrintColor",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Fill color for hatches when printing (default is Color.Empty)",
        "property": ["get", "set"]
      },
      {
        "signature": "Color HatchBoundaryColor",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Hatch boundary color override. Default is unset color which means use the standard attributes and layer colors to determine the boundary color",
        "property": ["get", "set"]
      },
      {
        "signature": "ItemColorSource HatchBoundaryColorSource",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Source for the hatch boundary display color. Determines whether the boundary color is read from the layer, from the object's main attribute color, inherited from the parent, or read from the custom override color set by HatchBoundaryColor (ColorCustom).",
        "since": "9.0",
        "property": ["get", "set"]
      },
      {
        "signature": "Color HatchBoundaryPlotColor",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Hatch boundary plot color override. Default is unset color which means use the standard attributes and layer colors to determine the boundary color",
        "property": ["get", "set"]
      },
      {
        "signature": "ItemColorSource HatchBoundaryPlotColorSource",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Source for the hatch boundary plot/print color. Determines whether the boundary plot color is read from the layer, from the object's main attribute color, inherited from the parent, or read from the custom override color set by HatchBoundaryPlotColor (ColorCustom).",
        "since": "9.0",
        "property": ["get", "set"]
      },
      {
        "signature": "double HatchBoundaryPlotWeightMillimeters",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Plot width of hatch boundary curves. values less than -1 (-10 is default): plot weight is determined by the m_plot_weight -1: do not plot 0: use default weight defined by the print dialog positive values are thicknesses in millimeters to print to",
        "property": ["get", "set"]
      },
      {
        "signature": "bool HatchBoundaryVisible",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Draw the bounrdaries for a hatch (default is false)",
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool IsDocumentControlled",
        "modifiers": ["public", "override"],
        "protected": false,
        "virtual": false,
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "bool IsInstanceDefinitionObject",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Use this query to determine if an object is part of an instance definition.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "int LayerIndex",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets an associated layer index.  \nLayer definitions in an OpenNURBS model are stored in a layer table.     The layer table is conceptually an array of ON_Layer classes.  Every     OpenNURBS object in a model is on some layer.  The object's layer     is specified by zero based indices into the ON_Layer array.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "int LinetypeIndex",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the linetype index.  \nLinetype definitions in an OpenNURBS model are stored in a linetype table.     The linetype table is conceptually an array of ON_Linetype classes. Every     OpenNURBS object in a model references some linetype.  The object's linetype     is specified by zero based indices into the ON_Linetype array.  \nIndex 0 is reserved for continuous linetype (no pattern).",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "double LinetypePatternScale",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Per object linetype scale",
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "ObjectLinetypeSource LinetypeSource",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "The Linetype used to display an object is specified in one of two ways. If LinetypeSource is ON::linetype_from_layer, then the object's layer ON_Layer::Linetype() is used. If LinetypeSource is ON::linetype_from_object, then value of m_linetype is used.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "int MaterialIndex",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the material index.  \nIf you want something simple and fast, set the index of     the rendering material.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "MaterialRefs MaterialRefs",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "If you are developing a high quality plug-in renderer, and a user is assigning a custom render material to this object, then add rendering material information to the MaterialRefs dictionary.  Note to developers: As soon as the MaterialRefs dictionary contains items rendering material queries slow down.  Do not populate the MaterialRefs dictionary when setting the MaterialIndex will take care of your needs.",
        "since": "5.10",
        "property": ["get"]
      },
      {
        "signature": "ObjectMaterialSource MaterialSource",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Determines if the simple material should come from the object or from it's layer. High quality rendering plug-ins should use m_rendering_attributes.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "ObjectMode Mode",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "An object must be in one of three modes: normal, locked or hidden. If an object is in normal mode, then the object's layer controls visibility and selectability. If an object is locked, then the object's layer controls visibility by the object cannot be selected. If the object is hidden, it is not visible and it cannot be selected.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "string Name",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets an object optional text name.  \nMore than one object in a model can have the same name and     some objects may have no name.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "Color ObjectColor",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "If ON::color_from_object == ColorSource, then color is the object's display color.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "ObjectDecoration ObjectDecoration",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Used to indicate an object has a decoration (like an arrowhead on a curve)",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "Guid ObjectId",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Every object has a Guid (globally unique identifier, also known as UUID, or universally unique identifier). The default value is Guid.Empty.  \nWhen an object is added to a model, the value is checked.  If the value is Guid.Empty, a     new Guid is created. If the value is not None but it is already used by another object     in the model, a new Guid is created. If the value is not Guid.Empty and it is not used by     another object in the model, then that value persists. When an object is updated, by     a move for example, the value of ObjectId persists.  \nThis value is the same as the one returned by object.Id.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "Color PlotColor",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "If plot_color_from_object == PlotColorSource, then PlotColor is the object's plotting color.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "ObjectPlotColorSource PlotColorSource",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "The color used to plot an object on paper is specified in one of three ways. If PlotColorSource is ON::plot_color_from_layer, then the object's layer ON_Layer::PlotColor() is used. If PlotColorSource is ON::plot_color_from_object, then value of PlotColor() is used.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "double PlotWeight",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Plot weight in millimeters. =0.0 means use the default width <0.0 means don't plot (visible for screen display, but does not show on plot)",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "ObjectPlotWeightSource PlotWeightSource",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool ReceivesShadows",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets an object's receives shadows property, or whether or not an object receives shadows from other objects.",
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "RenderMaterial RenderMaterial",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Sets the render material for the object - higher level function for setting MaterialSource and MaterialIndex",
        "since": "7.8",
        "property": ["set"]
      },
      {
        "signature": "ObjectSectionAttributesSource SectionAttributesSource",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Where section attributes are read from",
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "int SectionStyleIndex",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the section style index.",
        "property": ["get", "set"]
      },
      {
        "signature": "ActiveSpace Space",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Starting with V4, objects can be in either model space or page space. If an object is in page space, then ViewportId is not nil and identifies the page it is on.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "string Url",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Objects may have an URL. There are no restrictions on what value this URL may have. As an example, if the object came from a commercial part library, the URL might point to the definition of that part.",
        "since": "6.8",
        "property": ["get", "set"]
      },
      {
        "signature": "int UserStringCount",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "Guid ViewportId",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "If ViewportId is nil, the object is active in all viewports. If ViewportId is not nil, then this object is only active in a specific view. This field is primarily used to assign page space objects to a specific page, but it can also be used to restrict model space to a specific view.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool Visible",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets an object's visibility.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "int WireDensity",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "When a surface object is displayed in wireframe, this controls how many isoparametric wires are used. value    number of isoparametric wires -1       boundary wires (off) 0        boundary and knot wires 1        boundary and knot wires and, if there are no interior knots, a single interior wire. N>=2     boundary and knot wires and (N+1) interior wires.",
        "since": "5.0",
        "property": ["get", "set"]
      }
    ],
    "methods": [
      {
        "signature": "System.Boolean AddActiveInViewportOverride(System.Guid viewportId, System.Boolean active)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "9.0"
      },
      {
        "signature": "System.Boolean AddHideInDetailOverride(System.Guid detailId)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Make this object hidden in a given detail",
        "since": "6.1"
      },
      {
        "signature": "System.Void AddToGroup(System.Int32 groupIndex)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Adds object to the group with specified index by appending index to group list.  \nIf the object is already in group, nothing is changed.",
        "since": "5.0",
        "parameters": [
          {
            "name": "groupIndex",
            "type": "System.Int32",
            "summary": "The index that will be added."
          }
        ]
      },
      {
        "signature": "System.Void ClearRenderingAttributes()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Clears, or resets the rendering attributes.",
        "since": "8.28"
      },
      {
        "signature": "System.Drawing.Color ComputedPlotColor(RhinoDoc document, System.Guid viewportId)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.6"
      },
      {
        "signature": "System.Drawing.Color ComputedPlotColor(RhinoDoc document)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.6"
      },
      {
        "signature": "System.Double ComputedPlotWeight(RhinoDoc document, System.Guid viewportId)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.6"
      },
      {
        "signature": "System.Double ComputedPlotWeight(RhinoDoc document)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.6"
      },
      {
        "signature": "SectionStyle ComputedSectionStyle(RhinoDoc doc, ObjectAttributes sectionerAttributes, System.Boolean computeColors, System.Guid viewport_id)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "System.Void DeleteAllUserStrings()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0"
      },
      {
        "signature": "System.Boolean DeleteUserString(System.String key)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0"
      },
      {
        "signature": "System.Drawing.Color DrawColor(RhinoDoc document, System.Guid viewportId)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets an object's draw color, which is based on the object's color source",
        "since": "5.0",
        "parameters": [
          {
            "name": "document",
            "type": "RhinoDoc",
            "summary": "The object's documnt."
          },
          {
            "name": "viewportId",
            "type": "System.Guid",
            "summary": "The id of the viewport."
          }
        ],
        "returns": "The draw color."
      },
      {
        "signature": "System.Drawing.Color DrawColor(RhinoDoc document)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets an object's draw color, which is based on the object's color source",
        "since": "5.0",
        "parameters": [
          {
            "name": "document",
            "type": "RhinoDoc",
            "summary": "The object's documnt."
          }
        ],
        "returns": "The draw color."
      },
      {
        "signature": "ObjectAttributes Duplicate()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Constructs a copy of this <b>ObjectAttributes</b> instance.",
        "since": "5.0",
        "returns": "A new instance on success, or None on failure."
      },
      {
        "signature": "System.Boolean GetActiveInViewportOverrides(out System.Guid[] viewportIds, out System.Boolean active)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "9.0"
      },
      {
        "signature": "Linetype GetCustomLinetype()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Get an optional custom linetype associated with these attributes. If null, then the attributes use the linetype index to determine it's linetype",
        "since": "8.0"
      },
      {
        "signature": "SectionStyle GetCustomSectionStyle()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Get an optional custom section style associated with these attributes.",
        "since": "8.0"
      },
      {
        "signature": "System.Guid GetDisplayModeOverride(System.Guid viewportId)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns the id of the display mode of an objects. Object display modes are view based. Thus, it is possible to have an object display different in different views.",
        "since": "6.18",
        "parameters": [
          {
            "name": "viewportId",
            "type": "System.Guid",
            "summary": "Id of a Rhino Viewport."
          }
        ],
        "returns": "A display node id if the object has a display mode override for the viewport; otherwise Guid.Empty is returned."
      },
      {
        "signature": "System.Int32[] GetGroupList()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns an array of GroupCount group indices.  If GroupCount is zero, then GetGroupList() returns null.",
        "since": "5.0",
        "returns": "An array of group indices. None might be returned in place of an empty array."
      },
      {
        "signature": "System.Guid[] GetHideInDetailOverrides()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Get list of details that this object is supposed to be hidden in",
        "since": "6.1"
      },
      {
        "signature": "System.String GetUserString(System.String key)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets a user string.",
        "since": "5.0",
        "parameters": [
          {
            "name": "key",
            "type": "System.String",
            "summary": "id used to retrieve the string."
          }
        ],
        "returns": "string associated with the key if successful. None if no key was found."
      },
      {
        "signature": "System.Collections.Specialized.NameValueCollection GetUserStrings()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets an independent copy of the collection of (user text key, user text value) pairs attached to this object.",
        "since": "5.0",
        "returns": "A collection of key strings and values strings. This"
      },
      {
        "signature": "System.Boolean HasActiveInViewportOverride(System.Guid viewportId, out System.Boolean active)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "9.0"
      },
      {
        "signature": "System.Boolean HasDisplayModeOverride(System.Guid viewportId)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Determines if an object has a display mode override for a given viewport.",
        "since": "5.0",
        "parameters": [
          {
            "name": "viewportId",
            "type": "System.Guid",
            "summary": "Id of a Rhino Viewport."
          }
        ],
        "returns": "True if the object has a display mode override for the viewport; otherwise, false."
      },
      {
        "signature": "System.Boolean HasHideInDetailOverrideSet(System.Guid detailId)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Is this object supposed to be hidden in a given detail",
        "since": "6.1"
      },
      {
        "signature": "System.Boolean IsInGroup(System.Int32 groupIndex)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Determines if an object belong to a group or not.",
        "since": "8.11",
        "parameters": [
          {
            "name": "groupIndex",
            "type": "System.Int32",
            "summary": "The index that will be tested."
          }
        ]
      },
      {
        "signature": "Plane ObjectFrame()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "8.0"
      },
      {
        "signature": "System.Boolean RemoveActiveInViewportOverride(System.Guid viewportId, System.Boolean active)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "9.0"
      },
      {
        "signature": "System.Void RemoveCustomLinetype()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "8.0"
      },
      {
        "signature": "System.Void RemoveCustomSectionStyle()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "8.0"
      },
      {
        "signature": "System.Void RemoveDisplayModeOverride()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "By default, objects are drawn using the display mode of the viewport that the object is being drawn in. Setting a specific display mode, instructs Rhino to always use that display mode, regardless of the viewport's mode. This function resets an object to use the viewport's display mode for all viewports.",
        "since": "5.0"
      },
      {
        "signature": "System.Void RemoveDisplayModeOverride(System.Guid rhinoViewportId)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "By default, objects are drawn using the display mode of the viewport that the object is being drawn in. Setting a specific display mode, instructs Rhino to always use that display mode, regardless of the viewport's mode. This function resets an object to use the viewport's display mode.",
        "since": "5.0",
        "parameters": [
          {
            "name": "rhinoViewportId",
            "type": "System.Guid",
            "summary": "viewport that display mode overrides should be cleared from."
          }
        ]
      },
      {
        "signature": "System.Void RemoveFromAllGroups()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Removes object from all groups.",
        "since": "5.0"
      },
      {
        "signature": "System.Void RemoveFromGroup(System.Int32 groupIndex)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "removes object from the group with specified index.  \nIf the object is not in the group, nothing is changed.",
        "since": "5.0",
        "parameters": [
          {
            "name": "groupIndex",
            "type": "System.Int32",
            "summary": "The index that will be removed."
          }
        ]
      },
      {
        "signature": "System.Boolean RemoveHideInDetailOverride(System.Guid detailId)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Remove hidden in detail flag for a specific detail",
        "since": "6.1"
      },
      {
        "signature": "System.Boolean SetActiveInViewportOverrides(System.Guid[] viewportIds, System.Boolean active)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "9.0"
      },
      {
        "signature": "System.Void SetCustomLinetype(Linetype linetype)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "8.0"
      },
      {
        "signature": "System.Void SetCustomSectionStyle(SectionStyle sectionStyle)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "8.0"
      },
      {
        "signature": "System.Boolean SetDisplayModeOverride(Display.DisplayModeDescription mode, System.Guid rhinoViewportId)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "By default, objects are drawn using the display mode of the viewport that the object is being drawn in. Setting a specific display mode, instructs Rhino to always use that display mode, regardless of the viewport's mode. This version sets a display mode for a specific viewport.",
        "since": "5.0",
        "parameters": [
          {
            "name": "mode",
            "type": "Display.DisplayModeDescription",
            "summary": "The display mode."
          },
          {
            "name": "rhinoViewportId",
            "type": "System.Guid",
            "summary": "The Rhino viewport ID."
          }
        ],
        "returns": "True on success."
      },
      {
        "signature": "System.Boolean SetDisplayModeOverride(Display.DisplayModeDescription mode)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "By default, objects are drawn using the display mode of the viewport that the object is being drawn in. Setting a specific display mode, instructs Rhino to always use that display mode, regardless of the viewport's mode. This version affects the object's display mode for all viewports.",
        "since": "5.0",
        "parameters": [
          {
            "name": "mode",
            "type": "Display.DisplayModeDescription",
            "summary": "The display mode."
          }
        ],
        "returns": "True if setting was successful."
      },
      {
        "signature": "System.Void SetObjectFrame(Plane plane)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "8.0"
      },
      {
        "signature": "System.Void SetObjectFrame(Transform xform)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "8.0"
      },
      {
        "signature": "System.Boolean SetUserString(System.String key, System.String value)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Attach a user string (key,value combination) to this geometry.",
        "since": "5.0",
        "parameters": [
          {
            "name": "key",
            "type": "System.String",
            "summary": "id used to retrieve this string."
          },
          {
            "name": "value",
            "type": "System.String",
            "summary": "string associated with key. If null, the key will be removed"
          }
        ],
        "returns": "True on success."
      },
      {
        "signature": "System.Boolean Transform(Transform xform)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Apply a transformation.",
        "since": "6.0",
        "parameters": [
          {
            "name": "xform",
            "type": "Transform",
            "summary": "The transformation."
          }
        ],
        "returns": "True if successful, False otherwise."
      }
    ]
  },
  {
    "namespace": "Rhino.DocObjects",
    "name": "ObjectAttributes.ObjectFrameFlags",
    "dataType": "enum",
    "since": "8.0",
    "values": [
      {
        "signature": "Standard = 0",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Never returns unset plane.  Will always calculate the plane even if nothing is stored."
      },
      {
        "signature": "IncludeScaleTransforms = 1",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "By default, the plane is orientation and rotation only.  But scale transforms are stored if you need them."
      },
      {
        "signature": "ReturnUnset = 2",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "The object frame may be stored unset by default.  If this is the case, and you want to know if it really is unset, this will tell you."
      }
    ]

  },
  {
    "namespace": "Rhino.DocObjects",
    "name": "ObjectColorSource",
    "dataType": "enum",
    "summary": "Defines enumerated values for the source of display color of single objects.",
    "since": "5.0",
    "values": [
      {
        "signature": "ColorFromLayer = 0",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "use color assigned to layer."
      },
      {
        "signature": "ColorFromObject = 1",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "use color assigned to object."
      },
      {
        "signature": "ColorFromMaterial = 2",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "use diffuse render material color."
      },
      {
        "signature": "ColorFromParent = 3",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "for objects with parents (like objects in instance references, use parent linetype) if no parent, treat as color_from_layer."
      }
    ]

  },
  {
    "namespace": "Rhino.DocObjects",
    "name": "ObjectDecoration",
    "dataType": "enum",
    "summary": "Defines bit mask values to represent object decorations.",
    "since": "5.0",
    "values": [
      {
        "signature": "None = 0",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "There are no object decorations."
      },
      {
        "signature": "StartArrowhead = 0x08",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Arrow head at start."
      },
      {
        "signature": "EndArrowhead = 0x10",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Arrow head at end."
      },
      {
        "signature": "BothArrowhead = 0x18",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Arrow head at start and end."
      }
    ]

  },
  {
    "namespace": "Rhino.DocObjects",
    "name": "ObjectEnumeratorSettings",
    "dataType": "class",
    "summary": "Settings used for getting an enumerator of objects in a document. See <b>ObjectTable.FindByFilter(ObjectEnumeratorSettings)</b> ,  <b>ObjectTable.GetObjectsByType{T}(ObjectEnumeratorSettings)</b> , and <b>ObjectTable.GetEnumerator(ObjectEnumeratorSettings)</b> .",
    "constructors": [
      {
        "signature": "ObjectEnumeratorSettings()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Constructs object enumerator settings that will iterate the document looking for normal object and locked object that are active, or part of current model and saved in file.",
        "since": "5.0"
      }
    ],
    "properties": [
      {
        "signature": "bool ActiveObjects",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "When true, objects that are part of current model and saved in file are returned.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "Type ClassTypeFilter",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool DeletedObjects",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "When true, deleted objects are returned.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool HiddenObjects",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "When true, hidden objects or objects on hidden layers are returned.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool IdefObjects",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "When true, objects in instance definitions (not the instance references) are returned.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool IncludeGrips",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "The default object enumerator settings will not iterate through grip objects. If you want the iterator to include grips, then set this property to true.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool IncludeLights",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "The default object enumerator settings will not iterate through render light objects. If you want the iterator to include lights, then set this property to true.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool IncludePhantoms",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "The default object enumerator settings will not iterate through phantom objects. If you want the iterator to include phantom objects, then set this property to true.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "int LayerIndexFilter",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "The layer filter property can be used to limit the iteration to objects on a specific layer. The default is to iterate through all layers.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool LockedObjects",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "When true, locked objects or objects on locked layers are returned.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "int MaterialIndexFilter",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "The material filter property can be used to limit the iteration to objects that use a specific material. The default is to iterate through all objects no matter the material assignment.",
        "since": "8.25",
        "property": ["get", "set"]
      },
      {
        "signature": "string NameFilter",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "The name filter property can be used to limit the iteration to objects with a specific name.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool NormalObjects",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "When true, normal objects (e.g. not locked and not hidden) are returned.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "ObjectType ObjectTypeFilter",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "The object type filter property can be used to limit the iteration to specific types of geometry. The default is to iterate all objects types.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool ReferenceObjects",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "When true, objects that are for reference and not saved in file are returned.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool SelectedObjectsFilter",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "The default object enumerator settings ignore the selected state of objects. If you want the iterator to limit itself to selected objects, then set this property to true.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "ActiveSpace SpaceFilter",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "The viewport filter property can be used to limit the iteration to objects that reside on specific space.",
        "since": "9.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool SubObjectSelected",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "If True then objects which only have a sub object selected will be included. This is False by default.",
        "since": "7.3",
        "property": ["get", "set"]
      },
      {
        "signature": "bool UseFastSelection",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "When <b>SelectedObjectsFilter</b> is true, enables an optimized iterator that walks only the document's selected objects rather than scanning the whole object table. Use this for selection-driven UI that re-queries on every selection change (e.g. panel enable-state). Only valid for the current selection set: do not use it while selection is actively changing. Ignored unless  <b>SelectedObjectsFilter</b> is also true.",
        "since": "9.0",
        "property": ["get", "set"]
      },
      {
        "signature": "RhinoViewport ViewportFilter",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "The viewport filter property can be used to limit the iteration to objects that are active in a specific viewport.",
        "since": "5.6",
        "property": ["get", "set"]
      },
      {
        "signature": "bool VisibleFilter",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "The default object enumerator settings ignore the visibility state of objects. If you want the iterator to limit itself to visible objects, then set this property to true.",
        "since": "5.0",
        "property": ["get", "set"]
      }
    ]
  },
  {
    "namespace": "Rhino.DocObjects",
    "name": "ObjectLinetypeSource",
    "dataType": "enum",
    "summary": "Defines enumerated values for the source of linetype of single objects.",
    "since": "5.0",
    "values": [
      {
        "signature": "LinetypeFromLayer = 0",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "use line style assigned to layer."
      },
      {
        "signature": "LinetypeFromObject = 1",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "use line style assigned to object."
      },
      {
        "signature": "LinetypeFromParent = 3",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "for objects with parents (like objects in instance references, use parent linetype) if not parent, treat as linetype_from_layer."
      }
    ]

  },
  {
    "namespace": "Rhino.DocObjects",
    "name": "ObjectMaterialSource",
    "dataType": "enum",
    "summary": "Defines enumerated values for the source of material of single objects.",
    "since": "5.0",
    "values": [
      {
        "signature": "MaterialFromLayer = 0",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "use material assigned to layer."
      },
      {
        "signature": "MaterialFromObject = 1",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "use material assigned to object."
      },
      {
        "signature": "MaterialFromParent = 3",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "for objects with parents, like definition geometry in instance references and faces in polysurfaces, this value indicates the material definition should come from the parent. If the object does not have an obvious \"parent\", then treat it the same as material_from_layer."
      }
    ]

  },
  {
    "namespace": "Rhino.DocObjects",
    "name": "ObjectMode",
    "dataType": "enum",
    "summary": "Defines enumerated values for the display and behavior of single objects.",
    "since": "5.0",
    "values": [
      {
        "signature": "Normal = 0",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Object mode comes from layer."
      },
      {
        "signature": "Hidden = 1",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Not visible, object cannot be selected or changed."
      },
      {
        "signature": "Locked = 2",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Visible, object cannot be selected or changed."
      },
      {
        "signature": "InstanceDefinitionObject = 3",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Object is part of an InstanceDefinition. The InstanceDefinition m_object_uuid[] array will contain this object attribute's id."
      }
    ]

  },
  {
    "namespace": "Rhino.DocObjects",
    "name": "ObjectPlotColorSource",
    "dataType": "enum",
    "summary": "Defines enumerated values for the source of plotting/printing color of single objects.",
    "since": "5.0",
    "values": [
      {
        "signature": "PlotColorFromLayer = 0",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "use plot color assigned to layer."
      },
      {
        "signature": "PlotColorFromObject = 1",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "use plot color assigned to object."
      },
      {
        "signature": "PlotColorFromDisplay = 2",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "use display color."
      },
      {
        "signature": "PlotColorFromParent = 3",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "for objects with parents (like objects in instance references, use parent plot color) if no parent, treat as plot_color_from_layer."
      }
    ]

  },
  {
    "namespace": "Rhino.DocObjects",
    "name": "ObjectPlotWeightSource",
    "dataType": "enum",
    "summary": "Defines enumerated values for the source of plotting/printing weight of single objects.",
    "since": "5.0",
    "values": [
      {
        "signature": "PlotWeightFromLayer = 0",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "use plot color assigned to layer."
      },
      {
        "signature": "PlotWeightFromObject = 1",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "use plot color assigned to object."
      },
      {
        "signature": "PlotWeightFromParent = 3",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "for objects with parents (like objects in instance references, use parent plot color) if no parent, treat as plot_color_from_layer."
      }
    ]

  },
  {
    "namespace": "Rhino.DocObjects",
    "name": "ObjectSectionAttributesSource",
    "dataType": "enum",
    "summary": "The source of sectioning attributes on an object.",
    "since": "8.0",
    "values": [
      {
        "signature": "FromLayer = 0",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Section attributes defined by object's layer"
      },
      {
        "signature": "FromObject = 1",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Section attributes are specific to the object"
      },
      {
        "signature": "FromParent = 2",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Section attributes defined by object's parent"
      },
      {
        "signature": "FromSectioner = 3",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Section attributes defined by the cutting object"
      }
    ]

  },
  {
    "namespace": "Rhino.DocObjects",
    "name": "ObjectSectionFillRule",
    "dataType": "enum",
    "summary": "For sectioning an object; the decision of when to generate hatches and fills.",
    "since": "8.0",
    "values": [
      {
        "signature": "ClosedCurves = 0",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "If a the section results in a closed curve, then generate a fill"
      },
      {
        "signature": "SolidObjects = 1",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Only generate a fill for objects that are considered Solid"
      }
    ]

  },
  {
    "namespace": "Rhino.DocObjects",
    "name": "ObjectType",
    "dataType": "enum",
    "summary": "Defines binary mask values for each object type that can be found in a document.",
    "since": "5.0",
    "values": [
      {
        "signature": "None = 0",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Nothing."
      },
      {
        "signature": "Point = 1",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "A point."
      },
      {
        "signature": "PointSet = 2",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "A point set or cloud."
      },
      {
        "signature": "Curve = 4",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "A curve."
      },
      {
        "signature": "Surface = 8",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "A surface."
      },
      {
        "signature": "Brep = 0x10",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "A brep."
      },
      {
        "signature": "Mesh = 0x20",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "A mesh."
      },
      {
        "signature": "Light = 0x100",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "A rendering light."
      },
      {
        "signature": "Annotation = 0x200",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "An annotation."
      },
      {
        "signature": "InstanceDefinition = 0x800",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "A block definition."
      },
      {
        "signature": "InstanceReference = 0x1000",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "A block reference."
      },
      {
        "signature": "TextDot = 0x2000",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "A text dot."
      },
      {
        "signature": "Grip = 0x4000",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Selection filter value - not a real object type."
      },
      {
        "signature": "Detail = 0x8000",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "A detail."
      },
      {
        "signature": "Hatch = 0x10000",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "A hatch."
      },
      {
        "signature": "MorphControl = 0x20000",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "A morph control."
      },
      {
        "signature": "SubD = 0x40000",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "A SubD object."
      },
      {
        "signature": "BrepLoop = 0x80000",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "A brep loop."
      },
      {
        "signature": "BrepVertex = 0x100000",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "a brep vertex."
      },
      {
        "signature": "PolysrfFilter = 0x200000",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Selection filter value - not a real object type."
      },
      {
        "signature": "EdgeFilter = 0x400000",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Selection filter value - not a real object type."
      },
      {
        "signature": "PolyedgeFilter = 0x800000",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Selection filter value - not a real object type."
      },
      {
        "signature": "MeshVertex = 0x01000000",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "A mesh vertex."
      },
      {
        "signature": "MeshEdge = 0x02000000",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "A mesh edge."
      },
      {
        "signature": "MeshFace = 0x04000000",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "A mesh face."
      },
      {
        "signature": "Cage = 0x08000000",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "A cage."
      },
      {
        "signature": "Phantom = 0x10000000",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "A phantom object."
      },
      {
        "signature": "ClipPlane = 0x20000000",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "A clipping plane."
      },
      {
        "signature": "Extrusion = 0x40000000",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "An extrusion."
      },
      {
        "signature": "AnyObject = 0xFFFFFFFF",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "All bits set."
      }
    ]

  },
  {
    "namespace": "Rhino.DocObjects",
    "name": "ObjRef",
    "dataType": "class",
    "summary": "Represents a reference to a Rhino object.",
    "interfaces": ["IDisposable"],
    "constructors": [
      {
        "signature": "ObjRef(Guid id, ComponentIndex ci)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Initializes a new object reference from a guid and component index. The component index is used to specify a \"piece\" of the geometry",
        "since": "7.0",
        "deprecated": "7.6",
        "obsolete": "Use version that takes a document.",
        "parameters": [
          {
            "name": "id",
            "type": "System.Guid",
            "summary": "The object's Id"
          },
          {
            "name": "ci",
            "type": "Geometry.ComponentIndex",
            "summary": "a portion of the object"
          }
        ]
      },
      {
        "signature": "ObjRef(Guid id)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Initializes a new object reference from a globally unique identifier ( <b>Guid</b> ).",
        "since": "5.0",
        "deprecated": "7.6",
        "obsolete": "Use version that takes a document.",
        "parameters": [
          {
            "name": "id",
            "type": "System.Guid",
            "summary": "The ID."
          }
        ]
      },
      {
        "signature": "ObjRef(ObjRef other)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Copy constructor",
        "since": "7.0"
      },
      {
        "signature": "ObjRef(RhinoDoc doc, Guid id, ComponentIndex ci)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Initializes a new object reference from a guid and component index. The component index is used to specify a \"piece\" of the geometry",
        "since": "7.6",
        "parameters": [
          {
            "name": "doc",
            "type": "RhinoDoc",
            "summary": "The Rhino document"
          },
          {
            "name": "id",
            "type": "System.Guid",
            "summary": "The object's Id"
          },
          {
            "name": "ci",
            "type": "Geometry.ComponentIndex",
            "summary": "a portion of the object"
          }
        ]
      },
      {
        "signature": "ObjRef(RhinoDoc doc, Guid id)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Initializes a new object reference from a globally unique identifier ( <b>Guid</b> ).",
        "since": "7.6",
        "parameters": [
          {
            "name": "doc",
            "type": "RhinoDoc",
            "summary": "The Rhino document"
          },
          {
            "name": "id",
            "type": "System.Guid",
            "summary": "The ID."
          }
        ]
      },
      {
        "signature": "ObjRef(RhinoObject rhinoObject, PickContext pickContext)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Initialized a new object reference from a Rhino object and pick context",
        "since": "5.0"
      },
      {
        "signature": "ObjRef(RhinoObject rhinoObject)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Initializes a new object reference from a Rhino object.",
        "since": "5.0",
        "parameters": [
          {
            "name": "rhinoObject",
            "type": "RhinoObject",
            "summary": "The Rhino object."
          }
        ]
      }
    ],
    "properties": [
      {
        "signature": "RhinoDoc Document",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the document that owns this object reference.",
        "since": "8.0",
        "property": ["get"]
      },
      {
        "signature": "ComponentIndex GeometryComponentIndex",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the component index of the referenced (sub) geometry. Some objects have sub-objects that are valid pieces of geometry. For example, breps have edges and faces that are valid curves and surfaces. Each sub-object has a component index that is > 0. The parent geometry has a component index = -1.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "Guid ObjectId",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns the id of the referenced Rhino object.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "uint RuntimeSerialNumber",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "If > 0, then this is the value of a Rhino object's serial number field. The serial number is used instead of the pointer to prevent crashes in cases when the RhinoObject is deleted but an ObjRef continues to reference the Rhino object. The value of RuntimeSerialNumber is not saved in archives because it generally changes if you save and reload an archive.",
        "since": "5.0",
        "property": ["get"]
      }
    ],
    "methods": [
      {
        "signature": "Brep Brep()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the brep if this reference geometry is one.",
        "since": "5.0",
        "returns": "A boundary representation; or None on error."
      },
      {
        "signature": "ClippingPlaneSurface ClippingPlaneSurface()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the clipping plane surface if this reference targeted one.",
        "since": "5.0",
        "returns": "A clipping plane surface, or None if this reference targeted something else."
      },
      {
        "signature": "Curve Curve()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the curve if this reference targeted one.",
        "since": "5.0",
        "returns": "A curve, or None if this reference targeted something else."
      },
      {
        "signature": "Curve CurveParameter(out System.Double parameter)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "If the reference geometry is a curve or edge with a selection point, then this gets the parameter of the selection point.",
        "since": "5.0",
    "remarks": "If a curve was selected and CurveParameter is called and the SelectionMethod() is not 1 (point pick on object), the curve will be returned and parameter will be set to the start parameter of the picked curve. This can be misleading so it may be necessary to call SelectionMethod() first, before calling CurveParameter to get the desired information.",
        "parameters": [
          {
            "name": "parameter",
            "type": "System.Double",
            "summary": "The parameter of the selection point."
          }
        ],
        "returns": "If the selection point was on a curve or edge, then the curve/edge is returned, otherwise null."
      },
      {
        "signature": "System.Void Dispose()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Actively reclaims unmanaged resources that this instance uses.",
        "since": "5.0"
      },
      {
        "signature": "System.Void Dispose(System.Boolean disposing)",
        "modifiers": ["protected", "virtual"],
        "protected": true,
        "virtual": true,
        "summary": "For derived class implementers.  \nThis method is called with argument True when class user calls Dispose(), while with argument False when     the Garbage Collector invokes the finalizer, or Finalize() method.  \nYou must reclaim all used unmanaged resources in both cases, and can use this chance to call Dispose on disposable fields if the argument is true.  \nAlso, you must call the base virtual method within your overriding method.",
        "parameters": [
          {
            "name": "disposing",
            "type": "System.Boolean",
            "summary": "True if the call comes from the Dispose() method; False if it comes from the Garbage Collector finalizer."
          }
        ]
      },
      {
        "signature": "BrepEdge Edge()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the edge if this reference geometry is one.",
        "since": "5.0",
        "returns": "A boundary representation edge; or None on error."
      },
      {
        "signature": "BrepFace Face()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "If the referenced geometry is a brep face, a brep with one face, or a surface, this returns the brep face.",
        "since": "5.0",
        "returns": "A boundary representation face; or None on error."
      },
      {
        "signature": "GeometryBase Geometry()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the geometry linked to the object targeted by this reference.",
        "since": "5.0",
        "returns": "The geometry."
      },
      {
        "signature": "Hatch Hatch()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the hatch if the referenced geometry is one.",
        "since": "5.0",
        "returns": "A hatch; or None if the referenced object is not a hatch"
      },
      {
        "signature": "RhinoObject InstanceDefinitionPart()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "If sub-object selection is enabled and a piece of an instance reference is selected, this will return the selected piece.",
        "since": "6.0"
      },
      {
        "signature": "Light Light()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the light if the referenced geometry is one.",
        "since": "5.0",
        "returns": "A light; or None if the referenced object is not a light, or on error."
      },
      {
        "signature": "Mesh Mesh()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the mesh if the referenced geometry is one.",
        "since": "5.0",
        "returns": "A mesh; or None if the referenced object is not a mesh, or on error."
      },
      {
        "signature": "RhinoObject Object()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns the referenced Rhino object.",
        "since": "5.0"
      },
      {
        "signature": "Point Point()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the point if the referenced geometry is one.",
        "since": "5.0",
        "returns": "A point; or None if the referenced object is not a point, or on error."
      },
      {
        "signature": "PointCloud PointCloud()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the point cloud if the referenced geometry is one.",
        "since": "5.0",
        "returns": "A point cloud; or None if the referenced object is not a point cloud, or on error."
      },
      {
        "signature": "SelectionMethod SelectionMethod()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the method used to select this object.",
        "since": "5.0",
        "returns": "The method used to select this object."
      },
      {
        "signature": "Point3d SelectionPoint()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "If the object was selected by picking a point on it, then SelectionPoint() returns the point where the selection occurred, otherwise it returns Point3d.Unset.",
        "since": "5.0",
        "returns": "The point where the selection occurred or Point3d.Unset on failure."
      },
      {
        "signature": "RhinoView SelectionView()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "If the object was interactively selected in a particular viewport, then SelectionView() returns the view where the object was selected.",
        "since": "6.5"
      },
      {
        "signature": "System.UInt32 SelectionViewDetailSerialNumber()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "If the object was interactively selected in a page space detail view, then SelectionViewDetailSerialNumber() returns the CRhinoObject serial number of the detail view object.  Use SelectionView() to get the page view that contains the detail view object. If SelectionViewDetailSerialNumber() returns 0, then the selection did not happen in a detail view.",
        "since": "6.5"
      },
      {
        "signature": "System.Void SetSelectionComponent(ComponentIndex componentIndex)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "When an object is selected by picking a sub-object, SetSelectionComponent may be used to identify the sub-object.",
        "since": "5.0"
      },
      {
        "signature": "SubD SubD()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the SubD if the referenced geometry is one.",
        "since": "7.0",
        "returns": "A SubD; or None if the referenced object is not a SubD, or on error."
      },
      {
        "signature": "SubDEdge SubDEdge()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the SubDEdge if the referenced geometry is one.",
        "since": "8.15",
        "returns": "A SubDEdge; or None if the referenced object is not a SubDEdge, or on error."
      },
      {
        "signature": "SubDFace SubDFace()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the SubDFace if the referenced geometry is one.",
        "since": "7.0",
        "returns": "A SubDFace; or None if the referenced object is not a SubDFace, or on error."
      },
      {
        "signature": "SubDVertex SubDVertex()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the SubDVertex if the referenced geometry is one.",
        "since": "8.15",
        "returns": "A SubDVertex; or None if the referenced object is not a SubDVertex, or on error."
      },
      {
        "signature": "Surface Surface()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the surface if the referenced geometry is one.",
        "since": "5.0",
        "returns": "A surface; or None if the referenced object is not a surface, or on error."
      },
      {
        "signature": "Surface SurfaceParameter(out System.Double u, out System.Double v)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "If the reference geometry is a surface, brep with one face, or surface edge with a selection point, then this gets the surface parameters of the selection point.",
        "since": "5.0",
        "parameters": [
          {
            "name": "u",
            "type": "System.Double",
            "summary": "The U value is assigned to this out parameter during the call."
          },
          {
            "name": "v",
            "type": "System.Double",
            "summary": "The V value is assigned to this out parameter during the call."
          }
        ],
        "returns": "If the selection point was on a surface, then the surface is returned."
      },
      {
        "signature": "TextDot TextDot()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the text dot if the referenced geometry is one.",
        "since": "5.0",
        "returns": "A text dot; or None if the referenced object is not a text dot, or on error."
      },
      {
        "signature": "TextEntity TextEntity()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the text entity if the referenced geometry is one.",
        "since": "5.0",
        "returns": "A text entity; or None if the referenced object is not a text entity, or on error."
      },
      {
        "signature": "BrepTrim Trim()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "If the referenced geometry is an edge of a surface, this returns the associated brep trim.",
        "since": "5.8",
        "returns": "A boundary representation trim; or None on error"
      }
    ]
  },
  {
    "namespace": "Rhino.DocObjects",
    "name": "OrdinateDimensionObject",
    "dataType": "class",
    "summary": "Rhino Object that represents an ordinate dimension geometry and attributes",
    "baseclass": "Rhino.DocObjects.DimensionObject",
    "properties": [
      {
        "signature": "OrdinateDimension OrdinateDimensionGeometry",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Get the dimension geometry for this object.",
        "since": "6.0",
        "property": ["get"]
      }
    ]
  },
  {
    "namespace": "Rhino.DocObjects",
    "name": "PageViewGroup",
    "dataType": "class",
    "summary": "PageView Group class",
    "baseclass": "Rhino.DocObjects.ModelComponent",
    "since": "9.0",
    "constructors": [
      {
        "signature": "PageViewGroup()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Constructs a new page view group.",
        "since": "9.0"
      }
    ],
    "properties": [
      {
        "signature": "ComponentStatus ComponentStatus",
        "modifiers": ["public", "override"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the status of the page view group.",
        "since": "9.0",
        "property": ["get", "set"]
      },
      {
        "signature": "ModelComponentType ComponentType",
        "modifiers": ["public", "override"],
        "protected": false,
        "virtual": false,
        "summary": "Returns <b>ModelComponentType.Group</b> .",
        "since": "9.0",
        "property": ["get"]
      },
      {
        "signature": "string Description",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets and sets a brief description of the page view group.",
        "since": "9.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool IsExpanded",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the expanded state of the page view group.",
        "since": "9.0",
        "property": ["get", "set"]
      },
      {
        "signature": "int MemberCount",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Get the number of page views that are members of this page view group.",
        "since": "9.0",
        "property": ["get"]
      },
      {
        "signature": "string Name",
        "modifiers": ["public", "override"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the name of this page view group.",
        "since": "9.0",
        "property": ["get", "set"]
      },
      {
        "signature": "int SortIndex",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the runtime index used to sort page view groups.",
        "since": "9.0",
        "property": ["get"]
      },
      {
        "signature": "int UserStringCount",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the amount of user strings.",
        "since": "9.0",
        "property": ["get"]
      }
    ],
    "methods": [
      {
        "signature": "System.Void CopyAttributesFrom(PageViewGroup src)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Copy attributes from another page view group.",
        "since": "9.0"
      },
      {
        "signature": "System.Void DeleteAllUserStrings()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "9.0"
      },
      {
        "signature": "System.Boolean DeleteUserString(System.String key)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "9.0"
      },
      {
        "signature": "RhinoPageView[] GetMembers()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Get an array of all of the page views in this page view group.",
        "since": "9.0",
        "returns": "Array page views if successful, otherwise an empty array."
      },
      {
        "signature": "System.String GetUserString(System.String key)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets user string from this component.",
        "since": "9.0",
        "parameters": [
          {
            "name": "key",
            "type": "System.String",
            "summary": "id used to retrieve the string."
          }
        ],
        "returns": "string associated with the key if successful. None if no key was found."
      },
      {
        "signature": "System.Collections.Specialized.NameValueCollection GetUserStrings()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets a copy of all (user key string, user value string) pairs attached to this component.",
        "since": "9.0",
        "returns": "A new collection."
      },
      {
        "signature": "System.Boolean SetUserString(System.String key, System.String value)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Attach a user string (key,value combination) to this component.",
        "since": "9.0",
        "parameters": [
          {
            "name": "key",
            "type": "System.String",
            "summary": "id used to retrieve this string."
          },
          {
            "name": "value",
            "type": "System.String",
            "summary": "string associated with key."
          }
        ],
        "returns": "True on success."
      }
    ]
  },
  {
    "namespace": "Rhino.DocObjects",
    "name": "PhysicallyBasedMaterial",
    "dataType": "class",
    "properties": [
      {
        "signature": "double Alpha",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "7.1",
        "property": ["get", "set"]
      },
      {
        "signature": "double Anisotropic",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "7.0",
        "property": ["get", "set"]
      },
      {
        "signature": "double AnisotropicRotation",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "7.0",
        "property": ["get", "set"]
      },
      {
        "signature": "Color4f BaseColor",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "7.0",
        "property": ["get", "set"]
      },
      {
        "signature": "BRDFs BRDF",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "7.0",
        "property": ["get", "set"]
      },
      {
        "signature": "double Clearcoat",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "7.0",
        "property": ["get", "set"]
      },
      {
        "signature": "double ClearcoatRoughness",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "7.0",
        "property": ["get", "set"]
      },
      {
        "signature": "Color4f Emission",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "7.0",
        "property": ["get", "set"]
      },
      {
        "signature": "Material Material",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "7.0",
        "property": ["get"]
      },
      {
        "signature": "double Metallic",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "7.0",
        "property": ["get", "set"]
      },
      {
        "signature": "double Opacity",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "7.0",
        "property": ["get", "set"]
      },
      {
        "signature": "double OpacityIOR",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "7.0",
        "property": ["get", "set"]
      },
      {
        "signature": "double OpacityRoughness",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "7.0",
        "property": ["get", "set"]
      },
      {
        "signature": "double ReflectiveIOR",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "7.0",
        "property": ["get", "set"]
      },
      {
        "signature": "double Roughness",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "7.0",
        "property": ["get", "set"]
      },
      {
        "signature": "double Sheen",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "7.0",
        "property": ["get", "set"]
      },
      {
        "signature": "double SheenTint",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "7.0",
        "property": ["get", "set"]
      },
      {
        "signature": "double Specular",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "7.0",
        "property": ["get", "set"]
      },
      {
        "signature": "double SpecularTint",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "7.0",
        "property": ["get", "set"]
      },
      {
        "signature": "double Subsurface",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "7.0",
        "property": ["get", "set"]
      },
      {
        "signature": "Color4f SubsurfaceScatteringColor",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "7.0",
        "property": ["get", "set"]
      },
      {
        "signature": "double SubsurfaceScatteringRadius",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "7.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool UseBaseColorTextureAlphaForObjectAlphaTransparencyTexture",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "7.1",
        "property": ["get", "set"]
      }
    ],
    "methods": [
      {
        "signature": "DocObjects.Texture GetTexture(DocObjects.TextureType which)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Get the texture that corresponds with the specified texture type for this material.",
        "since": "7.0"
      },
      {
        "signature": "DocObjects.Texture[] GetTextures()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Get array of textures that this material uses",
        "since": "7.0"
      },
      {
        "signature": "System.Boolean SetTexture(DocObjects.Texture texture, DocObjects.TextureType which)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Set the texture that corresponds with the specified texture type for this material.",
        "since": "7.0",
        "parameters": [
          {
            "name": "texture",
            "type": "DocObjects.Texture",
            "summary": "An instance of Rhino.DocObjects.Texture"
          },
          {
            "name": "which",
            "type": "DocObjects.TextureType",
            "summary": "Use Rhino.DocObjects.TextureType"
          }
        ]
      },
      {
        "signature": "System.Void SynchronizeLegacyMaterial()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "7.0"
      }
    ]
  },
  {
    "namespace": "Rhino.DocObjects",
    "name": "PhysicallyBasedMaterial.BRDFs",
    "dataType": "enum",
    "since": "7.0",
    "values": [
      {
        "signature": "GGX = 0",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Ward = 1",
        "modifiers": [],
        "protected": false,
        "virtual": false
      }
    ]

  },
  {
    "namespace": "Rhino.DocObjects",
    "name": "PointCloudObject",
    "dataType": "class",
    "baseclass": "Rhino.DocObjects.RhinoObject",
    "properties": [
      {
        "signature": "PointCloud PointCloudGeometry",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0",
        "property": ["get"]
      }
    ],
    "methods": [
      {
        "signature": "PointCloud DuplicatePointCloudGeometry()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      }
    ]
  },
  {
    "namespace": "Rhino.DocObjects",
    "name": "PointObject",
    "dataType": "class",
    "baseclass": "Rhino.DocObjects.RhinoObject",
    "properties": [
      {
        "signature": "Point PointGeometry",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0",
        "property": ["get"]
      }
    ],
    "methods": [
      {
        "signature": "Point DuplicatePointGeometry()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      }
    ]
  },
  {
    "namespace": "Rhino.DocObjects",
    "name": "ProxyObject",
    "dataType": "class",
    "summary": "A proxy object (not saved in files)",
    "baseclass": "Rhino.DocObjects.RhinoObject",
    "methods": [
      {
        "signature": "System.Int32 CreateMeshes(MeshType meshType, MeshingParameters parameters, System.Boolean ignoreCustomParameters)",
        "modifiers": ["public", "override"],
        "protected": false,
        "virtual": false,
        "since": "7.0"
      },
      {
        "signature": "Mesh[] GetMeshes(MeshType meshType)",
        "modifiers": ["public", "override"],
        "protected": false,
        "virtual": false,
        "since": "7.0"
      }
    ]
  },
  {
    "namespace": "Rhino.DocObjects",
    "name": "RadialDimensionObject",
    "dataType": "class",
    "summary": "Rhino Object that represents a radial dimension geometry and attributes",
    "baseclass": "Rhino.DocObjects.DimensionObject",
    "properties": [
      {
        "signature": "RadialDimension RadialDimensionGeometry",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Get the dimension geometry for this object.",
        "since": "6.0",
        "property": ["get"]
      }
    ]
  },
  {
    "namespace": "Rhino.DocObjects",
    "name": "ReplayHistoryData",
    "dataType": "class",
    "summary": "Provides history information to commands that will repeat history construction. Generally, a developer using this class will not construct a new instance, but receive one.",
    "interfaces": ["IDisposable"],
    "properties": [
      {
        "signature": "RhinoDoc Document",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "The document this record belongs to",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "int HistoryVersion",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "ReplayHistory overrides check the version number to ensure the information saved in the history record is compatible with the current implementation of ReplayHistory",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "Guid RecordId",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Each history record has a unique id that Rhino assigns when it adds the history record to the history record table",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "ReplayHistoryResult[] Results",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Provides access to BOTH inputs and outputs of the replay history operation.  \nUse this property to then call an appropriate UpdateToX() method and make your     custom history support work.",
        "since": "5.0",
        "property": ["get"]
      }
    ],
    "methods": [
      {
        "signature": "ReplayHistoryResult AppendHistoryResult()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Create an empty history result and add it to the end of the Results array. Note that you should call Results again if you need them as the old Results array will be out of sync with this class.",
        "since": "8.0"
      },
      {
        "signature": "System.Void Dispose()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "Rhino.DocObjects.ObjRef GetRhinoObjRef(System.Int32 id)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "In ReplayHistory, use GetRhinoObjRef to convert the information in a history record into the ObjRef that has up to date RhinoObject pointers",
        "since": "5.0",
        "parameters": [
          {
            "name": "id",
            "type": "System.Int32",
            "summary": "HistoryRecord value id"
          }
        ],
        "returns": "ObjRef on success, None if not successful"
      },
      {
        "signature": "System.Boolean TryGetBool(System.Int32 id, out System.Boolean value)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "System.Boolean TryGetColor(System.Int32 id, out System.Drawing.Color value)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "System.Boolean TryGetDouble(System.Int32 id, out System.Double value)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "System.Boolean TryGetDoubles(System.Int32 id, out System.Double[] values)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.10"
      },
      {
        "signature": "System.Boolean TryGetGuid(System.Int32 id, out System.Guid value)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "System.Boolean TryGetGuids(System.Int32 id, out System.Guid[] values)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "8.0"
      },
      {
        "signature": "System.Boolean TryGetInt(System.Int32 id, out System.Int32 value)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "System.Boolean TryGetInts(System.Int32 id, out System.Int32[] values)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "9.0"
      },
      {
        "signature": "System.Boolean TryGetPoint3d(System.Int32 id, out Geometry.Point3d value)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "System.Boolean TryGetPoint3dOnObject(System.Int32 id, out Geometry.Point3d value)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0"
      },
      {
        "signature": "System.Boolean TryGetString(System.Int32 id, out System.String value)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "System.Boolean TryGetTransform(System.Int32 id, out Geometry.Transform value)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "System.Boolean TryGetVector3d(System.Int32 id, out Geometry.Vector3d value)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "System.Void UpdateResultArray(IEnumerable<ReplayHistoryResult> newResults)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Update the Results array with a different set of values. Null entries in the newResults will result in empty ReplayHistoryResult elements",
        "since": "8.0"
      }
    ]
  },
  {
    "namespace": "Rhino.DocObjects",
    "name": "ReplayHistoryResult",
    "dataType": "class",
    "properties": [
      {
        "signature": "RhinoObject ExistingObject",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "The previously existing object.  \nDo not attempt to edit this object. It might have been already deleted by, for example, dragging.",
        "since": "5.0",
        "property": ["get"]
      }
    ],
    "methods": [
      {
        "signature": "System.Boolean UpdateToAngularDimension(Geometry.AngularDimension dimension, ObjectAttributes attributes)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "System.Boolean UpdateToArc(Geometry.Arc arc, DocObjects.ObjectAttributes attributes)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "System.Boolean UpdateToBrep(Geometry.Brep brep, DocObjects.ObjectAttributes attributes)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "System.Boolean UpdateToCircle(Geometry.Circle circle, DocObjects.ObjectAttributes attributes)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "System.Boolean UpdateToClippingPlane(Geometry.Plane plane, System.Double uMagnitude, System.Double vMagnitude, IEnumerable<Guid> clippedViewportIds, ObjectAttributes attributes)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "System.Boolean UpdateToClippingPlane(Geometry.Plane plane, System.Double uMagnitude, System.Double vMagnitude, System.Guid clippedViewportId, ObjectAttributes attributes)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "System.Boolean UpdateToCurve(Geometry.Curve curve, DocObjects.ObjectAttributes attributes)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "System.Boolean UpdateToEllipse(Geometry.Ellipse ellipse, DocObjects.ObjectAttributes attributes)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "System.Boolean UpdateToExtrusion(Geometry.Extrusion extrusion, DocObjects.ObjectAttributes attributes)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "System.Boolean UpdateToHatch(Geometry.Hatch hatch, DocObjects.ObjectAttributes attributes)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "System.Boolean UpdateToInstanceReferenceGeometry(Geometry.InstanceReferenceGeometry instanceReference, DocObjects.ObjectAttributes attributes)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "7.30"
      },
      {
        "signature": "System.Boolean UpdateToLeader(Geometry.Leader leader, DocObjects.ObjectAttributes attributes)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "System.Boolean UpdateToLine(Geometry.Point3d from, Geometry.Point3d to, DocObjects.ObjectAttributes attributes)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "System.Boolean UpdateToLinearDimension(Geometry.LinearDimension dimension, ObjectAttributes attributes)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "System.Boolean UpdateToMesh(Geometry.Mesh mesh, DocObjects.ObjectAttributes attributes)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "System.Boolean UpdateToPoint(Rhino.Geometry.Point3d point, ObjectAttributes attributes)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "System.Boolean UpdateToPointCloud(IEnumerable<Point3d> points, DocObjects.ObjectAttributes attributes)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "System.Boolean UpdateToPointCloud(Rhino.Geometry.PointCloud cloud, ObjectAttributes attributes)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "System.Boolean UpdateToPolyline(IEnumerable<Point3d> points, DocObjects.ObjectAttributes attributes)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "System.Boolean UpdateToRadialDimension(Geometry.RadialDimension dimension, ObjectAttributes attributes)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "System.Boolean UpdateToSphere(Geometry.Sphere sphere, DocObjects.ObjectAttributes attributes)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "System.Boolean UpdateToSubD(Geometry.SubD subD, DocObjects.ObjectAttributes attributes)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "7.18"
      },
      {
        "signature": "System.Boolean UpdateToSurface(Geometry.Surface surface, DocObjects.ObjectAttributes attributes)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "System.Boolean UpdateToText(Geometry.TextEntity text, DocObjects.ObjectAttributes attributes)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "System.Boolean UpdateToText(System.String text, Geometry.Plane plane, System.Double height, System.String fontName, System.Boolean bold, System.Boolean italic, Geometry.TextJustification justification, DocObjects.ObjectAttributes attributes)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "System.Boolean UpdateToTextDot(Geometry.TextDot dot, DocObjects.ObjectAttributes attributes)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      }
    ]
  },
  {
    "namespace": "Rhino.DocObjects",
    "name": "RhinoAfterTransformObjectsEventArgs",
    "dataType": "class",
    "summary": "EventArgs passed to RhinoDoc.AfterTransform.",
    "baseclass": "EventArgs",
    "since": "8.15",
    "properties": [
      {
        "signature": "uint TransformEventId",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "The transformation event id.",
        "since": "8.15",
        "property": ["get"]
      }
    ]
  },
  {
    "namespace": "Rhino.DocObjects",
    "name": "RhinoDeselectAllObjectsEventArgs",
    "dataType": "class",
    "baseclass": "EventArgs",
    "properties": [
      {
        "signature": "RhinoDoc Document",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "int ObjectCount",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0",
        "property": ["get"]
      }
    ]
  },
  {
    "namespace": "Rhino.DocObjects",
    "name": "RhinoModifyObjectAttributesEventArgs",
    "dataType": "class",
    "baseclass": "EventArgs",
    "properties": [
      {
        "signature": "RhinoDoc Document",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "uint DocumentSerialNumber",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "The document runtime serial number.",
        "since": "9.0",
        "property": ["get"]
      },
      {
        "signature": "ObjectAttributes NewAttributes",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "ObjectAttributes OldAttributes",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "RhinoObject RhinoObject",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0",
        "property": ["get"]
      }
    ]
  },
  {
    "namespace": "Rhino.DocObjects",
    "name": "RhinoObject",
    "dataType": "class",
    "summary": "Represents an object in the document.  \nRhinoObjects should only ever be creatable by the RhinoDoc.",
    "baseclass": "Rhino.DocObjects.ModelComponent",
    "properties": [
      {
        "signature": "uint NextRuntimeSerialNumber",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the runtime serial number that will be assigned to the next Rhino Object that is created.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "ObjectAttributes Attributes",
        "modifiers": ["public", "virtual"],
        "protected": false,
        "virtual": true,
        "summary": "Gets or sets the object attributes.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "ModelComponentType ComponentType",
        "modifiers": ["public", "override"],
        "protected": false,
        "virtual": false,
        "summary": "Returns <b>ModelComponentType.ModelGeometry</b> .",
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "RhinoDoc Document",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the document that owns this object.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "GeometryBase Geometry",
        "modifiers": ["public", "virtual"],
        "protected": false,
        "virtual": true,
        "summary": "Gets the underlying geometry for this object.  \nAll rhino objects are composed of geometry and attributes.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "bool GripsOn",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the activation state of object default editing grips.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool GripsSelected",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "True if grips are turned on and at least one is selected.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "int GroupCount",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Number of groups object belongs to.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "bool HasDynamicTransform",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "True if the object has a dynamic transformation",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "bool HasSubobjectMaterials",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Will be True if the object contains sub object meshes with materials that are different than the top level object.",
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "Guid Id",
        "modifiers": ["public", "override"],
        "protected": false,
        "virtual": false,
        "summary": "Every object has a Guid (globally unique identifier, also known as UUID, or universally unique identifier). The default value is Guid.Empty.  \nWhen an object is added to a model, the value is checked.  If the value is Guid.Empty, a     new Guid is created. If the value is not None but it is already used by another object     in the model, a new Guid is created. If the value is not Guid.Empty and it is not used by     another object in the model, then that value persists. When an object is updated, by     a move for example, the value of ObjectId persists.  \nThis value is the same as the one returned by this.Attributes.ObjectId.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "uint InstanceDefinitionModelSerialNumber",
        "modifiers": ["public", "override"],
        "protected": false,
        "virtual": false,
        "summary": "When a component is in a model as part of the information required for a linked instance definition, this value identifies the linked instance definition reference model.",
        "since": "6.12",
    "remarks": "Reference components are not saved in .3dm archives. Typically this value is set and locked by the code that adds a component to a model. This value is not saved in .3dm archives.",
        "property": ["get"]
      },
      {
        "signature": "bool IsDeletable",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Some objects cannot be deleted, like grips on lights and annotation objects.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool IsDeleted",
        "modifiers": ["public", "override"],
        "protected": false,
        "virtual": false,
        "summary": "True if the object is deleted. Deleted objects are kept by the document for undo purposes. Call RhinoDoc.UndeleteObject to undelete an object.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "bool IsHidden",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "An object must be in one of three modes: normal, locked or hidden. If an object is in normal mode, then the object's layer controls visibility and selectability. If an object is locked, then the object's layer controls visibility by the object cannot be selected. If the object is hidden, it is not visible and it cannot be selected.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "bool IsInstanceDefinitionGeometry",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "True if the object is used as part of an instance definition.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "bool IsLocked",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "An object must be in one of three modes: normal, locked or hidden. If an object is in normal mode, then the object's layer controls visibility and selectability. If an object is locked, then the object's layer controls visibility by the object cannot be selected. If the object is hidden, it is not visible and it cannot be selected.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "bool IsNormal",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "An object must be in one of three modes: normal, locked or hidden. If an object is in normal mode, then the object's layer controls visibility and selectability. If an object is locked, then the object's layer controls visibility by the object cannot be selected. If the object is hidden, it is not visible and it cannot be selected.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "bool IsPictureFrame",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns True if the object is a picture frame. A picture frame object is an object that displays a texture map in all views.",
        "since": "7.9",
        "property": ["get"]
      },
      {
        "signature": "bool IsReference",
        "modifiers": ["public", "override"],
        "protected": false,
        "virtual": false,
        "summary": "Gets a value indicating if an object is a reference object. An object from a work session reference model is a reference object and cannot be modified. An object is a reference object if, and only if, it is on a reference layer.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "bool IsSolid",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns True if object is a closed solid, otherwise false.",
        "since": "7.6",
        "property": ["get"]
      },
      {
        "signature": "string Name",
        "modifiers": ["public", "override"],
        "protected": false,
        "virtual": false,
        "summary": "Rhino objects have optional text names.  More than one object in a model can have the same name and some objects may have no name.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "ObjectType ObjectType",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the Rhino-based object type.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "uint ReferenceModelSerialNumber",
        "modifiers": ["public", "override"],
        "protected": false,
        "virtual": false,
        "summary": "When a component is in a model for reference, this value identifies the reference model.",
        "since": "6.12",
    "remarks": "Reference components are not saved in .3dm archives. Typically this value is set and locked by the code that adds a component to a model. This value is not saved in .3dm archives.",
        "property": ["get"]
      },
      {
        "signature": "RenderMaterial RenderMaterial",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the render material associated with this object or None if there is none.  This does not pay attention to the material source and will not check parent objects or layers for a RenderMaterial.",
        "since": "5.7",
        "property": ["get", "set"]
      },
      {
        "signature": "uint RuntimeSerialNumber",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the objects runtime serial number.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "ComponentIndex[] SubobjectMaterialComponents",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "bool Visible",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the object visibility.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "uint WorksessionReferenceSerialNumber",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Obsolete - use ReferenceModelSerialNumber",
        "since": "6.3",
        "property": ["get"]
      }
    ],
    "methods": [
      {
        "signature": "RhinoObject FromRuntimeSerialNumber(System.UInt32 serialNumber)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Get a Rhino object for a unique runtime serial number",
        "since": "6.0"
      },
      {
        "signature": "Brep[] GetFillSurfaces(RhinoObject rhinoObject, ClippingPlaneObject clippingPlaneObject)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Return list of fill surfaces if any for object and clipping plane.",
        "since": "6.7",
        "parameters": [
          {
            "name": "rhinoObject",
            "type": "RhinoObject",
            "summary": "Object to clip"
          },
          {
            "name": "clippingPlaneObject",
            "type": "ClippingPlaneObject",
            "summary": "Clipping plane to use"
          }
        ]
      },
      {
        "signature": "Brep[] GetFillSurfaces(RhinoObject rhinoObject, IEnumerable<ClippingPlaneObject> clippingPlaneObjects, System.Boolean unclippedFills)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Return list of fill surfaces if any for object and clipping plane.",
        "since": "6.7",
        "parameters": [
          {
            "name": "rhinoObject",
            "type": "RhinoObject",
            "summary": "Object to clip"
          },
          {
            "name": "clippingPlaneObjects",
            "type": "IEnumerable<ClippingPlaneObject>",
            "summary": "Enumeration of clipping plane objects"
          },
          {
            "name": "unclippedFills",
            "type": "System.Boolean",
            "summary": "Use True to get fills that are not trimmed by all clipping planes"
          }
        ],
        "returns": "Array of Brep containing fills if there were any generated, trimmed if unclippedFills was false"
      },
      {
        "signature": "Brep[] GetFillSurfaces(RhinoObject rhinoObject, IEnumerable<ClippingPlaneObject> clippingPlaneObjects)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Return list of fill surfaces if any for object and clipping plane. Fills are trimmed by clipping planes that did not generate them.",
        "since": "6.7",
        "parameters": [
          {
            "name": "rhinoObject",
            "type": "RhinoObject",
            "summary": "Object to clip"
          },
          {
            "name": "clippingPlaneObjects",
            "type": "IEnumerable<ClippingPlaneObject>",
            "summary": "Enumeration of clipping plane objects"
          }
        ],
        "returns": "Array of Brep containing fully trimmed fills if there were any generated."
      },
      {
        "signature": "ObjRef[] GetRenderMeshes(IEnumerable<RhinoObject> rhinoObjects, System.Boolean okToCreate, System.Boolean returnAllObjects)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the render meshes of some objects.",
        "since": "5.0",
        "deprecated": "8.0",
        "parameters": [
          {
            "name": "rhinoObjects",
            "type": "System.Collections.Generic.IEnumerable<RhinoObject>",
            "summary": "An array, a list, or any enumerable set of Rhino objects."
          },
          {
            "name": "okToCreate",
            "type": "System.Boolean",
            "summary": "True if the method is allowed to instantiate new meshes if they do not exist."
          },
          {
            "name": "returnAllObjects",
            "type": "System.Boolean",
            "summary": "True if all objects should be returned."
          }
        ],
        "returns": "An array of object references."
      },
      {
        "signature": "ObjRef[] GetRenderMeshesWithUpdatedTCs(IEnumerable<RhinoObject> rhinoObjects, System.Boolean okToCreate, System.Boolean returnAllObjects, System.Boolean skipHiddenObjects, System.Boolean updateMeshTCs)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the render meshes of some objects.",
        "since": "7.3",
        "deprecated": "8.0",
        "obsolete": "Does not support custom render meshes, per-face materials or delivery of the shared pointer meshes.  Prefer RhinoObject.RenderMeshes.",
        "parameters": [
          {
            "name": "rhinoObjects",
            "type": "System.Collections.Generic.IEnumerable<RhinoObject>",
            "summary": "An array, a list, or any enumerable set of Rhino objects."
          },
          {
            "name": "okToCreate",
            "type": "System.Boolean",
            "summary": "True if the method is allowed to instantiate new meshes if they do not exist."
          },
          {
            "name": "returnAllObjects",
            "type": "System.Boolean",
            "summary": "True if all objects should be returned."
          },
          {
            "name": "skipHiddenObjects",
            "type": "System.Boolean",
            "summary": "True if hidden objects should be ignored."
          },
          {
            "name": "updateMeshTCs",
            "type": "System.Boolean",
            "summary": "True if the TCs should be updated with a texture mapping."
          }
        ],
        "returns": "An array of object references."
      },
      {
        "signature": "System.Boolean GetTightBoundingBox(IEnumerable<RhinoObject> rhinoObjects, out BoundingBox boundingBox)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Gets a world XY-plane aligned tight bounding box from a collection of Rhino objects.",
        "since": "7.0",
        "parameters": [
          {
            "name": "rhinoObjects",
            "type": "IEnumerable<RhinoObject>",
            "summary": "A collection of Rhino objects."
          },
          {
            "name": "boundingBox",
            "type": "BoundingBox",
            "summary": "A tight bounding box."
          }
        ]
      },
      {
        "signature": "System.Boolean GetTightBoundingBox(IEnumerable<RhinoObject> rhinoObjects, Plane plane, out BoundingBox boundingBox)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Gets a plane aligned tight bounding box from a collection of Rhino objects.",
        "since": "7.0",
        "parameters": [
          {
            "name": "rhinoObjects",
            "type": "IEnumerable<RhinoObject>",
            "summary": "A collection of Rhino objects."
          },
          {
            "name": "plane",
            "type": "Plane",
            "summary": "A valid alignment plane."
          },
          {
            "name": "boundingBox",
            "type": "BoundingBox",
            "summary": "A tight bounding box."
          }
        ]
      },
      {
        "signature": "Commands.Result MeshObjects(IEnumerable<RhinoObject> rhinoObjects, MeshingParameters parameters, out Mesh[] meshes, out ObjectAttributes[] attributes, System.Boolean useWorkerThread)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Meshes Rhino objects.",
        "since": "8.4",
        "parameters": [
          {
            "name": "rhinoObjects",
            "type": "System.Collections.Generic.IEnumerable<RhinoObject>",
            "summary": "The Rhino objects to mesh."
          },
          {
            "name": "parameters",
            "type": "MeshingParameters",
            "summary": "The parameters used to create the meshes."
          },
          {
            "name": "meshes",
            "type": "Mesh[]",
            "summary": "The created meshes are appended to this array."
          },
          {
            "name": "attributes",
            "type": "ObjectAttributes[]",
            "summary": "The object attributes that coincide with each created mesh are appended to this array."
          },
          {
            "name": "useWorkerThread",
            "type": "System.Boolean",
            "summary": "Set True to compute meshes in a worker thread."
          }
        ],
        "returns": "The results of the calculation."
      },
      {
        "signature": "Commands.Result MeshObjects(IEnumerable<RhinoObject> rhinoObjects, MeshingParameters parameters, out Mesh[] meshes, out ObjectAttributes[] attributes)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Meshes Rhino objects.",
        "since": "5.9",
        "parameters": [
          {
            "name": "rhinoObjects",
            "type": "System.Collections.Generic.IEnumerable<RhinoObject>",
            "summary": "The Rhino objects to mesh."
          },
          {
            "name": "parameters",
            "type": "MeshingParameters",
            "summary": "The parameters used to create the meshes."
          },
          {
            "name": "meshes",
            "type": "Mesh[]",
            "summary": "The created meshes are appended to this array."
          },
          {
            "name": "attributes",
            "type": "ObjectAttributes[]",
            "summary": "The object attributes that coincide with each created mesh are appended to this array."
          }
        ],
        "returns": "The results of the calculation."
      },
      {
        "signature": "Commands.Result MeshObjects(IEnumerable<RhinoObject> rhinoObjects, ref MeshingParameters parameters, ref System.Boolean simpleDialog, out Mesh[] meshes, out ObjectAttributes[] attributes)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Meshes Rhino objects.",
        "since": "5.9",
        "parameters": [
          {
            "name": "rhinoObjects",
            "type": "System.Collections.Generic.IEnumerable<RhinoObject>",
            "summary": "The Rhino objects to mesh."
          },
          {
            "name": "parameters",
            "type": "MeshingParameters",
            "summary": "The parameters used to create the meshes. The meshing parameters may change."
          },
          {
            "name": "simpleDialog",
            "type": "System.Boolean",
            "summary": "True to display the simple mesh parameters dialog, False to display the detailed mesh parameters dialog."
          },
          {
            "name": "meshes",
            "type": "Mesh[]",
            "summary": "The created meshes are appended to this array."
          },
          {
            "name": "attributes",
            "type": "ObjectAttributes[]",
            "summary": "The object attributes that coincide with each created mesh are appended to this array."
          }
        ],
        "returns": "The results of the calculation."
      },
      {
        "signature": "Commands.Result MeshObjects(IEnumerable<RhinoObject> rhinoObjects, ref MeshingParameters parameters, ref System.Int32 uiStyle, Transform xform, out Mesh[] meshes, out ObjectAttributes[] attributes)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Meshes Rhino objects.",
        "since": "6.0",
        "parameters": [
          {
            "name": "rhinoObjects",
            "type": "System.Collections.Generic.IEnumerable<RhinoObject>",
            "summary": "The Rhino objects to mesh."
          },
          {
            "name": "parameters",
            "type": "MeshingParameters",
            "summary": "The parameters used to create the meshes. The meshing parameters may change."
          },
          {
            "name": "uiStyle",
            "type": "System.Int32",
            "summary": "The user interface style, where: -1 = no interface, 0 = simple dialog, 1 = details dialog, 2 = script or batch mode"
          },
          {
            "name": "xform",
            "type": "Transform",
            "summary": "Transform to be used for export with origin, or Z to Y up, etc."
          },
          {
            "name": "meshes",
            "type": "Mesh[]",
            "summary": "The created meshes are appended to this array."
          },
          {
            "name": "attributes",
            "type": "ObjectAttributes[]",
            "summary": "The object attributes that coincide with each created mesh are appended to this array."
          }
        ],
        "returns": "The results of the calculation."
      },
      {
        "signature": "System.Boolean CommitChanges()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Moves changes made to this RhinoObject into the RhinoDoc.",
        "since": "5.0",
        "returns": "True if changes were made."
      },
      {
        "signature": "System.Boolean CopyHistoryOnReplace()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the setting of the CopyOnReplace field in this object's history",
        "since": "7.1",
        "returns": "True if this object has history and the field is set False otherwise"
      },
      {
        "signature": "System.Int32 CreateMeshes(MeshType meshType, MeshingParameters parameters, System.Boolean ignoreCustomParameters)",
        "modifiers": ["public", "virtual"],
        "protected": false,
        "virtual": true,
        "summary": "Create meshes used to render and analyze surface and polysurface objects.",
        "since": "5.0",
        "parameters": [
          {
            "name": "meshType",
            "type": "MeshType",
            "summary": "type of meshes to create"
          },
          {
            "name": "parameters",
            "type": "MeshingParameters",
            "summary": "in parameters that control the quality of the meshes that are created"
          },
          {
            "name": "ignoreCustomParameters",
            "type": "System.Boolean",
            "summary": "Default should be false. Should the object ignore any custom meshing parameters on the object's attributes"
          }
        ],
        "returns": "number of meshes created"
      },
      {
        "signature": "GeometryBase[] CreateSections(Plane plane, System.String name, System.Double tolerance, out ObjectAttributes[] objectAttributes)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Generate section curves by intersecting a plane with an object of type Brep, Extrusion, SubD ,Mesh or Block Instance.",
        "since": "9.0",
        "parameters": [
          {
            "name": "plane",
            "type": "Plane",
            "summary": "Intersecting plane."
          },
          {
            "name": "name",
            "type": "System.String",
            "summary": "Name for section of objects."
          },
          {
            "name": "tolerance",
            "type": "System.Double",
            "summary": "The intersection tolerance. When in doubt, use the document's model absolute tolerance."
          },
          {
            "name": "objectAttributes",
            "type": "ObjectAttributes[]",
            "summary": "Object attributes, one for each returned geometry item."
          }
        ],
        "returns": "Section geometry in the form of Breps, Extrusions, Meshes, and Curves if successful. An empty array if unsuccessful."
      },
      {
        "signature": "GeometryBase[] CreateSlices(Plane centerPlane, System.String name, System.Double thickness, System.Double tolerance, out ObjectAttributes[] objectAttributes)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Generate slices by intersecting a plane with an object of type Brep, Extrusion, SubD , Mesh, or Block Instance.",
        "since": "9.0",
        "parameters": [
          {
            "name": "centerPlane",
            "type": "Plane",
            "summary": "Intesecting plane."
          },
          {
            "name": "name",
            "type": "System.String",
            "summary": "Name for section of objects."
          },
          {
            "name": "thickness",
            "type": "System.Double",
            "summary": "Thickness of the slice. If thickness is less than tolerance, a surface will be created instead of a solid slice."
          },
          {
            "name": "tolerance",
            "type": "System.Double",
            "summary": "The intersection tolerance. When in doubt, use the document's model absolute tolerance."
          },
          {
            "name": "objectAttributes",
            "type": "ObjectAttributes[]",
            "summary": "Object attributes, one for each returned geometry item."
          }
        ],
        "returns": "Slice geometry in the form of Breps, Extrusions, Meshes, and Curves if successful. An empty array if unsuccessful."
      },
      {
        "signature": "System.Boolean CustomRenderMeshesBoundingBox(MeshType mt, ViewportInfo vp, ref RenderMeshProvider.Flags flags, PlugIns.PlugIn plugin, Display.DisplayPipelineAttributes attrs, out BoundingBox boundingBox)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns the bounding box of custom render primitives for this object .",
        "since": "8.0",
        "parameters": [
          {
            "name": "mt",
            "type": "MeshType",
            "summary": "The mesh type requested (render or analysis)."
          },
          {
            "name": "vp",
            "type": "ViewportInfo",
            "summary": "The viewport being rendered"
          },
          {
            "name": "flags",
            "type": "RenderMeshProvider.Flags",
            "summary": "See MeshProvider.Flags"
          },
          {
            "name": "plugin",
            "type": "PlugIns.PlugIn",
            "summary": "The requesting plug-in (typically the calling plugin)"
          },
          {
            "name": "attrs",
            "type": "Display.DisplayPipelineAttributes",
            "summary": "Display attributes for the caller - None if this is a full rendering."
          },
          {
            "name": "boundingBox",
            "type": "BoundingBox",
            "summary": "The requested bounding box"
          }
        ],
        "returns": "True if the process was a success"
      },
      {
        "signature": "System.Boolean DeleteHistoryRecord()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "For expert use only. Deletes existing history record",
        "since": "9.0",
        "returns": "True if history record was purged"
      },
      {
        "signature": "System.Void Description(TextLog textLog)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Get a brief description of a object, including it's attributes and geometry.",
        "since": "6.0",
        "parameters": [
          {
            "name": "textLog",
            "type": "TextLog",
            "summary": "A text log for collecting the description."
          }
        ]
      },
      {
        "signature": "System.Void DestroyMeshes(MeshType meshType)",
        "modifiers": ["public", "virtual"],
        "protected": false,
        "virtual": true,
        "summary": "Destroys cached meshes of type meshType",
        "since": "9.0",
        "parameters": [
          {
            "name": "meshType",
            "type": "MeshType",
            "summary": "type of meshes to create"
          }
        ],
        "returns": "number of meshes created"
      },
      {
        "signature": "GeometryBase DuplicateGeometry()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Constructs a deep (full) copy of the geometry.",
        "since": "5.0",
        "returns": "A copy of the internal geometry."
      },
      {
        "signature": "System.Boolean EnableCustomGrips(Custom.CustomObjectGrips customGrips)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Turns on/off the object's editing grips.",
        "since": "5.0",
        "parameters": [
          {
            "name": "customGrips",
            "type": "Custom.CustomObjectGrips",
            "summary": "The custom object grips."
          }
        ],
        "returns": "True if the call succeeded.  If you attempt to add custom grips to an object that does not support custom grips, then False is returned."
      },
      {
        "signature": "System.Boolean EnableVisualAnalysisMode(Display.VisualAnalysisMode mode, System.Boolean enable)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Used to turn analysis modes on and off.",
        "since": "5.0",
        "parameters": [
          {
            "name": "mode",
            "type": "Display.VisualAnalysisMode",
            "summary": "A visual analysis mode."
          },
          {
            "name": "enable",
            "type": "System.Boolean",
            "summary": "True if the mode should be activated; False otherwise."
          }
        ],
        "returns": "True if this object supports the analysis mode."
      },
      {
        "signature": "Display.VisualAnalysisMode[] GetActiveVisualAnalysisModes()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets a list of currently enabled analysis modes for this object.",
        "since": "5.0",
        "returns": "An array of visual analysis modes. The array can be empty, but not null."
      },
      {
        "signature": "BoundingBox GetBoundingBox(RhinoViewport viewport)",
        "modifiers": ["protected", "virtual"],
        "protected": true,
        "virtual": true,
        "summary": "Called when Rhino wants the bounding box of this object. Viewpoert can be null. This is the default base class version that will go through to the C++ base class if it is called from the custom object",
        "parameters": [
          {
            "name": "viewport",
            "type": "RhinoViewport",
            "summary": "For objects like labels or lights, the viewport in which the bounding box should be calculated. Otherwise null."
          }
        ],
        "returns": "The bounding box."
      },
      {
        "signature": "System.IConvertible GetCustomRenderMeshParameter(System.Guid providerId, System.String parameterName)",
        "modifiers": ["public", "virtual"],
        "protected": false,
        "virtual": true,
        "summary": "Query the object for the value of a given named custom render mesh parameter.",
        "since": "6.0",
        "parameters": [
          {
            "name": "providerId",
            "type": "System.Guid",
            "summary": "Id of the custom render mesh provider"
          },
          {
            "name": "parameterName",
            "type": "System.String",
            "summary": "Name of the parameter"
          }
        ],
        "returns": "IConvertible. Note that you can't directly cast from object, instead you have to use the Convert mechanism."
      },
      {
        "signature": "System.Boolean GetDynamicTransform(out Transform transform)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "While an object is being dynamically transformed (dragged, rotated, ...), the current transformation can be retrieved and used for creating dynamic display.",
        "since": "5.0",
        "returns": "True if the object is being edited and its transformation is available.  False if the object is not being edited, in which case the identity transform is returned."
      },
      {
        "signature": "GripObject[] GetGrips()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns grips for this object If grips are enabled. If grips are not enabled, returns null.",
        "since": "5.0",
        "returns": "An array of grip objects; or None if there are no grips."
      },
      {
        "signature": "System.Int32[] GetGroupList()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Allocates an array of group indices of length GroupCount. If <b>GroupCount</b> is 0, then this method returns null.",
        "since": "5.0",
        "returns": "An array of group indices, or None if <b>GroupCount</b> is 0."
      },
      {
        "signature": "ComponentIndex[] GetHighlightedSubObjects()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets a list of all highlighted sub-objects.",
        "since": "5.0",
        "returns": "An array of all highlighted sub-objects; or None is there are none."
      },
      {
        "signature": "Material GetMaterial(ComponentIndex componentIndex, System.Guid plugInId, ObjectAttributes attributes)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Get the Material associated with the sub object identified by componentIndex if the component index is set to ComponentIndex.Unset then the top level material is returned.",
        "since": "6.0",
        "parameters": [
          {
            "name": "componentIndex",
            "type": "ComponentIndex",
            "summary": "Returns the material associated with the specified sub object or the objects top level material if it is set to ComponentIndex.Unset"
          },
          {
            "name": "plugInId",
            "type": "System.Guid",
            "summary": "The plug-in specific material to look for."
          },
          {
            "name": "attributes",
            "type": "ObjectAttributes",
            "summary": "Optional object attributes used to determine the material source, if None the objects attributes are used."
          }
        ],
        "returns": "Returns the Material associated with the sub object identified by componentIndex if the component index is set to ComponentIndex.Unset then the top level material is returned."
      },
      {
        "signature": "Material GetMaterial(ComponentIndex componentIndex, System.Guid plugInId)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Get the Material associated with the sub object identified by componentIndex if the component index is set to ComponentIndex.Unset then the top level material is returned.",
        "since": "6.0",
        "parameters": [
          {
            "name": "componentIndex",
            "type": "ComponentIndex",
            "summary": "Returns the material associated with the specified sub object or the objects top level material if it is set to ComponentIndex.Unset"
          },
          {
            "name": "plugInId",
            "type": "System.Guid",
            "summary": "The plug-in specific material to look for."
          }
        ],
        "returns": "Returns the Material associated with the sub object identified by componentIndex if the component index is set to ComponentIndex.Unset then the top level material is returned."
      },
      {
        "signature": "Material GetMaterial(ComponentIndex componentIndex)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Get the Material associated with the sub object identified by componentIndex if the component index is set to ComponentIndex.Unset then the top level material is returned.",
        "since": "6.0",
        "parameters": [
          {
            "name": "componentIndex",
            "type": "ComponentIndex",
            "summary": "Returns the material associated with the specified sub object or the objects top level material if it is set to ComponentIndex.Unset"
          }
        ],
        "returns": "Returns the Material associated with the sub object identified by componentIndex if the component index is set to ComponentIndex.Unset then the top level material is returned."
      },
      {
        "signature": "Material GetMaterial(System.Boolean frontMaterial)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets material that this object uses based on it's attributes and the document that the object is associated with.  In the rare case that a document is not associated with this object, None will be returned.",
        "since": "5.0",
        "parameters": [
          {
            "name": "frontMaterial",
            "type": "System.Boolean",
            "summary": "If true, gets the material used to render the object's front side"
          }
        ]
      },
      {
        "signature": "Mesh[] GetMeshes(MeshType meshType)",
        "modifiers": ["public", "virtual"],
        "protected": false,
        "virtual": true,
        "summary": "Get existing meshes used to render and analyze surface and polysurface objects.",
        "since": "5.0",
        "returns": "An array of meshes."
      },
      {
        "signature": "RenderMaterial GetRenderMaterial(ComponentIndex componentIndex, System.Guid plugInId, ObjectAttributes attributes)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the RenderMaterial associated with this object if there is one. If there is no RenderMaterial associated with this object then None is returned.  If None is returned you should call GetMaterial to get the material used to render this object.",
        "since": "6.0",
        "parameters": [
          {
            "name": "componentIndex",
            "type": "ComponentIndex",
            "summary": "Returns the RenderMaterial associated with the specified sub object or the objects top level material if it is set to  <b>Rhino.Geometry.ComponentIndex.Unset</b>"
          },
          {
            "name": "plugInId",
            "type": "System.Guid",
            "summary": "The plug-in specific material to look for."
          },
          {
            "name": "attributes",
            "type": "ObjectAttributes",
            "summary": "Optional object attributes used to determine the material source, if None the objects attributes are used."
          }
        ],
        "returns": "Returns the <b>RenderMaterial</b> associated with the sub object identified by componentIndex if the component index is set to  <b>ComponentIndex.Unset</b> then the top level RenderMaterail is returned.  If this method returns None it means there is no RenderMaterial associated with the object or  sub object so you should may GetMaterial get the objects generic material."
      },
      {
        "signature": "RenderMaterial GetRenderMaterial(ComponentIndex componentIndex, System.Guid plugInId)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the RenderMaterial associated with this object if there is one. If there is no RenderMaterial associated with this object then None is returned.  If None is returned you should call GetMaterial to get the material used to render this object.",
        "since": "6.0",
        "parameters": [
          {
            "name": "componentIndex",
            "type": "ComponentIndex",
            "summary": "Returns the RenderMaterial associated with the specified sub object or the objects top level material if it is set to  <b>Rhino.Geometry.ComponentIndex.Unset</b>"
          },
          {
            "name": "plugInId",
            "type": "System.Guid",
            "summary": "The plug-in specific material to look for."
          }
        ],
        "returns": "Returns the <b>RenderMaterial</b> associated with the sub object identified by componentIndex if the component index is set to  <b>ComponentIndex.Unset</b> then the top level RenderMaterail is returned.  If this method returns None it means there is no RenderMaterial associated with the object or sub object so you should may GetMaterial get the objects generic material."
      },
      {
        "signature": "RenderMaterial GetRenderMaterial(ComponentIndex componentIndex)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the RenderMaterial associated with this object if there is one. If there is no RenderMaterial associated with this object then None is returned.  If None is returned you should call GetMaterial to get the material used to render this object.",
        "since": "6.0",
        "parameters": [
          {
            "name": "componentIndex",
            "type": "ComponentIndex",
            "summary": "Returns the RenderMaterial associated with the specified sub object or the objects top level material if it is set to ComponentIndex.Unset"
          }
        ],
        "returns": "Returns the <b>RenderMaterial</b> associated with the sub object identified by componentIndex if the component index is set to  <b>ComponentIndex.Unset</b> then the top level RenderMaterail is returned.  If this method returns None it means there is no RenderMaterial associated with the object or  sub object so you should may GetMaterial get the objects generic material."
      },
      {
        "signature": "RenderMaterial GetRenderMaterial(System.Boolean frontMaterial)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the RenderMaterial that this object uses based on it's attributes and the document that the object is associated with. If there is no RenderMaterial associated with this object then None is returned.  If None is returned you should call GetMaterial to get the material used to render this object.",
        "since": "5.10",
        "parameters": [
          {
            "name": "frontMaterial",
            "type": "System.Boolean",
            "summary": "If true, gets the material used to render the object's front side otherwise; gets the material used to render the back side of the object."
          }
        ],
        "returns": "If there is a RenderMaterial associated with this objects' associated Material then it is returned otherwise; None is returned."
      },
      {
        "signature": "MeshingParameters GetRenderMeshParameters()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns the meshing parameters that this object uses for generating render meshes. If this object does not have per-object meshing parameters, then the document's meshing parameters are returned.",
        "since": "5.0",
        "returns": "The render meshing parameters."
      },
      {
        "signature": "MeshingParameters GetRenderMeshParameters(System.Boolean returnDocumentParametersIfUnset)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns the meshing parameters that this object uses for generating render meshes.",
        "since": "7.0",
        "parameters": [
          {
            "name": "returnDocumentParametersIfUnset",
            "type": "System.Boolean",
            "summary": "If true, then return the per-object meshing parameters for this object. If this object does not have per-object meshing parameters, then the document's meshing parameters are returned. If false, then return the per-object meshing parameters for this object. If this object does not have per-object meshing parameters, then None is returned."
          }
        ],
        "returns": "The render meshing parameters if successful, None otherwise."
      },
      {
        "signature": "RenderPrimitiveList GetRenderPrimitiveList(ViewportInfo viewport, Rhino.Display.DisplayPipelineAttributes attrs)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Build custom render mesh(es) for this object.",
        "since": "6.0",
        "deprecated": "8.0",
        "parameters": [
          {
            "name": "viewport",
            "type": "ViewportInfo",
            "summary": "The viewport being rendered."
          },
          {
            "name": "attrs",
            "type": "Rhino.Display.DisplayPipelineAttributes",
            "summary": "Attributes for the view mode you are supplying meshes for.  Will be None if this is a modal rendering."
          }
        ],
        "returns": "Returns a RenderPrimitiveList if successful otherwise returns null."
      },
      {
        "signature": "RenderPrimitiveList GetRenderPrimitiveList(ViewportInfo viewport, System.Boolean preview)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Build custom render mesh(es) for this object.",
        "since": "5.7",
        "deprecated": "6.0",
        "obsolete": "This version is obsolete because it returns the obsolete RenderPrimitiveList - ie, the old school custom render meshes.  Use CustomRenderMeshes instead.",
        "parameters": [
          {
            "name": "viewport",
            "type": "ViewportInfo",
            "summary": "The viewport being rendered."
          },
          {
            "name": "preview",
            "type": "System.Boolean",
            "summary": "Type of mesh to build, if preview is True then a smaller mesh may be generated in less time, False is meant when actually rendering."
          }
        ],
        "returns": "Returns a RenderPrimitiveList if successful otherwise returns null."
      },
      {
        "signature": "ComponentIndex[] GetSelectedSubObjects()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Get a list of all selected sub-objects.",
        "since": "5.0",
        "returns": "An array of sub-object indices, or None if there are none."
      },
      {
        "signature": "RhinoObject[] GetSubObjects()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Explodes the object into sub-objects. It is up to the caller to add the returned objects to the document.",
        "since": "5.0",
        "returns": "An array of Rhino objects, or None if this object cannot be exploded."
      },
      {
        "signature": "System.Int32[] GetTextureChannels()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Get a list of the texture mapping channel Id's associated with object.",
        "since": "5.7",
        "returns": "Returns an array of channel Id's or an empty list if there are not mappings."
      },
      {
        "signature": "TextureMapping GetTextureMapping(System.Int32 channel, out Transform objectTransform)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Get objects texture mapping",
        "since": "5.7"
      },
      {
        "signature": "TextureMapping GetTextureMapping(System.Int32 channel)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.7"
      },
      {
        "signature": "System.Boolean GetTightBoundingBox(ref BoundingBox tightBox, System.Boolean growBox, Transform xform)",
        "modifiers": ["protected", "virtual"],
        "protected": true,
        "virtual": true,
        "summary": "Get tight bounding box of this Rhino object. The Rhino object is not modified.",
        "parameters": [
          {
            "name": "tightBox",
            "type": "BoundingBox",
            "summary": "Beginning and resulting tight box"
          },
          {
            "name": "growBox",
            "type": "System.Boolean",
            "summary": "If True and the input tight_bbox is valid, then returned tight_bbox is the union of the input tight_bbox and the tight bounding box of this Rhino object."
          },
          {
            "name": "xform",
            "type": "Transform",
            "summary": "If useXform==true, the tight bounding box of the transformed Rhino object is calculated."
          }
        ],
        "returns": "True if the returned tight_bbox is set to a valid bounding box."
      },
      {
        "signature": "System.Boolean HasCustomRenderMeshes(MeshType mt, ViewportInfo vp, ref RenderMeshProvider.Flags flags, PlugIns.PlugIn plugin, Display.DisplayPipelineAttributes attrs)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns True if the object will has a set of custom render primitives - ie, CustomRenderMeshes will return non-null.",
        "since": "8.0",
        "parameters": [
          {
            "name": "mt",
            "type": "MeshType",
            "summary": "The mesh type requested (render or analysis)."
          },
          {
            "name": "vp",
            "type": "ViewportInfo",
            "summary": "The viewport being rendered."
          },
          {
            "name": "flags",
            "type": "RenderMeshProvider.Flags",
            "summary": "See MeshProvider.Flags"
          },
          {
            "name": "plugin",
            "type": "PlugIns.PlugIn",
            "summary": "The requesting plug-in (typically the calling plugin)"
          },
          {
            "name": "attrs",
            "type": "Display.DisplayPipelineAttributes",
            "summary": "Display attributes for the caller - None if this is a full rendering."
          }
        ],
        "returns": "Returns True if the object will has a set of custom render primitives"
      },
      {
        "signature": "System.Boolean HasHistoryRecord()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns whether this object has a history record",
        "since": "7.1"
      },
      {
        "signature": "System.Boolean HasTextureMapping()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns True if this object has a texture mapping form any source (pluginId)",
        "since": "6.0"
      },
      {
        "signature": "System.Boolean Highlight(System.Boolean enable)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Modifies the highlighting of the object.",
        "since": "5.0",
        "parameters": [
          {
            "name": "enable",
            "type": "System.Boolean",
            "summary": "True if highlighting should be enabled."
          }
        ],
        "returns": "True if the object is now highlighted."
      },
      {
        "signature": "System.Boolean HighlightSubObject(ComponentIndex componentIndex, System.Boolean highlight)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Highlights a sub-object.",
        "since": "5.0",
        "parameters": [
          {
            "name": "componentIndex",
            "type": "ComponentIndex",
            "summary": "A sub-object component index."
          },
          {
            "name": "highlight",
            "type": "System.Boolean",
            "summary": "True if the sub-object should be highlighted."
          }
        ],
        "returns": "True if the sub-object is now highlighted."
      },
      {
        "signature": "System.Guid[] HistoryChildren()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the ids of the child Rhino objects of this object.",
        "since": "8.13",
        "returns": "An array of Rhino object ids if successful, an empty array if the object has no children or on error."
      },
      {
        "signature": "System.Guid[] HistoryParents()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the ids of the parent Rhino objects of this object.",
        "since": "8.13",
        "returns": "An array of Rhino object ids if successful, an empty array if the object has no parents or on error."
      },
      {
        "signature": "System.Boolean InVisualAnalysisMode()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Reports if any visual analysis mode is currently active for an object.",
        "since": "5.0",
        "returns": "True if an analysis mode is active; otherwise false."
      },
      {
        "signature": "System.Boolean InVisualAnalysisMode(Display.VisualAnalysisMode mode)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Reports if a visual analysis mode is currently active for an object.",
        "since": "5.0",
        "parameters": [
          {
            "name": "mode",
            "type": "Display.VisualAnalysisMode",
            "summary": "The mode to check for.  \nUse None if you want to see if any mode is active."
          }
        ],
        "returns": "True if the specified analysis mode is active; otherwise false."
      },
      {
        "signature": "System.Boolean IsActiveInViewport(Display.RhinoViewport viewport)",
        "modifiers": ["public", "virtual"],
        "protected": false,
        "virtual": true,
        "summary": "Determine if this object is active in a particular viewport.",
        "since": "5.0",
    "remarks": "The default implementation tests for space and viewport id. This handles things like testing if a page space object is visible in a modeling view.",
        "returns": "True if the object is active in viewport"
      },
      {
        "signature": "System.Int32 IsHighlighted(System.Boolean checkSubObjects)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Check highlight state.",
        "since": "5.0",
        "parameters": [
          {
            "name": "checkSubObjects",
            "type": "System.Boolean",
            "summary": "If True and the entire object is not highlighted, and some subset of the object is highlighted, like some edges of a surface, then 3 is returned. If False and the entire object is not highlighted, then zero is returned."
          }
        ],
        "returns": "0: object is not highlighted.  \n1: entire object is highlighted.  \n3: one or more proper sub-objects are highlighted."
      },
      {
        "signature": "System.Boolean IsMeshable(MeshType meshType)",
        "modifiers": ["public", "virtual"],
        "protected": false,
        "virtual": true,
        "summary": "Returns True if the object is capable of having a mesh of the specified type",
        "since": "5.0"
      },
      {
        "signature": "System.Boolean IsSelectable()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Reports if an object can be selected.",
        "since": "5.0",
    "remarks": "Objects that are locked, hidden, or on locked or hidden layers cannot be selected. If IsSelectableWithGripsOn() returns false, then an that object is not selectable if it has grips turned on.",
        "returns": "True if object is capable of being selected."
      },
      {
        "signature": "System.Boolean IsSelectable(System.Boolean ignoreSelectionState, System.Boolean ignoreGripsState, System.Boolean ignoreLayerLocking, System.Boolean ignoreLayerVisibility)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Reports if an object can be selected.",
        "since": "5.0",
    "remarks": "Objects that are locked, hidden, or on locked or hidden layers cannot be selected. If IsSelectableWithGripsOn() returns false, then an that object is not selectable if it has grips turned on.",
        "parameters": [
          {
            "name": "ignoreSelectionState",
            "type": "System.Boolean",
            "summary": "If true, then selected objects are selectable. If false, then selected objects are not selectable."
          },
          {
            "name": "ignoreGripsState",
            "type": "System.Boolean",
            "summary": "If true, then objects with grips on can be selected. If false, then the value returned by the object's IsSelectableWithGripsOn() function decides if the object can be selected."
          },
          {
            "name": "ignoreLayerLocking",
            "type": "System.Boolean",
            "summary": "If true, then objects on locked layers are selectable. If false, then objects on locked layers are not selectable."
          },
          {
            "name": "ignoreLayerVisibility",
            "type": "System.Boolean",
            "summary": "If true, then objects on hidden layers are selectable. If false, then objects on hidden layers are not selectable."
          }
        ],
        "returns": "True if object is capable of being selected."
      },
      {
        "signature": "System.Int32 IsSelected(System.Boolean checkSubObjects)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Check selection state.",
        "since": "5.0",
        "parameters": [
          {
            "name": "checkSubObjects",
            "type": "System.Boolean",
            "summary": "(False is good default) If True and the entire object is not selected, and some subset of the object is selected, like some edges of a surface, then 3 is returned. If False and the entire object is not selected, then zero is returned."
          }
        ],
        "returns": "0 = object is not selected. 1 = object is selected. 2 = entire object is selected persistently. 3 = one or more proper sub-objects are selected."
      },
      {
        "signature": "System.Boolean IsSubObjectHighlighted(ComponentIndex componentIndex)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Determines if a sub-object is highlighted.",
        "since": "5.0",
        "parameters": [
          {
            "name": "componentIndex",
            "type": "ComponentIndex",
            "summary": "A sub-object component index."
          }
        ],
        "returns": "True if the sub-object is highlighted."
      },
      {
        "signature": "System.Boolean IsSubObjectSelectable(ComponentIndex componentIndex, System.Boolean ignoreSelectionState)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Reports if a sub-object can be selected.",
        "since": "5.0",
    "remarks": "Objects that are locked, hidden, or on locked or hidden layers cannot be selected. If IsSelectableWithGripsOn() returns false, then that object is not selectable if it has grips turned on.",
        "parameters": [
          {
            "name": "componentIndex",
            "type": "ComponentIndex",
            "summary": "index of sub-object to check."
          },
          {
            "name": "ignoreSelectionState",
            "type": "System.Boolean",
            "summary": "If true, then selected objects are selectable. If false, then selected objects are not selectable."
          }
        ],
        "returns": "True if the specified sub-object can be selected."
      },
      {
        "signature": "System.Boolean IsSubObjectSelected(ComponentIndex componentIndex)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Check sub-object selection state.",
        "since": "5.0",
    "remarks": "A sub-object cannot be persistently selected.",
        "parameters": [
          {
            "name": "componentIndex",
            "type": "ComponentIndex",
            "summary": "Index of sub-object to check."
          }
        ],
        "returns": "True if the sub-object is selected."
      },
      {
        "signature": "System.UInt32 MemoryEstimate()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Computes an estimate of the number of bytes that this object is using in memory. Note that this is a runtime memory estimate and does not directly compare to the amount of space take up by the object when saved to a file.",
        "since": "5.0",
        "returns": "The estimated number of bytes this object occupies in memory."
      },
      {
        "signature": "System.Int32 MeshCount(MeshType meshType, MeshingParameters parameters)",
        "modifiers": ["public", "virtual"],
        "protected": false,
        "virtual": true,
        "summary": "RhinoObjects can have several different types of meshes and different numbers of meshes.  A b-rep can have a render and an analysis mesh on each face.  A mesh object has a single render mesh and no analysis mesh. Curve, point, and annotation objects have no meshes.",
        "since": "5.0",
        "parameters": [
          {
            "name": "meshType",
            "type": "MeshType",
            "summary": "type of mesh to count"
          },
          {
            "name": "parameters",
            "type": "MeshingParameters",
            "summary": "if not None and if the object can change its mesh (like a brep), then only meshes that were created with these mesh parameters are counted."
          }
        ],
        "returns": "number of meshes"
      },
      {
        "signature": "Plane ObjectFrame()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "8.0"
      },
      {
        "signature": "Plane ObjectFrame(ObjectFrameFlags flags)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "8.0"
      },
      {
        "signature": "System.Void OnAddToDocument(RhinoDoc doc)",
        "modifiers": ["protected", "virtual"],
        "protected": true,
        "virtual": true,
        "summary": "This call informs an object it is about to be added to the list of active objects in the document."
      },
      {
        "signature": "System.Void OnDeleteFromDocument(RhinoDoc doc)",
        "modifiers": ["protected", "virtual"],
        "protected": true,
        "virtual": true,
        "summary": "This call informs an object it is about to be deleted. Some objects, like clipping planes, need to do a little extra cleanup before they are deleted."
      },
      {
        "signature": "System.Void OnDraw(Display.DrawEventArgs e)",
        "modifiers": ["protected", "virtual"],
        "protected": true,
        "virtual": true,
        "summary": "Called when Rhino wants to draw this object"
      },
      {
        "signature": "System.Void OnDuplicate(RhinoObject source)",
        "modifiers": ["protected", "virtual"],
        "protected": true,
        "virtual": true,
        "summary": "Called when this a new instance of this object is created and copied from an existing object"
      },
      {
        "signature": "System.Collections.Generic.IEnumerable<ObjRef> OnPick(Input.Custom.PickContext context)",
        "modifiers": ["protected", "virtual"],
        "protected": true,
        "virtual": true,
        "summary": "Called to determine if this object or some sub-portion of this object should be picked given a pick context."
      },
      {
        "signature": "System.Void OnPicked(Input.Custom.PickContext context, IEnumerable<ObjRef> pickedItems)",
        "modifiers": ["protected", "virtual"],
        "protected": true,
        "virtual": true,
        "summary": "Called when this object has been picked",
        "parameters": [
          {
            "name": "context",
            "type": "Input.Custom.PickContext",
            "summary": ""
          },
          {
            "name": "pickedItems",
            "type": "System.Collections.Generic.IEnumerable<ObjRef>",
            "summary": "Items that were picked. This parameter is enumerable because there may have been multiple sub-objects picked"
          }
        ]
      },
      {
        "signature": "System.Void OnSelectionChanged()",
        "modifiers": ["protected", "virtual"],
        "protected": true,
        "virtual": true,
        "summary": "Called when the selection state of this object has changed"
      },
      {
        "signature": "System.Void OnSpaceMorph(SpaceMorph morph)",
        "modifiers": ["protected", "virtual"],
        "protected": true,
        "virtual": true,
        "summary": "Called when a space morph has been applied to the geometry. Currently this only works for CustomMeshObject instances"
      },
      {
        "signature": "System.Void OnTransform(Transform transform)",
        "modifiers": ["protected", "virtual"],
        "protected": true,
        "virtual": true,
        "summary": "Called when a transformation has been applied to the geometry"
      },
      {
        "signature": "RenderMeshes RenderMeshes(MeshType mt, ViewportInfo vp, List<InstanceObject> ancestry, ref RenderMeshProvider.Flags flags, PlugIns.PlugIn plugin, Display.DisplayPipelineAttributes attrs)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns a set of custom render primitives for this object.",
        "since": "8.0",
        "parameters": [
          {
            "name": "mt",
            "type": "MeshType",
            "summary": "The mesh type requested (render or analysis)."
          },
          {
            "name": "vp",
            "type": "ViewportInfo",
            "summary": "The viewport being rendered"
          },
          {
            "name": "ancestry",
            "type": "List<DocObjects.InstanceObject>",
            "summary": "The ancestry tree - only used for by-parent object properties assignments."
          },
          {
            "name": "flags",
            "type": "RenderMeshProvider.Flags",
            "summary": "See MeshProvider.Flags"
          },
          {
            "name": "plugin",
            "type": "PlugIns.PlugIn",
            "summary": "The requesting plug-in (typically the calling plugin)"
          },
          {
            "name": "attrs",
            "type": "Display.DisplayPipelineAttributes",
            "summary": "Display attributes for the caller - None if this is a full rendering."
          }
        ],
        "returns": "Returns a set of custom render primitives for this object"
      },
      {
        "signature": "System.Int32 Select(System.Boolean on, System.Boolean syncHighlight, System.Boolean persistentSelect, System.Boolean ignoreGripsState, System.Boolean ignoreLayerLocking, System.Boolean ignoreLayerVisibility)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Selects an object.",
        "since": "5.0",
    "remarks": "Objects that are locked, hidden, or on locked or hidden layers cannot be selected. If IsSelectableWithGripsOn() returns false, then an that object is not selectable if it has grips turned on.",
        "parameters": [
          {
            "name": "on",
            "type": "System.Boolean",
            "summary": "The new selection state; True activates selection."
          },
          {
            "name": "syncHighlight",
            "type": "System.Boolean",
            "summary": "If true, then the object is highlighted if it is selected and unhighlighted if is not selected.  \nHighlighting can be and stay out of sync, as its specification is independent."
          },
          {
            "name": "persistentSelect",
            "type": "System.Boolean",
            "summary": "Objects that are persistently selected stay selected when a command terminates."
          },
          {
            "name": "ignoreGripsState",
            "type": "System.Boolean",
            "summary": "If true, then objects with grips on can be selected. If false, then the value returned by the object's IsSelectableWithGripsOn() function decides if the object can be selected when it has grips turned on."
          },
          {
            "name": "ignoreLayerLocking",
            "type": "System.Boolean",
            "summary": "If true, then objects on locked layers can be selected. If false, then objects on locked layers cannot be selected."
          },
          {
            "name": "ignoreLayerVisibility",
            "type": "System.Boolean",
            "summary": "If true, then objects on hidden layers can be selectable. If false, then objects on hidden layers cannot be selected."
          }
        ],
        "returns": "0: object is not selected.  \n1: object is selected.  \n2: object is selected persistently."
      },
      {
        "signature": "System.Int32 Select(System.Boolean on, System.Boolean syncHighlight)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Selects an object.",
        "since": "5.0",
    "remarks": "Objects that are locked, hidden, or on locked or hidden layers cannot be selected. If IsSelectableWithGripsOn() returns false, then an that object is not selectable if it has grips turned on.",
        "parameters": [
          {
            "name": "on",
            "type": "System.Boolean",
            "summary": "The new selection state; True activates selection."
          },
          {
            "name": "syncHighlight",
            "type": "System.Boolean",
            "summary": "If true, then the object is highlighted if it is selected and not highlighted if is not selected.  \nHighlighting can be and stay out of sync, as its specification is independent."
          }
        ],
        "returns": "0: object is not selected.  \n1: object is selected.  \n2: object is selected persistently."
      },
      {
        "signature": "System.Int32 Select(System.Boolean on)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Selects an object.",
        "since": "5.0",
    "remarks": "Objects that are locked, hidden, or on locked or hidden layers cannot be selected. If IsSelectableWithGripsOn() returns false, then an that object is not selectable if it has grips turned on.",
        "parameters": [
          {
            "name": "on",
            "type": "System.Boolean",
            "summary": "The new selection state; True activates selection."
          }
        ],
        "returns": "0: object is not selected.  \n1: object is selected.  \n2: object is selected persistently."
      },
      {
        "signature": "System.Int32 SelectSubObject(ComponentIndex componentIndex, System.Boolean select, System.Boolean syncHighlight, System.Boolean persistentSelect)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Reports if an object can be selected.",
        "since": "6.0",
    "remarks": "Objects that are locked, hidden, or on locked or hidden layers cannot be selected. If IsSelectableWithGripsOn() returns false, then an that object is not selectable if it has grips turned on.",
        "parameters": [
          {
            "name": "componentIndex",
            "type": "ComponentIndex",
            "summary": "Index of sub-object to check."
          },
          {
            "name": "select",
            "type": "System.Boolean",
            "summary": "The new selection state; True activates selection."
          },
          {
            "name": "syncHighlight",
            "type": "System.Boolean",
            "summary": "(default=true) If true, then the object is highlighted if it is selected and unhighlighted if is not selected."
          },
          {
            "name": "persistentSelect",
            "type": "System.Boolean",
            "summary": "When true, selection persists even after the current command terminates."
          }
        ],
        "returns": "0: object is not selected  \n1: object is selected  \n2: object is selected persistently."
      },
      {
        "signature": "System.Int32 SelectSubObject(ComponentIndex componentIndex, System.Boolean select, System.Boolean syncHighlight)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Reports if an object can be selected.",
        "since": "5.0",
    "remarks": "Objects that are locked, hidden, or on locked or hidden layers cannot be selected. If IsSelectableWithGripsOn() returns false, then an that object is not selectable if it has grips turned on.",
        "parameters": [
          {
            "name": "componentIndex",
            "type": "ComponentIndex",
            "summary": "Index of sub-object to check."
          },
          {
            "name": "select",
            "type": "System.Boolean",
            "summary": "The new selection state; True activates selection."
          },
          {
            "name": "syncHighlight",
            "type": "System.Boolean",
            "summary": "(default=true) If true, then the object is highlighted if it is selected and unhighlighted if is not selected."
          }
        ],
        "returns": "0: object is not selected 1: object is selected 2: object is selected persistently."
      },
      {
        "signature": "System.Void SetCopyHistoryOnReplace(System.Boolean bCopy)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "If this object has a history record, the CopyOnReplace field is set When an object is replaced in a document and the old object has a history record with this field set, the history record is copied and attached to the new object. That allows a descendant object to continue the history linkage after it is edited.",
        "since": "7.1"
      },
      {
        "signature": "System.Void SetCustomRenderMeshParameter(System.Guid providerId, System.String parameterName, System.Object value)",
        "modifiers": ["public", "virtual"],
        "protected": false,
        "virtual": true,
        "summary": "Set the named custom render mesh parameter value for this object.",
        "since": "6.0",
        "parameters": [
          {
            "name": "providerId",
            "type": "System.Guid",
            "summary": "Id of the custom render mesh provider"
          },
          {
            "name": "parameterName",
            "type": "System.String",
            "summary": ""
          },
          {
            "name": "value",
            "type": "System.Object",
            "summary": ""
          }
        ]
      },
      {
        "signature": "System.Boolean SetHistory(HistoryRecord history)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "For expert use only. Sets the history record that describes how this object was created. This information is used to update this object when Rhino history is enabled and an input object changes.",
        "since": "8.0",
        "parameters": [
          {
            "name": "history",
            "type": "HistoryRecord",
            "summary": "The history record."
          }
        ],
        "returns": "True if successful, otherwise false."
      },
      {
        "signature": "System.Void SetObjectFrame(Plane plane)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "8.0",
        "obsolete": "Use Attributes.SetObjectFrame instead"
      },
      {
        "signature": "System.Void SetObjectFrame(Transform xform)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "8.0",
        "obsolete": "Use Attributes.SetObjectFrame instead"
      },
      {
        "signature": "System.Boolean SetRenderMeshParameters(MeshingParameters mp)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Sets the per-object meshing parameters for this object. When set, this object will use these meshing parameters when generating a render mesh, instead of those provided by the document.",
        "since": "7.0",
        "parameters": [
          {
            "name": "mp",
            "type": "MeshingParameters",
            "summary": "The per-object meshing parameters. Note: if null, then the per-object meshing parameters will be removed, and this object will revert to using the meshing parameters provided by the document."
          }
        ],
        "returns": "True if successful, False otherwise."
      },
      {
        "signature": "System.Int32 SetTextureMapping(System.Int32 channel, TextureMapping tm, Transform objectTransform)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Sets texture mapping and mapping object transform for a channel",
        "since": "6.26",
        "parameters": [
          {
            "name": "channel",
            "type": "System.Int32",
            "summary": ""
          },
          {
            "name": "tm",
            "type": "TextureMapping",
            "summary": "The TextureMapping to set into this channel, or None to remove a texture mapping from a channel."
          },
          {
            "name": "objectTransform",
            "type": "Transform",
            "summary": "Mapping channel object transform"
          }
        ]
      },
      {
        "signature": "System.Int32 SetTextureMapping(System.Int32 channel, TextureMapping tm)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0"
      },
      {
        "signature": "System.String ShortDescription(System.Boolean plural)",
        "modifiers": ["public", "virtual"],
        "protected": false,
        "virtual": true,
        "summary": "Gets a localized short descriptive name of the object.",
        "since": "5.0",
        "parameters": [
          {
            "name": "plural",
            "type": "System.Boolean",
            "summary": "True if the descriptive name should in plural."
          }
        ],
        "returns": "A string with the short localized descriptive name."
      },
      {
        "signature": "System.String ShortDescriptionWithClosedStatus(System.Boolean prepend, System.Boolean plural, out System.Int32 status)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets a localized short descriptive name of the object, along with it's open/closed status.",
        "since": "8.0",
        "parameters": [
          {
            "name": "prepend",
            "type": "System.Boolean",
            "summary": "True if \"open\" or \"closed\" should be prepended to the descriptive name."
          },
          {
            "name": "plural",
            "type": "System.Boolean",
            "summary": "True if the descriptive name should in plural."
          },
          {
            "name": "status",
            "type": "System.Int32",
            "summary": "The open/closed status, where: 0 = undefined, 1 = open, 2 = closed."
          }
        ],
        "returns": "A string with the short localized descriptive name."
      },
      {
        "signature": "System.Boolean SupportsRenderPrimitiveList(ViewportInfo viewport, Rhino.Display.DisplayPipelineAttributes attrs)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Determines if custom render meshes will be built for a particular object.",
        "since": "6.0",
        "deprecated": "8.0",
        "obsolete": "Use HasCustomRenderPrimitives instead",
        "parameters": [
          {
            "name": "viewport",
            "type": "ViewportInfo",
            "summary": "The viewport being rendered."
          },
          {
            "name": "attrs",
            "type": "Rhino.Display.DisplayPipelineAttributes",
            "summary": "Type of mesh to build. If attributes is non-None then a smaller mesh may be generated in less time, False is meant when actually rendering."
          }
        ],
        "returns": "Returns True if custom render mesh(es) will get built for this object."
      },
      {
        "signature": "System.Boolean SupportsRenderPrimitiveList(ViewportInfo viewport, System.Boolean preview)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Determines if custom render meshes will be built for a particular object.",
        "since": "5.7",
        "deprecated": "6.0",
        "obsolete": "Use HasCustomRenderPrimitives instead",
        "parameters": [
          {
            "name": "viewport",
            "type": "ViewportInfo",
            "summary": "The viewport being rendered."
          },
          {
            "name": "preview",
            "type": "System.Boolean",
            "summary": "Type of mesh to build. If attributes is non-None then a smaller mesh may be generated in less time, False is meant when actually rendering."
          }
        ],
        "returns": "Returns True if custom render mesh(es) will get built for this object."
      },
      {
        "signature": "System.Boolean TryGetGumballFrame(out GumballFrame frame)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "If a Rhino object has been manipulated by Rhino's gumball, and the gumball is not in its default position, then the object's repositioned gumball frame is returned.",
        "since": "7.0",
        "parameters": [
          {
            "name": "frame",
            "type": "GumballFrame",
            "summary": "The gumball frame."
          }
        ],
        "returns": "True if the object has a gumball frame, otherwise false."
      },
      {
        "signature": "System.Boolean TryGetGumballFrameForCurrentAlignment(out GumballFrame frame)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the gumball frame for this object under the current gumball alignment mode (Object / World / CPlane). For Object mode the frame always reflects the object's orientation (including any user relocation in that mode). For World and CPlane mode the frame is only returned when the user has manually repositioned the gumball for this object; if it has never been moved in that mode, the method returns false. Sub-object selections are not taken into account; this is a whole-object helper.",
        "since": "9.0",
        "parameters": [
          {
            "name": "frame",
            "type": "GumballFrame",
            "summary": "The gumball frame for the current alignment mode."
          }
        ],
        "returns": "True if a frame is available for the current alignment mode; False when the gumball has not been repositioned in the active World or CPlane mode."
      },
      {
        "signature": "System.Boolean TryGetRenderPrimitiveBoundingBox(ViewportInfo viewport, Rhino.Display.DisplayPipelineAttributes attrs, out BoundingBox boundingBox)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Get the bounding box for the custom render meshes associated with this object.",
        "since": "6.0",
        "deprecated": "8.0",
        "obsolete": "Use CustomRenderMeshesBoundingBox instead",
        "parameters": [
          {
            "name": "viewport",
            "type": "ViewportInfo",
            "summary": "The viewport being rendered."
          },
          {
            "name": "attrs",
            "type": "Rhino.Display.DisplayPipelineAttributes",
            "summary": "Attributes for the view mode you are supplying meshes for.  Will be None if this is a modal rendering."
          },
          {
            "name": "boundingBox",
            "type": "BoundingBox",
            "summary": "This will be set to BoundingBox.Unset on failure otherwise it will be the bounding box for the custom render meshes associated with this object."
          }
        ],
        "returns": "Returns True if the bounding box was successfully calculated otherwise returns False on error."
      },
      {
        "signature": "System.Boolean TryGetRenderPrimitiveBoundingBox(ViewportInfo viewport, System.Boolean preview, out BoundingBox boundingBox)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Get the bounding box for the custom render meshes associated with this object.",
        "since": "5.7",
        "deprecated": "6.0",
        "parameters": [
          {
            "name": "viewport",
            "type": "ViewportInfo",
            "summary": "The viewport being rendered."
          },
          {
            "name": "preview",
            "type": "System.Boolean",
            "summary": "Type of mesh to build, if preview is True then a smaller mesh may be generated in less time, False is meant when actually rendering."
          },
          {
            "name": "boundingBox",
            "type": "BoundingBox",
            "summary": "This will be set to BoundingBox.Unset on failure otherwise it will be the bounding box for the custom render meshes associated with this object."
          }
        ],
        "returns": "Returns True if the bounding box was successfully calculated otherwise returns False on error."
      },
      {
        "signature": "System.Int32 UnhighlightAllSubObjects()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Removes highlighting from all sub-objects.",
        "since": "5.0",
        "returns": "The number of changed sub-objects."
      },
      {
        "signature": "System.Int32 UnselectAllSubObjects()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Removes selection from all sub-objects.",
        "since": "5.0",
        "returns": "The number of unselected sub-objects."
      }
    ],
    "events": [
      {
        "signature": "EventHandler<RhinoObjectAnalysisModeChangedEventArgs> AnalysisModeChanged",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Called when the visual analysis mode of a <b>RhinoObject</b> changes.",
        "since": "9.0"
      }
    ]

  },
  {
    "namespace": "Rhino.DocObjects",
    "name": "RhinoObject.ObjectFrameFlags",
    "dataType": "enum",
    "since": "8.0",
    "values": [
      {
        "signature": "Standard = 0",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Never returns unset plane.  Will always calculate the plane even if nothing is stored."
      },
      {
        "signature": "IncludeScaleTransforms = 1",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "By default, the plane is orientation and rotation only.  But scale transforms are stored if you need them."
      },
      {
        "signature": "ReturnUnset = 2",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "The object frame may be stored unset by default.  If this is the case, and you want to know if it really is unset, this will tell you."
      }
    ]

  },
  {
    "namespace": "Rhino.DocObjects",
    "name": "RhinoObjectAnalysisModeChangedEventArgs",
    "dataType": "class",
    "summary": "Rhino object visual analysis mode changed event argument.",
    "baseclass": "EventArgs",
    "since": "9.0",
    "properties": [
      {
        "signature": "VisualAnalysisMode AnalysisMode",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "The visual analysis mode.",
        "since": "9.0",
        "property": ["get"]
      },
      {
        "signature": "Guid AnalysisModeId",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "The id of the visual analysis mode.",
        "since": "9.0",
        "property": ["get", "set"]
      },
      {
        "signature": "RhinoDoc Document",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the Rhino document.",
        "since": "9.0",
        "property": ["get"]
      },
      {
        "signature": "uint DocumentSerialNumber",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "The serial number of the Rhino document.",
        "since": "9.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool Enabled",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "True if the visual analysis mode was enabled, False otherwise.",
        "since": "9.0",
        "property": ["get", "set"]
      },
      {
        "signature": "Guid ObjectId",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "The id of the Rhino object whose visual analysis mode changed.",
        "since": "9.0",
        "property": ["get", "set"]
      },
      {
        "signature": "RhinoObject TheObject",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "The Rhino object whose visual analysis mode changed.",
        "since": "9.0",
        "property": ["get"]
      }
    ]
  },
  {
    "namespace": "Rhino.DocObjects",
    "name": "RhinoObjectEventArgs",
    "dataType": "class",
    "baseclass": "EventArgs",
    "properties": [
      {
        "signature": "Guid ObjectId",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "RhinoObject TheObject",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0",
        "property": ["get"]
      }
    ]
  },
  {
    "namespace": "Rhino.DocObjects",
    "name": "RhinoObjectSelectionEventArgs",
    "dataType": "class",
    "baseclass": "EventArgs",
    "properties": [
      {
        "signature": "RhinoDoc Document",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "int RhinoObjectCount",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Can be faster to call than RhinoObjects.Length",
        "since": "8.10",
        "property": ["get"]
      },
      {
        "signature": "RhinoObject[] RhinoObjects",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "bool Selected",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns True if objects are being selected. Returns False if objects are being deselected.",
        "since": "5.0",
        "property": ["get"]
      }
    ]
  },
  {
    "namespace": "Rhino.DocObjects",
    "name": "RhinoReplaceObjectEventArgs",
    "dataType": "class",
    "summary": "<b>RhinoDoc.ReplaceRhinoObject</b> event arguments.",
    "baseclass": "EventArgs",
    "since": "5.0",
    "properties": [
      {
        "signature": "RhinoDoc Document",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "The document where the event occurred.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "uint DocumentSerialNumber",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "The document runtime serial number.",
        "since": "9.0",
        "property": ["get"]
      },
      {
        "signature": "RhinoObject NewRhinoObject",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "The new replacement object, or the object about to be added. At the time <b>RhinoDoc.ReplaceRhinoObject</b> is called, this object has not been added to the document. Thus, this object's id will be <b>Guid.Empty</b> .",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "Guid ObjectId",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "The id of the existing object, or the object about to be deleted. At the time <b>RhinoDoc.ReplaceRhinoObject</b> is called, this object has not been deleted.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "RhinoObject OldRhinoObject",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "The existing object, or the object about to be deleted. At the time <b>RhinoDoc.ReplaceRhinoObject</b> is called, this object has not been deleted.",
        "since": "5.0",
        "property": ["get"]
      }
    ]
  },
  {
    "namespace": "Rhino.DocObjects",
    "name": "RhinoTransformObjectsEventArgs",
    "dataType": "class",
    "summary": "EventArgs passed to RhinoDoc.BeforeTransform.",
    "baseclass": "EventArgs",
    "since": "5.10",
    "properties": [
      {
        "signature": "int GripCount",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "The number of Rhino object grips that will be transformed.",
        "since": "7.0",
        "property": ["get"]
      },
      {
        "signature": "int GripOwnerCount",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "The number of Rhino object grip owners that will be changed when the grips are transformed.",
        "since": "7.0",
        "property": ["get"]
      },
      {
        "signature": "RhinoObject[] GripOwners",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "An array of Rhino object grip owners that will be changed when the grips are transformed. WARNING: these objects may be deleted at anytime after the event handler has been notified. Do not save references to these objects. Use the object's runtime serial number to safely reference these objects at a later time.",
        "since": "7.0",
        "property": ["get"]
      },
      {
        "signature": "GripObject[] Grips",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "An array of Rhino object grips that will be transformed. WARNING: these objects may be deleted at anytime after the event handler has been notified. Do not save references to these objects. Use the object's runtime serial number to safely reference these objects at a later time.",
        "since": "7.0",
        "property": ["get"]
      },
      {
        "signature": "int ObjectCount",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "The number of Rhino objects that will be transformed.",
        "since": "5.10",
        "property": ["get"]
      },
      {
        "signature": "RhinoObject[] Objects",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "An array of Rhino objects to be transformed. WARNING: these objects may be deleted at anytime after the event handler has been notified. Do not save references to these objects. Use the object's runtime serial number to safely reference these objects at a later time.",
        "since": "5.10",
        "property": ["get"]
      },
      {
        "signature": "bool ObjectsWillBeCopied",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "True if the objects will be copied.",
        "since": "5.10",
        "property": ["get"]
      },
      {
        "signature": "Transform Transform",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "The transformation to be applied.",
        "since": "5.10",
        "property": ["get"]
      },
      {
        "signature": "uint TransformEventId",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "The transformation event id.",
        "since": "8.15",
        "property": ["get"]
      }
    ]
  },
  {
    "namespace": "Rhino.DocObjects",
    "name": "SectionBackgroundFillMode",
    "dataType": "enum",
    "summary": "Defines how a background fill is applied to a section",
    "values": [
      {
        "signature": "None = 0",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Do not fill in the background of a section"
      },
      {
        "signature": "Viewport = 1",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Use the current display mode settings to determine how to apply a fill. Wireframe will not fill while shaded and rendered will fill using colors and materials matching how the object is drawn."
      },
      {
        "signature": "SolidColor = 2",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Use a solid color for a background fill. If BackgroundFillColor is set on this section style, then that color will be used. Otherwise, the item's color that this section style is associated will be used"
      }
    ]

  },
  {
    "namespace": "Rhino.DocObjects",
    "name": "SectionLabelStyle",
    "dataType": "enum",
    "summary": "The source of sectioning attributes on an object.",
    "since": "8.0",
    "values": [
      {
        "signature": "None = 0",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "No label"
      },
      {
        "signature": "TextDotFromName = 1",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Label shown as a text dot with content from name"
      },
      {
        "signature": "TextFromName = 2",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Label shown as text with content from name"
      }
    ]

  },
  {
    "namespace": "Rhino.DocObjects",
    "name": "SectionStyle",
    "dataType": "class",
    "summary": "SectionStyle helps define the attributes to use when drawing a section",
    "baseclass": "Rhino.DocObjects.ModelComponent",
    "constructors": [
      {
        "signature": "SectionStyle()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Create a new instance of a SectionStyle",
        "since": "8.0"
      },
      {
        "signature": "SectionStyle(SectionStyle other)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Create a new SetionStyle that is a copy of another SectionStyle",
        "since": "8.0"
      }
    ],
    "properties": [
      {
        "signature": "Color BackgroundFillColor",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Fill color to apply to the background. Default is Color.Empty which means get the color from the source where this section style came from (object attributes or layer)",
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "SectionBackgroundFillMode BackgroundFillMode",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "How the background should be filled",
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "Color BackgroundFillPrintColor",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Fill print color to apply to the background. Default is Color.Empty which means get the color from the source where this section style came from (object attributes or layer)",
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "Color BoundaryColor",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Color to apply for the boundary curves. Default is Color.Empty which means get the color from the source where this section style came from (object attributes or layer)",
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "int BoundaryLinetypeIndex",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "property": ["get", "set"]
      },
      {
        "signature": "double BoundaryPlotWeightMillimeters",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Plot width of the boundary curves. values less than -1 (-10 is default): plot weight is determined by the object's attributes -1: do not plot 0: use default weight defined by the print dialog positive values are thicknesses in millimeters to print to  NOTE: if a linetype is assigned to this section style that has a physical width (not pixels), then this value is ignored and the linetype value is used",
        "property": ["get", "set"]
      },
      {
        "signature": "Color BoundaryPrintColor",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Print color to apply for the boundary curves. Default is Color.Empty which means get the color from the source where this section style came from (object attributes or layer)",
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool BoundaryVisible",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Should the boundary for this section be displayed",
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "double BoundaryWidthScale",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Scale applied to the boundary wire thickness",
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "ModelComponentType ComponentType",
        "modifiers": ["public", "override"],
        "protected": false,
        "virtual": false,
        "summary": "Returns <b>ModelComponentType.SectionStyle</b> .",
        "since": "8.0",
        "property": ["get"]
      },
      {
        "signature": "int HatchIndex",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Hatch pattern to use when drawing a fill pattern",
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "Color HatchPatternColor",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Color to apply for the hatch pattern. Default is Color.Empty which means get the color from the source where this section style came from (object attributes or layer)",
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "Color HatchPatternPrintColor",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Print color to apply for the hatch pattern. Default is Color.Empty which means get the color from the source where this section style came from (object attributes or layer)",
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "double HatchRotationRadians",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Rotation to apply to the hatch patterh",
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "double HatchScale",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Scale to apply to the hatch pattern",
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool InUse",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns True if a section style is use by an object, layer, or instance definition.",
        "since": "9.0",
        "property": ["get"]
      },
      {
        "signature": "bool IsUnset",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns True if the section style is unset.",
        "since": "9.0",
        "property": ["get"]
      },
      {
        "signature": "ObjectSectionFillRule SectionFillRule",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Rule to determine when to generate a hatch pattern and fill",
        "since": "8.0",
        "property": ["get", "set"]
      }
    ],
    "methods": [
      {
        "signature": "System.Boolean ReadFromFile(System.String filename, out SectionStyle[] sectionStyles, out HatchPattern[] hatchPatterns)",
        "modifiers": ["static", "public"],
        "protected": false,
        "virtual": false,
        "summary": "Reads linetypes from a Rhino .3dm file.",
        "since": "9.0",
        "parameters": [
          {
            "name": "filename",
            "type": "System.String",
            "summary": "The path to the file to read."
          },
          {
            "name": "sectionStyles",
            "type": "SectionStyle[]",
            "summary": "An array of section styles, or an empty array if the file had no section styles."
          },
          {
            "name": "hatchPatterns",
            "type": "HatchPattern[]",
            "summary": "An array of hatch patterns reference by the section styles, or an empty array if the file has no section styles or if none of the sections styles uses a hatch pattern. The section style's <b>HatchIndex</b> property references hatch patterns in this array."
          }
        ],
        "returns": "True if the file was read successfully, False otherwise."
      },
      {
        "signature": "Linetype GetBoundaryLinetype()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Get an optional custom linetype associated with this section style. If null, then the linetype will come from the parent attributes or layer",
        "since": "8.0"
      },
      {
        "signature": "System.Void RemoveBoundaryLinetype()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "8.0"
      },
      {
        "signature": "System.Void SetBoundaryLinetype(Linetype linetype)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "8.0"
      }
    ]
  },
  {
    "namespace": "Rhino.DocObjects",
    "name": "SelectionMethod",
    "dataType": "enum",
    "summary": "Defines enumerated values for several kinds of selection methods.",
    "since": "5.0",
    "values": [
      {
        "signature": "Other = 0",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Selected by non-mouse method (SelAll, etc.)"
      },
      {
        "signature": "MousePick = 1",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Selected by a mouse click on the object."
      },
      {
        "signature": "WindowBox = 2",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Selected by a mouse selection window box. Window selection indicates the object is completely contained by the selection rectangle."
      },
      {
        "signature": "CrossingBox = 3",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Selected by a mouse selection crossing box. A crossing selection indicates the object intersects with the selection rectangle."
      }
    ]

  },
  {
    "namespace": "Rhino.DocObjects.SnapShots",
    "name": "SnapShotsClient",
    "dataType": "class",
    "summary": "This is the abstract interface class for all Snapshot clients.",
    "interfaces": ["IDisposable"],
    "constructors": [
      {
        "signature": "SnapShotsClient()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "SnapShotsClient constructor",
        "since": "6.0"
      }
    ],
    "properties": [
      {
        "signature": "IntPtr CppPointer",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "int SerialNumber",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get", "set"]
      }
    ],
    "methods": [
      {
        "signature": "System.String ApplicationCategory()",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Predefined application category",
        "since": "6.0"
      },
      {
        "signature": "System.String DocumentCategory()",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Predefined document category",
        "since": "6.0"
      },
      {
        "signature": "System.String LayersCategory()",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Predefined layers category",
        "since": "6.0"
      },
      {
        "signature": "System.String LightsCategory()",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Predefined lights category",
        "since": "6.0"
      },
      {
        "signature": "System.String ObjectsCategory()",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Predefined objects category",
        "since": "6.0"
      },
      {
        "signature": "System.Boolean RegisterSnapShotClient(SnapShotsClient client)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Function used to register snapshots client",
        "since": "6.0"
      },
      {
        "signature": "System.String RenderingCategory()",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Predefined rendering category",
        "since": "6.0"
      },
      {
        "signature": "System.String ViewsCategory()",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Predefined views category",
        "since": "6.0"
      },
      {
        "signature": "System.Boolean AnimateDocument(RhinoDoc doc, System.Double dPos, BinaryArchiveReader archive_start, BinaryArchiveReader archive_stop)",
        "modifiers": ["public", "abstract"],
        "protected": false,
        "virtual": false,
        "summary": "Called for each frame. Starting at 0.0.",
        "since": "6.0",
        "parameters": [
          {
            "name": "doc",
            "type": "RhinoDoc",
            "summary": "doc is the current document."
          },
          {
            "name": "dPos",
            "type": "System.Double",
            "summary": "dPos is the current frame. Starting at 0.0."
          },
          {
            "name": "archive_start",
            "type": "BinaryArchiveReader",
            "summary": "archive_start is a archive to the data of the starting position."
          },
          {
            "name": "archive_stop",
            "type": "BinaryArchiveReader",
            "summary": "archive_stop is a archive to the data of the ending position."
          }
        ],
        "returns": "True if successful, otherwise false."
      },
      {
        "signature": "System.Boolean AnimateObject(RhinoDoc doc, Rhino.DocObjects.RhinoObject doc_object, ref Rhino.Geometry.Transform transform, System.Double dPos, BinaryArchiveReader archive_start, BinaryArchiveReader archive_stop)",
        "modifiers": ["public", "abstract"],
        "protected": false,
        "virtual": false,
        "summary": "Called for each frame. Starting at 0.0.",
        "since": "6.0",
        "parameters": [
          {
            "name": "doc",
            "type": "RhinoDoc",
            "summary": "doc is the current document."
          },
          {
            "name": "doc_object",
            "type": "Rhino.DocObjects.RhinoObject",
            "summary": "doc_obj is the current object."
          },
          {
            "name": "transform",
            "type": "Rhino.Geometry.Transform",
            "summary": "transform is a transformation matrix. The matrix is set to identity the first time an object is associated with a snapshot. After that the matrix is updated when the object is transformed(scale, rotate etc.)."
          },
          {
            "name": "dPos",
            "type": "System.Double",
            "summary": "dPos is the current frame. Starting at 0.0."
          },
          {
            "name": "archive_start",
            "type": "BinaryArchiveReader",
            "summary": "archive_start is a archive to the data of the starting position."
          },
          {
            "name": "archive_stop",
            "type": "BinaryArchiveReader",
            "summary": "archive_stop is a archive to the data of the ending position."
          }
        ]
      },
      {
        "signature": "System.Void AnimationStart(RhinoDoc doc, System.Int32 iFrames)",
        "modifiers": ["public", "abstract"],
        "protected": false,
        "virtual": false,
        "summary": "Called once at the start of an animation.",
        "since": "6.0",
        "parameters": [
          {
            "name": "doc",
            "type": "RhinoDoc",
            "summary": "doc is the current document."
          },
          {
            "name": "iFrames",
            "type": "System.Int32",
            "summary": "iFrames is the number of frames to be animated."
          }
        ]
      },
      {
        "signature": "System.Boolean AnimationStop(RhinoDoc doc)",
        "modifiers": ["public", "abstract"],
        "protected": false,
        "virtual": false,
        "summary": "Called once at the end of an animation.",
        "since": "6.0",
        "parameters": [
          {
            "name": "doc",
            "type": "RhinoDoc",
            "summary": "doc is the current document."
          }
        ]
      },
      {
        "signature": "System.String Category()",
        "modifiers": ["public", "abstract"],
        "protected": false,
        "virtual": false,
        "summary": "The category of this client. Usually one of the above predefined categories like e.g object, rendering or application category",
        "since": "6.0"
      },
      {
        "signature": "System.Guid ClientId()",
        "modifiers": ["public", "abstract"],
        "protected": false,
        "virtual": false,
        "summary": "The unique id of this client.",
        "since": "6.0",
        "returns": "The unique id of this client."
      },
      {
        "signature": "System.Void Dispose()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "SnapShotsClient Dispose",
        "since": "6.0"
      },
      {
        "signature": "System.Void ExtendBoundingBoxForDocumentAnimation(RhinoDoc doc, BinaryArchiveReader archive_start, BinaryArchiveReader archive_stop, ref Rhino.Geometry.BoundingBox bbox)",
        "modifiers": ["public", "abstract"],
        "protected": false,
        "virtual": false,
        "summary": "Called once at the start of an animation. This can be used to extend the scene bounding box to avoid clipping.",
        "since": "6.0",
        "parameters": [
          {
            "name": "doc",
            "type": "RhinoDoc",
            "summary": "doc is the current document."
          },
          {
            "name": "archive_start",
            "type": "BinaryArchiveReader",
            "summary": "archive_start is a archive to the data of the starting position."
          },
          {
            "name": "archive_stop",
            "type": "BinaryArchiveReader",
            "summary": "archive_stop is a archive to the data of the ending position."
          },
          {
            "name": "bbox",
            "type": "Rhino.Geometry.BoundingBox",
            "summary": "bbox is the current scene bounding box."
          }
        ]
      },
      {
        "signature": "System.Void ExtendBoundingBoxForObjectAnimation(RhinoDoc doc, Rhino.DocObjects.RhinoObject doc_object, ref Rhino.Geometry.Transform transform, BinaryArchiveReader archive_start, BinaryArchiveReader archive_stop, ref Rhino.Geometry.BoundingBox bbox)",
        "modifiers": ["public", "abstract"],
        "protected": false,
        "virtual": false,
        "summary": "Called once at the start of an animation. This can be used to extend the scene bounding box to avoid clipping.",
        "since": "6.0",
        "parameters": [
          {
            "name": "doc",
            "type": "RhinoDoc",
            "summary": "doc is the current document."
          },
          {
            "name": "doc_object",
            "type": "Rhino.DocObjects.RhinoObject",
            "summary": "doc_obj is the current object."
          },
          {
            "name": "transform",
            "type": "Rhino.Geometry.Transform",
            "summary": "transform is a transformation matrix. The matrix is set to identity the first time an object is associated with a snapshot. After that the matrix is updated when the object is transformed(scale, rotate etc.)."
          },
          {
            "name": "archive_start",
            "type": "BinaryArchiveReader",
            "summary": "archive_start is a archive to the data of the starting position."
          },
          {
            "name": "archive_stop",
            "type": "BinaryArchiveReader",
            "summary": "archive_stop is a archive to the data of the ending position."
          },
          {
            "name": "bbox",
            "type": "Rhino.Geometry.BoundingBox",
            "summary": "bbox is the current scene bounding box."
          }
        ]
      },
      {
        "signature": "System.Boolean IsCurrentModelStateInAnySnapshot(RhinoDoc doc, BinaryArchiveReader archive, SimpleArrayBinaryArchiveReader archive_array, TextLog text_log)",
        "modifiers": ["public", "abstract"],
        "protected": false,
        "virtual": false,
        "summary": "Called before restoring a snapshot. Warns the user if the current model state is not already saved.",
        "since": "6.0",
        "parameters": [
          {
            "name": "doc",
            "type": "RhinoDoc",
            "summary": "doc is the current document."
          },
          {
            "name": "archive",
            "type": "BinaryArchiveReader",
            "summary": "archive is the current state of the model."
          },
          {
            "name": "archive_array",
            "type": "SimpleArrayBinaryArchiveReader",
            "summary": "archive_array is a list of client data."
          },
          {
            "name": "text_log",
            "type": "TextLog",
            "summary": "text_log is used to list the missing items that cannot be found in the current model."
          }
        ],
        "returns": "return True if successful, otherwise false."
      },
      {
        "signature": "System.Boolean IsCurrentModelStateInAnySnapshot(RhinoDoc doc, Rhino.DocObjects.RhinoObject doc_object, BinaryArchiveReader archive, SimpleArrayBinaryArchiveReader archive_array, TextLog text_log)",
        "modifiers": ["public", "abstract"],
        "protected": false,
        "virtual": false,
        "summary": "Called before restoring a snapshot. Warns the user if the current model state is not already saved.",
        "since": "6.0",
        "parameters": [
          {
            "name": "doc",
            "type": "RhinoDoc",
            "summary": "doc is the current document."
          },
          {
            "name": "doc_object",
            "type": "Rhino.DocObjects.RhinoObject",
            "summary": "doc_object is the current object."
          },
          {
            "name": "archive",
            "type": "BinaryArchiveReader",
            "summary": "archive is the current state of the model."
          },
          {
            "name": "archive_array",
            "type": "SimpleArrayBinaryArchiveReader",
            "summary": "archive_array is a list of client data."
          },
          {
            "name": "text_log",
            "type": "TextLog",
            "summary": "text_log is used to list the missing items that cannot be found in the current model."
          }
        ],
        "returns": "return True if successful, otherwise false."
      },
      {
        "signature": "System.String Name()",
        "modifiers": ["public", "abstract"],
        "protected": false,
        "virtual": false,
        "summary": "The client's name.",
        "since": "6.0",
        "returns": "The client's name."
      },
      {
        "signature": "System.Boolean ObjectTransformNotification(RhinoDoc doc, Rhino.DocObjects.RhinoObject doc_object, ref Rhino.Geometry.Transform transform, BinaryArchiveReader archive)",
        "modifiers": ["public", "abstract"],
        "protected": false,
        "virtual": false,
        "summary": "Called for every object that is associated with a snapshot and gets transformed in Rhino. This is getting called for each stored snapshot and gives the client the possibility to update the stored data.",
        "since": "6.0",
        "parameters": [
          {
            "name": "doc",
            "type": "RhinoDoc",
            "summary": "doc is the current document."
          },
          {
            "name": "doc_object",
            "type": "Rhino.DocObjects.RhinoObject",
            "summary": "doc_obj is the current object."
          },
          {
            "name": "transform",
            "type": "Rhino.Geometry.Transform",
            "summary": "transform is a transformation matrix. The matrix is set to identity the first time an object is associated with a snapshot. After that the matrix is updated when the object is transformed(scale, rotate etc.)."
          },
          {
            "name": "archive",
            "type": "BinaryArchiveReader",
            "summary": "archive is a archive which can be used to update the stored data."
          }
        ],
        "returns": "True if successful, otherwise false."
      },
      {
        "signature": "System.Guid PlugInId()",
        "modifiers": ["public", "abstract"],
        "protected": false,
        "virtual": false,
        "summary": "The plug-in id that registers this client.",
        "since": "6.0",
        "returns": "The plug-in id that registers this client."
      },
      {
        "signature": "System.Boolean PrepareForDocumentAnimation(RhinoDoc doc, BinaryArchiveReader archive_start, BinaryArchiveReader archive_stop)",
        "modifiers": ["public", "abstract"],
        "protected": false,
        "virtual": false,
        "summary": "Called once at the start of an animation.",
        "since": "6.0",
        "parameters": [
          {
            "name": "doc",
            "type": "RhinoDoc",
            "summary": "doc is the current document."
          },
          {
            "name": "archive_start",
            "type": "BinaryArchiveReader",
            "summary": "archive_start is a archive to the data of the starting position."
          },
          {
            "name": "archive_stop",
            "type": "BinaryArchiveReader",
            "summary": "archive_stop is a archive to the data of the ending position."
          }
        ],
        "returns": "True if successful, otherwise"
      },
      {
        "signature": "System.Boolean PrepareForObjectAnimation(RhinoDoc doc, Rhino.DocObjects.RhinoObject doc_object, ref Rhino.Geometry.Transform transform, BinaryArchiveReader archive_start, BinaryArchiveReader archive_stop)",
        "modifiers": ["public", "abstract"],
        "protected": false,
        "virtual": false,
        "summary": "Called once at the start of an animation.",
        "since": "6.0",
        "parameters": [
          {
            "name": "doc",
            "type": "RhinoDoc",
            "summary": "doc is the current document."
          },
          {
            "name": "doc_object",
            "type": "Rhino.DocObjects.RhinoObject",
            "summary": "doc_obj is the current object."
          },
          {
            "name": "transform",
            "type": "Rhino.Geometry.Transform",
            "summary": "transform is a transformation matrix. The matrix is set to identity the first time an object is associated with a snapshot. After that the matrix is updated when the object is transformed(scale, rotate etc.)."
          },
          {
            "name": "archive_start",
            "type": "BinaryArchiveReader",
            "summary": "archive_start is a archive to the data of the starting position."
          },
          {
            "name": "archive_stop",
            "type": "BinaryArchiveReader",
            "summary": "archive_stop is a archive to the data of the ending position."
          }
        ],
        "returns": "True if successful, otherwise false."
      },
      {
        "signature": "System.Boolean RestoreDocument(RhinoDoc doc, BinaryArchiveReader archive)",
        "modifiers": ["public", "abstract"],
        "protected": false,
        "virtual": false,
        "summary": "Called when the user restores a snapshot and SupportDocument() returns true.",
        "since": "6.0",
        "parameters": [
          {
            "name": "doc",
            "type": "RhinoDoc",
            "summary": "doc is the current document"
          },
          {
            "name": "archive",
            "type": "BinaryArchiveReader",
            "summary": "archive is the archive to read the data from"
          }
        ],
        "returns": "True if successful, otherwise false"
      },
      {
        "signature": "System.Boolean RestoreObject(RhinoDoc doc, Rhino.DocObjects.RhinoObject doc_object, ref Rhino.Geometry.Transform transform, BinaryArchiveReader archive)",
        "modifiers": ["public", "abstract"],
        "protected": false,
        "virtual": false,
        "summary": "Called when the user restores a snapshot and SupportsObjects() and SupportsObject(Rhino.DocObjects.RhinoObject doc_object) returns true.",
        "since": "6.0",
        "parameters": [
          {
            "name": "doc",
            "type": "RhinoDoc",
            "summary": "doc is the current document."
          },
          {
            "name": "doc_object",
            "type": "Rhino.DocObjects.RhinoObject",
            "summary": "doc_obj is the current object."
          },
          {
            "name": "transform",
            "type": "Rhino.Geometry.Transform",
            "summary": "transform is a transformation matrix. The matrix is set to identity the first time an object is associated with a snapshot. After that the matrix is updated when the object is transformed(scale, rotate etc.)."
          },
          {
            "name": "archive",
            "type": "BinaryArchiveReader",
            "summary": "archive is the archive to read the data from."
          }
        ],
        "returns": "True if successful, otherwise false."
      },
      {
        "signature": "System.Boolean SaveDocument(RhinoDoc doc, BinaryArchiveWriter archive)",
        "modifiers": ["public", "abstract"],
        "protected": false,
        "virtual": false,
        "summary": "Called when the user saves a snapshot and SupportDocument() returns true.",
        "since": "6.0",
        "parameters": [
          {
            "name": "doc",
            "type": "RhinoDoc",
            "summary": "doc is the current document"
          },
          {
            "name": "archive",
            "type": "BinaryArchiveWriter",
            "summary": "archive is the archive to write the data to"
          }
        ],
        "returns": "True if successful, otherwise false"
      },
      {
        "signature": "System.Boolean SaveObject(RhinoDoc doc, Rhino.DocObjects.RhinoObject doc_object, ref Rhino.Geometry.Transform transform, BinaryArchiveWriter archive)",
        "modifiers": ["public", "abstract"],
        "protected": false,
        "virtual": false,
        "summary": "Called when the user saves a snapshot and SupportsObjects() and SupportsObject(Rhino.DocObjects.RhinoObject doc_object) returns true.",
        "since": "6.0",
        "parameters": [
          {
            "name": "doc",
            "type": "RhinoDoc",
            "summary": "doc is the current document."
          },
          {
            "name": "doc_object",
            "type": "Rhino.DocObjects.RhinoObject",
            "summary": "doc_obj is the current object."
          },
          {
            "name": "transform",
            "type": "Rhino.Geometry.Transform",
            "summary": "transform is a transformation matrix. The matrix is set to identity the first time an object is associated with a snapshot. After that the matrix is updated when the object is transformed(scale, rotate etc.)."
          },
          {
            "name": "archive",
            "type": "BinaryArchiveWriter",
            "summary": "archive is the archive to write the data to."
          }
        ],
        "returns": "True if successful, otherwise false."
      },
      {
        "signature": "System.Void SnapshotRestored(RhinoDoc doc)",
        "modifiers": ["public", "abstract"],
        "protected": false,
        "virtual": false,
        "summary": "Called after all clients restored their data.",
        "since": "6.0"
      },
      {
        "signature": "System.Boolean SupportsAnimation()",
        "modifiers": ["public", "abstract"],
        "protected": false,
        "virtual": false,
        "summary": "Returns True if the client allows animation.",
        "since": "6.0",
        "returns": "True if the client allows animation."
      },
      {
        "signature": "System.Boolean SupportsDocument()",
        "modifiers": ["public", "abstract"],
        "protected": false,
        "virtual": false,
        "summary": "Defines if the client supports document user data or not",
        "since": "6.0",
        "returns": "True if the client saves/restores document user data."
      },
      {
        "signature": "System.Boolean SupportsObject(Rhino.DocObjects.RhinoObject doc_object)",
        "modifiers": ["public", "abstract"],
        "protected": false,
        "virtual": false,
        "summary": "Returns True if the client saves/restores object user data for the given object.",
        "since": "6.0",
        "parameters": [
          {
            "name": "doc_object",
            "type": "Rhino.DocObjects.RhinoObject",
            "summary": "doc_object is the given object"
          }
        ],
        "returns": "True if the client saves/restores object user data for the given object."
      },
      {
        "signature": "System.Boolean SupportsObjects()",
        "modifiers": ["public", "abstract"],
        "protected": false,
        "virtual": false,
        "summary": "Returns True if the client saves/restores object user data.",
        "since": "6.0",
        "returns": "True if the client saves/restores object user data."
      }
    ]
  },
  {
    "namespace": "Rhino.DocObjects",
    "name": "SubDObject",
    "dataType": "class",
    "summary": "Rhino object for SubD",
    "baseclass": "Rhino.DocObjects.RhinoObject"
  },
  {
    "namespace": "Rhino.DocObjects",
    "name": "SurfaceObject",
    "dataType": "class",
    "summary": "Represents a <b>Rhino.Geometry.Surface</b> in a document.",
    "baseclass": "Rhino.DocObjects.RhinoObject",
    "properties": [
      {
        "signature": "Surface SurfaceGeometry",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the surface geometry linked with this object.",
        "since": "5.0",
        "property": ["get"]
      }
    ],
    "methods": [
      {
        "signature": "Surface DuplicateSurfaceGeometry()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Constructs a new deep copy of the surface geometry.",
        "since": "5.0",
        "returns": "The copy of the geometry."
      }
    ]
  },
  {
    "namespace": "Rhino.DocObjects.Tables",
    "name": "BitmapTable",
    "dataType": "class",
    "summary": "Stores the list of bitmaps in a Rhino document.",
    "baseclass": "RhinoDocCommonTable<BitmapEntry>",
    "interfaces": ["ICollection<BitmapEntry>"],
    "properties": [
      {
        "signature": "ModelComponentType ComponentType",
        "modifiers": ["public", "override"],
        "protected": false,
        "virtual": false,
        "summary": "Returns <b>ModelComponentType.Image</b> .",
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "BitmapEntry this[int index]",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Conceptually, the bitmap table is an array of bitmaps.  The operator[] can be used to get individual bitmaps."
      }
    ],
    "methods": [
      {
        "signature": "System.Int32 AddBitmap(System.String bitmapFilename, System.Boolean replaceExisting)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Adds a new bitmap with specified name to the bitmap table.",
        "since": "5.0",
        "parameters": [
          {
            "name": "bitmapFilename",
            "type": "System.String",
            "summary": "If NULL or empty, then a unique name of the form \"Bitmap 01\" will be automatically created."
          },
          {
            "name": "replaceExisting",
            "type": "System.Boolean",
            "summary": "If True and the there is already a bitmap using the specified name, then that bitmap is replaced. If False and there is already a bitmap using the specified name, then -1 is returned."
          }
        ],
        "returns": "index of new bitmap in table on success. -1 on error."
      },
      {
        "signature": "System.Boolean Delete(BitmapEntry item)",
        "modifiers": ["public", "override"],
        "protected": false,
        "virtual": false,
        "summary": "Removes the bitmap from the table.",
        "since": "6.0",
        "parameters": [
          {
            "name": "item",
            "type": "BitmapEntry",
            "summary": "The item to remove. Null will always return false."
          }
        ],
        "returns": "True if the item could be deleted; otherwise, false."
      },
      {
        "signature": "System.Boolean DeleteBitmap(System.String bitmapFilename)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Deletes a bitmap.",
        "since": "5.0",
        "parameters": [
          {
            "name": "bitmapFilename",
            "type": "System.String",
            "summary": "The bitmap file name."
          }
        ],
        "returns": "True if successful. False if the bitmap cannot be deleted because it is the current bitmap or because it bitmap contains active geometry."
      },
      {
        "signature": "System.Boolean ExportToFile(System.Int32 index, System.String path)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Writes a bitmap to a file.",
        "since": "5.0",
        "parameters": [
          {
            "name": "index",
            "type": "System.Int32",
            "summary": "The index of the bitmap to be written."
          },
          {
            "name": "path",
            "type": "System.String",
            "summary": "The full path, including file name and extension, name of the file to write."
          }
        ],
        "returns": "True if successful."
      },
      {
        "signature": "System.Int32 ExportToFiles(System.String directoryPath, System.Int32 overwrite)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Exports all the bitmaps in the table to files.",
        "since": "5.0",
        "parameters": [
          {
            "name": "directoryPath",
            "type": "System.String",
            "summary": "full path to the directory where the bitmaps should be saved. If NULL, a dialog is used to interactively get the directory name."
          },
          {
            "name": "overwrite",
            "type": "System.Int32",
            "summary": "0 = no, 1 = yes, 2 = ask."
          }
        ],
        "returns": "Number of bitmaps written."
      },
      {
        "signature": "BitmapEntry Find(System.String name, System.Boolean createFile, out System.String fileName)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "This function first attempts to find the file with \"name\" on the disk. If it does find it, \"fileName\" is set to the full path of the file and the BitmapEntry returned will be null, even if there was a BitmapEntry with \"name\" in the bitmap table. If the function cannot find the file on the disk, it searches the bitmap table.  If it finds it, the returned BitmapEntry entry will be the entry in the table with that name. Additionally, if \"createFile\" is true, and an entry is found, the file will be written to the disk and it's full path will be contained in \"fileName\".",
        "since": "5.1",
        "parameters": [
          {
            "name": "name",
            "type": "System.String",
            "summary": "Name of the file to search for including file extension."
          },
          {
            "name": "createFile",
            "type": "System.Boolean",
            "summary": "If this is true, and the file is not found on the disk but is found in the BitmapTable, then the BitmapEntry will get saved to the Rhino bitmap file cache and fileName will contain the full path to the cached file."
          },
          {
            "name": "fileName",
            "type": "System.String",
            "summary": "The full path to the current location of this file or an empty string if the file was not found and/or not extracted successfully."
          }
        ],
        "returns": "Returns None if \"name\" was found on the disk.  If name was not found on the disk, returns the BitmapEntry with the specified name if it is found in the bitmap table and None if it was not found in the bitmap table."
      },
      {
        "signature": "BitmapEntry FindIndex(System.Int32 index)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Retrieves a BitmapEntry object based on Index. This search type of search is discouraged. We are moving towards using only IDs for all tables.",
        "since": "6.0",
        "parameters": [
          {
            "name": "index",
            "type": "System.Int32",
            "summary": "The index to search for."
          }
        ],
        "returns": "A BitmapEntry object, or None if none was found."
      }
    ]
  },
  {
    "namespace": "Rhino.DocObjects.Tables",
    "name": "DimStyleTable",
    "dataType": "class",
    "baseclass": "RhinoDocCommonTable<DimensionStyle>",
    "interfaces": ["ICollection<DimensionStyle>"],
    "properties": [
      {
        "signature": "DimensionStyle[] BuiltInStyles",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Creates an array of default DimensionStyle objects",
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "ModelComponentType ComponentType",
        "modifiers": ["public", "override"],
        "protected": false,
        "virtual": false,
        "summary": "Returns <b>ModelComponentType.DimStyle</b> .",
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "DimensionStyle Current",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns an instance of the current <b>DimensionStyle</b> .",
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "DimensionStyle CurrentDimensionStyle",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Do not use. Use the <b>Current</b> property.",
        "since": "5.0",
        "obsolete": "Use the Current property.",
        "property": ["get"]
      },
      {
        "signature": "Guid CurrentId",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "int CurrentIndex",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "DimensionStyle this[int index]",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false
      }
    ],
    "methods": [
      {
        "signature": "System.Int32 Add(DimensionStyle dimstyle, System.Boolean reference)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Adds a new DimensionStyle to the document.",
        "since": "6.0",
        "parameters": [
          {
            "name": "dimstyle",
            "type": "DimensionStyle",
            "summary": "The dimension style to add"
          },
          {
            "name": "reference",
            "type": "System.Boolean",
            "summary": "if True the dimstyle will not be saved in files."
          }
        ],
        "returns": "index of new AnnotationStyle."
      },
      {
        "signature": "System.Int32 Add(System.String name, System.Boolean reference)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Adds a new AnnotationStyle to the document. The new AnnotationStyle will be initialized with the current default AnnotationStyle properties.",
        "since": "5.0",
        "parameters": [
          {
            "name": "name",
            "type": "System.String",
            "summary": "Name of the new AnnotationStyle. If None or empty, Rhino automatically generates the name."
          },
          {
            "name": "reference",
            "type": "System.Boolean",
            "summary": "if True the dimstyle will not be saved in files."
          }
        ],
        "returns": "index of new AnnotationStyle."
      },
      {
        "signature": "System.Int32 Add(System.String name)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Adds a new AnnotationStyle to the document. The new AnnotationStyle will be initialized with the current default AnnotationStyle properties.",
        "since": "5.0",
        "parameters": [
          {
            "name": "name",
            "type": "System.String",
            "summary": "Name of the new AnnotationStyle. If None or empty, Rhino automatically generates the name."
          }
        ],
        "returns": "index of new AnnotationStyle."
      },
      {
        "signature": "System.Boolean Delete(DimensionStyle item)",
        "modifiers": ["public", "override"],
        "protected": false,
        "virtual": false,
        "summary": "Removes an annotation style.",
        "since": "6.0",
        "parameters": [
          {
            "name": "item",
            "type": "DimensionStyle",
            "summary": "The item to remove."
          }
        ],
        "returns": "True if the item was removed; False otherwise."
      },
      {
        "signature": "System.Boolean Delete(System.Int32 index, System.Boolean quiet)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0"
      },
      {
        "signature": "DimensionStyle Find(System.Guid styleId, System.Boolean ignoreDeleted)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0"
      },
      {
        "signature": "DimensionStyle Find(System.String name, System.Boolean ignoreDeleted)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0",
        "deprecated": "6.0",
        "obsolete": "ignoreDeleted is always considered true now. Use FindName."
      },
      {
        "signature": "DimensionStyle FindIndex(System.Int32 index)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Retrieves a DimensionStyle object based on Index. This search type of search is discouraged. We are moving towards using only IDs for all tables.",
        "since": "6.0",
        "parameters": [
          {
            "name": "index",
            "type": "System.Int32",
            "summary": "The index to search for."
          }
        ],
        "returns": "A DimensionStyle object, or None if none was found."
      },
      {
        "signature": "DimensionStyle FindName(System.String name)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Finds the DimensionStyle with a given name and returns it. None is returned if no DimensionStyle is found.",
        "since": "6.0",
        "parameters": [
          {
            "name": "name",
            "type": "System.String",
            "summary": "The string to search. Deleted styles are ignored."
          }
        ],
        "returns": "The instance, or null."
      },
      {
        "signature": "DimensionStyle FindRoot(System.Guid styleId, System.Boolean ignoreDeleted)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0"
      },
      {
        "signature": "IEnumerator<DimensionStyle> GetEnumerator()",
        "modifiers": ["public", "override"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "System.String GetUnusedStyleName()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Get a unique name for a style that does not already exist in the DimStyle table",
        "since": "6.0"
      },
      {
        "signature": "System.String GetUnusedStyleName(System.String rootName)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Get a unique name for a dimension style that does not already exist in the DimStyle table",
        "since": "6.0",
        "parameters": [
          {
            "name": "rootName",
            "type": "System.String",
            "summary": "prefix in name; typically the parent style name"
          }
        ]
      },
      {
        "signature": "ModifyType Modify(DimensionStyle dimstyle, Geometry.AnnotationBase annotation)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0"
      },
      {
        "signature": "System.Boolean Modify(DimensionStyle newSettings, System.Guid dimstyleId, System.Boolean quiet)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Modifies dimension style settings.",
        "since": "6.0",
        "parameters": [
          {
            "name": "newSettings",
            "type": "DimensionStyle",
            "summary": "This information is copied."
          },
          {
            "name": "dimstyleId",
            "type": "System.Guid",
            "summary": "Id of dimension style"
          },
          {
            "name": "quiet",
            "type": "System.Boolean",
            "summary": "if true, information message boxes pop up when illegal changes are attempted."
          }
        ],
        "returns": "True if successful. False if Id is not already in table"
      },
      {
        "signature": "System.Boolean Modify(DimensionStyle newSettings, System.Int32 dimstyleIndex, System.Boolean quiet)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Modifies dimension style settings.",
        "since": "6.0",
        "parameters": [
          {
            "name": "newSettings",
            "type": "DimensionStyle",
            "summary": "This information is copied."
          },
          {
            "name": "dimstyleIndex",
            "type": "System.Int32",
            "summary": "zero based index of dimension to set. Must be in the range 0 <= dimstyleIndex < DimStyleTable.Count."
          },
          {
            "name": "quiet",
            "type": "System.Boolean",
            "summary": "if true, information message boxes pop up when illegal changes are attempted."
          }
        ],
        "returns": "True if successful. False if dimstyleIndex is out of range"
      },
      {
        "signature": "System.Int32 PurgeUnused()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Purges any unused dimension styles.",
        "since": "9.0",
        "returns": "The number of unused dimension styles that were purged."
      },
      {
        "signature": "System.Boolean SetCurrent(System.Int32 index, System.Boolean quiet)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Sets the <b>Current</b> property.",
        "since": "6.0",
        "parameters": [
          {
            "name": "index",
            "type": "System.Int32",
            "summary": "The index of the current DimStyle."
          },
          {
            "name": "quiet",
            "type": "System.Boolean",
            "summary": "True if error dialog boxes are disabled. False if they are enabled."
          }
        ],
        "returns": "True if the method achieved its goal; otherwise false."
      },
      {
        "signature": "System.Boolean SetCurrentDimensionStyleIndex(System.Int32 index, System.Boolean quiet)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Do not use. Use the <b>SetCurrent</b> method.",
        "since": "5.0",
        "deprecated": "6.0",
        "obsolete": "Use the SetCurrent property.",
        "parameters": [
          {
            "name": "index",
            "type": "System.Int32",
            "summary": "Do not use."
          },
          {
            "name": "quiet",
            "type": "System.Boolean",
            "summary": "Do not use."
          }
        ],
        "returns": "Do not use."
      }
    ]
  },
  {
    "namespace": "Rhino.DocObjects.Tables",
    "name": "DimStyleTableEventArgs",
    "dataType": "class",
    "baseclass": "EventArgs",
    "properties": [
      {
        "signature": "RhinoDoc Document",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "DimStyleTableEventType EventType",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "int Index",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "DimensionStyle NewState",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "DimensionStyle OldState",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get"]
      }
    ]
  },
  {
    "namespace": "Rhino.DocObjects.Tables",
    "name": "DimStyleTableEventType",
    "dataType": "enum",
    "since": "6.0",
    "values": [
      {
        "signature": "Added",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Deleted",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Undeleted",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Modified",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "name, color, etc., change"
      },
      {
        "signature": "Sorted",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "doc.m_dimstyle_table.Sort() potentially changed sort order"
      },
      {
        "signature": "Current",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "current dim style change"
      }
    ]

  },
  {
    "namespace": "Rhino.DocObjects.Tables",
    "name": "FontTable",
    "dataType": "class",
    "summary": "Font tables store the list of fonts in a Rhino document. The FontTable is now just a wrapper around the DimStyles table.",
    "remarks": "The FontTable is now just a wrapper around the DimStyles table.",
    "interfaces": ["IEnumerable<Font>", "Collections.IRhinoTable<Font>"],
    "properties": [
      {
        "signature": "int Count",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Number of fonts in the table.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "int CurrentIndex",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "At all times, there is a \"current\" font.  Unless otherwise specified, new dimension objects are assigned to the current font. The current font is never deleted. Returns: Zero based font index of the current font.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "RhinoDoc Document",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Document that owns this table.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "Font this[int index]",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the font at a position."
      }
    ],
    "methods": [
      {
        "signature": "System.Int32 FindOrCreate(System.String face, System.Boolean bold, System.Boolean italic, DimensionStyle template_style)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Get a DimensionStyle with the specified characteristics",
        "since": "6.0",
        "parameters": [
          {
            "name": "face",
            "type": "System.String",
            "summary": ""
          },
          {
            "name": "bold",
            "type": "System.Boolean",
            "summary": ""
          },
          {
            "name": "italic",
            "type": "System.Boolean",
            "summary": ""
          },
          {
            "name": "template_style",
            "type": "DimensionStyle",
            "summary": "the settings other than face, bold and italic are copied from the template_style"
          }
        ]
      },
      {
        "signature": "System.Int32 FindOrCreate(System.String face, System.Boolean bold, System.Boolean italic)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Get a DimensionStyle with the specified characteristics the settings other than face, bold and italic are copied from the current style",
        "since": "5.0"
      },
      {
        "signature": "IEnumerator<Font> GetEnumerator()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      }
    ]
  },
  {
    "namespace": "Rhino.DocObjects.Tables",
    "name": "GroupTable",
    "dataType": "class",
    "summary": "Group tables store the list of groups in a Rhino document.",
    "baseclass": "RhinoDocCommonTable<Group>",
    "interfaces": ["ICollection<Group>"],
    "properties": [
      {
        "signature": "ModelComponentType ComponentType",
        "modifiers": ["public", "override"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "Group this[int index]",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Conceptually, the group table is an array of groups. The operator[] can be used to get individual groups. A group is either active or deleted and this state is reported by Group.IsDeleted.",
        "since": "8.5"
      }
    ],
    "methods": [
      {
        "signature": "System.Int32 Add()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Adds a new empty group to the group table.",
        "since": "5.0",
    "remarks": "In some cases, calling Add() can cause the group indices to become invalid.",
        "returns": ">=0 index of new group. -1 group not added because a group with that name already exists."
      },
      {
        "signature": "System.Int32 Add(IEnumerable<Guid> objectIds)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Adds a new group to the group table with a set of objects.",
        "since": "5.0",
    "remarks": "In some cases, calling Add() can cause the group indices to become invalid.",
        "parameters": [
          {
            "name": "objectIds",
            "type": "System.Collections.Generic.IEnumerable<Guid>",
            "summary": "An array, a list or any enumerable set of object IDs."
          }
        ],
        "returns": ">=0 index of new group.  \n-1 group not added because a group with that name already exists."
      },
      {
        "signature": "System.Int32 Add(System.String groupName, IEnumerable<Guid> objectIds)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Adds a new group to the group table with a set of objects.",
        "since": "5.0",
    "remarks": "In some cases, calling Add() can cause the group indices to become invalid.",
        "parameters": [
          {
            "name": "groupName",
            "type": "System.String",
            "summary": "Name of new group."
          },
          {
            "name": "objectIds",
            "type": "System.Collections.Generic.IEnumerable<Guid>",
            "summary": "An array, a list or any enumerable set of object IDs."
          }
        ],
        "returns": ">=0 index of new group.  \n-1 group not added because a group with that name already exists."
      },
      {
        "signature": "System.Int32 Add(System.String groupName)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Adds a new empty group to the group table.",
        "since": "5.0",
    "remarks": "In some cases, calling Add() can cause the group indices to become invalid.",
        "parameters": [
          {
            "name": "groupName",
            "type": "System.String",
            "summary": "name of new group."
          }
        ],
        "returns": ">=0 index of new group. -1 group not added because a group with that name already exists."
      },
      {
        "signature": "System.Boolean AddToGroup(System.Int32 groupIndex, IEnumerable<Guid> objectIds)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Adds a list of objects to an existing group.",
        "since": "5.0",
        "parameters": [
          {
            "name": "groupIndex",
            "type": "System.Int32",
            "summary": "The group index value."
          },
          {
            "name": "objectIds",
            "type": "System.Collections.Generic.IEnumerable<Guid>",
            "summary": "An array, a list or any enumerable set of IDs to objects."
          }
        ],
        "returns": "True if at least an operation was successful."
      },
      {
        "signature": "System.Boolean AddToGroup(System.Int32 groupIndex, System.Guid objectId)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Adds an object to an existing group.",
        "since": "5.0",
        "parameters": [
          {
            "name": "groupIndex",
            "type": "System.Int32",
            "summary": "The group index value."
          },
          {
            "name": "objectId",
            "type": "System.Guid",
            "summary": "An ID of an object."
          }
        ],
        "returns": "True if the operation was successful."
      },
      {
        "signature": "System.Boolean ChangeGroupName(System.Int32 groupIndex, System.String newName)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Changes the name of a group.",
        "parameters": [
          {
            "name": "groupIndex",
            "type": "System.Int32",
            "summary": "The index of the group."
          },
          {
            "name": "newName",
            "type": "System.String",
            "summary": "The new group name."
          }
        ],
        "returns": "True if successful, False otherwise."
      },
      {
        "signature": "System.Boolean Delete(Group item)",
        "modifiers": ["public", "override"],
        "protected": false,
        "virtual": false,
        "since": "6.0"
      },
      {
        "signature": "System.Boolean Delete(System.Int32 groupIndex)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Deletes a group from this table.  \nDeleted groups are kept in the runtime group table so that undo       will work with groups. Call IsDeleted() to determine if a group is deleted.",
        "since": "5.0",
        "parameters": [
          {
            "name": "groupIndex",
            "type": "System.Int32",
            "summary": "An group index to be deleted."
          }
        ],
        "returns": "True if the operation was successful."
      },
      {
        "signature": "System.Int32 Find(System.String groupName, System.Boolean ignoreDeletedGroups)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Finds a group with a given name.",
        "since": "5.0",
        "deprecated": "6.0",
        "obsolete": "Use the overload without the ignoreDeletedGroups input. Note that the new method might return UnsetIntIndex.",
        "parameters": [
          {
            "name": "groupName",
            "type": "System.String",
            "summary": "Name of group to search for. Ignores case."
          },
          {
            "name": "ignoreDeletedGroups",
            "type": "System.Boolean",
            "summary": "This parameter is ignored. Deleted groups are never searched."
          }
        ],
        "returns": ">=0 index of the group with the given name. -1 no group found with the given name."
      },
      {
        "signature": "System.Int32 Find(System.String groupName)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Finds a group with a given name.",
        "since": "6.0",
        "parameters": [
          {
            "name": "groupName",
            "type": "System.String",
            "summary": "Name of group to search for. Ignores case."
          }
        ],
        "returns": ">=0 index of the group with the given name.  <b>RhinoMath.UnsetIntIndex</b> no group found with the given name."
      },
      {
        "signature": "Group FindIndex(System.Int32 index)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Retrieves a Group object based on Index. This search type of search is discouraged. We are moving towards using only IDs for all tables.",
        "since": "6.0",
        "parameters": [
          {
            "name": "index",
            "type": "System.Int32",
            "summary": "The index to search for."
          }
        ],
        "returns": "A Group object, or None if none was found."
      },
      {
        "signature": "Group FindName(System.String name)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Finds a group given its name. Returns the instance, rather than the index.",
        "since": "6.0",
        "parameters": [
          {
            "name": "name",
            "type": "System.String",
            "summary": "The name of the group to be searched."
          }
        ],
        "returns": "An group, or None on error."
      },
      {
        "signature": "Group FindNameHash(NameHash nameHash)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Finds a group given its name hash.",
        "since": "6.0",
        "parameters": [
          {
            "name": "nameHash",
            "type": "NameHash",
            "summary": "The name hash of the group to be searched."
          }
        ],
        "returns": "An group, or None on error."
      },
      {
        "signature": "RhinoObject[] GroupMembers(System.Int32 groupIndex)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets an array of all of the objects in a group.",
        "since": "5.0",
        "parameters": [
          {
            "name": "groupIndex",
            "type": "System.Int32",
            "summary": "The index of the group in this table."
          }
        ],
        "returns": "An array with all the objects in the specified group."
      },
      {
        "signature": "System.String GroupName(System.Int32 groupIndex)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns the name of a group.",
        "since": "5.0",
        "parameters": [
          {
            "name": "groupIndex",
            "type": "System.Int32",
            "summary": "The index of the group."
          }
        ],
        "returns": "The group name."
      },
      {
        "signature": "System.String[] GroupNames(System.Boolean ignoreDeletedGroups)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns an array of all group names.",
        "since": "5.0",
        "parameters": [
          {
            "name": "ignoreDeletedGroups",
            "type": "System.Boolean",
            "summary": "Ignore any groups that were deleted."
          }
        ],
        "returns": "An array if group names if successful, None if there are no groups."
      },
      {
        "signature": "System.Int32 GroupObjectCount(System.Int32 groupIndex)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns the number of objects that are members of a group.",
        "since": "5.0",
        "parameters": [
          {
            "name": "groupIndex",
            "type": "System.Int32",
            "summary": "The index of the group."
          }
        ],
        "returns": "The number of objects that are members of the group."
      },
      {
        "signature": "System.Int32 Hide(System.Int32 groupIndex)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Hides all objects that are members of a group.",
        "since": "5.0",
        "parameters": [
          {
            "name": "groupIndex",
            "type": "System.Int32",
            "summary": "The index of the group."
          }
        ],
        "returns": "The number of objects that were hidden."
      },
      {
        "signature": "System.Boolean IsDeleted(System.Int32 groupIndex)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Verifies a group is deleted.",
        "parameters": [
          {
            "name": "groupIndex",
            "type": "System.Int32",
            "summary": "The index of the group."
          }
        ],
        "returns": "True if the group is deleted, False otherwise."
      },
      {
        "signature": "System.Int32 Lock(System.Int32 groupIndex)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Locks all objects that are members of a group.",
        "since": "5.0",
        "parameters": [
          {
            "name": "groupIndex",
            "type": "System.Int32",
            "summary": "The index of the group."
          }
        ],
        "returns": "The number of objects that were locked."
      },
      {
        "signature": "System.Int32 PurgeUnused()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Purges any unused groups.",
        "since": "9.0",
        "returns": "The number of unused groups that were purged."
      },
      {
        "signature": "System.Int32 RemapObjects(IEnumerable<RhinoObject> rhinoObjects, out Dictionary<int, int> indexMap)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Remaps an enumeration of Rhino objects to new groups.",
        "since": "8.16",
    "remarks": "In some situations, a bunch of Rhino objects are copied, new groups need to be created. This method handles the details.",
        "parameters": [
          {
            "name": "rhinoObjects",
            "type": "IEnumerable<RhinoObject>",
            "summary": "The enumeration of Rhino objects."
          },
          {
            "name": "indexMap",
            "type": "Dictionary<int, int>",
            "summary": "A map from old group indices to new group indices."
          }
        ],
        "returns": "The number of Rhino objects that were modified."
      },
      {
        "signature": "System.Int32 RemapObjects(IEnumerable<RhinoObject> rhinoObjects)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Remaps an enumeration of Rhino objects to new groups.",
        "since": "8.16",
    "remarks": "In some situations, a bunch of Rhino objects are copied, new groups need to be created. This method handles the details.",
        "parameters": [
          {
            "name": "rhinoObjects",
            "type": "IEnumerable<RhinoObject>",
            "summary": "The enumeration of Rhino objects."
          }
        ],
        "returns": "The number of Rhino objects that were modified."
      },
      {
        "signature": "System.Int32 Show(System.Int32 groupIndex)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Shows, or unhides, all objects that are members of a group.",
        "since": "5.0",
        "parameters": [
          {
            "name": "groupIndex",
            "type": "System.Int32",
            "summary": "The index of the group."
          }
        ],
        "returns": "The number of objects that were shown."
      },
      {
        "signature": "System.Boolean Undelete(System.Int32 groupIndex)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Undeletes a previously deleted group.",
        "since": "5.0",
        "parameters": [
          {
            "name": "groupIndex",
            "type": "System.Int32",
            "summary": "The index of the group."
          }
        ],
        "returns": "True if successful, False otherwise."
      },
      {
        "signature": "System.Int32 Unlock(System.Int32 groupIndex)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Unlocks all objects that are members of a group.",
        "since": "5.0",
        "parameters": [
          {
            "name": "groupIndex",
            "type": "System.Int32",
            "summary": "The index of the group."
          }
        ],
        "returns": "The number of objects that were unlocked."
      }
    ]
  },
  {
    "namespace": "Rhino.DocObjects.Tables",
    "name": "GroupTableEventArgs",
    "dataType": "class",
    "summary": "Contains group table event data.",
    "baseclass": "EventArgs",
    "properties": [
      {
        "signature": "RhinoDoc Document",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "The document in which the event occurred.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "GroupTableEventType EventType",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "The event type.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "int GroupIndex",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "The index of the Group that has changed.",
        "since": "6.10",
        "property": ["get"]
      },
      {
        "signature": "Group NewState",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "The Group that has changed.",
        "since": "6.10",
        "property": ["get"]
      },
      {
        "signature": "Group OldState",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "If the event is GroupTableEventType.Modified, then the old Group.",
        "since": "6.10",
        "property": ["get"]
      }
    ]
  },
  {
    "namespace": "Rhino.DocObjects.Tables",
    "name": "GroupTableEventType",
    "dataType": "enum",
    "summary": "Defines the types of group table events.",
    "since": "5.0",
    "values": [
      {
        "signature": "Added = 0",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "A group was added."
      },
      {
        "signature": "Deleted = 1",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "A group was deleted."
      },
      {
        "signature": "Undeleted = 2",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "A group was undeleted."
      },
      {
        "signature": "Modified = 3",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "A group was modified."
      },
      {
        "signature": "Sorted = 4",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "The group table was sorted."
      }
    ]

  },
  {
    "namespace": "Rhino.DocObjects.Tables",
    "name": "HatchPatternTable",
    "dataType": "class",
    "summary": "All of the hatch pattern definitions contained in a rhino document.",
    "baseclass": "RhinoDocCommonTable<HatchPattern>",
    "interfaces": ["ICollection<HatchPattern>"],
    "properties": [
      {
        "signature": "ModelComponentType ComponentType",
        "modifiers": ["public", "override"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "int CurrentHatchPatternIndex",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "At all times, there is a \"current\" hatch pattern.  Unless otherwise specified, new objects are assigned to the current hatch pattern. The current hatch pattern is never locked, hidden, or deleted.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "HatchPattern this[int index]",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Conceptually, the hatch pattern table is an array of hatch patterns. The operator[] can be used to get individual hatch patterns. A hatch pattern is either active or deleted and this state is reported by HatchPattern.IsDeleted."
      }
    ],
    "methods": [
      {
        "signature": "System.Int32 Add(Rhino.DocObjects.HatchPattern pattern)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Adds a new hatch pattern with specified definition to the table.",
        "since": "5.0",
        "parameters": [
          {
            "name": "pattern",
            "type": "Rhino.DocObjects.HatchPattern",
            "summary": "definition of new hatch pattern. The information in pattern is copied. If pattern.Name is empty the a unique name of the form \"HatchPattern 01\" will be automatically created."
          }
        ],
        "returns": ">=0 index of new hatch pattern -1  not added because a hatch pattern with that name already exists or some other problem occurred."
      },
      {
        "signature": "System.Boolean Delete(HatchPattern item, System.Boolean quiet)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Deletes a hatch pattern from the table.",
        "since": "6.0",
        "parameters": [
          {
            "name": "item",
            "type": "HatchPattern",
            "summary": "The hatch pattern to delete."
          },
          {
            "name": "quiet",
            "type": "System.Boolean",
            "summary": "If true, no warning message box appears if hatch pattern cannot be deleted."
          }
        ],
        "returns": "True if successful, False otherwise."
      },
      {
        "signature": "System.Boolean Delete(HatchPattern item)",
        "modifiers": ["public", "override"],
        "protected": false,
        "virtual": false,
        "summary": "Deletes a hatch pattern from the table.",
        "since": "6.0",
        "parameters": [
          {
            "name": "item",
            "type": "HatchPattern",
            "summary": "The hatch pattern to delete."
          }
        ],
        "returns": "True if successful, False otherwise."
      },
      {
        "signature": "System.Int32 Delete(IEnumerable<int> hatchPatternIndices, System.Boolean quiet)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Delete multiple hatch patterns.",
        "since": "9.0",
        "parameters": [
          {
            "name": "hatchPatternIndices",
            "type": "IEnumerable<int>",
            "summary": "An enumeration of hatch pattern indices."
          },
          {
            "name": "quiet",
            "type": "System.Boolean",
            "summary": "If true, no warning message box appears if a hatch pattern is in use."
          }
        ],
        "returns": "The number of hatch patterns that were deleted."
      },
      {
        "signature": "System.Boolean Delete(System.Int32 hatchPatternIndex, System.Boolean quiet)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Deletes a hatch pattern from the table.",
        "since": "7.0",
        "parameters": [
          {
            "name": "hatchPatternIndex",
            "type": "System.Int32",
            "summary": "The index of the hatch pattern to delete."
          },
          {
            "name": "quiet",
            "type": "System.Boolean",
            "summary": "If true, no warning message box appears if hatch pattern cannot be deleted."
          }
        ],
        "returns": "True if successful, False otherwise."
      },
      {
        "signature": "System.Boolean Delete(System.Int32 hatchPatternIndex)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Deletes a hatch pattern from the table.",
        "since": "7.0",
        "parameters": [
          {
            "name": "hatchPatternIndex",
            "type": "System.Int32",
            "summary": "The index of the hatch pattern to delete."
          }
        ],
        "returns": "True if successful, False otherwise."
      },
      {
        "signature": "System.Int32 Find(System.String name, System.Boolean ignoreDeleted)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Finds the hatch pattern with a given name. Search ignores case.",
        "since": "5.0",
        "deprecated": "6.0",
        "obsolete": "ignoreDeleted is now ignored. Items are removed permanently now. Use FindName.",
        "parameters": [
          {
            "name": "name",
            "type": "System.String",
            "summary": "The name of the hatch pattern to be found."
          },
          {
            "name": "ignoreDeleted",
            "type": "System.Boolean",
            "summary": "True means don't search deleted hatch patterns."
          }
        ],
        "returns": "Index of the hatch pattern with the given name. -1 if no hatch pattern found."
      },
      {
        "signature": "HatchPattern FindIndex(System.Int32 index)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Retrieves a HatchPattern object based on Index. This search type of search is discouraged. We are moving towards using only IDs for all tables.",
        "since": "6.0",
        "parameters": [
          {
            "name": "index",
            "type": "System.Int32",
            "summary": "The index to search for."
          }
        ],
        "returns": "A HatchPattern object, or None if none was found."
      },
      {
        "signature": "HatchPattern FindName(System.String name)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Finds the hatch pattern with a given name. Search ignores case.",
        "since": "6.0",
        "parameters": [
          {
            "name": "name",
            "type": "System.String",
            "summary": "The name of the hatch pattern to be found."
          }
        ],
        "returns": "Hatch pattern with the given name. Null if no hatch pattern found."
      },
      {
        "signature": "HatchPattern FindNameHash(NameHash nameHash)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Finds a HatchPattern given its name hash.",
        "since": "6.0",
        "parameters": [
          {
            "name": "nameHash",
            "type": "NameHash",
            "summary": "The name hash of the HatchPattern to be searched."
          }
        ],
        "returns": "An Linetype, or None on error."
      },
      {
        "signature": "System.String GetUnusedHatchPatternName()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets unused hatchpattern name used as default when creating new hatchpatterns.",
        "since": "9.0",
        "returns": "The unused hatchpattern name."
      },
      {
        "signature": "System.Boolean Modify(HatchPattern hatchPattern, System.Int32 hatchPatternIndex, System.Boolean quiet)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Modify hatch pattern settings.",
        "since": "8.0",
        "parameters": [
          {
            "name": "hatchPattern",
            "type": "HatchPattern",
            "summary": "Definition of new hatch pattern. The information in the hatch pattern is copied."
          },
          {
            "name": "hatchPatternIndex",
            "type": "System.Int32",
            "summary": "Zero based index of the hatch pattern to modify."
          },
          {
            "name": "quiet",
            "type": "System.Boolean",
            "summary": "If true, information message boxes pop up when illegal changes are attempted."
          }
        ],
        "returns": "True if successful, or False if hatchPatternIndex is out of range."
      },
      {
        "signature": "System.Int32 PurgeUnused()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Purges any unused hatch patterns.",
        "since": "9.0",
        "returns": "The number of unused hatch patterns that were purged."
      },
      {
        "signature": "System.Boolean Rename(HatchPattern item, System.String hatchPatternName)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Renames a hatch pattern in the table.",
        "since": "7.0",
        "parameters": [
          {
            "name": "item",
            "type": "HatchPattern",
            "summary": "The hatch pattern to rename"
          },
          {
            "name": "hatchPatternName",
            "type": "System.String",
            "summary": "The new hatch pattern name."
          }
        ],
        "returns": "True if successful, False otherwise."
      },
      {
        "signature": "System.Boolean Rename(System.Int32 hatchPatternIndex, System.String hatchPatternName)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Renames a hatch pattern in the table.",
        "since": "7.0",
        "parameters": [
          {
            "name": "hatchPatternIndex",
            "type": "System.Int32",
            "summary": "The index of the hatch pattern to rename."
          },
          {
            "name": "hatchPatternName",
            "type": "System.String",
            "summary": "The new hatch pattern name."
          }
        ],
        "returns": "True if successful, False otherwise."
      }
    ]
  },
  {
    "namespace": "Rhino.DocObjects.Tables",
    "name": "HatchPatternTableEventArgs",
    "dataType": "class",
    "summary": "LinetypeTable event arguments 8.15",
    "baseclass": "EventArgs",
    "since": "8.15",
    "properties": [
      {
        "signature": "RhinoDoc Document",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "The document in which the event occurred.",
        "since": "8.15",
        "property": ["get"]
      },
      {
        "signature": "HatchPatternTableEventType EventType",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "The event type.",
        "since": "8.15",
        "property": ["get"]
      },
      {
        "signature": "int HatchPatternIndex",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Index of the hatchpattern.",
        "since": "8.15",
        "property": ["get"]
      },
      {
        "signature": "HatchPattern NewState",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "The new state.",
        "since": "8.15",
        "property": ["get"]
      },
      {
        "signature": "HatchPattern OldState",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "The old state.",
        "since": "8.15",
        "property": ["get"]
      }
    ]
  },
  {
    "namespace": "Rhino.DocObjects.Tables",
    "name": "HatchPatternTableEventType",
    "dataType": "enum",
    "summary": "HatchPattern event types 8.15",
    "since": "8.15",
    "values": [
      {
        "signature": "Added = 0",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "A hatchpattern was added."
      },
      {
        "signature": "Deleted = 1",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "A hatchpattern was deleted."
      },
      {
        "signature": "Undeleted = 2",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "A hatchpattern was undeleted."
      },
      {
        "signature": "Modified = 3",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "A hatchpattern was modified."
      },
      {
        "signature": "Sorted = 4",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "The hatchpattern table was sorted."
      },
      {
        "signature": "Current = 5",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "The current hatchpattern has changed."
      }
    ]

  },
  {
    "namespace": "Rhino.DocObjects.Tables",
    "name": "InstanceDefinitionTable",
    "dataType": "class",
    "baseclass": "RhinoDocCommonTable<InstanceDefinition>",
    "properties": [
      {
        "signature": "int ActiveCount",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Number of items in the instance definitions table, excluding deleted definitions.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "ModelComponentType ComponentType",
        "modifiers": ["public", "override"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "int Count",
        "modifiers": ["public", "override"],
        "protected": false,
        "virtual": false,
        "summary": "Number of items in the instance definitions table.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "RhinoDoc Document",
        "modifiers": ["public", "new"],
        "protected": false,
        "virtual": false,
        "summary": "Document that owns this table.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "InstanceDefinition this[int index]",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Conceptually, the InstanceDefinition table is an array of Instance definitions. The operator[] can be used to get individual instance definition. An instance definition is either active or deleted and this state is reported by IsDeleted or will be None if it has been purged from the document."
      }
    ],
    "methods": [
      {
        "signature": "System.Int32 Add(System.String name, System.String description, Point3d basePoint, GeometryBase geometry, ObjectAttributes attributes)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Adds an instance definition to the instance definition table.",
        "since": "5.0",
        "parameters": [
          {
            "name": "name",
            "type": "System.String",
            "summary": "The definition name."
          },
          {
            "name": "description",
            "type": "System.String",
            "summary": "The definition description."
          },
          {
            "name": "basePoint",
            "type": "Point3d",
            "summary": "A base point."
          },
          {
            "name": "geometry",
            "type": "GeometryBase",
            "summary": "An element."
          },
          {
            "name": "attributes",
            "type": "ObjectAttributes",
            "summary": "An attribute."
          }
        ],
        "returns": ">=0  index of instance definition in the instance definition table. -1 on failure."
      },
      {
        "signature": "System.Int32 Add(System.String name, System.String description, Point3d basePoint, IEnumerable<GeometryBase> geometry, IEnumerable<ObjectAttributes> attributes)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Adds an instance definition to the instance definition table.",
        "since": "5.0",
        "parameters": [
          {
            "name": "name",
            "type": "System.String",
            "summary": "The definition name."
          },
          {
            "name": "description",
            "type": "System.String",
            "summary": "The definition description."
          },
          {
            "name": "basePoint",
            "type": "Point3d",
            "summary": "A base point."
          },
          {
            "name": "geometry",
            "type": "IEnumerable<GeometryBase>",
            "summary": "An array, a list or any enumerable set of geometry."
          },
          {
            "name": "attributes",
            "type": "IEnumerable<ObjectAttributes>",
            "summary": "An array, a list or any enumerable set of attributes."
          }
        ],
        "returns": ">=0  index of instance definition in the instance definition table. -1 on failure."
      },
      {
        "signature": "System.Int32 Add(System.String name, System.String description, Point3d basePoint, IEnumerable<GeometryBase> geometry)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Adds an instance definition to the instance definition table.",
        "since": "5.0",
        "parameters": [
          {
            "name": "name",
            "type": "System.String",
            "summary": "The definition name."
          },
          {
            "name": "description",
            "type": "System.String",
            "summary": "The definition description."
          },
          {
            "name": "basePoint",
            "type": "Point3d",
            "summary": "A base point."
          },
          {
            "name": "geometry",
            "type": "IEnumerable<GeometryBase>",
            "summary": "An array, a list or any enumerable set of geometry."
          }
        ],
        "returns": ">=0  index of instance definition in the instance definition table. -1 on failure."
      },
      {
        "signature": "System.Int32 Add(System.String name, System.String description, System.String url, System.String urlTag, Point3d basePoint, IEnumerable<GeometryBase> geometry, IEnumerable<ObjectAttributes> attributes)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Adds an instance definition to the instance definition table.",
        "since": "7.0",
        "parameters": [
          {
            "name": "name",
            "type": "System.String",
            "summary": "The definition name."
          },
          {
            "name": "description",
            "type": "System.String",
            "summary": "The definition description."
          },
          {
            "name": "url",
            "type": "System.String",
            "summary": "A URL or hyperlink."
          },
          {
            "name": "urlTag",
            "type": "System.String",
            "summary": "A description of the URL or hyperlink."
          },
          {
            "name": "basePoint",
            "type": "Point3d",
            "summary": "A base point."
          },
          {
            "name": "geometry",
            "type": "IEnumerable<GeometryBase>",
            "summary": "An array, a list or any enumerable set of geometry."
          },
          {
            "name": "attributes",
            "type": "IEnumerable<ObjectAttributes>",
            "summary": "An array, a list or any enumerable set of attributes."
          }
        ],
        "returns": ">=0  index of instance definition in the instance definition table. -1 on failure."
      },
      {
        "signature": "System.Void Compact(System.Boolean ignoreUndoReferences)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Purge deleted instance definition information that is not in use. This function is time consuming and should be used in a thoughtful manner.",
        "since": "5.9",
        "parameters": [
          {
            "name": "ignoreUndoReferences",
            "type": "System.Boolean",
            "summary": "If false, then deleted instance definition information that could possibly be undeleted by the Undo command will not be deleted. If true, then all deleted instance definition information is deleted."
          }
        ]
      },
      {
        "signature": "System.Boolean Delete(InstanceDefinition item)",
        "modifiers": ["public", "override"],
        "protected": false,
        "virtual": false,
        "summary": "Deletes the instance definition. This deletes all references too.",
        "since": "6.0",
        "parameters": [
          {
            "name": "item",
            "type": "InstanceDefinition",
            "summary": "The item to delete."
          }
        ],
        "returns": "True on success."
      },
      {
        "signature": "System.Boolean Delete(System.Int32 idefIndex, System.Boolean deleteReferences, System.Boolean quiet)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Deletes the instance definition.",
        "since": "5.0",
        "parameters": [
          {
            "name": "idefIndex",
            "type": "System.Int32",
            "summary": "zero based index of instance definition to delete. This must be in the range 0 <= idefIndex < InstanceDefinitionTable.Count."
          },
          {
            "name": "deleteReferences",
            "type": "System.Boolean",
            "summary": "True to delete all references to this definition. False to delete definition only if there are no references."
          },
          {
            "name": "quiet",
            "type": "System.Boolean",
            "summary": "If true, no warning message box appears if an instance definition cannot be deleted because it is the current layer or it contains active geometry."
          }
        ],
        "returns": "True if successful. False if the instance definition has active references and bDeleteReferences is false."
      },
      {
        "signature": "System.Boolean DestroySourceArchive(InstanceDefinition definition, System.Boolean quiet)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Destroys all source archive information. Specifically: * <b>InstanceDefinitionGeometry.SourceArchive</b> is set to the empty string. * SourceRelativePath is set to false * The alternative source archive path is set to the empty string. * Checksum.Zero() is used to private destroy all checksum information. * <b>InstanceDefinition.UpdateType</b> is set to <b>InstanceDefinitionUpdateType.Static</b> .",
        "since": "6.0",
        "parameters": [
          {
            "name": "definition",
            "type": "InstanceDefinition",
            "summary": "The instance definition to be modified."
          },
          {
            "name": "quiet",
            "type": "System.Boolean",
            "summary": "If true, then message boxes about erroneous parameters will not be shown."
          }
        ],
        "returns": "Returns True if the definition was successfully modified otherwise returns false."
      },
      {
        "signature": "System.Boolean Export(System.Int32 idefIndex, System.String filename)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Exports the block definition's component objects to one of the file formats supported by Rhino.",
        "since": "9.0",
        "parameters": [
          {
            "name": "idefIndex",
            "type": "System.Int32",
            "summary": "Index of the instance definition to export."
          },
          {
            "name": "filename",
            "type": "System.String",
            "summary": "Name of the file to create."
          }
        ]
      },
      {
        "signature": "InstanceDefinition Find(System.Guid instanceId, System.Boolean ignoreDeletedInstanceDefinitions)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Finds the instance definition with a given id.",
        "since": "5.0",
        "parameters": [
          {
            "name": "instanceId",
            "type": "System.Guid",
            "summary": "Unique id of the instance definition to search for."
          },
          {
            "name": "ignoreDeletedInstanceDefinitions",
            "type": "System.Boolean",
            "summary": "True means don't search deleted instance definitions."
          }
        ],
        "returns": "The specified instance definition, or None if nothing matching was found."
      },
      {
        "signature": "InstanceDefinition Find(System.String instanceDefinitionName, System.Boolean ignoreDeletedInstanceDefinitions)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Finds the instance definition with a given name.",
        "since": "5.0",
        "deprecated": "6.0",
        "obsolete": "ignoreDeletedInstanceDefinitions is now redundant. Remove the second argument. Definitions are now always deleted permanently.",
        "parameters": [
          {
            "name": "instanceDefinitionName",
            "type": "System.String",
            "summary": "name of instance definition to search for (ignores case)"
          },
          {
            "name": "ignoreDeletedInstanceDefinitions",
            "type": "System.Boolean",
            "summary": "True means don't search deleted instance definitions."
          }
        ],
        "returns": "The specified instance definition, or None if nothing matching was found."
      },
      {
        "signature": "InstanceDefinition Find(System.String instanceDefinitionName)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Finds the instance definition with a given name.",
        "since": "6.0",
        "parameters": [
          {
            "name": "instanceDefinitionName",
            "type": "System.String",
            "summary": "name of instance definition to search for (ignores case)"
          }
        ],
        "returns": "The specified instance definition, or None if nothing matching was found."
      },
      {
        "signature": "IEnumerator<InstanceDefinition> GetEnumerator()",
        "modifiers": ["public", "override"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "InstanceDefinition[] GetList(System.Boolean ignoreDeleted)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets an array of instance definitions.",
        "since": "5.0",
        "parameters": [
          {
            "name": "ignoreDeleted",
            "type": "System.Boolean",
            "summary": "If True then deleted instance definitions are filtered out."
          }
        ],
        "returns": "An array of instance definitions. This can be empty, but not null."
      },
      {
        "signature": "System.String GetUnusedInstanceDefinitionName()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets unused instance definition name used as default when creating new instance definitions.",
        "since": "5.0",
        "returns": "An unused instance definition name string."
      },
      {
        "signature": "System.String GetUnusedInstanceDefinitionName(System.String root, System.UInt32 defaultSuffix)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets unused instance definition name used as default when creating new instance definitions.",
        "since": "5.0",
        "deprecated": "6.0",
        "obsolete": "The defaultSuffix parameter is now ignored. Remove the second argument.",
        "parameters": [
          {
            "name": "root",
            "type": "System.String",
            "summary": "The returned name is 'root nn'  If root is empty, then 'Block' (localized) is used."
          },
          {
            "name": "defaultSuffix",
            "type": "System.UInt32",
            "summary": "Unique names are created by appending a decimal number to the localized term for \"Block\" as in \"Block 01\", \"Block 02\", and so on.  When defaultSuffix is supplied, the search for an unused name begins at \"Block suffix\"."
          }
        ],
        "returns": "An unused instance definition name string."
      },
      {
        "signature": "System.String GetUnusedInstanceDefinitionName(System.String root)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets unused instance definition name used as default when creating new instance definitions.",
        "since": "5.0",
        "parameters": [
          {
            "name": "root",
            "type": "System.String",
            "summary": "The returned name is 'root nn'  If root is empty, then 'Block' (localized) is used."
          }
        ],
        "returns": "An unused instance definition name string."
      },
      {
        "signature": "System.Int32 InstanceDefinitionIndex(System.Guid instanceId, System.Boolean ignoreDeletedInstanceDefinitions)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Get the index of the instance definition with a given id.",
        "since": "6.0",
        "parameters": [
          {
            "name": "instanceId",
            "type": "System.Guid",
            "summary": "Unique id of the instance definition to search for"
          },
          {
            "name": "ignoreDeletedInstanceDefinitions",
            "type": "System.Boolean",
            "summary": "True means don't search deleted instance definitions."
          }
        ],
        "returns": "index > -1 if instance definition was found."
      },
      {
        "signature": "System.Boolean MakeSourcePathRelative(InstanceDefinition idef, System.Boolean relative, System.Boolean quiet)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Obsolete method that always returns false. Marks the source path for a linked instance definition as relative or absolute.",
        "since": "5.0",
        "deprecated": "6.0",
        "obsolete": "Source paths are always absolute at runtime. They cannot be changed.",
        "parameters": [
          {
            "name": "idef",
            "type": "InstanceDefinition",
            "summary": "The instance definition to be marked."
          },
          {
            "name": "relative",
            "type": "System.Boolean",
            "summary": "If true, the path should be considered as relative.  \nIf false, the path should be considered as absolute."
          },
          {
            "name": "quiet",
            "type": "System.Boolean",
            "summary": "If true, then message boxes about erroneous parameters will not be shown."
          }
        ],
        "returns": "True if the instance definition could be modified."
      },
      {
        "signature": "System.Boolean Modify(InstanceDefinition idef, System.String newName, System.String newDescription, System.Boolean quiet)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Modifies the instance definition name and description. Does not change instance definition ID or geometry.",
        "since": "5.0",
        "parameters": [
          {
            "name": "idef",
            "type": "InstanceDefinition",
            "summary": "The instance definition to be modified."
          },
          {
            "name": "newName",
            "type": "System.String",
            "summary": "The new name."
          },
          {
            "name": "newDescription",
            "type": "System.String",
            "summary": "The new description string."
          },
          {
            "name": "quiet",
            "type": "System.Boolean",
            "summary": "If false, information message boxes pop up when illegal changes are attempted."
          }
        ],
        "returns": "True if successful."
      },
      {
        "signature": "System.Boolean Modify(InstanceDefinition idef, System.String newName, System.String newDescription, System.String newUrl, System.String newUrlTag, System.Boolean quiet)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Modifies the instance definition name, description, and url. Does not change instance definition ID or geometry.",
        "since": "7.16",
        "parameters": [
          {
            "name": "idef",
            "type": "InstanceDefinition",
            "summary": "The instance definition to be modified."
          },
          {
            "name": "newName",
            "type": "System.String",
            "summary": "The new name."
          },
          {
            "name": "newDescription",
            "type": "System.String",
            "summary": "The new description string."
          },
          {
            "name": "newUrl",
            "type": "System.String",
            "summary": "The new URL or hyperlink."
          },
          {
            "name": "newUrlTag",
            "type": "System.String",
            "summary": "The new description of the URL or hyperlink."
          },
          {
            "name": "quiet",
            "type": "System.Boolean",
            "summary": "If false, information message boxes pop up when illegal changes are attempted."
          }
        ],
        "returns": "True if successful."
      },
      {
        "signature": "System.Boolean Modify(System.Int32 idefIndex, System.String newName, System.String newDescription, System.Boolean quiet)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Modifies the instance definition name and description. Does not change instance definition ID or geometry.",
        "since": "5.0",
        "parameters": [
          {
            "name": "idefIndex",
            "type": "System.Int32",
            "summary": "The index of the instance definition to be modified."
          },
          {
            "name": "newName",
            "type": "System.String",
            "summary": "The new name."
          },
          {
            "name": "newDescription",
            "type": "System.String",
            "summary": "The new description string."
          },
          {
            "name": "quiet",
            "type": "System.Boolean",
            "summary": "If false, information message boxes pop up when illegal changes are attempted."
          }
        ],
        "returns": "True if successful."
      },
      {
        "signature": "System.Boolean Modify(System.Int32 idefIndex, System.String newName, System.String newDescription, System.String newUrl, System.String newUrlTag, System.Boolean quiet)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Modifies the instance definition name, description, and url. Does not change instance definition ID or geometry.",
        "since": "7.16",
        "parameters": [
          {
            "name": "idefIndex",
            "type": "System.Int32",
            "summary": "The index of the instance definition to be modified."
          },
          {
            "name": "newName",
            "type": "System.String",
            "summary": "The new name."
          },
          {
            "name": "newDescription",
            "type": "System.String",
            "summary": "The new description string."
          },
          {
            "name": "newUrl",
            "type": "System.String",
            "summary": "The new URL or hyperlink."
          },
          {
            "name": "newUrlTag",
            "type": "System.String",
            "summary": "The new description of the URL or hyperlink."
          },
          {
            "name": "quiet",
            "type": "System.Boolean",
            "summary": "If false, information message boxes pop up when illegal changes are attempted."
          }
        ],
        "returns": "True if successful."
      },
      {
        "signature": "System.Boolean Modify(System.Int32 idefIndex, UserData userData, System.Boolean quiet)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Modifies the instance definition user data. Does not change instance definition ID or geometry.",
        "since": "8.10",
        "parameters": [
          {
            "name": "idefIndex",
            "type": "System.Int32",
            "summary": "The index of the instance definition to be modified."
          },
          {
            "name": "userData",
            "type": "UserData",
            "summary": "The user data to replace."
          },
          {
            "name": "quiet",
            "type": "System.Boolean",
            "summary": "If false, information message boxes pop up when illegal changes are attempted."
          }
        ],
        "returns": "True if successful."
      },
      {
        "signature": "System.Boolean ModifyGeometry(System.Int32 idefIndex, GeometryBase newGeometry, ObjectAttributes newAttributes)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "System.Boolean ModifyGeometry(System.Int32 idefIndex, IEnumerable<GeometryBase> newGeometry, IEnumerable<ObjectAttributes> newAttributes)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Modifies the instance definition geometry and replaces all references to the current definition with references to the new definition.",
        "since": "5.0",
        "parameters": [
          {
            "name": "idefIndex",
            "type": "System.Int32",
            "summary": "The index of the instance definition to be modified."
          },
          {
            "name": "newGeometry",
            "type": "IEnumerable<GeometryBase>",
            "summary": "The new geometry."
          },
          {
            "name": "newAttributes",
            "type": "IEnumerable<ObjectAttributes>",
            "summary": "The new attributes."
          }
        ],
        "returns": "True if operation succeeded."
      },
      {
        "signature": "System.Boolean ModifyGeometry(System.Int32 idefIndex, IEnumerable<GeometryBase> newGeometry)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "System.Boolean ModifyInsertionPlane(System.Int32 idefIndex, Plane plane)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Modifies the insertion plane of an instance definition. The definition's geometry is re-origined so that the supplied plane becomes the new insertion plane - its origin is the new insertion point and its axes become the definition's axes. Existing instance references are not modified, so they will appear to move. Only embedded instance definitions are supported; the function returns False for linked definitions.",
        "since": "9.0",
        "parameters": [
          {
            "name": "idefIndex",
            "type": "System.Int32",
            "summary": "The index of the instance definition to be modified."
          },
          {
            "name": "plane",
            "type": "Plane",
            "summary": "The new insertion plane, in the definition's current coordinates."
          }
        ],
        "returns": "True if operation succeeded."
      },
      {
        "signature": "System.Boolean ModifyInsertionPoint(System.Int32 idefIndex, Point3d point)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Modifies the insertion point of an instance definition. The definition's geometry is re-origined so that the supplied point becomes the new insertion point - the point that aligns with the insertion location when the block is inserted. Existing instance references are not modified, so they will appear to move. Only embedded instance definitions are supported; the function returns False for linked definitions.",
        "since": "9.0",
        "parameters": [
          {
            "name": "idefIndex",
            "type": "System.Int32",
            "summary": "The index of the instance definition to be modified."
          },
          {
            "name": "point",
            "type": "Point3d",
            "summary": "The new insertion point, in the definition's current coordinates."
          }
        ],
        "returns": "True if operation succeeded."
      },
      {
        "signature": "System.Boolean ModifySourceArchive(System.Int32 idefIndex, FileReference sourceArchive, InstanceDefinitionUpdateType updateType, System.Boolean quiet)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "If the instance definition is linked or embedded, use SetSource to specify the source archive.",
        "since": "6.0",
        "parameters": [
          {
            "name": "idefIndex",
            "type": "System.Int32",
            "summary": "The index of the instance definition to be modified."
          },
          {
            "name": "sourceArchive",
            "type": "FileReference",
            "summary": "The new source archive file name."
          },
          {
            "name": "updateType",
            "type": "InstanceDefinitionUpdateType",
            "summary": ""
          },
          {
            "name": "quiet",
            "type": "System.Boolean",
            "summary": "If true, then message boxes about erroneous parameters will not be shown."
          }
        ],
        "returns": "Returns True if the definition was successfully modified otherwise returns false."
      },
      {
        "signature": "System.Boolean ModifySourceArchive(System.Int32 idefIndex, System.String sourceArchive, InstanceDefinitionUpdateType updateType, System.Boolean quiet)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "If the instance definition is linked or embedded, use SetSource to specify the source archive.",
        "since": "6.0",
        "deprecated": "6.0",
        "obsolete": "Use the overload taking a FileReference.",
        "parameters": [
          {
            "name": "idefIndex",
            "type": "System.Int32",
            "summary": "The index of the instance definition to be modified."
          },
          {
            "name": "sourceArchive",
            "type": "System.String",
            "summary": "The new source archive file name."
          },
          {
            "name": "updateType",
            "type": "InstanceDefinitionUpdateType",
            "summary": ""
          },
          {
            "name": "quiet",
            "type": "System.Boolean",
            "summary": "If true, then message boxes about erroneous parameters will not be shown."
          }
        ],
        "returns": "Returns True if the definition was successfully modified otherwise returns false."
      },
      {
        "signature": "System.Boolean Purge(System.Int32 idefIndex)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Purges an instance definition and its definition geometry.",
        "since": "5.9",
        "parameters": [
          {
            "name": "idefIndex",
            "type": "System.Int32",
            "summary": "zero based index of instance definition to delete. This must be in the range 0 <= idefIndex < InstanceDefinitionTable.Count."
          }
        ],
        "returns": "True if successful. False if the instance definition cannot be purged because it is in use by reference objects or undo information."
      },
      {
        "signature": "System.Int32 PurgeUnused()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Purges any unused instance definitions.",
        "since": "9.0",
        "returns": "The number of unused instance definitions that were purged."
      },
      {
        "signature": "System.Boolean RefreshLinkedBlock(InstanceDefinition definition)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Reload linked block definitions and update the Rhino display.",
        "since": "6.0",
        "parameters": [
          {
            "name": "definition",
            "type": "InstanceDefinition",
            "summary": "Instance definition to reload."
          }
        ],
        "returns": "Returns True if the linked file was successfully read and updated."
      },
      {
        "signature": "System.Boolean Undelete(System.Int32 idefIndex)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Undeletes an instance definition that has been deleted by Delete()",
        "since": "5.9",
        "parameters": [
          {
            "name": "idefIndex",
            "type": "System.Int32",
            "summary": "zero based index of instance definition to delete. This must be in the range 0 <= idefIndex < InstanceDefinitionTable.Count."
          }
        ],
        "returns": "True if successful"
      },
      {
        "signature": "System.Boolean UndoModify(System.Int32 idefIndex)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Restores the instance definition to its previous state, if the instance definition has been modified and the modification can be undone.",
        "since": "5.0",
        "parameters": [
          {
            "name": "idefIndex",
            "type": "System.Int32",
            "summary": "The index of the instance definition to be restored."
          }
        ],
        "returns": "True if operation succeeded."
      },
      {
        "signature": "System.Boolean UpdateLinkedInstanceDefinition(System.Int32 idefIndex, System.String filename, System.Boolean updateNestedLinks, System.Boolean quiet)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Read the objects from a file and use them as the instance's definition geometry.",
        "since": "5.9",
        "parameters": [
          {
            "name": "idefIndex",
            "type": "System.Int32",
            "summary": "zero based index of instance definition to delete. This must be in the range 0 <= idefIndex < InstanceDefinitionTable.Count."
          },
          {
            "name": "filename",
            "type": "System.String",
            "summary": "name of file (can be any type of file that Rhino or a plug-in can read)"
          },
          {
            "name": "updateNestedLinks",
            "type": "System.Boolean",
            "summary": "If True and the instance definition references to a linked instance definition, that needs to be updated, then the nested definition is also updated. If false, nested updates are skipped."
          },
          {
            "name": "quiet",
            "type": "System.Boolean",
            "summary": ""
          }
        ]
      }
    ]
  },
  {
    "namespace": "Rhino.DocObjects.Tables",
    "name": "InstanceDefinitionTableEventArgs",
    "dataType": "class",
    "baseclass": "EventArgs",
    "properties": [
      {
        "signature": "RhinoDoc Document",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.3",
        "property": ["get"]
      },
      {
        "signature": "InstanceDefinitionTableEventType EventType",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.3",
        "property": ["get"]
      },
      {
        "signature": "int InstanceDefinitionIndex",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.3",
        "property": ["get"]
      },
      {
        "signature": "InstanceDefinition NewState",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.3",
        "property": ["get"]
      },
      {
        "signature": "InstanceDefinitionGeometry OldState",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.3",
        "property": ["get"]
      }
    ]
  },
  {
    "namespace": "Rhino.DocObjects.Tables",
    "name": "InstanceDefinitionTableEventType",
    "dataType": "enum",
    "since": "5.3",
    "values": [
      {
        "signature": "Added = 0",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Deleted = 1",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Undeleted = 2",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Modified = 3",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Sorted = 4",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "InstanceDefinitionTable.Sort() potentially changed sort order."
      }
    ]

  },
  {
    "namespace": "Rhino.DocObjects.Tables",
    "name": "LayerTable",
    "dataType": "class",
    "baseclass": "RhinoDocCommonTable<Layer>",
    "interfaces": ["ICollection<Layer>"],
    "properties": [
      {
        "signature": "int ActiveCount",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns number of layers in the layer table, excluding deleted layers.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "ModelComponentType ComponentType",
        "modifiers": ["public", "override"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "int Count",
        "modifiers": ["public", "override"],
        "protected": false,
        "virtual": false,
        "summary": "Returns number of layers in the layer table, including deleted layers.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "Layer CurrentLayer",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "At all times, there is a \"current\" layer. Unless otherwise specified, new objects are assigned to the current layer. The current layer is never locked, hidden, or deleted.  Returns reference to the current layer. Note that this reference may become invalid after a call to AddLayer().",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "int CurrentLayerIndex",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "At all times, there is a \"current\" layer.  Unless otherwise specified, new objects are assigned to the current layer. The current layer is never locked, hidden, or deleted. Returns: Zero based layer table index of the current layer.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "RhinoDoc Document",
        "modifiers": ["public", "new"],
        "protected": false,
        "virtual": false,
        "summary": "Document that owns this table.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "Layer this[int index]",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Conceptually, the layer table is an array of layers. The operator[] can be used to get individual layers. A layer is either active or deleted and this state is reported by Layer.IsDeleted."
      }
    ],
    "methods": [
      {
        "signature": "System.Int32 Add()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Adds a new layer with default definition to the layer table.",
        "since": "5.0",
        "returns": "index of new layer."
      },
      {
        "signature": "System.Int32 Add(Layer layer)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Adds a new layer with specified definition to the layer table.",
        "since": "5.0",
        "parameters": [
          {
            "name": "layer",
            "type": "Layer",
            "summary": "definition of new layer. The information in layer is copied. If layer.Name is empty the a unique name of the form \"Layer 01\" will be automatically created."
          }
        ],
        "returns": ">=0 index of new layer -1  layer not added because a layer with that name already exists."
      },
      {
        "signature": "System.Int32 Add(System.String layerName, System.Drawing.Color layerColor)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Adds a new layer with specified definition to the layer table.",
        "since": "5.0",
        "parameters": [
          {
            "name": "layerName",
            "type": "System.String",
            "summary": "Name for new layer. Cannot be a None or zero-length string."
          },
          {
            "name": "layerColor",
            "type": "System.Drawing.Color",
            "summary": "Color of new layer. Alpha components will be ignored."
          }
        ],
        "returns": ">=0 index of new layer -1  layer not added because a layer with that name already exists."
      },
      {
        "signature": "System.Int32 AddPath(System.String layerPath, System.Drawing.Color layerColor)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Adds all of the layer in the specified layer path, beginning with the root. Layer paths contain one or more valid layers names, with each name separated by <b>ModelComponent.NamePathSeparator</b> . For example, \"Grandfather::Father::Son\".",
        "since": "8.0",
        "parameters": [
          {
            "name": "layerPath",
            "type": "System.String",
            "summary": "The layer path."
          },
          {
            "name": "layerColor",
            "type": "System.Drawing.Color",
            "summary": "The color of newly created layers. The colors of layers that already exist will not be changed."
          }
        ],
        "returns": "The index of the last layer created if successful, <b>RhinoMath.UnsetIntIndex</b> on failure."
      },
      {
        "signature": "System.Int32 AddPath(System.String layerPath)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Adds all of the layer in the specified layer path, beginning with the root. Layer paths contain one or more valid layers names, with each name separated by <b>ModelComponent.NamePathSeparator</b> . For example, \"Grandfather::Father::Son\".",
        "since": "8.0",
        "parameters": [
          {
            "name": "layerPath",
            "type": "System.String",
            "summary": "The layer path."
          }
        ],
        "returns": "The index of the last layer created if successful, <b>RhinoMath.UnsetIntIndex</b> on failure."
      },
      {
        "signature": "System.Int32 AddReferenceLayer()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Adds a new reference layer with default definition to the layer table. Reference layers are not saved in files.",
        "since": "5.0",
        "returns": "index of new layer."
      },
      {
        "signature": "System.Int32 AddReferenceLayer(Layer layer)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Adds a new reference layer with specified definition to the layer table Reference layers are not saved in files.",
        "since": "5.0",
        "parameters": [
          {
            "name": "layer",
            "type": "Layer",
            "summary": "definition of new layer. The information in layer is copied. If layer.Name is empty the a unique name of the form \"Layer 01\" will be automatically created."
          }
        ],
        "returns": ">=0 index of new layer -1  layer not added because a layer with that name already exists."
      },
      {
        "signature": "System.Int32 CreateLayer(Layer newLayer, LayerType layerType, System.UInt32 worksessionReferenceModelSerialNumber, System.UInt32 linkedInstanceDefinitionSerialNumber)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Basic tool used by the add layer methods.",
        "since": "8.6",
        "parameters": [
          {
            "name": "newLayer",
            "type": "Layer",
            "summary": "Settings for new layer. These are copied to the layer table entry and any user data on layer is moved to the layer table entry."
          },
          {
            "name": "layerType",
            "type": "LayerType",
            "summary": "Type type of layer to create."
          },
          {
            "name": "worksessionReferenceModelSerialNumber",
            "type": "System.UInt32",
            "summary": "Worksession reference model serial number, where: 0: Layer is not a reference layer. 1: Layer is a reference layer but not part of a worksession reference file. 2-1000: Reserved for future use. >1000: Worksession reference model serial number."
          },
          {
            "name": "linkedInstanceDefinitionSerialNumber",
            "type": "System.UInt32",
            "summary": "Linked instance definition serial number, where: 0: Layer is not from a liked instance definition. 1-1000: Reserved for future use. >1000: Linked instance definition serial number."
          }
        ],
        "returns": "The index of the last layer created if successful, <b>RhinoMath.UnsetIntIndex</b> on failure."
      },
      {
        "signature": "System.Int32 Delete(IEnumerable<int> layerIndices, System.Boolean quiet)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Deletes layers.",
        "since": "8.0",
        "parameters": [
          {
            "name": "layerIndices",
            "type": "IEnumerable<int>",
            "summary": "An enumeration containing the indices of the layers to delete."
          },
          {
            "name": "quiet",
            "type": "System.Boolean",
            "summary": "If true, no warning message boxes will appear."
          }
        ],
        "returns": "the number of layers that were deleted."
      },
      {
        "signature": "System.Boolean Delete(Layer layer, System.Boolean quiet)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Deletes layer.",
        "since": "6.0",
        "parameters": [
          {
            "name": "layer",
            "type": "Layer",
            "summary": "Layer to be deleted."
          },
          {
            "name": "quiet",
            "type": "System.Boolean",
            "summary": "If true, no warning message box appears if a layer the layer cannot be deleted because it is the current layer or it contains active geometry."
          }
        ],
        "returns": "True if successful. False if layerIndex is out of range or the layer cannot be deleted because it is the current layer or because it layer contains active geometry."
      },
      {
        "signature": "System.Boolean Delete(Layer layer)",
        "modifiers": ["public", "override"],
        "protected": false,
        "virtual": false,
        "summary": "Deletes layer.",
        "since": "6.0",
        "parameters": [
          {
            "name": "layer",
            "type": "Layer",
            "summary": "Layer to be deleted."
          }
        ],
        "returns": "True if successful. False if layerIndex is out of range or the layer cannot be deleted because it is the current layer or because it layer contains active geometry."
      },
      {
        "signature": "System.Boolean Delete(System.Guid layerId, System.Boolean quiet)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Deletes layer.",
        "since": "6.0",
        "parameters": [
          {
            "name": "layerId",
            "type": "System.Guid",
            "summary": "Id of the layer to be deleted."
          },
          {
            "name": "quiet",
            "type": "System.Boolean",
            "summary": "If true, no warning message box appears if a layer the layer cannot be deleted because it is the current layer or it contains active geometry."
          }
        ],
        "returns": "True if successful. False if layerIndex is out of range or the layer cannot be deleted because it is the current layer or because it layer contains active geometry."
      },
      {
        "signature": "System.Boolean Delete(System.Int32 layerIndex, System.Boolean quiet)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Deletes layer.",
        "since": "5.0",
        "parameters": [
          {
            "name": "layerIndex",
            "type": "System.Int32",
            "summary": "zero based index of layer to delete. This must be in the range 0 <= layerIndex < LayerTable.Count."
          },
          {
            "name": "quiet",
            "type": "System.Boolean",
            "summary": "If true, no warning message box appears if a layer the layer cannot be deleted because it is the current layer or it contains active geometry."
          }
        ],
        "returns": "True if successful. False if layerIndex is out of range or the layer cannot be deleted because it is the current layer or because it layer contains active geometry."
      },
      {
        "signature": "System.Int32[] Duplicate(IEnumerable<int> layerIndices, System.Boolean duplicateObjects, System.Boolean duplicateSublayers)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Duplicates, or copies, one or more layers. Duplicated layers are added to the document.",
        "since": "6.18",
        "parameters": [
          {
            "name": "layerIndices",
            "type": "IEnumerable<int>",
            "summary": "The indices of layers to duplicate."
          },
          {
            "name": "duplicateObjects",
            "type": "System.Boolean",
            "summary": "If true, then layer objects will also be duplicated and added to the document."
          },
          {
            "name": "duplicateSublayers",
            "type": "System.Boolean",
            "summary": "If true, then all sub-layers of the layer will be duplicated."
          }
        ],
        "returns": "The indices of the newly added layers if successful, an empty array on failure."
      },
      {
        "signature": "System.Int32[] Duplicate(System.Int32 layerIndex, System.Boolean duplicateObjects, System.Boolean duplicateSublayers)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Duplicates, or copies, a layer. Duplicated layers are added to the document.",
        "since": "6.18",
        "parameters": [
          {
            "name": "layerIndex",
            "type": "System.Int32",
            "summary": "The index of the layer to duplicate."
          },
          {
            "name": "duplicateObjects",
            "type": "System.Boolean",
            "summary": "If true, then layer objects will also be duplicated and added to the document."
          },
          {
            "name": "duplicateSublayers",
            "type": "System.Boolean",
            "summary": "If true, then all sub-layers of the layer will be duplicated."
          }
        ],
        "returns": "The indices of the newly added layers if successful, an empty array on failure."
      },
      {
        "signature": "System.Int32 Find(System.Guid layerId, System.Boolean ignoreDeletedLayers, System.Int32 notFoundReturnValue)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Finds a layer with a matching ID.",
        "since": "6.0",
        "parameters": [
          {
            "name": "layerId",
            "type": "System.Guid",
            "summary": "A valid layer ID."
          },
          {
            "name": "ignoreDeletedLayers",
            "type": "System.Boolean",
            "summary": "If true, deleted layers are not checked."
          },
          {
            "name": "notFoundReturnValue",
            "type": "System.Int32",
            "summary": "Should be -1 to get the index of the OpenNURBS default layer, or <b>RhinoMath.UnsetIntIndex</b> to get an always-out-of-bound value."
          }
        ],
        "returns": "The index of the found layer, or notFoundReturnValue."
      },
      {
        "signature": "System.Int32 Find(System.Guid layerId, System.Boolean ignoreDeletedLayers)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Finds a layer with a matching ID.",
        "since": "5.0",
        "deprecated": "6.0",
        "obsolete": "notFoundReturnValue should be specified. Add a third argument, its previous value was -1 but consider RhinoMath.UnsetIntIndex.",
        "parameters": [
          {
            "name": "layerId",
            "type": "System.Guid",
            "summary": "A valid layer ID."
          },
          {
            "name": "ignoreDeletedLayers",
            "type": "System.Boolean",
            "summary": "If true, deleted layers are not checked."
          }
        ],
        "returns": ">=0 index of the layer with the given name -1  no layer has the given name."
      },
      {
        "signature": "System.Int32 Find(System.Guid parentId, System.String layerName, System.Boolean ignoreDeletedLayers)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Finds a layer with a given name and matching parent ID.",
        "since": "6.0",
        "deprecated": "6.0",
        "obsolete": "ignoreDeletedLayers is no longer supported for research by name. Use the overload with notFoundReturnValue ",
        "parameters": [
          {
            "name": "parentId",
            "type": "System.Guid",
            "summary": "A valid layer ID."
          },
          {
            "name": "layerName",
            "type": "System.String",
            "summary": "name of layer to search for. The search ignores case."
          },
          {
            "name": "ignoreDeletedLayers",
            "type": "System.Boolean",
            "summary": "If true, deleted layers are not checked. NOT SUPPORTED FOR NAME SEARCH, only for Guids."
          }
        ],
        "returns": ">=0 index of the layer with the given name -1  no layer has the given name."
      },
      {
        "signature": "System.Int32 Find(System.Guid parentId, System.String layerName, System.Int32 notFoundReturnValue)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Finds a layer with a given name and matching parent ID.",
        "since": "6.0",
        "parameters": [
          {
            "name": "parentId",
            "type": "System.Guid",
            "summary": "A valid layer ID."
          },
          {
            "name": "layerName",
            "type": "System.String",
            "summary": "name of layer to search for. The search ignores case."
          },
          {
            "name": "notFoundReturnValue",
            "type": "System.Int32",
            "summary": "Should be -1 to get the index of the OpenNURBS default layer, or <b>RhinoMath.UnsetIntIndex</b> to get an always-out-of-bound value."
          }
        ],
        "returns": "The index of the found layer, or notFoundReturnValue."
      },
      {
        "signature": "System.Int32 Find(System.String layerName, System.Boolean ignoreDeletedLayers)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Finds the layer with a given name. If multiple layers exist that have the same name, the first match layer index will be returned.  \nDeleted layers have no name.",
        "since": "5.0",
        "deprecated": "6.0",
        "obsolete": "ignoreDeletedLayers is no longer supported for research by name. Use the overload with notFoundReturnValue ",
        "parameters": [
          {
            "name": "layerName",
            "type": "System.String",
            "summary": "name of layer to search for. The search ignores case."
          },
          {
            "name": "ignoreDeletedLayers",
            "type": "System.Boolean",
            "summary": "True means don't search deleted layers."
          }
        ],
        "returns": "index of the layer with the given name. If no layer is found, the index of the default layer, -1, is returned."
      },
      {
        "signature": "System.Int32 FindByFullPath(System.String layerPath, System.Boolean ignoreDeletedLayers)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0",
        "deprecated": "6.0",
        "obsolete": "ignoreDeletedLayers is no longer supported for research by name. Use the overload with notFoundReturnValue "
      },
      {
        "signature": "System.Int32 FindByFullPath(System.String layerPath, System.Int32 notFoundReturnValue)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Searches for a layer using the fully qualified name, that includes ancestors.  \nDeleted layers have no name.",
        "since": "6.0",
        "parameters": [
          {
            "name": "layerPath",
            "type": "System.String",
            "summary": "The full layer name."
          },
          {
            "name": "notFoundReturnValue",
            "type": "System.Int32",
            "summary": "Should be -1 to get the index of the OpenNURBS default layer, or <b>RhinoMath.UnsetIntIndex</b> to get an always-out-of-bound value."
          }
        ],
        "returns": "The index of the found layer, or notFoundReturnValue."
      },
      {
        "signature": "Layer FindIndex(System.Int32 index)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Retrieves a Layer object based on Index. This search type of search is discouraged. We are moving towards using only IDs for all tables.",
        "since": "6.0",
        "parameters": [
          {
            "name": "index",
            "type": "System.Int32",
            "summary": "The index to search for."
          }
        ],
        "returns": "A Layer object, or None if none was found."
      },
      {
        "signature": "Layer FindName(System.String layerName, System.Int32 startIndex)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Finds the next layer that has an index equal or higher than the searched value.  \nSearch in case-insensitive.",
        "since": "6.0",
        "parameters": [
          {
            "name": "layerName",
            "type": "System.String",
            "summary": "The layer to search for."
          },
          {
            "name": "startIndex",
            "type": "System.Int32",
            "summary": "If you specify RhinoMath.UnsetIntIndex, then also default layers will be included. This is the first index that will be tested."
          }
        ],
        "returns": "A layer, or null."
      },
      {
        "signature": "Layer FindName(System.String layerName)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Finds the layer with a given name. If multiple layers exist that have the same name, the first match layer index will be returned.  \nDeleted layers have no name.  \nThe default layer is NOT included in the search. If required, use the overload with startIndex input.",
        "since": "6.0",
        "parameters": [
          {
            "name": "layerName",
            "type": "System.String",
            "summary": "name of layer to search for. The search ignores case."
          }
        ],
        "returns": "A layer, or null."
      },
      {
        "signature": "Layer FindNameHash(NameHash nameHash)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Finds a Layer given its name hash.",
        "since": "6.0",
        "parameters": [
          {
            "name": "nameHash",
            "type": "NameHash",
            "summary": "The name hash of the Layer to be searched."
          }
        ],
        "returns": "An Layer, or None on error."
      },
      {
        "signature": "System.Int32 FindNext(System.Int32 index, System.String layerName, System.Boolean ignoreDeletedLayers)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0",
        "deprecated": "6.0",
        "obsolete": "ignoreDeletedLayers is no longer supported for research by name. Use the overload with notFoundReturnValue "
      },
      {
        "signature": "Layer FindNext(System.Int32 index, System.String layerName)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Use FindName(name, index).",
        "since": "6.0",
        "parameters": [
          {
            "name": "index",
            "type": "System.Int32",
            "summary": "Do not use."
          },
          {
            "name": "layerName",
            "type": "System.String",
            "summary": "Do not use."
          }
        ],
        "returns": "Do not use."
      },
      {
        "signature": "System.Boolean ForceLayerVisible(System.Guid layerId)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Makes a layer and all of its parent layers visible.",
        "since": "5.0",
        "parameters": [
          {
            "name": "layerId",
            "type": "System.Guid",
            "summary": "The layer ID to be made visible."
          }
        ],
        "returns": "True if the operation succeeded."
      },
      {
        "signature": "System.Boolean ForceLayerVisible(System.Int32 layerIndex)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Makes a layer and all of its parent layers visible.",
        "since": "5.0",
        "parameters": [
          {
            "name": "layerIndex",
            "type": "System.Int32",
            "summary": "The layer index to be made visible."
          }
        ],
        "returns": "True if the operation succeeded."
      },
      {
        "signature": "IEnumerator<Layer> GetEnumerator()",
        "modifiers": ["public", "override"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "System.Boolean GetSelected(out List<int> layerIndices)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns the indices of layers that are selected on the Layer user interface.",
        "parameters": [
          {
            "name": "layerIndices",
            "type": "List<int>",
            "summary": "The indices of selected layers."
          }
        ],
        "returns": "True if the layer user interface is visible, False otherwise."
      },
      {
        "signature": "System.Int32[] GetSorted()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets an array of layer indices that are sorted by the values of <b>Layer.SortIndex</b> .",
        "since": "7.34",
        "returns": "An array of layer indices."
      },
      {
        "signature": "System.String GetUnusedLayerName()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the next unused layer name used as default when creating new layers.",
        "since": "6.0",
        "returns": "An unused layer name string."
      },
      {
        "signature": "System.String GetUnusedLayerName(System.Boolean ignoreDeleted)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the next unused layer name used as default when creating new layers.",
        "since": "5.0",
        "deprecated": "6.0",
        "obsolete": "'ignoreDeleted' is now redundant. Layers are now permanently removed. Use the overload with this argument.",
        "parameters": [
          {
            "name": "ignoreDeleted",
            "type": "System.Boolean",
            "summary": "If this is True then Rhino may use a name used by a deleted layer."
          }
        ],
        "returns": "An unused layer name string."
      },
      {
        "signature": "System.Boolean Modify(Layer newSettings, System.Guid layerId, System.Boolean quiet)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Modifies layer settings.",
        "since": "6.0",
        "parameters": [
          {
            "name": "newSettings",
            "type": "Layer",
            "summary": "This information is copied."
          },
          {
            "name": "layerId",
            "type": "System.Guid",
            "summary": "Id of layer."
          },
          {
            "name": "quiet",
            "type": "System.Boolean",
            "summary": "if false, information message boxes pop up when illegal changes are attempted."
          }
        ],
        "returns": "True if successful. False if layerIndex is out of range or the settings attempt to lock or hide the current layer."
      },
      {
        "signature": "System.Boolean Modify(Layer newSettings, System.Int32 layerIndex, System.Boolean quiet)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Modifies layer settings.",
        "since": "5.0",
        "parameters": [
          {
            "name": "newSettings",
            "type": "Layer",
            "summary": "This information is copied."
          },
          {
            "name": "layerIndex",
            "type": "System.Int32",
            "summary": "zero based index of layer to set.  This must be in the range 0 <= layerIndex < LayerTable.Count."
          },
          {
            "name": "quiet",
            "type": "System.Boolean",
            "summary": "if false, information message boxes pop up when illegal changes are attempted."
          }
        ],
        "returns": "True if successful. False if layerIndex is out of range or the settings attempt to lock or hide the current layer."
      },
      {
        "signature": "System.Boolean Purge(System.Guid layerId, System.Boolean quiet)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Deletes a layer and all geometry objects on a layer.",
        "since": "6.0",
        "parameters": [
          {
            "name": "layerId",
            "type": "System.Guid",
            "summary": "Id of the layer to purge."
          },
          {
            "name": "quiet",
            "type": "System.Boolean",
            "summary": "If true, no warning message box appears if a layer the layer cannot be deleted because it is the current layer."
          }
        ],
        "returns": "True if successful. False if layerIndex is out of range or the layer cannot be deleted because it is the current layer."
      },
      {
        "signature": "System.Boolean Purge(System.Int32 layerIndex, System.Boolean quiet)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Deletes a layer and all geometry objects on a layer",
        "since": "5.5",
        "parameters": [
          {
            "name": "layerIndex",
            "type": "System.Int32",
            "summary": "zero based index of layer to delete. This must be in the range 0 <= layerIndex < LayerTable.Count."
          },
          {
            "name": "quiet",
            "type": "System.Boolean",
            "summary": "If true, no warning message box appears if a layer the layer cannot be deleted because it is the current layer."
          }
        ],
        "returns": "True if successful. False if layerIndex is out of range or the layer cannot be deleted because it is the current layer."
      },
      {
        "signature": "System.Int32 PurgeUnused()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Purges any unused layers.",
        "since": "9.0",
        "returns": "The number of unused layers that were purged."
      },
      {
        "signature": "System.Boolean Select(IEnumerable<int> layerIndices, System.Boolean bDeselect)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Selects layers in the Layer user interface.",
        "since": "6.0",
        "parameters": [
          {
            "name": "layerIndices",
            "type": "IEnumerable<int>",
            "summary": "The indices of layers to select."
          },
          {
            "name": "bDeselect",
            "type": "System.Boolean",
            "summary": "If true, then any previously selected layers will be unselected."
          }
        ],
        "returns": "True if the layer user interface is visible, False otherwise."
      },
      {
        "signature": "System.Boolean SetCurrentLayerIndex(System.Int32 layerIndex, System.Boolean quiet)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "At all times, there is a \"current\" layer. Unless otherwise specified, new objects are assigned to the current layer. The current layer is never locked, hidden, or deleted.",
        "since": "5.0",
        "parameters": [
          {
            "name": "layerIndex",
            "type": "System.Int32",
            "summary": "Value for new current layer. 0 <= layerIndex < LayerTable.Count. The layer's mode is automatically set to NormalMode."
          },
          {
            "name": "quiet",
            "type": "System.Boolean",
            "summary": "if true, then no warning message box pops up if the current layer request can't be satisfied."
          }
        ],
        "returns": "True if current layer index successfully set."
      },
      {
        "signature": "System.Void Sort(IEnumerable<int> layerIndices)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Updates the layer sort order",
        "since": "8.0",
        "parameters": [
          {
            "name": "layerIndices",
            "type": "IEnumerable<int>",
            "summary": "The sort order."
          }
        ]
      },
      {
        "signature": "System.Void SortByLayerName(System.Boolean bAscending)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Sort layers, in the layer table, by their name in either ascending or descending order. This function sorts layers in the same manner as Rhino's Layers panel.",
        "since": "8.2",
    "remarks": "This function changes the value of <b>Layer.SortIndex</b> . It does not change the index order of layers in the layer table.",
        "parameters": [
          {
            "name": "bAscending",
            "type": "System.Boolean",
            "summary": "Sort in ascending (true) or descending (false) order."
          }
        ]
      },
      {
        "signature": "System.Boolean Undelete(System.Int32 layerIndex)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Undeletes a layer that has been deleted by DeleteLayer().",
        "since": "5.0",
        "parameters": [
          {
            "name": "layerIndex",
            "type": "System.Int32",
            "summary": "zero based index of layer to undelete. This must be in the range 0 <= layerIndex < LayerTable.Count."
          }
        ],
        "returns": "True if successful."
      },
      {
        "signature": "System.Boolean UndoModify(System.Guid layerId, System.UInt32 undoRecordSerialNumber)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Restores the layer to its previous state, if the layer has been modified and the modification can be undone.",
        "since": "6.0",
        "parameters": [
          {
            "name": "layerId",
            "type": "System.Guid",
            "summary": "The layer Id to be used."
          },
          {
            "name": "undoRecordSerialNumber",
            "type": "System.UInt32",
            "summary": "The undo record serial number. Pass 0 not to specify one."
          }
        ],
        "returns": "True if this layer had been modified and the modifications were undone."
      },
      {
        "signature": "System.Boolean UndoModify(System.Guid layerId)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Restores the layer to its previous state, if the layer has been modified and the modification can be undone.",
        "since": "6.0",
        "parameters": [
          {
            "name": "layerId",
            "type": "System.Guid",
            "summary": "The layer Id to be used."
          }
        ],
        "returns": "True if this layer had been modified and the modifications were undone."
      },
      {
        "signature": "System.Boolean UndoModify(System.Int32 layerIndex, System.UInt32 undoRecordSerialNumber)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Restores the layer to its previous state, if the layer has been modified and the modification can be undone.",
        "since": "5.0",
        "parameters": [
          {
            "name": "layerIndex",
            "type": "System.Int32",
            "summary": "The layer index to be used."
          },
          {
            "name": "undoRecordSerialNumber",
            "type": "System.UInt32",
            "summary": "The undo record serial number. Pass 0 not to specify one."
          }
        ],
        "returns": "True if this layer had been modified and the modifications were undone."
      },
      {
        "signature": "System.Boolean UndoModify(System.Int32 layerIndex)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Restores the layer to its previous state, if the layer has been modified and the modification can be undone.",
        "since": "5.0",
        "parameters": [
          {
            "name": "layerIndex",
            "type": "System.Int32",
            "summary": "The layer index to be used."
          }
        ],
        "returns": "True if this layer had been modified and the modifications were undone."
      }
    ]
  },
  {
    "namespace": "Rhino.DocObjects.Tables",
    "name": "LayerTable.LayerType",
    "dataType": "enum",
    "summary": "Layer types created by <b>CreateLayer</b> .",
    "since": "8.6",
    "values": [
      {
        "signature": "NormalLayer = 0",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Normal ordinary layer."
      },
      {
        "signature": "LinkedInstanceDefinitionParentLayer = 2",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Linked instance definition \"filename.3dm\" parent layer of the instance definition's layer tree."
      },
      {
        "signature": "WorkSessionParentLayer = 4",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Worksession reference model \"filename.3dm\" parent layer of the reference model's layer tree."
      }
    ]

  },
  {
    "namespace": "Rhino.DocObjects.Tables",
    "name": "LayerTableEventArgs",
    "dataType": "class",
    "baseclass": "EventArgs",
    "properties": [
      {
        "signature": "RhinoDoc Document",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "LayerTableEventType EventType",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "int LayerIndex",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "Layer NewState",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "Layer OldState",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0",
        "property": ["get"]
      }
    ]
  },
  {
    "namespace": "Rhino.DocObjects.Tables",
    "name": "LayerTableEventType",
    "dataType": "enum",
    "since": "5.0",
    "values": [
      {
        "signature": "Added = 0",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Deleted = 1",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Undeleted = 2",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Modified = 3",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Sorted = 4",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "LayerTable.Sort() potentially changed sort order."
      },
      {
        "signature": "Current = 5",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Current layer change."
      }
    ]

  },
  {
    "namespace": "Rhino.DocObjects.Tables",
    "name": "LightTable",
    "dataType": "class",
    "baseclass": "RhinoDocCommonTable<LightObject>",
    "properties": [
      {
        "signature": "ModelComponentType ComponentType",
        "modifiers": ["public", "override"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "int Count",
        "modifiers": ["public", "override"],
        "protected": false,
        "virtual": false,
        "summary": "Number of lights in the light table.  Does not include Sun or Skylight.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "LightObject DefaultLight",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the default light that Rhino uses when no other lights illuminate the scene.",
        "property": ["get"]
      },
      {
        "signature": "RhinoDoc Document",
        "modifiers": ["public", "new"],
        "protected": false,
        "virtual": false,
        "summary": "Document that owns this light table.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "Skylight Skylight",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "Sun Sun",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the Sun instance that is applied to the document.  \nIf the RDK is loaded, an instance is always returned.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "LightObject this[int index]",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false
      }
    ],
    "methods": [
      {
        "signature": "System.Int32 Add(Geometry.Light light, ObjectAttributes attributes)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "System.Int32 Add(Geometry.Light light)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "System.Boolean Delete(LightObject item)",
        "modifiers": ["public", "override"],
        "protected": false,
        "virtual": false,
        "since": "6.0"
      },
      {
        "signature": "System.Boolean Delete(System.Int32 index, System.Boolean quiet)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0"
      },
      {
        "signature": "System.Int32 Find(System.Guid id, System.Boolean ignoreDeleted)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "LightObject FindIndex(System.Int32 index)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Retrieves a  object based on Index. This search type of search is discouraged. We are moving towards using only IDs for all tables.",
        "since": "6.0",
        "parameters": [
          {
            "name": "index",
            "type": "System.Int32",
            "summary": "The index to search for."
          }
        ],
        "returns": "A  object, or None if none was found."
      },
      {
        "signature": "LightObject FindName(System.String name)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Finds the LightObject with a given name.  \nDeleted lights have no name.",
        "since": "6.0",
        "parameters": [
          {
            "name": "name",
            "type": "System.String",
            "summary": "Name to search."
          }
        ],
        "returns": "A layer. If no layer is found, None is returned."
      },
      {
        "signature": "LightObject FindNameHash(NameHash nameHash)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Finds a LightObject given its name hash.",
        "since": "6.0",
        "parameters": [
          {
            "name": "nameHash",
            "type": "NameHash",
            "summary": "The name hash of the LightObject to be searched."
          }
        ],
        "returns": "A LightObject, or None on error."
      },
      {
        "signature": "IEnumerator<LightObject> GetEnumerator()",
        "modifiers": ["public", "override"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "System.Boolean Modify(System.Guid id, Geometry.Light light)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "System.Boolean Modify(System.Int32 index, Geometry.Light light)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "System.Boolean Undelete(System.Int32 index)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Restores a light that has been deleted.",
        "since": "8.8",
        "parameters": [
          {
            "name": "index",
            "type": "System.Int32",
            "summary": "A light index to be undeleted."
          }
        ],
        "returns": "True if successful."
      }
    ]
  },
  {
    "namespace": "Rhino.DocObjects.Tables",
    "name": "LightTableEventArgs",
    "dataType": "class",
    "baseclass": "EventArgs",
    "properties": [
      {
        "signature": "RhinoDoc Document",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.3",
        "property": ["get"]
      },
      {
        "signature": "LightTableEventType EventType",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.3",
        "property": ["get"]
      },
      {
        "signature": "int LightIndex",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.3",
        "property": ["get"]
      },
      {
        "signature": "LightObject NewState",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.3",
        "property": ["get"]
      },
      {
        "signature": "Light OldState",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.3",
        "property": ["get"]
      }
    ]
  },
  {
    "namespace": "Rhino.DocObjects.Tables",
    "name": "LightTableEventType",
    "dataType": "enum",
    "since": "5.3",
    "values": [
      {
        "signature": "Added = 0",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Deleted = 1",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Undeleted = 2",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Modified = 3",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Sorted = 4",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "LightTable.Sort() potentially changed sort order."
      }
    ]

  },
  {
    "namespace": "Rhino.DocObjects.Tables",
    "name": "LinetypeTable",
    "dataType": "class",
    "baseclass": "RhinoDocCommonTable<Linetype>",
    "interfaces": ["ICollection<Linetype>"],
    "properties": [
      {
        "signature": "int ActiveCount",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns number of linetypes in the linetypes table, excluding deleted linetypes.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "string ByLayerLinetypeName",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns the text name of the by-layer linetype.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "string ByParentLinetypeName",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns the text name of the by-parent linetype.",
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "ModelComponentType ComponentType",
        "modifiers": ["public", "override"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "string ContinuousLinetypeName",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns the text name of the continuous linetype.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "int Count",
        "modifiers": ["public", "new"],
        "protected": false,
        "virtual": false,
        "summary": "Returns number of linetypes in the linetypes table, including deleted linetypes.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "Linetype CurrentLinetype",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns reference to the current linetype. Note that this reference may become invalid after a call to AddLinetype().",
        "since": "5.0",
    "remarks": "At all times, there is a \"current\" linetype. Unless otherwise specified, new objects are assigned to the current linetype. The current linetype is never deleted.",
        "property": ["get"]
      },
      {
        "signature": "int CurrentLinetypeIndex",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "At all times, there is a \"current\" linetype.  Unless otherwise specified, new objects are assigned to the current linetype. If the current linetype source is LinetypeFromLayer the object's layer's linetype is used instead.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "ObjectLinetypeSource CurrentLinetypeSource",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Source used by an object to determine its current linetype to be used by new objects.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "RhinoDoc Document",
        "modifiers": ["public", "new"],
        "protected": false,
        "virtual": false,
        "summary": "Document that owns this table.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "double LinetypeScale",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "For display in Rhino viewports, the linetypes are scaled by a single scale factor for all viewports. This is not used for printing, where all linetype patterns are scaled to print in their defined size 1:1 on the paper.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "Linetype this[int index]",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Conceptually, the linetype table is an array of linetypes. The operator[] can be used to get individual linetypes. A linetype is either active or deleted and this state is reported by Linetype.IsDeleted."
      }
    ],
    "methods": [
      {
        "signature": "System.Int32 Add(DocObjects.Linetype linetype)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Adds a new linetype with specified definition to the linetype table.",
        "since": "5.0",
        "parameters": [
          {
            "name": "linetype",
            "type": "DocObjects.Linetype",
            "summary": "Definition of new linetype.  The information in linetype is copied. If linetype.Name is empty then a unique name of the form \"Linetype 01\" will be automatically created."
          }
        ],
        "returns": "Index of newline type or -1 on error."
      },
      {
        "signature": "System.Int32 Add(System.String name, IEnumerable<double> segmentLengths)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Adds a new linetype with specified definition to the linetype table.",
        "since": "5.0",
        "parameters": [
          {
            "name": "name",
            "type": "System.String",
            "summary": "A name for the new linetype."
          },
          {
            "name": "segmentLengths",
            "type": "IEnumerable<double>",
            "summary": "Positive values are dashes, negative values are gaps."
          }
        ],
        "returns": "Index of new linetype or -1 on error."
      },
      {
        "signature": "System.Int32 AddReferenceLinetype(DocObjects.Linetype linetype)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Adds a reference linetypes that will not be saved in files.",
        "since": "5.0",
        "parameters": [
          {
            "name": "linetype",
            "type": "DocObjects.Linetype",
            "summary": "Definition of new linetype.  The information in linetype is copied. If linetype.Name is empty then a unique name of the form \"Linetype 01\" will be automatically created."
          }
        ],
        "returns": "Index of new linetype or -1 on error."
      },
      {
        "signature": "System.Boolean Delete(IEnumerable<int> indices, System.Boolean quiet)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Deletes multiple linetypes.",
        "since": "5.0",
        "parameters": [
          {
            "name": "indices",
            "type": "IEnumerable<int>",
            "summary": "An array, a list or any enumerable instance of linetype indices."
          },
          {
            "name": "quiet",
            "type": "System.Boolean",
            "summary": "If true, no warning message box appears if a linetype the linetype cannot be deleted because it is the current linetype or it contains active geometry."
          }
        ],
        "returns": "True if operation succeeded."
      },
      {
        "signature": "System.Boolean Delete(Linetype item)",
        "modifiers": ["public", "override"],
        "protected": false,
        "virtual": false,
        "since": "6.0"
      },
      {
        "signature": "System.Boolean Delete(System.Int32 index, System.Boolean quiet)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Deletes linetype.",
        "since": "5.0",
        "parameters": [
          {
            "name": "index",
            "type": "System.Int32",
            "summary": "zero based index of linetype to delete."
          },
          {
            "name": "quiet",
            "type": "System.Boolean",
            "summary": "If true, no warning message box appears if a linetype the linetype cannot be deleted because it is the current linetype or it contains active geometry."
          }
        ],
        "returns": "True if successful. False if linetypeIndex is out of range or the linetype cannot be deleted because it is the current linetype or because it linetype is referenced by active geometry."
      },
      {
        "signature": "System.Int32 Find(System.Guid id, System.Boolean ignoreDeletedLinetypes)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Finds a linetype with a matching ID.",
        "since": "5.0",
        "parameters": [
          {
            "name": "id",
            "type": "System.Guid",
            "summary": "The ID of the line type to be found."
          },
          {
            "name": "ignoreDeletedLinetypes",
            "type": "System.Boolean",
            "summary": "If true, deleted linetypes are not checked."
          }
        ],
        "returns": "If the linetype was found, the linetype index, >=0, is returned. If the linetype was not found, -1 is returned. Note, the linetype index of -1 denotes the default, or \"Continuous\" linetype."
      },
      {
        "signature": "System.Int32 Find(System.String name, System.Boolean ignoreDeletedLinetypes)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Obsolete. Use the other overload.",
        "since": "5.0",
        "deprecated": "6.0",
        "obsolete": "ignoreDeletedLinetypes is now ignored. Items are removed permanently now. Remove the second method argument.",
        "parameters": [
          {
            "name": "name",
            "type": "System.String",
            "summary": "search ignores case."
          },
          {
            "name": "ignoreDeletedLinetypes",
            "type": "System.Boolean",
            "summary": "If true, deleted linetypes are not checked."
          }
        ],
        "returns": ">=0 index of the linetype with the given name -1  no linetype has the given name."
      },
      {
        "signature": "System.Int32 Find(System.String name)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Finds the linetype with a given name.",
        "since": "6.0",
        "parameters": [
          {
            "name": "name",
            "type": "System.String",
            "summary": "The name of the linetype to find. The search ignores case."
          }
        ],
        "returns": "If the linetype was found, the linetype index, >=0, is returned. If the linetype was not found, -1 is returned. Note, the linetype index of -1 denotes the default, or \"Continuous\" linetype."
      },
      {
        "signature": "Linetype FindIndex(System.Int32 index)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Retrieves a Linetype object based on Index. This search type of search is discouraged. We are moving towards using only IDs for all tables.",
        "since": "6.0",
        "parameters": [
          {
            "name": "index",
            "type": "System.Int32",
            "summary": "The index to search for."
          }
        ],
        "returns": "A Linetype object, or None if none was found."
      },
      {
        "signature": "Linetype FindName(System.String name)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Finds the linetype with a given name.",
        "since": "6.0",
        "parameters": [
          {
            "name": "name",
            "type": "System.String",
            "summary": "he name of the linetype to find."
          }
        ],
        "returns": "The linetype. If the linetype was not found, then the default, or \"Continuous\" linetype is returned."
      },
      {
        "signature": "IEnumerator<Linetype> GetEnumerator()",
        "modifiers": ["public", "override"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "System.String GetUnusedLinetypeName()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets unused linetype name used as default when creating new linetypes.",
        "since": "6.0",
        "returns": "The unused linetype name."
      },
      {
        "signature": "System.String GetUnusedLinetypeName(System.Boolean ignoreDeleted)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Obsolete. Use the other overload. Gets unused linetype name used as default when creating new linetypes.",
        "since": "5.0",
        "deprecated": "6.0",
        "obsolete": "ignoreDeleted is now ignored. Items are removed permanently now. Remove the second method argument.",
        "parameters": [
          {
            "name": "ignoreDeleted",
            "type": "System.Boolean",
            "summary": "If this is True then a name used by a deleted linetype is allowed."
          }
        ],
        "returns": "The unused linetype name."
      },
      {
        "signature": "System.Int32 LinetypeIndexForObject(Rhino.DocObjects.RhinoObject rhinoObject)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns the effective linetype index to be used to find the linetype definition to draw an object. If an object's linetype source is LinetypeFromObject, the linetype index in the object's attributes is used. If an object's linetype source is LinetypeFromLayer the linetype index from the object's layer is used.",
        "since": "5.0",
        "parameters": [
          {
            "name": "rhinoObject",
            "type": "Rhino.DocObjects.RhinoObject",
            "summary": "The Rhino object to use in the query."
          }
        ],
        "returns": "The effective linetype index."
      },
      {
        "signature": "System.Int32 LoadDefaultLinetypes()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Fills in the linetype table with any default linetypes not already included.",
        "since": "6.0",
    "remarks": "New documents only contain the continuous linetype. Other default linetypes are added, on demand, when the user needs them. Calling this function ensures that the linetype table is populated with the default linetypes.",
        "returns": "The number of default linetypes added to the linetype table."
      },
      {
        "signature": "System.Int32 LoadDefaultLinetypes(System.Boolean ignoreDeleted)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Fills in the linetype table with any default linetypes not already included.",
        "since": "8.0",
    "remarks": "New documents only contain the continuous linetype. Other default linetypes are added, on demand, when the user needs them. Calling this function ensures that the linetype table is populated with the default linetypes.",
        "parameters": [
          {
            "name": "ignoreDeleted",
            "type": "System.Boolean",
            "summary": "Ignore default linetypes that have been deleted."
          }
        ],
        "returns": "The number of default linetypes added to the linetype table."
      },
      {
        "signature": "System.Boolean Modify(DocObjects.Linetype linetype, System.Int32 index, System.Boolean quiet)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Modify linetype settings.",
        "since": "5.0",
        "parameters": [
          {
            "name": "linetype",
            "type": "DocObjects.Linetype",
            "summary": "New linetype settings. This information is copied."
          },
          {
            "name": "index",
            "type": "System.Int32",
            "summary": "Zero based index of linetype to set."
          },
          {
            "name": "quiet",
            "type": "System.Boolean",
            "summary": "if true, information message boxes pop up when illegal changes are attempted."
          }
        ],
        "returns": "True if successful. False if linetype_index is out of range or the settings attempt to lock or hide the current linetype."
      },
      {
        "signature": "System.Int32 PurgeUnused()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Purges any unused linetypes.",
        "since": "9.0",
        "returns": "The number of unused linetypes that were purged."
      },
      {
        "signature": "System.Boolean SetCurrentLinetypeIndex(System.Int32 linetypeIndex, System.Boolean quiet)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "At all times, there is a \"current\" linetype. Unless otherwise specified, new objects are assigned to the current linetype. The current linetype is never deleted.",
        "since": "5.0",
        "parameters": [
          {
            "name": "linetypeIndex",
            "type": "System.Int32",
            "summary": "Value for new current linetype. 0 <= linetypeIndex < LinetypeTable.Count."
          },
          {
            "name": "quiet",
            "type": "System.Boolean",
            "summary": "if true, then no warning message box pops up if the current linetype request can't be satisfied."
          }
        ],
        "returns": "True if current linetype index successfully set."
      },
      {
        "signature": "System.Boolean Undelete(System.Int32 index)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Restores a linetype that has been deleted.",
        "since": "5.0",
        "parameters": [
          {
            "name": "index",
            "type": "System.Int32",
            "summary": "A linetype index to be undeleted."
          }
        ],
        "returns": "True if successful."
      },
      {
        "signature": "System.Boolean UndoModify(System.Int32 index)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "If the linetype has been modified and the modification can be undone, then UndoModify() will restore the linetype to its previous state.",
        "since": "5.0",
        "parameters": [
          {
            "name": "index",
            "type": "System.Int32",
            "summary": "Zero based index of linetype for which to undo changes."
          }
        ],
        "returns": "True if this linetype had been modified and the modifications were undone."
      }
    ]
  },
  {
    "namespace": "Rhino.DocObjects.Tables",
    "name": "LinetypeTableEventArgs",
    "dataType": "class",
    "summary": "LinetypeTable event arguments 8.0",
    "baseclass": "EventArgs",
    "since": "8.0",
    "properties": [
      {
        "signature": "RhinoDoc Document",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "The document in which the event occurred.",
        "since": "8.0",
        "property": ["get"]
      },
      {
        "signature": "LinetypeTableEventType EventType",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "The event type.",
        "since": "8.0",
        "property": ["get"]
      },
      {
        "signature": "int LinetypeIndex",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Index of the linetype.",
        "since": "8.0",
        "property": ["get"]
      },
      {
        "signature": "Linetype NewState",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "The new state.",
        "since": "8.0",
        "property": ["get"]
      },
      {
        "signature": "Linetype OldState",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "The old state.",
        "since": "8.0",
        "property": ["get"]
      }
    ]
  },
  {
    "namespace": "Rhino.DocObjects.Tables",
    "name": "LinetypeTableEventType",
    "dataType": "enum",
    "summary": "LinetypeTable event types 8.0",
    "since": "8.0",
    "values": [
      {
        "signature": "Added = 0",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "A linetype was added."
      },
      {
        "signature": "Deleted = 1",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "A linetype was deleted."
      },
      {
        "signature": "Undeleted = 2",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "A linetype was undeleted."
      },
      {
        "signature": "Modified = 3",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "A linetype was modified."
      },
      {
        "signature": "Sorted = 4",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "The linetype table was sorted."
      },
      {
        "signature": "Current = 5",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "The current linetype has changed."
      }
    ]

  },
  {
    "namespace": "Rhino.DocObjects.Tables",
    "name": "MarkupTable",
    "dataType": "class",
    "summary": "Collection of markups for a document",
    "baseclass": "RhinoDocCommonTable<Markup>",
    "interfaces": ["ICollection<Markup>"],
    "since": "9.0",
    "properties": [
      {
        "signature": "int ActiveCount",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns number of markups in the table, excluding deleted markups.",
        "since": "9.0",
        "property": ["get"]
      },
      {
        "signature": "ModelComponentType ComponentType",
        "modifiers": ["public", "override"],
        "protected": false,
        "virtual": false,
        "property": ["get"]
      },
      {
        "signature": "int Count",
        "modifiers": ["public", "new"],
        "protected": false,
        "virtual": false,
        "summary": "Returns number of markups in the table, including deleted markups.",
        "since": "9.0",
        "property": ["get"]
      },
      {
        "signature": "RhinoDoc Document",
        "modifiers": ["public", "new"],
        "protected": false,
        "virtual": false,
        "summary": "Document that owns this table.",
        "since": "9.0",
        "property": ["get"]
      },
      {
        "signature": "Markup this[int index]",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Conceptually, the markup table is an array of markups. The operator[] can be used to get individual markups. A markup is either active or deleted and this state is reported by Markup.IsDeleted.",
        "since": "9.0"
      }
    ],
    "methods": [
      {
        "signature": "System.Int32 Add(DocObjects.Markup markup)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Adds a new markup with specified definition to the table.",
        "since": "9.0",
        "parameters": [
          {
            "name": "markup",
            "type": "DocObjects.Markup",
            "summary": "Definition of new markup. The information in markup is copied. If markup.Name is empty then a unique name of the form \"Markup 01\" will be automatically created."
          }
        ],
        "returns": "Index of new markup type or -1 on error."
      },
      {
        "signature": "System.Int32 AddReferenceMarkup(DocObjects.Markup markup)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Adds a reference markup that will not be saved in files.",
        "since": "9.0",
        "parameters": [
          {
            "name": "markup",
            "type": "DocObjects.Markup",
            "summary": "Definition of new markup. The information in markup is copied. If markup.Name is empty then a unique name of the form \"Markup 01\" will be automatically created."
          }
        ],
        "returns": "Index of new markup or -1 on error."
      },
      {
        "signature": "System.Int32 Delete(IEnumerable<int> markupIndices, System.Boolean quiet, System.Int32 deleteWarning)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Delete multiple markups.",
        "since": "9.0",
        "parameters": [
          {
            "name": "markupIndices",
            "type": "IEnumerable<int>",
            "summary": "An enumeration of markup indices."
          },
          {
            "name": "quiet",
            "type": "System.Boolean",
            "summary": "If true, no warning message box appears if a markup is in use."
          },
          {
            "name": "deleteWarning",
            "type": "System.Int32",
            "summary": "Action to take when multiple delete warnings occur, where: 0 == No to all, 1 == Yes to all, 2 == Ask the user."
          }
        ],
        "returns": "The number of markups that were deleted."
      },
      {
        "signature": "System.Int32 Delete(IEnumerable<int> markupIndices, System.Boolean quiet)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Delete multiple markups.",
        "since": "9.0",
        "parameters": [
          {
            "name": "markupIndices",
            "type": "IEnumerable<int>",
            "summary": "An enumeration of markup indices."
          },
          {
            "name": "quiet",
            "type": "System.Boolean",
            "summary": "If true, no warning message box appears if a markup is in use."
          }
        ],
        "returns": "The number of markups that were deleted."
      },
      {
        "signature": "System.Boolean Delete(Markup item)",
        "modifiers": ["public", "override"],
        "protected": false,
        "virtual": false,
        "summary": "Deletes a markup.",
        "since": "9.0",
        "parameters": [
          {
            "name": "item",
            "type": "Markup",
            "summary": "The markup to delete."
          }
        ],
        "returns": "True if successful, False otherwise."
      },
      {
        "signature": "System.Boolean Delete(System.Int32 index, System.Boolean quiet)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Deletes a markup.",
        "since": "9.0",
        "parameters": [
          {
            "name": "index",
            "type": "System.Int32",
            "summary": "zero based index of markup to delete."
          },
          {
            "name": "quiet",
            "type": "System.Boolean",
            "summary": "If true, no warning message box appears if a markup is in use."
          }
        ],
        "returns": "True if successful. False if index is out of range or the markup is referenced by active geometry."
      },
      {
        "signature": "System.Int32 Duplicate(System.Int32 index)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Duplicates a markup.",
        "since": "9.0",
        "parameters": [
          {
            "name": "index",
            "type": "System.Int32",
            "summary": "zero based index of markup to delete."
          }
        ],
        "returns": "Index of new markup type or -1 on error."
      },
      {
        "signature": "System.Int32 Find(System.Guid id, System.Boolean ignoreDeletedMarkups)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Finds a markup with a matching ID.",
        "since": "9.0",
        "parameters": [
          {
            "name": "id",
            "type": "System.Guid",
            "summary": "The ID of the markup to be found."
          },
          {
            "name": "ignoreDeletedMarkups",
            "type": "System.Boolean",
            "summary": "If true, deleted markups are not checked."
          }
        ],
        "returns": "If the markup was found, the markup index, >=0, is returned. If the markup was not found, -1 is returned."
      },
      {
        "signature": "System.Int32 Find(System.String name)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Finds the markup with a given name.",
        "since": "9.0",
        "parameters": [
          {
            "name": "name",
            "type": "System.String",
            "summary": "The name of the markup to find. The search ignores case."
          }
        ],
        "returns": "If the markup was found, the markup index, >=0, is returned. If the markup was not found, -1 is returned."
      },
      {
        "signature": "Markup FindIndex(System.Int32 index)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Retrieves a markup based on Index. This type of search is discouraged. We are moving towards using only IDs for all tables.",
        "since": "9.0",
        "parameters": [
          {
            "name": "index",
            "type": "System.Int32",
            "summary": "The index to search for."
          }
        ],
        "returns": "A SectionStyle object, or None if none was found."
      },
      {
        "signature": "Markup FindName(System.String name)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Finds the markup with a given name.",
        "since": "9.0",
        "parameters": [
          {
            "name": "name",
            "type": "System.String",
            "summary": "The name of the markup to find."
          }
        ],
        "returns": "The markup if found; otherwise null."
      },
      {
        "signature": "IEnumerator<Markup> GetEnumerator()",
        "modifiers": ["public", "override"],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "System.String GetUnusedMarkupName()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets unused markup name used as default when creating new markups.",
        "since": "9.0",
        "returns": "The unused name."
      },
      {
        "signature": "System.Boolean Modify(DocObjects.Markup markup, System.Int32 index, System.Boolean quiet)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Modify markup settings.",
        "since": "9.0",
        "parameters": [
          {
            "name": "markup",
            "type": "DocObjects.Markup",
            "summary": "New markup settings. This information is copied."
          },
          {
            "name": "index",
            "type": "System.Int32",
            "summary": "Zero based index of markup to set."
          },
          {
            "name": "quiet",
            "type": "System.Boolean",
            "summary": "if true, information message boxes pop up when illegal changes are attempted."
          }
        ],
        "returns": "True if successful. False if index is out of range."
      }
    ]
  },
  {
    "namespace": "Rhino.DocObjects.Tables",
    "name": "MarkupTableEventArgs",
    "dataType": "class",
    "summary": "markup table event arguments.",
    "baseclass": "EventArgs",
    "since": "9.0",
    "properties": [
      {
        "signature": "RhinoDoc Document",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "The Rhino document.",
        "since": "9.0",
        "property": ["get"]
      },
      {
        "signature": "MarkupTableEventType EventType",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "The event type.",
        "since": "9.0",
        "property": ["get"]
      },
      {
        "signature": "int Index",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "The index of the markup.",
        "since": "9.0",
        "property": ["get"]
      },
      {
        "signature": "Markup NewState",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "The markup",
        "since": "9.0",
        "property": ["get"]
      },
      {
        "signature": "Markup OldState",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "The old or previous markup.",
        "since": "9.0",
        "property": ["get"]
      }
    ]
  },
  {
    "namespace": "Rhino.DocObjects.Tables",
    "name": "MarkupTableEventType",
    "dataType": "enum",
    "since": "9.0",
    "values": [
      {
        "signature": "Added",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "A markup was added to the document's markup table.",
        "since": "9.0"
      },
      {
        "signature": "Deleted",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "A markup in the document's markup table was deleted.",
        "since": "9.0"
      },
      {
        "signature": "Undeleted",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "A markup in the document's markup table was undeleted.",
        "since": "9.0"
      },
      {
        "signature": "Modified",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "A markup in the document's markup table was modified.",
        "since": "9.0"
      },
      {
        "signature": "Sorted",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "The document's markup table was sorted.",
        "since": "9.0"
      }
    ]

  },
  {
    "namespace": "Rhino.DocObjects.Tables",
    "name": "MaterialTable",
    "dataType": "class",
    "baseclass": "RhinoDocCommonTable<Material>",
    "interfaces": ["ICollection<Material>"],
    "properties": [
      {
        "signature": "ModelComponentType ComponentType",
        "modifiers": ["public", "override"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "int CurrentMaterialIndex",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "At all times, there is a \"current\" material.  Unless otherwise specified, new objects are assigned to the current material. The current material is never locked, hidden, or deleted.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "ObjectMaterialSource CurrentMaterialSource",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the current material source.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "Material this[int index]",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Conceptually, the material table is an array of materials. The operator[] can be used to get individual materials. A material is either active or deleted and this state is reported by Material.IsDeleted."
      }
    ],
    "methods": [
      {
        "signature": "System.Int32 Add()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Adds a new material to the table based on the default material.",
        "since": "5.0",
        "returns": "The position of the new material in the table."
      },
      {
        "signature": "System.Int32 Add(Material material, System.Boolean reference)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Adds a new material to the table based on a given material.",
        "since": "5.0",
        "parameters": [
          {
            "name": "material",
            "type": "Material",
            "summary": "A model of the material to be added."
          },
          {
            "name": "reference",
            "type": "System.Boolean",
            "summary": "True if this material is supposed to be a reference material. Reference materials are not saved in the file."
          }
        ],
        "returns": "The position of the new material in the table."
      },
      {
        "signature": "System.Int32 Add(Material material)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Adds a new material to the table based on a given material.",
        "since": "5.0",
        "parameters": [
          {
            "name": "material",
            "type": "Material",
            "summary": "A model of the material to be added."
          }
        ],
        "returns": "The position of the new material in the table."
      },
      {
        "signature": "System.Boolean Delete(Material item)",
        "modifiers": ["public", "override"],
        "protected": false,
        "virtual": false,
        "since": "6.0"
      },
      {
        "signature": "System.Boolean DeleteAt(System.Int32 materialIndex)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Removes a material at a specific position from this material table.",
        "since": "5.0",
        "parameters": [
          {
            "name": "materialIndex",
            "type": "System.Int32",
            "summary": "The position to be removed."
          }
        ],
        "returns": "True if successful. False if materialIndex is out of range or the material cannot be deleted because it is the current material or because it material contains active geometry."
      },
      {
        "signature": "System.Int32 Find(Material material, System.Boolean ignoreDeletedMaterials)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Finds a material index.",
        "since": "8.0",
        "parameters": [
          {
            "name": "material",
            "type": "Material",
            "summary": "Material to search for."
          },
          {
            "name": "ignoreDeletedMaterials",
            "type": "System.Boolean",
            "summary": "True means don't search deleted materials."
          }
        ],
        "returns": ">=0 index of the material -1  no material matchin material."
      },
      {
        "signature": "System.Int32 Find(System.Guid materialId, System.Boolean ignoreDeletedMaterials)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Finds a material with a matching id.",
        "since": "5.0",
        "parameters": [
          {
            "name": "materialId",
            "type": "System.Guid",
            "summary": "A material ID to be found."
          },
          {
            "name": "ignoreDeletedMaterials",
            "type": "System.Boolean",
            "summary": "If true, deleted materials are not checked."
          }
        ],
        "returns": ">=0 index of the material with the given name -1  no material has the given name."
      },
      {
        "signature": "System.Int32 Find(System.String materialName, System.Boolean ignoreDeletedMaterials)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Finds a material with a given name.",
        "since": "5.0",
        "parameters": [
          {
            "name": "materialName",
            "type": "System.String",
            "summary": "Name of the material to search for. The search ignores case."
          },
          {
            "name": "ignoreDeletedMaterials",
            "type": "System.Boolean",
            "summary": "True means don't search deleted materials."
          }
        ],
        "returns": ">=0 index of the material with the given name -1  no material has the given name."
      },
      {
        "signature": "Material FindIndex(System.Int32 index)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Retrieves a Material object based on Index. This search type of search is discouraged. We are moving towards using only IDs for all tables.",
        "since": "6.0",
        "parameters": [
          {
            "name": "index",
            "type": "System.Int32",
            "summary": "The index to search for."
          }
        ],
        "returns": "A Material object, or None if none was found."
      },
      {
        "signature": "System.Boolean Modify(Material newSettings, System.Int32 materialIndex, System.Boolean quiet)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Modify material settings.",
        "since": "5.0",
        "parameters": [
          {
            "name": "newSettings",
            "type": "Material",
            "summary": "This information is copied."
          },
          {
            "name": "materialIndex",
            "type": "System.Int32",
            "summary": "zero based index of material to set.  This must be in the range 0 <= layerIndex < MaterialTable.Count."
          },
          {
            "name": "quiet",
            "type": "System.Boolean",
            "summary": "if true, information message boxes pop up when illegal changes are attempted."
          }
        ],
        "returns": "True if successful. False if materialIndex is out of range or the settings attempt to lock or hide the current material."
      },
      {
        "signature": "System.Boolean ResetMaterial(System.Int32 materialIndex)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      }
    ]
  },
  {
    "namespace": "Rhino.DocObjects.Tables",
    "name": "MaterialTableEventArgs",
    "dataType": "class",
    "baseclass": "EventArgs",
    "properties": [
      {
        "signature": "RhinoDoc Document",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "MaterialTableEventType EventType",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "int Index",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "Material OldSettings",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0",
        "property": ["get"]
      }
    ]
  },
  {
    "namespace": "Rhino.DocObjects.Tables",
    "name": "MaterialTableEventType",
    "dataType": "enum",
    "since": "5.0",
    "values": [
      {
        "signature": "Added = 0",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Deleted = 1",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Undeleted = 2",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Modified = 3",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Sorted = 4",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Current = 5",
        "modifiers": [],
        "protected": false,
        "virtual": false
      }
    ]

  },
  {
    "namespace": "Rhino.DocObjects.Tables",
    "name": "ModifyType",
    "dataType": "enum",
    "since": "6.0",
    "values": [
      {
        "signature": "Modify",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Override",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "NotSaved",
        "modifiers": [],
        "protected": false,
        "virtual": false
      }
    ]

  },
  {
    "namespace": "Rhino.DocObjects.Tables",
    "name": "NamedConstructionPlaneTable",
    "dataType": "class",
    "summary": "Contains all named construction planes in a rhino document.  \nThis class cannot be inherited.",
    "interfaces": ["IEnumerable<ConstructionPlane>", "Collections.IRhinoTable<ConstructionPlane>"],
    "properties": [
      {
        "signature": "int Count",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Number of construction planes in the table.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "RhinoDoc Document",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the document that owns this table.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "ConstructionPlane this[int index]",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Conceptually, the named construction plane table is an array of ConstructionPlanes and their associated names. The operator[] can be used to get individual ConstructionPlanes."
      }
    ],
    "methods": [
      {
        "signature": "System.Int32 Add(ConstructionPlane constructionPlane)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Adds named construction plane to document.",
        "since": "8.18",
        "parameters": [
          {
            "name": "constructionPlane",
            "type": "ConstructionPlane",
            "summary": "The construction plane value."
          }
        ],
        "returns": "0 based index of named construction plane. -1 on failure."
      },
      {
        "signature": "System.Int32 Add(System.String name, Geometry.Plane plane)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Adds named construction plane to document.",
        "since": "5.0",
        "parameters": [
          {
            "name": "name",
            "type": "System.String",
            "summary": "If name is empty, a unique name is automatically created. If there is already a named construction plane with the same name, that construction plane is replaced."
          },
          {
            "name": "plane",
            "type": "Geometry.Plane",
            "summary": "The plane value."
          }
        ],
        "returns": "0 based index of named construction plane. -1 on failure."
      },
      {
        "signature": "System.Boolean Delete(System.Int32 index)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Remove named construction plane from the document.",
        "since": "5.0",
        "parameters": [
          {
            "name": "index",
            "type": "System.Int32",
            "summary": "zero based array index."
          }
        ],
        "returns": "True if successful."
      },
      {
        "signature": "System.Boolean Delete(System.String name)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Remove named construction plane from the document.",
        "since": "5.0",
        "parameters": [
          {
            "name": "name",
            "type": "System.String",
            "summary": "name of the construction plane."
          }
        ],
        "returns": "True if successful."
      },
      {
        "signature": "System.Int32 Find(System.String name)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Finds a named construction plane.",
        "since": "5.0",
        "parameters": [
          {
            "name": "name",
            "type": "System.String",
            "summary": "Name of construction plane to search for."
          }
        ],
        "returns": ">=0 index of the construction plane with the given name. -1 no construction plane found with the given name."
      },
      {
        "signature": "IEnumerator<ConstructionPlane> GetEnumerator()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      }
    ]
  },
  {
    "namespace": "Rhino.DocObjects.Tables",
    "name": "NamedLayerStateTable",
    "dataType": "class",
    "summary": "All named layer states in a Rhino document.",
    "properties": [
      {
        "signature": "int Count",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns the number of named layers states in the document.",
        "since": "6.14",
        "property": ["get"]
      },
      {
        "signature": "RhinoDoc Document",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Document that owns this table.",
        "since": "6.14",
        "property": ["get"]
      },
      {
        "signature": "string[] Names",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns the names of named layer states in the document.",
        "since": "6.14",
        "property": ["get"]
      }
    ],
    "methods": [
      {
        "signature": "System.Boolean Delete(System.String name)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Deletes an existing named layer state.",
        "since": "6.14",
        "parameters": [
          {
            "name": "name",
            "type": "System.String",
            "summary": "The name of the layer state."
          }
        ],
        "returns": "True if successful, False otherwise."
      },
      {
        "signature": "System.Int32 FindName(System.String name)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns the index of an existing named layer state.",
        "since": "6.14",
        "parameters": [
          {
            "name": "name",
            "type": "System.String",
            "summary": "The name of the layer state."
          }
        ],
        "returns": ">0 if successful, -1 if not found."
      },
      {
        "signature": "System.Int32 Import(System.String filename)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Imports named layer states from a 3dm file.",
        "since": "6.15",
        "parameters": [
          {
            "name": "filename",
            "type": "System.String",
            "summary": "The name of the file to import."
          }
        ],
        "returns": "The number of named layers states imported."
      },
      {
        "signature": "System.Boolean Rename(System.String oldName, System.String newName)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Renames an existing named layer state.",
        "since": "6.14",
        "parameters": [
          {
            "name": "oldName",
            "type": "System.String",
            "summary": "The name of the layer state."
          },
          {
            "name": "newName",
            "type": "System.String",
            "summary": "The new name"
          }
        ],
        "returns": "True if successful, False otherwise."
      },
      {
        "signature": "System.Boolean Restore(System.String name, RestoreLayerProperties properties, System.Guid viewportId)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Restores a named layer state.",
        "since": "6.14",
        "parameters": [
          {
            "name": "name",
            "type": "System.String",
            "summary": "The name of the layer state."
          },
          {
            "name": "properties",
            "type": "RestoreLayerProperties",
            "summary": "The layer properties to restore."
          },
          {
            "name": "viewportId",
            "type": "System.Guid",
            "summary": "The id of the layout or detail viewport to restore the per-viewport layer properties."
          }
        ]
      },
      {
        "signature": "System.Boolean Restore(System.String name, RestoreLayerProperties properties)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Restores a named layer state.",
        "since": "6.14",
        "parameters": [
          {
            "name": "name",
            "type": "System.String",
            "summary": "The name of the layer state."
          },
          {
            "name": "properties",
            "type": "RestoreLayerProperties",
            "summary": "The layer properties to restore."
          }
        ],
        "returns": "True if successful, False otherwise."
      },
      {
        "signature": "System.Int32 Save(System.String name, System.Guid viewportId)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Saves or updates a named layer state.",
        "since": "6.14",
        "parameters": [
          {
            "name": "name",
            "type": "System.String",
            "summary": "The name of the layer state. If the named layer state already exists, it will be updated."
          },
          {
            "name": "viewportId",
            "type": "System.Guid",
            "summary": "The id of the layout or detail viewport, required to save per viewport layer state properties."
          }
        ],
        "returns": "The index of the newly added, or updated, layer state."
      },
      {
        "signature": "System.Int32 Save(System.String name)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Saves or updates a named layer state.",
        "since": "6.14",
        "parameters": [
          {
            "name": "name",
            "type": "System.String",
            "summary": "The name of the layer state. If the named layer state already exists, it will be updated."
          }
        ],
        "returns": "The index of the newly added, or updated, layer state."
      }
    ]
  },
  {
    "namespace": "Rhino.DocObjects.Tables",
    "name": "NamedPositionTable",
    "dataType": "class",
    "summary": "All named positions in a rhino document.",
    "properties": [
      {
        "signature": "int Count",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Number of Named Positions in the table.",
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "RhinoDoc Document",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Document that owns this table.",
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "Guid[] Ids",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Array of Named Position Guids.",
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "string[] Names",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Array of Named Position names.",
        "since": "6.0",
        "property": ["get"]
      }
    ],
    "methods": [
      {
        "signature": "System.Boolean Append(System.Guid id, IEnumerable<Guid> objectIds)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Append objects to a Named Position.",
        "since": "6.0",
        "parameters": [
          {
            "name": "id",
            "type": "System.Guid",
            "summary": "Guid of the Named Position which you want to append to."
          },
          {
            "name": "objectIds",
            "type": "IEnumerable<Guid>",
            "summary": "New object ids to be included in this Named Position."
          }
        ],
        "returns": "True or False depending on whether the Append was successful."
      },
      {
        "signature": "System.Boolean Append(System.Guid id, IEnumerable<RhinoObject> objects)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Append objects to a Named Position.",
        "since": "6.0",
        "parameters": [
          {
            "name": "id",
            "type": "System.Guid",
            "summary": "Guid of the Named Position which you want to append to."
          },
          {
            "name": "objects",
            "type": "IEnumerable<RhinoObject>",
            "summary": "Collection of Rhino Objects to be included in this Named Position."
          }
        ],
        "returns": "True or False depending on whether the Append was successful."
      },
      {
        "signature": "System.Boolean Append(System.String name, IEnumerable<Guid> objectIds)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Append objects to a Named Position.",
        "since": "6.0",
        "parameters": [
          {
            "name": "name",
            "type": "System.String",
            "summary": "Name of the Named Position which you want to append to."
          },
          {
            "name": "objectIds",
            "type": "IEnumerable<Guid>",
            "summary": "New object Guids to be included in this Named Position."
          }
        ],
        "returns": "True or False depending on whether the Append was successful."
      },
      {
        "signature": "System.Boolean Append(System.String name, IEnumerable<RhinoObject> objects)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Append objects to a Named Position.",
        "since": "6.0",
        "parameters": [
          {
            "name": "name",
            "type": "System.String",
            "summary": "Name of the Named Position which you want to append to."
          },
          {
            "name": "objects",
            "type": "IEnumerable<RhinoObject>",
            "summary": "Collection of Rhino Objects to be included in this Named Position."
          }
        ],
        "returns": "True or False depending on whether the Append was successful."
      },
      {
        "signature": "System.Boolean Delete(System.Guid id)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Delete a Named Position.",
        "since": "6.0",
        "parameters": [
          {
            "name": "id",
            "type": "System.Guid",
            "summary": "Guid of the Named Position which you want to delete."
          }
        ],
        "returns": "True or False depending on whether the Delete was successful, Null in case the id does not exist as a Named Position."
      },
      {
        "signature": "System.Boolean Delete(System.String name)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Delete a Named Position.",
        "since": "6.0",
        "parameters": [
          {
            "name": "name",
            "type": "System.String",
            "summary": "Name of the Named Position which you want to delete."
          }
        ],
        "returns": "True or False depending on whether the Delete was successful, Null in case the id does not exist as a Named Position."
      },
      {
        "signature": "System.Guid Id(System.String name)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Guid of a Named Position.",
        "since": "6.0",
        "parameters": [
          {
            "name": "name",
            "type": "System.String",
            "summary": "Name of the Named Position for which you want to retrieve the Guid."
          }
        ],
        "returns": "The Guid of the Named Position.  If not found, an empty Guid is returned."
      },
      {
        "signature": "System.String Name(System.Guid id)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Name of a Named Position.",
        "since": "6.0",
        "parameters": [
          {
            "name": "id",
            "type": "System.Guid",
            "summary": "Guid of the Named Position for which you want to retrieve the name."
          }
        ],
        "returns": "The name of the Named Position as a string."
      },
      {
        "signature": "System.Guid[] ObjectIds(System.Guid id)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Array of Rhino Object Guids related to a Named Position.",
        "since": "6.0",
        "parameters": [
          {
            "name": "id",
            "type": "System.Guid",
            "summary": "The Guid of the named position from which you want to retrieve the objects."
          }
        ],
        "returns": "Array of Guid which pertain to the objects tracked by the Named Position."
      },
      {
        "signature": "System.Guid[] ObjectIds(System.String name)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Array of Rhino Object Guids related to a Named Position.",
        "since": "6.0",
        "parameters": [
          {
            "name": "name",
            "type": "System.String",
            "summary": "The name of the Named Position from which you want to retrieve the objects."
          }
        ],
        "returns": "Array of Guid which pertain to the objects tracked by the Named Position, or None in case no such Named Position is found."
      },
      {
        "signature": "RhinoObject[] Objects(System.Guid id)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Array of Rhino Objects related to a Named Position.",
        "since": "6.0",
        "parameters": [
          {
            "name": "id",
            "type": "System.Guid",
            "summary": "The Guid of the named position from which you want to retrieve the objects."
          }
        ],
        "returns": "Array of Rhino Objects which are tracked by the Named Position."
      },
      {
        "signature": "RhinoObject[] Objects(System.String name)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Array of Rhino Objects related to a Named Position.",
        "since": "6.0",
        "parameters": [
          {
            "name": "name",
            "type": "System.String",
            "summary": "The name of the Named Position from which you want to retrieve the objects."
          }
        ],
        "returns": "Array of Rhino Objects which are tracked by the Named Position if successful, None if no such Named Position exists."
      },
      {
        "signature": "System.Boolean ObjectXform(System.Guid id, RhinoObject obj, ref Geometry.Transform xform)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Retrieve the Transform of a Rhino Object relate to a Named Position.",
        "since": "6.0",
        "parameters": [
          {
            "name": "id",
            "type": "System.Guid",
            "summary": "The Guid of the Named Position"
          },
          {
            "name": "obj",
            "type": "RhinoObject",
            "summary": "The Rhino Object from which to retrieve the Transform."
          },
          {
            "name": "xform",
            "type": "Geometry.Transform",
            "summary": "The Transform to retrieve."
          }
        ],
        "returns": "Transform of the RhinoObject related to the Named Position."
      },
      {
        "signature": "System.Boolean ObjectXform(System.Guid id, System.Guid objId, ref Geometry.Transform xform)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Retrieve the Transform of a Rhino Object relate to a Named Position.",
        "since": "6.0",
        "parameters": [
          {
            "name": "id",
            "type": "System.Guid",
            "summary": "The Guid of the Named Position"
          },
          {
            "name": "objId",
            "type": "System.Guid",
            "summary": "The Guid of the Rhino Object from which to retrieve the Transform."
          },
          {
            "name": "xform",
            "type": "Geometry.Transform",
            "summary": "The Transform to retrieve."
          }
        ],
        "returns": "Transform of the RhinoObject related to the Named Position."
      },
      {
        "signature": "System.Boolean Rename(System.Guid id, System.String name)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Rename a Named Position.",
        "since": "6.0",
        "parameters": [
          {
            "name": "id",
            "type": "System.Guid",
            "summary": "Guid of the Named Position which you want to rename."
          },
          {
            "name": "name",
            "type": "System.String",
            "summary": "New name for the Named Position."
          }
        ],
        "returns": "True or False depending on whether the Rename was successful.  For example, this method might return False if you attempt to rename the Named Position with the currently assigned name."
      },
      {
        "signature": "System.Boolean Rename(System.String oldName, System.String name)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Rename a Named Position.",
        "since": "6.0",
        "parameters": [
          {
            "name": "oldName",
            "type": "System.String",
            "summary": "Current name of the Named Position which you want to rename."
          },
          {
            "name": "name",
            "type": "System.String",
            "summary": "New name for the Named Position."
          }
        ],
        "returns": "True or False depending on whether the Rename was successful.  For example, this method might return False if you attempt to rename the Named Position with the currently assigned name."
      },
      {
        "signature": "System.Boolean Restore(System.Guid id)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Restore a Named Position.",
        "since": "6.0",
        "parameters": [
          {
            "name": "id",
            "type": "System.Guid",
            "summary": "Guid of the Named Position to restore."
          }
        ],
        "returns": "True or False based on whether the Named Position was able to be restored."
      },
      {
        "signature": "System.Boolean Restore(System.String name)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Restore a Named Position.",
        "since": "6.0",
        "parameters": [
          {
            "name": "name",
            "type": "System.String",
            "summary": "Name of the Named Position to restore."
          }
        ],
        "returns": "True or False based on whether the Named Position was able to be restored."
      },
      {
        "signature": "System.Guid Save(System.String name, IEnumerable<Guid> objectIds)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Save a new Named Position.",
        "since": "6.0",
        "parameters": [
          {
            "name": "name",
            "type": "System.String",
            "summary": "Name for this Named Position."
          },
          {
            "name": "objectIds",
            "type": "IEnumerable<Guid>",
            "summary": "Array of Rhino Object Ids which should be included in this Named Position."
          }
        ],
        "returns": "Guid of the newly saved Named Position."
      },
      {
        "signature": "System.Guid Save(System.String name, IEnumerable<RhinoObject> objects)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Save a new Named Position.",
        "since": "6.0",
        "parameters": [
          {
            "name": "name",
            "type": "System.String",
            "summary": "Name for this Named Position."
          },
          {
            "name": "objects",
            "type": "IEnumerable<RhinoObject>",
            "summary": "Array of Rhino Objects which should be included in this Named Position."
          }
        ],
        "returns": "Guid of the newly saved Named Position."
      },
      {
        "signature": "System.Boolean Update(System.Guid id)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Updates a Named Position, effectively storing the current positions of the objects which the Named Position is tracking.",
        "since": "6.0",
        "parameters": [
          {
            "name": "id",
            "type": "System.Guid",
            "summary": "Guid of the Named Position which you want to update."
          }
        ],
        "returns": "True or False depending on whether the Update was successful."
      },
      {
        "signature": "System.Boolean Update(System.String name)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Updates a Named Position, effectively storing the current positions of the objects which the Named Position is tracking.",
        "since": "6.0",
        "parameters": [
          {
            "name": "name",
            "type": "System.String",
            "summary": "Name of the Named Position which you want to update."
          }
        ],
        "returns": "True or False depending on whether the Update was successful."
      }
    ]
  },
  {
    "namespace": "Rhino.DocObjects.Tables",
    "name": "NamedViewTable",
    "dataType": "class",
    "summary": "All named views in a rhino document.",
    "interfaces": ["IEnumerable<ViewInfo>", "Collections.IRhinoTable<ViewInfo>"],
    "properties": [
      {
        "signature": "int Count",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Number of named views in the table.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "RhinoDoc Document",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Document that owns this table.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "string[] Selection",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns the current selection in the Named Views panel. If more than one such panel is open, it will return the selection in the most recently opened panel.",
        "since": "8.5",
        "property": ["get"]
      },
      {
        "signature": "ViewInfo this[int index]",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Conceptually, the named view table is an array of ViewInfo and their associated names. The indexing operator ([] in C#) can be used to get individual ViewInfo items."
      }
    ],
    "methods": [
      {
        "signature": "System.Int32 Add(System.String name, System.Guid viewportId)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Adds named view to document which is based on an existing viewport.",
        "since": "5.0",
        "parameters": [
          {
            "name": "name",
            "type": "System.String",
            "summary": "If name is empty, a unique name is automatically created. If there is already a named view with the same name, that view is replaced."
          },
          {
            "name": "viewportId",
            "type": "System.Guid",
            "summary": "Id of an existing viewport in the document. View information is copied from this viewport."
          }
        ],
        "returns": "0 based index of named view. -1 on failure."
      },
      {
        "signature": "System.Int32 Add(ViewInfo view)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "System.Boolean Delete(System.Int32 index)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Remove named view from the document.",
        "since": "5.0",
        "parameters": [
          {
            "name": "index",
            "type": "System.Int32",
            "summary": "index of the named view in the named view table."
          }
        ],
        "returns": "True if successful."
      },
      {
        "signature": "System.Boolean Delete(System.String name)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Remove named view from the document.",
        "since": "5.0",
        "parameters": [
          {
            "name": "name",
            "type": "System.String",
            "summary": "name of the view."
          }
        ],
        "returns": "True if successful."
      },
      {
        "signature": "System.Int32 FindByName(System.String name)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Finds a named view.",
        "since": "5.0",
        "parameters": [
          {
            "name": "name",
            "type": "System.String",
            "summary": "name to search for."
          }
        ],
        "returns": ">=0 index of the found named view -1 no named view found."
      },
      {
        "signature": "IEnumerator<ViewInfo> GetEnumerator()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "System.Boolean Rename(System.Int32 index, System.String newName)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Renames a named view.",
        "since": "7.0",
        "parameters": [
          {
            "name": "index",
            "type": "System.Int32",
            "summary": "Index of the named view in the named view table."
          },
          {
            "name": "newName",
            "type": "System.String",
            "summary": "The new name."
          }
        ],
        "returns": "True if successful, False otherwise."
      },
      {
        "signature": "System.Boolean Rename(System.String oldName, System.String newName)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Renames a named view.",
        "since": "7.0",
        "parameters": [
          {
            "name": "oldName",
            "type": "System.String",
            "summary": "The name of a named view in the named view table."
          },
          {
            "name": "newName",
            "type": "System.String",
            "summary": "The new name."
          }
        ],
        "returns": "True if successful, False otherwise."
      },
      {
        "signature": "System.Boolean Restore(System.Int32 index, Display.RhinoView view, System.Boolean backgroundBitmap)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0",
        "deprecated": "6.0",
        "obsolete": "Support for backgroundBitmap is ended"
      },
      {
        "signature": "System.Boolean Restore(System.Int32 index, Display.RhinoViewport viewport, System.Boolean backgroundBitmap)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.9",
        "deprecated": "6.0",
        "obsolete": "Support for backgroundBitmap is ended"
      },
      {
        "signature": "System.Boolean Restore(System.Int32 index, Display.RhinoViewport viewport)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Sets the MainViewport of a standard RhinoView to a named views settings",
        "since": "6.0"
      },
      {
        "signature": "System.Boolean RestoreAnimated(System.Int32 index, Display.RhinoView view, System.Boolean backgroundBitmap, System.Int32 frames, System.Int32 frameRate)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0",
        "deprecated": "6.0",
        "obsolete": "Support for backgroundBitmap is ended"
      },
      {
        "signature": "System.Boolean RestoreAnimated(System.Int32 index, Display.RhinoView view, System.Boolean backgroundBitmap)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0",
        "deprecated": "6.0",
        "obsolete": "Support for backgroundBitmap is ended"
      },
      {
        "signature": "System.Boolean RestoreAnimated(System.Int32 index, Display.RhinoViewport viewport, System.Boolean backgroundBitmap, System.Int32 frames, System.Int32 frameRate)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.9",
        "deprecated": "6.0",
        "obsolete": "Support for backgroundBitmap is ended"
      },
      {
        "signature": "System.Boolean RestoreAnimated(System.Int32 index, Display.RhinoViewport viewport, System.Boolean backgroundBitmap)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.9",
        "deprecated": "6.0",
        "obsolete": "Support for backgroundBitmap is ended"
      },
      {
        "signature": "System.Boolean RestoreAnimatedConstantSpeed(System.Int32 index, Display.RhinoViewport viewport, System.Double units_per_frame, System.Int32 ms_delay)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0"
      },
      {
        "signature": "System.Boolean RestoreAnimatedConstantTime(System.Int32 index, Display.RhinoViewport viewport, System.Int32 frames, System.Int32 ms_delay)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0"
      },
      {
        "signature": "System.Boolean RestoreWithAspectRatio(System.Int32 index, Display.RhinoViewport viewport)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0"
      }
    ]
  },
  {
    "namespace": "Rhino.DocObjects.Tables",
    "name": "ObjectTable",
    "dataType": "class",
    "baseclass": "RhinoDocCommonTable<RhinoObject>",
    "interfaces": ["ICollection<RhinoObject>"],
    "properties": [
      {
        "signature": "BoundingBox BoundingBox",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the bounding box for all objects (normal, locked and hidden) in this document that exist in \"model\" space. This bounding box does not include objects that exist in layout space.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "BoundingBox BoundingBoxVisible",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the bounding box for all visible objects (normal and locked) in this document that exist in \"model\" space. This bounding box does not include hidden objects or any objects that exist in layout space.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "ModelComponentType ComponentType",
        "modifiers": ["public", "override"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "RhinoDoc Document",
        "modifiers": ["public", "new"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the document that owns this object table.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "int HistoryRecordCount",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns the amount of history records in this document.",
        "since": "6.0",
        "property": ["get"]
      }
    ],
    "methods": [
      {
        "signature": "System.Guid Add(GeometryBase geometry, ObjectAttributes attributes, HistoryRecord history, System.Boolean reference)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Adds geometry that is not further specified.  \nThis is meant, for example, to handle addition of sets of different geometrical entities.",
        "since": "6.0",
        "parameters": [
          {
            "name": "geometry",
            "type": "GeometryBase",
            "summary": "The base geometry. This cannot be null."
          },
          {
            "name": "attributes",
            "type": "ObjectAttributes",
            "summary": "The object attributes. This can be null."
          },
          {
            "name": "history",
            "type": "HistoryRecord",
            "summary": "The history information that will be saved."
          },
          {
            "name": "reference",
            "type": "System.Boolean",
            "summary": "If reference is true, object will not be saved in the 3dm file."
          }
        ],
        "returns": "The new object ID on success."
      },
      {
        "signature": "System.Guid Add(GeometryBase geometry, ObjectAttributes attributes)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Adds geometry that is not further specified.  \nThis is meant, for example, to handle addition of sets of different geometrical entities.",
        "since": "5.0",
        "parameters": [
          {
            "name": "geometry",
            "type": "GeometryBase",
            "summary": "The base geometry. This cannot be null."
          },
          {
            "name": "attributes",
            "type": "ObjectAttributes",
            "summary": "The object attributes. This can be null."
          }
        ],
        "returns": "The new object ID on success."
      },
      {
        "signature": "System.Guid Add(GeometryBase geometry)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Adds geometry that is not further specified.  \nThis is meant, for example, to handle addition of sets of different geometrical entities.",
        "since": "5.0",
        "parameters": [
          {
            "name": "geometry",
            "type": "GeometryBase",
            "summary": "The base geometry. This cannot be null."
          }
        ],
        "returns": "The new object ID on success."
      },
      {
        "signature": "System.Guid AddAngularDimension(AngularDimension dimension, ObjectAttributes attributes, HistoryRecord history, System.Boolean reference)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Adds an angular dimension object to the document.",
        "since": "5.0",
        "parameters": [
          {
            "name": "dimension",
            "type": "AngularDimension",
            "summary": "Dimension object to add."
          },
          {
            "name": "attributes",
            "type": "ObjectAttributes",
            "summary": "Attributes to apply to dimension."
          },
          {
            "name": "history",
            "type": "HistoryRecord",
            "summary": "Object history to save."
          },
          {
            "name": "reference",
            "type": "System.Boolean",
            "summary": "If reference, then object will not be saved into the 3dm file."
          }
        ],
        "returns": "The Guid of the newly added object or Guid.Empty on failure."
      },
      {
        "signature": "System.Guid AddAngularDimension(AngularDimension dimension, ObjectAttributes attributes)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Adds a angular dimension object to the document.",
        "since": "5.0",
        "parameters": [
          {
            "name": "dimension",
            "type": "AngularDimension",
            "summary": "Dimension object to add."
          },
          {
            "name": "attributes",
            "type": "ObjectAttributes",
            "summary": ""
          }
        ],
        "returns": "The Guid of the newly added object or Guid.Empty on failure."
      },
      {
        "signature": "System.Guid AddAngularDimension(AngularDimension dimension)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Adds a angular dimension object to the document.",
        "since": "5.0",
        "parameters": [
          {
            "name": "dimension",
            "type": "AngularDimension",
            "summary": "Dimension object to add."
          }
        ],
        "returns": "The Id of the newly added object or Guid.Empty on failure."
      },
      {
        "signature": "System.Guid AddArc(Arc arc, ObjectAttributes attributes, HistoryRecord history, System.Boolean reference)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "System.Guid AddArc(Arc arc, ObjectAttributes attributes)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Adds a curve object to the document representing an arc.",
        "since": "5.0",
        "parameters": [
          {
            "name": "arc",
            "type": "Arc",
            "summary": "An arc value."
          },
          {
            "name": "attributes",
            "type": "ObjectAttributes",
            "summary": "Attributes to apply to arc."
          }
        ],
        "returns": "A unique identifier for the object."
      },
      {
        "signature": "System.Guid AddArc(Arc arc)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Adds a curve object to the document representing an arc.",
        "since": "5.0",
        "parameters": [
          {
            "name": "arc",
            "type": "Arc",
            "summary": "An arc value."
          }
        ],
        "returns": "A unique identifier for the object."
      },
      {
        "signature": "System.Guid AddBox(Box box, ObjectAttributes attributes, HistoryRecord history, System.Boolean reference)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Adds a box to the object table, as an extrusion.",
        "since": "6.0",
        "parameters": [
          {
            "name": "box",
            "type": "Box",
            "summary": "The box."
          },
          {
            "name": "attributes",
            "type": "ObjectAttributes",
            "summary": "Attributes that will be linked with the surface object."
          },
          {
            "name": "history",
            "type": "HistoryRecord",
            "summary": "History data records."
          },
          {
            "name": "reference",
            "type": "System.Boolean",
            "summary": "If a reference, object will not be saved in the document."
          }
        ],
        "returns": "The ID."
      },
      {
        "signature": "System.Guid AddBox(Box box, ObjectAttributes attributes)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Adds a box to the object table.",
        "since": "6.0",
        "parameters": [
          {
            "name": "box",
            "type": "Box",
            "summary": "The box."
          },
          {
            "name": "attributes",
            "type": "ObjectAttributes",
            "summary": "Attributes that will be linked with the surface object."
          }
        ],
        "returns": "The ID."
      },
      {
        "signature": "System.Guid AddBox(Box box)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Adds a box to the object table.",
        "since": "6.0",
        "parameters": [
          {
            "name": "box",
            "type": "Box",
            "summary": "The box."
          }
        ],
        "returns": "The ID."
      },
      {
        "signature": "System.Guid AddBrep(Brep brep, ObjectAttributes attributes, HistoryRecord history, System.Boolean reference, System.Boolean splitKinkySurfaces)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "System.Guid AddBrep(Brep brep, ObjectAttributes attributes, HistoryRecord history, System.Boolean reference)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "System.Guid AddBrep(Brep brep, ObjectAttributes attributes)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Adds a brep object to Rhino.",
        "since": "5.0",
        "parameters": [
          {
            "name": "brep",
            "type": "Brep",
            "summary": "A duplicate of this brep is added to Rhino."
          },
          {
            "name": "attributes",
            "type": "ObjectAttributes",
            "summary": "attributes to apply to brep."
          }
        ],
        "returns": "A unique identifier for the object."
      },
      {
        "signature": "System.Guid AddBrep(Brep brep)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Adds a brep object to Rhino.",
        "since": "5.0",
        "parameters": [
          {
            "name": "brep",
            "type": "Brep",
            "summary": "A duplicate of this brep is added to Rhino."
          }
        ],
        "returns": "A unique identifier for the object."
      },
      {
        "signature": "System.Guid AddCentermark(Centermark centermark, ObjectAttributes attributes, HistoryRecord history, System.Boolean reference)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Adds an ordinate dimension object to the document.",
        "since": "6.0",
        "parameters": [
          {
            "name": "centermark",
            "type": "Centermark",
            "summary": "Dimension object to add."
          },
          {
            "name": "attributes",
            "type": "ObjectAttributes",
            "summary": "Attributes to apply to dimension."
          },
          {
            "name": "history",
            "type": "HistoryRecord",
            "summary": "Object history to save."
          },
          {
            "name": "reference",
            "type": "System.Boolean",
            "summary": "If reference, then object will not be saved into the 3dm file."
          }
        ],
        "returns": "The Guid of the newly added object or Guid.Empty on failure."
      },
      {
        "signature": "System.Guid AddCircle(Circle circle, ObjectAttributes attributes, HistoryRecord history, System.Boolean reference)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "System.Guid AddCircle(Circle circle, ObjectAttributes attributes)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Adds a curve object to the document representing a circle.",
        "since": "5.0",
        "parameters": [
          {
            "name": "circle",
            "type": "Circle",
            "summary": "A circle value."
          },
          {
            "name": "attributes",
            "type": "ObjectAttributes",
            "summary": "Attributes to apply to circle."
          }
        ],
        "returns": "A unique identifier for the object."
      },
      {
        "signature": "System.Guid AddCircle(Circle circle)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Adds a curve object to the document representing a circle.",
        "since": "5.0",
        "parameters": [
          {
            "name": "circle",
            "type": "Circle",
            "summary": "A circle value."
          }
        ],
        "returns": "A unique identifier for the object."
      },
      {
        "signature": "System.Guid AddClippingPlane(Plane plane, System.Double uMagnitude, System.Double vMagnitude, IEnumerable<Guid> clippedViewportIds, ObjectAttributes attributes, HistoryRecord history, System.Boolean reference)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "System.Guid AddClippingPlane(Plane plane, System.Double uMagnitude, System.Double vMagnitude, IEnumerable<Guid> clippedViewportIds, ObjectAttributes attributes)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Adds a clipping plane object to Rhino.",
        "since": "5.0",
        "parameters": [
          {
            "name": "plane",
            "type": "Plane",
            "summary": "The plane value."
          },
          {
            "name": "uMagnitude",
            "type": "System.Double",
            "summary": "The size in the U direction."
          },
          {
            "name": "vMagnitude",
            "type": "System.Double",
            "summary": "The size in the V direction."
          },
          {
            "name": "clippedViewportIds",
            "type": "IEnumerable<Guid>",
            "summary": "A list, an array or any enumerable set of viewport IDs that the new clipping plane will clip."
          },
          {
            "name": "attributes",
            "type": "ObjectAttributes",
            "summary": "Document attributes for the plane."
          }
        ],
        "returns": "A unique identifier for the object."
      },
      {
        "signature": "System.Guid AddClippingPlane(Plane plane, System.Double uMagnitude, System.Double vMagnitude, IEnumerable<Guid> clippedViewportIds)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Adds a clipping plane object to Rhino.",
        "since": "5.0",
        "parameters": [
          {
            "name": "plane",
            "type": "Plane",
            "summary": "The plane value."
          },
          {
            "name": "uMagnitude",
            "type": "System.Double",
            "summary": "The size in the U direction."
          },
          {
            "name": "vMagnitude",
            "type": "System.Double",
            "summary": "The size in the V direction."
          },
          {
            "name": "clippedViewportIds",
            "type": "IEnumerable<Guid>",
            "summary": "A list, an array or any enumerable set of viewport IDs that the new clipping plane will clip."
          }
        ],
        "returns": "A unique identifier for the object."
      },
      {
        "signature": "System.Guid AddClippingPlane(Plane plane, System.Double uMagnitude, System.Double vMagnitude, System.Guid clippedViewportId, ObjectAttributes attributes, HistoryRecord history, System.Boolean reference)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "System.Guid AddClippingPlane(Plane plane, System.Double uMagnitude, System.Double vMagnitude, System.Guid clippedViewportId)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Adds a clipping plane object to Rhino.",
        "since": "5.0",
        "parameters": [
          {
            "name": "plane",
            "type": "Plane",
            "summary": "The plane value."
          },
          {
            "name": "uMagnitude",
            "type": "System.Double",
            "summary": "The size in the U direction."
          },
          {
            "name": "vMagnitude",
            "type": "System.Double",
            "summary": "The size in the V direction."
          },
          {
            "name": "clippedViewportId",
            "type": "System.Guid",
            "summary": "Viewport ID that the new clipping plane will clip."
          }
        ],
        "returns": "A unique identifier for the object."
      },
      {
        "signature": "System.Guid AddClippingPlaneSurface(Geometry.ClippingPlaneSurface clippingPlane, ObjectAttributes attributes, HistoryRecord history, System.Boolean reference)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "8.11"
      },
      {
        "signature": "System.Guid AddCurve(Curve curve, ObjectAttributes attributes, HistoryRecord history, System.Boolean reference)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "System.Guid AddCurve(Curve curve, ObjectAttributes attributes)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Adds a curve object to Rhino.",
        "since": "5.0",
        "parameters": [
          {
            "name": "curve",
            "type": "Curve",
            "summary": "A curve. A duplicate of this curve is added to Rhino."
          },
          {
            "name": "attributes",
            "type": "ObjectAttributes",
            "summary": "Attributes to apply to curve."
          }
        ],
        "returns": "A unique identifier for the object."
      },
      {
        "signature": "System.Guid AddCurve(Curve curve)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Adds a curve object to Rhino.",
        "since": "5.0",
        "parameters": [
          {
            "name": "curve",
            "type": "Curve",
            "summary": "A curve. A duplicate of this curve is added to Rhino."
          }
        ],
        "returns": "A unique identifier for the object."
      },
      {
        "signature": "System.Guid AddEllipse(Ellipse ellipse, ObjectAttributes attributes, HistoryRecord history, System.Boolean reference)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "System.Guid AddEllipse(Ellipse ellipse, ObjectAttributes attributes)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Adds a curve object to the document representing an ellipse.",
        "since": "5.0",
        "parameters": [
          {
            "name": "ellipse",
            "type": "Ellipse",
            "summary": "An ellipse value."
          },
          {
            "name": "attributes",
            "type": "ObjectAttributes",
            "summary": "Attributes to apply to ellipse."
          }
        ],
        "returns": "A unique identifier for the object."
      },
      {
        "signature": "System.Guid AddEllipse(Ellipse ellipse)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Adds a curve object to the document representing an ellipse.",
        "since": "5.0",
        "parameters": [
          {
            "name": "ellipse",
            "type": "Ellipse",
            "summary": "An ellipse value."
          }
        ],
        "returns": "A unique identifier for the object."
      },
      {
        "signature": "System.Guid[] AddExplodedInstancePieces(InstanceObject instance, System.Boolean explodeNestedInstances, System.Boolean deleteInstance)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.11"
      },
      {
        "signature": "System.Guid AddExtrusion(Extrusion extrusion, ObjectAttributes attributes, HistoryRecord history, System.Boolean reference)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "System.Guid AddExtrusion(Extrusion extrusion, ObjectAttributes attributes)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Adds an extrusion object to Rhino.",
        "since": "5.0",
        "parameters": [
          {
            "name": "extrusion",
            "type": "Extrusion",
            "summary": "A duplicate of this extrusion is added to Rhino."
          },
          {
            "name": "attributes",
            "type": "ObjectAttributes",
            "summary": "Attributes that will be linked with the extrusion object."
          }
        ],
        "returns": "A unique identifier for the object."
      },
      {
        "signature": "System.Guid AddExtrusion(Extrusion extrusion)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Adds an extrusion object to Rhino.",
        "since": "5.0",
        "parameters": [
          {
            "name": "extrusion",
            "type": "Extrusion",
            "summary": "A duplicate of this extrusion is added to Rhino."
          }
        ],
        "returns": "A unique identifier for the object."
      },
      {
        "signature": "System.Guid AddHatch(Hatch hatch, ObjectAttributes attributes, HistoryRecord history, System.Boolean reference)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "System.Guid AddHatch(Hatch hatch, ObjectAttributes attributes)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "System.Guid AddHatch(Hatch hatch)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "System.Guid AddInstanceObject(System.Int32 instanceDefinitionIndex, Transform instanceXform, ObjectAttributes attributes, HistoryRecord history, System.Boolean reference)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Adds an instance object to the document.",
        "since": "6.24",
        "parameters": [
          {
            "name": "instanceDefinitionIndex",
            "type": "System.Int32",
            "summary": "The index of the instance definition."
          },
          {
            "name": "instanceXform",
            "type": "Transform",
            "summary": "The instance transformation."
          },
          {
            "name": "attributes",
            "type": "ObjectAttributes",
            "summary": "The attributes to apply to the instance object."
          },
          {
            "name": "history",
            "type": "HistoryRecord",
            "summary": "The history record associated with this instance object."
          },
          {
            "name": "reference",
            "type": "System.Boolean",
            "summary": "True if the object is from a reference file. Reference objects do not persist in archives."
          }
        ],
        "returns": "A unique identifier for the object if successful. Guid.Empty it not successful."
      },
      {
        "signature": "System.Guid AddInstanceObject(System.Int32 instanceDefinitionIndex, Transform instanceXform, ObjectAttributes attributes)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Adds an instance object to the document.",
        "since": "5.0",
        "parameters": [
          {
            "name": "instanceDefinitionIndex",
            "type": "System.Int32",
            "summary": "The index of the instance definition."
          },
          {
            "name": "instanceXform",
            "type": "Transform",
            "summary": "The instance transformation."
          },
          {
            "name": "attributes",
            "type": "ObjectAttributes",
            "summary": "The attributes to apply to the instance object."
          }
        ],
        "returns": "A unique identifier for the object if successful. Guid.Empty it not successful."
      },
      {
        "signature": "System.Guid AddInstanceObject(System.Int32 instanceDefinitionIndex, Transform instanceXform)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Adds an instance object to the document.",
        "since": "5.0",
        "parameters": [
          {
            "name": "instanceDefinitionIndex",
            "type": "System.Int32",
            "summary": "The index of the instance definition."
          },
          {
            "name": "instanceXform",
            "type": "Transform",
            "summary": "The instance transformation."
          }
        ],
        "returns": "A unique identifier for the object if successful. Guid.Empty it not successful."
      },
      {
        "signature": "System.Guid AddLeader(IEnumerable<Point3d> points)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "System.Guid AddLeader(Leader leader, ObjectAttributes attributes, HistoryRecord history, System.Boolean reference)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Adds a Leader object to the document.",
        "since": "6.0",
        "parameters": [
          {
            "name": "leader",
            "type": "Leader",
            "summary": "The leader object."
          },
          {
            "name": "attributes",
            "type": "ObjectAttributes",
            "summary": "Attributes to apply to rich text."
          },
          {
            "name": "history",
            "type": "HistoryRecord",
            "summary": "Object history to save."
          },
          {
            "name": "reference",
            "type": "System.Boolean",
            "summary": "If reference, then object will not be saved into the 3dm file."
          }
        ],
        "returns": "The Guid of the newly added object or Guid.Empty on failure."
      },
      {
        "signature": "System.Guid AddLeader(Leader leader, ObjectAttributes attributes)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Adds Leader object to the document.",
        "since": "6.0",
        "parameters": [
          {
            "name": "leader",
            "type": "Leader",
            "summary": "The leader object."
          },
          {
            "name": "attributes",
            "type": "ObjectAttributes",
            "summary": "Attributes to apply to rich text."
          }
        ],
        "returns": "The Guid of the newly added object or Guid.Empty on failure."
      },
      {
        "signature": "System.Guid AddLeader(Leader leader)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Adds a Leader object to the document.",
        "since": "6.0",
        "parameters": [
          {
            "name": "leader",
            "type": "Leader",
            "summary": "The leader object."
          }
        ],
        "returns": "The Id of the newly added object or Guid.Empty on failure."
      },
      {
        "signature": "System.Guid AddLeader(Plane plane, IEnumerable<Point2d> points, ObjectAttributes attributes)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "System.Guid AddLeader(Plane plane, IEnumerable<Point2d> points)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "System.Guid AddLeader(System.String text, IEnumerable<Point3d> points)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "System.Guid AddLeader(System.String text, Plane plane, IEnumerable<Point2d> points, ObjectAttributes attributes, HistoryRecord history, System.Boolean reference)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "System.Guid AddLeader(System.String text, Plane plane, IEnumerable<Point2d> points, ObjectAttributes attributes)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "System.Guid AddLeader(System.String text, Plane plane, IEnumerable<Point2d> points)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "System.Guid AddLine(Line line, ObjectAttributes attributes)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Adds a line object to Rhino.",
        "since": "5.0",
        "parameters": [
          {
            "name": "line",
            "type": "Line",
            "summary": "The line value."
          },
          {
            "name": "attributes",
            "type": "ObjectAttributes",
            "summary": "Attributes to apply to line."
          }
        ],
        "returns": "A unique identifier for the object."
      },
      {
        "signature": "System.Guid AddLine(Line line)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Adds a line object to Rhino.",
        "since": "5.0",
        "returns": "A unique identifier for the object."
      },
      {
        "signature": "System.Guid AddLine(Point3d from, Point3d to, ObjectAttributes attributes, HistoryRecord history, System.Boolean reference)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "System.Guid AddLine(Point3d from, Point3d to, ObjectAttributes attributes)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Adds a line object to Rhino.",
        "since": "5.0",
        "parameters": [
          {
            "name": "from",
            "type": "Point3d",
            "summary": "The line origin."
          },
          {
            "name": "to",
            "type": "Point3d",
            "summary": "The line end."
          },
          {
            "name": "attributes",
            "type": "ObjectAttributes",
            "summary": "Attributes to apply to line."
          }
        ],
        "returns": "A unique identifier for the object."
      },
      {
        "signature": "System.Guid AddLine(Point3d from, Point3d to)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Adds a line object to Rhino.",
        "since": "5.0",
        "parameters": [
          {
            "name": "from",
            "type": "Point3d",
            "summary": "The line origin."
          },
          {
            "name": "to",
            "type": "Point3d",
            "summary": "The line end."
          }
        ],
        "returns": "A unique identifier for the object."
      },
      {
        "signature": "System.Guid AddLinearDimension(LinearDimension dimension, ObjectAttributes attributes, HistoryRecord history, System.Boolean reference)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Adds a linear dimension object to the document.",
        "since": "5.0",
        "parameters": [
          {
            "name": "dimension",
            "type": "LinearDimension",
            "summary": "Dimension object to add."
          },
          {
            "name": "attributes",
            "type": "ObjectAttributes",
            "summary": "Attributes to apply to dimension."
          },
          {
            "name": "history",
            "type": "HistoryRecord",
            "summary": "Object history to save."
          },
          {
            "name": "reference",
            "type": "System.Boolean",
            "summary": "If reference, then object will not be saved into the 3dm file."
          }
        ],
        "returns": "The Guid of the newly added object or Guid.Empty on failure."
      },
      {
        "signature": "System.Guid AddLinearDimension(LinearDimension dimension, ObjectAttributes attributes)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Adds a linear dimension object to the document.",
        "since": "5.0",
        "parameters": [
          {
            "name": "dimension",
            "type": "LinearDimension",
            "summary": "Dimension object to add."
          },
          {
            "name": "attributes",
            "type": "ObjectAttributes",
            "summary": ""
          }
        ],
        "returns": "The Guid of the newly added object or Guid.Empty on failure."
      },
      {
        "signature": "System.Guid AddLinearDimension(LinearDimension dimension)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Adds a linear dimension object to the document.",
        "since": "5.0",
        "parameters": [
          {
            "name": "dimension",
            "type": "LinearDimension",
            "summary": "Dimension object to add."
          }
        ],
        "returns": "The Id of the newly added object or Guid.Empty on failure."
      },
      {
        "signature": "System.Guid AddMesh(Geometry.Mesh mesh)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Adds a mesh object to Rhino.",
        "since": "5.0",
        "parameters": [
          {
            "name": "mesh",
            "type": "Geometry.Mesh",
            "summary": "A duplicate of this mesh is added to Rhino."
          }
        ],
        "returns": "A unique identifier for the object."
      },
      {
        "signature": "System.Guid AddMesh(Mesh mesh, ObjectAttributes attributes, HistoryRecord history, System.Boolean reference, System.Boolean requireValidMesh)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0"
      },
      {
        "signature": "System.Guid AddMesh(Mesh mesh, ObjectAttributes attributes, HistoryRecord history, System.Boolean reference)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "System.Guid AddMesh(Mesh mesh, ObjectAttributes attributes)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Adds a mesh object to Rhino.",
        "since": "5.0",
        "parameters": [
          {
            "name": "mesh",
            "type": "Mesh",
            "summary": "A duplicate of this mesh is added to Rhino."
          },
          {
            "name": "attributes",
            "type": "ObjectAttributes",
            "summary": "Attributes that will be linked with the mesh object."
          }
        ],
        "returns": "A unique identifier for the object."
      },
      {
        "signature": "System.Guid AddMorphControl(MorphControl morphControl, ObjectAttributes attributes, HistoryRecord history, System.Boolean reference)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0"
      },
      {
        "signature": "System.Guid AddMorphControl(MorphControl morphControl, ObjectAttributes attributes)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "System.Guid AddMorphControl(MorphControl morphControl)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "System.Guid AddOrderedPointCloud(System.Int32 xCt, System.Int32 yCt, System.Int32 zCt, Point3d min, Point3d max, ObjectAttributes attributes, HistoryRecord history, System.Boolean reference)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Adds a point cloud object to the document.",
        "since": "8.0",
        "parameters": [
          {
            "name": "xCt",
            "type": "System.Int32",
            "summary": "Number of points in X dir."
          },
          {
            "name": "yCt",
            "type": "System.Int32",
            "summary": "Number of points in Y dir."
          },
          {
            "name": "zCt",
            "type": "System.Int32",
            "summary": "Number of points in Z dir."
          },
          {
            "name": "min",
            "type": "Point3d",
            "summary": "point at x0,y0,z0 of bounding box of the pointcloud"
          },
          {
            "name": "max",
            "type": "Point3d",
            "summary": "point at x1,y1,z1 of bounding box of the pointcloud"
          },
          {
            "name": "attributes",
            "type": "ObjectAttributes",
            "summary": "Attributes to apply to point cloud. None is acceptable"
          },
          {
            "name": "history",
            "type": "HistoryRecord",
            "summary": "history associated with this point cloud. None is acceptable"
          },
          {
            "name": "reference",
            "type": "System.Boolean",
            "summary": "True if the object is from a reference file.  Reference objects do not persist in archives"
          }
        ],
        "returns": "A unique identifier for the object."
      },
      {
        "signature": "System.Guid AddOrderedPointCloud(System.Int32 xCt, System.Int32 yCt, System.Int32 zCt, Point3d[] box, ObjectAttributes attributes, HistoryRecord history, System.Boolean reference)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Adds a point cloud object to the document.",
        "since": "8.0",
        "parameters": [
          {
            "name": "xCt",
            "type": "System.Int32",
            "summary": "Number of points in X dir."
          },
          {
            "name": "yCt",
            "type": "System.Int32",
            "summary": "Number of points in Y dir."
          },
          {
            "name": "zCt",
            "type": "System.Int32",
            "summary": "Number of points in Z dir."
          },
          {
            "name": "box",
            "type": "Point3d[]",
            "summary": "box to use for output, does not need to be a boundingbox.  The function that takes to points assumes it's a bounding box."
          },
          {
            "name": "attributes",
            "type": "ObjectAttributes",
            "summary": "Attributes to apply to point cloud. None is acceptable"
          },
          {
            "name": "history",
            "type": "HistoryRecord",
            "summary": "history associated with this point cloud. None is acceptable"
          },
          {
            "name": "reference",
            "type": "System.Boolean",
            "summary": "True if the object is from a reference file.  Reference objects do not persist in archives"
          }
        ],
        "returns": "A unique identifier for the object."
      },
      {
        "signature": "System.Guid AddOrdinateDimension(Geometry.OrdinateDimension dimordinate, ObjectAttributes attributes, HistoryRecord history, System.Boolean reference)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Adds an ordinate dimension object to the document.",
        "since": "6.0",
        "parameters": [
          {
            "name": "dimordinate",
            "type": "Geometry.OrdinateDimension",
            "summary": "Dimension object to add."
          },
          {
            "name": "attributes",
            "type": "ObjectAttributes",
            "summary": "Attributes to apply to dimension."
          },
          {
            "name": "history",
            "type": "HistoryRecord",
            "summary": "Object history to save."
          },
          {
            "name": "reference",
            "type": "System.Boolean",
            "summary": "If reference, then object will not be saved into the 3dm file."
          }
        ],
        "returns": "The Guid of the newly added object or Guid.Empty on failure."
      },
      {
        "signature": "System.Guid AddPictureFrame(Plane plane, System.String texturePath, System.Boolean asMesh, System.Double width, System.Double height, System.Boolean selfIllumination, System.Boolean embedBitmap)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Creates a PictureFrame object from a plane and a path to an image file, Note, a PictureFrame object is just a Plane surface or mesh that has a material with a texture assigned to it that displays in all display modes.",
        "since": "5.10",
        "parameters": [
          {
            "name": "plane",
            "type": "Plane",
            "summary": "Plane in which the PictureFrame will be created.  Bottom left corner of picture will be at plane's origin, width will be in the plane's x axis direction, height will be in the plane's y axis direction."
          },
          {
            "name": "texturePath",
            "type": "System.String",
            "summary": "path to an image file"
          },
          {
            "name": "asMesh",
            "type": "System.Boolean",
            "summary": "If true, the function will make a MeshObject rather than a surface"
          },
          {
            "name": "width",
            "type": "System.Double",
            "summary": "Width of the resulting PictureFrame. If 0.0, the width of the picture frame is the width of the image if height is also 0.0 or calculated from the height and aspect ratio of the image if height is not 0.0."
          },
          {
            "name": "height",
            "type": "System.Double",
            "summary": "Height of the resulting PictureFrame. If 0.0, the height of the picture frame is the height of the image if width is also 0.0 or calculated from the width and aspect ratio of the image if width is not 0.0."
          },
          {
            "name": "selfIllumination",
            "type": "System.Boolean",
            "summary": "If true, the image mapped to the picture frame plane always displays at full intensity and is not affected by light or shadow."
          },
          {
            "name": "embedBitmap",
            "type": "System.Boolean",
            "summary": "If true, the function adds the image to the bitmap table of the document to which the PictureFrame will be added"
          }
        ],
        "returns": "A unique identifier for the object"
      },
      {
        "signature": "System.Guid AddPoint(Point point, ObjectAttributes attributes, HistoryRecord history, System.Boolean reference)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Adds a point object and its geometry-linked information to the document",
        "since": "6.0",
        "parameters": [
          {
            "name": "point",
            "type": "Point",
            "summary": "A point geometry class."
          },
          {
            "name": "attributes",
            "type": "ObjectAttributes",
            "summary": "attributes to apply to point. None is acceptable"
          },
          {
            "name": "history",
            "type": "HistoryRecord",
            "summary": "history associated with this point. None is acceptable"
          },
          {
            "name": "reference",
            "type": "System.Boolean",
            "summary": "True if the object is from a reference file.  Reference objects do not persist in archives"
          }
        ],
        "returns": "A unique identifier for the object."
      },
      {
        "signature": "System.Guid AddPoint(Point3d point, ObjectAttributes attributes, HistoryRecord history, System.Boolean reference)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Adds a point object to the document",
        "since": "5.0",
        "parameters": [
          {
            "name": "point",
            "type": "Point3d",
            "summary": "location of point"
          },
          {
            "name": "attributes",
            "type": "ObjectAttributes",
            "summary": "attributes to apply to point. None is acceptable"
          },
          {
            "name": "history",
            "type": "HistoryRecord",
            "summary": "history associated with this point. None is acceptable"
          },
          {
            "name": "reference",
            "type": "System.Boolean",
            "summary": "True if the object is from a reference file.  Reference objects do not persist in archives"
          }
        ],
        "returns": "A unique identifier for the object."
      },
      {
        "signature": "System.Guid AddPoint(Point3d point, ObjectAttributes attributes)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Adds a point object to the document.",
        "since": "5.0",
        "parameters": [
          {
            "name": "point",
            "type": "Point3d",
            "summary": "location of point."
          },
          {
            "name": "attributes",
            "type": "ObjectAttributes",
            "summary": "attributes to apply to point. None is acceptable"
          }
        ],
        "returns": "A unique identifier for the object."
      },
      {
        "signature": "System.Guid AddPoint(Point3d point)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Adds a point object to the document.",
        "since": "5.0",
        "parameters": [
          {
            "name": "point",
            "type": "Point3d",
            "summary": "location of point."
          }
        ],
        "returns": "A unique identifier for the object."
      },
      {
        "signature": "System.Guid AddPoint(Point3f point, ObjectAttributes attributes)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Adds a point object to the document.",
        "since": "5.0",
        "parameters": [
          {
            "name": "point",
            "type": "Point3f",
            "summary": "location of point."
          },
          {
            "name": "attributes",
            "type": "ObjectAttributes",
            "summary": "attributes to apply to point."
          }
        ],
        "returns": "A unique identifier for the object."
      },
      {
        "signature": "System.Guid AddPoint(Point3f point)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Adds a point object to the document.",
        "since": "5.0",
        "parameters": [
          {
            "name": "point",
            "type": "Point3f",
            "summary": "location of point."
          }
        ],
        "returns": "A unique identifier for the object."
      },
      {
        "signature": "System.Guid AddPoint(System.Double x, System.Double y, System.Double z)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Adds a point object to the document.",
        "since": "5.0",
        "parameters": [
          {
            "name": "x",
            "type": "System.Double",
            "summary": "X component of point coordinate."
          },
          {
            "name": "y",
            "type": "System.Double",
            "summary": "Y component of point coordinate."
          },
          {
            "name": "z",
            "type": "System.Double",
            "summary": "Z component of point coordinate."
          }
        ],
        "returns": "A unique identifier for the object.."
      },
      {
        "signature": "System.Guid AddPointCloud(IEnumerable<Point3d> points, ObjectAttributes attributes, HistoryRecord history, System.Boolean reference)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Adds a point cloud object to the document.",
        "since": "5.0",
        "parameters": [
          {
            "name": "points",
            "type": "IEnumerable<Point3d>",
            "summary": "A list, an array or any enumerable set of points"
          },
          {
            "name": "attributes",
            "type": "ObjectAttributes",
            "summary": "Attributes to apply to point cloud. None is acceptable"
          },
          {
            "name": "history",
            "type": "HistoryRecord",
            "summary": "history associated with this point cloud. None is acceptable"
          },
          {
            "name": "reference",
            "type": "System.Boolean",
            "summary": "True if the object is from a reference file.  Reference objects do not persist in archives"
          }
        ],
        "returns": "A unique identifier for the object."
      },
      {
        "signature": "System.Guid AddPointCloud(IEnumerable<Point3d> points, ObjectAttributes attributes)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Adds a point cloud object to the document.",
        "since": "5.0",
        "parameters": [
          {
            "name": "points",
            "type": "IEnumerable<Point3d>",
            "summary": "A list, an array or any enumerable set of points."
          },
          {
            "name": "attributes",
            "type": "ObjectAttributes",
            "summary": "attributes to apply to point cloud."
          }
        ],
        "returns": "A unique identifier for the object."
      },
      {
        "signature": "System.Guid AddPointCloud(IEnumerable<Point3d> points)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Adds a point cloud object to the document.",
        "since": "5.0",
        "parameters": [
          {
            "name": "points",
            "type": "IEnumerable<Point3d>",
            "summary": "A list, an array or any enumerable set of points."
          }
        ],
        "returns": "A unique identifier for the object."
      },
      {
        "signature": "System.Guid AddPointCloud(PointCloud cloud, ObjectAttributes attributes, HistoryRecord history, System.Boolean reference)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Adds a point cloud object to the document.",
        "since": "5.0",
        "parameters": [
          {
            "name": "cloud",
            "type": "PointCloud",
            "summary": "PointCloud to add."
          },
          {
            "name": "attributes",
            "type": "ObjectAttributes",
            "summary": "Attributes to apply to point cloud. None is acceptable"
          },
          {
            "name": "history",
            "type": "HistoryRecord",
            "summary": "history associated with this point cloud. None is acceptable"
          },
          {
            "name": "reference",
            "type": "System.Boolean",
            "summary": "True if the object is from a reference file.  Reference objects do not persist in archives"
          }
        ],
        "returns": "A unique identifier for the object."
      },
      {
        "signature": "System.Guid AddPointCloud(PointCloud cloud, ObjectAttributes attributes)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Adds a point cloud object to the document.",
        "since": "5.0",
        "parameters": [
          {
            "name": "cloud",
            "type": "PointCloud",
            "summary": "PointCloud to add."
          },
          {
            "name": "attributes",
            "type": "ObjectAttributes",
            "summary": "Attributes to apply to point cloud."
          }
        ],
        "returns": "A unique identifier for the object."
      },
      {
        "signature": "System.Guid AddPointCloud(PointCloud cloud)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Adds a point cloud object to the document.",
        "since": "5.0",
        "parameters": [
          {
            "name": "cloud",
            "type": "PointCloud",
            "summary": "PointCloud to add."
          }
        ],
        "returns": "A unique identifier for the object."
      },
      {
        "signature": "RhinoList<Guid> AddPoints(IEnumerable<Point3d> points, ObjectAttributes attributes)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Adds multiple points to the document.",
        "since": "5.0",
        "parameters": [
          {
            "name": "points",
            "type": "IEnumerable<Point3d>",
            "summary": "Points to add."
          },
          {
            "name": "attributes",
            "type": "ObjectAttributes",
            "summary": "Attributes to apply to point objects."
          }
        ],
        "returns": "List of object ids."
      },
      {
        "signature": "RhinoList<Guid> AddPoints(IEnumerable<Point3d> points)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Adds multiple points to the document.",
        "since": "5.0",
        "parameters": [
          {
            "name": "points",
            "type": "IEnumerable<Point3d>",
            "summary": "Points to add."
          }
        ],
        "returns": "List of object ids."
      },
      {
        "signature": "RhinoList<Guid> AddPoints(IEnumerable<Point3f> points, ObjectAttributes attributes)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Adds multiple points to the document.",
        "since": "5.0",
        "parameters": [
          {
            "name": "points",
            "type": "IEnumerable<Point3f>",
            "summary": "Points to add."
          },
          {
            "name": "attributes",
            "type": "ObjectAttributes",
            "summary": "Attributes to apply to point objects."
          }
        ],
        "returns": "List of object ids."
      },
      {
        "signature": "RhinoList<Guid> AddPoints(IEnumerable<Point3f> points)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Adds multiple points to the document.",
        "since": "5.0",
        "parameters": [
          {
            "name": "points",
            "type": "IEnumerable<Point3f>",
            "summary": "Points to add."
          }
        ],
        "returns": "List of object ids."
      },
      {
        "signature": "System.Guid AddPolyline(IEnumerable<Point3d> points, ObjectAttributes attributes, HistoryRecord history, System.Boolean reference)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "System.Guid AddPolyline(IEnumerable<Point3d> points, ObjectAttributes attributes)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Adds a polyline object to Rhino.",
        "since": "5.0",
        "parameters": [
          {
            "name": "points",
            "type": "IEnumerable<Point3d>",
            "summary": "A <b>Polyline</b> ; a list, an array, or any enumerable set of <b>Point3d</b> ."
          },
          {
            "name": "attributes",
            "type": "ObjectAttributes",
            "summary": "attributes to apply to line."
          }
        ],
        "returns": "A unique identifier for the object."
      },
      {
        "signature": "System.Guid AddPolyline(IEnumerable<Point3d> points)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Adds a polyline object to Rhino.",
        "since": "5.0",
        "parameters": [
          {
            "name": "points",
            "type": "IEnumerable<Point3d>",
            "summary": "A <b>Polyline</b> ; a list, an array, or any enumerable set of <b>Point3d</b> ."
          }
        ],
        "returns": "A unique identifier for the object."
      },
      {
        "signature": "System.Guid AddRadialDimension(RadialDimension dimension, ObjectAttributes attributes, HistoryRecord history, System.Boolean reference)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Adds a radial dimension object to the document.",
        "since": "5.0",
        "parameters": [
          {
            "name": "dimension",
            "type": "RadialDimension",
            "summary": "Dimension object to add."
          },
          {
            "name": "attributes",
            "type": "ObjectAttributes",
            "summary": "Attributes to apply to dimension."
          },
          {
            "name": "history",
            "type": "HistoryRecord",
            "summary": "Object history to save."
          },
          {
            "name": "reference",
            "type": "System.Boolean",
            "summary": "If reference, then object will not be saved into the 3dm file."
          }
        ],
        "returns": "The Guid of the newly added object or Guid.Empty on failure."
      },
      {
        "signature": "System.Guid AddRadialDimension(RadialDimension dimension, ObjectAttributes attributes)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "System.Guid AddRadialDimension(RadialDimension dimension)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "System.Guid AddRectangle(Rectangle3d rectangle, ObjectAttributes attributes, HistoryRecord history, System.Boolean reference)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Adds a rectangle to the object table.",
        "since": "6.0",
        "parameters": [
          {
            "name": "rectangle",
            "type": "Rectangle3d",
            "summary": "The rectangle."
          },
          {
            "name": "attributes",
            "type": "ObjectAttributes",
            "summary": "Attributes that will be linked with the surface object."
          },
          {
            "name": "history",
            "type": "HistoryRecord",
            "summary": "History data records."
          },
          {
            "name": "reference",
            "type": "System.Boolean",
            "summary": "If a reference, object will not be saved in the document."
          }
        ],
        "returns": "The ID."
      },
      {
        "signature": "System.Guid AddRectangle(Rectangle3d rectangle, ObjectAttributes attributes)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Adds a rectangle to the object table.",
        "since": "6.0",
        "parameters": [
          {
            "name": "rectangle",
            "type": "Rectangle3d",
            "summary": "The rectangle."
          },
          {
            "name": "attributes",
            "type": "ObjectAttributes",
            "summary": "Attributes that will be linked with the surface object."
          }
        ],
        "returns": "The ID."
      },
      {
        "signature": "System.Guid AddRectangle(Rectangle3d rectangle)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Adds a rectangle to the object table.",
        "since": "6.0",
        "parameters": [
          {
            "name": "rectangle",
            "type": "Rectangle3d",
            "summary": "The rectangle."
          }
        ],
        "returns": "The ID."
      },
      {
        "signature": "System.Void AddRhinoObject(BrepObject brepObject, Brep brep)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "System.Void AddRhinoObject(CurveObject curveObject, Curve curve)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "System.Void AddRhinoObject(Custom.CustomBrepObject brepObject, HistoryRecord history)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.1"
      },
      {
        "signature": "System.Void AddRhinoObject(Custom.CustomBrepObject brepObject)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "System.Void AddRhinoObject(Custom.CustomCurveObject curveObject, HistoryRecord history)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.1"
      },
      {
        "signature": "System.Void AddRhinoObject(Custom.CustomMeshObject meshObject, HistoryRecord history)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.1"
      },
      {
        "signature": "System.Void AddRhinoObject(Custom.CustomMeshObject meshObject)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "System.Void AddRhinoObject(Custom.CustomPointObject pointObject, HistoryRecord history)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.1"
      },
      {
        "signature": "System.Void AddRhinoObject(Custom.CustomPointObject pointObject)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.6"
      },
      {
        "signature": "System.Void AddRhinoObject(MeshObject meshObject, Mesh mesh)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "System.Void AddRhinoObject(PointObject pointObject, Point point)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.6"
      },
      {
        "signature": "System.Guid AddSphere(Sphere sphere, ObjectAttributes attributes, HistoryRecord history, System.Boolean reference)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "System.Guid AddSphere(Sphere sphere, ObjectAttributes attributes)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "System.Guid AddSphere(Sphere sphere)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "System.Guid AddSubD(SubD subD, ObjectAttributes attributes, HistoryRecord history, System.Boolean reference)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Adds a SubD object to Rhino.",
        "since": "7.0",
        "parameters": [
          {
            "name": "subD",
            "type": "SubD",
            "summary": "A duplicate of this SubD is added to Rhino."
          },
          {
            "name": "attributes",
            "type": "ObjectAttributes",
            "summary": "Attributes that will be linked with the object."
          },
          {
            "name": "history",
            "type": "HistoryRecord",
            "summary": ""
          },
          {
            "name": "reference",
            "type": "System.Boolean",
            "summary": ""
          }
        ],
        "returns": "A unique identifier for the object."
      },
      {
        "signature": "System.Guid AddSubD(SubD subD, ObjectAttributes attributes)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Adds a SubD object to Rhino.",
        "since": "7.0",
        "parameters": [
          {
            "name": "subD",
            "type": "SubD",
            "summary": "A duplicate of this SubD is added to Rhino."
          },
          {
            "name": "attributes",
            "type": "ObjectAttributes",
            "summary": "Attributes that will be linked with the object."
          }
        ],
        "returns": "A unique identifier for the object."
      },
      {
        "signature": "System.Guid AddSubD(SubD subD)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Adds a SubD object to Rhino.",
        "since": "7.0",
        "parameters": [
          {
            "name": "subD",
            "type": "SubD",
            "summary": "A duplicate of this SubD is added to Rhino."
          }
        ],
        "returns": "A unique identifier for the object."
      },
      {
        "signature": "System.Guid AddSurface(Surface surface, ObjectAttributes attributes, HistoryRecord history, System.Boolean reference)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "System.Guid AddSurface(Surface surface, ObjectAttributes attributes)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Adds a surface object to Rhino.",
        "since": "5.0",
        "parameters": [
          {
            "name": "surface",
            "type": "Surface",
            "summary": "A duplicate of this surface is added to Rhino."
          },
          {
            "name": "attributes",
            "type": "ObjectAttributes",
            "summary": "Attributes that will be linked with the surface object."
          }
        ],
        "returns": "A unique identifier for the object."
      },
      {
        "signature": "System.Guid AddSurface(Surface surface)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Adds a surface object to Rhino.",
        "since": "5.0",
        "parameters": [
          {
            "name": "surface",
            "type": "Surface",
            "summary": "A duplicate of this surface is added to Rhino."
          }
        ],
        "returns": "A unique identifier for the object."
      },
      {
        "signature": "System.Guid AddText(System.String text, Plane plane, System.Double height, System.String fontName, System.Boolean bold, System.Boolean italic, ObjectAttributes attributes, HistoryRecord history, System.Boolean reference)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "System.Guid AddText(System.String text, Plane plane, System.Double height, System.String fontName, System.Boolean bold, System.Boolean italic, ObjectAttributes attributes)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Adds an annotation text object to the document.",
        "since": "5.0",
        "parameters": [
          {
            "name": "text",
            "type": "System.String",
            "summary": "Text string."
          },
          {
            "name": "plane",
            "type": "Plane",
            "summary": "Plane of text."
          },
          {
            "name": "height",
            "type": "System.Double",
            "summary": "Height of text."
          },
          {
            "name": "fontName",
            "type": "System.String",
            "summary": "Name of FontFace."
          },
          {
            "name": "bold",
            "type": "System.Boolean",
            "summary": "Bold flag."
          },
          {
            "name": "italic",
            "type": "System.Boolean",
            "summary": "Italic flag."
          },
          {
            "name": "attributes",
            "type": "ObjectAttributes",
            "summary": "Attributes that will be linked with the object."
          }
        ],
        "returns": "The Guid of the newly added object or Guid.Empty on failure."
      },
      {
        "signature": "System.Guid AddText(System.String text, Plane plane, System.Double height, System.String fontName, System.Boolean bold, System.Boolean italic, TextJustification justification, ObjectAttributes attributes, HistoryRecord history, System.Boolean reference)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "System.Guid AddText(System.String text, Plane plane, System.Double height, System.String fontName, System.Boolean bold, System.Boolean italic, TextJustification justification, ObjectAttributes attributes)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "System.Guid AddText(System.String text, Plane plane, System.Double height, System.String fontName, System.Boolean bold, System.Boolean italic, TextJustification justification)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "System.Guid AddText(System.String text, Plane plane, System.Double height, System.String fontName, System.Boolean bold, System.Boolean italic)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Adds an annotation text object to the document.",
        "since": "5.0",
        "parameters": [
          {
            "name": "text",
            "type": "System.String",
            "summary": "Text string."
          },
          {
            "name": "plane",
            "type": "Plane",
            "summary": "Plane of text."
          },
          {
            "name": "height",
            "type": "System.Double",
            "summary": "Height of text."
          },
          {
            "name": "fontName",
            "type": "System.String",
            "summary": "Name of FontFace."
          },
          {
            "name": "bold",
            "type": "System.Boolean",
            "summary": "Bold flag."
          },
          {
            "name": "italic",
            "type": "System.Boolean",
            "summary": "Italic flag."
          }
        ],
        "returns": "The Guid of the newly added object or Guid.Empty on failure."
      },
      {
        "signature": "System.Guid AddText(Text3d text3d, ObjectAttributes attributes)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Adds an annotation text object to the document.",
        "since": "5.0",
        "parameters": [
          {
            "name": "text3d",
            "type": "Text3d",
            "summary": "The text object to add."
          },
          {
            "name": "attributes",
            "type": "ObjectAttributes",
            "summary": "Object Attributes."
          }
        ],
        "returns": "The Guid of the newly added object or Guid.Empty on failure."
      },
      {
        "signature": "System.Guid AddText(Text3d text3d)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Adds an annotation text object to the document.",
        "since": "5.0",
        "parameters": [
          {
            "name": "text3d",
            "type": "Text3d",
            "summary": "The text object to add."
          }
        ],
        "returns": "The Guid of the newly added object or Guid.Empty on failure."
      },
      {
        "signature": "System.Guid AddText(TextEntity text, ObjectAttributes attributes, HistoryRecord history, System.Boolean reference)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Adds a text object to the document.",
        "since": "5.0",
        "parameters": [
          {
            "name": "text",
            "type": "TextEntity",
            "summary": "Text object to add."
          },
          {
            "name": "attributes",
            "type": "ObjectAttributes",
            "summary": ""
          },
          {
            "name": "history",
            "type": "HistoryRecord",
            "summary": "Object history to save."
          },
          {
            "name": "reference",
            "type": "System.Boolean",
            "summary": "If reference, then object will not be saved into the 3dm file."
          }
        ],
        "returns": "The Id of the newly added object or Guid.Empty on failure."
      },
      {
        "signature": "System.Guid AddText(TextEntity text, ObjectAttributes attributes)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Adds a text object to the document.",
        "since": "5.0",
        "parameters": [
          {
            "name": "text",
            "type": "TextEntity",
            "summary": "Text object to add."
          },
          {
            "name": "attributes",
            "type": "ObjectAttributes",
            "summary": ""
          }
        ],
        "returns": "The Id of the newly added object or Guid.Empty on failure."
      },
      {
        "signature": "System.Guid AddText(TextEntity text)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Adds a v6_TextObject to the document.",
        "since": "5.0",
        "parameters": [
          {
            "name": "text",
            "type": "TextEntity",
            "summary": "Text object to add."
          }
        ],
        "returns": "The Id of the newly added object or Guid.Empty on failure."
      },
      {
        "signature": "System.Guid AddTextDot(System.String text, Point3d location, ObjectAttributes attributes)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Adds a text dot object to Rhino.",
        "since": "5.0",
        "parameters": [
          {
            "name": "text",
            "type": "System.String",
            "summary": "A text string."
          },
          {
            "name": "location",
            "type": "Point3d",
            "summary": "A point position."
          },
          {
            "name": "attributes",
            "type": "ObjectAttributes",
            "summary": "Attributes to apply to curve."
          }
        ],
        "returns": "The Guid of the newly added object or Guid.Empty on failure."
      },
      {
        "signature": "System.Guid AddTextDot(System.String text, Point3d location)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Adds a text dot object to Rhino.",
        "since": "5.0",
        "parameters": [
          {
            "name": "text",
            "type": "System.String",
            "summary": "A text string."
          },
          {
            "name": "location",
            "type": "Point3d",
            "summary": "A point position."
          }
        ],
        "returns": "A unique identifier for the object."
      },
      {
        "signature": "System.Guid AddTextDot(TextDot dot, ObjectAttributes attributes, HistoryRecord history, System.Boolean reference)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "System.Guid AddTextDot(TextDot dot, ObjectAttributes attributes)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Adds a text dot object to Rhino.",
        "since": "5.0",
        "parameters": [
          {
            "name": "dot",
            "type": "TextDot",
            "summary": "A text dot that will be copied."
          },
          {
            "name": "attributes",
            "type": "ObjectAttributes",
            "summary": "Attributes to apply to text dot."
          }
        ],
        "returns": "The Guid of the newly added object or Guid.Empty on failure."
      },
      {
        "signature": "System.Guid AddTextDot(TextDot dot)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Adds a text dot object to Rhino.",
        "since": "5.0",
        "parameters": [
          {
            "name": "dot",
            "type": "TextDot",
            "summary": "A text dot that will be copied."
          }
        ],
        "returns": "A unique identifier for the object."
      },
      {
        "signature": "RhinoObject[] AllObjectsSince(System.UInt32 runtimeSerialNumber)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets all the objects that have been added to the document since a given runtime serial number.",
        "since": "5.0",
        "parameters": [
          {
            "name": "runtimeSerialNumber",
            "type": "System.UInt32",
            "summary": "Runtime serial number of the last object not to include in the list."
          }
        ],
        "returns": "An array of objects or None if no objects were added since the given runtime serial number."
      },
      {
        "signature": "System.Boolean AnySelectedObjects(out System.Boolean referenceObjectSelected, out System.Boolean referenceBlockSelected)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Fast existence test for the current selection, with a reference breakdown, that does NOT materialize the selected objects. This is equivalent to testing whether  <b>FindByFilter(ObjectEnumeratorSettings)</b> with NormalObjects, ActiveObjects, ReferenceObjects, IncludeLights and SelectedObjectsFilter would return any objects (and whether any of them are reference objects / reference blocks), but it uses the fast selection iterator and stops at the first match instead of building a RhinoObject[] of the entire selection. Intended for selection-change UI guards (e.g. the Layers panel).",
        "since": "9.0",
        "parameters": [
          {
            "name": "referenceObjectSelected",
            "type": "System.Boolean",
            "summary": "Set to True if any selected object is a reference object."
          },
          {
            "name": "referenceBlockSelected",
            "type": "System.Boolean",
            "summary": "Set to True if any selected reference object is a block (instance reference)."
          }
        ],
        "returns": "True if any object is selected."
      },
      {
        "signature": "System.Int32 Delete(IEnumerable<Guid> objectIds, System.Boolean quiet)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Deletes a collection of objects from the document.",
        "since": "5.0",
        "parameters": [
          {
            "name": "objectIds",
            "type": "IEnumerable<Guid>",
            "summary": "Ids of all objects to delete."
          },
          {
            "name": "quiet",
            "type": "System.Boolean",
            "summary": "If false, a message box will appear when an object cannot be deleted."
          }
        ],
        "returns": "The number of successfully deleted objects."
      },
      {
        "signature": "System.Boolean Delete(ObjRef objref, System.Boolean quiet, System.Boolean ignoreModes)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Deletes objref.Object(). The deletion can be undone by calling UndeleteObject().",
        "since": "6.0",
        "parameters": [
          {
            "name": "objref",
            "type": "ObjRef",
            "summary": "objref.Object() will be deleted."
          },
          {
            "name": "quiet",
            "type": "System.Boolean",
            "summary": "If false, a message box will appear when an object cannot be deleted."
          },
          {
            "name": "ignoreModes",
            "type": "System.Boolean",
            "summary": "If true, locked and hidden objects are deleted.  If False objects that are locked, hidden, or on locked or hidden layers are not deleted."
          }
        ],
        "returns": "True on success, False on failure."
      },
      {
        "signature": "System.Boolean Delete(ObjRef objref, System.Boolean quiet)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Deletes objref.Object(). The deletion can be undone by calling UndeleteObject().",
        "since": "5.0",
        "parameters": [
          {
            "name": "objref",
            "type": "ObjRef",
            "summary": "objref.Object() will be deleted."
          },
          {
            "name": "quiet",
            "type": "System.Boolean",
            "summary": "If false, a message box will appear when an object cannot be deleted."
          }
        ],
        "returns": "True on success, False on failure."
      },
      {
        "signature": "System.Boolean Delete(RhinoObject obj, System.Boolean quiet, System.Boolean ignoreModes)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Deletes object from document. The deletion can be undone by calling UndeleteObject().",
        "since": "6.0",
        "parameters": [
          {
            "name": "obj",
            "type": "RhinoObject",
            "summary": "The object to delete."
          },
          {
            "name": "quiet",
            "type": "System.Boolean",
            "summary": "If false, a message box will appear when an object cannot be deleted."
          },
          {
            "name": "ignoreModes",
            "type": "System.Boolean",
            "summary": "If true, locked and hidden objects are deleted.  If False objects that are locked, hidden, or on locked or hidden layers are not deleted."
          }
        ],
        "returns": "True on success, False on failure."
      },
      {
        "signature": "System.Boolean Delete(RhinoObject obj, System.Boolean quiet)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Deletes object from document. The deletion can be undone by calling UndeleteObject().",
        "since": "5.0",
        "parameters": [
          {
            "name": "obj",
            "type": "RhinoObject",
            "summary": "The object to delete."
          },
          {
            "name": "quiet",
            "type": "System.Boolean",
            "summary": "If false, a message box will appear when an object cannot be deleted."
          }
        ],
        "returns": "True on success, False on failure."
      },
      {
        "signature": "System.Boolean Delete(RhinoObject item)",
        "modifiers": ["public", "override"],
        "protected": false,
        "virtual": false,
        "summary": "Deletes an object, taking into account modes and not showing error message boxes.",
        "since": "6.0",
        "parameters": [
          {
            "name": "item",
            "type": "RhinoObject",
            "summary": "The object to delete."
          }
        ],
        "returns": "True on success."
      },
      {
        "signature": "System.Boolean Delete(System.Guid objectId, System.Boolean quiet)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Deletes object from document. The deletion can be undone by calling UndeleteObject().",
        "since": "5.0",
        "parameters": [
          {
            "name": "objectId",
            "type": "System.Guid",
            "summary": "Id of the object to delete."
          },
          {
            "name": "quiet",
            "type": "System.Boolean",
            "summary": "If false, a message box will appear when an object cannot be deleted."
          }
        ],
        "returns": "True on success, False on failure."
      },
      {
        "signature": "System.Boolean DeleteGrip(GripObject grip)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Deletes a grip object.",
        "since": "6.5",
        "parameters": [
          {
            "name": "grip",
            "type": "GripObject",
            "summary": "The grip object to delete."
          }
        ],
        "returns": "True on success."
      },
      {
        "signature": "System.Boolean DeleteGrip(ObjRef gripRef)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Deletes a grip object.",
        "since": "6.5",
        "parameters": [
          {
            "name": "gripRef",
            "type": "ObjRef",
            "summary": "A reference to the grip object to delete."
          }
        ],
        "returns": "True on success."
      },
      {
        "signature": "System.Boolean DeleteGrip(System.Guid gripId)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Deletes a grip object.",
        "since": "6.5",
        "parameters": [
          {
            "name": "gripId",
            "type": "System.Guid",
            "summary": "The id of the grip object to delete."
          }
        ],
        "returns": "True on success."
      },
      {
        "signature": "System.Int32 DeleteGrips(IEnumerable<GripObject> grips)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Deletes one or more grip objects.",
        "since": "6.5",
        "parameters": [
          {
            "name": "grips",
            "type": "IEnumerable<GripObject>",
            "summary": "The grip objects to delete."
          }
        ],
        "returns": "The number of successfully deleted grip objects."
      },
      {
        "signature": "System.Int32 DeleteGrips(IEnumerable<Guid> gripIds)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Deletes one or more grip objects.",
        "since": "6.5",
        "parameters": [
          {
            "name": "gripIds",
            "type": "IEnumerable<Guid>",
            "summary": "The ids of the grip objects to delete."
          }
        ],
        "returns": "The number of successfully deleted grip objects."
      },
      {
        "signature": "System.Int32 DeleteGrips(IEnumerable<ObjRef> gripRefs)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Deletes one or more grip objects.",
        "since": "6.5",
        "parameters": [
          {
            "name": "gripRefs",
            "type": "IEnumerable<ObjRef>",
            "summary": "References to the grip objects to delete."
          }
        ],
        "returns": "The number of successfully deleted grip objects."
      },
      {
        "signature": "System.Int32 DeleteGrips(RhinoObject owner, IEnumerable<int> gripIndices)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Deletes one or more grip objects.",
        "since": "6.5",
        "parameters": [
          {
            "name": "owner",
            "type": "RhinoObject",
            "summary": "The owner of the grip objects."
          },
          {
            "name": "gripIndices",
            "type": "IEnumerable<int>",
            "summary": "The indices of the grip objects to delete."
          }
        ],
        "returns": "The number of successfully deleted grip objects."
      },
      {
        "signature": "System.Guid Duplicate(ObjRef objref)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Duplicates the object that is referenced by objref.  \nSame as Transform(objref, Transform.Identity, false)",
        "since": "5.0",
        "parameters": [
          {
            "name": "objref",
            "type": "ObjRef",
            "summary": "A Rhino object reference to follow for object duplication."
          }
        ],
        "returns": "The new object ID."
      },
      {
        "signature": "System.Guid Duplicate(RhinoObject obj)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Duplicates the object that is referenced by obj.  \nSame as TransformObject(obj, Transform.Identityy, false)",
        "since": "5.0",
        "parameters": [
          {
            "name": "obj",
            "type": "RhinoObject",
            "summary": "A Rhino object to duplicate."
          }
        ],
        "returns": "The new object ID."
      },
      {
        "signature": "System.Guid Duplicate(System.Guid objectId)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Same as TransformObject(objref, ON_Xform.Identity, false)",
        "since": "5.0",
        "parameters": [
          {
            "name": "objectId",
            "type": "System.Guid",
            "summary": "An ID to an object in the document that needs to be duplicated."
          }
        ],
        "returns": "The new object ID."
      },
      {
        "signature": "RhinoObject Find(System.Guid objectId)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Please use FindId().",
        "since": "5.0",
        "parameters": [
          {
            "name": "objectId",
            "type": "System.Guid",
            "summary": "Do not use this method."
          }
        ],
        "returns": "Do not use this method."
      },
      {
        "signature": "RhinoObject Find(System.UInt32 runtimeSerialNumber)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Use the object runtime serial number to find a rhino object in the document. This is the value stored on RhinoObject.RuntimeObjectSerialNumber. The RhinoObject constructor sets the runtime serial number and every instance of a RhinoObject class will have a unique serial number for the duration of the Rhino application. If an object is replaced with a new object, then the new object will have a different runtime serial number. Deleted objects stored in the undo list maintain their runtime serial numbers and this function will return pointers to these objects. Call RhinoObject.IsDeleted if you need to determine if the returned object is active or deleted.  The runtime serial number is not saved in files.",
        "since": "5.0",
        "parameters": [
          {
            "name": "runtimeSerialNumber",
            "type": "System.UInt32",
            "summary": "Runtime serial number to search for."
          }
        ],
        "returns": "Reference to the rhino object with the objectId or None if no such object could be found."
      },
      {
        "signature": "RhinoObject[] FindByCrossingWindowRegion(RhinoViewport viewport, IEnumerable<Point3d> region, System.Boolean inside, ObjectType filter)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Finds objects bounded by a polyline region",
        "since": "5.7",
        "parameters": [
          {
            "name": "viewport",
            "type": "RhinoViewport",
            "summary": "viewport to use for selection"
          },
          {
            "name": "region",
            "type": "IEnumerable<Point3d>",
            "summary": "list of points that define the"
          },
          {
            "name": "inside",
            "type": "System.Boolean",
            "summary": "should objects returned be the ones inside of this region (or outside)"
          },
          {
            "name": "filter",
            "type": "ObjectType",
            "summary": "filter down list by object type"
          }
        ],
        "returns": "An array of RhinoObjects that are inside of this region"
      },
      {
        "signature": "RhinoObject[] FindByCrossingWindowRegion(RhinoViewport viewport, Point2d screen1, Point2d screen2, System.Boolean inside, ObjectType filter)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Finds objects bounded by a region",
        "since": "5.8",
        "parameters": [
          {
            "name": "viewport",
            "type": "RhinoViewport",
            "summary": "viewport to use for selection"
          },
          {
            "name": "screen1",
            "type": "Point2d",
            "summary": "first screen corner"
          },
          {
            "name": "screen2",
            "type": "Point2d",
            "summary": "second screen corner"
          },
          {
            "name": "inside",
            "type": "System.Boolean",
            "summary": "should objects returned be the ones inside of this region (or outside)"
          },
          {
            "name": "filter",
            "type": "ObjectType",
            "summary": "filter down list by object type"
          }
        ],
        "returns": "An array of RhinoObjects that are inside of this region"
      },
      {
        "signature": "RhinoObject[] FindByDrawColor(System.Drawing.Color drawColor, System.Boolean includeLights)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Finds all objects whose draw color matches a given color.",
        "since": "5.0",
        "parameters": [
          {
            "name": "drawColor",
            "type": "System.Drawing.Color",
            "summary": "The alpha value of this color is ignored."
          },
          {
            "name": "includeLights",
            "type": "System.Boolean",
            "summary": "True if lights should be included."
          }
        ],
        "returns": "An array of Rhino document objects. This array can be empty."
      },
      {
        "signature": "RhinoObject[] FindByFilter(ObjectEnumeratorSettings filter)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Same as GetObjectList but converts the result to an array.",
        "since": "5.0",
        "parameters": [
          {
            "name": "filter",
            "type": "ObjectEnumeratorSettings",
            "summary": "The <b>Rhino.DocObjects.ObjectEnumeratorSettings</b> filter to customize inclusion requirements."
          }
        ],
        "returns": "A Rhino object array. This array can be empty but not null."
      },
      {
        "signature": "RhinoObject[] FindByGroup(System.Int32 groupIndex)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Finds all RhinoObjects that are in a given group.",
        "since": "5.0",
        "parameters": [
          {
            "name": "groupIndex",
            "type": "System.Int32",
            "summary": "Index of group to search for."
          }
        ],
        "returns": "An array of objects that belong to the specified group or None if no objects could be found."
      },
      {
        "signature": "RhinoObject[] FindByLayer(Layer layer)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Finds all RhinoObjects that are in a given layer.",
        "since": "5.0",
        "parameters": [
          {
            "name": "layer",
            "type": "Layer",
            "summary": "Layer to search."
          }
        ],
        "returns": "Array of objects that belong to the specified group or None if no objects could be found."
      },
      {
        "signature": "RhinoObject[] FindByLayer(System.String layerName)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Finds all RhinoObjects that are in a given layer.",
        "since": "5.0",
        "parameters": [
          {
            "name": "layerName",
            "type": "System.String",
            "summary": "Name of layer to search."
          }
        ],
        "returns": "Array of objects that belong to the specified group or None if no objects could be found."
      },
      {
        "signature": "RhinoObject[] FindByObjectType(ObjectType typeFilter)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "RhinoObject[] FindByUserString(System.String key, System.String value, System.Boolean caseSensitive, System.Boolean searchGeometry, System.Boolean searchAttributes, ObjectEnumeratorSettings filter)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Finds all objects whose UserString matches the search patterns.",
        "since": "5.0",
        "parameters": [
          {
            "name": "key",
            "type": "System.String",
            "summary": "Search pattern for UserString keys (supported wildcards are: ? = any single character, * = any sequence of characters)."
          },
          {
            "name": "value",
            "type": "System.String",
            "summary": "Search pattern for UserString values (supported wildcards are: ? = any single character, * = any sequence of characters)."
          },
          {
            "name": "caseSensitive",
            "type": "System.Boolean",
            "summary": "If true, string comparison will be case sensitive."
          },
          {
            "name": "searchGeometry",
            "type": "System.Boolean",
            "summary": "If true, UserStrings attached to the geometry of an object will be searched."
          },
          {
            "name": "searchAttributes",
            "type": "System.Boolean",
            "summary": "If true, UserStrings attached to the attributes of an object will be searched."
          },
          {
            "name": "filter",
            "type": "ObjectEnumeratorSettings",
            "summary": "<b>Rhino.DocObjects.ObjectEnumeratorSettings</b> filter used to restrict the number of objects searched."
          }
        ],
        "returns": "An array of all objects whose UserString matches with the search patterns or None when no such objects could be found."
      },
      {
        "signature": "RhinoObject[] FindByUserString(System.String key, System.String value, System.Boolean caseSensitive, System.Boolean searchGeometry, System.Boolean searchAttributes, ObjectType filter)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Finds all objects whose UserString matches the search patterns.",
        "since": "5.0",
        "parameters": [
          {
            "name": "key",
            "type": "System.String",
            "summary": "Search pattern for UserString keys (supported wildcards are: ? = any single character, * = any sequence of characters)."
          },
          {
            "name": "value",
            "type": "System.String",
            "summary": "Search pattern for UserString values (supported wildcards are: ? = any single character, * = any sequence of characters)."
          },
          {
            "name": "caseSensitive",
            "type": "System.Boolean",
            "summary": "If true, string comparison will be case sensitive."
          },
          {
            "name": "searchGeometry",
            "type": "System.Boolean",
            "summary": "If true, UserStrings attached to the geometry of an object will be searched."
          },
          {
            "name": "searchAttributes",
            "type": "System.Boolean",
            "summary": "If true, UserStrings attached to the attributes of an object will be searched."
          },
          {
            "name": "filter",
            "type": "ObjectType",
            "summary": "Object type filter."
          }
        ],
        "returns": "An array of all objects whose UserString matches with the search patterns or None when no such objects could be found."
      },
      {
        "signature": "RhinoObject[] FindByUserString(System.String key, System.String value, System.Boolean caseSensitive)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Finds all objects whose UserString matches the search patterns.",
        "since": "5.0",
        "parameters": [
          {
            "name": "key",
            "type": "System.String",
            "summary": "Search pattern for UserString keys (supported wildcards are: ? = any single character, * = any sequence of characters)."
          },
          {
            "name": "value",
            "type": "System.String",
            "summary": "Search pattern for UserString values (supported wildcards are: ? = any single character, * = any sequence of characters)."
          },
          {
            "name": "caseSensitive",
            "type": "System.Boolean",
            "summary": "If true, string comparison will be case sensitive."
          }
        ],
        "returns": "An array of all objects whose UserString matches with the search patterns or None when no such objects could be found."
      },
      {
        "signature": "RhinoObject[] FindByWindowRegion(RhinoViewport viewport, IEnumerable<Point3d> region, System.Boolean inside, ObjectType filter)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Finds objects bounded by a polyline region",
        "since": "5.7",
        "parameters": [
          {
            "name": "viewport",
            "type": "RhinoViewport",
            "summary": "viewport to use for selection"
          },
          {
            "name": "region",
            "type": "IEnumerable<Point3d>",
            "summary": "list of points that define the"
          },
          {
            "name": "inside",
            "type": "System.Boolean",
            "summary": "should objects returned be the ones inside of this region (or outside)"
          },
          {
            "name": "filter",
            "type": "ObjectType",
            "summary": "filter down list by object type"
          }
        ],
        "returns": "An array of RhinoObjects that are inside of this region"
      },
      {
        "signature": "RhinoObject[] FindByWindowRegion(RhinoViewport viewport, Point2d screen1, Point2d screen2, System.Boolean inside, ObjectType filter)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Finds objects bounded by a polyline region",
        "since": "5.8",
        "parameters": [
          {
            "name": "viewport",
            "type": "RhinoViewport",
            "summary": "viewport to use for selection"
          },
          {
            "name": "screen1",
            "type": "Point2d",
            "summary": "first screen corner"
          },
          {
            "name": "screen2",
            "type": "Point2d",
            "summary": "second screen corner"
          },
          {
            "name": "inside",
            "type": "System.Boolean",
            "summary": "should objects returned be the ones inside of this region (or outside)"
          },
          {
            "name": "filter",
            "type": "ObjectType",
            "summary": "filter down list by object type"
          }
        ],
        "returns": "An array of RhinoObjects that are inside of this region"
      },
      {
        "signature": "ClippingPlaneObject[] FindClippingPlanesForViewport(RhinoViewport viewport)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Finds all of the clipping plane objects that actively clip a viewport.",
        "since": "5.0",
        "parameters": [
          {
            "name": "viewport",
            "type": "RhinoViewport",
            "summary": "The viewport in which clipping planes are searched."
          }
        ],
        "returns": "An array of clipping plane objects. The array can be empty but not null."
      },
      {
        "signature": "GeometryBase FindGeometry(System.Guid id)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Same as FindId, but returns the Geometry property directly, if it exists.",
        "since": "6.0",
        "parameters": [
          {
            "name": "id",
            "type": "System.Guid",
            "summary": "ID of object to search for."
          }
        ],
        "returns": "Reference to the geometry in the rhino object with the objectId or None if no such object could be found."
      },
      {
        "signature": "RhinoObject FindId(System.Guid id)",
        "modifiers": ["public", "override"],
        "protected": false,
        "virtual": false,
        "summary": "Uses the object guid to find a rhino object. Deleted objects cannot be found by id.     The guid is the value that is stored on RhinoObject.Id In a single document, no two active objects have the same guid. If an object is replaced with a new object, then the guid  persists. For example, if the _Move command moves an object, then the moved object inherits it's guid from the starting object. If the Copy command copies an object, then the copy gets a new guid. This guid persists through file saving/opening operations. This function will not find grip objects.",
        "since": "6.0",
        "parameters": [
          {
            "name": "id",
            "type": "System.Guid",
            "summary": "ID of object to search for."
          }
        ],
        "returns": "Reference to the rhino object with the objectId or None if no such object could be found."
      },
      {
        "signature": "IEnumerator<RhinoObject> GetEnumerator()",
        "modifiers": ["public", "override"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "IEnumerable<Guid> GetObjectIdList(ObjectEnumeratorSettings settings)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns an enumerable based on a <b>Rhino.DocObjects.ObjectEnumeratorSettings</b> filter.",
        "since": "8.25",
        "parameters": [
          {
            "name": "settings",
            "type": "ObjectEnumeratorSettings",
            "summary": "The <b>Rhino.DocObjects.ObjectEnumeratorSettings</b> settings."
          }
        ],
        "returns": "The enumerable."
      },
      {
        "signature": "IEnumerable<RhinoObject> GetObjectList(ObjectEnumeratorSettings settings)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns an enumerable based on a <b>Rhino.DocObjects.ObjectEnumeratorSettings</b> filter.",
        "parameters": [
          {
            "name": "settings",
            "type": "ObjectEnumeratorSettings",
            "summary": "The <b>Rhino.DocObjects.ObjectEnumeratorSettings</b> settings."
          }
        ],
        "returns": "The enumerable."
      },
      {
        "signature": "IEnumerable<RhinoObject> GetObjectList(ObjectType typeFilter)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "IEnumerable<RhinoObject> GetObjectList(System.Type typeFilter)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "IEnumerable<T> GetObjectsByType()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns Rhino object by type.",
        "since": "6.0",
        "returns": "The enumerable."
      },
      {
        "signature": "IEnumerable<T> GetObjectsByType(ObjectEnumeratorSettings settings)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns Rhino object by type.",
        "since": "6.0",
        "returns": "The enumerable."
      },
      {
        "signature": "System.UInt32 GetSelectedObjectCount(System.Boolean checkSubObjects)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Compute the current number of selected objects",
        "since": "8.10",
        "parameters": [
          {
            "name": "checkSubObjects",
            "type": "System.Boolean",
            "summary": "Check to see if subobjects are selected"
          }
        ]
      },
      {
        "signature": "IEnumerable<RhinoObject> GetSelectedObjects(System.Boolean includeLights, System.Boolean includeGrips)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "ObjectType GetSelectedObjectTypes()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "What geometry types are currently selected",
        "since": "6.0"
      },
      {
        "signature": "RhinoObject GripUpdate(RhinoObject obj, System.Boolean deleteOriginal)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Altered grip positions on a RhinoObject are used to calculate an updated object that is added to the document.",
        "since": "5.0",
        "parameters": [
          {
            "name": "obj",
            "type": "RhinoObject",
            "summary": "object with modified grips to update."
          },
          {
            "name": "deleteOriginal",
            "type": "System.Boolean",
            "summary": "if true, obj is deleted from the document."
          }
        ],
        "returns": "new RhinoObject on success; otherwise null."
      },
      {
        "signature": "System.Boolean Hide(ObjRef objref, System.Boolean ignoreLayerMode, System.String hideGroup)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Hides object that is referenced by objref and optionally assigns it to a hide group. If objref.Object().IsNormal() is true, then the object will be hidden.",
        "since": "8.0",
        "parameters": [
          {
            "name": "objref",
            "type": "ObjRef",
            "summary": "reference to object to hide."
          },
          {
            "name": "ignoreLayerMode",
            "type": "System.Boolean",
            "summary": "if true, the object will be hidden even if it is on a layer that is locked or off."
          },
          {
            "name": "hideGroup",
            "type": "System.String",
            "summary": "name of the hide group to attach to the hidden object. If None or empty, no hide group is assigned."
          }
        ],
        "returns": "True if the object was successfully hidden."
      },
      {
        "signature": "System.Boolean Hide(ObjRef objref, System.Boolean ignoreLayerMode)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "If objref.Object().IsNormal() is true, then the object will be hidden.",
        "since": "5.0",
        "parameters": [
          {
            "name": "objref",
            "type": "ObjRef",
            "summary": "reference to object to hide."
          },
          {
            "name": "ignoreLayerMode",
            "type": "System.Boolean",
            "summary": "if true, the object will be hidden even if it is on a layer that is locked or off."
          }
        ],
        "returns": "True if the object was successfully hidden."
      },
      {
        "signature": "System.Boolean Hide(RhinoObject obj, System.Boolean ignoreLayerMode, System.String hideGroup)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "System.Boolean Hide(RhinoObject obj, System.Boolean ignoreLayerMode)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "If obj.IsNormal() is true, then the object will be hidden.",
        "since": "5.0",
        "parameters": [
          {
            "name": "obj",
            "type": "RhinoObject",
            "summary": "object to hide."
          },
          {
            "name": "ignoreLayerMode",
            "type": "System.Boolean",
            "summary": "if true, the object will be hidden even if it is on a layer that is locked or off."
          }
        ],
        "returns": "True if the object was successfully hidden."
      },
      {
        "signature": "System.Boolean Hide(System.Guid objectId, System.Boolean ignoreLayerMode, System.String hideGroup)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "System.Boolean Hide(System.Guid objectId, System.Boolean ignoreLayerMode)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "If Object().IsNormal() is true, then the object will be hidden.",
        "since": "5.0",
        "parameters": [
          {
            "name": "objectId",
            "type": "System.Guid",
            "summary": "Id of object to hide."
          },
          {
            "name": "ignoreLayerMode",
            "type": "System.Boolean",
            "summary": "if true, the object will be hidden even if it is on a layer that is locked or off."
          }
        ],
        "returns": "True if the object was successfully hidden."
      },
      {
        "signature": "System.Void InvalidateBoundingBox()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Destroys the cached scene bounding box so that it will be regenerated again from scratch next time the view is regenerated",
        "since": "8.8"
      },
      {
        "signature": "System.Boolean Lock(ObjRef objref, System.Boolean ignoreLayerMode)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "If objref.Object().IsNormal() is true, then the object will be locked.",
        "since": "5.0",
        "parameters": [
          {
            "name": "objref",
            "type": "ObjRef",
            "summary": "reference to normal object to lock."
          },
          {
            "name": "ignoreLayerMode",
            "type": "System.Boolean",
            "summary": "if true, the object will be locked even if it is on a layer that is locked or off."
          }
        ],
        "returns": "True if the object was successfully locked."
      },
      {
        "signature": "System.Boolean Lock(RhinoObject obj, System.Boolean ignoreLayerMode)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "If obj.IsNormal() is true, then the object will be locked.",
        "since": "5.0",
        "parameters": [
          {
            "name": "obj",
            "type": "RhinoObject",
            "summary": "normal object to lock."
          },
          {
            "name": "ignoreLayerMode",
            "type": "System.Boolean",
            "summary": "if true, the object will be locked even if it is on a layer that is locked or off."
          }
        ],
        "returns": "True if the object was successfully locked."
      },
      {
        "signature": "System.Boolean Lock(System.Guid objectId, System.Boolean ignoreLayerMode)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "If objref.Object().IsNormal() is true, then the object will be locked.",
        "since": "5.0",
        "parameters": [
          {
            "name": "objectId",
            "type": "System.Guid",
            "summary": "Id of normal object to lock."
          },
          {
            "name": "ignoreLayerMode",
            "type": "System.Boolean",
            "summary": "if true, the object will be locked even if it is on a layer that is locked or off."
          }
        ],
        "returns": "True if the object was successfully locked."
      },
      {
        "signature": "System.Boolean ModifyAttributes(ObjRef objref, ObjectAttributes newAttributes, System.Boolean quiet)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Modifies an object's attributes.  Cannot be used to change object id.",
        "since": "5.0",
        "parameters": [
          {
            "name": "objref",
            "type": "ObjRef",
            "summary": "reference to object to modify."
          },
          {
            "name": "newAttributes",
            "type": "ObjectAttributes",
            "summary": "new attributes."
          },
          {
            "name": "quiet",
            "type": "System.Boolean",
            "summary": "if true, then warning message boxes are disabled."
          }
        ],
        "returns": "True if successful."
      },
      {
        "signature": "System.Boolean ModifyAttributes(RhinoObject obj, ObjectAttributes newAttributes, System.Boolean quiet)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Modifies an object's attributes.  Cannot be used to change object id.",
        "since": "5.0",
        "parameters": [
          {
            "name": "obj",
            "type": "RhinoObject",
            "summary": "object to modify."
          },
          {
            "name": "newAttributes",
            "type": "ObjectAttributes",
            "summary": "new attributes."
          },
          {
            "name": "quiet",
            "type": "System.Boolean",
            "summary": "if true, then warning message boxes are disabled."
          }
        ],
        "returns": "True if successful."
      },
      {
        "signature": "System.Boolean ModifyAttributes(System.Guid objectId, ObjectAttributes newAttributes, System.Boolean quiet)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Modifies an object's attributes.  Cannot be used to change object id.",
        "since": "5.0",
        "parameters": [
          {
            "name": "objectId",
            "type": "System.Guid",
            "summary": "Id of object to modify."
          },
          {
            "name": "newAttributes",
            "type": "ObjectAttributes",
            "summary": "new attributes."
          },
          {
            "name": "quiet",
            "type": "System.Boolean",
            "summary": "if true, then warning message boxes are disabled."
          }
        ],
        "returns": "True if successful."
      },
      {
        "signature": "System.Boolean ModifyRenderMaterial(ObjRef objRef, RenderMaterial material)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Modifies an object's render material assignment, this will set the objects material source to ObjectMaterialSource.MaterialFromObject.",
        "since": "5.7",
        "parameters": [
          {
            "name": "objRef",
            "type": "ObjRef",
            "summary": "Object to modify."
          },
          {
            "name": "material",
            "type": "RenderMaterial",
            "summary": "Material to assign to this object."
          }
        ],
        "returns": "Returns True on success otherwise returns false."
      },
      {
        "signature": "System.Boolean ModifyRenderMaterial(RhinoObject obj, RenderMaterial material)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Modifies an object's render material assignment, this will set the objects material source to ObjectMaterialSource.MaterialFromObject.",
        "since": "5.7",
        "parameters": [
          {
            "name": "obj",
            "type": "RhinoObject",
            "summary": "Object to modify."
          },
          {
            "name": "material",
            "type": "RenderMaterial",
            "summary": "Material to assign to this object."
          }
        ],
        "returns": "Returns True on success otherwise returns false."
      },
      {
        "signature": "System.Boolean ModifyRenderMaterial(System.Guid objectId, RenderMaterial material)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Modifies an object's render material assignment, this will set the objects material source to ObjectMaterialSource.MaterialFromObject.",
        "since": "5.7",
        "parameters": [
          {
            "name": "objectId",
            "type": "System.Guid",
            "summary": "Id of object to modify."
          },
          {
            "name": "material",
            "type": "RenderMaterial",
            "summary": "Material to assign to this object."
          }
        ],
        "returns": "Returns True on success otherwise returns false."
      },
      {
        "signature": "System.Boolean ModifyTextureMapping(ObjRef objRef, System.Int32 channel, TextureMapping mapping)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.7"
      },
      {
        "signature": "System.Boolean ModifyTextureMapping(RhinoObject obj, System.Int32 channel, TextureMapping mapping)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.7"
      },
      {
        "signature": "System.Boolean ModifyTextureMapping(System.Guid objId, System.Int32 channel, TextureMapping mapping)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.7"
      },
      {
        "signature": "RhinoObject MostRecentObject()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the most recently added object that is still in the Document.",
        "since": "5.0",
        "returns": "The most recent (non-deleted) object in the document, or None if no such object exists."
      },
      {
        "signature": "System.Int32 ObjectCount(ObjectEnumeratorSettings filter)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns the number objects that pass a filter.",
        "parameters": [
          {
            "name": "filter",
            "type": "ObjectEnumeratorSettings",
            "summary": "The <b>Rhino.DocObjects.ObjectEnumeratorSettings</b> filter."
          }
        ],
        "returns": "The number of objects that pass the filter."
      },
      {
        "signature": "ObjRef[] PickObjects(Input.Custom.PickContext pickContext)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Pick one or more objects based on a given pick context",
        "since": "6.0",
        "parameters": [
          {
            "name": "pickContext",
            "type": "Input.Custom.PickContext",
            "summary": "settings used to define what is picked"
          }
        ],
        "returns": "zero or more objects"
      },
      {
        "signature": "System.Boolean Purge(RhinoObject rhinoObject)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Removes object from document and deletes the pointer. Typically you will want to call Delete instead in order to keep the object on the undo list.",
        "since": "5.0",
        "parameters": [
          {
            "name": "rhinoObject",
            "type": "RhinoObject",
            "summary": "A Rhino object that will be deleted."
          }
        ],
        "returns": "True if the object was purged; otherwise false."
      },
      {
        "signature": "System.Boolean Purge(System.UInt32 runtimeSerialNumber)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Removes object from document and deletes the pointer. Typically you will want to call Delete instead in order to keep the object on the undo list.",
        "since": "5.0",
        "parameters": [
          {
            "name": "runtimeSerialNumber",
            "type": "System.UInt32",
            "summary": "A runtime serial number of the object that will be deleted."
          }
        ],
        "returns": "True if the object was purged; otherwise false."
      },
      {
        "signature": "System.Boolean Replace(ObjRef objref, Arc arc)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Replaces one object with new curve object.",
        "since": "5.0",
        "parameters": [
          {
            "name": "objref",
            "type": "ObjRef",
            "summary": "Reference to old object to be replaced. The object objref.Object() will be deleted."
          },
          {
            "name": "arc",
            "type": "Arc",
            "summary": "new arc to be added.  The arc is copied."
          }
        ],
        "returns": "True if successful."
      },
      {
        "signature": "System.Boolean Replace(ObjRef objref, Brep brep, System.Boolean splitKinkySurfaces)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.1"
      },
      {
        "signature": "System.Boolean Replace(ObjRef objref, Brep brep)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Replaces one object with new brep object.",
        "since": "5.0",
        "parameters": [
          {
            "name": "objref",
            "type": "ObjRef",
            "summary": "reference to old object to be replaced. The objref.Object() will be deleted."
          },
          {
            "name": "brep",
            "type": "Brep",
            "summary": "new brep to be added A duplicate of the brep is added to the Rhino model."
          }
        ],
        "returns": "True if successful."
      },
      {
        "signature": "System.Boolean Replace(ObjRef objref, Circle circle)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Replaces one object with new curve object.",
        "since": "5.0",
        "parameters": [
          {
            "name": "objref",
            "type": "ObjRef",
            "summary": "Reference to old object to be replaced. The object objref.Object() will be deleted."
          },
          {
            "name": "circle",
            "type": "Circle",
            "summary": "new circle to be added.  The circle is copied."
          }
        ],
        "returns": "True if successful."
      },
      {
        "signature": "System.Boolean Replace(ObjRef objref, Curve curve)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Replaces one object with new curve object.",
        "since": "5.0",
        "parameters": [
          {
            "name": "objref",
            "type": "ObjRef",
            "summary": "reference to old object to be replaced. The objref.Object() will be deleted."
          },
          {
            "name": "curve",
            "type": "Curve",
            "summary": "New curve to be added. A duplicate of the curve is added to the Rhino model."
          }
        ],
        "returns": "True if successful."
      },
      {
        "signature": "System.Boolean Replace(ObjRef objref, Extrusion extrusion)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Replaces one object with new extrusion object.",
        "since": "6.0",
        "parameters": [
          {
            "name": "objref",
            "type": "ObjRef",
            "summary": "reference to old object to be replaced. The objref.Object() will be deleted."
          },
          {
            "name": "extrusion",
            "type": "Extrusion",
            "summary": "New extrusion to be added. A duplicate of the extrusion is added to the Rhino model."
          }
        ],
        "returns": "True if successful."
      },
      {
        "signature": "System.Boolean Replace(ObjRef objref, GeometryBase geometry, System.Boolean ignoreModes)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Replaces the geometry in one object.",
        "since": "7.9",
        "parameters": [
          {
            "name": "objref",
            "type": "ObjRef",
            "summary": "reference to old object to be replaced. The objref.Object() will be deleted."
          },
          {
            "name": "geometry",
            "type": "GeometryBase",
            "summary": ""
          },
          {
            "name": "ignoreModes",
            "type": "System.Boolean",
            "summary": ""
          }
        ],
        "returns": "True if successful."
      },
      {
        "signature": "System.Boolean Replace(ObjRef objref, Hatch hatch)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Replaces one object with new hatch object.",
        "since": "6.1",
        "parameters": [
          {
            "name": "objref",
            "type": "ObjRef",
            "summary": "Reference to old object to be replaced. The object objref.Object() will be deleted."
          },
          {
            "name": "hatch",
            "type": "Hatch",
            "summary": "new hatch to be added. The hatch is copied."
          }
        ],
        "returns": "True if successful."
      },
      {
        "signature": "System.Boolean Replace(ObjRef objref, Leader leader)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Replaces one object with new text object.",
        "since": "6.0",
        "parameters": [
          {
            "name": "objref",
            "type": "ObjRef",
            "summary": "Reference to old object to be replaced. The object objref.Object() will be deleted."
          },
          {
            "name": "leader",
            "type": "Leader",
            "summary": "new leader to be added.  The leader is copied."
          }
        ],
        "returns": "True if successful."
      },
      {
        "signature": "System.Boolean Replace(ObjRef objref, Line line)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Replaces one object with new line curve object.",
        "since": "5.0",
        "parameters": [
          {
            "name": "objref",
            "type": "ObjRef",
            "summary": "Reference to old object to be replaced. The object objref.Object() will be deleted."
          },
          {
            "name": "line",
            "type": "Line",
            "summary": "new line to be added.  The line is copied."
          }
        ],
        "returns": "True if successful."
      },
      {
        "signature": "System.Boolean Replace(ObjRef objref, Mesh mesh)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Replaces one object with new mesh object.",
        "since": "5.0",
        "parameters": [
          {
            "name": "objref",
            "type": "ObjRef",
            "summary": "reference to old object to be replaced. The objref.Object() will be deleted."
          },
          {
            "name": "mesh",
            "type": "Mesh",
            "summary": "new mesh to be added A duplicate of the mesh is added to the Rhino model."
          }
        ],
        "returns": "True if successful."
      },
      {
        "signature": "System.Boolean Replace(ObjRef objref, Point point)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Replaces one object with new point object.",
        "since": "6.0",
        "parameters": [
          {
            "name": "objref",
            "type": "ObjRef",
            "summary": "Reference to old object to be replaced. The object objref.Object() will be deleted."
          },
          {
            "name": "point",
            "type": "Point",
            "summary": "new point to be added.  The point is copied."
          }
        ],
        "returns": "True if successful."
      },
      {
        "signature": "System.Boolean Replace(ObjRef objref, Point3d point)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Replaces one object with new point object.",
        "since": "5.0",
        "parameters": [
          {
            "name": "objref",
            "type": "ObjRef",
            "summary": "Reference to old object to be replaced. The object objref.Object() will be deleted."
          },
          {
            "name": "point",
            "type": "Point3d",
            "summary": "new point to be added.  The point is copied."
          }
        ],
        "returns": "True if successful."
      },
      {
        "signature": "System.Boolean Replace(ObjRef objref, PointCloud pointcloud)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Replaces one object with new point cloud object.",
        "since": "5.0",
        "parameters": [
          {
            "name": "objref",
            "type": "ObjRef",
            "summary": "reference to old object to be replaced. The objref.Object() will be deleted."
          },
          {
            "name": "pointcloud",
            "type": "PointCloud",
            "summary": "new point cloud to be added A duplicate of the point cloud is added to the Rhino model."
          }
        ],
        "returns": "True if successful."
      },
      {
        "signature": "System.Boolean Replace(ObjRef objref, Polyline polyline)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Replaces one object with new curve object.",
        "since": "5.0",
        "parameters": [
          {
            "name": "objref",
            "type": "ObjRef",
            "summary": "Reference to old object to be replaced. The object objref.Object() will be deleted."
          },
          {
            "name": "polyline",
            "type": "Polyline",
            "summary": "new polyline to be added.  The polyline is copied."
          }
        ],
        "returns": "True if successful."
      },
      {
        "signature": "System.Boolean Replace(ObjRef objref, RhinoObject newObject)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Replaces one object with another. Conceptually, this function is the same as calling Setting new_object attributes = old_object attributes DeleteObject(old_object); AddObject(old_object);",
        "since": "5.0",
        "parameters": [
          {
            "name": "objref",
            "type": "ObjRef",
            "summary": "reference to old object to be replaced. The objref.Object() will be deleted."
          },
          {
            "name": "newObject",
            "type": "RhinoObject",
            "summary": "new replacement object - must not be in document."
          }
        ],
        "returns": "True if successful."
      },
      {
        "signature": "System.Boolean Replace(ObjRef objref, SubD subD)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Replaces one object with a new SubD object.",
        "since": "7.0",
        "parameters": [
          {
            "name": "objref",
            "type": "ObjRef",
            "summary": "reference to old object to be replaced. The objref.Object() will be deleted."
          },
          {
            "name": "subD",
            "type": "SubD",
            "summary": "new SubD to be added A duplicate of the SubD is added to the Rhino model."
          }
        ],
        "returns": "True if successful."
      },
      {
        "signature": "System.Boolean Replace(ObjRef objref, Surface surface)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Replaces one object with new surface object.",
        "since": "5.0",
        "parameters": [
          {
            "name": "objref",
            "type": "ObjRef",
            "summary": "reference to old object to be replaced. The objref.Object() will be deleted."
          },
          {
            "name": "surface",
            "type": "Surface",
            "summary": "new surface to be added A duplicate of the surface is added to the Rhino model."
          }
        ],
        "returns": "True if successful."
      },
      {
        "signature": "System.Boolean Replace(ObjRef objref, TextDot dot)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Replaces one object with new text dot object.",
        "since": "5.0",
        "parameters": [
          {
            "name": "objref",
            "type": "ObjRef",
            "summary": "Reference to old object to be replaced. The object objref.Object() will be deleted."
          },
          {
            "name": "dot",
            "type": "TextDot",
            "summary": "new text dot to be added.  The text dot is copied."
          }
        ],
        "returns": "True if successful."
      },
      {
        "signature": "System.Boolean Replace(ObjRef objref, TextEntity text)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Replaces one object with new text object.",
        "since": "5.0",
        "parameters": [
          {
            "name": "objref",
            "type": "ObjRef",
            "summary": "Reference to old object to be replaced. The object objref.Object() will be deleted."
          },
          {
            "name": "text",
            "type": "TextEntity",
            "summary": "new text to be added.  The text is copied."
          }
        ],
        "returns": "True if successful."
      },
      {
        "signature": "System.Boolean Replace(System.Guid objectId, Arc arc)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Replaces one object with new curve object.",
        "since": "5.0",
        "parameters": [
          {
            "name": "objectId",
            "type": "System.Guid",
            "summary": "Id of object to be replaced."
          },
          {
            "name": "arc",
            "type": "Arc",
            "summary": "new arc to be added.  The arc is copied."
          }
        ],
        "returns": "True if successful."
      },
      {
        "signature": "System.Boolean Replace(System.Guid objectId, Brep brep, System.Boolean splitKinkySurfaces)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.1"
      },
      {
        "signature": "System.Boolean Replace(System.Guid objectId, Brep brep)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Replaces one object with new brep object.",
        "since": "5.0",
        "parameters": [
          {
            "name": "objectId",
            "type": "System.Guid",
            "summary": "Id of object to be replaced."
          },
          {
            "name": "brep",
            "type": "Brep",
            "summary": "new surface to be added A duplicate of the brep is added to the Rhino model."
          }
        ],
        "returns": "True if successful."
      },
      {
        "signature": "System.Boolean Replace(System.Guid objectId, Circle circle)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Replaces one object with new curve object.",
        "since": "5.0",
        "parameters": [
          {
            "name": "objectId",
            "type": "System.Guid",
            "summary": "Id of object to be replaced."
          },
          {
            "name": "circle",
            "type": "Circle",
            "summary": "new circle to be added.  The circle is copied."
          }
        ],
        "returns": "True if successful."
      },
      {
        "signature": "System.Boolean Replace(System.Guid objectId, Curve curve)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Replaces one object with new curve object.",
        "since": "5.0",
        "parameters": [
          {
            "name": "objectId",
            "type": "System.Guid",
            "summary": "Id of object to be replaced."
          },
          {
            "name": "curve",
            "type": "Curve",
            "summary": "New curve to be added. A duplicate of the curve is added to the Rhino model."
          }
        ],
        "returns": "True if successful."
      },
      {
        "signature": "System.Boolean Replace(System.Guid objectId, Extrusion extrusion)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Replaces one object with new extrusion object.",
        "since": "6.0",
        "parameters": [
          {
            "name": "objectId",
            "type": "System.Guid",
            "summary": "Id of object to be replaced."
          },
          {
            "name": "extrusion",
            "type": "Extrusion",
            "summary": "New extrusion to be added. A duplicate of the extrusion is added to the Rhino model."
          }
        ],
        "returns": "True if successful."
      },
      {
        "signature": "System.Boolean Replace(System.Guid objectId, GeometryBase geometry, System.Boolean ignoreModes)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Replaces the geometry in one object.",
        "since": "7.9",
        "parameters": [
          {
            "name": "objectId",
            "type": "System.Guid",
            "summary": "Id of object to be replaced."
          },
          {
            "name": "geometry",
            "type": "GeometryBase",
            "summary": ""
          },
          {
            "name": "ignoreModes",
            "type": "System.Boolean",
            "summary": ""
          }
        ],
        "returns": "True if successful."
      },
      {
        "signature": "System.Boolean Replace(System.Guid objectId, Hatch hatch)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Replaces one object with new hatch object.",
        "since": "6.1",
        "parameters": [
          {
            "name": "objectId",
            "type": "System.Guid",
            "summary": "Id of object to be replaced."
          },
          {
            "name": "hatch",
            "type": "Hatch",
            "summary": "new hatch to be added. The hatch is copied."
          }
        ],
        "returns": "True if successful."
      },
      {
        "signature": "System.Boolean Replace(System.Guid objectId, Leader leader)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Replaces one object with new text object.",
        "since": "6.0",
        "parameters": [
          {
            "name": "objectId",
            "type": "System.Guid",
            "summary": "Id of object to be replaced."
          },
          {
            "name": "leader",
            "type": "Leader",
            "summary": "new leader to be added.  The leader is copied."
          }
        ],
        "returns": "True if successful."
      },
      {
        "signature": "System.Boolean Replace(System.Guid objectId, Line line)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Replaces one object with new line curve object.",
        "since": "5.0",
        "parameters": [
          {
            "name": "objectId",
            "type": "System.Guid",
            "summary": "Id of object to be replaced."
          },
          {
            "name": "line",
            "type": "Line",
            "summary": "new line to be added.  The line is copied."
          }
        ],
        "returns": "True if successful."
      },
      {
        "signature": "System.Boolean Replace(System.Guid objectId, Mesh mesh)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Replaces one object with new mesh object.",
        "since": "5.0",
        "parameters": [
          {
            "name": "objectId",
            "type": "System.Guid",
            "summary": "Id of object to be replaced."
          },
          {
            "name": "mesh",
            "type": "Mesh",
            "summary": "new mesh to be added A duplicate of the mesh is added to the Rhino model."
          }
        ],
        "returns": "True if successful."
      },
      {
        "signature": "System.Boolean Replace(System.Guid objectId, Point point)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Replaces one object with new point object.",
        "since": "6.0",
        "parameters": [
          {
            "name": "objectId",
            "type": "System.Guid",
            "summary": "Id of object to be replaced."
          },
          {
            "name": "point",
            "type": "Point",
            "summary": "new point to be added.  The point is copied."
          }
        ],
        "returns": "True if successful."
      },
      {
        "signature": "System.Boolean Replace(System.Guid objectId, Point3d point)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Replaces one object with new point object.",
        "since": "5.0",
        "parameters": [
          {
            "name": "objectId",
            "type": "System.Guid",
            "summary": "Id of object to be replaced."
          },
          {
            "name": "point",
            "type": "Point3d",
            "summary": "new point to be added.  The point is copied."
          }
        ],
        "returns": "True if successful."
      },
      {
        "signature": "System.Boolean Replace(System.Guid objectId, PointCloud pointcloud)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Replaces one object with new point cloud object.",
        "since": "5.0",
        "parameters": [
          {
            "name": "objectId",
            "type": "System.Guid",
            "summary": "Id of object to be replaced."
          },
          {
            "name": "pointcloud",
            "type": "PointCloud",
            "summary": "new point cloud to be added A duplicate of the point cloud is added to the Rhino model."
          }
        ],
        "returns": "True if successful."
      },
      {
        "signature": "System.Boolean Replace(System.Guid objectId, Polyline polyline)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Replaces one object with new curve object.",
        "since": "5.0",
        "parameters": [
          {
            "name": "objectId",
            "type": "System.Guid",
            "summary": "Id of object to be replaced."
          },
          {
            "name": "polyline",
            "type": "Polyline",
            "summary": "new polyline to be added.  The polyline is copied."
          }
        ],
        "returns": "True if successful."
      },
      {
        "signature": "System.Boolean Replace(System.Guid objectId, SubD subD)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Replaces one object with new subd object.",
        "since": "7.0",
        "parameters": [
          {
            "name": "objectId",
            "type": "System.Guid",
            "summary": "Id of object to be replaced."
          },
          {
            "name": "subD",
            "type": "SubD",
            "summary": "new mesh to be added A duplicate of the mesh is added to the Rhino model."
          }
        ],
        "returns": "True if successful."
      },
      {
        "signature": "System.Boolean Replace(System.Guid objectId, Surface surface)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Replaces one object with new surface object.",
        "since": "5.0",
        "parameters": [
          {
            "name": "objectId",
            "type": "System.Guid",
            "summary": "Id of object to be replaced."
          },
          {
            "name": "surface",
            "type": "Surface",
            "summary": "new surface to be added A duplicate of the surface is added to the Rhino model."
          }
        ],
        "returns": "True if successful."
      },
      {
        "signature": "System.Boolean Replace(System.Guid objectId, TextDot dot)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Replaces one object with new text dot object.",
        "since": "5.0",
        "parameters": [
          {
            "name": "objectId",
            "type": "System.Guid",
            "summary": "Id of object to be replaced."
          },
          {
            "name": "dot",
            "type": "TextDot",
            "summary": "new text dot to be added.  The text dot is copied."
          }
        ],
        "returns": "True if successful."
      },
      {
        "signature": "System.Boolean Replace(System.Guid objectId, TextEntity text)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Replaces one object with new text object.",
        "since": "5.0",
        "parameters": [
          {
            "name": "objectId",
            "type": "System.Guid",
            "summary": "Id of object to be replaced."
          },
          {
            "name": "text",
            "type": "TextEntity",
            "summary": "new text to be added.  The text is copied."
          }
        ],
        "returns": "True if successful."
      },
      {
        "signature": "System.Boolean ReplaceInstanceObject(ObjRef objref, System.Int32 instanceDefinitionIndex)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Replaces the underlying instance definition of an instance object.",
        "since": "6.8",
        "parameters": [
          {
            "name": "objref",
            "type": "ObjRef",
            "summary": "Reference to the instance object to be replaced. The objref.Object() will be deleted."
          },
          {
            "name": "instanceDefinitionIndex",
            "type": "System.Int32",
            "summary": "The index of the new instance definition to use."
          }
        ],
        "returns": "True if successful."
      },
      {
        "signature": "System.Boolean ReplaceInstanceObject(System.Guid objectId, System.Int32 instanceDefinitionIndex)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Replaces the underlying instance definition of an instance object.",
        "since": "6.8",
        "parameters": [
          {
            "name": "objectId",
            "type": "System.Guid",
            "summary": "Id of the instance object to be replaced."
          },
          {
            "name": "instanceDefinitionIndex",
            "type": "System.Int32",
            "summary": "The index of the new instance definition to use."
          }
        ],
        "returns": "True if successful."
      },
      {
        "signature": "System.Int32 Select(IEnumerable<Guid> objectIds, System.Boolean select, System.Boolean syncHighlight, System.Boolean persistentSelect, System.Boolean ignoreGripsState, System.Boolean ignoreLayerLocking, System.Boolean ignoreLayerVisibility)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Select or deselect a colletion of objects.",
        "since": "9.0",
        "parameters": [
          {
            "name": "objectIds",
            "type": "IEnumerable<Guid>",
            "summary": ""
          },
          {
            "name": "select",
            "type": "System.Boolean",
            "summary": "If true, the object will be selected, if false, it will be deselected."
          },
          {
            "name": "syncHighlight",
            "type": "System.Boolean",
            "summary": "If true, then the object is highlighted if it is selected and unhighlighted if is not selected."
          },
          {
            "name": "persistentSelect",
            "type": "System.Boolean",
            "summary": "Objects that are persistently selected stay selected when a command terminates."
          },
          {
            "name": "ignoreGripsState",
            "type": "System.Boolean",
            "summary": "If true, then objects with grips on can be selected. If false, then the value returned by the object's IsSelectableWithGripsOn() function decides if the object can be selected when it has grips turned on."
          },
          {
            "name": "ignoreLayerLocking",
            "type": "System.Boolean",
            "summary": "If true, then objects on locked layers can be selected."
          },
          {
            "name": "ignoreLayerVisibility",
            "type": "System.Boolean",
            "summary": "If true, then objects on hidden layers can be selectable."
          }
        ],
        "returns": "Number of objects successfully selected or deselected."
      },
      {
        "signature": "System.Int32 Select(IEnumerable<Guid> objectIds, System.Boolean select)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Selects or deselects a collection of objects.",
        "since": "5.0",
        "parameters": [
          {
            "name": "objectIds",
            "type": "IEnumerable<Guid>",
            "summary": "Ids of objects to select or deselect."
          },
          {
            "name": "select",
            "type": "System.Boolean",
            "summary": "If true, objects will be selected. If false, objects will be deselected."
          }
        ],
        "returns": "Number of objects successfully selected or deselected."
      },
      {
        "signature": "System.Int32 Select(IEnumerable<Guid> objectIds)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Selects a collection of objects.",
        "since": "5.0",
        "parameters": [
          {
            "name": "objectIds",
            "type": "IEnumerable<Guid>",
            "summary": "Ids of objects to select."
          }
        ],
        "returns": "Number of objects successfully selected."
      },
      {
        "signature": "System.Int32 Select(IEnumerable<ObjRef> objRefs, System.Boolean select)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Selects or deselects a collection of objects.",
        "since": "5.0",
        "parameters": [
          {
            "name": "objRefs",
            "type": "IEnumerable<ObjRef>",
            "summary": "References to objects to select or deselect."
          },
          {
            "name": "select",
            "type": "System.Boolean",
            "summary": "If true, objects will be selected. If false, objects will be deselected."
          }
        ],
        "returns": "Number of objects successfully selected or deselected."
      },
      {
        "signature": "System.Int32 Select(IEnumerable<ObjRef> objRefs)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Selects a collection of objects.",
        "since": "5.0",
        "parameters": [
          {
            "name": "objRefs",
            "type": "IEnumerable<ObjRef>",
            "summary": "References to objects to select."
          }
        ],
        "returns": "Number of objects successfully selected."
      },
      {
        "signature": "System.Boolean Select(ObjRef objref, System.Boolean select, System.Boolean syncHighlight, System.Boolean persistentSelect, System.Boolean ignoreGripsState, System.Boolean ignoreLayerLocking, System.Boolean ignoreLayerVisibility)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Select or deselects a single object.",
        "since": "5.0",
        "parameters": [
          {
            "name": "objref",
            "type": "ObjRef",
            "summary": "Object represented by this ObjRef is selected."
          },
          {
            "name": "select",
            "type": "System.Boolean",
            "summary": "If true, the object will be selected, if false, it will be deselected."
          },
          {
            "name": "syncHighlight",
            "type": "System.Boolean",
            "summary": "If true, then the object is highlighted if it is selected and unhighlighted if is not selected."
          },
          {
            "name": "persistentSelect",
            "type": "System.Boolean",
            "summary": "Objects that are persistently selected stay selected when a command terminates."
          },
          {
            "name": "ignoreGripsState",
            "type": "System.Boolean",
            "summary": "If true, then objects with grips on can be selected. If false, then the value returned by the object's IsSelectableWithGripsOn() function decides if the object can be selected when it has grips turned on."
          },
          {
            "name": "ignoreLayerLocking",
            "type": "System.Boolean",
            "summary": "If true, then objects on locked layers can be selected."
          },
          {
            "name": "ignoreLayerVisibility",
            "type": "System.Boolean",
            "summary": "If true, then objects on hidden layers can be selectable."
          }
        ],
        "returns": "True on success, False on failure."
      },
      {
        "signature": "System.Boolean Select(ObjRef objref, System.Boolean select, System.Boolean syncHighlight, System.Boolean persistentSelect)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Select or deselects a single object.",
        "since": "5.0",
        "parameters": [
          {
            "name": "objref",
            "type": "ObjRef",
            "summary": "Object represented by this ObjRef is selected."
          },
          {
            "name": "select",
            "type": "System.Boolean",
            "summary": "If true, the object will be selected, if false, it will be deselected."
          },
          {
            "name": "syncHighlight",
            "type": "System.Boolean",
            "summary": "If true, then the object is highlighted if it is selected and unhighlighted if is not selected."
          },
          {
            "name": "persistentSelect",
            "type": "System.Boolean",
            "summary": "Objects that are persistently selected stay selected when a command terminates."
          }
        ],
        "returns": "True on success, False on failure."
      },
      {
        "signature": "System.Boolean Select(ObjRef objref, System.Boolean select, System.Boolean syncHighlight)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Select or deselects a single object.",
        "since": "5.0",
        "parameters": [
          {
            "name": "objref",
            "type": "ObjRef",
            "summary": "Object represented by this ObjRef is selected."
          },
          {
            "name": "select",
            "type": "System.Boolean",
            "summary": "If true, the object will be selected, if false, it will be deselected."
          },
          {
            "name": "syncHighlight",
            "type": "System.Boolean",
            "summary": "If true, then the object is highlighted if it is selected and unhighlighted if is not selected."
          }
        ],
        "returns": "True on success, False on failure."
      },
      {
        "signature": "System.Boolean Select(ObjRef objref, System.Boolean select)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Select or deselects a single object.",
        "since": "5.0",
        "parameters": [
          {
            "name": "objref",
            "type": "ObjRef",
            "summary": "Object represented by this ObjRef is selected."
          },
          {
            "name": "select",
            "type": "System.Boolean",
            "summary": "If true, the object will be selected, if false, it will be deselected."
          }
        ],
        "returns": "True on success, False on failure."
      },
      {
        "signature": "System.Boolean Select(ObjRef objref)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Select a single object.",
        "since": "5.0",
        "parameters": [
          {
            "name": "objref",
            "type": "ObjRef",
            "summary": "Object represented by this ObjRef is selected."
          }
        ],
        "returns": "True on success, False on failure."
      },
      {
        "signature": "System.Boolean Select(System.Guid objectId, System.Boolean select, System.Boolean syncHighlight, System.Boolean persistentSelect, System.Boolean ignoreGripsState, System.Boolean ignoreLayerLocking, System.Boolean ignoreLayerVisibility)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Select or deselects a single object.",
        "since": "5.0",
        "parameters": [
          {
            "name": "objectId",
            "type": "System.Guid",
            "summary": "Id of object to select."
          },
          {
            "name": "select",
            "type": "System.Boolean",
            "summary": "If true, the object will be selected, if false, it will be deselected."
          },
          {
            "name": "syncHighlight",
            "type": "System.Boolean",
            "summary": "If true, then the object is highlighted if it is selected and unhighlighted if is not selected."
          },
          {
            "name": "persistentSelect",
            "type": "System.Boolean",
            "summary": "Objects that are persistently selected stay selected when a command terminates."
          },
          {
            "name": "ignoreGripsState",
            "type": "System.Boolean",
            "summary": "If true, then objects with grips on can be selected. If false, then the value returned by the object's IsSelectableWithGripsOn() function decides if the object can be selected when it has grips turned on."
          },
          {
            "name": "ignoreLayerLocking",
            "type": "System.Boolean",
            "summary": "If true, then objects on locked layers can be selected."
          },
          {
            "name": "ignoreLayerVisibility",
            "type": "System.Boolean",
            "summary": "If true, then objects on hidden layers can be selectable."
          }
        ],
        "returns": "True on success, False on failure."
      },
      {
        "signature": "System.Boolean Select(System.Guid objectId, System.Boolean select, System.Boolean syncHighlight, System.Boolean persistentSelect)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Select or deselects a single object.",
        "since": "5.0",
        "parameters": [
          {
            "name": "objectId",
            "type": "System.Guid",
            "summary": "Id of object to select."
          },
          {
            "name": "select",
            "type": "System.Boolean",
            "summary": "If true, the object will be selected, if false, it will be deselected."
          },
          {
            "name": "syncHighlight",
            "type": "System.Boolean",
            "summary": "If true, then the object is highlighted if it is selected and unhighlighted if is not selected."
          },
          {
            "name": "persistentSelect",
            "type": "System.Boolean",
            "summary": "Objects that are persistently selected stay selected when a command terminates."
          }
        ],
        "returns": "True on success, False on failure."
      },
      {
        "signature": "System.Boolean Select(System.Guid objectId, System.Boolean select, System.Boolean syncHighlight)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Select or deselects a single object.",
        "since": "5.0",
        "parameters": [
          {
            "name": "objectId",
            "type": "System.Guid",
            "summary": "Id of object to select."
          },
          {
            "name": "select",
            "type": "System.Boolean",
            "summary": "If true, the object will be selected, if false, it will be deselected."
          },
          {
            "name": "syncHighlight",
            "type": "System.Boolean",
            "summary": "If true, then the object is highlighted if it is selected and unhighlighted if is not selected."
          }
        ],
        "returns": "True on success, False on failure."
      },
      {
        "signature": "System.Boolean Select(System.Guid objectId, System.Boolean select)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Select or deselects a single object.",
        "since": "5.0",
        "parameters": [
          {
            "name": "objectId",
            "type": "System.Guid",
            "summary": "Id of object to select."
          },
          {
            "name": "select",
            "type": "System.Boolean",
            "summary": "If true, the object will be selected, if false, it will be deselected."
          }
        ],
        "returns": "True on success, False on failure."
      },
      {
        "signature": "System.Boolean Select(System.Guid objectId)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Select a single object.",
        "since": "5.0",
        "parameters": [
          {
            "name": "objectId",
            "type": "System.Guid",
            "summary": "Id of object to select."
          }
        ],
        "returns": "True on success, False on failure."
      },
      {
        "signature": "System.Boolean SelectedObjectsExist(ObjectType objectType, System.Boolean checkSubObjects)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Quick way to test if any objects are currently selected",
        "since": "8.10",
        "parameters": [
          {
            "name": "objectType",
            "type": "ObjectType",
            "summary": "the type of objects to test for"
          },
          {
            "name": "checkSubObjects",
            "type": "System.Boolean",
            "summary": "Check to see if subobjects are selected"
          }
        ]
      },
      {
        "signature": "System.Int32 SetSelectedObjects(IEnumerable<Guid> objectIds, System.Boolean syncHighlight, System.Boolean persistentSelect, System.Boolean ignoreGripsState, System.Boolean ignoreLayerLocking, System.Boolean ignoreLayerVisibility)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Set object selection.",
        "since": "9.0",
    "remarks": "This method clears current selection before set the new one.",
        "parameters": [
          {
            "name": "objectIds",
            "type": "IEnumerable<Guid>",
            "summary": ""
          },
          {
            "name": "syncHighlight",
            "type": "System.Boolean",
            "summary": "If true, then the object is highlighted if it is selected and unhighlighted if is not selected."
          },
          {
            "name": "persistentSelect",
            "type": "System.Boolean",
            "summary": "Objects that are persistently selected stay selected when a command terminates."
          },
          {
            "name": "ignoreGripsState",
            "type": "System.Boolean",
            "summary": "If true, then objects with grips on can be selected. If false, then the value returned by the object's IsSelectableWithGripsOn() function decides if the object can be selected when it has grips turned on."
          },
          {
            "name": "ignoreLayerLocking",
            "type": "System.Boolean",
            "summary": "If true, then objects on locked layers can be selected."
          },
          {
            "name": "ignoreLayerVisibility",
            "type": "System.Boolean",
            "summary": "If true, then objects on hidden layers can be selectable."
          }
        ],
        "returns": "Number of objects successfully selected."
      },
      {
        "signature": "System.Boolean Show(ObjRef objref, System.Boolean ignoreLayerMode)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "If objref.Object().IsHidden() is true, then the object will be returned to normal (visible and selectable) mode.",
        "since": "5.0",
        "parameters": [
          {
            "name": "objref",
            "type": "ObjRef",
            "summary": "reference to normal object to show."
          },
          {
            "name": "ignoreLayerMode",
            "type": "System.Boolean",
            "summary": "if true, the object will be shown even if it is on a layer that is locked or off."
          }
        ],
        "returns": "True if the object was successfully shown."
      },
      {
        "signature": "System.Boolean Show(RhinoObject obj, System.Boolean ignoreLayerMode)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "If obj.IsHidden() is true, then the object will be returned to normal (visible and selectable) mode.",
        "since": "5.0",
        "parameters": [
          {
            "name": "obj",
            "type": "RhinoObject",
            "summary": "the normal object to show."
          },
          {
            "name": "ignoreLayerMode",
            "type": "System.Boolean",
            "summary": "if true, the object will be shown even if it is on a layer that is locked or off."
          }
        ],
        "returns": "True if the object was successfully shown."
      },
      {
        "signature": "System.Boolean Show(System.Guid objectId, System.Boolean ignoreLayerMode)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "If Object().IsHidden() is true, then the object will be returned to normal (visible and selectable) mode.",
        "since": "5.0",
        "parameters": [
          {
            "name": "objectId",
            "type": "System.Guid",
            "summary": "Id of the normal object to show."
          },
          {
            "name": "ignoreLayerMode",
            "type": "System.Boolean",
            "summary": "if true, the object will be shown even if it is on a layer that is locked or off."
          }
        ],
        "returns": "True if the object was successfully shown."
      },
      {
        "signature": "System.Guid Transform(ObjRef objref, Transform xform, System.Boolean deleteOriginal)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Constructs a new object that is the transformation of the existing object and deletes the existing object if deleteOriginal is true.",
        "since": "5.0",
    "remarks": "If the object is locked or on a locked layer, then it cannot be transformed.",
        "parameters": [
          {
            "name": "objref",
            "type": "ObjRef",
            "summary": "reference to object to transform. The objref.Object() will be deleted if deleteOriginal is true."
          },
          {
            "name": "xform",
            "type": "Transform",
            "summary": "transformation to apply."
          },
          {
            "name": "deleteOriginal",
            "type": "System.Boolean",
            "summary": "if true, the original object is deleted if false, the original object is not deleted."
          }
        ],
        "returns": "Id of the new object that is the transformation of the existing_object. The new object has identical attributes."
      },
      {
        "signature": "System.Guid Transform(RhinoObject obj, Transform xform, System.Boolean deleteOriginal)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Constructs a new object that is the transformation of the existing object and deletes the existing object if deleteOriginal is true.",
        "since": "5.0",
    "remarks": "If the object is locked or on a locked layer, then it cannot be transformed.",
        "parameters": [
          {
            "name": "obj",
            "type": "RhinoObject",
            "summary": "Rhino object to transform. This object will be deleted if deleteOriginal is true."
          },
          {
            "name": "xform",
            "type": "Transform",
            "summary": "transformation to apply."
          },
          {
            "name": "deleteOriginal",
            "type": "System.Boolean",
            "summary": "if true, the original object is deleted if false, the original object is not deleted."
          }
        ],
        "returns": "Id of the new object that is the transformation of the existing_object. The new object has identical attributes."
      },
      {
        "signature": "System.Guid Transform(System.Guid objectId, Transform xform, System.Boolean deleteOriginal)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Constructs a new object that is the transformation of the existing object and deletes the existing object if deleteOriginal is true.",
        "since": "5.0",
    "remarks": "If the object is locked or on a locked layer, then it cannot be transformed.",
        "parameters": [
          {
            "name": "objectId",
            "type": "System.Guid",
            "summary": "Id of rhino object to transform. This object will be deleted if deleteOriginal is true."
          },
          {
            "name": "xform",
            "type": "Transform",
            "summary": "transformation to apply."
          },
          {
            "name": "deleteOriginal",
            "type": "System.Boolean",
            "summary": "if true, the original object is deleted if false, the original object is not deleted."
          }
        ],
        "returns": "Id of the new object that is the transformation of the existing_object. The new object has identical attributes."
      },
      {
        "signature": "System.Guid TransformWithHistory(ObjRef objref, Transform xform)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Constructs a new object that is the transformation of the existing object and records history of the transformation if history recording is turned on. If history recording is not enabled, this function will act the same as Transform(objref, xform, false)",
        "since": "5.0",
    "remarks": "If the object is locked or on a locked layer, then it cannot be transformed.",
        "parameters": [
          {
            "name": "objref",
            "type": "ObjRef",
            "summary": "reference to object to transform."
          },
          {
            "name": "xform",
            "type": "Transform",
            "summary": "transformation to apply."
          }
        ],
        "returns": "Id of the new object that is the transformation of the existing_object. The new object has identical attributes."
      },
      {
        "signature": "System.Guid TransformWithHistory(RhinoObject obj, Transform xform)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Constructs a new object that is the transformation of the existing object and records history of the transformation if history recording is turned on. If history recording is not enabled, this function will act the same as Transform(obj, xform, false)",
        "since": "5.0",
    "remarks": "If the object is locked or on a locked layer, then it cannot be transformed.",
        "parameters": [
          {
            "name": "obj",
            "type": "RhinoObject",
            "summary": "Rhino object to transform."
          },
          {
            "name": "xform",
            "type": "Transform",
            "summary": "transformation to apply."
          }
        ],
        "returns": "Id of the new object that is the transformation of the existing_object. The new object has identical attributes."
      },
      {
        "signature": "System.Guid TransformWithHistory(System.Guid objectId, Transform xform)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Constructs a new object that is the transformation of the existing object and records history of the transformation if history recording is turned on. If history recording is not enabled, this function will act the same as Transform(objectId, xform, false)",
        "since": "5.0",
    "remarks": "If the object is locked or on a locked layer, then it cannot be transformed.",
        "parameters": [
          {
            "name": "objectId",
            "type": "System.Guid",
            "summary": "Id of rhino object to transform."
          },
          {
            "name": "xform",
            "type": "Transform",
            "summary": "transformation to apply."
          }
        ],
        "returns": "Id of the new object that is the transformation of the existing_object. The new object has identical attributes."
      },
      {
        "signature": "System.Boolean TryFindPoint(System.Guid id, out Point3d point)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Finds the location of a point, if a point exists in the document.",
        "since": "6.0",
        "parameters": [
          {
            "name": "id",
            "type": "System.Guid",
            "summary": "ID of point object to search for."
          },
          {
            "name": "point",
            "type": "Point3d",
            "summary": "The point will be passed here."
          }
        ],
        "returns": "True on success; False if point was not found, id represented another geometry type, or on error."
      },
      {
        "signature": "System.Boolean Undelete(RhinoObject rhinoObject)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "System.Boolean Undelete(System.UInt32 runtimeSerialNumber)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "System.Boolean Unlock(ObjRef objref, System.Boolean ignoreLayerMode)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "If objref.Object().IsLocked() is true, then the object will be returned to normal (visible and selectable) mode.",
        "since": "5.0",
        "parameters": [
          {
            "name": "objref",
            "type": "ObjRef",
            "summary": "reference to locked object to unlock."
          },
          {
            "name": "ignoreLayerMode",
            "type": "System.Boolean",
            "summary": "if true, the object will be unlocked even if it is on a layer that is locked or off."
          }
        ],
        "returns": "True if the object was successfully unlocked."
      },
      {
        "signature": "System.Boolean Unlock(RhinoObject obj, System.Boolean ignoreLayerMode)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "If obj.IsLocked() is true, then the object will be returned to normal (visible and selectable) mode.",
        "since": "5.0",
        "parameters": [
          {
            "name": "obj",
            "type": "RhinoObject",
            "summary": "locked object to unlock."
          },
          {
            "name": "ignoreLayerMode",
            "type": "System.Boolean",
            "summary": "if true, the object will be unlocked even if it is on a layer that is locked or off."
          }
        ],
        "returns": "True if the object was successfully unlocked."
      },
      {
        "signature": "System.Boolean Unlock(System.Guid objectId, System.Boolean ignoreLayerMode)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "If Object().IsLocked() is true, then the object will be returned to normal (visible and selectable) mode.",
        "since": "5.0",
        "parameters": [
          {
            "name": "objectId",
            "type": "System.Guid",
            "summary": "Id of locked object to unlock."
          },
          {
            "name": "ignoreLayerMode",
            "type": "System.Boolean",
            "summary": "if true, the object will be unlocked even if it is on a layer that is locked or off."
          }
        ],
        "returns": "True if the object was successfully unlocked."
      },
      {
        "signature": "System.Int32 UnselectAll()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Unselect objects.",
        "since": "5.0",
        "returns": "Number of object that were unselected."
      },
      {
        "signature": "System.Int32 UnselectAll(System.Boolean ignorePersistentSelections)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Unselect objects.",
        "since": "5.0",
        "parameters": [
          {
            "name": "ignorePersistentSelections",
            "type": "System.Boolean",
            "summary": "if true, then objects that are persistently selected will not be unselected."
          }
        ],
        "returns": "Number of object that were unselected."
      }
    ]
  },
  {
    "namespace": "Rhino.DocObjects.Tables",
    "name": "PageViewGroupTable",
    "dataType": "class",
    "summary": "PageView group table",
    "baseclass": "RhinoDocCommonTable<PageViewGroup>",
    "interfaces": ["ICollection<PageViewGroup>"],
    "since": "9.0",
    "properties": [
      {
        "signature": "int ActiveCount",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns number of page view groups in the table, excluding deleted page view groups.",
        "since": "9.0",
        "property": ["get"]
      },
      {
        "signature": "ModelComponentType ComponentType",
        "modifiers": ["public", "override"],
        "protected": false,
        "virtual": false,
        "since": "9.0",
        "property": ["get"]
      },
      {
        "signature": "int Count",
        "modifiers": ["public", "override"],
        "protected": false,
        "virtual": false,
        "summary": "Returns number of page view groups in the table, including deleted page view groups.",
        "since": "9.0",
        "property": ["get"]
      },
      {
        "signature": "RhinoDoc Document",
        "modifiers": ["public", "new"],
        "protected": false,
        "virtual": false,
        "summary": "Document that owns this table.",
        "since": "9.0",
        "property": ["get"]
      },
      {
        "signature": "PageViewGroup this[int index]",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Conceptually, the page view group table is an array of page view groups. The operator[] can be used to get individual page view group. A page view group is either active or deleted and this state is reported by PageViewGroup.IsDeleted.",
        "since": "9.0"
      }
    ],
    "methods": [
      {
        "signature": "System.Int32 Add()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Adds a new page view group to the table. The new page view group will be given a unique name.",
        "since": "9.0",
        "returns": "Index of new page view group if successful, -1 otherwise."
      },
      {
        "signature": "System.Int32 Add(IEnumerable<RhinoPageView> groupMembers)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Adds a new page view group to the table, and adds page views to the group. The new page view group will be given a unique name.",
        "since": "9.0",
        "parameters": [
          {
            "name": "groupMembers",
            "type": "IEnumerable<RhinoPageView>",
            "summary": "An enumeration of page views."
          }
        ],
        "returns": "Index of new page view group if successful, -1 otherwise."
      },
      {
        "signature": "System.Int32 Add(PageViewGroup group, IEnumerable<RhinoPageView> groupMembers)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Adds a new page view group to the table, and adds page views to the group.",
        "since": "9.0",
        "parameters": [
          {
            "name": "group",
            "type": "PageViewGroup",
            "summary": "The page view group to add. The information in the page view group is copied. If group.Name is empty a unique name will be used."
          },
          {
            "name": "groupMembers",
            "type": "IEnumerable<RhinoPageView>",
            "summary": "An enumeration of page views."
          }
        ],
        "returns": "Index of new page view group if successful, -1 otherwise."
      },
      {
        "signature": "System.Int32 Add(PageViewGroup group)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Adds a new page view group to the table.",
        "since": "9.0",
        "parameters": [
          {
            "name": "group",
            "type": "PageViewGroup",
            "summary": "The page view group to add. The information in the page view group is copied. If group.Name is empty a unique name will be used."
          }
        ],
        "returns": "Index of new page view group if successful, -1 otherwise."
      },
      {
        "signature": "System.Boolean Delete(PageViewGroup group, System.Boolean quiet)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Deletes a page view group.",
        "since": "9.0",
        "parameters": [
          {
            "name": "group",
            "type": "PageViewGroup",
            "summary": "PageViewGroup to delete."
          },
          {
            "name": "quiet",
            "type": "System.Boolean",
            "summary": "True to disable any warning or error messages."
          }
        ],
        "returns": "True if successful, False otherwise."
      },
      {
        "signature": "System.Boolean Delete(PageViewGroup group)",
        "modifiers": ["public", "override"],
        "protected": false,
        "virtual": false,
        "summary": "Deletes a page view group.",
        "since": "9.0",
        "parameters": [
          {
            "name": "group",
            "type": "PageViewGroup",
            "summary": "PageViewGroup to delete."
          }
        ]
      },
      {
        "signature": "System.Boolean Delete(System.Guid id, System.Boolean quiet)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Deletes a page view group.",
        "since": "9.0",
        "parameters": [
          {
            "name": "id",
            "type": "System.Guid",
            "summary": "Id of page view group."
          },
          {
            "name": "quiet",
            "type": "System.Boolean",
            "summary": "True to disable any warning or error messages."
          }
        ],
        "returns": "True if successful, False otherwise."
      },
      {
        "signature": "System.Boolean Delete(System.Int32 index, System.Boolean quiet)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Deletes a page view group.",
        "since": "9.0",
        "parameters": [
          {
            "name": "index",
            "type": "System.Int32",
            "summary": "Zero-based index of page view group."
          },
          {
            "name": "quiet",
            "type": "System.Boolean",
            "summary": "True to disable any warning or error messages."
          }
        ],
        "returns": "True if successful, False otherwise."
      },
      {
        "signature": "PageViewGroup FindIndex(System.Int32 index)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Finds a page view group given its index.",
        "since": "9.0",
        "parameters": [
          {
            "name": "index",
            "type": "System.Int32",
            "summary": "Zero-based page view group index."
          }
        ],
        "returns": "An page view group, or None if not found or on error."
      },
      {
        "signature": "PageViewGroup FindName(System.String name)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Finds a page view group given its name.",
        "since": "9.0",
        "parameters": [
          {
            "name": "name",
            "type": "System.String",
            "summary": "The name of the page view group."
          }
        ],
        "returns": "An page view group, or None if not found or on error."
      },
      {
        "signature": "PageViewGroup FindNameHash(NameHash nameHash)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Finds a page view group given its name hash.",
        "since": "9.0",
        "parameters": [
          {
            "name": "nameHash",
            "type": "NameHash",
            "summary": "The name hash of the page view group."
          }
        ],
        "returns": "An page view group, or None if not found or on error."
      },
      {
        "signature": "IEnumerator<PageViewGroup> GetEnumerator()",
        "modifiers": ["public", "override"],
        "protected": false,
        "virtual": false,
        "since": "9.0"
      },
      {
        "signature": "System.Int32[] GetSorted()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets an array of page view group indices that are sorted by the values of <b>PageViewGroup.SortIndex</b> .",
        "since": "9.0",
        "returns": "An array of page view indices."
      },
      {
        "signature": "System.String GetUnusedName()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets an unused page view group name.",
        "since": "9.0",
        "returns": "An unused page view group name"
      },
      {
        "signature": "System.String GetUnusedName(System.String rootName)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets an unused page view group name.",
        "since": "9.0",
        "parameters": [
          {
            "name": "rootName",
            "type": "System.String",
            "summary": "The name's root or prefix."
          }
        ],
        "returns": "An unused page view group name"
      },
      {
        "signature": "System.Boolean Modify(PageViewGroup newSettings, System.Guid id, System.Boolean quiet)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Modifies a page view group.",
        "since": "9.0",
        "parameters": [
          {
            "name": "newSettings",
            "type": "PageViewGroup",
            "summary": "The modified page view group."
          },
          {
            "name": "id",
            "type": "System.Guid",
            "summary": "Id of page view group to modify."
          },
          {
            "name": "quiet",
            "type": "System.Boolean",
            "summary": ""
          }
        ],
        "returns": ">True if successful, False otherwise."
      },
      {
        "signature": "System.Boolean Modify(PageViewGroup newSettings, System.Int32 index, System.Boolean quiet)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Modifies a page view group.",
        "since": "9.0",
        "parameters": [
          {
            "name": "newSettings",
            "type": "PageViewGroup",
            "summary": "The modified page view group."
          },
          {
            "name": "index",
            "type": "System.Int32",
            "summary": "Zero-based index of page view group to modify."
          },
          {
            "name": "quiet",
            "type": "System.Boolean",
            "summary": "True to disable any warning or error messages."
          }
        ],
        "returns": ">True if successful, False otherwise."
      },
      {
        "signature": "System.Boolean Undelete(System.Guid id)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Undeletes a page view group that has been deleted.",
        "since": "9.0",
        "parameters": [
          {
            "name": "id",
            "type": "System.Guid",
            "summary": "Id of page view group."
          }
        ],
        "returns": "True if successful, False otherwise."
      },
      {
        "signature": "System.Boolean Undelete(System.Int32 index)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Undeletes a page view group that has been deleted.",
        "since": "9.0",
        "parameters": [
          {
            "name": "index",
            "type": "System.Int32",
            "summary": "Zero-based index of page view group."
          }
        ],
        "returns": "True if successful, False otherwise."
      },
      {
        "signature": "System.Boolean UndoModify(System.Guid id, System.UInt32 undoRecordSerialNumber)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "If the page view group has been modified and the modification can be undone, then this will restore the page view group to its previous state.",
        "since": "9.0",
        "parameters": [
          {
            "name": "id",
            "type": "System.Guid",
            "summary": "Id of page view group."
          },
          {
            "name": "undoRecordSerialNumber",
            "type": "System.UInt32",
            "summary": ""
          }
        ],
        "returns": ">True if successful, False otherwise."
      },
      {
        "signature": "System.Boolean UndoModify(System.Guid id)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "If the page view group has been modified and the modification can be undone, then this will restore the page view group to its previous state.",
        "since": "9.0",
        "parameters": [
          {
            "name": "id",
            "type": "System.Guid",
            "summary": "Id of page view group."
          }
        ],
        "returns": ">True if successful, False otherwise."
      },
      {
        "signature": "System.Boolean UndoModify(System.Int32 index, System.UInt32 undoRecordSerialNumber)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "If the page view group has been modified and the modification can be undone, then this will restore the page view group to its previous state.",
        "since": "9.0",
        "parameters": [
          {
            "name": "index",
            "type": "System.Int32",
            "summary": "Zero-based index of page view group."
          },
          {
            "name": "undoRecordSerialNumber",
            "type": "System.UInt32",
            "summary": "Undo record serial number."
          }
        ],
        "returns": ">True if successful, False otherwise."
      },
      {
        "signature": "System.Boolean UndoModify(System.Int32 index)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "If the page view group has been modified and the modification can be undone, then this will restore the page view group to its previous state.",
        "since": "9.0",
        "parameters": [
          {
            "name": "index",
            "type": "System.Int32",
            "summary": "Zero-based index of page view group."
          }
        ],
        "returns": ">True if successful, False otherwise."
      }
    ]
  },
  {
    "namespace": "Rhino.DocObjects.Tables",
    "name": "PageViewGroupTableEventArgs",
    "dataType": "class",
    "summary": "PageViewGroupTable event arguments",
    "baseclass": "EventArgs",
    "since": "9.0",
    "properties": [
      {
        "signature": "RhinoDoc Document",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "9.0",
        "property": ["get"]
      },
      {
        "signature": "PageViewGroupTableEventType EventType",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "9.0",
        "property": ["get"]
      },
      {
        "signature": "PageViewGroup NewState",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "9.0",
        "property": ["get"]
      },
      {
        "signature": "PageViewGroup OldState",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "9.0",
        "property": ["get"]
      },
      {
        "signature": "int PageViewGroupIndex",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "9.0",
        "property": ["get"]
      }
    ]
  },
  {
    "namespace": "Rhino.DocObjects.Tables",
    "name": "PageViewGroupTableEventType",
    "dataType": "enum",
    "summary": "PageViewGroupTable event types",
    "since": "9.0",
    "values": [
      {
        "signature": "Added = 0",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Deleted = 1",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Undeleted = 2",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Modified = 3",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Sorted = 4",
        "modifiers": [],
        "protected": false,
        "virtual": false
      }
    ]

  },
  {
    "namespace": "Rhino.DocObjects.Tables",
    "name": "RestoreLayerProperties",
    "dataType": "enum",
    "summary": "Layer State restoration flags",
    "since": "6.14",
    "values": [
      {
        "signature": "None = 0x0",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Restore nothing",
        "since": "6.14"
      },
      {
        "signature": "Current = 0x1",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Restore current layer",
        "since": "6.14"
      },
      {
        "signature": "Visible = 0x2",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Restore layer visibility",
        "since": "6.14"
      },
      {
        "signature": "Locked = 0x4",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Restore layer locked status",
        "since": "6.14"
      },
      {
        "signature": "Color = 0x8",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Restore layer color",
        "since": "6.14"
      },
      {
        "signature": "Linetype = 0x10",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Restore layer linetype",
        "since": "6.14"
      },
      {
        "signature": "PrintColor = 0x20",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Restore layer print color",
        "since": "6.14"
      },
      {
        "signature": "PrintWidth = 0x40",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Restore layer print width",
        "since": "6.14"
      },
      {
        "signature": "ViewportVisible = 0x80",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Restore per-viewport layer visibility",
        "since": "6.14"
      },
      {
        "signature": "ViewportColor = 0x100",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Restore per-viewport layer color",
        "since": "6.14"
      },
      {
        "signature": "ViewportPrintColor = 0x200",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Restore per-viewport layer print color",
        "since": "6.14"
      },
      {
        "signature": "ViewportPrintWidth = 0x400",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Restore per-viewport layer print width",
        "since": "6.14"
      },
      {
        "signature": "RenderMaterial = 0x800",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Restore render material",
        "since": "6.14"
      },
      {
        "signature": "SectionStyle = 0x1000",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Section style",
        "since": "8.0"
      },
      {
        "signature": "NewDetailOn = 0x2000",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "New Detail On",
        "since": "8.0"
      },
      {
        "signature": "Expanded = 0x4000",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Expanded/Collapsed state",
        "since": "8.12"
      },
      {
        "signature": "All = 0xFFFFFFFF",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Restore all layer properties",
        "since": "6.14"
      }
    ]

  },
  {
    "namespace": "Rhino.DocObjects.Tables",
    "name": "RhinoDocCommonTable<T>",
    "dataType": "class",
    "baseclass": "Rhino.FileIO.CommonComponentTable<T>",
    "properties": [
      {
        "signature": "RhinoDoc Document",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Document that owns this table.",
        "property": ["get"]
      }
    ]
  },
  {
    "namespace": "Rhino.DocObjects.Tables",
    "name": "RuntimeDocumentDataTable",
    "dataType": "class",
    "summary": "Collection of document runtime data. This is a good place to put non-serialized, per document data.",
    "baseclass": "Dictionary<object, object>",
    "properties": [
      {
        "signature": "RhinoDoc Document",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.3",
        "property": ["get"]
      }
    ],
    "methods": [
      {
        "signature": "T GetValue(System.Object key, Func<RhinoDoc, T> newT)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Checks the dictionary for the specified key, if found and the value is not None then the value is returned.  If the key is not found or its value is None then newT(Document) is called to create a new value instance which is put in the dictionary and returned.",
        "parameters": [
          {
            "name": "key",
            "type": "System.Object",
            "summary": "Key to search for."
          },
          {
            "name": "newT",
            "type": "Func<RhinoDoc, T>",
            "summary": "Function called to create new value"
          }
        ],
        "returns": "Returns the document specific instance of type T using the specified dictionary key."
      },
      {
        "signature": "T TryGetValue(System.Object key)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Check dictionary for value and return it properly cast if found.",
        "since": "6.15",
        "parameters": [
          {
            "name": "key",
            "type": "System.Object",
            "summary": "Key to search for."
          }
        ],
        "returns": "Returns the document specific instance of type T using the specified dictionary key or None if not found."
      }
    ]
  },
  {
    "namespace": "Rhino.DocObjects.Tables",
    "name": "SectionStyleTable",
    "dataType": "class",
    "summary": "Section style table",
    "baseclass": "RhinoDocCommonTable<SectionStyle>",
    "interfaces": ["ICollection<SectionStyle>"],
    "since": "9.0",
    "properties": [
      {
        "signature": "int ActiveCount",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns number of section styles in the table, excluding deleted section styles.",
        "since": "9.0",
        "property": ["get"]
      },
      {
        "signature": "ModelComponentType ComponentType",
        "modifiers": ["public", "override"],
        "protected": false,
        "virtual": false,
        "property": ["get"]
      },
      {
        "signature": "int Count",
        "modifiers": ["public", "new"],
        "protected": false,
        "virtual": false,
        "summary": "Returns number of section styles in the section style table, including deleted section styles.",
        "since": "9.0",
        "property": ["get"]
      },
      {
        "signature": "RhinoDoc Document",
        "modifiers": ["public", "new"],
        "protected": false,
        "virtual": false,
        "summary": "Document that owns this table.",
        "since": "9.0",
        "property": ["get"]
      },
      {
        "signature": "SectionStyle this[int index]",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Conceptually, the section style table is an array of section styles. The operator[] can be used to get individual section styles. A section style is either active or deleted and this state is reported by SectionStyle.IsDeleted.",
        "since": "9.0"
      }
    ],
    "methods": [
      {
        "signature": "System.Int32 Add(DocObjects.SectionStyle sectionstyle)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Adds a new section style with specified definition to the table.",
        "since": "9.0",
        "parameters": [
          {
            "name": "sectionstyle",
            "type": "DocObjects.SectionStyle",
            "summary": "Definition of new section style. The information in sectionstyle is copied. If sectionstyle.Name is empty then a unique name of the form \"SectionStyle 01\" will be automatically created."
          }
        ],
        "returns": "Index of new section style type or -1 on error."
      },
      {
        "signature": "System.Int32 AddReferenceSectionStyle(DocObjects.SectionStyle sectionstyle)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Adds a reference section style that will not be saved in files.",
        "since": "9.0",
        "parameters": [
          {
            "name": "sectionstyle",
            "type": "DocObjects.SectionStyle",
            "summary": "Definition of new section style. The information in sectionstyle is copied. If sectionstyle.Name is empty then a unique name of the form \"SectionStyle 01\" will be automatically created."
          }
        ],
        "returns": "Index of new section style or -1 on error."
      },
      {
        "signature": "System.Int32 Delete(IEnumerable<int> sectionStyleIndices, System.Boolean quiet, System.Int32 deleteWarning)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Delete multiple section styles.",
        "since": "9.0",
        "parameters": [
          {
            "name": "sectionStyleIndices",
            "type": "IEnumerable<int>",
            "summary": "An enumeration of section style indices."
          },
          {
            "name": "quiet",
            "type": "System.Boolean",
            "summary": "If true, no warning message box appears if a section style is in use."
          },
          {
            "name": "deleteWarning",
            "type": "System.Int32",
            "summary": "Action to take when multiple delete warnings occur, where: 0 == No to all, 1 == Yes to all, 2 == Ask the user."
          }
        ],
        "returns": "The number of section styles that were deleted."
      },
      {
        "signature": "System.Int32 Delete(IEnumerable<int> sectionStyleIndices, System.Boolean quiet)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Delete multiple section styles.",
        "since": "9.0",
        "parameters": [
          {
            "name": "sectionStyleIndices",
            "type": "IEnumerable<int>",
            "summary": "An enumeration of section style indices."
          },
          {
            "name": "quiet",
            "type": "System.Boolean",
            "summary": "If true, no warning message box appears if a section style is in use."
          }
        ],
        "returns": "The number of section styles that were deleted."
      },
      {
        "signature": "System.Boolean Delete(SectionStyle item)",
        "modifiers": ["public", "override"],
        "protected": false,
        "virtual": false,
        "summary": "Deletes a section style.",
        "since": "9.0",
        "parameters": [
          {
            "name": "item",
            "type": "SectionStyle",
            "summary": "The section style to delete."
          }
        ],
        "returns": "True if successful, False otherwise."
      },
      {
        "signature": "System.Boolean Delete(System.Int32 index, System.Boolean quiet)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Deletes a section style.",
        "since": "9.0",
        "parameters": [
          {
            "name": "index",
            "type": "System.Int32",
            "summary": "zero based index of section style to delete."
          },
          {
            "name": "quiet",
            "type": "System.Boolean",
            "summary": "If true, no warning message box appears if a section style is in use."
          }
        ],
        "returns": "True if successful. False if index is out of range or the section style is referenced by active geometry."
      },
      {
        "signature": "System.Int32 Find(System.Guid id, System.Boolean ignoreDeletedSectionStyles)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Finds a section style with a matching ID.",
        "since": "9.0",
        "parameters": [
          {
            "name": "id",
            "type": "System.Guid",
            "summary": "The ID of the section style to be found."
          },
          {
            "name": "ignoreDeletedSectionStyles",
            "type": "System.Boolean",
            "summary": "If true, deleted section styles are not checked."
          }
        ],
        "returns": "If the section style was found, the section style index, >=0, is returned. If the section style was not found, -1 is returned."
      },
      {
        "signature": "System.Int32 Find(System.String name)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Finds the section style with a given name.",
        "since": "9.0",
        "parameters": [
          {
            "name": "name",
            "type": "System.String",
            "summary": "The name of the section style to find. The search ignores case."
          }
        ],
        "returns": "If the section style was found, the section style index, >=0, is returned. If the section style was not found, -1 is returned."
      },
      {
        "signature": "SectionStyle FindIndex(System.Int32 index)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Retrieves a section style based on Index. This search type of search is discouraged. We are moving towards using only IDs for all tables.",
        "since": "9.0",
        "parameters": [
          {
            "name": "index",
            "type": "System.Int32",
            "summary": "The index to search for."
          }
        ],
        "returns": "A SectionStyle object, or None if none was found."
      },
      {
        "signature": "SectionStyle FindName(System.String name)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Finds the section style with a given name.",
        "since": "9.0",
        "parameters": [
          {
            "name": "name",
            "type": "System.String",
            "summary": "The name of the section style to find."
          }
        ],
        "returns": "The section style if found; otherwise null."
      },
      {
        "signature": "IEnumerator<SectionStyle> GetEnumerator()",
        "modifiers": ["public", "override"],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "System.String GetUnusedSectionStyleName()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets unused section style name used as default when creating new section styles.",
        "since": "9.0",
        "returns": "The unused name."
      },
      {
        "signature": "System.Boolean InUse(System.Int32 index, out System.Int32 instanceDefinitionCount, out System.Int32 objectCount, out System.Int32 layerCount)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns True if a section style is use by an object, layer, or instance definition.",
        "parameters": [
          {
            "name": "index",
            "type": "System.Int32",
            "summary": "The index of the section style to query."
          },
          {
            "name": "instanceDefinitionCount",
            "type": "System.Int32",
            "summary": "The number of instance definitions using this section style."
          },
          {
            "name": "objectCount",
            "type": "System.Int32",
            "summary": "The number of Rhino objects using this section style."
          },
          {
            "name": "layerCount",
            "type": "System.Int32",
            "summary": "The number of layers using this section style."
          }
        ],
        "returns": "True if the section style is in use, False otherwise."
      },
      {
        "signature": "System.Boolean Modify(DocObjects.SectionStyle sectionstyle, System.Int32 index, System.Boolean quiet)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Modify section style settings.",
        "since": "9.0",
        "parameters": [
          {
            "name": "sectionstyle",
            "type": "DocObjects.SectionStyle",
            "summary": "New sections style settings. This information is copied."
          },
          {
            "name": "index",
            "type": "System.Int32",
            "summary": "Zero based index of section style to set."
          },
          {
            "name": "quiet",
            "type": "System.Boolean",
            "summary": "if true, information message boxes pop up when illegal changes are attempted."
          }
        ],
        "returns": "True if successful. False if index is out of range."
      }
    ]
  },
  {
    "namespace": "Rhino.DocObjects.Tables",
    "name": "SectionStyleTableEventArgs",
    "dataType": "class",
    "summary": "Section style table event arguments.",
    "baseclass": "EventArgs",
    "since": "9.0",
    "properties": [
      {
        "signature": "RhinoDoc Document",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "The Rhino document.",
        "since": "9.0",
        "property": ["get"]
      },
      {
        "signature": "SectionStyleTableEventType EventType",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "The event type.",
        "since": "9.0",
        "property": ["get"]
      },
      {
        "signature": "int Index",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "The index of the section style.",
        "since": "9.0",
        "property": ["get"]
      },
      {
        "signature": "SectionStyle NewState",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "The section style.",
        "since": "9.0",
        "property": ["get"]
      },
      {
        "signature": "SectionStyle OldState",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "The old or previous section style.",
        "since": "9.0",
        "property": ["get"]
      }
    ]
  },
  {
    "namespace": "Rhino.DocObjects.Tables",
    "name": "SectionStyleTableEventType",
    "dataType": "enum",
    "since": "9.0",
    "values": [
      {
        "signature": "Added",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "A section style was added to the document's section style table.",
        "since": "9.0"
      },
      {
        "signature": "Deleted",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "A section style in the document's section style table was deleted.",
        "since": "9.0"
      },
      {
        "signature": "Undeleted",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "A section style in the document's section style table was undeleted.",
        "since": "9.0"
      },
      {
        "signature": "Modified",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "A section style in the document's section style table was modified.",
        "since": "9.0"
      },
      {
        "signature": "Sorted",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "The document's section style table was sorted.",
        "since": "9.0"
      }
    ]

  },
  {
    "namespace": "Rhino.DocObjects.Tables",
    "name": "SnapshotTable",
    "dataType": "class",
    "summary": "All snapshots in a rhino document.",
    "properties": [
      {
        "signature": "RhinoDoc Document",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Document that owns this table.",
        "since": "6.7",
        "property": ["get"]
      },
      {
        "signature": "string[] Names",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Array of Snapshot names.",
        "since": "6.7",
        "property": ["get"]
      }
    ]
  },
  {
    "namespace": "Rhino.DocObjects.Tables",
    "name": "StringTable",
    "dataType": "class",
    "summary": "Collection of document user data strings",
    "properties": [
      {
        "signature": "int Count",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "The number of user data strings in the current document.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "RhinoDoc Document",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Document that owns this object table.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "int DocumentDataCount",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "int DocumentUserTextCount",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get"]
      }
    ],
    "methods": [
      {
        "signature": "System.Void Delete(System.String section, System.String entry)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Removes user data strings from the document.",
        "since": "5.0",
        "parameters": [
          {
            "name": "section",
            "type": "System.String",
            "summary": "name of section to delete. If null, all sections will be deleted."
          },
          {
            "name": "entry",
            "type": "System.String",
            "summary": "name of entry to delete. If null, all entries will be deleted for a given section."
          }
        ]
      },
      {
        "signature": "System.Void Delete(System.String key)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "System.String[] GetEntryNames(System.String section)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Return list of all entry names for a given section of user data strings in the document.",
        "since": "5.0",
        "parameters": [
          {
            "name": "section",
            "type": "System.String",
            "summary": "The section from which to retrieve section names."
          }
        ],
        "returns": "An array of section names. This can be empty, but not null."
      },
      {
        "signature": "System.String GetKey(System.Int32 i)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "System.String[] GetSectionNames()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns a list of all the section names for user data strings in the document.  \nBy default a section name is a key that is prefixed with a string separated by a backslash.",
        "since": "5.0",
        "returns": "An array of section names. This can be empty, but not null."
      },
      {
        "signature": "System.String GetValue(System.Int32 i)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "System.String GetValue(System.String section, System.String entry)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets a user data string from the document.",
        "since": "5.0",
        "parameters": [
          {
            "name": "section",
            "type": "System.String",
            "summary": "The section at which to get the value."
          },
          {
            "name": "entry",
            "type": "System.String",
            "summary": "The entry to search for."
          }
        ],
        "returns": "The user data."
      },
      {
        "signature": "System.String GetValue(System.String key)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "System.String SetString(System.String section, System.String entry, System.String value)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Adds or sets a user data string to the document.",
        "since": "5.0",
        "parameters": [
          {
            "name": "section",
            "type": "System.String",
            "summary": "The section."
          },
          {
            "name": "entry",
            "type": "System.String",
            "summary": "The entry name."
          },
          {
            "name": "value",
            "type": "System.String",
            "summary": "The entry value."
          }
        ],
        "returns": "The previous value if successful and a previous value existed."
      },
      {
        "signature": "System.String SetString(System.String key, System.String value)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Adds or sets a user data string to the document.",
        "since": "5.0",
        "parameters": [
          {
            "name": "key",
            "type": "System.String",
            "summary": "The key."
          },
          {
            "name": "value",
            "type": "System.String",
            "summary": "The entry value."
          }
        ],
        "returns": "The previous value if successful and a previous value existed."
      }
    ]
  },
  {
    "namespace": "Rhino.DocObjects.Tables",
    "name": "ViewTable",
    "dataType": "class",
    "interfaces": ["IEnumerable<RhinoView>"],
    "properties": [
      {
        "signature": "RhinoView ActiveView",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or Sets the active view.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "RhinoDoc Document",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Document that owns this object table.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "bool ModelSpaceIsActive",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0",
        "obsolete": "Since 9.0. Use RhinoDoc.ActiveSpace instead",
        "property": ["get"]
      },
      {
        "signature": "int PageViewCount",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the number of page views in the document",
        "since": "9.0",
        "property": ["get"]
      },
      {
        "signature": "bool RedrawEnabled",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns or sets (enable or disables) screen redrawing.",
        "since": "5.0",
        "property": ["get", "set"]
      }
    ],
    "methods": [
      {
        "signature": "RhinoView Add(System.String title, DefinedViewportProjection projection, System.Drawing.Rectangle position, System.Boolean floating)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Constructs a new Rhino view and, at the same time, adds it to the list.",
        "since": "5.0",
        "parameters": [
          {
            "name": "title",
            "type": "System.String",
            "summary": "The title of the new Rhino view."
          },
          {
            "name": "projection",
            "type": "DefinedViewportProjection",
            "summary": "A basic projection type."
          },
          {
            "name": "position",
            "type": "System.Drawing.Rectangle",
            "summary": "A position."
          },
          {
            "name": "floating",
            "type": "System.Boolean",
            "summary": "True if the view floats; False if it is docked."
          }
        ],
        "returns": "The newly constructed Rhino view; or None on error."
      },
      {
        "signature": "RhinoPageView AddPageView(System.String title, System.Boolean setActive)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Constructs a new page view with a given title and, at the same time, adds it to the list.",
        "parameters": [
          {
            "name": "title",
            "type": "System.String",
            "summary": "If None or empty, a name will be generated as \"Page #\" where # is the largest page number."
          },
          {
            "name": "setActive",
            "type": "System.Boolean",
            "summary": "If true, the new page view becomes the active view. If false, the view that was active before this call remains the active view."
          }
        ],
        "returns": "The newly created page view on success; or None on error."
      },
      {
        "signature": "RhinoPageView AddPageView(System.String title, System.Double pageWidth, System.Double pageHeight, System.Boolean setActive)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Constructs a new page view with a given title and size and, at the same time, adds it to the list.",
        "parameters": [
          {
            "name": "title",
            "type": "System.String",
            "summary": "If None or empty, a name will be generated as \"Page #\" where # is the largest page number."
          },
          {
            "name": "pageWidth",
            "type": "System.Double",
            "summary": "The page total width."
          },
          {
            "name": "pageHeight",
            "type": "System.Double",
            "summary": "The page total height."
          },
          {
            "name": "setActive",
            "type": "System.Boolean",
            "summary": "If true, the new page view becomes the active view. If false, the view that was active before this call remains the active view."
          }
        ],
        "returns": "The newly created page view on success; or None on error."
      },
      {
        "signature": "RhinoPageView AddPageView(System.String title, System.Double pageWidth, System.Double pageHeight)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Constructs a new page view with a given title and size and, at the same time, adds it to the list. On Windows the new page view becomes the active view; on Mac the active view does not change. Use the overload with a setActive parameter for behavior that is consistent across platforms.",
        "since": "5.0",
        "parameters": [
          {
            "name": "title",
            "type": "System.String",
            "summary": "If None or empty, a name will be generated as \"Page #\" where # is the largest page number."
          },
          {
            "name": "pageWidth",
            "type": "System.Double",
            "summary": "The page total width."
          },
          {
            "name": "pageHeight",
            "type": "System.Double",
            "summary": "The page total height."
          }
        ],
        "returns": "The newly created page view on success; or None on error."
      },
      {
        "signature": "RhinoPageView AddPageView(System.String title)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Constructs a new page view with a given title and, at the same time, adds it to the list. On Windows the new page view becomes the active view; on Mac the active view does not change. Use the overload with a setActive parameter for behavior that is consistent across platforms.",
        "since": "5.0",
        "parameters": [
          {
            "name": "title",
            "type": "System.String",
            "summary": "If None or empty, a name will be generated as \"Page #\" where # is the largest page number."
          }
        ],
        "returns": "The newly created page view on success; or None on error."
      },
      {
        "signature": "System.Void DefaultViewLayout()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "System.Void EnableCameraIcon(RhinoView view)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Use to turn camera icon on and off",
        "since": "6.0",
        "parameters": [
          {
            "name": "view",
            "type": "RhinoView",
            "summary": "If null, any camera icon is turned off. If not null, the camera icon for that view is turned on."
          }
        ]
      },
      {
        "signature": "System.Void EnableRedraw(System.Boolean enable, System.Boolean redrawDocument, System.Boolean redrawLayers)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Enables or disables screen redrawing.",
        "since": "7.3",
        "parameters": [
          {
            "name": "enable",
            "type": "System.Boolean",
            "summary": "Enable redrawing."
          },
          {
            "name": "redrawDocument",
            "type": "System.Boolean",
            "summary": "If enabling, set to True to have the document redrawn."
          },
          {
            "name": "redrawLayers",
            "type": "System.Boolean",
            "summary": "If enabling, set to True to have the layer user interface redrawn."
          }
        ]
      },
      {
        "signature": "RhinoView Find(System.Guid mainViewportId)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Finds a view in this document with a given main viewport Id.",
        "since": "5.0",
        "parameters": [
          {
            "name": "mainViewportId",
            "type": "System.Guid",
            "summary": "The ID of the main viewport looked for."
          }
        ],
        "returns": "View on success. None if the view could not be found in this document."
      },
      {
        "signature": "RhinoView Find(System.String mainViewportName, System.Boolean compareCase)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Finds a view in this document with a main viewport that has a given name. Note that there may be multiple views in this document that have the same name. This function only returns the first view found. If you want to find all the views with a given name, use the GetViewList function and iterate through the views.",
        "since": "5.0",
        "parameters": [
          {
            "name": "mainViewportName",
            "type": "System.String",
            "summary": "The name of the main viewport."
          },
          {
            "name": "compareCase",
            "type": "System.Boolean",
            "summary": "True if capitalization influences comparison; otherwise, false."
          }
        ],
        "returns": "A Rhino view on success; None on error."
      },
      {
        "signature": "System.Void FlashObjects(IEnumerable<RhinoObject> list, System.Boolean useSelectionColor)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Cause objects selection state to change momentarily so the object appears to flash on the screen.",
        "since": "5.0",
        "parameters": [
          {
            "name": "list",
            "type": "IEnumerable<RhinoObject>",
            "summary": "An array, a list or any enumerable set of Rhino objects."
          },
          {
            "name": "useSelectionColor",
            "type": "System.Boolean",
            "summary": "If true, flash between object color and selection color. If false, flash between visible and invisible."
          }
        ]
      },
      {
        "signature": "System.Void FourViewLayout(System.Boolean useMatchingViews)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "IEnumerator<RhinoView> GetEnumerator()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "RhinoPageView[] GetPageViews()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets all page views in the document.",
        "since": "5.0",
        "returns": "An array with all page views. The return value can be an empty array but not null."
      },
      {
        "signature": "RhinoView[] GetStandardRhinoViews()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "RhinoView[] GetViewList(System.Boolean includeStandardViews, System.Boolean includePageViews)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets an array of all the views.",
        "since": "5.0",
        "deprecated": "8.0",
        "parameters": [
          {
            "name": "includeStandardViews",
            "type": "System.Boolean",
            "summary": "True if \"Right\", \"Perspective\", etc., view should be included; False otherwise."
          },
          {
            "name": "includePageViews",
            "type": "System.Boolean",
            "summary": "True if page-related views should be included; False otherwise."
          }
        ],
        "returns": "A array of Rhino views. This array can be empty, but not null."
      },
      {
        "signature": "RhinoView[] GetViewList(ViewTypeFilter filter)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets an array of all the views.",
        "since": "8.0",
        "parameters": [
          {
            "name": "filter",
            "type": "ViewTypeFilter",
            "summary": "View types to include"
          }
        ],
        "returns": "An array of Rhino views. This array can be empty, but not null."
      },
      {
        "signature": "System.Boolean ImportPageView(System.String filename, System.Guid mainViewportId, System.String pageName)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Imports a page view, or layout, from a Rhino file into this document.",
        "since": "9.0",
        "parameters": [
          {
            "name": "filename",
            "type": "System.String",
            "summary": "The name of Rhino file to read from."
          },
          {
            "name": "mainViewportId",
            "type": "System.Guid",
            "summary": "The id of the page view on the Rhino file."
          },
          {
            "name": "pageName",
            "type": "System.String",
            "summary": "The name to give the newly imported page view."
          }
        ]
      },
      {
        "signature": "System.Boolean IsCameraIconVisible(RhinoView view)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Determine if a camera icon is being shown",
        "since": "6.0",
        "parameters": [
          {
            "name": "view",
            "type": "RhinoView",
            "summary": "if null, then all views are tested. If not null, then just view is tested."
          }
        ]
      },
      {
        "signature": "System.Void Redraw()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Redraws all views.",
        "since": "5.0",
    "remarks": "If you change something in the document -- like adding objects, deleting objects, modifying layer or object display attributes, etc., then you need to call Redraw to redraw all the views.  If you change something in a particular view like the projection, construction plane, background bitmap, etc., then you need to call CRhinoView::Redraw to redraw that particular view."
      },
      {
        "signature": "System.Void Redraw(System.Boolean deferred)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Redraws all views.",
        "since": "9.0",
    "remarks": "If you change something in the document -- like adding objects, deleting objects, modifying layer or object display attributes, etc., then you need to call Redraw to redraw all the views.  If you change something in a particular view like the projection, construction plane, background bitmap, etc., then you need to call CRhinoView::Redraw to redraw that particular view.",
        "parameters": [
          {
            "name": "deferred",
            "type": "System.Boolean",
            "summary": "False if screen needs to be refreshed now; False otherwise."
          }
        ]
      },
      {
        "signature": "System.Void ThreeViewLayout(System.Boolean useMatchingViews)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      }
    ]
  },
  {
    "namespace": "Rhino.DocObjects.Tables",
    "name": "ViewUserInterfaceTable",
    "dataType": "class",
    "properties": [
      {
        "signature": "RhinoDoc Document",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Document that owns this object table.",
        "since": "9.0",
        "property": ["get"]
      }
    ],
    "methods": [
      {
        "signature": "System.Boolean Add(UserInterfaceObjectBase item, System.Guid userInterfaceGroupId)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "9.0"
      },
      {
        "signature": "System.Boolean Add(UserInterfaceObjectBase item)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "9.0"
      },
      {
        "signature": "T[] Find()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "9.0"
      },
      {
        "signature": "System.Int32 Remove(IEnumerable<UserInterfaceObjectBase> items)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "9.0"
      },
      {
        "signature": "System.Int32 Remove(UserInterfaceObjectBase item)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "9.0"
      },
      {
        "signature": "System.Int32 RemoveByGroupId(System.Guid userInterfaceGroupId)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "9.0"
      }
    ]
  },
  {
    "namespace": "Rhino.DocObjects",
    "name": "TextDisplayAlignment",
    "dataType": "enum",
    "summary": "Defines enumerated values for the line alignment of text.",
    "since": "5.0",
    "values": [
      {
        "signature": "Normal = 0",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Normal alignment."
      },
      {
        "signature": "Horizontal = 1",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Horizontal alignment."
      },
      {
        "signature": "AboveLine = 2",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Above line alignment."
      },
      {
        "signature": "InLine = 3",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "In line alignment."
      }
    ]

  },
  {
    "namespace": "Rhino.DocObjects",
    "name": "TextDotObject",
    "dataType": "class",
    "summary": "Represents a text dot that is a document.",
    "baseclass": "Rhino.DocObjects.RhinoObject"
  },
  {
    "namespace": "Rhino.DocObjects",
    "name": "TextHorizontalAlignment",
    "dataType": "enum",
    "summary": "Horizontal location of text attach point relative to text",
    "values": [
      {
        "signature": "Left = 0",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Attach at left of text lines (Independent of glyphs being displayed.)"
      },
      {
        "signature": "Center = 1",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Attach point at center of text horizontal advance (not glyph bounding box)"
      },
      {
        "signature": "Right = 2",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Attach point at right text horizontal advance (not glyph bounding box)"
      },
      {
        "signature": "Auto = 3",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Used for Leaders only Attach point adjusts to Right or Left depending on leader tail direction in view If tail direction is to the Left, alignment is Right If tail direction is to the Right, alignment is Left"
      },
      {
        "signature": "Justify = 4",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Stretch each line to fill the wrap rectangle width by distributing slack across word gaps. Only meaningful when text wrapping is enabled and a non-zero wrap width is set; with wrapping off, behaves as Left. The final line of a paragraph (or any line ending in a hard break) is rendered Left."
      }
    ]

  },
  {
    "namespace": "Rhino.DocObjects",
    "name": "TextObject",
    "dataType": "class",
    "summary": "Rhino Object that represents text geometry and attributes",
    "baseclass": "Rhino.DocObjects.AnnotationObjectBase",
    "properties": [
      {
        "signature": "TextEntity TextGeometry",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Get the text geometry for this object.",
        "since": "5.0",
        "property": ["get"]
      }
    ],
    "methods": [
      {
        "signature": "Point3d[] GetTextCorners(RhinoViewport viewport)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the world 3D corner points of the whole text object.",
        "since": "7.21",
        "parameters": [
          {
            "name": "viewport",
            "type": "RhinoViewport",
            "summary": "The viewport in which to make the calculation."
          }
        ],
        "returns": "The four corner points if successful, an empty array on failure."
      }
    ]
  },
  {
    "namespace": "Rhino.DocObjects",
    "name": "TextOrientation",
    "dataType": "enum",
    "summary": "Method for getting rotation for drawing text",
    "values": [
      {
        "signature": "InPlane = 0",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Text has fixed rotation on a world coordinate plane"
      },
      {
        "signature": "InView = 1",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Text is drawn on a plane perpendicular to view direction horizontal to the screen"
      }
    ]

  },
  {
    "namespace": "Rhino.DocObjects",
    "name": "Texture",
    "dataType": "class",
    "summary": "Represents a texture that is mapped on objects.",
    "baseclass": "Rhino.Runtime.CommonObject",
    "constructors": [
      {
        "signature": "Texture()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Initializes a new texture.",
        "since": "5.0"
      },
      {
        "signature": "Texture(SerializationInfo info, StreamingContext context)",
        "modifiers": ["protected"],
        "protected": true,
        "virtual": false,
        "summary": "Protected constructor for internal use.",
        "parameters": [
          {
            "name": "info",
            "type": "System.Runtime.Serialization.SerializationInfo",
            "summary": "Serialization data."
          },
          {
            "name": "context",
            "type": "System.Runtime.Serialization.StreamingContext",
            "summary": "Serialization stream."
          }
        ]
      }
    ],
    "properties": [
      {
        "signature": "bool ApplyUvwTransform",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "If True then the UVW transform is applied to the texture otherwise the UVW transform is ignored.",
        "since": "5.6",
        "property": ["get", "set"]
      },
      {
        "signature": "bool Enabled",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "If the texture is enabled then it will be visible in the rendered display otherwise it will not.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "string FileName",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets a file name that is used by this texture.  \nNOTE: We are moving away from string-based FileName, and suggest     the usage of the new FileReference class.  \nAlso, this filename may well not be a path that makes sense     on a user's computer because it was a path initially set on     a different user's computer. If you want to get a workable path     for this user, use the BitmapTable.Find function using this     property.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "FileReference FileReference",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets a copy of the file reference that is used by this texture. After the get or the set method complete, you own the copy you received or passed in, and can Dispose() of it.",
        "since": "6.0",
    "remarks": "After the get or the set method complete, you own the copy you received or passed in, and can Dispose() of it.",
        "property": ["get", "set"]
      },
      {
        "signature": "Guid Id",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the globally unique identifier of this texture.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "TextureFilter MagFilter",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "The MagFilter setting controls how the color of the image pixel is calculated when the image pixel corresponds to a fraction of a texture bitmap pixel.",
        "since": "8.3",
        "property": ["get", "set"]
      },
      {
        "signature": "int MappingChannelId",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.10",
        "property": ["get"]
      },
      {
        "signature": "TextureFilter MinFilter",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "The MinFilter setting controls how the color of the image pixel is calculated when the image pixel corresponds to multiple texture bitmap pixels.",
        "since": "8.3",
        "property": ["get", "set"]
      },
      {
        "signature": "Vector2d Offset",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Helper for access to the offset value encoded in UvwTransform",
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "TextureProjectionModes ProjectionMode",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "How texture is projected onto geometry",
        "since": "8.3",
        "property": ["get", "set"]
      },
      {
        "signature": "Vector2d Repeat",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Helper for access to the repeat value encoded in UvwTransform",
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "double Rotation",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Helper for access to the rotation value encoded in UvwTransform",
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "TextureCombineMode TextureCombineMode",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Determines how this texture is combined with others in a material's texture list.",
        "since": "5.6",
        "property": ["get", "set"]
      },
      {
        "signature": "TextureType TextureType",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Controls how the pixels in the bitmap are interpreted",
        "since": "5.6",
        "property": ["get", "set"]
      },
      {
        "signature": "bool TreatAsLinear",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "If false, the texture color values should be correctly by the linear workflow pre-process gamma value (in the document) if linear workflow is on.  Otherwise, if the values is true, the values should be used raw from the texture.",
        "since": "8.7",
        "property": ["get", "set"]
      },
      {
        "signature": "Transform UvwTransform",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Transform to be applied to each instance of this texture if ApplyUvw is true",
        "since": "5.6",
        "property": ["get", "set"]
      },
      {
        "signature": "bool WcsBoxProjected",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Is True if this texture uses world coordinate system (WCS) box projection for texture mapping. Notice: If this texture is used by an object that has an object coordinate system (OCS) frame defined on a mapping channel then that OCS frame is used instead of the WCS.",
        "since": "8.3",
        "property": ["get"]
      },
      {
        "signature": "bool WcsProjected",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Is True if this texture uses world coordinate system (WCS) projection for texture mapping. Notice: If this texture is used by an object that has an object coordinate system (OCS) frame defined on a mapping channel then that OCS frame is used instead of the WCS.",
        "since": "8.3",
        "property": ["get"]
      },
      {
        "signature": "TextureUvwWrapping WrapU",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Texture wrapping mode in the U direction",
        "since": "5.6",
        "property": ["get", "set"]
      },
      {
        "signature": "TextureUvwWrapping WrapV",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Texture wrapping mode in the V direction",
        "since": "5.6",
        "property": ["get", "set"]
      },
      {
        "signature": "TextureUvwWrapping WrapW",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Texture wrapping mode in the W direction",
        "since": "5.6",
        "property": ["get", "set"]
      }
    ],
    "methods": [
      {
        "signature": "System.Void GetAlphaBlendValues(out System.Double constant, out System.Double a0, out System.Double a1, out System.Double a2, out System.Double a3)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "If the TextureCombineMode is Blend, then the blending function for alpha is determined by  \nnew alpha = constant                 + a0*(current alpha)                 + a1*(texture alpha)                 + a2*min(current alpha,texture alpha)                 + a3*max(current alpha,texture alpha)",
        "since": "5.6"
      },
      {
        "signature": "System.Void SetAlphaBlendValues(System.Double constant, System.Double a0, System.Double a1, System.Double a2, System.Double a3)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "If the TextureCombineMode is Blend, then the blending function for alpha is determined by  \nnew alpha = constant                 + a0*(current alpha)                 + a1*(texture alpha)                 + a2*min(current alpha,texture alpha)                 + a3*max(current alpha,texture alpha)",
        "since": "5.6"
      },
      {
        "signature": "System.Void SetRGBBlendValues(Color color, System.Double a0, System.Double a1, System.Double a2, System.Double a3)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "If the TextureCombineMode is Blend, then the blending function for RGB is determined by  \nnew rgb = colorcolor             + a0[0]*(current RGB)             + a1[1]*(texture RGB)             + a2[2]*min(current RGB,texture RGB)             + a3[3]*max(current RGB,texture RGB)",
        "since": "6.0"
      }
    ]
  },
  {
    "namespace": "Rhino.DocObjects",
    "name": "TextureCombineMode",
    "dataType": "enum",
    "summary": "Determines how this texture is combined with others in a material's texture list.",
    "since": "5.6",
    "values": [
      {
        "signature": "None = 0",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Modulate = 1",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Modulate with material diffuse color"
      },
      {
        "signature": "Decal = 2",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Decal"
      },
      {
        "signature": "Blend = 3",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Blend texture with others in the material To \"add\" a texture, set BlendAmount = +1 To \"subtract\" a texture, set BlendAmount = -1"
      }
    ]

  },
  {
    "namespace": "Rhino.DocObjects",
    "name": "TextureFilter",
    "dataType": "enum",
    "summary": "Determines how the color of the image pixel is calculated when the image pixel corresponds to multiple texture bitmap pixels.",
    "since": "8.3",
    "values": [
      {
        "signature": "Nearest = 0",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Nearest texture pixel is used."
      },
      {
        "signature": "Linear = 1",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Weighted average of corresponding texture pixels."
      }
    ]

  },
  {
    "namespace": "Rhino.DocObjects",
    "name": "TextureProjectionModes",
    "dataType": "enum",
    "summary": "Enum describing how texture is projected onto geometry",
    "values": [
      {
        "signature": "Undefined = 0",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Not valid projection type"
      },
      {
        "signature": "MappingChannel = 1",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Uses a texture mapping to generate texture coordinates"
      },
      {
        "signature": "ScreenBased = 2",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Screen based"
      },
      {
        "signature": "Wcs = 3",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "World coordinate system projection"
      },
      {
        "signature": "WcsBox = 4",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Box type world coordinate system projection"
      },
      {
        "signature": "EnvironmentMapBox = 5",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Box type environment mapping"
      },
      {
        "signature": "EnvironmentMapLightProbe = 6",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Light probe type environment mapping"
      },
      {
        "signature": "EnvironmentMapSpherical = 7",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Spherical environment mapping"
      },
      {
        "signature": "EnvironmentMapCube = 8",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Cube type environment mapping"
      },
      {
        "signature": "EnvironmentMapVCrossCube = 9",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Vertical cross cube type environment mapping"
      },
      {
        "signature": "EnvironmentMapHCrossCube = 10",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Horizontal cross type environment mapping"
      },
      {
        "signature": "EnvironmentMapHemispherical = 11",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Hemispherical environment mapping"
      },
      {
        "signature": "EnvironmentMapEmap = 12",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Emap type environment mapping"
      },
      {
        "signature": "SurfaceParameterization = 13",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Surface parameterization"
      }
    ]

  },
  {
    "namespace": "Rhino.DocObjects",
    "name": "TextureType",
    "dataType": "enum",
    "summary": "The TextureType controls how the pixels in the bitmap are interpreted.",
    "since": "5.6",
    "values": [
      {
        "signature": "None = 0",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Bitmap = 1",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Deprecated - this should be diffuse"
      },
      {
        "signature": "Diffuse = 1",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "The diffuse color of the material, ideally the albedo."
      },
      {
        "signature": "Bump = 2",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "bump map"
      },
      {
        "signature": "Transparency = 3",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Deprecated - see Opacity.  This has always actually meant opacity in Rhino, so there is nothing to change."
      },
      {
        "signature": "Opacity = 3",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "value = alpha"
      },
      {
        "signature": "Emap = 86",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Emap/Environment texture"
      },
      {
        "signature": "PBR_BaseColor = 1",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Physically based materials only - base color.  Re-uses diffuse texture slot."
      },
      {
        "signature": "PBR_Subsurface = 10",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Physically based materials only - subsurface (greyscale)"
      },
      {
        "signature": "PBR_SubsurfaceScattering = 11",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Physically based materials only - subsurface scattering"
      },
      {
        "signature": "PBR_SubsurfaceScatteringRadius = 12",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Physically based materials only - subsurface scattering radius (greyscale)"
      },
      {
        "signature": "PBR_Metallic = 13",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Physically based materials only - metallic (greyscale)"
      },
      {
        "signature": "PBR_Specular = 14",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Physically based materials only - specular (greyscale)"
      },
      {
        "signature": "PBR_SpecularTint = 15",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Physically based materials only - specular tint (greyscale)"
      },
      {
        "signature": "PBR_Roughness = 16",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Physically based materials only - roughness (greyscale)"
      },
      {
        "signature": "PBR_Anisotropic = 17",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Physically based materials only - anisotropic (greyscale)"
      },
      {
        "signature": "PBR_Anisotropic_Rotation = 18",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Physically based materials only - anisotropic rotation 0 = 0, 255 = 360"
      },
      {
        "signature": "PBR_Sheen = 19",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Physically based materials only - sheen (greyscale)"
      },
      {
        "signature": "PBR_SheenTint = 20",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Physically based materials only - sheen tint (greyscale)"
      },
      {
        "signature": "PBR_Clearcoat = 21",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Physically based materials only - clearcoat (greyscale)"
      },
      {
        "signature": "PBR_ClearcoatRoughness = 22",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Physically based materials only - clearcoat roughness (greyscale)"
      },
      {
        "signature": "PBR_OpacityIor = 23",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Physically based materials only - ior (greyscale - remaps from 1.0 to 2.0)"
      },
      {
        "signature": "PBR_OpacityRoughness = 24",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Physically based materials only - transparency roughness (greyscale)"
      },
      {
        "signature": "PBR_Emission = 25",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Physically based materials only - emission (greyscale)"
      },
      {
        "signature": "PBR_AmbientOcclusion = 26",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Physically based materials only - occlusion (greyscale)"
      },
      {
        "signature": "PBR_Displacement = 28",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Physically based materials only - normal 8-bit RGB, alpha is ignored"
      },
      {
        "signature": "PBR_ClearcoatBump = 29",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Physically based materials only - clearcoat normal  or bump (normal map, RGB)"
      },
      {
        "signature": "PBR_Alpha = 30",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Physically based materials only - clearcoat normal  or bump (normal map, RGB)"
      }
    ]

  },
  {
    "namespace": "Rhino.DocObjects",
    "name": "TextureUvwWrapping",
    "dataType": "enum",
    "summary": "Defines Texture UVW wrapping modes",
    "since": "5.6",
    "values": [
      {
        "signature": "Repeat = 0",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Repeat the texture"
      },
      {
        "signature": "Clamp = 1",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Clamp the texture"
      }
    ]

  },
  {
    "namespace": "Rhino.DocObjects",
    "name": "TextVerticalAlignment",
    "dataType": "enum",
    "summary": "Vertical location of text attach point relative to text",
    "values": [
      {
        "signature": "Top = 0",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Attach to top of an \"I\" on the first line. (Independent of glyphs being displayed.)"
      },
      {
        "signature": "MiddleOfTop = 1",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Attach to middle of an \"I\" on the first line. (Independent of glyphs being displayed.)"
      },
      {
        "signature": "BottomOfTop = 2",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Attach to baseline of first line. (Independent of glyphs being displayed.)"
      },
      {
        "signature": "Middle = 3",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Attach to middle of text vertical advance. (Independent of glyphs being displayed.)"
      },
      {
        "signature": "MiddleOfBottom = 4",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Attach to middle of an \"I\" on the last line. (Independent of glyphs being displayed.)"
      },
      {
        "signature": "Bottom = 5",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Attach to the baseline of the last line. (Independent of glyphs being displayed.)"
      },
      {
        "signature": "BottomOfBoundingBox = 6",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Attach to the bottom of the boudning box of the visible glyphs."
      }
    ]

  },
  {
    "namespace": "Rhino.DocObjects",
    "name": "ViewInfo",
    "dataType": "class",
    "summary": "Represents the name and orientation of a View (and named view).  \nviews can be thought of as cameras.",
    "interfaces": ["IDisposable"],
    "constructors": [
      {
        "signature": "ViewInfo()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Create a default ViewInfo instance",
        "since": "8.2"
      },
      {
        "signature": "ViewInfo(RhinoViewport rhinoViewPort)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Access to the ViewInfo for given RhinoViewport",
        "since": "6.0"
      },
      {
        "signature": "ViewInfo(uint docRuntimeSerialNumber)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Construct the ViewInfo for active viewport of given doc.",
        "since": "6.0",
        "parameters": [
          {
            "name": "docRuntimeSerialNumber",
            "type": "System.UInt32",
            "summary": "Runtime serial number of the document to query for the active viewport"
          }
        ]
      }
    ],
    "properties": [
      {
        "signature": "Guid[] ClippingPlanesIds",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns a list of clipping plane Ids associated with this view.",
        "since": "8.15",
        "property": ["get"]
      },
      {
        "signature": "double FocalBlurAperture",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the Focal blur aperture of the active viewport",
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "double FocalBlurDistance",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the Focal blur distance of the active viewport",
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "double FocalBlurJitter",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the Focal blur jitter of the active viewport",
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "ViewInfoFocalBlurModes FocalBlurMode",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the Focal blur mode of the active viewport",
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "uint FocalBlurSampleCount",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the Focal blur sample count of the active viewport",
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool Maximized",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets whether the view window is maximized in the frame window. Together with the window position (see <b>GetWindowPosition</b> ) this is stored in the 3dm file and controls the viewport layout when the file is opened.",
        "since": "9.0",
        "property": ["get", "set"]
      },
      {
        "signature": "string Name",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the name of the view.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "Guid NamedViewId",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns a unique id if this is a named view otherwise an empty Guid.",
        "since": "7.28",
        "property": ["get"]
      },
      {
        "signature": "ViewSectionBehavior SectionBehavior",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "How a view will interact with clipping planes",
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool ShowWallpaperInGrayScale",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "True if wallpaper (if any) is to be shown in gray scale in this view.",
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "ViewportInfo Viewport",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the viewport, or viewing frustum, associated with this view.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "string WallpaperFilename",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Get filename for wallpaper set to this view, if any.",
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "bool WallpaperHidden",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "True if wallpaper (if any) is to be hidden from this view.",
        "since": "6.0",
        "property": ["get"]
      }
    ],
    "methods": [
      {
        "signature": "ClippingPlaneSurface[] ClippingPlaneSurfaces()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns a list of ClippingPlaneSurfaces for this view.",
        "since": "8.17"
      },
      {
        "signature": "System.Void Dispose()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Actively reclaims unmanaged resources that this instance uses.",
        "since": "5.0"
      },
      {
        "signature": "System.Void Dispose(System.Boolean disposing)",
        "modifiers": ["protected", "virtual"],
        "protected": true,
        "virtual": true,
        "summary": "For derived class implementers.  \nThis method is called with argument True when class user calls Dispose(), while with argument False when     the Garbage Collector invokes the finalizer, or Finalize() method.  \nYou must reclaim all used unmanaged resources in both cases, and can use this chance to call Dispose on disposable fields if the argument is true.  \nAlso, you must call the base virtual method within your overriding method.",
        "parameters": [
          {
            "name": "disposing",
            "type": "System.Boolean",
            "summary": "True if the call comes from the Dispose() method; False if it comes from the Garbage Collector finalizer."
          }
        ]
      },
      {
        "signature": "System.Void GetWindowPosition(out System.Double left, out System.Double right, out System.Double top, out System.Double bottom)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the position of the view window in the frame window, expressed as fractions (0 to 1) of the frame window size.",
        "since": "9.0",
        "parameters": [
          {
            "name": "left",
            "type": "System.Double",
            "summary": "Left edge fraction."
          },
          {
            "name": "right",
            "type": "System.Double",
            "summary": "Right edge fraction."
          },
          {
            "name": "top",
            "type": "System.Double",
            "summary": "Top edge fraction."
          },
          {
            "name": "bottom",
            "type": "System.Double",
            "summary": "Bottom edge fraction."
          }
        ]
      },
      {
        "signature": "System.Void SetWindowPosition(System.Double left, System.Double right, System.Double top, System.Double bottom)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Sets the position of the view window in the frame window, expressed as fractions (0 to 1) of the frame window size. The <b>Maximized</b>  state is preserved.",
        "since": "9.0",
        "parameters": [
          {
            "name": "left",
            "type": "System.Double",
            "summary": "Left edge fraction."
          },
          {
            "name": "right",
            "type": "System.Double",
            "summary": "Right edge fraction."
          },
          {
            "name": "top",
            "type": "System.Double",
            "summary": "Top edge fraction."
          },
          {
            "name": "bottom",
            "type": "System.Double",
            "summary": "Bottom edge fraction."
          }
        ]
      }
    ]
  },
  {
    "namespace": "Rhino.DocObjects",
    "name": "ViewInfoFocalBlurModes",
    "dataType": "enum",
    "summary": "The different focal blur modes of the ViewInfo",
    "since": "6.0",
    "values": [
      {
        "signature": "None",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "No focal blur"
      },
      {
        "signature": "Automatic",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Auto-focus on selected objects"
      },
      {
        "signature": "Manual",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Fully manual focus"
      }
    ]

  },
  {
    "namespace": "Rhino.DocObjects",
    "name": "ViewportInfo",
    "dataType": "class",
    "summary": "Represents a viewing frustum.",
    "baseclass": "Rhino.Runtime.CommonObject",
    "constructors": [
      {
        "signature": "ViewportInfo()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Initializes a new instance.",
        "since": "5.0"
      },
      {
        "signature": "ViewportInfo(RhinoViewport rhinoViewport)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Copies all of the ViewportInfo data from an existing RhinoViewport.",
        "since": "5.0",
        "parameters": [
          {
            "name": "rhinoViewport",
            "type": "Display.RhinoViewport",
            "summary": "A viewport to copy."
          }
        ]
      },
      {
        "signature": "ViewportInfo(ViewportInfo other)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Initializes a new instance by copying values from another instance.",
        "since": "5.0",
        "parameters": [
          {
            "name": "other",
            "type": "ViewportInfo",
            "summary": "The other viewport info."
          }
        ]
      }
    ],
    "properties": [
      {
        "signature": "Vector3d DefaultCameraDirection",
        "modifiers": ["static", "public"],
        "protected": false,
        "virtual": false,
        "summary": "Default z=up perspective camera direction",
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "double Camera35mmLensLength",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "This property assumes the camera is horizontal and crop the film rather than the image when the aspect of the frustum is not 36/24.  (35mm film is 36mm wide and 24mm high.) Setting preserves camera location, changes the frustum, but maintains the frustum's aspect.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "double CameraAngle",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the 1/2 of smallest subtended view angle. See <b>GetCameraAngles</b> for more information.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "Vector3d CameraDirection",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the direction that the camera faces.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "Point3d CameraLocation",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the camera location (position) point.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "Vector3d CameraUp",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the camera up vector.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "Vector3d CameraX",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the unit \"to the right\" vector.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "Vector3d CameraY",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the unit \"up\" vector.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "Vector3d CameraZ",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the unit vector in -CameraDirection.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "double FrustumAspect",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Setting FrustumAspect changes the larger of the frustum's width/height so that the resulting value of width/height matches the requested aspect.  The camera angle is not changed.  If you change the shape of the view port with a call SetScreenPort(), then you generally want to call SetFrustumAspect() with the value returned by GetScreenPortAspect().",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "double FrustumBottom",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the frustum bottom value. This is -top if the frustum has a horizontal symmetry axis.  \nThis number is usually negative.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "Plane FrustumBottomPlane",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the frustum bottom plane that separates visible from off-screen.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "Point3d FrustumCenter",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the frustum center point.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "double FrustumFar",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the frustum far-cutting value.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "Plane FrustumFarPlane",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets far clipping plane if camera and frustum are valid.  The plane's frame is the same as the camera's frame.  The origin is located at the intersection of the camera direction ray and the far clipping plane. The plane's normal points into the frustum towards the camera location.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "double FrustumHeight",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the frustum height. This is <b>FrustumTop</b> - <b>FrustumBottom</b> .",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "double FrustumLeft",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the frustum left value. This is -right if the frustum has a vertical symmetry axis.  \nThis number is usually negative.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "Plane FrustumLeftPlane",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the frustum left plane that separates visible from off-screen.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "double FrustumMaximumDiameter",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the frustum maximum diameter, or the maximum between <b>FrustumWidth</b> and <b>FrustumHeight</b> .",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "double FrustumMinimumDiameter",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the frustum minimum diameter, or the minimum between <b>FrustumWidth</b> and <b>FrustumHeight</b> .",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "double FrustumNear",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the frustum near-cutting value.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "Plane FrustumNearPlane",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets near clipping plane if camera and frustum are valid.  The plane's frame is the same as the camera's frame.  The origin is located at the intersection of the camera direction ray and the near clipping plane. The plane's normal points out of the frustum towards the camera location.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "double FrustumRight",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the frustum right value. This is -left if the frustum has a vertical symmetry axis.  \nThis number is usually positive.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "Plane FrustumRightPlane",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the frustum right plane that separates visible from off-screen.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "double FrustumTop",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the frustum top value. This is -bottom if the frustum has a horizontal symmetry axis.  \nThis number is usually positive.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "Plane FrustumTopPlane",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the frustum top plane that separates visible from off-screen.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "double FrustumWidth",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the frustum width. This is <b>FrustumRight</b> - <b>FrustumLeft</b> .",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "Guid Id",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Sets the viewport's id to the value used to uniquely identify this viewport. There is no approved way to change the viewport id once it is set in order to maintain consistency across multiple viewports and those routines that manage them.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "bool IsCameraDirectionLocked",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets a value that indicates whether the direction that the camera faces is unmodifiable.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool IsCameraLocationLocked",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets a value that indicates whether the camera location is unmodifiable.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool IsCameraUpLocked",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets a value that indicates whether the camera up vector is unmodifiable.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool IsFrustumLeftRightSymmetric",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets a value that indicates whether the camera frustum has a vertical symmetry axis.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool IsFrustumTopBottomSymmetric",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets a value that indicates whether the camera frustum has a horizontal symmetry axis.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool IsParallelProjection",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Get or set whether this projection is parallel.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool IsPerspectiveProjection",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Get or set whether this projection is perspective.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool IsTwoPointPerspectiveProjection",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets a value that indicates whether this projection is a two-point perspective.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "bool IsValidCamera",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets a value that indicates whether the camera is valid.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "bool IsValidFrustum",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets a value that indicates whether the frustum is valid.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "double PerspectiveMinNearDist",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Expert user function to control the minimum value of near when perspective projections are being used.",
        "since": "7.0",
        "property": ["get", "set"]
      },
      {
        "signature": "double PerspectiveMinNearOverFar",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Expert user function to control the minimum ratio of near/far when perspective projections are begin used.",
        "since": "7.0",
        "property": ["get", "set"]
      },
      {
        "signature": "Rectangle ScreenPort",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Get or set the screen port. <b>SetScreenPort(System.Drawing.Rectangle)</b> and <b>GetScreenPort()</b>",
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "double ScreenPortAspect",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the screen aspect ratio.  \nThis is width / height.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "Point3d TargetPoint",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "The current value of the target point.  This point does not play a role in the view projection calculations.  It can be used as a fixed point when changing the camera so the visible regions of the before and after frustums both contain the region of interest. The default constructor sets this point on ON_3dPoint::UnsetPoint. You must explicitly call one SetTargetPoint() functions to set the target point.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "SizeF ViewScale",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Applies scaling factors to parallel projection clipping coordinates by setting the m_clip_mod transformation. If you want to compress the view projection across the viewing plane, then set x = 0.5, y = 1.0, and z = 1.0.",
        "since": "5.0",
        "property": ["get", "set"]
      }
    ],
    "methods": [
      {
        "signature": "System.Double CalculateCameraRotationAngle(Vector3d direction, Vector3d up)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Calculates the camera rotation angle.",
        "since": "6.8",
        "parameters": [
          {
            "name": "direction",
            "type": "Vector3d",
            "summary": "The camera direction."
          },
          {
            "name": "up",
            "type": "Vector3d",
            "summary": "The camera up direction."
          }
        ],
        "returns": "The camera rotation angle in radians."
      },
      {
        "signature": "Vector3d CalculateCameraUpDirection(Point3d location, Vector3d direction, System.Double angle)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Calculates the camera up direction.",
        "since": "6.8",
        "parameters": [
          {
            "name": "location",
            "type": "Point3d",
            "summary": "The camera location."
          },
          {
            "name": "direction",
            "type": "Vector3d",
            "summary": "The camera direction."
          },
          {
            "name": "angle",
            "type": "System.Double",
            "summary": "The camera rotation angle in radians."
          }
        ],
        "returns": "The camera up direction."
      },
      {
        "signature": "System.Boolean ChangeToParallelProjection(System.Boolean symmetricFrustum)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Use this function to change projections of valid viewports from parallel to perspective.  It will make common additional adjustments to the frustum and camera location so the resulting views are similar.  The camera direction and target point are not be changed. If the current projection is parallel and symmetricFrustum, FrustumIsLeftRightSymmetric() and FrustumIsTopBottomSymmetric() are all equal, then no changes are made and True is returned.",
        "since": "5.0",
        "parameters": [
          {
            "name": "symmetricFrustum",
            "type": "System.Boolean",
            "summary": "True if you want the resulting frustum to be symmetric."
          }
        ],
        "returns": "True if the operation succeeded; otherwise, false."
      },
      {
        "signature": "System.Boolean ChangeToParallelReflectedProjection()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "When a viewport is set to Parallel Reflected projection, the geometry on the ceiling is shown as if it is mirrored to the floor below.",
        "since": "8.14",
        "returns": "True if successful"
      },
      {
        "signature": "System.Boolean ChangeToPerspectiveProjection(System.Double targetDistance, System.Boolean symmetricFrustum, System.Double lensLength)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Use this function to change projections of valid viewports from parallel to perspective.  It will make common additional adjustments to the frustum and camera location so the resulting views are similar.  The camera direction and target point are not changed. If the current projection is perspective and symmetricFrustum, IsFrustumIsLeftRightSymmetric, and IsFrustumIsTopBottomSymmetric are all equal, then no changes are made and True is returned.",
        "since": "5.0",
        "parameters": [
          {
            "name": "targetDistance",
            "type": "System.Double",
            "summary": "If RhinoMath.UnsetValue this parameter is ignored. Otherwise it must be > 0 and indicates which plane in the current view frustum should be preserved."
          },
          {
            "name": "symmetricFrustum",
            "type": "System.Boolean",
            "summary": "True if you want the resulting frustum to be symmetric."
          },
          {
            "name": "lensLength",
            "type": "System.Double",
            "summary": "(pass 50.0 when in doubt) 35 mm lens length to use when changing from parallel to perspective projections. If the current projection is perspective or lens_length is <= 0.0, then this parameter is ignored."
          }
        ],
        "returns": "True if the operation succeeded; otherwise, false."
      },
      {
        "signature": "System.Boolean ChangeToSymmetricFrustum(System.Boolean isLeftRightSymmetric, System.Boolean isTopBottomSymmetric, System.Double targetDistance)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "If needed, adjusts the current frustum so it has the specified symmetries and adjust the camera location so the target plane remains visible.",
        "since": "5.0",
        "parameters": [
          {
            "name": "isLeftRightSymmetric",
            "type": "System.Boolean",
            "summary": "If true, the frustum will be adjusted so left = -right."
          },
          {
            "name": "isTopBottomSymmetric",
            "type": "System.Boolean",
            "summary": "If true, the frustum will be adjusted so top = -bottom."
          },
          {
            "name": "targetDistance",
            "type": "System.Double",
            "summary": "If projection is not perspective or target_distance is RhinoMath.UnsetValue, then this parameter is ignored. If the projection is perspective and targetDistance is not RhinoMath.UnsetValue, then it must be > 0.0 and it is used to determine which plane in the old frustum will appear unchanged in the new frustum."
          }
        ],
        "returns": "Returns True if the viewport has now a frustum with the specified symmetries."
      },
      {
        "signature": "System.Boolean ChangeToTwoPointPerspectiveProjection(System.Double targetDistance, Vector3d up, System.Double lensLength)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Changes projections of valid viewports to a two point perspective.  It will make common additional adjustments to the frustum and camera location and direction so the resulting views are similar. If the current projection is perspective and IsFrustumIsLeftRightSymmetric is True and IsFrustumIsTopBottomSymmetric is false, then no changes are made and True is returned.",
        "since": "5.0",
        "parameters": [
          {
            "name": "targetDistance",
            "type": "System.Double",
            "summary": "If RhinoMath.UnsetValue this parameter is ignored.  Otherwise it must be > 0 and indicates which plane in the current view frustum should be preserved."
          },
          {
            "name": "up",
            "type": "Vector3d",
            "summary": "The locked up direction. Pass Vector3d.Zero if you want to use the world axis direction that is closest to the current up direction. Pass CameraY() if you want to preserve the current up direction."
          },
          {
            "name": "lensLength",
            "type": "System.Double",
            "summary": "(pass 50.0 when in doubt) 35 mm lens length to use when changing from parallel to perspective projections. If the current projection is perspective or lens_length is <= 0.0, then this parameter is ignored."
          }
        ],
        "returns": "True if the operation succeeded; otherwise, false."
      },
      {
        "signature": "System.Boolean DollyCamera(Vector3d dollyVector)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "DollyCamera() does not update the frustum's clipping planes. To update the frustum's clipping planes call DollyFrustum(d) with d = dollyVector o cameraFrameZ.  To convert screen locations into a dolly vector, use GetDollyCameraVector(). Does not update frustum.  To update frustum use DollyFrustum(d) with d = dollyVector o cameraFrameZ.",
        "since": "5.0",
        "parameters": [
          {
            "name": "dollyVector",
            "type": "Vector3d",
            "summary": "dolly vector in world coordinates."
          }
        ],
        "returns": "True if the operation succeeded; otherwise, false."
      },
      {
        "signature": "System.Boolean DollyExtents(BoundingBox cameraCoordinateBoundingBox, System.Double border)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Dolly the camera location and so that the view frustum contains all of the document objects that can be seen in view. If the projection is perspective, the camera angle is not changed.",
        "since": "5.6",
        "parameters": [
          {
            "name": "cameraCoordinateBoundingBox",
            "type": "BoundingBox",
            "summary": ""
          },
          {
            "name": "border",
            "type": "System.Double",
            "summary": "If border > 1.0, then the frustum in enlarged by this factor to provide a border around the view.  1.1 works well for parallel projections; 0.0 is suggested for perspective projections."
          }
        ],
        "returns": "True if successful."
      },
      {
        "signature": "System.Boolean DollyExtents(IEnumerable<GeometryBase> geometry, System.Double border)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Dolly the camera location and so that the view frustum contains all of the document objects that can be seen in view. If the projection is perspective, the camera angle is not changed.",
        "since": "5.6",
        "parameters": [
          {
            "name": "geometry",
            "type": "IEnumerable<GeometryBase>",
            "summary": ""
          },
          {
            "name": "border",
            "type": "System.Double",
            "summary": "If border > 1.0, then the frustum in enlarged by this factor to provide a border around the view.  1.1 works well for parallel projections; 0.0 is suggested for perspective projections."
          }
        ],
        "returns": "True if successful."
      },
      {
        "signature": "System.Boolean DollyFrustum(System.Double dollyDistance)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Moves the frustum clipping planes.",
        "since": "5.0",
        "parameters": [
          {
            "name": "dollyDistance",
            "type": "System.Double",
            "summary": "Distance to move in camera direction."
          }
        ],
        "returns": "True if the operation succeeded; otherwise, false."
      },
      {
        "signature": "System.Boolean Extents(System.Double halfViewAngleRadians, BoundingBox bbox)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Extends this viewport view to include a bounding box.  \nUse Extents() as a quick way to set a viewport to so that bounding     volume is inside of a viewports frustum.     The view angle is used to determine the position of the camera.",
        "since": "5.0",
        "parameters": [
          {
            "name": "halfViewAngleRadians",
            "type": "System.Double",
            "summary": "1/2 smallest subtended view angle in radians."
          },
          {
            "name": "bbox",
            "type": "BoundingBox",
            "summary": "A bounding box in 3d world coordinates."
          }
        ],
        "returns": "True if the operation succeeded; otherwise, false."
      },
      {
        "signature": "System.Boolean Extents(System.Double halfViewAngleRadians, Sphere sphere)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Extends this viewport view to include a sphere.  \nUse Extents() as a quick way to set a viewport to so that bounding     volume is inside of a viewports frustum.     The view angle is used to determine the position of the camera.",
        "since": "5.0",
        "parameters": [
          {
            "name": "halfViewAngleRadians",
            "type": "System.Double",
            "summary": "1/2 smallest subtended view angle in radians."
          },
          {
            "name": "sphere",
            "type": "Sphere",
            "summary": "A sphere in 3d world coordinates."
          }
        ],
        "returns": "True if the operation succeeded; otherwise, false."
      },
      {
        "signature": "Point3d FrustumCenterPoint(System.Double targetDistance)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Return a point on the central axis of the view frustum. This point is a good choice for a general purpose target point.",
        "since": "5.0",
        "parameters": [
          {
            "name": "targetDistance",
            "type": "System.Double",
            "summary": "If targetDistance > 0.0, then the distance from the returned point to the camera plane will be targetDistance. Note that if the frustum is not symmetric, the distance from the returned point to the camera location will be larger than targetDistance. If targetDistance == ON_UNSET_VALUE and the frustum is valid with near > 0.0, then 0.5*(near + far) will be used as the targetDistance."
          }
        ],
        "returns": "A point on the frustum's central axis.  If the viewport or input is not valid, then ON_3dPoint::UnsetPoint is returned."
      },
      {
        "signature": "System.Boolean GetBoundingBoxDepth(BoundingBox bbox, out System.Double nearDistance, out System.Double farDistance)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets near and far clipping distances of a bounding box. This function ignores the current value of the viewport's near and far settings. If the viewport is a perspective projection, the it intersects the semi infinite frustum volume with the bounding box and returns the near and far distances of the intersection.  If the viewport is a parallel projection, it intersects the infinite view region with the bounding box and returns the near and far distances of the projection.",
        "since": "5.0",
        "parameters": [
          {
            "name": "bbox",
            "type": "BoundingBox",
            "summary": "The bounding box to sample."
          },
          {
            "name": "nearDistance",
            "type": "System.Double",
            "summary": "Near distance of the box. This value can be zero or negative when the camera location is inside box."
          },
          {
            "name": "farDistance",
            "type": "System.Double",
            "summary": "Far distance of the box. This value can be equal to near_dist, zero or negative when the camera location is in front of the bounding box."
          }
        ],
        "returns": "True if the bounding box intersects the view frustum and near_dist/far_dist were set. False if the bounding box does not intersect the view frustum."
      },
      {
        "signature": "System.Boolean GetCameraAngles(out System.Double halfDiagonalAngleRadians, out System.Double halfVerticalAngleRadians, out System.Double halfHorizontalAngleRadians)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the field of view angles.",
        "since": "5.0",
        "parameters": [
          {
            "name": "halfDiagonalAngleRadians",
            "type": "System.Double",
            "summary": "1/2 of diagonal subtended angle. This out parameter is assigned during this call."
          },
          {
            "name": "halfVerticalAngleRadians",
            "type": "System.Double",
            "summary": "1/2 of vertical subtended angle. This out parameter is assigned during this call."
          },
          {
            "name": "halfHorizontalAngleRadians",
            "type": "System.Double",
            "summary": "1/2 of horizontal subtended angle. This out parameter is assigned during this call."
          }
        ],
        "returns": "True if the operation succeeded; otherwise, false."
      },
      {
        "signature": "System.Boolean GetCameraFrame(out Point3d location, out Vector3d cameraX, out Vector3d cameraY, out Vector3d cameraZ)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets location and vectors of this camera.",
        "since": "5.0",
        "parameters": [
          {
            "name": "location",
            "type": "Point3d",
            "summary": "An out parameter that will be filled with a point during the call."
          },
          {
            "name": "cameraX",
            "type": "Vector3d",
            "summary": "An out parameter that will be filled with the X vector during the call."
          },
          {
            "name": "cameraY",
            "type": "Vector3d",
            "summary": "An out parameter that will be filled with the Y vector during the call."
          },
          {
            "name": "cameraZ",
            "type": "Vector3d",
            "summary": "An out parameter that will be filled with the Z vector during the call."
          }
        ],
        "returns": "True if current camera orientation is valid; otherwise false."
      },
      {
        "signature": "Vector3d GetDollyCameraVector(System.Drawing.Point screen0, System.Drawing.Point screen1, System.Double projectionPlaneDistance)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets a world coordinate dolly vector that can be passed to DollyCamera().",
        "since": "5.0",
        "parameters": [
          {
            "name": "screen0",
            "type": "System.Drawing.Point",
            "summary": "Start point."
          },
          {
            "name": "screen1",
            "type": "System.Drawing.Point",
            "summary": "End point."
          },
          {
            "name": "projectionPlaneDistance",
            "type": "System.Double",
            "summary": "Distance of projection plane from camera. When in doubt, use 0.5*(frus_near+frus_far)."
          }
        ],
        "returns": "The world coordinate dolly vector."
      },
      {
        "signature": "Vector3d GetDollyCameraVector(System.Int32 screenX0, System.Int32 screenY0, System.Int32 screenX1, System.Int32 screenY1, System.Double projectionPlaneDistance)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets a world coordinate dolly vector that can be passed to DollyCamera().",
        "since": "5.0",
        "parameters": [
          {
            "name": "screenX0",
            "type": "System.Int32",
            "summary": "Screen coordinates of start point."
          },
          {
            "name": "screenY0",
            "type": "System.Int32",
            "summary": "Screen coordinates of start point."
          },
          {
            "name": "screenX1",
            "type": "System.Int32",
            "summary": "Screen coordinates of end point."
          },
          {
            "name": "screenY1",
            "type": "System.Int32",
            "summary": "Screen coordinates of end point."
          },
          {
            "name": "projectionPlaneDistance",
            "type": "System.Double",
            "summary": "Distance of projection plane from camera. When in doubt, use 0.5*(frus_near+frus_far)."
          }
        ],
        "returns": "The world coordinate dolly vector."
      },
      {
        "signature": "Point3d[] GetFarPlaneCorners()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the corners of far clipping plane rectangle. 4 points are returned in the order of bottom left, bottom right, top left, top right.",
        "since": "5.0",
        "returns": "Four corner points on success. Empty array if viewport is not valid."
      },
      {
        "signature": "Point3d[] GetFramePlaneCorners(System.Double depth)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the corners of the frame plane rectangle at specified depth. 4 points are returned in the order of bottom left, bottom right, top left, top right.",
        "since": "8.0",
        "parameters": [
          {
            "name": "depth",
            "type": "System.Double",
            "summary": "Distance from camera location."
          }
        ],
        "returns": "Four corner points on success. Empty array if viewport is not valid."
      },
      {
        "signature": "System.Boolean GetFrustum(out System.Double left, out System.Double right, out System.Double bottom, out System.Double top, out System.Double nearDistance, out System.Double farDistance)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the view frustum.",
        "since": "5.0",
        "parameters": [
          {
            "name": "left",
            "type": "System.Double",
            "summary": "A left value that will be filled during the call."
          },
          {
            "name": "right",
            "type": "System.Double",
            "summary": "A right value that will be filled during the call."
          },
          {
            "name": "bottom",
            "type": "System.Double",
            "summary": "A bottom value that will be filled during the call."
          },
          {
            "name": "top",
            "type": "System.Double",
            "summary": "A top value that will be filled during the call."
          },
          {
            "name": "nearDistance",
            "type": "System.Double",
            "summary": "A near distance value that will be filled during the call."
          },
          {
            "name": "farDistance",
            "type": "System.Double",
            "summary": "A far distance value that will be filled during the call."
          }
        ],
        "returns": "True if operation succeeded; otherwise, false."
      },
      {
        "signature": "Line GetFrustumLine(System.Double screenX, System.Double screenY)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the world coordinate line in the view frustum that projects to a point on the screen.",
        "since": "5.1",
        "parameters": [
          {
            "name": "screenX",
            "type": "System.Double",
            "summary": "(screenx,screeny) = screen location."
          },
          {
            "name": "screenY",
            "type": "System.Double",
            "summary": "(screenx,screeny) = screen location."
          }
        ],
        "returns": "3d world coordinate line segment starting on the near clipping plane and ending on the far clipping plane."
      },
      {
        "signature": "Line GetFrustumLine(System.Drawing.Point screenPoint)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the world coordinate line in the view frustum that projects to a point on the screen.",
        "since": "5.1",
        "parameters": [
          {
            "name": "screenPoint",
            "type": "System.Drawing.Point",
            "summary": "screen location"
          }
        ],
        "returns": "3d world coordinate line segment starting on the near clipping plane and ending on the far clipping plane."
      },
      {
        "signature": "Line GetFrustumLine(System.Drawing.PointF screenPoint)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the world coordinate line in the view frustum that projects to a point on the screen.",
        "since": "5.1",
        "parameters": [
          {
            "name": "screenPoint",
            "type": "System.Drawing.PointF",
            "summary": "screen location"
          }
        ],
        "returns": "3d world coordinate line segment starting on the near clipping plane and ending on the far clipping plane."
      },
      {
        "signature": "Point3d[] GetNearPlaneCorners()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the corners of near clipping plane rectangle. 4 points are returned in the order of bottom left, bottom right, top left, top right.",
        "since": "5.0",
        "returns": "Four corner points on success. Empty array if viewport is not valid."
      },
      {
        "signature": "System.Boolean GetPointDepth(Point3d point, out System.Double distance)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the clipping distance of a point. This function ignores the current value of the viewport's near and far settings. If the viewport is a perspective projection, then it intersects the semi infinite frustum volume with the bounding box and returns the near and far distances of the intersection. If the viewport is a parallel projection, it intersects the infinite view region with the bounding box and returns the near and far distances of the projection.",
        "since": "5.0",
        "parameters": [
          {
            "name": "point",
            "type": "Point3d",
            "summary": "A point to measure."
          },
          {
            "name": "distance",
            "type": "System.Double",
            "summary": "distance of the point (can be < 0)"
          }
        ],
        "returns": "True if the bounding box intersects the view frustum and near_dist/far_dist were set. False if the bounding box does not intersect the view frustum."
      },
      {
        "signature": "System.Drawing.Rectangle GetScreenPort()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the location of viewport in pixels. See documentation for <b>SetScreenPort(int, int, int, int, int, int)</b> .",
        "since": "5.0",
        "returns": "The rectangle, or <b>System.Drawing.Rectangle.Empty</b> rectangle on error."
      },
      {
        "signature": "System.Drawing.Rectangle GetScreenPort(out System.Int32 near, out System.Int32 far)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the location of viewport in pixels.  \nSee value meanings in SetScreenPort.",
        "since": "5.0",
        "parameters": [
          {
            "name": "near",
            "type": "System.Int32",
            "summary": "The near value. This out parameter is assigned during the call."
          },
          {
            "name": "far",
            "type": "System.Int32",
            "summary": "The far value. This out parameter is assigned during the call."
          }
        ],
        "returns": "The rectangle, or <b>System.Drawing.Rectangle.Empty</b> rectangle on error."
      },
      {
        "signature": "System.Void GetScreenPortLocation(out System.Int32 left, out System.Int32 top, out System.Int32 right, out System.Int32 bottom)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Get the location of viewport in pixels (non System.Drawing version of GetScreenPort)",
        "since": "6.0"
      },
      {
        "signature": "System.Boolean GetSphereDepth(Sphere sphere, out System.Double nearDistance, out System.Double farDistance)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets near and far clipping distances of a bounding sphere.",
        "since": "5.0",
        "parameters": [
          {
            "name": "sphere",
            "type": "Sphere",
            "summary": "The sphere to sample."
          },
          {
            "name": "nearDistance",
            "type": "System.Double",
            "summary": "Near distance of the sphere (can be < 0)"
          },
          {
            "name": "farDistance",
            "type": "System.Double",
            "summary": "Far distance of the sphere (can be equal to near_dist)"
          }
        ],
        "returns": "True if the sphere intersects the view frustum and near_dist/far_dist were set. False if the sphere does not intersect the view frustum."
      },
      {
        "signature": "System.Double[] GetViewScale()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Get scaling applied to this viewport projection. Reflected ceiling projections will return the values 1,1,-1",
        "since": "8.0"
      },
      {
        "signature": "System.Double GetWorldToScreenScale(Point3d pointInFrustum)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the scale factor from point in frustum to screen scale.",
        "since": "5.1",
        "parameters": [
          {
            "name": "pointInFrustum",
            "type": "Point3d",
            "summary": "point in viewing frustum."
          }
        ],
        "returns": "number of pixels per world unit at the 3d point."
      },
      {
        "signature": "Transform GetXform(CoordinateSystem sourceSystem, CoordinateSystem destinationSystem)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Computes a transform from a coordinate system to another.",
        "since": "5.0",
        "parameters": [
          {
            "name": "sourceSystem",
            "type": "CoordinateSystem",
            "summary": "The coordinate system to map from."
          },
          {
            "name": "destinationSystem",
            "type": "CoordinateSystem",
            "summary": "The coordinate system to map into."
          }
        ],
        "returns": "The 4x4 transformation matrix (acts on the left)."
      },
      {
        "signature": "System.Boolean RotateCamera(System.Double rotationAngleRadians, Vector3d rotationAxis, Point3d rotationCenter)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Rotates the view camera.",
        "since": "7.0",
        "parameters": [
          {
            "name": "rotationAngleRadians",
            "type": "System.Double",
            "summary": "The amount to rotate expressed in radians."
          },
          {
            "name": "rotationAxis",
            "type": "Vector3d",
            "summary": "The axis to rotate around."
          },
          {
            "name": "rotationCenter",
            "type": "Point3d",
            "summary": "The point to rotate around."
          }
        ],
        "returns": "True if rotation is successful, False otherwise."
      },
      {
        "signature": "System.Boolean SetCameraDirection(Vector3d direction)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Sets the direction that the camera faces.",
        "since": "5.0",
        "parameters": [
          {
            "name": "direction",
            "type": "Vector3d",
            "summary": "A new direction."
          }
        ],
        "returns": "True if the direction was set; otherwise false."
      },
      {
        "signature": "System.Boolean SetCameraLocation(Point3d location)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Sets the camera location (position) point.",
        "since": "5.0",
        "returns": "True if the operation succeeded; otherwise, false."
      },
      {
        "signature": "System.Boolean SetCameraUp(Vector3d up)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Sets the camera up vector.",
        "since": "5.0",
        "parameters": [
          {
            "name": "up",
            "type": "Vector3d",
            "summary": "A new direction."
          }
        ],
        "returns": "True if the direction was set; otherwise false."
      },
      {
        "signature": "System.Boolean SetFrustum(System.Double left, System.Double right, System.Double bottom, System.Double top, System.Double nearDistance, System.Double farDistance)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Sets the view frustum. If FrustumSymmetryIsLocked() is true and left != -right or bottom != -top, then they will be adjusted so the resulting frustum is symmetric.",
        "since": "5.0",
        "parameters": [
          {
            "name": "left",
            "type": "System.Double",
            "summary": "A new left value."
          },
          {
            "name": "right",
            "type": "System.Double",
            "summary": "A new right value."
          },
          {
            "name": "bottom",
            "type": "System.Double",
            "summary": "A new bottom value."
          },
          {
            "name": "top",
            "type": "System.Double",
            "summary": "A new top value."
          },
          {
            "name": "nearDistance",
            "type": "System.Double",
            "summary": "A new near distance value."
          },
          {
            "name": "farDistance",
            "type": "System.Double",
            "summary": "A new far distance value."
          }
        ],
        "returns": "True if operation succeeded; otherwise, false."
      },
      {
        "signature": "System.Boolean SetFrustumNearFar(BoundingBox boundingBox)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Sets the frustum near and far using a bounding box.",
        "since": "5.0",
        "parameters": [
          {
            "name": "boundingBox",
            "type": "BoundingBox",
            "summary": "A bounding box to use."
          }
        ],
        "returns": "True if operation succeeded; otherwise, false."
      },
      {
        "signature": "System.Boolean SetFrustumNearFar(Point3d center, System.Double radius)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Sets the frustum near and far using a center point and radius.",
        "since": "5.0",
        "parameters": [
          {
            "name": "center",
            "type": "Point3d",
            "summary": "A center point."
          },
          {
            "name": "radius",
            "type": "System.Double",
            "summary": "A radius value."
          }
        ],
        "returns": "True if operation succeeded; otherwise, false."
      },
      {
        "signature": "System.Boolean SetFrustumNearFar(System.Double nearDistance, System.Double farDistance, System.Double minNearDistance, System.Double minNearOverFar, System.Double targetDistance)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Sets near and far clipping distance subject to constraints.",
        "since": "5.0",
        "parameters": [
          {
            "name": "nearDistance",
            "type": "System.Double",
            "summary": "(>0) desired near clipping distance."
          },
          {
            "name": "farDistance",
            "type": "System.Double",
            "summary": "(>near_dist) desired near clipping distance."
          },
          {
            "name": "minNearDistance",
            "type": "System.Double",
            "summary": "If min_near_dist <= 0.0, it is ignored. If min_near_dist > 0 and near_dist < min_near_dist, then the frustum's near_dist will be increased to min_near_dist."
          },
          {
            "name": "minNearOverFar",
            "type": "System.Double",
            "summary": "If min_near_over_far <= 0.0, it is ignored. If near_dist < far_dist*min_near_over_far, then near_dist is increased and/or far_dist is decreased so that near_dist = far_dist*min_near_over_far. If near_dist < target_dist < far_dist, then near_dist near_dist is increased and far_dist is decreased so that projection precision will be good at target_dist. Otherwise, near_dist is simply set to far_dist*min_near_over_far."
          },
          {
            "name": "targetDistance",
            "type": "System.Double",
            "summary": "If target_dist <= 0.0, it is ignored. If target_dist > 0, it is used as described in the description of the min_near_over_far parameter."
          }
        ],
        "returns": "True if operation succeeded; otherwise, false."
      },
      {
        "signature": "System.Boolean SetFrustumNearFar(System.Double nearDistance, System.Double farDistance)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Sets the frustum near and far distances using two values.",
        "since": "5.0",
        "parameters": [
          {
            "name": "nearDistance",
            "type": "System.Double",
            "summary": "The new near distance."
          },
          {
            "name": "farDistance",
            "type": "System.Double",
            "summary": "The new far distance."
          }
        ],
        "returns": "True if operation succeeded; otherwise, false."
      },
      {
        "signature": "System.Boolean SetScreenPort(System.Drawing.Rectangle windowRectangle, System.Int32 near, System.Int32 far)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the location of viewport in pixels.  \nSee value meanings in SetScreenPort.",
        "since": "5.0",
        "parameters": [
          {
            "name": "windowRectangle",
            "type": "System.Drawing.Rectangle",
            "summary": "A new rectangle."
          },
          {
            "name": "near",
            "type": "System.Int32",
            "summary": "The near value."
          },
          {
            "name": "far",
            "type": "System.Int32",
            "summary": "The far value."
          }
        ],
        "returns": "True if input is valid."
      },
      {
        "signature": "System.Boolean SetScreenPort(System.Drawing.Rectangle windowRectangle)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the location of viewport in pixels.  \nSee value meanings in SetScreenPort.",
        "since": "5.0",
        "parameters": [
          {
            "name": "windowRectangle",
            "type": "System.Drawing.Rectangle",
            "summary": "A new rectangle."
          }
        ],
        "returns": "True if input is valid."
      },
      {
        "signature": "System.Boolean SetScreenPort(System.Int32 left, System.Int32 right, System.Int32 bottom, System.Int32 top, System.Int32 near, System.Int32 far)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Location of viewport in pixels. These are provided so you can set the port you are using and get the appropriate transformations to and from screen space. // For a Windows window /      int width = width of window client area in pixels; /      int height = height of window client area in pixels; /      port_left = 0; /      port_right = width; /      port_top = 0; /      port_bottom = height; /      port_near = 0; /      port_far = 1; /      SetScreenPort( port_left, port_right, /                     port_bottom, port_top, /                     port_near, port_far );",
        "since": "5.0",
        "parameters": [
          {
            "name": "left",
            "type": "System.Int32",
            "summary": "A left value."
          },
          {
            "name": "right",
            "type": "System.Int32",
            "summary": "A left value. (port_left != port_right)"
          },
          {
            "name": "bottom",
            "type": "System.Int32",
            "summary": "A bottom value."
          },
          {
            "name": "top",
            "type": "System.Int32",
            "summary": "A top value. (port_top != port_bottom)"
          },
          {
            "name": "near",
            "type": "System.Int32",
            "summary": "A near value."
          },
          {
            "name": "far",
            "type": "System.Int32",
            "summary": "A far value."
          }
        ],
        "returns": "True if input is valid."
      },
      {
        "signature": "System.Void SetViewScale(System.Double scaleX, System.Double scaleY, System.Double scaleZ)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Set scaling applied for this viewport projection. For reflected projections, call with values 1,1,-1",
        "since": "8.0"
      },
      {
        "signature": "System.Double TargetDistance(System.Boolean useFrustumCenterFallback)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the distance from the target point to the camera plane. Note that if the frustum is not symmetric, then this distance is shorter than the distance from the target to the camera location.",
        "since": "5.0",
        "parameters": [
          {
            "name": "useFrustumCenterFallback",
            "type": "System.Boolean",
            "summary": "If bUseFrustumCenterFallback is False and the target point is not valid, then ON_UNSET_VALUE is returned. If bUseFrustumCenterFallback is True and the frustum is valid and current target point is not valid or is behind the camera, then 0.5*(near + far) is returned."
          }
        ],
        "returns": "Shortest signed distance from camera plane to target point. If the target point is on the visible side of the camera, a positive value is returned.  ON_UNSET_VALUE is returned when the input of view is not valid."
      },
      {
        "signature": "System.Boolean TransformCamera(Transform xform)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Transforms the view camera location, direction, and up.",
        "since": "7.0",
        "parameters": [
          {
            "name": "xform",
            "type": "Transform",
            "summary": "Transformation to apply to camera."
          }
        ],
        "returns": "True if a valid camera was transformed, False if invalid camera, frustum, or transformation."
      },
      {
        "signature": "System.Void UnlockCamera()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Unlocks the camera vectors and location.",
        "since": "5.0"
      },
      {
        "signature": "System.Void UnlockFrustumSymmetry()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Unlocks frustum horizontal and vertical symmetries.",
        "since": "5.0"
      },
      {
        "signature": "System.Boolean ZoomToScreenRect(System.Drawing.Rectangle windowRectangle)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Zooms to a screen zone.  \nView changing from screen input points. Handy for     using a mouse to manipulate a view.     ZoomToScreenRect() may change camera and frustum settings.",
        "since": "5.0",
        "parameters": [
          {
            "name": "windowRectangle",
            "type": "System.Drawing.Rectangle",
            "summary": "The new window rectangle in screen space."
          }
        ],
        "returns": "True if the operation succeeded; otherwise, false."
      },
      {
        "signature": "System.Boolean ZoomToScreenRect(System.Int32 left, System.Int32 top, System.Int32 right, System.Int32 bottom)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Zooms to a screen zone.  \nView changing from screen input points. Handy for     using a mouse to manipulate a view.     ZoomToScreenRect() may change camera and frustum settings.",
        "since": "5.0",
        "parameters": [
          {
            "name": "left",
            "type": "System.Int32",
            "summary": "Screen coordinate."
          },
          {
            "name": "top",
            "type": "System.Int32",
            "summary": "Screen coordinate."
          },
          {
            "name": "right",
            "type": "System.Int32",
            "summary": "Screen coordinate."
          },
          {
            "name": "bottom",
            "type": "System.Int32",
            "summary": "Screen coordinate."
          }
        ],
        "returns": "True if the operation succeeded; otherwise, false."
      }
    ]
  },
  {
    "namespace": "Rhino.DocObjects",
    "name": "ViewSectionBehavior",
    "dataType": "enum",
    "summary": "Defines how views work with clipping planes.",
    "since": "8.0",
    "values": [
      {
        "signature": "ClipAndSection = 0",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Default - show geometry on unclipped side of clipping plane and show section"
      },
      {
        "signature": "SectionOnly = 1",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Only show the section at the intersection of a clipping plane"
      }
    ]

  },
  {
    "namespace": "Rhino.DocObjects",
    "name": "Worksession",
    "dataType": "class",
    "summary": "Manages a list of models that are being used as reference geometry.",
    "properties": [
      {
        "signature": "RhinoDoc Document",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the document that owns this worksession.",
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "string FileName",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns the path to the open worksession, or .rws, file. If there is no worksession file open, or the active worksession has not yet been saved, then None is returned.",
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "int ModelCount",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns the number of models in the worksession. The active model will included in this count whether or not it has been saved.",
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "string[] ModelPaths",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns the paths to the models used by the worksession. If the active model has not been saved, then it will not be included in the output array.",
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "string Name",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the name of the worksession - the worksession (.rws) file name without its path or extension. Returns an empty string if there is no worksession file open, or the active worksession has not yet been saved; it is up to the caller to decide what to display in that case.",
        "since": "9.0",
        "property": ["get"]
      },
      {
        "signature": "uint RuntimeSerialNumber",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Unique serial number for the worksession while the application is running. This is not a persistent value.",
        "since": "6.3",
        "property": ["get"]
      }
    ],
    "methods": [
      {
        "signature": "System.String FileNameFromRuntimeSerialNumber(System.UInt32 runtimeSerialNumber)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Returns the path to the open worksession, or .rws, file. If there is no worksession file open, or the active worksession has not yet been saved, then None is returned.",
        "since": "6.3"
      },
      {
        "signature": "System.String ModelPathFromSerialNumber(System.UInt32 modelSerialNumber)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns the path to a model, used by the worksession, given a reference model serial number",
        "since": "6.12",
        "parameters": [
          {
            "name": "modelSerialNumber",
            "type": "System.UInt32",
            "summary": "The reference model serial number."
          }
        ],
        "returns": "The path to the model if successful, None otherwise."
      }
    ]
  },
  {
    "namespace": "Rhino",
    "name": "DocumentEventArgs",
    "dataType": "class",
    "summary": "Provides document information for RhinoDoc events.",
    "baseclass": "EventArgs",
    "properties": [
      {
        "signature": "RhinoDoc Document",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the document for this event. This field might be null.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "int DocumentId",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the document Id of the document for this event.",
        "since": "5.0",
        "obsolete": "Use DocumentSerialNumber or Document properties",
        "property": ["get"]
      },
      {
        "signature": "uint DocumentSerialNumber",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the unique document serial number for this event",
        "since": "6.0",
        "property": ["get"]
      }
    ]
  },
  {
    "namespace": "Rhino",
    "name": "DocumentOpenEventArgs",
    "dataType": "class",
    "summary": "Provides document information for RhinoDoc events.",
    "baseclass": "Rhino.DocumentEventArgs",
    "properties": [
      {
        "signature": "string FileName",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Name of file being opened.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "bool Merge",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "True if file is being merged into the current document. This occurs during the \"Import\" command.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "bool Reference",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "True if file is opened as a reference file.",
        "since": "5.0",
        "property": ["get"]
      }
    ]
  },
  {
    "namespace": "Rhino",
    "name": "DocumentSaveEventArgs",
    "dataType": "class",
    "summary": "Provides document information for RhinoDoc events.",
    "baseclass": "Rhino.DocumentEventArgs",
    "properties": [
      {
        "signature": "bool ExportSelected",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "True if only selected objects are being written to a file.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "string FileName",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Name of file being written.",
        "since": "5.0",
        "property": ["get"]
      }
    ]
  },
  {
    "namespace": "Rhino",
    "name": "EventWatcher",
    "dataType": "class",
    "summary": "An instance-based watcher for document and object events that can be notified for headless documents.  \nThe static events on  are never raised for headless   documents (a headless document is one created with    or   , as used by Rhino.Inside and   Rhino.Compute). Create an  with   includeHeadlessDocuments set to true to receive events for   those documents as well.  \nIMPORTANT: When watching headless documents, events may be raised on a   thread other than the main/UI thread, because headless documents can be   created and read on background threads. Handlers must be thread-safe and   must not assume they are running on the UI thread.  \nCall  when the watcher is no longer needed to stop   receiving events and release the underlying native watcher.",
    "interfaces": ["IDisposable"],
    "constructors": [
      {
        "signature": "EventWatcher(bool includeHeadlessDocuments)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Creates a new event watcher and begins watching.",
        "parameters": [
          {
            "name": "includeHeadlessDocuments",
            "type": "System.Boolean",
            "summary": "Whentrue, events are also raised for headless documents. In this case handlers may be invoked on a non-UI thread (see the remarks on <b>EventWatcher</b> )."
          }
        ]
      }
    ],
    "properties": [
      {
        "signature": "bool IncludeHeadlessDocuments",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets whether this watcher also receives events for headless documents.",
        "property": ["get"]
      }
    ],
    "methods": [
      {
        "signature": "System.Void Dispose()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Stops watching and releases the underlying native watcher."
      }
    ]
  },
  {
    "namespace": "Rhino.FileIO",
    "name": "BinaryArchiveException",
    "dataType": "class",
    "summary": "Thrown by BinaryArchiveReader and BinaryArchiveWriter classes when an IO error has occurred.",
    "baseclass": "System.IO.IOException",
    "constructors": [
      {
        "signature": "BinaryArchiveException(string message)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Initializes a new instance of the <b>BinaryArchiveException</b> class.",
        "since": "5.0",
        "parameters": [
          {
            "name": "message",
            "type": "System.String",
            "summary": "The inner message to show to users."
          }
        ]
      }
    ]
  },
  {
    "namespace": "Rhino.FileIO",
    "name": "BinaryArchiveFile",
    "dataType": "class",
    "interfaces": ["IDisposable"],
    "constructors": [
      {
        "signature": "BinaryArchiveFile(string filename, BinaryArchiveMode mode)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.1"
      }
    ],
    "properties": [
      {
        "signature": "BinaryArchiveReader Reader",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.1",
        "property": ["get"]
      },
      {
        "signature": "BinaryArchiveWriter Writer",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.1",
        "property": ["get"]
      }
    ],
    "methods": [
      {
        "signature": "System.Void Close()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.1"
      },
      {
        "signature": "System.Void Dispose()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Actively reclaims unmanaged resources that this instance uses.",
        "since": "5.1"
      },
      {
        "signature": "System.Boolean Open()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.1"
      }
    ]
  },
  {
    "namespace": "Rhino.FileIO",
    "name": "BinaryArchiveMode",
    "dataType": "enum",
    "since": "5.1",
    "values": [
      {
        "signature": "Unknown = 0",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Read = 1",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Write = 2",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "ReadWrite = 3",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Read3dm = 5",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Write3dm = 6",
        "modifiers": [],
        "protected": false,
        "virtual": false
      }
    ]

  },
  {
    "namespace": "Rhino.FileIO",
    "name": "BinaryArchiveReader",
    "dataType": "class",
    "summary": "Represents an entity that is capable of reading a binary archive and instantiating strongly-typed objects.",
    "properties": [
      {
        "signature": "int Archive3dmVersion",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "If a 3dm archive is being read or written, then this is the version of the 3dm archive format (1, 2, 3, 4 or 5). 0     a 3dm archive is not being read/written 1     a version 1 3dm archive is being read/written 2     a version 2 3dm archive is being read/written 3     a version 3 3dm archive is being read/written 4     a version 4 3dm archive is being read/written 5     an old version 5 3dm archive is being read 50    a version 5 3dm archive is being read/written.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "ulong CurrentPosition",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "current offset (in bytes) into archive ( like ftell() )",
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "bool ReadErrorOccured",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets whether en error occurred during reading.",
        "since": "5.0",
        "property": ["get", "set"]
      }
    ],
    "methods": [
      {
        "signature": "System.Boolean AtEnd()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "True if at end of a file",
        "since": "5.1"
      },
      {
        "signature": "System.Boolean BeginRead3dmChunk(out System.UInt32 typeCode, out System.Int64 value)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Begins reading a chunk that must be in the archive at this location."
      },
      {
        "signature": "System.Boolean BeginRead3dmChunk(System.UInt32 expectedTypeCode, out System.Int32 majorVersion, out System.Int32 minorVersion)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Begins reading a chunk that must be in the archive at this location.",
        "since": "6.0",
        "returns": "True if beginning of the chunk was read.  In this case you must call EndRead3dmChunk(), even if something goes wrong while you attempt to read the interior of the chunk. False if the chunk did not exist at the current location in the file."
      },
      {
        "signature": "System.UInt32 Dump3dmChunk(TextLog log, System.Int32 recursionLimit)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Function for studying contents of a file.  The primary use is as an aid to help dig through files that have been damaged (bad disks, transmission errors, etc.) If an error is found, a line that begins with the word \"ERROR\" is printed.",
        "since": "5.1",
        "parameters": [
          {
            "name": "log",
            "type": "TextLog",
            "summary": "log where information is printed to"
          },
          {
            "name": "recursionLimit",
            "type": "System.Int32",
            "summary": "Subchunk depth to report to. Pass -1 for no limit"
          }
        ],
        "returns": "0 if something went wrong, otherwise the typecode of the chunk that was just studied."
      },
      {
        "signature": "System.UInt32 Dump3dmChunk(TextLog log)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Function for studying contents of a file.  The primary use is as an aid to help dig through files that have been damaged (bad disks, transmission errors, etc.) If an error is found, a line that begins with the word \"ERROR\" is printed.",
        "since": "5.1",
        "parameters": [
          {
            "name": "log",
            "type": "TextLog",
            "summary": "log where information is printed to"
          }
        ],
        "returns": "0 if something went wrong, otherwise the typecode of the chunk that was just studied."
      },
      {
        "signature": "System.Boolean EnableCRCCalculation(System.Boolean enable)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Expert user function to control CRC calculation while reading and writing. Typically this is used when seeking around and reading/writing information in non-serial order.",
        "since": "6.0",
        "returns": "Current state of CRC calculation.  Use the returned value to restore the CRC calculation setting after you are finished doing your fancy pants expert IO."
      },
      {
        "signature": "System.Boolean EndRead3dmChunk(System.Boolean suppressPartiallyReadChunkWarning)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Calling this will skip rest of stuff in chunk if it was only partially read.",
        "since": "6.0",
        "parameters": [
          {
            "name": "suppressPartiallyReadChunkWarning",
            "type": "System.Boolean",
            "summary": "Generally, a call to ON_WARNING is made when a chunk is partially read. If suppressPartiallyReadChunkWarning is true, then no warning is issued for partially read chunks."
          }
        ]
      },
      {
        "signature": "System.Void Read3dmChunkVersion(out System.Int32 major, out System.Int32 minor)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "A chunk version is a single byte that encodes a major.minor version number.  Useful when creating I/O code for 3dm chunks that may change in the future.  Increment the minor version number if new information is added to the end of the chunk. Increment the major version if the format of the chunk changes in some other way.",
        "since": "5.0",
        "parameters": [
          {
            "name": "major",
            "type": "System.Int32",
            "summary": "0 to 15."
          },
          {
            "name": "minor",
            "type": "System.Int32",
            "summary": "0 to 16."
          }
        ],
        "returns": "True on successful read."
      },
      {
        "signature": "System.Boolean Read3dmStartSection(out System.Int32 version, out System.String comment)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.1",
        "parameters": [
          {
            "name": "version",
            "type": "System.Int32",
            "summary": ".3dm file version (2, 3, 4, 5 or 50)"
          },
          {
            "name": "comment",
            "type": "System.String",
            "summary": "String with application name, et cetera.  This information is primarily used when debugging files that contain problems.  McNeel and Associates stores application name, application version, compile date, and the OS in use when file was written."
          }
        ],
        "returns": "True on success"
      },
      {
        "signature": "System.Boolean ReadBool()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Reads a <b>bool</b> from the archive.",
        "since": "5.0",
        "returns": "The value that was read."
      },
      {
        "signature": "System.Boolean[] ReadBoolArray()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Reads an array of <b>bool</b> from the archive.  \nAn array is returned even if the input was another enumerable type.",
        "since": "5.0",
        "returns": "The array that was read."
      },
      {
        "signature": "Geometry.BoundingBox ReadBoundingBox()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Reads a <b>Rhino.Geometry.BoundingBox</b> from the archive.",
        "since": "5.0",
        "returns": "The element that was read."
      },
      {
        "signature": "System.Byte ReadByte()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Reads a <b>byte</b> from the archive.",
        "since": "5.0",
        "returns": "The value that was read."
      },
      {
        "signature": "System.Byte[] ReadByteArray()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Reads an array of <b>byte</b> from the archive.  \nAn array is returned even if the input was another enumerable type.",
        "since": "5.0",
        "returns": "The array that was read."
      },
      {
        "signature": "System.Void ReadCheckSum()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Reads a legacy ON_CheckSum, only provided to read data chunks from old V5 files, the CheckSum read is discarded",
        "since": "6.0",
        "deprecated": "6.0",
        "obsolete": "This is only present to allow reading of old ON_CheckSum data"
      },
      {
        "signature": "System.Drawing.Color ReadColor()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Reads a <b>System.Drawing.Color</b> from the archive.",
        "since": "5.0",
        "returns": "The element that was read."
      },
      {
        "signature": "System.Byte[] ReadCompressedBuffer()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Reads an array of compressed <b>byte</b> information from the archive and uncompresses it.  \nAn array is returned even if the input was another enumerable type.",
        "since": "5.9",
        "returns": "The array that was read."
      },
      {
        "signature": "Rhino.Collections.ArchivableDictionary ReadDictionary()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Reads a complete <b>Rhino.Collections.ArchivableDictionary</b> from the archive.",
        "since": "5.0",
        "returns": "The newly instantiated object."
      },
      {
        "signature": "System.Double ReadDouble()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Reads a <b>double</b> from the archive.",
        "since": "5.0",
        "returns": "The value that was read."
      },
      {
        "signature": "System.Double[] ReadDoubleArray()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Reads an array of <b>double</b> from the archive.  \nAn array is returned even if the input was another enumerable type.",
        "since": "5.0",
        "returns": "The array that was read."
      },
      {
        "signature": "System.Drawing.Font ReadFont()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Reads a <b>System.Drawing.Font</b> from the archive.",
        "since": "5.0",
        "returns": "The element that was read."
      },
      {
        "signature": "Geometry.GeometryBase ReadGeometry()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Reads a <b>Rhino.Geometry.GeometryBase</b> -derived object from the archive.  \nThe  class is abstract.",
        "since": "5.0",
        "returns": "The element that was read."
      },
      {
        "signature": "Geometry.GeometryBase[] ReadGeometryArray()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "7.0"
      },
      {
        "signature": "System.Guid ReadGuid()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Reads a <b>Guid</b> from the archive.",
        "since": "5.0",
        "returns": "The value that was read."
      },
      {
        "signature": "System.Guid[] ReadGuidArray()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Reads an array of <b>Guid</b> from the archive.  \nAn array is returned even if the input was another enumerable type.",
        "since": "5.0",
        "returns": "The array that was read."
      },
      {
        "signature": "System.Int32 ReadInt()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Reads a <b>int</b> from the archive.",
        "since": "5.0",
        "returns": "The value that was read."
      },
      {
        "signature": "System.Int64 ReadInt64()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Reads a <b>long</b> from the archive.",
        "since": "5.0",
        "returns": "The value that was read."
      },
      {
        "signature": "System.Int32[] ReadIntArray()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Reads an array of <b>int</b> from the archive.  \nAn array is returned even if the input was another enumerable type.",
        "since": "5.0",
        "returns": "The array that was read."
      },
      {
        "signature": "Geometry.Interval ReadInterval()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Reads a <b>Rhino.Geometry.Interval</b> from the archive.",
        "since": "5.0",
        "returns": "The element that was read."
      },
      {
        "signature": "Geometry.Line ReadLine()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Reads a <b>Rhino.Geometry.Line</b> from the archive.",
        "since": "5.0",
        "returns": "The element that was read."
      },
      {
        "signature": "Geometry.MeshingParameters ReadMeshingParameters()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Reads a <b>Rhino.Geometry.MeshingParameters</b> from the archive.",
        "since": "5.0",
        "returns": "The element that was read."
      },
      {
        "signature": "DocObjects.ObjRef ReadObjRef()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Reads a <b>Rhino.DocObjects.ObjRef</b> from the archive",
        "since": "5.8",
        "returns": "the element that was read"
      },
      {
        "signature": "DocObjects.ObjRef[] ReadObjRefArray()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Reads an array of <b>double</b> from the archive.  \nAn array is returned even if the input was another enumerable type.",
        "since": "5.8",
        "returns": "The array that was read."
      },
      {
        "signature": "Geometry.Plane ReadPlane()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Reads a <b>Rhino.Geometry.Plane</b> from the archive.",
        "since": "5.0",
        "returns": "The element that was read."
      },
      {
        "signature": "System.Drawing.Point ReadPoint()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Reads a <b>System.Drawing.Point</b> from the archive.",
        "since": "5.0",
        "returns": "The element that was read."
      },
      {
        "signature": "Geometry.Point2d ReadPoint2d()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Reads a <b>Rhino.Geometry.Point2d</b> from the archive.",
        "since": "5.0",
        "returns": "The element that was read."
      },
      {
        "signature": "Geometry.Point3d ReadPoint3d()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Reads a <b>Rhino.Geometry.Point3d</b> from the archive.",
        "since": "5.0",
        "returns": "The element that was read."
      },
      {
        "signature": "Geometry.Point3f ReadPoint3f()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Reads a <b>Rhino.Geometry.Point3f</b> from the archive.",
        "since": "5.0",
        "returns": "The element that was read."
      },
      {
        "signature": "Geometry.Point4d ReadPoint4d()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Reads a <b>Rhino.Geometry.Point4d</b> from the archive.",
        "since": "5.0",
        "returns": "The element that was read."
      },
      {
        "signature": "System.Drawing.PointF ReadPointF()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Reads a <b>System.Drawing.PointF</b> from the archive.",
        "since": "5.0",
        "returns": "The element that was read."
      },
      {
        "signature": "Geometry.Ray3d ReadRay3d()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Reads a <b>Rhino.Geometry.Ray3d</b> from the archive.",
        "since": "5.0",
        "returns": "The element that was read."
      },
      {
        "signature": "System.Drawing.Rectangle ReadRectangle()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Reads a <b>System.Drawing.Rectangle</b> from the archive.",
        "since": "5.0",
        "returns": "The element that was read."
      },
      {
        "signature": "System.Drawing.RectangleF ReadRectangleF()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Reads a <b>System.Drawing.RectangleF</b> from the archive.",
        "since": "5.0",
        "returns": "The element that was read."
      },
      {
        "signature": "RenderSettings ReadRenderSettings()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Reads a <b>Rhino.Render.RenderSettings</b> -derived object from the archive.",
        "since": "6.0",
        "returns": "The element that was read."
      },
      {
        "signature": "System.SByte ReadSByte()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Reads a <b>sbyte</b> from the archive.",
        "since": "5.0",
        "returns": "The value that was read."
      },
      {
        "signature": "System.SByte[] ReadSByteArray()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Reads an array of <b>sbyte</b> from the archive.  \nAn array is returned even if the input was another enumerable type.",
        "since": "5.0",
        "returns": "The array that was read."
      },
      {
        "signature": "System.Int16 ReadShort()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Reads a <b>short</b> from the archive.",
        "since": "5.0",
        "returns": "The value that was read."
      },
      {
        "signature": "System.Int16[] ReadShortArray()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Reads an array of <b>short</b> from the archive.  \nAn array is returned even if the input was another enumerable type.",
        "since": "5.0",
        "returns": "The array that was read."
      },
      {
        "signature": "System.Single ReadSingle()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Reads a <b>float</b> from the archive.",
        "since": "5.0",
        "returns": "The value that was read."
      },
      {
        "signature": "System.Single[] ReadSingleArray()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Reads an array of <b>float</b> from the archive.  \nAn array is returned even if the input was another enumerable type.",
        "since": "5.0",
        "returns": "The array that was read."
      },
      {
        "signature": "System.Drawing.Size ReadSize()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Reads a <b>System.Drawing.Size</b> from the archive.",
        "since": "5.0",
        "returns": "The element that was read."
      },
      {
        "signature": "System.Drawing.SizeF ReadSizeF()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Reads a <b>System.Drawing.SizeF</b> from the archive.",
        "since": "5.0",
        "returns": "The element that was read."
      },
      {
        "signature": "System.String ReadString()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Reads a <b>string</b> from the archive.",
        "since": "5.0",
        "returns": "The value that was read."
      },
      {
        "signature": "System.String[] ReadStringArray()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Reads an array of <b>string</b> from the archive.  \nAn array is returned even if the input was another enumerable type.",
        "since": "5.0",
        "returns": "The array that was read."
      },
      {
        "signature": "Geometry.Transform ReadTransform()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Reads a <b>Rhino.Geometry.Transform</b> from the archive.",
        "since": "5.0",
        "returns": "The element that was read."
      },
      {
        "signature": "System.UInt32 ReadUInt()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Reads a <b>uint</b> from the archive.",
        "since": "5.0",
        "returns": "The value that was read."
      },
      {
        "signature": "System.UInt16 ReadUShort()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Reads a <b>ushort</b> from the archive.",
        "since": "5.0",
        "returns": "The value that was read."
      },
      {
        "signature": "System.String ReadUtf8String()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Reads a <b>string</b> from the archive.",
        "since": "6.0",
        "returns": "The value that was read."
      },
      {
        "signature": "Geometry.Vector2d ReadVector2d()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Reads a <b>Rhino.Geometry.Vector2d</b> from the archive.",
        "since": "5.0",
        "returns": "The element that was read."
      },
      {
        "signature": "Geometry.Vector3d ReadVector3d()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Reads a <b>Rhino.Geometry.Vector3d</b> from the archive.",
        "since": "5.0",
        "returns": "The element that was read."
      },
      {
        "signature": "Geometry.Vector3f ReadVector3f()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Reads a <b>Rhino.Geometry.Vector3f</b> from the archive.",
        "since": "5.0",
        "returns": "The element that was read."
      },
      {
        "signature": "System.Boolean SeekFromCurrentPosition(System.Int64 byteOffset)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "seek from current position ( like fseek( ,SEEK_CUR) )"
      },
      {
        "signature": "System.Boolean SeekFromCurrentPosition(System.UInt64 byteOffset, System.Boolean forward)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "seek from current position ( like fseek( ,SEEK_CUR) )",
        "parameters": [
          {
            "name": "byteOffset",
            "type": "System.UInt64",
            "summary": ""
          },
          {
            "name": "forward",
            "type": "System.Boolean",
            "summary": "seek forward of backward in the archive"
          }
        ]
      },
      {
        "signature": "System.Boolean SeekFromStart(System.UInt64 byteOffset)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "seek from start position ( like fseek( ,SEEK_SET) )"
      }
    ]
  },
  {
    "namespace": "Rhino.FileIO",
    "name": "BinaryArchiveWriter",
    "dataType": "class",
    "summary": "Represents an entity that is able to write data to an archive.",
    "properties": [
      {
        "signature": "int Archive3dmVersion",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "If a 3dm archive is being read or written, then this is the version of the 3dm archive format (1, 2, 3, 4 or 5). 0     a 3dm archive is not being read/written 1     a version 1 3dm archive is being read/written 2     a version 2 3dm archive is being read/written 3     a version 3 3dm archive is being read/written 4     a version 4 3dm archive is being read/written 5     an old version 5 3dm archive is being read 50    a version 5 3dm archive is being read/written.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "bool WriteErrorOccured",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets whether an error occurred.",
        "since": "5.0",
        "property": ["get", "set"]
      }
    ],
    "methods": [
      {
        "signature": "System.Boolean BeginWrite3dmChunk(System.UInt32 typecode, System.Int32 majorVersion, System.Int32 minorVersion)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Begins writing a chunk",
        "since": "6.0",
        "parameters": [
          {
            "name": "typecode",
            "type": "System.UInt32",
            "summary": "chunk's typecode"
          },
          {
            "name": "majorVersion",
            "type": "System.Int32",
            "summary": ""
          },
          {
            "name": "minorVersion",
            "type": "System.Int32",
            "summary": ""
          }
        ],
        "returns": "True if input was valid and chunk was started.  In this case you must call EndWrite3dmChunk(), even if something goes wrong while you attempt to write the contents of the chunk. False if input was not valid or the write failed."
      },
      {
        "signature": "System.Boolean BeginWrite3dmChunk(System.UInt32 typecode, System.Int64 value)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Begins writing a chunk"
      },
      {
        "signature": "System.Boolean EnableCRCCalculation(System.Boolean enable)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Expert user function to control CRC calculation while reading and writing. Typically this is used when seeking around and reading/writing information in non-serial order.",
        "since": "6.0",
        "returns": "Current state of CRC calculation.  Use the returned value to restore the CRC calculation setting after you are finished doing your fancy pants expert IO."
      },
      {
        "signature": "System.Boolean EndWrite3dmChunk()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "updates length in chunk header",
        "since": "6.0"
      },
      {
        "signature": "System.Void Write3dmChunkVersion(System.Int32 major, System.Int32 minor)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "A chunk version is a single byte that encodes a major.minor version number.  Useful when creating I/O code for 3dm chunks that may change in the future.  Increment the minor version number if new information is added to the end of the chunk. Increment the major version if the format of the chunk changes in some other way.",
        "since": "5.0",
        "parameters": [
          {
            "name": "major",
            "type": "System.Int32",
            "summary": "0 to 15."
          },
          {
            "name": "minor",
            "type": "System.Int32",
            "summary": "0 to 16."
          }
        ],
        "returns": "True on successful read."
      },
      {
        "signature": "System.Void WriteBool(System.Boolean value)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Writes a <b>bool</b> value to the archive.",
        "since": "5.0",
        "parameters": [
          {
            "name": "value",
            "type": "System.Boolean",
            "summary": "A value to write."
          }
        ]
      },
      {
        "signature": "System.Void WriteBoolArray(IEnumerable<bool> value)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Writes a list, an array, or any enumerable of <b>bool</b> to the archive.  \nThe return will always be an array.",
        "since": "5.0",
        "parameters": [
          {
            "name": "value",
            "type": "IEnumerable<bool>",
            "summary": "A value to write."
          }
        ]
      },
      {
        "signature": "System.Void WriteBoundingBox(Geometry.BoundingBox value)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Writes a <b>Rhino.Geometry.BoundingBox</b> value to the archive.",
        "since": "5.0",
        "parameters": [
          {
            "name": "value",
            "type": "Geometry.BoundingBox",
            "summary": "A value to write."
          }
        ]
      },
      {
        "signature": "System.Void WriteByte(System.Byte value)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Writes a <b>byte</b> value to the archive.",
        "since": "5.0",
        "parameters": [
          {
            "name": "value",
            "type": "System.Byte",
            "summary": "A value to write."
          }
        ]
      },
      {
        "signature": "System.Void WriteByteArray(IEnumerable<byte> value)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Writes a list, an array, or any enumerable of <b>byte</b> to the archive.  \nThe return will always be an array.",
        "since": "5.0",
        "parameters": [
          {
            "name": "value",
            "type": "IEnumerable<byte>",
            "summary": "A value to write."
          }
        ]
      },
      {
        "signature": "System.Void WriteColor(System.Drawing.Color value)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Writes a <b>System.Drawing.Color</b> value to the archive.",
        "since": "5.0",
        "parameters": [
          {
            "name": "value",
            "type": "System.Drawing.Color",
            "summary": "A value to write."
          }
        ]
      },
      {
        "signature": "System.Void WriteCompressedBuffer(IEnumerable<byte> value)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Writes a list, an array, or any enumerable of <b>byte</b> to the archive as a compressed buffer.  \nThe return will always be an array.",
        "since": "5.9",
        "parameters": [
          {
            "name": "value",
            "type": "IEnumerable<byte>",
            "summary": "A value to write."
          }
        ]
      },
      {
        "signature": "System.Void WriteDictionary(Collections.ArchivableDictionary dictionary)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Delivers the complete content of a dictionary to the archive.",
        "since": "5.0",
        "parameters": [
          {
            "name": "dictionary",
            "type": "Collections.ArchivableDictionary",
            "summary": "A dictionary to archive."
          }
        ]
      },
      {
        "signature": "System.Void WriteDouble(System.Double value)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Writes a <b>double</b> value to the archive.",
        "since": "5.0",
        "parameters": [
          {
            "name": "value",
            "type": "System.Double",
            "summary": "A value to write."
          }
        ]
      },
      {
        "signature": "System.Void WriteDoubleArray(IEnumerable<double> value)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Writes a list, an array, or any enumerable of <b>double</b> to the archive.  \nThe return will always be an array.",
        "since": "5.0",
        "parameters": [
          {
            "name": "value",
            "type": "IEnumerable<double>",
            "summary": "A value to write."
          }
        ]
      },
      {
        "signature": "System.Void WriteEmptyCheckSum()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Reads a legacy ON_CheckSum, only provided to read data chunks from old V5 files, the CheckSum read is discarded",
        "since": "6.0",
        "deprecated": "6.0",
        "obsolete": "This is only present to allow writing of old, empty ON_CheckSum data"
      },
      {
        "signature": "System.Void WriteFont(System.Drawing.Font value)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Writes a <b>System.Drawing.Font</b> value to the archive.",
        "since": "5.0",
        "parameters": [
          {
            "name": "value",
            "type": "System.Drawing.Font",
            "summary": "A value to write."
          }
        ]
      },
      {
        "signature": "System.Void WriteGeometry(Geometry.GeometryBase value)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Writes a <b>Rhino.Geometry.GeometryBase</b> value to the archive.",
        "since": "5.0",
        "parameters": [
          {
            "name": "value",
            "type": "Geometry.GeometryBase",
            "summary": "A value to write."
          }
        ]
      },
      {
        "signature": "System.Void WriteGeometryArray(IEnumerable<GeometryBase> geometry)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "7.0"
      },
      {
        "signature": "System.Void WriteGuid(System.Guid value)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Writes a <b>Guid</b> value to the archive.",
        "since": "5.0",
        "parameters": [
          {
            "name": "value",
            "type": "System.Guid",
            "summary": "A value to write."
          }
        ]
      },
      {
        "signature": "System.Void WriteGuidArray(IEnumerable<Guid> value)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Writes a list, an array, or any enumerable of <b>Guid</b> to the archive.  \nThe return will always be an array.",
        "since": "5.0",
        "parameters": [
          {
            "name": "value",
            "type": "IEnumerable<Guid>",
            "summary": "A value to write."
          }
        ]
      },
      {
        "signature": "System.Void WriteInt(System.Int32 value)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Writes a <b>int</b> value to the archive.",
        "since": "5.0",
        "parameters": [
          {
            "name": "value",
            "type": "System.Int32",
            "summary": "A value to write."
          }
        ]
      },
      {
        "signature": "System.Void WriteInt64(System.Int64 value)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Writes a <b>Int64</b> value to the archive.",
        "since": "5.0",
        "parameters": [
          {
            "name": "value",
            "type": "System.Int64",
            "summary": "A value to write."
          }
        ]
      },
      {
        "signature": "System.Void WriteIntArray(IEnumerable<int> value)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Writes a list, an array, or any enumerable of <b>int</b> to the archive.  \nThe return will always be an array.",
        "since": "5.0",
        "parameters": [
          {
            "name": "value",
            "type": "IEnumerable<int>",
            "summary": "A value to write."
          }
        ]
      },
      {
        "signature": "System.Void WriteInterval(Geometry.Interval value)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Writes a <b>Rhino.Geometry.Interval</b> value to the archive.",
        "since": "5.0",
        "parameters": [
          {
            "name": "value",
            "type": "Geometry.Interval",
            "summary": "A value to write."
          }
        ]
      },
      {
        "signature": "System.Void WriteLine(Geometry.Line value)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Writes a <b>Rhino.Geometry.Line</b> value to the archive.",
        "since": "5.0",
        "parameters": [
          {
            "name": "value",
            "type": "Geometry.Line",
            "summary": "A value to write."
          }
        ]
      },
      {
        "signature": "System.Void WriteMeshingParameters(Geometry.MeshingParameters value)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Writes a <b>Rhino.Geometry.MeshingParameters</b> value to the archive.",
        "since": "5.0",
        "parameters": [
          {
            "name": "value",
            "type": "Geometry.MeshingParameters",
            "summary": "A value to write."
          }
        ]
      },
      {
        "signature": "System.Void WriteObjRef(DocObjects.ObjRef objref)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Writes a <b>Rhino.DocObjects.ObjRef</b> to the archive",
        "since": "5.8",
        "returns": "the element that was read"
      },
      {
        "signature": "System.Void WriteObjRefArray(IEnumerable<ObjRef> objrefs)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Writes a list, an array, or any enumerable of <b>Rhino.DocObjects.ObjRef</b> to the archive.  \nThe return will always be an array.",
        "since": "5.8",
        "parameters": [
          {
            "name": "objrefs",
            "type": "IEnumerable<DocObjects.ObjRef>",
            "summary": "A value to write."
          }
        ]
      },
      {
        "signature": "System.Void WritePlane(Geometry.Plane value)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Writes a <b>Rhino.Geometry.Plane</b> value to the archive.",
        "since": "5.0",
        "parameters": [
          {
            "name": "value",
            "type": "Geometry.Plane",
            "summary": "A value to write."
          }
        ]
      },
      {
        "signature": "System.Void WritePoint(System.Drawing.Point value)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Writes a <b>System.Drawing.Point</b> value to the archive.",
        "since": "5.0",
        "parameters": [
          {
            "name": "value",
            "type": "System.Drawing.Point",
            "summary": "A value to write."
          }
        ]
      },
      {
        "signature": "System.Void WritePoint2d(Geometry.Point2d value)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Writes a <b>Rhino.Geometry.Point2d</b> value to the archive.",
        "since": "5.0",
        "parameters": [
          {
            "name": "value",
            "type": "Geometry.Point2d",
            "summary": "A value to write."
          }
        ]
      },
      {
        "signature": "System.Void WritePoint3d(Geometry.Point3d value)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Writes a <b>Rhino.Geometry.Point3d</b> value to the archive.",
        "since": "5.0",
        "parameters": [
          {
            "name": "value",
            "type": "Geometry.Point3d",
            "summary": "A value to write."
          }
        ]
      },
      {
        "signature": "System.Void WritePoint3f(Geometry.Point3f value)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Writes a <b>Rhino.Geometry.Point3f</b> value to the archive.",
        "since": "5.0",
        "parameters": [
          {
            "name": "value",
            "type": "Geometry.Point3f",
            "summary": "A value to write."
          }
        ]
      },
      {
        "signature": "System.Void WritePoint4d(Geometry.Point4d value)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Writes a <b>Rhino.Geometry.Point4d</b> value to the archive.",
        "since": "5.0",
        "parameters": [
          {
            "name": "value",
            "type": "Geometry.Point4d",
            "summary": "A value to write."
          }
        ]
      },
      {
        "signature": "System.Void WritePointF(System.Drawing.PointF value)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Writes a <b>System.Drawing.PointF</b> value to the archive.",
        "since": "5.0",
        "parameters": [
          {
            "name": "value",
            "type": "System.Drawing.PointF",
            "summary": "A value to write."
          }
        ]
      },
      {
        "signature": "System.Void WriteRay3d(Geometry.Ray3d value)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Writes a <b>Rhino.Geometry.Ray3d</b> value to the archive.",
        "since": "5.0",
        "parameters": [
          {
            "name": "value",
            "type": "Geometry.Ray3d",
            "summary": "A value to write."
          }
        ]
      },
      {
        "signature": "System.Void WriteRectangle(System.Drawing.Rectangle value)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Writes a <b>System.Drawing.Rectangle</b> value to the archive.",
        "since": "5.0",
        "parameters": [
          {
            "name": "value",
            "type": "System.Drawing.Rectangle",
            "summary": "A value to write."
          }
        ]
      },
      {
        "signature": "System.Void WriteRectangleF(System.Drawing.RectangleF value)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Writes a <b>System.Drawing.RectangleF</b> value to the archive.",
        "since": "5.0",
        "parameters": [
          {
            "name": "value",
            "type": "System.Drawing.RectangleF",
            "summary": "A value to write."
          }
        ]
      },
      {
        "signature": "System.Void WriteRenderSettings(RenderSettings value)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Writes a <b>Rhino.Render.RenderSettings</b> value to the archive.",
        "since": "6.0",
        "parameters": [
          {
            "name": "value",
            "type": "RenderSettings",
            "summary": "A value to write."
          }
        ]
      },
      {
        "signature": "System.Void WriteSByte(System.SByte value)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Writes a <b>sbyte</b> value to the archive.",
        "since": "5.0",
        "parameters": [
          {
            "name": "value",
            "type": "System.SByte",
            "summary": "A value to write."
          }
        ]
      },
      {
        "signature": "System.Void WriteSByteArray(IEnumerable<sbyte> value)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Writes a list, an array, or any enumerable of <b>sbyte</b> to the archive.  \nThe return will always be an array.",
        "since": "5.0",
        "parameters": [
          {
            "name": "value",
            "type": "IEnumerable<sbyte>",
            "summary": "A value to write."
          }
        ]
      },
      {
        "signature": "System.Void WriteShort(System.Int16 value)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Writes a <b>short</b> value to the archive.",
        "since": "5.0",
        "parameters": [
          {
            "name": "value",
            "type": "System.Int16",
            "summary": "A value to write."
          }
        ]
      },
      {
        "signature": "System.Void WriteShortArray(IEnumerable<short> value)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Writes a list, an array, or any enumerable of <b>short</b> to the archive.  \nThe return will always be an array.",
        "since": "5.0",
        "parameters": [
          {
            "name": "value",
            "type": "IEnumerable<short>",
            "summary": "A value to write."
          }
        ]
      },
      {
        "signature": "System.Void WriteSingle(System.Single value)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Writes a <b>float</b> value to the archive.",
        "since": "5.0",
        "parameters": [
          {
            "name": "value",
            "type": "System.Single",
            "summary": "A value to write."
          }
        ]
      },
      {
        "signature": "System.Void WriteSingleArray(IEnumerable<float> value)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Writes a list, an array, or any enumerable of <b>float</b> to the archive.  \nThe return will always be an array.",
        "since": "5.0",
        "parameters": [
          {
            "name": "value",
            "type": "IEnumerable<float>",
            "summary": "A value to write."
          }
        ]
      },
      {
        "signature": "System.Void WriteSize(System.Drawing.Size value)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Writes a <b>System.Drawing.Size</b> value to the archive.",
        "since": "5.0",
        "parameters": [
          {
            "name": "value",
            "type": "System.Drawing.Size",
            "summary": "A value to write."
          }
        ]
      },
      {
        "signature": "System.Void WriteSizeF(System.Drawing.SizeF value)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Writes a <b>System.Drawing.SizeF</b> value to the archive.",
        "since": "5.0",
        "parameters": [
          {
            "name": "value",
            "type": "System.Drawing.SizeF",
            "summary": "A value to write."
          }
        ]
      },
      {
        "signature": "System.Void WriteString(System.String value)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Writes a <b>string</b> value to the archive.",
        "since": "5.0",
        "parameters": [
          {
            "name": "value",
            "type": "System.String",
            "summary": "A value to write."
          }
        ]
      },
      {
        "signature": "System.Void WriteStringArray(IEnumerable<string> value)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Writes a list, an array, or any enumerable of <b>string</b> to the archive.  \nThe return will always be an array.",
        "since": "5.0",
        "parameters": [
          {
            "name": "value",
            "type": "IEnumerable<string>",
            "summary": "A value to write."
          }
        ]
      },
      {
        "signature": "System.Void WriteTransform(Geometry.Transform value)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Writes a <b>Rhino.Geometry.Transform</b> value to the archive.",
        "since": "5.0",
        "parameters": [
          {
            "name": "value",
            "type": "Geometry.Transform",
            "summary": "A value to write."
          }
        ]
      },
      {
        "signature": "System.Void WriteUInt(System.UInt32 value)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Writes a <b>uint</b> value to the archive.",
        "since": "5.0",
        "parameters": [
          {
            "name": "value",
            "type": "System.UInt32",
            "summary": "A value to write."
          }
        ]
      },
      {
        "signature": "System.Void WriteUShort(System.UInt16 value)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Writes a <b>ushort</b> value to the archive.",
        "since": "5.0",
        "parameters": [
          {
            "name": "value",
            "type": "System.UInt16",
            "summary": "A value to write."
          }
        ]
      },
      {
        "signature": "System.Void WriteUtf8String(System.String value)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Writes a <b>string</b> value to the archive.",
        "since": "6.0",
        "parameters": [
          {
            "name": "value",
            "type": "System.String",
            "summary": "A value to write."
          }
        ]
      },
      {
        "signature": "System.Void WriteVector2d(Geometry.Vector2d value)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Writes a <b>Rhino.Geometry.Vector2d</b> value to the archive.",
        "since": "5.0",
        "parameters": [
          {
            "name": "value",
            "type": "Geometry.Vector2d",
            "summary": "A value to write."
          }
        ]
      },
      {
        "signature": "System.Void WriteVector3d(Geometry.Vector3d value)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Writes a <b>Rhino.Geometry.Vector3d</b> value to the archive.",
        "since": "5.0",
        "parameters": [
          {
            "name": "value",
            "type": "Geometry.Vector3d",
            "summary": "A value to write."
          }
        ]
      },
      {
        "signature": "System.Void WriteVector3f(Geometry.Vector3f value)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Writes a <b>Rhino.Geometry.Vector3f</b> value to the archive.",
        "since": "5.0",
        "parameters": [
          {
            "name": "value",
            "type": "Geometry.Vector3f",
            "summary": "A value to write."
          }
        ]
      }
    ]
  },
  {
    "namespace": "Rhino.FileIO",
    "name": "CommonComponentTable<T>",
    "dataType": "class",
    "summary": "Provides a base table type that encompasses all document tables, both in RhinoDoc and File3dm.",
    "interfaces": ["ICommonComponentTable<T>", "IList<T>", "IReadOnlyList<T>"],
    "properties": [
      {
        "signature": "ModelComponentType ComponentType",
        "modifiers": ["public", "abstract"],
        "protected": false,
        "virtual": false,
        "summary": "Returns the actual component type of a table.",
        "property": ["get"]
      },
      {
        "signature": "int Count",
        "modifiers": ["public", "virtual"],
        "protected": false,
        "virtual": true,
        "summary": "Returns the count of all items, including deleted ones.",
        "property": ["get"]
      }
    ],
    "methods": [
      {
        "signature": "System.Void Clear()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Marks all items as deleted."
      },
      {
        "signature": "System.Boolean Delete(T item)",
        "modifiers": ["public", "abstract"],
        "protected": false,
        "virtual": false,
        "summary": "Deletes an item. Items that are deleted are still keeping their space, but the 'IsDeleted' flag is checked.",
        "parameters": [
          {
            "name": "item",
            "type": "T",
            "summary": "An item to delete."
          }
        ],
        "returns": "True if an items could be deleted (e.g., it was not locked)."
      },
      {
        "signature": "T FindId(System.Guid id)",
        "modifiers": ["public", "virtual"],
        "protected": false,
        "virtual": true,
        "summary": "Uses the guid to find a model component. Deleted objects cannot be found by id. The guid is the value that is stored in the .Id property. In a single document, no two active objects have the same guid. If an object is replaced with a new object, then the guid  persists. For example, if the _Move command moves an object, then the moved object inherits its guid from the starting object. If the Copy command copies an object, then the copy gets a new guid. This guid persists through file saving/opening operations. This function will not find grip objects.",
        "parameters": [
          {
            "name": "id",
            "type": "System.Guid",
            "summary": "ID of model component to search for."
          }
        ],
        "returns": "Reference to the rhino object with the objectId or None if no such object could be found."
      },
      {
        "signature": "IEnumerator<T> GetEnumerator()",
        "modifiers": ["public", "virtual"],
        "protected": false,
        "virtual": true,
        "summary": "Returns the enumerator that yields all items."
      }
    ]
  },
  {
    "namespace": "Rhino.FileIO",
    "name": "ContentHash",
    "dataType": "class",
    "summary": "Contains information that is useful to uniquely identify an object. This object is immutable.",
    "remarks": "This object is immutable.",
    "interfaces": ["ICloneable", "IEquatable<ContentHash>"],
    "constructors": [
      {
        "signature": "ContentHash(ContentHash other)",
        "modifiers": ["protected"],
        "protected": true,
        "virtual": false,
        "summary": "Constructs a copy of a content hash.",
        "parameters": [
          {
            "name": "other",
            "type": "ContentHash",
            "summary": "The other content hash to copy."
          }
        ]
      }
    ],
    "properties": [
      {
        "signature": "ulong ByteCount",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the length of the content, in bytes.",
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "DateTime HashTime",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the hash time, rounded to seconds.",
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "byte[] Sha1ContentHash",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the 20-bytes long SHA1 hash of the content.",
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "byte[] Sha1NameHash",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the 20-bytes long SHA1 hash of the name.",
        "since": "6.0",
        "property": ["get"]
      }
    ],
    "methods": [
      {
        "signature": "ContentHash CreateFromFile(System.String path)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Creates a new ContentHash, representing the content of a file.",
        "since": "6.0",
        "parameters": [
          {
            "name": "path",
            "type": "System.String",
            "summary": "A path. This can be None and can refer to a non-existing path."
          }
        ]
      },
      {
        "signature": "ContentHash Clone()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Creates a copy of this content hash. Because content hash is immutable, this can be used as a deep copy.",
        "since": "6.0",
        "returns": "A different instance of the same content hash."
      },
      {
        "signature": "System.Boolean Equals(ContentHash other)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Determines if another content hash has the same value.",
        "since": "6.0",
        "parameters": [
          {
            "name": "other",
            "type": "ContentHash",
            "summary": "The other content hash to compare."
          }
        ],
        "returns": "True if the two hashes are equal."
      },
      {
        "signature": "System.Boolean Equals(System.Object obj)",
        "modifiers": ["public", "override"],
        "protected": false,
        "virtual": false,
        "summary": "Determines if another object is a content hash with same value.",
        "parameters": [
          {
            "name": "obj",
            "type": "System.Object",
            "summary": "The other content hash to compare."
          }
        ],
        "returns": "True if the two hashes are equal."
      },
      {
        "signature": "System.Int32 GetHashCode()",
        "modifiers": ["public", "override"],
        "protected": false,
        "virtual": false,
        "summary": "Gets an hash code for this content hash. Two equal content hashes have equal hash code. The other way around might not be true.",
        "returns": "An hash code value."
      }
    ],
    "operators": [
      {
        "signature": "bool operator !=(ContentHash left, ContentHash right)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Determines if two ContentHash instances are different by value.",
        "since": "6.0",
        "parameters": [
          {
            "name": "left",
            "type": "ContentHash",
            "summary": "The first hash."
          },
          {
            "name": "right",
            "type": "ContentHash",
            "summary": "The second hash."
          }
        ]
      },
      {
        "signature": "bool operator ==(ContentHash left, ContentHash right)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Determines if two ContentHash instances are equal by value.",
        "since": "6.0",
        "parameters": [
          {
            "name": "left",
            "type": "ContentHash",
            "summary": "The first hash."
          },
          {
            "name": "right",
            "type": "ContentHash",
            "summary": "The second hash."
          }
        ]
      }
    ]

  },
  {
    "namespace": "Rhino.FileIO",
    "name": "DracoColorFormat",
    "dataType": "enum",
    "summary": "Color format for vertex colors",
    "since": "7.7",
    "values": [
      {
        "signature": "ARGB = 0",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Alpha, Red, Green, Blue order"
      },
      {
        "signature": "RGBA = 1",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Red, Green, Blue, Alpha order"
      }
    ]

  },
  {
    "namespace": "Rhino.FileIO",
    "name": "DracoCompression",
    "dataType": "class",
    "summary": "Google Draco compression for mesh and point cloud data",
    "interfaces": ["IDisposable"],
    "constructors": [
      {
        "signature": "DracoCompression()",
        "summary": "Initializes a new instance of the DracoCompression class"
      }
    ],
    "properties": [
      {
        "signature": "int NormalAttributePosition",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "The attribute position for normals when compressed",
        "since": "7.7",
        "property": ["get"]
      },
      {
        "signature": "int TextureCoordinatesAttributePosition",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "The attribute position for texture coordinates when compressed",
        "since": "7.7",
        "property": ["get"]
      },
      {
        "signature": "int VertexAttributePosition",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "The attribute position for vertices when compressed",
        "since": "7.7",
        "property": ["get"]
      },
      {
        "signature": "int VertexColorAttributePosition",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "The attribute position for vertex colors when compressed",
        "since": "7.7",
        "property": ["get"]
      }
    ],
    "methods": [
      {
        "signature": "DracoCompression Compress(Rhino.Geometry.Mesh mesh, DracoCompressionOptions options)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Compress a mesh",
        "since": "7.0",
        "parameters": [
          {
            "name": "mesh",
            "type": "Rhino.Geometry.Mesh",
            "summary": "mesh to compress"
          },
          {
            "name": "options",
            "type": "DracoCompressionOptions",
            "summary": "options used to determine how the compression will occur"
          }
        ],
        "returns": "instance of class representing the compressed data"
      },
      {
        "signature": "DracoCompression Compress(Rhino.Geometry.Mesh mesh)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Compress a mesh using default compression options.",
        "since": "7.0",
        "parameters": [
          {
            "name": "mesh",
            "type": "Rhino.Geometry.Mesh",
            "summary": "mesh to compress"
          }
        ],
        "returns": "instance of class representing the compressed data"
      },
      {
        "signature": "DracoCompression Compress(Rhino.Geometry.PointCloud pointCloud, DracoCompressionOptions options)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Compress a point cloud",
        "since": "8.0",
        "parameters": [
          {
            "name": "pointCloud",
            "type": "Rhino.Geometry.PointCloud",
            "summary": "point cloud to compress"
          },
          {
            "name": "options",
            "type": "DracoCompressionOptions",
            "summary": "options used to determine how the compression will occur"
          }
        ],
        "returns": "instance of class representing the compressed data"
      },
      {
        "signature": "DracoCompression Compress(Rhino.Geometry.PointCloud pointCloud)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Compress a point cloud",
        "since": "8.0",
        "parameters": [
          {
            "name": "pointCloud",
            "type": "Rhino.Geometry.PointCloud",
            "summary": "point cloud to compress"
          }
        ],
        "returns": "instance of class representing the compressed data"
      },
      {
        "signature": "Rhino.Geometry.GeometryBase DecompressBase64String(System.String encoded)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Decompress base64 encoded version of Draco data into either a mesh or point cloud",
        "since": "7.0",
        "parameters": [
          {
            "name": "encoded",
            "type": "System.String",
            "summary": "compressed Draco data"
          }
        ],
        "returns": "Mesh or point cloud on success. None on failure"
      },
      {
        "signature": "Rhino.Geometry.GeometryBase DecompressByteArray(System.Byte[] bytes)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Decompress data into either a mesh or point cloud.",
        "since": "7.0",
        "parameters": [
          {
            "name": "bytes",
            "type": "System.Byte[]",
            "summary": "compressed Draco data"
          }
        ],
        "returns": "Mesh or point cloud on success. None on failure"
      },
      {
        "signature": "Rhino.Geometry.GeometryBase DecompressFile(System.String path)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Read compressed data from disk and decompress to RhinoCommon geometry",
        "since": "7.0",
        "parameters": [
          {
            "name": "path",
            "type": "System.String",
            "summary": "path to read from"
          }
        ],
        "returns": "Mesh or point cloud on success. None on failure"
      },
      {
        "signature": "System.Void Dispose()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Actively reclaims unmanaged resources that this instance uses.",
        "since": "7.0"
      },
      {
        "signature": "System.String ToBase64String()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Convert byte array of Draco compressed data into a base64 encoded string",
        "since": "7.0"
      },
      {
        "signature": "System.Byte[] ToByteArray()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the Draco compressed data as a byte array",
        "since": "8.0"
      },
      {
        "signature": "System.Boolean Write(System.String path)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Write the compressed data to disk",
        "since": "7.0",
        "parameters": [
          {
            "name": "path",
            "type": "System.String",
            "summary": "path to write to"
          }
        ],
        "returns": "True on success"
      }
    ]
  },
  {
    "namespace": "Rhino.FileIO",
    "name": "DracoCompressionOptions",
    "dataType": "class",
    "summary": "Options for applying Draco compression",
    "constructors": [
      {
        "signature": "DracoCompressionOptions()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Initializes to default options",
        "since": "7.0"
      }
    ],
    "properties": [
      {
        "signature": "int CompressionLevel",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Compression level. 0 if fastest, but least compression. 10 is slowest, but best compression",
        "since": "7.0",
        "property": ["get", "set"]
      },
      {
        "signature": "int NormalQuantizationBits",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Sets the quantization compression options for normal values. The values will be quantized in a box defined by the maximum extent of the values. I.e., the actual precision of this option depends on the scale of the attribute values.",
        "since": "7.0",
        "property": ["get", "set"]
      },
      {
        "signature": "int PositionQuantizationBits",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Sets the quantization compression options for position values. The values will be quantized in a box defined by the maximum extent of the values. I.e., the actual precision of this option depends on the scale of the attribute values.",
        "since": "7.0",
        "property": ["get", "set"]
      },
      {
        "signature": "int TextureCoordintateQuantizationBits",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Sets the quantization compression options for texture coordinate values. The values will be quantized in a box defined by the maximum extent of the values. I.e., the actual precision of this option depends on the scale of the attribute values.",
        "since": "7.0",
        "property": ["get", "set"]
      }
    ],
    "fields": [
      {
        "signature": "public bool IncludeNormals = true",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Include vertex normals in the compressed data."
      },
      {
        "signature": "public bool IncludeTextureCoordinates = true",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Include texture coordinates in the compressed data."
      },
      {
        "signature": "public bool IncludeVertexColors = true",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Include vertex colors in the compressed data."
      },
      {
        "signature": "public DracoColorFormat VertexColorFormat = DracoColorFormat.ARGB",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Color format of vertex colors in compressed data"
      }
    ]

  },
  {
    "namespace": "Rhino.FileIO",
    "name": "File3dm",
    "dataType": "class",
    "summary": "Represents a 3dm file, which is stored using the OpenNURBS file standard.  \nThe 3dm format is the main Rhinoceros storage format.  \nVisit http://www.opennurbs.com/ for more details.",
    "interfaces": ["IDisposable"],
    "constructors": [
      {
        "signature": "File3dm()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Initializes a new instance of a 3dm file.",
        "since": "5.0"
      }
    ],
    "properties": [
      {
        "signature": "File3dmDimStyleTable AllDimStyles",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Dimension Styles in this file.",
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "File3dmGroupTable AllGroups",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Groups in this file.",
        "since": "6.5",
        "property": ["get"]
      },
      {
        "signature": "File3dmHatchPatternTable AllHatchPatterns",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Hatch patterns in this file.",
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "File3dmInstanceDefinitionTable AllInstanceDefinitions",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Instance definitions in this file",
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "File3dmLayerTable AllLayers",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Layers in this file.",
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "File3dmLinetypeTable AllLinetypes",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Linetypes in this file.",
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "File3dmMaterialTable AllMaterials",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Materials in this file.",
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "File3dmNamedConstructionPlanes AllNamedConstructionPlanes",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Named construction planes in this file.",
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "File3dmViewTable AllNamedViews",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Named views in this file.",
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "File3dmViewTable AllViews",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Views that represent the RhinoViews which are displayed when Rhino loads this file.",
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "string ApplicationDetails",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets details for the application that wrote this file.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "string ApplicationName",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the name of the application that wrote this file.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "string ApplicationUrl",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets a URL for the application that wrote this file.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "int ArchiveVersion",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the 3dm file archive version.",
        "since": "7.9",
        "property": ["get"]
      },
      {
        "signature": "DateTime Created",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Get the DateTime that this file was originally created. If the value is not set in the 3dm file, then DateTime.MinValue is returned",
        "since": "5.6",
        "property": ["get"]
      },
      {
        "signature": "string CreatedBy",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets a string that names the user who created the file.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "IList<DimensionStyle> DimStyles",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Dimension Styles in this file.",
        "since": "5.0",
        "obsolete": "Use the new AllDimStyles property",
        "property": ["get"]
      },
      {
        "signature": "EarthAnchorPoint EarthAnchorPoint",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "If set, this is the model's location on the earth.  This information is used when the model is used with GIS information.",
        "since": "8.3",
        "property": ["get", "set"]
      },
      {
        "signature": "File3dmEmbeddedFiles EmbeddedFiles",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "The embedded files in this file.",
        "since": "8.0",
        "property": ["get"]
      },
      {
        "signature": "IList<HatchPattern> HatchPatterns",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Hatch patterns in this file",
        "since": "5.0",
        "obsolete": "Use the new AllHatchPatterns property",
        "property": ["get"]
      },
      {
        "signature": "IList<InstanceDefinitionGeometry> InstanceDefinitions",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Instance definitions in this file.",
        "since": "5.6",
        "obsolete": "Use the new AllInstanceDefinitions property",
        "property": ["get"]
      },
      {
        "signature": "DateTime LastEdited",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Get the DateTime that this file was last edited. If the value is not set in the 3dm file, then DateTime.MinValue is returned",
        "since": "5.6",
        "property": ["get"]
      },
      {
        "signature": "string LastEditedBy",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets a string that names the user who last edited the file.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "IList<Layer> Layers",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Layers in this file.",
        "since": "5.0",
        "obsolete": "Use the new AllLayers property",
        "property": ["get"]
      },
      {
        "signature": "IList<Linetype> Linetypes",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Linetypes in this file.",
        "since": "5.0",
        "obsolete": "Use the new AllLinetypes property",
        "property": ["get"]
      },
      {
        "signature": "ManifestTable Manifest",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Retrieves the manifest with all object descriptions in this file.",
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "IList<Material> Materials",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Materials in this file.",
        "since": "5.0",
        "obsolete": "Use the new AllMaterials property",
        "property": ["get"]
      },
      {
        "signature": "IList<ConstructionPlane> NamedConstructionPlanes",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Named construction planes in this file.",
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "IList<ViewInfo> NamedViews",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Named views in this file.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "File3dmNotes Notes",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the model notes.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "File3dmObjectTable Objects",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets access to the <b>File3dmObjectTable</b> class associated with this file, which contains all objects.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "File3dmPlugInDataTable PlugInData",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Custom plug-in data in this file.  This data is not attached to any geometry or attributes",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "File3dmRenderEnvironments RenderEnvironments",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "The render environments in this file.",
        "since": "8.0",
        "property": ["get"]
      },
      {
        "signature": "File3dmRenderMaterials RenderMaterials",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "The render materials in this file.",
        "since": "8.0",
        "property": ["get"]
      },
      {
        "signature": "File3dmRenderTextures RenderTextures",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "The render textures in this file.",
        "since": "8.0",
        "property": ["get"]
      },
      {
        "signature": "int Revision",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the revision number.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "File3dmSettings Settings",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Settings include tolerance, and unit system, and defaults used for creating views and objects.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "string StartSectionComments",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the start section comments, which are the comments with which the 3dm file begins.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "File3dmStringTable Strings",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Document user strings in this file",
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "IList<ViewInfo> Views",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Views that represent the RhinoViews which are displayed when Rhino loads this file.",
        "since": "5.0",
        "property": ["get"]
      }
    ],
    "methods": [
      {
        "signature": "File3dm FromByteArray(System.Byte[] bytes)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Read a 3dm file from a byte array",
        "since": "7.0",
        "returns": "New File3dm on success, None on error."
      },
      {
        "signature": "File3dm Read(System.String path, TableTypeFilter tableTypeFilterFilter, ObjectTypeFilter objectTypeFilter)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Reads a 3dm file from a specified location.",
        "since": "5.9",
        "parameters": [
          {
            "name": "path",
            "type": "System.String",
            "summary": "The file to read."
          },
          {
            "name": "tableTypeFilterFilter",
            "type": "TableTypeFilter",
            "summary": "If tableTypeFilterFilter is None, then everything in the archive is read. Otherwise tableTypeFilterFilter identifies what tables should be read."
          },
          {
            "name": "objectTypeFilter",
            "type": "ObjectTypeFilter",
            "summary": "If objectTypeFilter is not None, then is a filter made by bitwise or-ing values to select which types of objects will be read from the model object table."
          }
        ],
        "returns": "new File3dm on success, None on error."
      },
      {
        "signature": "File3dm Read(System.String path)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Reads a 3dm file from a specified location.",
        "since": "5.0",
        "parameters": [
          {
            "name": "path",
            "type": "System.String",
            "summary": "The file to read."
          }
        ],
        "returns": "new File3dm on success, None on error."
      },
      {
        "signature": "System.Void ReadApplicationData(System.String path, out System.String applicationName, out System.String applicationUrl, out System.String applicationDetails)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Reads only the application information from an existing 3dm file.",
        "since": "5.0",
        "parameters": [
          {
            "name": "path",
            "type": "System.String",
            "summary": "A location on disk or network."
          },
          {
            "name": "applicationName",
            "type": "System.String",
            "summary": "The application name. This out parameter is assigned during this call."
          },
          {
            "name": "applicationUrl",
            "type": "System.String",
            "summary": "The application URL. This out parameter is assigned during this call."
          },
          {
            "name": "applicationDetails",
            "type": "System.String",
            "summary": "The application details. This out parameter is assigned during this call."
          }
        ]
      },
      {
        "signature": "System.Int32 ReadArchiveVersion(System.String path)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Reads only the archive 3dm version from an existing 3dm file.",
        "since": "5.10",
        "parameters": [
          {
            "name": "path",
            "type": "System.String",
            "summary": "The file from which to read the archive version."
          }
        ],
        "returns": "The 3dm file archive version."
      },
      {
        "signature": "DimensionStyle[] ReadDimensionStyles(System.String path)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Read the dimension styles table out of a 3dm file.",
        "since": "6.0",
        "parameters": [
          {
            "name": "path",
            "type": "System.String",
            "summary": "The location of the file."
          }
        ],
        "returns": "Array of dimension styles on success (empty array if file does not contain dimension styles) None on error"
      },
      {
        "signature": "EarthAnchorPoint ReadEarthAnchorPoint(System.String path)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Reads only the earth anchor point from an existing 3dm file",
        "since": "8.3",
        "parameters": [
          {
            "name": "path",
            "type": "System.String",
            "summary": "A location on disk or network."
          }
        ],
        "returns": "The earth anchor point."
      },
      {
        "signature": "System.String ReadNotes(System.String path)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Reads only the notes from an existing 3dm file.",
        "since": "5.0",
        "parameters": [
          {
            "name": "path",
            "type": "System.String",
            "summary": "The file from which to read the notes."
          }
        ],
        "returns": "The 3dm file notes."
      },
      {
        "signature": "ViewInfo[] ReadPageViews(System.String path)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Reads page view, or layout, information from an existing 3dm file.",
        "since": "9.0",
        "parameters": [
          {
            "name": "path",
            "type": "System.String",
            "summary": "A location on disk or network."
          }
        ],
        "returns": "An array of view information if successful, otherwise an empty array."
      },
      {
        "signature": "System.Drawing.Bitmap ReadPreviewImage(System.String path)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Attempts to read the preview image out of a 3dm file.",
        "since": "5.0",
        "parameters": [
          {
            "name": "path",
            "type": "System.String",
            "summary": "The location of the file."
          }
        ],
        "returns": "A bitmap, or None on failure."
      },
      {
        "signature": "System.Boolean ReadRevisionHistory(System.String path, out System.String createdBy, out System.String lastEditedBy, out System.Int32 revision, out System.DateTime createdOn, out System.DateTime lastEditedOn)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Quickly check a file for it's revision information.  This function does not read the entire file, just what it needs to get revision information out",
        "since": "5.6",
        "parameters": [
          {
            "name": "path",
            "type": "System.String",
            "summary": "path to the 3dm file"
          },
          {
            "name": "createdBy",
            "type": "System.String",
            "summary": "original author of the file"
          },
          {
            "name": "lastEditedBy",
            "type": "System.String",
            "summary": "last person to edit the file"
          },
          {
            "name": "revision",
            "type": "System.Int32",
            "summary": "which revision this file is at"
          },
          {
            "name": "createdOn",
            "type": "System.DateTime",
            "summary": "date file was created (DateTime.MinValue if not set in file)"
          },
          {
            "name": "lastEditedOn",
            "type": "System.DateTime",
            "summary": "date file was last edited (DateTime.MinValue if not set in file)"
          }
        ],
        "returns": "True on success"
      },
      {
        "signature": "File3dm ReadSettings(System.String path)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Reads only the start section, properties, and settings from a 3dm file at a specified location. The rest of the model (objects, layers, and other tables) is not read.",
        "since": "9.0",
        "parameters": [
          {
            "name": "path",
            "type": "System.String",
            "summary": "The file to read."
          }
        ],
        "returns": "new File3dm on success, None on error."
      },
      {
        "signature": "File3dm ReadWithLog(System.String path, out System.String errorLog)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Read a 3dm file from a specified location and log any archive reading errors.",
        "since": "5.0",
        "parameters": [
          {
            "name": "path",
            "type": "System.String",
            "summary": "The file to read."
          },
          {
            "name": "errorLog",
            "type": "System.String",
            "summary": "Any archive reading errors are logged here."
          }
        ],
        "returns": "New File3dm on success, None on error."
      },
      {
        "signature": "File3dm ReadWithLog(System.String path, TableTypeFilter tableTypeFilterFilter, ObjectTypeFilter objectTypeFilter, out System.String errorLog)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Reads a 3dm file from a specified location.",
        "since": "5.9",
        "parameters": [
          {
            "name": "path",
            "type": "System.String",
            "summary": "The file to read."
          },
          {
            "name": "tableTypeFilterFilter",
            "type": "TableTypeFilter",
            "summary": "If tableTypeFilterFilter is None, then everything in the archive is read. Otherwise tableTypeFilterFilter identifies what tables should be read."
          },
          {
            "name": "objectTypeFilter",
            "type": "ObjectTypeFilter",
            "summary": "If objectTypeFilter is not None, then is a filter made by bitwise or-ing values to select which types of objects will be read from the model object table."
          },
          {
            "name": "errorLog",
            "type": "System.String",
            "summary": "Any archive reading errors are logged here."
          }
        ],
        "returns": "new File3dm on success, None on error."
      },
      {
        "signature": "System.Boolean WriteMultipleObjects(System.String path, IEnumerable<GeometryBase> geometry)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Creates a simple 3dm file that contains a multiple geometric objects.",
        "since": "7.0",
        "parameters": [
          {
            "name": "path",
            "type": "System.String",
            "summary": "Path to the 3dm file to create."
          },
          {
            "name": "geometry",
            "type": "IEnumerable<GeometryBase>",
            "summary": "The geometry to be saved in the archive's object table. This is typically some Curves, Surfaces, Breps, Meshs, or SubDs."
          }
        ],
        "returns": "True if successful, False otherwise."
      },
      {
        "signature": "System.Boolean WriteOneObject(System.String path, GeometryBase geometry)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Creates a simple 3dm file that contains a single geometric object.",
        "since": "7.0",
        "parameters": [
          {
            "name": "path",
            "type": "System.String",
            "summary": "Path to the 3dm file to create."
          },
          {
            "name": "geometry",
            "type": "GeometryBase",
            "summary": "The geometry to be saved in the archive's object table. This is typically a Curve, Surface, Brep, Mesh, or SubD."
          }
        ],
        "returns": "True if successful, False otherwise."
      },
      {
        "signature": "System.Int32 Audit(System.Boolean attemptRepair, out System.Int32 repairCount, out System.String errors, out System.Int32[] warnings)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "This function is only kept for forward assembly compatibility.",
        "since": "5.0",
        "deprecated": "6.0",
        "obsolete": "Polish and Audit functionality no longer exist.",
        "parameters": [
          {
            "name": "attemptRepair",
            "type": "System.Boolean",
            "summary": "Ignored."
          },
          {
            "name": "repairCount",
            "type": "System.Int32",
            "summary": "Is set to 0."
          },
          {
            "name": "errors",
            "type": "System.String",
            "summary": "Contains no meaningful error."
          },
          {
            "name": "warnings",
            "type": "System.Int32[]",
            "summary": "Is set to null."
          }
        ],
        "returns": "Returns 0."
      },
      {
        "signature": "System.Void Dispose()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Actively reclaims unmanaged resources that this instance uses.",
        "since": "5.0"
      },
      {
        "signature": "System.Void Dispose(System.Boolean disposing)",
        "modifiers": ["protected", "virtual"],
        "protected": true,
        "virtual": true,
        "summary": "For derived class implementers.  \nThis method is called with argument True when class user calls Dispose(), while with argument False when     the Garbage Collector invokes the finalizer, or Finalize() method.  \nYou must reclaim all used unmanaged resources in both cases, and can use this chance to call Dispose on disposable fields if the argument is true.  \nAlso, you must call the base virtual method within your overriding method.",
        "parameters": [
          {
            "name": "disposing",
            "type": "System.Boolean",
            "summary": "True if the call comes from the Dispose() method; False if it comes from the Garbage Collector finalizer."
          }
        ]
      },
      {
        "signature": "System.String Dump()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Prepares a text dump of the entire model.",
        "since": "5.0",
        "returns": "The text dump."
      },
      {
        "signature": "System.String DumpSummary()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Prepares a text dump of model properties and settings.",
        "since": "5.0",
        "returns": "The text dump."
      },
      {
        "signature": "System.Void DumpToTextLog(TextLog log)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Prepares a text dump of the entire model.",
        "since": "5.1"
      },
      {
        "signature": "System.Drawing.Bitmap GetPreviewImage()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Preview image used for file explorer",
        "since": "6.0"
      },
      {
        "signature": "System.Boolean IsValid(out System.String errors)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "The File3dm object is kept consistent during its creation. Therefore, this function now returns only true.",
        "since": "5.0",
        "deprecated": "6.0",
        "obsolete": "IsValid now returns always true.",
        "parameters": [
          {
            "name": "errors",
            "type": "System.String",
            "summary": "No errors are found."
          }
        ],
        "returns": "True in any case."
      },
      {
        "signature": "System.Boolean IsValid(TextLog errors)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "The File3dm object is kept consistent during its creation. Therefore, this function now returns only true.",
        "since": "5.1",
        "deprecated": "6.0",
        "obsolete": "IsValid now returns always true.",
        "parameters": [
          {
            "name": "errors",
            "type": "TextLog",
            "summary": "No errors are found."
          }
        ],
        "returns": ">True in any case."
      },
      {
        "signature": "System.Void Polish()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "This function is only kept for forward assembly compatibility.",
        "since": "5.0",
        "deprecated": "6.0",
        "obsolete": "Polish and Audit functionality no longer exist."
      },
      {
        "signature": "System.Void SetPreviewImage(System.Drawing.Bitmap image)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Preview image used for file explorer",
        "since": "6.0"
      },
      {
        "signature": "System.Byte[] ToByteArray()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Write to an in-memory byte[]",
        "since": "7.1"
      },
      {
        "signature": "System.Byte[] ToByteArray(File3dmWriteOptions options)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Write to an in-memory byte[]",
        "since": "7.1"
      },
      {
        "signature": "System.Boolean Write(System.String path, File3dmWriteOptions options)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Writes contents of this model to an openNURBS archive. If the model is not valid, then Write will refuse to write it.",
        "since": "5.9",
        "parameters": [
          {
            "name": "path",
            "type": "System.String",
            "summary": "The file name to use for writing."
          },
          {
            "name": "options",
            "type": "File3dmWriteOptions",
            "summary": "An options instance, or None for default."
          }
        ],
        "returns": "True if archive is written with no error. False if errors occur."
      },
      {
        "signature": "System.Boolean Write(System.String path, System.Int32 version)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Writes contents of this model to an openNURBS archive. If the model is not valid, then Write will refuse to write it.",
        "since": "5.0",
        "parameters": [
          {
            "name": "path",
            "type": "System.String",
            "summary": "The file name to use for writing."
          },
          {
            "name": "version",
            "type": "System.Int32",
            "summary": "Version of the openNURBS archive to write.  Must be [2; current version]. Rhino can read its current version, plus earlier file versions except 1. Use latest version when possible.  \nAlternatively, 0 is a placeholder for the last valid version."
          }
        ],
        "returns": "True if archive is written with no error. False if errors occur."
      },
      {
        "signature": "System.Boolean WriteWithLog(System.String path, File3dmWriteOptions options, out System.String errorLog)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Writes contents of this model to an openNURBS archive. If the model is not valid, then Write will refuse to write it.",
        "since": "6.0",
        "parameters": [
          {
            "name": "path",
            "type": "System.String",
            "summary": "The file name to use for writing."
          },
          {
            "name": "options",
            "type": "File3dmWriteOptions",
            "summary": "An options instance, or None for default."
          },
          {
            "name": "errorLog",
            "type": "System.String",
            "summary": "This argument will be filled by out reference."
          }
        ],
        "returns": "True if archive is written with no error. False if errors occur."
      },
      {
        "signature": "System.Boolean WriteWithLog(System.String path, System.Int32 version, out System.String errorLog)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Writes contents of this model to an openNURBS archive. If the model is not valid, then Write will refuse to write it.",
        "since": "5.0",
        "parameters": [
          {
            "name": "path",
            "type": "System.String",
            "summary": "The file name to use for writing."
          },
          {
            "name": "version",
            "type": "System.Int32",
            "summary": "Version of the openNURBS archive to write.  Must be [2; current version]. Rhino can read its current version, plus earlier file versions except 1. Use latest version when possible.  \nAlternatively, 0 is a placeholder for the last valid version."
          },
          {
            "name": "errorLog",
            "type": "System.String",
            "summary": "This argument will be filled by out reference."
          }
        ],
        "returns": "True if archive is written with no error. False if errors occur."
      }
    ]
  },
  {
    "namespace": "Rhino.FileIO",
    "name": "File3dm.ObjectTypeFilter",
    "dataType": "enum",
    "since": "5.9",
    "values": [
      {
        "signature": "None = UnsafeNativeMethods.ObjectTypeFilter.None",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Point = UnsafeNativeMethods.ObjectTypeFilter.Point",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "some type of Point"
      },
      {
        "signature": "Pointset = UnsafeNativeMethods.ObjectTypeFilter.Pointset",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "some type of PointCloud, PointGrid, ..."
      },
      {
        "signature": "Curve = UnsafeNativeMethods.ObjectTypeFilter.Curve",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "some type of Curve like LineCurve, NurbsCurve, etc."
      },
      {
        "signature": "Surface = UnsafeNativeMethods.ObjectTypeFilter.Surface",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "some type of Surface like PlaneSurface, NurbsSurface, etc."
      },
      {
        "signature": "Brep = UnsafeNativeMethods.ObjectTypeFilter.Brep",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "some type of Brep"
      },
      {
        "signature": "Mesh = UnsafeNativeMethods.ObjectTypeFilter.Mesh",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "some type of Mesh"
      },
      {
        "signature": "Annotation = UnsafeNativeMethods.ObjectTypeFilter.Annotation",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "some type of Annotation"
      },
      {
        "signature": "InstanceDefinition = UnsafeNativeMethods.ObjectTypeFilter.InstanceDefinition",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "some type of InstanceDefinition"
      },
      {
        "signature": "InstanceReference = UnsafeNativeMethods.ObjectTypeFilter.InstanceReference",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "some type of InstanceReference"
      },
      {
        "signature": "TextDot = UnsafeNativeMethods.ObjectTypeFilter.TextDot",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "some type of TextDot"
      },
      {
        "signature": "DetailView = UnsafeNativeMethods.ObjectTypeFilter.Detail",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "some type of DetailView"
      },
      {
        "signature": "Hatch = UnsafeNativeMethods.ObjectTypeFilter.Hatch",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "some type of Hatch"
      },
      {
        "signature": "Extrusion = UnsafeNativeMethods.ObjectTypeFilter.Extrusion",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "some type of Extrusion"
      },
      {
        "signature": "Any = UnsafeNativeMethods.ObjectTypeFilter.Any",
        "modifiers": [],
        "protected": false,
        "virtual": false
      }
    ]

  },
  {
    "namespace": "Rhino.FileIO",
    "name": "File3dm.TableTypeFilter",
    "dataType": "enum",
    "since": "5.9",
    "values": [
      {
        "signature": "None = UnsafeNativeMethods.ReadFileTableTypeFilter.None",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "StartSection = UnsafeNativeMethods.ReadFileTableTypeFilter.StartSection",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "The 3dm start section."
      },
      {
        "signature": "Properties = UnsafeNativeMethods.ReadFileTableTypeFilter.PropertiesTable",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Settings = UnsafeNativeMethods.ReadFileTableTypeFilter.SettingsTable",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Bitmap = UnsafeNativeMethods.ReadFileTableTypeFilter.BitmapTable",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "TextureMapping = UnsafeNativeMethods.ReadFileTableTypeFilter.TextureMappingTable",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Material = UnsafeNativeMethods.ReadFileTableTypeFilter.MaterialTable",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Linetype = UnsafeNativeMethods.ReadFileTableTypeFilter.LinetypeTable",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Layer = UnsafeNativeMethods.ReadFileTableTypeFilter.LayerTable",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Group = UnsafeNativeMethods.ReadFileTableTypeFilter.GroupTable",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Font = UnsafeNativeMethods.ReadFileTableTypeFilter.FontTable",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "FutureFont = UnsafeNativeMethods.ReadFileTableTypeFilter.FutureFontTable",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Dimstyle = UnsafeNativeMethods.ReadFileTableTypeFilter.DimstyleTable",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Light = UnsafeNativeMethods.ReadFileTableTypeFilter.LightTable",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Hatchpattern = UnsafeNativeMethods.ReadFileTableTypeFilter.HatchpatternTable",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "SectionStyle = UnsafeNativeMethods.ReadFileTableTypeFilter.SectionStyleTable",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "The section style table (Rhino 9 and later)."
      },
      {
        "signature": "Markup = UnsafeNativeMethods.ReadFileTableTypeFilter.MarkupTable",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "The markup table (Rhino 9 and later)."
      },
      {
        "signature": "PageViewGroup = UnsafeNativeMethods.ReadFileTableTypeFilter.PageviewGroupTable",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "The page view group table (Rhino 9 and later)."
      },
      {
        "signature": "InstanceDefinition = UnsafeNativeMethods.ReadFileTableTypeFilter.InstanceDefinitionTable",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "ObjectTable = UnsafeNativeMethods.ReadFileTableTypeFilter.ObjectTable",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Historyrecord = UnsafeNativeMethods.ReadFileTableTypeFilter.HistoryRecordTable",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "UserTable = UnsafeNativeMethods.ReadFileTableTypeFilter.UserTable",
        "modifiers": [],
        "protected": false,
        "virtual": false
      }
    ]

  },
  {
    "namespace": "Rhino.FileIO",
    "name": "File3dmCommonComponentTable<T>",
    "dataType": "class",
    "summary": "Provides a base table type that is shared among all File3dm tables.",
    "baseclass": "Rhino.FileIO.CommonComponentTable<T>",
    "interfaces": ["ICollection<T>"],
    "methods": [
      {
        "signature": "System.Void Add(T item)",
        "modifiers": ["public", "virtual"],
        "protected": false,
        "virtual": true,
        "summary": "Adds an item.",
        "parameters": [
          {
            "name": "item",
            "type": "T",
            "summary": "The item to add."
          }
        ]
      },
      {
        "signature": "System.Void Delete(System.Int32 index)",
        "modifiers": ["public", "virtual"],
        "protected": false,
        "virtual": true,
        "summary": "Flags a component as deleted.",
        "parameters": [
          {
            "name": "index",
            "type": "System.Int32",
            "summary": "The index of the item to flag."
          }
        ],
        "returns": "True on success."
      },
      {
        "signature": "System.Boolean Delete(T item)",
        "modifiers": ["public", "override"],
        "protected": false,
        "virtual": false,
        "summary": "Flags a component as deleted.",
        "parameters": [
          {
            "name": "item",
            "type": "T",
            "summary": "The item to flag."
          }
        ],
        "returns": "True on success."
      },
      {
        "signature": "System.String Dump()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Prepares a text dump of object table.",
        "returns": "A string containing the dump."
      }
    ]
  },
  {
    "namespace": "Rhino.FileIO",
    "name": "File3dmCurvePiping",
    "dataType": "class",
    "summary": "Represents the curve piping attached to file3dm object attributes.",
    "properties": [
      {
        "signature": "int Accuracy",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Specifies the accuracy of the pipe in the range 0 to 100.",
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "CapTypes CapType",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Specifies the cap type to use.",
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool Faceted",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Specifies whether the pipe is faceted or not.",
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool On",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Specifies whether curve piping is enabled or not.",
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "double Radius",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Specifies the radius of the pipe (minimum value 0.0001).",
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "int Segments",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Specifies the number of segments in the pipe (minimum value 2).",
        "since": "8.0",
        "property": ["get", "set"]
      }
    ]
  },
  {
    "namespace": "Rhino.FileIO",
    "name": "File3dmCurvePiping.CapTypes",
    "dataType": "enum",
    "summary": "Defines how the pipe is capped at the ends.",
    "since": "8.0",
    "values": [
      {
        "signature": "None = 0",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "No capping."
      },
      {
        "signature": "Flat = 1",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "A flat surface will cap the pipe."
      },
      {
        "signature": "Box  = 2",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "A simple construction will cap the pipe."
      },
      {
        "signature": "Dome = 3",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "A meridians-and-parallels hemisphere construction will cap the pipe."
      }
    ]

  },
  {
    "namespace": "Rhino.FileIO",
    "name": "File3dmDimStyleTable",
    "dataType": "class",
    "summary": "Provides access to annotation styles in the 3dm file.",
    "baseclass": "File3dmCommonComponentTable<DimensionStyle>",
    "interfaces": ["IList<DimensionStyle>"],
    "properties": [
      {
        "signature": "ModelComponentType ComponentType",
        "modifiers": ["public", "override"],
        "protected": false,
        "virtual": false,
        "summary": "Returns <b>ModelComponentType.DimStyle</b> .",
        "since": "6.0",
        "property": ["get"]
      }
    ],
    "methods": [
      {
        "signature": "DimensionStyle FindIndex(System.Int32 index)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Retrieves a DimensionStyle object based on Index. This search type of search is discouraged. We are moving towards using only IDs for all tables.",
        "since": "6.0",
        "parameters": [
          {
            "name": "index",
            "type": "System.Int32",
            "summary": "The index to search for."
          }
        ],
        "returns": "A DimensionStyle object, or None if none was found."
      },
      {
        "signature": "DimensionStyle FindName(System.String name)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Finds a DimensionStyle given its name.",
        "since": "6.0",
        "parameters": [
          {
            "name": "name",
            "type": "System.String",
            "summary": "The name of the DimensionStyle to be searched."
          }
        ],
        "returns": "An DimensionStyle, or None on error."
      },
      {
        "signature": "DimensionStyle FindNameHash(NameHash nameHash)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Finds a DimensionStyle given its name hash.",
        "since": "6.0",
        "parameters": [
          {
            "name": "nameHash",
            "type": "NameHash",
            "summary": "The name hash of the DimensionStyle to be searched."
          }
        ],
        "returns": "An DimensionStyle, or None on error."
      }
    ]
  },
  {
    "namespace": "Rhino.FileIO",
    "name": "File3dmDisplacement",
    "dataType": "class",
    "summary": "Represents the displacement attached to file3dm object attributes.",
    "properties": [
      {
        "signature": "double BlackPoint",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Specifies the amount of displacement for the black color in the texture.",
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "int Fairing",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Specifies the number of steps for the fairing process. Fairing straightens rough feature edges.",
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool FairingOn",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Specifies whether or not to perform a fairing step. Fairing straightens rough feature edges.",
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "int FinalMaxFaces",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Specifies how many faces the reduction post process should target.",
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool FinalMaxFacesOn",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Specifies whether to perform a mesh reduction as a post process to simplify the result of displacement.",
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "int InitialQuality",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Specifies how densely the object is initially subdivided. The lower the value, the higher the resolution of the displaced mesh.",
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "int MappingChannel",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Specifies which texture mapping channel is used for the displacement texture.",
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "int MeshMemoryLimit",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Specifies in megabytes how much memory can be allocated for use by the displacement mesh.",
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool On",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Specifies whether the displacement feature is enabled or not.",
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "double PostWeldAngle",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Specifies the maximum angle between face normals of adjacent faces that will get welded together.",
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "double RefineSensitivity",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Specifies how sensitive the divider for contrasts is on the displacement texture. Specify 1 to split all mesh edges on each refine step. Specify 0.99 to make even slight contrasts on the displacement texture cause edges to be split. Specifying 0.01 only splits edges where heavy contrast exists.",
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "int RefineSteps",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Specifies the number of refinement passes",
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "SweepResolutionFormulas SweepResolutionFormula",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Specifies which formula is used to calculate sweep resolution from initial quality.",
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "Guid TextureId",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Specifies which texture is used for computing the displacement amount.",
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "double WhitePoint",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Specifies the amount of displacement for the white color in the texture.",
        "since": "8.0",
        "property": ["get", "set"]
      }
    ],
    "methods": [
      {
        "signature": "System.Boolean AddSubItem(System.Int32 face_index, System.Boolean on, System.Guid texture, System.Int32 mapping_channel, System.Double black_point, System.Double white_point)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Adds a new sub-item to the displacement. face_index is the index of the face on the polysurface/SubD.on is the override for File3dmDisplacement.On.texture is the override for File3dmDisplacement.TextureId.mapping_channel is the override for File3dmDisplacement.MappingChannel.black_point is the override for File3dmDisplacement.BlackPoint.white_point is the override for File3dmDisplacement.WhitePoint.",
        "since": "8.0"
      },
      {
        "signature": "System.Void DeleteAllSubItems()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Deletes all the sub-items from the displacement.",
        "since": "8.0"
      },
      {
        "signature": "System.Void DeleteSubItem(System.Int32 face_index)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Deletes a sub-item by its face index. face_index is the index of the face on the polysurface/SubD.",
        "since": "8.0"
      },
      {
        "signature": "System.Int32[] GetSubItemFaceIndexes()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets all the sub-items on the displacement. Sub-items can exist to override the top-level parameters for polysurface/SubD faces. Sub-items are identified by the face index that they apply to. An array of the face indexes of each sub-item on the displacement.",
        "since": "8.0"
      },
      {
        "signature": "System.Void SetSubItemBlackPoint(System.Int32 face_index, System.Double black_point)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Sets the override for displacement 'black-point'. face_index is the index of the face on the polysurface/SubD.",
        "since": "8.0"
      },
      {
        "signature": "System.Void SetSubItemMappingChannel(System.Int32 face_index, System.Int32 chan)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Sets the override for displacement 'mapping channel'. face_index is the index of the face on the polysurface/SubD.",
        "since": "8.0"
      },
      {
        "signature": "System.Void SetSubItemOn(System.Int32 face_index, System.Boolean on)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Sets the override for displacement 'on'. face_index is the index of the face on the polysurface/SubD.",
        "since": "8.0"
      },
      {
        "signature": "System.Void SetSubItemTexture(System.Int32 face_index, System.Guid texture_id)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Sets the override for displacement 'texture'. face_index is the index of the face on the polysurface/SubD.",
        "since": "8.0"
      },
      {
        "signature": "System.Void SetSubItemWhitePoint(System.Int32 face_index, System.Double white_point)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Sets the override for displacement 'white-point'. face_index is the index of the face on the polysurface/SubD.",
        "since": "8.0"
      },
      {
        "signature": "System.Double SubItemBlackPoint(System.Int32 face_index)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the override for displacement 'black-point'. face_index is the index of the face on the polysurface/SubD.",
        "since": "8.0"
      },
      {
        "signature": "System.Int32 SubItemMappingChannel(System.Int32 face_index)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the override for displacement 'mapping channel'. face_index is the index of the face on the polysurface/SubD.",
        "since": "8.0"
      },
      {
        "signature": "System.Boolean SubItemOn(System.Int32 face_index)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the override for displacement 'on'. face_index is the index of the face on the polysurface/SubD.",
        "since": "8.0"
      },
      {
        "signature": "System.Guid SubItemTexture(System.Int32 face_index)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the override for displacement 'texture'. face_index is the index of the face on the polysurface/SubD.",
        "since": "8.0"
      },
      {
        "signature": "System.Double SubItemWhitePoint(System.Int32 face_index)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the override for displacement 'white-point'. face_index is the index of the face on the polysurface/SubD.",
        "since": "8.0"
      }
    ]
  },
  {
    "namespace": "Rhino.FileIO",
    "name": "File3dmDisplacement.SweepResolutionFormulas",
    "dataType": "enum",
    "summary": "Formula to use to calculate sweep resolution from initial quality.",
    "since": "8.0",
    "values": [
      {
        "signature": "Default = 0",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Default formula."
      },
      {
        "signature": "AbsoluteToleranceDependent = 1",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Formula used in Rhino 5. Dependent on absolute tolerance."
      }
    ]

  },
  {
    "namespace": "Rhino.FileIO",
    "name": "File3dmEdgeSoftening",
    "dataType": "class",
    "summary": "Represents the edge softening attached to file3dm object attributes.",
    "properties": [
      {
        "signature": "bool Chamfer",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Specifies whether to chamfer the edges.",
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "double EdgeAngleThreshold",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Threshold angle (in degrees) which controls whether an edge is softened or not. The angle refers to the angles between the adjacent faces of an edge.",
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool Faceted",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Specifies whether the edges are faceted.",
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool ForceSoftening",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Specifies whether to soften edges despite too large a radius.",
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool On",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Specifies whether edge softening is enabled or not.",
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "double Softening",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "The softening radius.",
        "since": "8.0",
        "property": ["get", "set"]
      }
    ]
  },
  {
    "namespace": "Rhino.FileIO",
    "name": "File3dmEmbeddedFile",
    "dataType": "class",
    "baseclass": "Rhino.DocObjects.ModelComponent",
    "since": "8.0",
    "constructors": [
      {
        "signature": "File3dmEmbeddedFile()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "8.0"
      }
    ],
    "properties": [
      {
        "signature": "ModelComponentType ComponentType",
        "modifiers": ["public", "override"],
        "protected": false,
        "virtual": false,
        "summary": "Returns <b>ModelComponentType.EmbeddedFile</b> .",
        "since": "8.0",
        "property": ["get"]
      },
      {
        "signature": "ulong CompressedLength",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "The number of bytes this file occupies in the archive. Returns zero when the embedded file was not loaded from an archive (e.g. when it was loaded from a local file or buffer).",
        "since": "9.0",
        "property": ["get"]
      },
      {
        "signature": "string Filename",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "the fully-qualified filename of the embedded file. This filename may or may not refer to a local file depending on the way the embedded file was loaded. For example, if it was loaded from an archive, the filename could be that of a file on a different computer.",
        "since": "8.0",
        "property": ["get"]
      }
    ],
    "methods": [
      {
        "signature": "System.Boolean SaveToFile(System.String filename)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Saves the contents of the embedded file to a local file. Returns True if successful, else false.",
        "since": "8.0"
      }
    ]
  },
  {
    "namespace": "Rhino.FileIO",
    "name": "File3dmEmbeddedFiles",
    "dataType": "class",
    "interfaces": ["IEnumerable<File3dmEmbeddedFile>"],
    "constructors": [
      {
        "signature": "File3dmEmbeddedFiles(File3dm f)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "8.0"
      }
    ],
    "methods": [
      {
        "signature": "System.Boolean Add(System.String filename)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Add a new embedded file and load it from a local file.",
        "since": "8.0"
      },
      {
        "signature": "IEnumerator<File3dmEmbeddedFile> GetEnumerator()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "8.0"
      }
    ]
  },
  {
    "namespace": "Rhino.FileIO",
    "name": "File3dmGroupTable",
    "dataType": "class",
    "summary": "Provides access to groups in the 3dm file.",
    "baseclass": "File3dmCommonComponentTable<Group>",
    "interfaces": ["IList<Group>"],
    "properties": [
      {
        "signature": "ModelComponentType ComponentType",
        "modifiers": ["public", "override"],
        "protected": false,
        "virtual": false,
        "summary": "Returns <b>ModelComponentType.Group</b> .",
        "since": "6.5",
        "property": ["get"]
      }
    ],
    "methods": [
      {
        "signature": "System.Int32 AddGroup()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Adds a new empty group to the group table.",
        "since": "8.4",
        "returns": ">=0 index of new group or -1 on error."
      },
      {
        "signature": "Group FindIndex(System.Int32 groupIndex)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Retrieves a Group object based on an index. This search type of search is discouraged. We are moving towards using only IDs for all tables.",
        "since": "6.5",
        "parameters": [
          {
            "name": "groupIndex",
            "type": "System.Int32",
            "summary": "The index to search for."
          }
        ],
        "returns": "A Group object, or None if none was found."
      },
      {
        "signature": "Group FindName(System.String name)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Finds a Group given its name.",
        "since": "6.5",
        "parameters": [
          {
            "name": "name",
            "type": "System.String",
            "summary": "The name of the Group to be searched."
          }
        ],
        "returns": "A Group, or None on error."
      },
      {
        "signature": "Group FindNameHash(NameHash nameHash)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Finds a Group given its name hash.",
        "since": "6.5",
        "parameters": [
          {
            "name": "nameHash",
            "type": "NameHash",
            "summary": "The name hash of the Group to be searched."
          }
        ],
        "returns": "A Group, or None on error."
      },
      {
        "signature": "File3dmObject[] GroupMembers(System.Int32 groupIndex)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets an array of all of the objects in a group.",
        "since": "6.20",
        "parameters": [
          {
            "name": "groupIndex",
            "type": "System.Int32",
            "summary": "The index of the group in this table."
          }
        ],
        "returns": "Array of objects that belong to the specified group or empty array if no objects could be found."
      }
    ]
  },
  {
    "namespace": "Rhino.FileIO",
    "name": "File3dmHatchPatternTable",
    "dataType": "class",
    "summary": "Provides access to hatch pattern definitions in the 3dm file.",
    "baseclass": "File3dmCommonComponentTable<HatchPattern>",
    "interfaces": ["IList<HatchPattern>"],
    "properties": [
      {
        "signature": "ModelComponentType ComponentType",
        "modifiers": ["public", "override"],
        "protected": false,
        "virtual": false,
        "summary": "Returns <b>ModelComponentType.HatchPattern</b> .",
        "since": "6.0",
        "property": ["get"]
      }
    ],
    "methods": [
      {
        "signature": "HatchPattern FindIndex(System.Int32 index)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Retrieves a HatchPattern object based on Index. This search type of search is discouraged. We are moving towards using only IDs for all tables.",
        "since": "6.0",
        "parameters": [
          {
            "name": "index",
            "type": "System.Int32",
            "summary": "The index to search for."
          }
        ],
        "returns": "A HatchPattern object, or None if none was found."
      },
      {
        "signature": "HatchPattern FindName(System.String name)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Finds a HatchPattern given its name.",
        "since": "6.0",
        "parameters": [
          {
            "name": "name",
            "type": "System.String",
            "summary": "The name of the HatchPattern to be searched."
          }
        ],
        "returns": "An HatchPattern, or None on error."
      },
      {
        "signature": "HatchPattern FindNameHash(NameHash nameHash)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Finds a HatchPattern given its name hash.",
        "since": "6.0",
        "parameters": [
          {
            "name": "nameHash",
            "type": "NameHash",
            "summary": "The name hash of the HatchPattern to be searched."
          }
        ],
        "returns": "An HatchPattern, or None on error."
      }
    ]
  },
  {
    "namespace": "Rhino.FileIO",
    "name": "File3dmInstanceDefinitionTable",
    "dataType": "class",
    "summary": "Provides access to instance (block) definitions in the 3dm file.",
    "baseclass": "File3dmCommonComponentTable<InstanceDefinitionGeometry>",
    "interfaces": ["IList<InstanceDefinitionGeometry>"],
    "properties": [
      {
        "signature": "ModelComponentType ComponentType",
        "modifiers": ["public", "override"],
        "protected": false,
        "virtual": false,
        "summary": "Returns <b>ModelComponentType.InstanceDefinition</b> .",
        "since": "6.0",
        "property": ["get"]
      }
    ],
    "methods": [
      {
        "signature": "System.Int32 Add(System.String name, System.String description, Point3d basePoint, GeometryBase geometry, ObjectAttributes attributes)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Adds an instance definition to the instance definition table.",
        "since": "6.5",
        "parameters": [
          {
            "name": "name",
            "type": "System.String",
            "summary": "The definition name."
          },
          {
            "name": "description",
            "type": "System.String",
            "summary": "The definition description."
          },
          {
            "name": "basePoint",
            "type": "Point3d",
            "summary": "A base point."
          },
          {
            "name": "geometry",
            "type": "GeometryBase",
            "summary": "An element."
          },
          {
            "name": "attributes",
            "type": "ObjectAttributes",
            "summary": "An attribute."
          }
        ],
        "returns": ">=0  index of instance definition in the instance definition table. -1 on failure."
      },
      {
        "signature": "System.Int32 Add(System.String name, System.String description, Point3d basePoint, IEnumerable<GeometryBase> geometry, IEnumerable<ObjectAttributes> attributes)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Adds an instance definition to the instance definition table.",
        "since": "6.5",
        "parameters": [
          {
            "name": "name",
            "type": "System.String",
            "summary": "The definition name."
          },
          {
            "name": "description",
            "type": "System.String",
            "summary": "The definition description."
          },
          {
            "name": "basePoint",
            "type": "Point3d",
            "summary": "A base point."
          },
          {
            "name": "geometry",
            "type": "IEnumerable<GeometryBase>",
            "summary": "An array, a list or any enumerable set of geometry."
          },
          {
            "name": "attributes",
            "type": "IEnumerable<ObjectAttributes>",
            "summary": "An array, a list or any enumerable set of attributes."
          }
        ],
        "returns": ">=0  index of instance definition in the instance definition table. -1 on failure."
      },
      {
        "signature": "System.Int32 Add(System.String name, System.String description, Point3d basePoint, IEnumerable<GeometryBase> geometry)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Adds an instance definition to the instance definition table.",
        "since": "6.5",
        "parameters": [
          {
            "name": "name",
            "type": "System.String",
            "summary": "The definition name."
          },
          {
            "name": "description",
            "type": "System.String",
            "summary": "The definition description."
          },
          {
            "name": "basePoint",
            "type": "Point3d",
            "summary": "A base point."
          },
          {
            "name": "geometry",
            "type": "IEnumerable<GeometryBase>",
            "summary": "An array, a list or any enumerable set of geometry."
          }
        ],
        "returns": ">=0  index of instance definition in the instance definition table. -1 on failure."
      },
      {
        "signature": "System.Int32 Add(System.String name, System.String description, System.String url, System.String urlTag, Point3d basePoint, IEnumerable<GeometryBase> geometry, IEnumerable<ObjectAttributes> attributes)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Adds an instance definition to the instance definition table.",
        "since": "7.0",
        "parameters": [
          {
            "name": "name",
            "type": "System.String",
            "summary": "The definition name."
          },
          {
            "name": "description",
            "type": "System.String",
            "summary": "The definition description."
          },
          {
            "name": "url",
            "type": "System.String",
            "summary": "A URL or hyperlink."
          },
          {
            "name": "urlTag",
            "type": "System.String",
            "summary": "A description of the URL or hyperlink."
          },
          {
            "name": "basePoint",
            "type": "Point3d",
            "summary": "A base point."
          },
          {
            "name": "geometry",
            "type": "IEnumerable<GeometryBase>",
            "summary": "An array, a list or any enumerable set of geometry."
          },
          {
            "name": "attributes",
            "type": "IEnumerable<ObjectAttributes>",
            "summary": "An array, a list or any enumerable set of attributes."
          }
        ],
        "returns": ">=0  index of instance definition in the instance definition table. -1 on failure."
      },
      {
        "signature": "System.Int32 AddLinked(System.String filename, System.String name, System.String description)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Adds a linked instance definition to the instance definition table.",
        "since": "6.13",
        "parameters": [
          {
            "name": "filename",
            "type": "System.String",
            "summary": "Full path of the file to link."
          },
          {
            "name": "name",
            "type": "System.String",
            "summary": "The definition name."
          },
          {
            "name": "description",
            "type": "System.String",
            "summary": "The definition description."
          }
        ]
      },
      {
        "signature": "InstanceDefinitionGeometry FindName(System.String name)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Finds an InstanceDefinitionGeometry given its name.",
        "since": "6.0",
        "parameters": [
          {
            "name": "name",
            "type": "System.String",
            "summary": "The name of the InstanceDefinitionGeometry to be searched."
          }
        ],
        "returns": "An InstanceDefinitionGeometry, or None on error."
      },
      {
        "signature": "InstanceDefinitionGeometry FindNameHash(NameHash nameHash)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Finds a InstanceDefinitionGeometry given its name hash.",
        "since": "6.0",
        "parameters": [
          {
            "name": "nameHash",
            "type": "NameHash",
            "summary": "The name hash of the InstanceDefinitionGeometry to be searched."
          }
        ],
        "returns": "An InstanceDefinitionGeometry, or None on error."
      }
    ]
  },
  {
    "namespace": "Rhino.FileIO",
    "name": "File3dmLayerTable",
    "dataType": "class",
    "summary": "Provides access to layers in the 3dm file.",
    "baseclass": "File3dmCommonComponentTable<Layer>",
    "interfaces": ["IList<Layer>"],
    "properties": [
      {
        "signature": "ModelComponentType ComponentType",
        "modifiers": ["public", "override"],
        "protected": false,
        "virtual": false,
        "summary": "Returns <b>ModelComponentType.Layer</b> .",
        "since": "6.0",
        "property": ["get"]
      }
    ],
    "methods": [
      {
        "signature": "System.Int32 AddDefaultLayer(System.String name, System.Drawing.Color color)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Easy way to add a default layer to the model.",
        "since": "7.30",
    "remarks": "Note, the layer name will be modified as needed in the model and manifest.",
        "parameters": [
          {
            "name": "name",
            "type": "System.String",
            "summary": "Layer name."
          },
          {
            "name": "color",
            "type": "System.Drawing.Color",
            "summary": "Layer color."
          }
        ],
        "returns": "The layer's index (>=0) is returned. Otherwise, RhinoMath.UnsetIntIndex is returned."
      },
      {
        "signature": "System.Int32 AddLayer(System.String name, System.Drawing.Color color, System.Guid parentId)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Add a new layer to the model.",
        "since": "7.30",
        "parameters": [
          {
            "name": "name",
            "type": "System.String",
            "summary": "Layer name."
          },
          {
            "name": "color",
            "type": "System.Drawing.Color",
            "summary": "Layer color."
          },
          {
            "name": "parentId",
            "type": "System.Guid",
            "summary": "The id of the parent layer, can be Guid.Empty."
          }
        ],
        "returns": "The layer's index (>=0) is returned. Otherwise, RhinoMath.UnsetIntIndex is returned."
      },
      {
        "signature": "System.Int32 AddLayer(System.String name, System.Drawing.Color color)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Easy way to add a new layer to the model.",
        "since": "7.6",
    "remarks": "Note, the layer name will be modified as needed in the model and manifest.",
        "parameters": [
          {
            "name": "name",
            "type": "System.String",
            "summary": "Layer name."
          },
          {
            "name": "color",
            "type": "System.Drawing.Color",
            "summary": "Layer color."
          }
        ],
        "returns": "The layer's index (>=0) is returned. Otherwise, RhinoMath.UnsetIntIndex is returned."
      },
      {
        "signature": "Layer FindIndex(System.Int32 index)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Retrieves a Layer object based on Index. This search type of search is discouraged. We are moving towards using only IDs for all tables.",
        "since": "6.0",
        "parameters": [
          {
            "name": "index",
            "type": "System.Int32",
            "summary": "The index to search for."
          }
        ],
        "returns": "A Layer object, or None if none was found."
      },
      {
        "signature": "Layer FindName(System.String name, System.Guid parentId)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Finds a Layer given its name.",
        "since": "6.0",
        "parameters": [
          {
            "name": "name",
            "type": "System.String",
            "summary": "The name of the Layer to be searched."
          },
          {
            "name": "parentId",
            "type": "System.Guid",
            "summary": "The id of the parent Layer to be searched."
          }
        ],
        "returns": "A Layer, or None on error."
      },
      {
        "signature": "Layer FindNameHash(NameHash nameHash)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Finds a Layer given its name hash.",
        "since": "6.0",
        "parameters": [
          {
            "name": "nameHash",
            "type": "NameHash",
            "summary": "The name hash of the Layer to be searched."
          }
        ],
        "returns": "An Layer, or None on error."
      }
    ]
  },
  {
    "namespace": "Rhino.FileIO",
    "name": "File3dmLinetypeTable",
    "dataType": "class",
    "summary": "Provides access to Linetypes in the 3dm file.",
    "baseclass": "File3dmCommonComponentTable<Linetype>",
    "interfaces": ["IList<DocObjects.Linetype>"],
    "properties": [
      {
        "signature": "ModelComponentType ComponentType",
        "modifiers": ["public", "override"],
        "protected": false,
        "virtual": false,
        "summary": "Returns <b>ModelComponentType.LinePattern</b> .",
        "since": "6.0",
        "property": ["get"]
      }
    ],
    "methods": [
      {
        "signature": "Linetype FindIndex(System.Int32 index)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Retrieves a Linetype object based on Index. This search type of search is discouraged. We are moving towards using only IDs for all tables.",
        "since": "6.0",
        "parameters": [
          {
            "name": "index",
            "type": "System.Int32",
            "summary": "The index to search for."
          }
        ],
        "returns": "A Linetype, or None if none was found."
      },
      {
        "signature": "Linetype FindName(System.String name)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Finds a Linetype given its name.",
        "since": "6.0",
        "parameters": [
          {
            "name": "name",
            "type": "System.String",
            "summary": "The name of the Linetype to be searched."
          }
        ],
        "returns": "A Linetype, or None on error."
      },
      {
        "signature": "Linetype FindNameHash(NameHash nameHash)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Finds a Linetype given its name hash.",
        "since": "6.0",
        "parameters": [
          {
            "name": "nameHash",
            "type": "NameHash",
            "summary": "The name hash of the Linetype to be searched."
          }
        ],
        "returns": "An Linetype, or None on error."
      }
    ]
  },
  {
    "namespace": "Rhino.FileIO",
    "name": "File3dmMaterialTable",
    "dataType": "class",
    "summary": "Provides access to materials in the 3dm file.",
    "baseclass": "File3dmCommonComponentTable<Material>",
    "interfaces": ["IList<DocObjects.Material>"],
    "properties": [
      {
        "signature": "ModelComponentType ComponentType",
        "modifiers": ["public", "override"],
        "protected": false,
        "virtual": false,
        "summary": "Returns <b>ModelComponentType.RenderMaterial</b> .",
        "since": "6.0",
        "property": ["get"]
      }
    ],
    "methods": [
      {
        "signature": "System.Int32 AddMaterial(DocObjects.Material material)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Adds a material to the model material table",
        "since": "8.4",
        "returns": "The material's index (>=0) is returned. Otherwise, RhinoMath.UnsetIntIndex is returned."
      },
      {
        "signature": "DocObjects.Material FindIndex(System.Int32 index)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Retrieves a material based on Index. This search type of search is discouraged. We are moving towards using only IDs for all tables.",
        "since": "6.0",
        "parameters": [
          {
            "name": "index",
            "type": "System.Int32",
            "summary": "The index to search for."
          }
        ],
        "returns": "A material, or None if none was found."
      }
    ]
  },
  {
    "namespace": "Rhino.FileIO",
    "name": "File3dmMeshModifiers",
    "dataType": "class",
    "summary": "Represents the mesh modifiers attached to file3dm object attributes.",
    "properties": [
      {
        "signature": "File3dmCurvePiping CurvePiping",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns an object that provides access to curve piping information. If no curve piping information is present, the method returns null.",
        "since": "8.0",
        "property": ["get"]
      },
      {
        "signature": "File3dmDisplacement Displacement",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns an object that provides access to displacement information. If no displacement information is present, the method returns null.",
        "since": "8.0",
        "property": ["get"]
      },
      {
        "signature": "File3dmEdgeSoftening EdgeSoftening",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns an object that provides access to edge softening information. If no edge softening information is present, the method returns null.",
        "since": "8.0",
        "property": ["get"]
      },
      {
        "signature": "File3dmShutLining ShutLining",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns an object that provides access to shut-lining information. If no shutlining information is present, the method returns null.",
        "since": "8.0",
        "property": ["get"]
      },
      {
        "signature": "File3dmThickening Thickening",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns an object that provides access to thickening information. If no thickening information is present, the method returns null.",
        "since": "8.0",
        "property": ["get"]
      }
    ]
  },
  {
    "namespace": "Rhino.FileIO",
    "name": "File3dmNamedConstructionPlanes",
    "dataType": "class",
    "summary": "Provides access to named construction planes in the 3dm file.",
    "interfaces": ["IList<ConstructionPlane>", "Collections.IRhinoTable<ConstructionPlane>"],
    "properties": [
      {
        "signature": "int Count",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Number of named construction planes in the table.",
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "ConstructionPlane this[int index]",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the named construction plane at an index."
      }
    ],
    "methods": [
      {
        "signature": "System.Void Add(ConstructionPlane cplane)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Adds a named construction plane to the table.",
        "since": "6.0",
        "parameters": [
          {
            "name": "cplane",
            "type": "ConstructionPlane",
            "summary": "The construction plane to add."
          }
        ]
      },
      {
        "signature": "System.Int32 Add(System.String name, Geometry.Plane plane)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Adds a named construction plane to the table.",
        "since": "6.0",
        "parameters": [
          {
            "name": "name",
            "type": "System.String",
            "summary": "The name of the named construction plane."
          },
          {
            "name": "plane",
            "type": "Geometry.Plane",
            "summary": "The plane value."
          }
        ],
        "returns": "0 based index of the named construction plane. -1 on failure."
      },
      {
        "signature": "System.Void Clear()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Removes all named construction planes from the table.",
        "since": "6.0"
      },
      {
        "signature": "System.Boolean Contains(ConstructionPlane cplane)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns an indication of the presence of a named construction plane in the table.",
        "since": "6.0",
        "parameters": [
          {
            "name": "cplane",
            "type": "ConstructionPlane",
            "summary": "The construction plane to check."
          }
        ],
        "returns": "True if the named construction plane is in the table; False otherwise."
      },
      {
        "signature": "System.Void CopyTo(ConstructionPlane[] array, System.Int32 arrayIndex)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Copies the content of the table to an array.",
        "since": "6.0"
      },
      {
        "signature": "System.Boolean Delete(DocObjects.ConstructionPlane cplane)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Deletes a named construction plane from the table.",
        "since": "6.0",
        "parameters": [
          {
            "name": "cplane",
            "type": "DocObjects.ConstructionPlane",
            "summary": "The construction plane to delete."
          }
        ]
      },
      {
        "signature": "System.Boolean Delete(System.Int32 index)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Remove a named construction plane from the table.",
        "since": "6.0",
        "parameters": [
          {
            "name": "index",
            "type": "System.Int32",
            "summary": "Zero based array index."
          }
        ],
        "returns": "True if successful."
      },
      {
        "signature": "ConstructionPlane FindName(System.String name)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Finds a named construction plane given its name.",
        "since": "6.0",
        "parameters": [
          {
            "name": "name",
            "type": "System.String",
            "summary": "The name of the construction plane to be searched."
          }
        ],
        "returns": "A ConstructionPlane, or None if not found."
      },
      {
        "signature": "IEnumerator<ConstructionPlane> GetEnumerator()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets an enumerator that yields all construction planes in this collection.",
        "since": "6.0",
        "returns": "The enumerator."
      },
      {
        "signature": "System.Int32 IndexOf(ConstructionPlane cplane)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns the index of a named construction plane.",
        "since": "6.0",
        "parameters": [
          {
            "name": "cplane",
            "type": "ConstructionPlane",
            "summary": "The construction plane to be searched."
          }
        ],
        "returns": "The index of the named construction plane, -1 if not found."
      }
    ]
  },
  {
    "namespace": "Rhino.FileIO",
    "name": "File3dmNotes",
    "dataType": "class",
    "summary": "Represents the notes information stored in a 3dm file.",
    "constructors": [
      {
        "signature": "File3dmNotes()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Creates empty default notes",
        "since": "5.0"
      }
    ],
    "properties": [
      {
        "signature": "bool IsHtml",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the text format. If the format is HTML, true; False otherwise.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool IsVisible",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the notes visibility. If the notes are visible, true; False otherwise.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "string Notes",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the text content of the notes.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "Rectangle WindowRectangle",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the position of the Notes when they were saved.",
        "since": "5.0",
        "property": ["get", "set"]
      }
    ]
  },
  {
    "namespace": "Rhino.FileIO",
    "name": "File3dmObject",
    "dataType": "class",
    "summary": "Used to store geometry table object definition and attributes in a File3dm.",
    "baseclass": "Rhino.DocObjects.ModelComponent",
    "interfaces": ["IEquatable<File3dmObject>"],
    "properties": [
      {
        "signature": "ObjectAttributes Attributes",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the attributes that are linked with this document object.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "ModelComponentType ComponentType",
        "modifiers": ["public", "override"],
        "protected": false,
        "virtual": false,
        "summary": "Returns <b>ModelComponentType.ModelGeometry</b> .",
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "GeometryBase Geometry",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the geometry that is linked with this document object.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "string Name",
        "modifiers": ["public", "override"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the Name of the object. Equivalent to this.Attributes.Name.",
        "since": "5.0",
        "property": ["get", "set"]
      }
    ],
    "methods": [
      {
        "signature": "System.Boolean Equals(File3dmObject other)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Verified that two File3dmObject items refer to the same object in a document.",
        "since": "6.0",
        "parameters": [
          {
            "name": "other",
            "type": "File3dmObject",
            "summary": "The other item to test."
          }
        ],
        "returns": "True is the two objects coincide."
      },
      {
        "signature": "System.Boolean Equals(System.Object obj)",
        "modifiers": ["public", "override"],
        "protected": false,
        "virtual": false,
        "summary": "Verified that two objects refer to the same object in a document.",
        "parameters": [
          {
            "name": "obj",
            "type": "System.Object",
            "summary": "The other item to test."
          }
        ],
        "returns": "True is the two objects coincide."
      },
      {
        "signature": "System.Int32 GetHashCode()",
        "modifiers": ["public", "override"],
        "protected": false,
        "virtual": false,
        "summary": "Provides an hash code for this item.",
        "returns": "The hash code."
      },
      {
        "signature": "TextureMapping GetTextureMapping(System.Int32 mappingChannelId, out Transform xform)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the texture mapping from the <b>File3dmObject</b> object.",
        "since": "8.9",
        "parameters": [
          {
            "name": "mappingChannelId",
            "type": "System.Int32",
            "summary": "The mapping channel id to search for."
          },
          {
            "name": "xform",
            "type": "Transform",
            "summary": "The transformation that was applied to the mapping."
          }
        ],
        "returns": "The texture mapping if found, None otherwise."
      },
      {
        "signature": "System.Boolean TryReadUserData(System.Guid userDataId, System.Boolean readFromAttributes, Func<File3dm, BinaryArchiveReader, bool> dataReader)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Attempts to read a Rhino plug-in's custom userdata from the <b>File3dmObject</b> object.",
        "parameters": [
          {
            "name": "userDataId",
            "type": "System.Guid",
            "summary": "The id of the custom userdata object whose data you want to try to read"
          },
          {
            "name": "readFromAttributes",
            "type": "System.Boolean",
            "summary": "Set True to attempt to read custom userdata object from the object's <b>Attributes</b> . Set False to attempt to read custom userdata object from the object's <b>Geometry</b> ."
          },
          {
            "name": "dataReader",
            "type": "Func<File3dm, BinaryArchiveReader, bool>",
            "summary": "The function that will read the data. This function must be implemented identical to the originating <b>DocObjects.Custom.UserData</b> -inherited class's Read method."
          }
        ],
        "returns": "The value returned by the data reading function if successful, False otherwise."
      }
    ]
  },
  {
    "namespace": "Rhino.FileIO",
    "name": "File3dmObjectTable",
    "dataType": "class",
    "summary": "Represents a simple object table for a file that is open externally.  \nThis class mimics Rhino.DocObjects.Tables.ObjectTable while providing external access to the file.",
    "baseclass": "File3dmCommonComponentTable<File3dmObject>",
    "interfaces": ["IEnumerable<File3dmObject>"],
    "properties": [
      {
        "signature": "ModelComponentType ComponentType",
        "modifiers": ["public", "override"],
        "protected": false,
        "virtual": false,
        "summary": "Returns <b>ModelComponentType.ModelGeometry</b> .",
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "int Count",
        "modifiers": ["public", "override"],
        "protected": false,
        "virtual": false,
        "summary": "Returns the total amount of items in the object table, including lights.",
        "since": "5.0",
        "property": ["get"]
      }
    ],
    "methods": [
      {
        "signature": "System.Void Add(File3dmObject item)",
        "modifiers": ["public", "override"],
        "protected": false,
        "virtual": false,
        "summary": "Duplicates the object, then adds a copy of the object to the document.",
        "since": "6.0",
        "parameters": [
          {
            "name": "item",
            "type": "File3dmObject",
            "summary": "The item to duplicate and add."
          }
        ]
      },
      {
        "signature": "System.Guid Add(GeometryBase item, ObjectAttributes attributes)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Duplicates the object, then adds a copy of the object to the document.",
        "since": "6.0",
        "parameters": [
          {
            "name": "item",
            "type": "GeometryBase",
            "summary": "The item to duplicate and add."
          },
          {
            "name": "attributes",
            "type": "ObjectAttributes",
            "summary": "The attributes to link with geometry."
          }
        ]
      },
      {
        "signature": "System.Guid AddAngularDimension(AngularDimension dimension, ObjectAttributes attributes)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Adds a angular dimension object to the 3dm file object table.",
        "since": "6.5",
        "parameters": [
          {
            "name": "dimension",
            "type": "AngularDimension",
            "summary": "Dimension object to add."
          },
          {
            "name": "attributes",
            "type": "ObjectAttributes",
            "summary": "Attributes to apply to dimension."
          }
        ],
        "returns": "A unique identifier for the object."
      },
      {
        "signature": "System.Guid AddAngularDimension(AngularDimension dimension)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Adds a angular dimension object to the 3dm file object table.",
        "since": "6.5",
        "parameters": [
          {
            "name": "dimension",
            "type": "AngularDimension",
            "summary": "Dimension object to add."
          }
        ],
        "returns": "A unique identifier for the object."
      },
      {
        "signature": "System.Guid AddArc(Arc arc, DocObjects.ObjectAttributes attributes)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Adds a curve object to the document representing an arc.",
        "since": "5.0",
        "parameters": [
          {
            "name": "arc",
            "type": "Arc",
            "summary": "An arc to add."
          },
          {
            "name": "attributes",
            "type": "DocObjects.ObjectAttributes",
            "summary": "attributes to apply to arc."
          }
        ],
        "returns": "A unique identifier for the object."
      },
      {
        "signature": "System.Guid AddArc(Arc arc)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Adds a curve object to the document representing an arc.",
        "since": "5.0",
        "parameters": [
          {
            "name": "arc",
            "type": "Arc",
            "summary": "An arc."
          }
        ],
        "returns": "A unique identifier for the object."
      },
      {
        "signature": "System.Guid AddBrep(Geometry.Brep brep, DocObjects.ObjectAttributes attributes)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Adds a brep object to Rhino.",
        "since": "5.0",
        "parameters": [
          {
            "name": "brep",
            "type": "Geometry.Brep",
            "summary": "A duplicate of this brep is added to Rhino."
          },
          {
            "name": "attributes",
            "type": "DocObjects.ObjectAttributes",
            "summary": "Attributes to apply to brep."
          }
        ],
        "returns": "A unique identifier for the object."
      },
      {
        "signature": "System.Guid AddBrep(Geometry.Brep brep)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Adds a brep object to Rhino.",
        "since": "5.0",
        "parameters": [
          {
            "name": "brep",
            "type": "Geometry.Brep",
            "summary": "A duplicate of this brep is added to Rhino."
          }
        ],
        "returns": "A unique identifier for the object."
      },
      {
        "signature": "System.Guid AddCircle(Circle circle, DocObjects.ObjectAttributes attributes)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Adds a curve object to the document representing a circle.",
        "since": "5.0",
        "parameters": [
          {
            "name": "circle",
            "type": "Circle",
            "summary": "A circle to add."
          },
          {
            "name": "attributes",
            "type": "DocObjects.ObjectAttributes",
            "summary": "attributes to apply to circle."
          }
        ],
        "returns": "A unique identifier for the object."
      },
      {
        "signature": "System.Guid AddCircle(Circle circle)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Adds a curve object to the document representing a circle.",
        "since": "5.0",
        "parameters": [
          {
            "name": "circle",
            "type": "Circle",
            "summary": "A circle to add."
          }
        ],
        "returns": "A unique identifier for the object."
      },
      {
        "signature": "System.Guid AddClippingPlane(Plane plane, System.Double uMagnitude, System.Double vMagnitude, IEnumerable<Guid> clippedViewportIds, DocObjects.ObjectAttributes attributes)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Adds a clipping plane object to Rhino.",
        "since": "5.0",
        "parameters": [
          {
            "name": "plane",
            "type": "Plane",
            "summary": "A plane."
          },
          {
            "name": "uMagnitude",
            "type": "System.Double",
            "summary": "The size in U direction."
          },
          {
            "name": "vMagnitude",
            "type": "System.Double",
            "summary": "The size in V direction."
          },
          {
            "name": "clippedViewportIds",
            "type": "IEnumerable<Guid>",
            "summary": "list of viewport ids that the new clipping plane will clip."
          },
          {
            "name": "attributes",
            "type": "DocObjects.ObjectAttributes",
            "summary": "Attributes to apply to point cloud."
          }
        ],
        "returns": "A unique identifier for the object."
      },
      {
        "signature": "System.Guid AddClippingPlane(Plane plane, System.Double uMagnitude, System.Double vMagnitude, IEnumerable<Guid> clippedViewportIds)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Adds a clipping plane object to Rhino.",
        "since": "5.0",
        "parameters": [
          {
            "name": "plane",
            "type": "Plane",
            "summary": "A plane."
          },
          {
            "name": "uMagnitude",
            "type": "System.Double",
            "summary": "The size in U direction."
          },
          {
            "name": "vMagnitude",
            "type": "System.Double",
            "summary": "The size in V direction."
          },
          {
            "name": "clippedViewportIds",
            "type": "IEnumerable<Guid>",
            "summary": "A list, an array or any enumerable of viewport ids that the new clipping plane will clip."
          }
        ],
        "returns": "A unique identifier for the object."
      },
      {
        "signature": "System.Guid AddClippingPlane(Plane plane, System.Double uMagnitude, System.Double vMagnitude, System.Guid clippedViewportId)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Adds a clipping plane object to Rhino.",
        "since": "5.0",
        "parameters": [
          {
            "name": "plane",
            "type": "Plane",
            "summary": "A plane."
          },
          {
            "name": "uMagnitude",
            "type": "System.Double",
            "summary": "The size in U direction."
          },
          {
            "name": "vMagnitude",
            "type": "System.Double",
            "summary": "The size in V direction."
          },
          {
            "name": "clippedViewportId",
            "type": "System.Guid",
            "summary": "The viewport id that the new clipping plane will clip."
          }
        ],
        "returns": "A unique identifier for the object."
      },
      {
        "signature": "System.Guid AddCurve(Geometry.Curve curve, DocObjects.ObjectAttributes attributes)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Adds a curve object to the table.",
        "since": "5.0",
        "parameters": [
          {
            "name": "curve",
            "type": "Geometry.Curve",
            "summary": "A duplicate of this curve is added to Rhino."
          },
          {
            "name": "attributes",
            "type": "DocObjects.ObjectAttributes",
            "summary": "Attributes to apply to curve."
          }
        ],
        "returns": "A unique identifier for the object."
      },
      {
        "signature": "System.Guid AddCurve(Geometry.Curve curve)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Adds a curve object to the table.",
        "since": "5.0",
        "parameters": [
          {
            "name": "curve",
            "type": "Geometry.Curve",
            "summary": "A curve to add."
          }
        ],
        "returns": "A unique identifier for the object."
      },
      {
        "signature": "System.Guid AddEllipse(Ellipse ellipse, DocObjects.ObjectAttributes attributes)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Adds a curve object to the document representing an ellipse.",
        "since": "5.0",
        "parameters": [
          {
            "name": "ellipse",
            "type": "Ellipse",
            "summary": "An ellipse to add."
          },
          {
            "name": "attributes",
            "type": "DocObjects.ObjectAttributes",
            "summary": "attributes to apply to ellipse."
          }
        ],
        "returns": "A unique identifier for the object."
      },
      {
        "signature": "System.Guid AddEllipse(Ellipse ellipse)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Adds a curve object to the document representing an ellipse.",
        "since": "5.0",
        "parameters": [
          {
            "name": "ellipse",
            "type": "Ellipse",
            "summary": "An ellipse to add."
          }
        ],
        "returns": "A unique identifier for the object."
      },
      {
        "signature": "System.Guid AddExtrusion(Geometry.Extrusion extrusion, DocObjects.ObjectAttributes attributes)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Adds an extrusion object to Rhino.",
        "since": "5.0",
        "parameters": [
          {
            "name": "extrusion",
            "type": "Geometry.Extrusion",
            "summary": "A duplicate of this extrusion is added to Rhino."
          },
          {
            "name": "attributes",
            "type": "DocObjects.ObjectAttributes",
            "summary": "Attributes to link to the object."
          }
        ],
        "returns": "A unique identifier for the object."
      },
      {
        "signature": "System.Guid AddExtrusion(Geometry.Extrusion extrusion)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Adds an extrusion object to Rhino.",
        "since": "5.0",
        "parameters": [
          {
            "name": "extrusion",
            "type": "Geometry.Extrusion",
            "summary": "A duplicate of this extrusion is added to Rhino."
          }
        ],
        "returns": "A unique identifier for the object."
      },
      {
        "signature": "System.Guid AddHatch(Hatch hatch, DocObjects.ObjectAttributes attributes)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Adds a hatch to the document.",
        "since": "5.0",
        "parameters": [
          {
            "name": "hatch",
            "type": "Hatch",
            "summary": "A hatch."
          },
          {
            "name": "attributes",
            "type": "DocObjects.ObjectAttributes",
            "summary": "Attributes to apply"
          }
        ],
        "returns": "A unique identifier for the hatch, or <b>Guid.Empty</b> on failure."
      },
      {
        "signature": "System.Guid AddHatch(Hatch hatch)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Adds a hatch to the document.",
        "since": "5.0",
        "parameters": [
          {
            "name": "hatch",
            "type": "Hatch",
            "summary": "A hatch."
          }
        ],
        "returns": "A unique identifier for the hatch, or <b>Guid.Empty</b> on failure."
      },
      {
        "signature": "System.Guid AddInstanceObject(InstanceReferenceGeometry instanceReference, ObjectAttributes attributes)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Adds an instance reference geometry object to the table.",
        "since": "6.5",
        "parameters": [
          {
            "name": "instanceReference",
            "type": "InstanceReferenceGeometry",
            "summary": "The instance reference geometry object."
          },
          {
            "name": "attributes",
            "type": "ObjectAttributes",
            "summary": "The attributes to link with the object."
          }
        ],
        "returns": "A unique identifier for the object."
      },
      {
        "signature": "System.Guid AddInstanceObject(InstanceReferenceGeometry instanceReference)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Adds an instance reference geometry object to the table.",
        "since": "6.5",
        "parameters": [
          {
            "name": "instanceReference",
            "type": "InstanceReferenceGeometry",
            "summary": "The instance reference geometry object."
          }
        ],
        "returns": "A unique identifier for the object."
      },
      {
        "signature": "System.Guid AddInstanceObject(System.Int32 instanceDefinitionIndex, Transform instanceXform, ObjectAttributes attributes)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Adds an instance reference geometry object to the table.",
        "since": "6.5",
        "parameters": [
          {
            "name": "instanceDefinitionIndex",
            "type": "System.Int32",
            "summary": "The index of the instance definition geometry object."
          },
          {
            "name": "instanceXform",
            "type": "Transform",
            "summary": "The transformation."
          },
          {
            "name": "attributes",
            "type": "ObjectAttributes",
            "summary": "The object attributes."
          }
        ],
        "returns": "A unique identifier for the object."
      },
      {
        "signature": "System.Guid AddInstanceObject(System.Int32 instanceDefinitionIndex, Transform instanceXform)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Adds an instance reference geometry object to the table.",
        "since": "6.5",
        "parameters": [
          {
            "name": "instanceDefinitionIndex",
            "type": "System.Int32",
            "summary": "The index of the instance definition geometry object."
          },
          {
            "name": "instanceXform",
            "type": "Transform",
            "summary": "The transformation."
          }
        ],
        "returns": "A unique identifier for the object."
      },
      {
        "signature": "System.Guid AddLeader(IEnumerable<Point3d> points)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Adds an annotation leader to the document. This overload is only provided in the Rhino SDK.",
        "since": "5.0",
        "parameters": [
          {
            "name": "points",
            "type": "IEnumerable<Point3d>",
            "summary": "A list, an array or any enumerable set of 2d points."
          }
        ],
        "returns": "A unique identifier for the object; or <b>Guid.Empty</b> on failure."
      },
      {
        "signature": "System.Guid AddLeader(Plane plane, IEnumerable<Point2d> points, DocObjects.ObjectAttributes attributes)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Adds an annotation leader to the document.",
        "since": "5.0",
        "parameters": [
          {
            "name": "plane",
            "type": "Plane",
            "summary": "A plane."
          },
          {
            "name": "points",
            "type": "IEnumerable<Point2d>",
            "summary": "A list, an array or any enumerable set of 2d points."
          },
          {
            "name": "attributes",
            "type": "DocObjects.ObjectAttributes",
            "summary": "Attributes to apply to brep."
          }
        ],
        "returns": "A unique identifier for the object; or <b>Guid.Empty</b> on failure."
      },
      {
        "signature": "System.Guid AddLeader(Plane plane, IEnumerable<Point2d> points)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Adds an annotation leader to the document.",
        "since": "5.0",
        "parameters": [
          {
            "name": "plane",
            "type": "Plane",
            "summary": "A plane."
          },
          {
            "name": "points",
            "type": "IEnumerable<Point2d>",
            "summary": "A list, an array or any enumerable set of 2d points."
          }
        ],
        "returns": "A unique identifier for the object; or <b>Guid.Empty</b> on failure."
      },
      {
        "signature": "System.Guid AddLeader(System.String text, IEnumerable<Point3d> points)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Adds an annotation leader to the document. This overload is only provided in the Rhino SDK.",
        "since": "5.0",
        "parameters": [
          {
            "name": "text",
            "type": "System.String",
            "summary": "The text."
          },
          {
            "name": "points",
            "type": "IEnumerable<Point3d>",
            "summary": "A list, an array or any enumerable set of 2d points."
          }
        ],
        "returns": "A unique identifier for the object; or <b>Guid.Empty</b> on failure."
      },
      {
        "signature": "System.Guid AddLeader(System.String text, Plane plane, IEnumerable<Point2d> points, DocObjects.ObjectAttributes attributes)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Adds an annotation leader to the document.",
        "since": "5.0",
        "parameters": [
          {
            "name": "text",
            "type": "System.String",
            "summary": "The text."
          },
          {
            "name": "plane",
            "type": "Plane",
            "summary": "A plane."
          },
          {
            "name": "points",
            "type": "IEnumerable<Point2d>",
            "summary": "A list, an array or any enumerable set of 2d points."
          },
          {
            "name": "attributes",
            "type": "DocObjects.ObjectAttributes",
            "summary": "Attributes to apply to brep."
          }
        ],
        "returns": "A unique identifier for the object; or <b>Guid.Empty</b> on failure."
      },
      {
        "signature": "System.Guid AddLeader(System.String text, Plane plane, IEnumerable<Point2d> points)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Adds an annotation leader to the document.",
        "since": "5.0",
        "parameters": [
          {
            "name": "text",
            "type": "System.String",
            "summary": "The text."
          },
          {
            "name": "plane",
            "type": "Plane",
            "summary": "A plane."
          },
          {
            "name": "points",
            "type": "IEnumerable<Point2d>",
            "summary": "A list, an array or any enumerable set of 2d points."
          }
        ],
        "returns": "A unique identifier for the object; or <b>Guid.Empty</b> on failure."
      },
      {
        "signature": "System.Guid AddLine(Line line, DocObjects.ObjectAttributes attributes)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Adds a line object to Rhino.",
        "since": "5.0",
        "parameters": [
          {
            "name": "line",
            "type": "Line",
            "summary": "A line."
          },
          {
            "name": "attributes",
            "type": "DocObjects.ObjectAttributes",
            "summary": "Attributes to apply to line."
          }
        ],
        "returns": "A unique identifier for the object."
      },
      {
        "signature": "System.Guid AddLine(Line line)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Adds a line object to Rhino.",
        "since": "5.0",
        "returns": "A unique identifier for the object."
      },
      {
        "signature": "System.Guid AddLine(Point3d from, Point3d to, DocObjects.ObjectAttributes attributes)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Adds a line object to Rhino.",
        "since": "5.0",
        "parameters": [
          {
            "name": "from",
            "type": "Point3d",
            "summary": "The start point of the line."
          },
          {
            "name": "to",
            "type": "Point3d",
            "summary": "The end point of the line."
          },
          {
            "name": "attributes",
            "type": "DocObjects.ObjectAttributes",
            "summary": "Attributes to apply to line."
          }
        ],
        "returns": "A unique identifier for the object."
      },
      {
        "signature": "System.Guid AddLine(Point3d from, Point3d to)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Adds a line object to Rhino.",
        "since": "5.0",
        "parameters": [
          {
            "name": "from",
            "type": "Point3d",
            "summary": "A line start point."
          },
          {
            "name": "to",
            "type": "Point3d",
            "summary": "A line end point."
          }
        ],
        "returns": "A unique identifier of new rhino object."
      },
      {
        "signature": "System.Guid AddLinearDimension(LinearDimension dimension, DocObjects.ObjectAttributes attributes)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Adds a linear dimension to the 3dm file object table.",
        "since": "5.0",
        "parameters": [
          {
            "name": "dimension",
            "type": "LinearDimension",
            "summary": "A dimension."
          },
          {
            "name": "attributes",
            "type": "DocObjects.ObjectAttributes",
            "summary": "Attributes to apply to dimension."
          }
        ],
        "returns": "A unique identifier for the object."
      },
      {
        "signature": "System.Guid AddLinearDimension(LinearDimension dimension)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Adds a linear dimension to the 3dm file object table.",
        "since": "5.0",
        "parameters": [
          {
            "name": "dimension",
            "type": "LinearDimension",
            "summary": "A dimension."
          }
        ],
        "returns": "A unique identifier for the object."
      },
      {
        "signature": "System.Guid AddMesh(Geometry.Mesh mesh, DocObjects.ObjectAttributes attributes)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Adds a mesh object to Rhino.",
        "since": "5.0",
        "parameters": [
          {
            "name": "mesh",
            "type": "Geometry.Mesh",
            "summary": "A duplicate of this mesh is added to Rhino."
          },
          {
            "name": "attributes",
            "type": "DocObjects.ObjectAttributes",
            "summary": "Attributes to link to the object."
          }
        ],
        "returns": "A unique identifier for the object."
      },
      {
        "signature": "System.Guid AddMesh(Geometry.Mesh mesh)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Adds a mesh object to Rhino.",
        "since": "5.0",
        "parameters": [
          {
            "name": "mesh",
            "type": "Geometry.Mesh",
            "summary": "A duplicate of this mesh is added to Rhino."
          }
        ],
        "returns": "A unique identifier for the object."
      },
      {
        "signature": "System.Guid AddOrdinateDimension(OrdinateDimension dimension, ObjectAttributes attributes)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Adds an ordinate dimension object to the 3dm file object table.",
        "since": "7.32",
        "parameters": [
          {
            "name": "dimension",
            "type": "OrdinateDimension",
            "summary": "Dimension object to add."
          },
          {
            "name": "attributes",
            "type": "ObjectAttributes",
            "summary": "Attributes to apply to dimension."
          }
        ],
        "returns": "A unique identifier for the object."
      },
      {
        "signature": "System.Guid AddOrdinateDimension(OrdinateDimension dimension)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Adds an ordinate dimension object to the 3dm file object table.",
        "since": "7.32",
        "parameters": [
          {
            "name": "dimension",
            "type": "OrdinateDimension",
            "summary": "Dimension object to add."
          }
        ],
        "returns": "A unique identifier for the object."
      },
      {
        "signature": "System.Guid AddPoint(Point3d point, DocObjects.ObjectAttributes attributes)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Adds a point object to the document.",
        "since": "5.0",
        "parameters": [
          {
            "name": "point",
            "type": "Point3d",
            "summary": "A location for point."
          },
          {
            "name": "attributes",
            "type": "DocObjects.ObjectAttributes",
            "summary": "attributes to apply to point."
          }
        ],
        "returns": "A unique identifier for the object."
      },
      {
        "signature": "System.Guid AddPoint(Point3d point)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Adds a point object to the table.",
        "since": "5.0",
        "parameters": [
          {
            "name": "point",
            "type": "Point3d",
            "summary": "A location for point."
          }
        ],
        "returns": "Id of new object."
      },
      {
        "signature": "System.Guid AddPoint(Point3f point, DocObjects.ObjectAttributes attributes)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Adds a point object to the document.",
        "since": "5.0",
        "parameters": [
          {
            "name": "point",
            "type": "Point3f",
            "summary": "location of point."
          },
          {
            "name": "attributes",
            "type": "DocObjects.ObjectAttributes",
            "summary": "attributes to apply to point."
          }
        ],
        "returns": "A unique identifier for the object."
      },
      {
        "signature": "System.Guid AddPoint(Point3f point)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Adds a point object to the document.",
        "since": "5.0",
        "parameters": [
          {
            "name": "point",
            "type": "Point3f",
            "summary": "location of point."
          }
        ],
        "returns": "A unique identifier for the object."
      },
      {
        "signature": "System.Guid AddPoint(System.Double x, System.Double y, System.Double z)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Adds a point object to the table.",
        "since": "5.0",
        "parameters": [
          {
            "name": "x",
            "type": "System.Double",
            "summary": "X component of point coordinate."
          },
          {
            "name": "y",
            "type": "System.Double",
            "summary": "Y component of point coordinate."
          },
          {
            "name": "z",
            "type": "System.Double",
            "summary": "Z component of point coordinate."
          }
        ],
        "returns": "id of new object."
      },
      {
        "signature": "System.Guid AddPointCloud(IEnumerable<Point3d> points, DocObjects.ObjectAttributes attributes)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Adds a point cloud object to the document.",
        "since": "5.0",
        "parameters": [
          {
            "name": "points",
            "type": "IEnumerable<Point3d>",
            "summary": "A list, an array or any enumerable set of <b>Point3d</b> ."
          },
          {
            "name": "attributes",
            "type": "DocObjects.ObjectAttributes",
            "summary": "Attributes to apply to point cloud."
          }
        ],
        "returns": "A unique identifier for the object."
      },
      {
        "signature": "System.Guid AddPointCloud(IEnumerable<Point3d> points)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Adds a point cloud object to the document.",
        "since": "5.0",
        "parameters": [
          {
            "name": "points",
            "type": "IEnumerable<Point3d>",
            "summary": "A list, an array or any enumerable set of <b>Point3d</b> ."
          }
        ],
        "returns": "A unique identifier for the object."
      },
      {
        "signature": "System.Guid AddPointCloud(PointCloud cloud, DocObjects.ObjectAttributes attributes)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Adds a point cloud object to the document.",
        "since": "5.0",
        "parameters": [
          {
            "name": "cloud",
            "type": "PointCloud",
            "summary": "PointCloud to add."
          },
          {
            "name": "attributes",
            "type": "DocObjects.ObjectAttributes",
            "summary": "attributes to apply to point cloud."
          }
        ],
        "returns": "A unique identifier for the object."
      },
      {
        "signature": "System.Guid AddPointCloud(PointCloud cloud)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Adds a point cloud object to the document.",
        "since": "5.0",
        "parameters": [
          {
            "name": "cloud",
            "type": "PointCloud",
            "summary": "PointCloud to add."
          }
        ],
        "returns": "A unique identifier for the object."
      },
      {
        "signature": "System.Guid[] AddPoints(IEnumerable<Point3d> points, DocObjects.ObjectAttributes attributes)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Adds multiple points to the document.",
        "since": "5.0",
        "parameters": [
          {
            "name": "points",
            "type": "IEnumerable<Point3d>",
            "summary": "Points to add."
          },
          {
            "name": "attributes",
            "type": "DocObjects.ObjectAttributes",
            "summary": "Attributes to apply to point objects."
          }
        ],
        "returns": "An array of object unique identifiers."
      },
      {
        "signature": "System.Guid[] AddPoints(IEnumerable<Point3d> points)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Adds multiple points to the document.",
        "since": "5.0",
        "parameters": [
          {
            "name": "points",
            "type": "IEnumerable<Point3d>",
            "summary": "Points to add."
          }
        ],
        "returns": "List of object ids."
      },
      {
        "signature": "System.Guid[] AddPoints(IEnumerable<Point3f> points, DocObjects.ObjectAttributes attributes)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Adds multiple points to the document.",
        "since": "5.0",
        "parameters": [
          {
            "name": "points",
            "type": "IEnumerable<Point3f>",
            "summary": "Points to add."
          },
          {
            "name": "attributes",
            "type": "DocObjects.ObjectAttributes",
            "summary": "Attributes to apply to point objects."
          }
        ],
        "returns": "An array of object unique identifiers."
      },
      {
        "signature": "System.Guid[] AddPoints(IEnumerable<Point3f> points)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Adds multiple points to the document.",
        "since": "5.0",
        "parameters": [
          {
            "name": "points",
            "type": "IEnumerable<Point3f>",
            "summary": "Points to add."
          }
        ],
        "returns": "An array of object unique identifiers."
      },
      {
        "signature": "System.Guid AddPolyline(IEnumerable<Point3d> points, DocObjects.ObjectAttributes attributes)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Adds a polyline object to Rhino.",
        "since": "5.0",
        "parameters": [
          {
            "name": "points",
            "type": "IEnumerable<Point3d>",
            "summary": "A list, an array or any enumerable set of <b>Point3d</b> ."
          },
          {
            "name": "attributes",
            "type": "DocObjects.ObjectAttributes",
            "summary": "Attributes to apply to line."
          }
        ],
        "returns": "A unique identifier for the object."
      },
      {
        "signature": "System.Guid AddPolyline(IEnumerable<Point3d> points)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Adds a polyline object to Rhino.",
        "since": "5.0",
        "parameters": [
          {
            "name": "points",
            "type": "IEnumerable<Point3d>",
            "summary": "A list, an array or any enumerable set of <b>Point3d</b> ."
          }
        ],
        "returns": "A unique identifier for the object."
      },
      {
        "signature": "System.Guid AddRadialDimension(RadialDimension dimension, ObjectAttributes attributes)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Adds a radial dimension object to the 3dm file object table.",
        "since": "7.32",
        "parameters": [
          {
            "name": "dimension",
            "type": "RadialDimension",
            "summary": "Dimension object to add."
          },
          {
            "name": "attributes",
            "type": "ObjectAttributes",
            "summary": "Attributes to apply to dimension."
          }
        ],
        "returns": "A unique identifier for the object."
      },
      {
        "signature": "System.Guid AddRadialDimension(RadialDimension dimension)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Adds a radial dimension object to the 3dm file object table.",
        "since": "7.32",
        "parameters": [
          {
            "name": "dimension",
            "type": "RadialDimension",
            "summary": "Dimension object to add."
          }
        ],
        "returns": "A unique identifier for the object."
      },
      {
        "signature": "System.Guid AddSphere(Sphere sphere, DocObjects.ObjectAttributes attributes)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Adds a surface object to the document representing a sphere.",
        "since": "5.0",
        "parameters": [
          {
            "name": "sphere",
            "type": "Sphere",
            "summary": "A sphere to add."
          },
          {
            "name": "attributes",
            "type": "DocObjects.ObjectAttributes",
            "summary": "Attributes to link with the sphere."
          }
        ],
        "returns": "A unique identifier for the object."
      },
      {
        "signature": "System.Guid AddSphere(Sphere sphere)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Adds a surface object to the document representing a sphere.",
        "since": "5.0",
        "parameters": [
          {
            "name": "sphere",
            "type": "Sphere",
            "summary": "A sphere to add."
          }
        ],
        "returns": "A unique identifier for the object."
      },
      {
        "signature": "System.Guid AddSubD(SubD subd, DocObjects.ObjectAttributes attributes)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Adds a SubD to the document",
        "since": "7.1",
        "parameters": [
          {
            "name": "subd",
            "type": "SubD",
            "summary": "the Subd to add"
          },
          {
            "name": "attributes",
            "type": "DocObjects.ObjectAttributes",
            "summary": "Attributes to apply"
          }
        ],
        "returns": "A unique identifier for the SubD, or <b>Guid.Empty</b> on failure"
      },
      {
        "signature": "System.Guid AddSubD(SubD subd)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Adds a SubD to the document",
        "since": "7.1",
        "parameters": [
          {
            "name": "subd",
            "type": "SubD",
            "summary": "the Subd to add"
          }
        ],
        "returns": "A unique identifier for the SubD, or <b>Guid.Empty</b> on failure"
      },
      {
        "signature": "System.Guid AddSurface(Geometry.Surface surface, DocObjects.ObjectAttributes attributes)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Adds a surface object to Rhino.",
        "since": "5.0",
        "parameters": [
          {
            "name": "surface",
            "type": "Geometry.Surface",
            "summary": "A duplicate of this surface is added to Rhino."
          },
          {
            "name": "attributes",
            "type": "DocObjects.ObjectAttributes",
            "summary": "Attributes to link to the object."
          }
        ],
        "returns": "A unique identifier for the object."
      },
      {
        "signature": "System.Guid AddSurface(Geometry.Surface surface)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Adds a surface object to Rhino.",
        "since": "5.0",
        "parameters": [
          {
            "name": "surface",
            "type": "Geometry.Surface",
            "summary": "A duplicate of this surface is added to Rhino."
          }
        ],
        "returns": "A unique identifier for the object."
      },
      {
        "signature": "System.Guid AddText(Rhino.Display.Text3d text3d, DocObjects.ObjectAttributes attributes)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Adds an annotation text object to the document.",
        "since": "5.0",
        "parameters": [
          {
            "name": "text3d",
            "type": "Rhino.Display.Text3d",
            "summary": "The text object to add."
          },
          {
            "name": "attributes",
            "type": "DocObjects.ObjectAttributes",
            "summary": "Attributes to link to the object."
          }
        ],
        "returns": "The Guid of the newly added object or Guid.Empty on failure."
      },
      {
        "signature": "System.Guid AddText(Rhino.Display.Text3d text3d)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Adds an annotation text object to the document.",
        "since": "5.0",
        "parameters": [
          {
            "name": "text3d",
            "type": "Rhino.Display.Text3d",
            "summary": "The text object to add."
          }
        ],
        "returns": "The Guid of the newly added object or Guid.Empty on failure."
      },
      {
        "signature": "System.Guid AddText(System.String text, Plane plane, System.Double height, System.String fontName, System.Boolean bold, System.Boolean italic, DocObjects.ObjectAttributes attributes)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Adds an annotation text object to the document.",
        "since": "5.0",
        "parameters": [
          {
            "name": "text",
            "type": "System.String",
            "summary": "Text string."
          },
          {
            "name": "plane",
            "type": "Plane",
            "summary": "Plane of text."
          },
          {
            "name": "height",
            "type": "System.Double",
            "summary": "Height of text."
          },
          {
            "name": "fontName",
            "type": "System.String",
            "summary": "Name of FontFace."
          },
          {
            "name": "bold",
            "type": "System.Boolean",
            "summary": "Bold flag."
          },
          {
            "name": "italic",
            "type": "System.Boolean",
            "summary": "Italic flag."
          },
          {
            "name": "attributes",
            "type": "DocObjects.ObjectAttributes",
            "summary": "Object Attributes."
          }
        ],
        "returns": "The Guid of the newly added object or Guid.Empty on failure."
      },
      {
        "signature": "System.Guid AddText(System.String text, Plane plane, System.Double height, System.String fontName, System.Boolean bold, System.Boolean italic, TextJustification justification, DocObjects.ObjectAttributes attributes)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Adds an annotation text object to the document.",
        "since": "5.0",
        "parameters": [
          {
            "name": "text",
            "type": "System.String",
            "summary": "Text string."
          },
          {
            "name": "plane",
            "type": "Plane",
            "summary": "Plane of text."
          },
          {
            "name": "height",
            "type": "System.Double",
            "summary": "Height of text."
          },
          {
            "name": "fontName",
            "type": "System.String",
            "summary": "Name of FontFace."
          },
          {
            "name": "bold",
            "type": "System.Boolean",
            "summary": "Bold flag."
          },
          {
            "name": "italic",
            "type": "System.Boolean",
            "summary": "Italic flag."
          },
          {
            "name": "justification",
            "type": "TextJustification",
            "summary": "The justification of the text."
          },
          {
            "name": "attributes",
            "type": "DocObjects.ObjectAttributes",
            "summary": "Attributes to link to the object."
          }
        ],
        "returns": "The Guid of the newly added object or Guid.Empty on failure."
      },
      {
        "signature": "System.Guid AddText(System.String text, Plane plane, System.Double height, System.String fontName, System.Boolean bold, System.Boolean italic, TextJustification justification)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Adds an annotation text object to the document.",
        "since": "5.0",
        "parameters": [
          {
            "name": "text",
            "type": "System.String",
            "summary": "Text string."
          },
          {
            "name": "plane",
            "type": "Plane",
            "summary": "Plane of text."
          },
          {
            "name": "height",
            "type": "System.Double",
            "summary": "Height of text."
          },
          {
            "name": "fontName",
            "type": "System.String",
            "summary": "Name of FontFace."
          },
          {
            "name": "bold",
            "type": "System.Boolean",
            "summary": "Bold flag."
          },
          {
            "name": "italic",
            "type": "System.Boolean",
            "summary": "Italic flag."
          },
          {
            "name": "justification",
            "type": "TextJustification",
            "summary": "The justification of the text."
          }
        ],
        "returns": "The Guid of the newly added object or Guid.Empty on failure."
      },
      {
        "signature": "System.Guid AddText(System.String text, Plane plane, System.Double height, System.String fontName, System.Boolean bold, System.Boolean italic)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Adds an annotation text object to the document.",
        "since": "5.0",
        "parameters": [
          {
            "name": "text",
            "type": "System.String",
            "summary": "Text string."
          },
          {
            "name": "plane",
            "type": "Plane",
            "summary": "Plane of text."
          },
          {
            "name": "height",
            "type": "System.Double",
            "summary": "Height of text."
          },
          {
            "name": "fontName",
            "type": "System.String",
            "summary": "Name of FontFace."
          },
          {
            "name": "bold",
            "type": "System.Boolean",
            "summary": "Bold flag."
          },
          {
            "name": "italic",
            "type": "System.Boolean",
            "summary": "Italic flag."
          }
        ],
        "returns": "The Guid of the newly added object or Guid.Empty on failure."
      },
      {
        "signature": "System.Guid AddTextDot(Geometry.TextDot dot, DocObjects.ObjectAttributes attributes)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Adds a text dot object to the table.",
        "since": "5.0",
        "parameters": [
          {
            "name": "dot",
            "type": "Geometry.TextDot",
            "summary": "The text dot."
          },
          {
            "name": "attributes",
            "type": "DocObjects.ObjectAttributes",
            "summary": "Attributes to link with text dot."
          }
        ],
        "returns": "A unique identifier for the object."
      },
      {
        "signature": "System.Guid AddTextDot(Geometry.TextDot dot)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Adds a text dot object to the table.",
        "since": "5.0",
        "parameters": [
          {
            "name": "dot",
            "type": "Geometry.TextDot",
            "summary": "The text dot."
          }
        ],
        "returns": "A unique identifier for the object."
      },
      {
        "signature": "System.Guid AddTextDot(System.String text, Point3d location, DocObjects.ObjectAttributes attributes)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Adds a text dot object to the table.",
        "since": "5.0",
        "parameters": [
          {
            "name": "text",
            "type": "System.String",
            "summary": "The text."
          },
          {
            "name": "location",
            "type": "Point3d",
            "summary": "The location."
          },
          {
            "name": "attributes",
            "type": "DocObjects.ObjectAttributes",
            "summary": "Attributes to link with curve."
          }
        ],
        "returns": "A unique identifier for the object."
      },
      {
        "signature": "System.Guid AddTextDot(System.String text, Point3d location)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Adds a text dot object to the table.",
        "since": "5.0",
        "parameters": [
          {
            "name": "text",
            "type": "System.String",
            "summary": "The text."
          },
          {
            "name": "location",
            "type": "Point3d",
            "summary": "The location."
          }
        ],
        "returns": "A unique identifier for the object."
      },
      {
        "signature": "System.Int32 Delete(IEnumerable<Guid> objectIds)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Deletes a collection of objects from the document.",
        "since": "5.2",
        "parameters": [
          {
            "name": "objectIds",
            "type": "IEnumerable<Guid>",
            "summary": "Ids of all objects to delete."
          }
        ],
        "returns": "The number of successfully deleted objects."
      },
      {
        "signature": "System.Boolean Delete(System.Guid objectId)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Deletes object from document.",
        "since": "5.2",
        "parameters": [
          {
            "name": "objectId",
            "type": "System.Guid",
            "summary": "Id of the object to delete."
          }
        ],
        "returns": "True on success, False on failure."
      },
      {
        "signature": "File3dmObject[] FindByGroup(Group group)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Finds all File3dmObject that are in a given group.",
        "since": "6.20",
        "parameters": [
          {
            "name": "group",
            "type": "Group",
            "summary": "A group instance."
          }
        ],
        "returns": "Array of objects that belong to the specified group or empty array if no objects could be found."
      },
      {
        "signature": "File3dmObject[] FindByLayer(Layer layer)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Finds all File3dmObject that are in a given layer.",
        "since": "6.0",
        "parameters": [
          {
            "name": "layer",
            "type": "Layer",
            "summary": "A layer instance."
          }
        ],
        "returns": "Array of objects that belong to the specified layer or empty array if no objects could be found."
      },
      {
        "signature": "File3dmObject[] FindByLayer(System.String layer)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Finds all File3dmObject that are in a given layer.",
        "since": "5.0",
        "parameters": [
          {
            "name": "layer",
            "type": "System.String",
            "summary": "Layer to search."
          }
        ],
        "returns": "Array of objects that belong to the specified layer or empty array if no objects could be found."
      },
      {
        "signature": "Rhino.Geometry.BoundingBox GetBoundingBox()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the bounding box containing every object in this table.",
        "since": "5.0",
        "returns": "The computed bounding box."
      },
      {
        "signature": "IEnumerator<File3dmObject> GetEnumerator()",
        "modifiers": ["public", "override"],
        "protected": false,
        "virtual": false,
        "summary": "Returns an enumerator that yields all objects in this document. Like in Rhino, this includes lights. Unlike in Rhino, however, all lights are returned in the end of the list.",
        "since": "5.0",
        "returns": "An enumerator that yields all objects in a document."
      }
    ]
  },
  {
    "namespace": "Rhino.FileIO",
    "name": "File3dmPlugInData",
    "dataType": "class",
    "summary": "Represents custom plug-in data, in the 3dm file, written by a plug-in.",
    "properties": [
      {
        "signature": "Guid PlugInId",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the id of the plug-in that is associated with this custom data.",
        "since": "5.0",
        "property": ["get"]
      }
    ]
  },
  {
    "namespace": "Rhino.FileIO",
    "name": "File3dmPlugInDataTable",
    "dataType": "class",
    "summary": "Table of custom data provided by plug-ins",
    "interfaces": ["IEnumerable<File3dmPlugInData>", "Collections.IRhinoTable<File3dmPlugInData>"],
    "properties": [
      {
        "signature": "int Count",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the number of <b>File3dmPlugInData</b> objects in this table.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "File3dmPlugInData this[int index]",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the <b>File3dmPlugInData</b> object at the given index."
      }
    ],
    "methods": [
      {
        "signature": "System.Void Clear()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Remove all entries from this table.",
        "since": "5.0"
      },
      {
        "signature": "System.String Dump()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Prepares a text dump of table.",
        "since": "5.0",
        "returns": "A string containing the dump."
      },
      {
        "signature": "IEnumerator<File3dmPlugInData> GetEnumerator()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the enumerator that visits any <b>File3dmPlugInData</b> in this table.",
        "since": "5.0",
        "returns": "The enumerator."
      },
      {
        "signature": "System.Boolean TryRead(File3dmPlugInData pluginData, Func<File3dm, BinaryArchiveReader, bool> dataReader)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Attempts to read a Rhino plug-in's custom data from the <b>File3dm</b> file.",
        "parameters": [
          {
            "name": "pluginData",
            "type": "File3dmPlugInData",
            "summary": "The plug-in whose data you want to try to read."
          },
          {
            "name": "dataReader",
            "type": "Func<File3dm, BinaryArchiveReader, bool>",
            "summary": "The function that will read the data. This function must be implemented identical to the originating plug-in's <b>PlugIns.PlugIn.ReadDocument(RhinoDoc, BinaryArchiveReader, FileReadOptions)</b> method."
          }
        ],
        "returns": "The value returned by the data reading function if successful, False otherwise."
      }
    ]
  },
  {
    "namespace": "Rhino.FileIO",
    "name": "File3dmPlugInDetails",
    "dataType": "class",
    "summary": "Details about Rhino a Rhino plug-in that was loaded in the Rhino process when a 3dm file is saved",
    "constructors": [
      {
        "signature": "File3dmPlugInDetails()",
        "summary": "Initializes a new instance of the File3dmPlugInDetails class"
      }
    ],
    "properties": [
      {
        "signature": "string Filename",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "The plug-in's binary filename",
        "property": ["get", "set"]
      },
      {
        "signature": "Guid Id",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Plug-in Id",
        "property": ["get", "set"]
      },
      {
        "signature": "string Name",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Public facing name of the plug-in",
        "property": ["get", "set"]
      }
    ]
  },
  {
    "namespace": "Rhino.FileIO",
    "name": "File3dmRenderContent",
    "dataType": "class",
    "baseclass": "Rhino.DocObjects.ModelComponent",
    "properties": [
      {
        "signature": "bool AutoDelete",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "True if the content is automatically deleted when not in use.",
        "since": "8.0",
        "property": ["get"]
      },
      {
        "signature": "IEnumerable<File3dmRenderContent> Children",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "8.0",
        "property": ["get"]
      },
      {
        "signature": "string ChildSlotName",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "The render content's child slot name.",
        "since": "8.0",
        "property": ["get"]
      },
      {
        "signature": "ModelComponentType ComponentType",
        "modifiers": ["public", "override"],
        "protected": false,
        "virtual": false,
        "summary": "Returns <b>ModelComponentType.RenderContent</b> .",
        "since": "8.0",
        "property": ["get"]
      },
      {
        "signature": "File3dm File3dmParent",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "The parent File3dm of the entire hierarchy.",
        "since": "8.0",
        "property": ["get"]
      },
      {
        "signature": "Guid GroupId",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "The content's group id.",
        "since": "8.0",
        "property": ["get"]
      },
      {
        "signature": "bool Hidden",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "True if the content is hidden.",
        "since": "8.0",
        "property": ["get"]
      },
      {
        "signature": "bool IsChild",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "True if this is a child of another render content (i.e., has a parent; is not top-level).",
        "since": "8.0",
        "property": ["get"]
      },
      {
        "signature": "bool IsTopLevel",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "True if this is a top-level render content (i.e., has no parent; is not a child).",
        "since": "8.0",
        "property": ["get"]
      },
      {
        "signature": "string Kind",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "the kind of render content as a string.",
        "since": "8.0",
        "property": ["get"]
      },
      {
        "signature": "string Notes",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "The content's notes.",
        "since": "8.0",
        "property": ["get"]
      },
      {
        "signature": "File3dmRenderContent Parent",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "The parent content or None if this is the top level object.",
        "since": "8.0",
        "property": ["get"]
      },
      {
        "signature": "Guid PlugInId",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "The content's plug-in id.",
        "since": "8.0",
        "property": ["get"]
      },
      {
        "signature": "bool Reference",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "True if the content is a reference content.",
        "since": "8.0",
        "property": ["get"]
      },
      {
        "signature": "Guid RenderEngineId",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "The content's render-engine id.",
        "since": "8.0",
        "property": ["get"]
      },
      {
        "signature": "string Tags",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "The content's tags.",
        "since": "8.0",
        "property": ["get"]
      },
      {
        "signature": "File3dmRenderContent TopLevel",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "The top-level parent content. Returns this if this is the top-level item.",
        "since": "8.0",
        "property": ["get"]
      },
      {
        "signature": "Guid TypeId",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "The unique id of the content type.",
        "since": "8.0",
        "property": ["get"]
      },
      {
        "signature": "string TypeName",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "The internal name of the content type.",
        "since": "8.0",
        "property": ["get"]
      }
    ],
    "methods": [
      {
        "signature": "System.Boolean ChildSlotOn(System.String child_slot_name)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "True if a particular child slot is 'on'.",
        "since": "8.0"
      },
      {
        "signature": "System.Boolean DeleteChild(System.String child_slot_name)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Deletes any existing child with the specified child slot name. True if successful, else false.",
        "since": "8.0"
      },
      {
        "signature": "File3dmRenderContent FindChild(System.String child_slot_name)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "The child with the specified child slot name, or None if no such child exists.",
        "since": "8.0"
      },
      {
        "signature": "System.IConvertible GetParameter(System.String param)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets a named parameter. The parameter value or None if not found.",
        "since": "8.0"
      },
      {
        "signature": "System.Boolean SetParameter(System.String param, System.Object value)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Sets a named parameter. True if the parameter was set, else false.",
        "since": "8.0"
      },
      {
        "signature": "System.String XML(System.Boolean recursive)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the render content's state as an XML string.",
        "since": "8.0"
      }
    ]
  },
  {
    "namespace": "Rhino.FileIO",
    "name": "File3dmRenderEnvironment",
    "dataType": "class",
    "baseclass": "Rhino.FileIO.File3dmRenderContent",
    "methods": [
      {
        "signature": "Rhino.DocObjects.Environment ToEnvironment()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Get a simulated environment that approximates this environment's appearance.",
        "since": "8.0"
      }
    ]
  },
  {
    "namespace": "Rhino.FileIO",
    "name": "File3dmRenderEnvironments",
    "dataType": "class",
    "interfaces": ["IEnumerable<File3dmRenderEnvironment>"],
    "constructors": [
      {
        "signature": "File3dmRenderEnvironments(File3dm f)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "8.0"
      }
    ],
    "methods": [
      {
        "signature": "File3dmRenderEnvironment Find(System.Guid g)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Finds an environment by its id, if possible. Returns None on failure.",
        "since": "8.0"
      },
      {
        "signature": "IEnumerator<File3dmRenderEnvironment> GetEnumerator()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "8.0"
      }
    ]
  },
  {
    "namespace": "Rhino.FileIO",
    "name": "File3dmRenderMaterial",
    "dataType": "class",
    "baseclass": "Rhino.FileIO.File3dmRenderContent",
    "methods": [
      {
        "signature": "Material ToMaterial()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Get a simulated material that approximates this material's appearance.",
        "since": "8.0"
      }
    ]
  },
  {
    "namespace": "Rhino.FileIO",
    "name": "File3dmRenderMaterials",
    "dataType": "class",
    "interfaces": ["IEnumerable<File3dmRenderMaterial>"],
    "constructors": [
      {
        "signature": "File3dmRenderMaterials(File3dm f)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "8.0"
      }
    ],
    "methods": [
      {
        "signature": "File3dmRenderMaterial Find(System.Guid g)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Finds a material by its id, if possible. Returns None on failure.",
        "since": "8.0"
      },
      {
        "signature": "IEnumerator<File3dmRenderMaterial> GetEnumerator()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "8.0"
      }
    ]
  },
  {
    "namespace": "Rhino.FileIO",
    "name": "File3dmRenderTexture",
    "dataType": "class",
    "baseclass": "Rhino.FileIO.File3dmRenderContent",
    "properties": [
      {
        "signature": "string Filename",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "If the texture has a file name, returns that file name. Otherwise returns an empty string.",
        "since": "8.0",
        "property": ["get"]
      }
    ],
    "methods": [
      {
        "signature": "Texture ToTexture()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Get a simulated texture that approximates this texture's appearance.",
        "since": "8.0"
      }
    ]
  },
  {
    "namespace": "Rhino.FileIO",
    "name": "File3dmRenderTextures",
    "dataType": "class",
    "interfaces": ["IEnumerable<File3dmRenderTexture>"],
    "constructors": [
      {
        "signature": "File3dmRenderTextures(File3dm f)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "8.0"
      }
    ],
    "methods": [
      {
        "signature": "File3dmRenderTexture Find(System.Guid g)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Finds a texture by its id, if possible. Returns None on failure.",
        "since": "8.0"
      },
      {
        "signature": "IEnumerator<File3dmRenderTexture> GetEnumerator()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "8.0"
      }
    ]
  },
  {
    "namespace": "Rhino.FileIO",
    "name": "File3dmSettings",
    "dataType": "class",
    "summary": "General settings in a 3dm file.",
    "properties": [
      {
        "signature": "double ModelAbsoluteTolerance",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the model space absolute tolerance.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "double ModelAngleToleranceDegrees",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the model space angle tolerance.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "double ModelAngleToleranceRadians",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the model space angle tolerance.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "Point3d ModelBasepoint",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the model base point that is used when the file is read as an instance definition.  \nThis point is mapped to the origin in the instance definition.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "DistanceDisplayMode ModelDistanceDisplayMode",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the model space distance display mode (decimal, feet, or feet and inches).",
        "since": "9.0",
        "property": ["get", "set"]
      },
      {
        "signature": "int ModelDistanceDisplayPrecision",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the model space distance display precision. In decimal mode this is the number of decimal places; in fractional modes the denominator is (1/2)^precision. Valid values are >= 0 and <= 7.",
        "since": "9.0",
        "property": ["get", "set"]
      },
      {
        "signature": "double ModelRelativeTolerance",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the model space relative tolerance.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "LengthUnit ModelUnits",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the model length units, using <b>Rhino.LengthUnit</b> value.",
        "since": "9.0",
        "property": ["get", "set"]
      },
      {
        "signature": "UnitSystem ModelUnitSystem",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the model unit system, using <b>Rhino.UnitSystem</b> enumeration.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "string ModelUrl",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets a Uniform Resource Locator (URL) direction for the model.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "double PageAbsoluteTolerance",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the page space absolute tolerance.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "double PageAngleToleranceDegrees",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the page space angle tolerance.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "double PageAngleToleranceRadians",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the page space angle tolerance.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "DistanceDisplayMode PageDistanceDisplayMode",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the page space distance display mode (decimal, feet, or feet and inches).",
        "since": "9.0",
        "property": ["get", "set"]
      },
      {
        "signature": "int PageDistanceDisplayPrecision",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the page space distance display precision. In decimal mode this is the number of decimal places; in fractional modes the denominator is (1/2)^precision. Valid values are >= 0 and <= 7.",
        "since": "9.0",
        "property": ["get", "set"]
      },
      {
        "signature": "double PageRelativeTolerance",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the page space relative tolerance.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "LengthUnit PageUnits",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the page length units, using <b>Rhino.LengthUnit</b> value.",
        "since": "9.0",
        "property": ["get", "set"]
      },
      {
        "signature": "UnitSystem PageUnitSystem",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the page unit system, using <b>Rhino.UnitSystem</b> enumeration.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "RenderSettings RenderSettings",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the render settings.",
        "since": "8.0",
        "property": ["get"]
      }
    ],
    "methods": [
      {
        "signature": "IEnumerable<File3dmPlugInDetails> LoadedPlugIns()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Information about the plug-ins loaded when the file was last saved"
      }
    ]
  },
  {
    "namespace": "Rhino.FileIO",
    "name": "File3dmShutLining",
    "dataType": "class",
    "summary": "Represents the shut-lining attached to file3dm object attributes.",
    "properties": [
      {
        "signature": "bool AutoUpdate",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Specifies whether the shut-lining automatically updates or not.",
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool Faceted",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Specifies whether the shut-lining is faceted or not.",
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool ForceUpdate",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Specifies whether updating is forced or not.",
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool On",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Specifies whether shut-lining is enabled or not.",
        "since": "8.0",
        "property": ["get", "set"]
      }
    ],
    "methods": [
      {
        "signature": "System.Guid AddCurve()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Adds a new curve to the shut-lining. The curve will have an id of Guid.Empty. After adding a curve, you should set the id to that of a curve in the model that will be used to calculate the shut-lining.",
        "since": "8.0"
      },
      {
        "signature": "System.Boolean CurveEnabled(System.Guid curve_id)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Return whether shut-line is created for the given curve.",
        "since": "8.0"
      },
      {
        "signature": "System.Boolean CurveIsBump(System.Guid curve_id)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns whether to create a bump instead of a dent for the given curve.",
        "since": "8.0"
      },
      {
        "signature": "System.Int32 CurveProfile(System.Guid curve_id)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns the profile of the shut-line for the given curve.",
        "since": "8.0"
      },
      {
        "signature": "System.Boolean CurvePull(System.Guid curve_id)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns whether the given curve is pulled to the surface before creating the shut-line.",
        "since": "8.0"
      },
      {
        "signature": "System.Double CurveRadius(System.Guid curve_id)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns the radius of the pipe used to create the shut-line for the given curve.",
        "since": "8.0"
      },
      {
        "signature": "System.Void DeleteAllCurves()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Deletes all the curves from the shut-lining.",
        "since": "8.0"
      },
      {
        "signature": "System.Guid[] GetCurves()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets all the curves on the shut-lining. Each curve is identified by a Guid. If there are no curves present, the array will be empty.",
        "since": "8.0"
      },
      {
        "signature": "System.Void SetCurveEnabled(System.Guid curve_id, System.Boolean enabled)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Sets whether shut-line is created for the given curve.",
        "since": "8.0"
      },
      {
        "signature": "System.Void SetCurveIsBump(System.Guid curve_id, System.Boolean b)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Sets whether to create a bump instead of a dent for the given curve.",
        "since": "8.0"
      },
      {
        "signature": "System.Void SetCurveProfile(System.Guid curve_id, System.Int32 profile)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Sets the profile of the shut-line for the given curve.",
        "since": "8.0"
      },
      {
        "signature": "System.Void SetCurvePull(System.Guid curve_id, System.Boolean pull)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Sets whether the given curve is pulled to the surface before creating the shut-line.",
        "since": "8.0"
      },
      {
        "signature": "System.Void SetCurveRadius(System.Guid curve_id, System.Double radius)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Sets the radius of the pipe used to create the shut-line for the given curve.",
        "since": "8.0"
      }
    ]
  },
  {
    "namespace": "Rhino.FileIO",
    "name": "File3dmStringTable",
    "dataType": "class",
    "summary": "Provides access to document strings in the 3dm file.",
    "properties": [
      {
        "signature": "int Count",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns the number of document strings in the 3dm file.",
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "int DocumentUserTextCount",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns the number of Section/Entry-style key values.",
        "since": "6.0",
        "property": ["get"]
      }
    ],
    "methods": [
      {
        "signature": "System.Void Delete(System.String section, System.String entry)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Removes document strings from the 3dm file.",
        "since": "6.0",
        "parameters": [
          {
            "name": "section",
            "type": "System.String",
            "summary": "name of section to delete. If null, all sections will be deleted."
          },
          {
            "name": "entry",
            "type": "System.String",
            "summary": "name of entry to delete. If null, all entries will be deleted for a given section."
          }
        ]
      },
      {
        "signature": "System.Void Delete(System.String key)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Removes a document string from the 3dm file.",
        "since": "6.0",
        "parameters": [
          {
            "name": "key",
            "type": "System.String",
            "summary": "The key to remove."
          }
        ]
      },
      {
        "signature": "System.String[] GetEntryNames(System.String section)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Return list of all entry names for a given section of document strings in the 3dm file.",
        "since": "6.0",
        "parameters": [
          {
            "name": "section",
            "type": "System.String",
            "summary": "The section from which to retrieve section names."
          }
        ],
        "returns": "An array of section names. This can be empty, but not null."
      },
      {
        "signature": "System.String GetKey(System.Int32 i)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns a key value at a given index.",
        "since": "6.0",
        "parameters": [
          {
            "name": "i",
            "type": "System.Int32",
            "summary": "The index."
          }
        ],
        "returns": "The key if successful."
      },
      {
        "signature": "System.String[] GetSectionNames()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns a list of all the section names for document strings in the 3dm file.  \nBy default a section name is a key that is prefixed with a string separated by a backslash.",
        "since": "6.0",
        "returns": "An array of section names. This can be empty, but not null."
      },
      {
        "signature": "System.String GetValue(System.Int32 i)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns a string value at a given index.",
        "since": "6.0",
        "parameters": [
          {
            "name": "i",
            "type": "System.Int32",
            "summary": "The index at which to get the value."
          }
        ],
        "returns": "The string value if successful."
      },
      {
        "signature": "System.String GetValue(System.String section, System.String entry)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns a string value given a section and entry.",
        "since": "6.0",
        "parameters": [
          {
            "name": "section",
            "type": "System.String",
            "summary": "The section at which to get the value."
          },
          {
            "name": "entry",
            "type": "System.String",
            "summary": "The entry to search for."
          }
        ],
        "returns": "The string value if successful."
      },
      {
        "signature": "System.String GetValue(System.String key)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns a string value at a key.",
        "since": "6.0",
        "parameters": [
          {
            "name": "key",
            "type": "System.String",
            "summary": "The key at which to get the value."
          }
        ],
        "returns": "The string value if successful."
      },
      {
        "signature": "System.String SetString(System.String section, System.String entry, System.String value)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Adds or sets a document string in the 3dm file.",
        "since": "6.0",
        "parameters": [
          {
            "name": "section",
            "type": "System.String",
            "summary": "The section."
          },
          {
            "name": "entry",
            "type": "System.String",
            "summary": "The entry name."
          },
          {
            "name": "value",
            "type": "System.String",
            "summary": "The entry value."
          }
        ],
        "returns": "The previous value if successful."
      },
      {
        "signature": "System.String SetString(System.String key, System.String value)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Adds or sets a document string in the 3dm file.",
        "since": "6.0",
        "parameters": [
          {
            "name": "key",
            "type": "System.String",
            "summary": "The key."
          },
          {
            "name": "value",
            "type": "System.String",
            "summary": "The entry value."
          }
        ],
        "returns": "The previous value if successful."
      }
    ]
  },
  {
    "namespace": "Rhino.FileIO",
    "name": "File3dmThickening",
    "dataType": "class",
    "summary": "Represents the thickening attached to file3dm object attributes.",
    "properties": [
      {
        "signature": "bool BothSides",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Specifies whether to thicken to both sides of the surface.",
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "double Distance",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Specifies how thick meshes will be made.",
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool OffsetOnly",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Specifies whether to only offset the original surface.",
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool On",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Specifies whether the feature is enabled or not.",
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool Solid",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Specifies whether to make open meshes solid by adding walls when thickening.",
        "since": "8.0",
        "property": ["get", "set"]
      }
    ]
  },
  {
    "namespace": "Rhino.FileIO",
    "name": "File3dmTypeCodes",
    "dataType": "class",
    "summary": "Typecode format 4 bytes long <pre>x xxxxxxxxxxxxxxx,x xxx xxxx xxxx x x xx  \n| |               | |               | |  |  \n|        |        |                 |  \n|        |        |         |       +---  \"stuff\" bit  \n|        |        |         |  \n|        |        |         +-- specific codes  \n|        |        |  \n|        |        +-- RESERVED - DO NOT USE (should be 0) (will be used to control CRC on/off)  \n|        |  \n|        +-- category:_000 0000 0000 0001  Legacy geometry    TCODE_LEGACY_GEOMETRY  \n|                     _000 0000 0000 0010  openNURBS object   TCODE_OPENNURBS_OBJECT  \n|                     _000 0000 0000 0100  -- RESERVED - DO NOT USE (should be 0 in any typecode) --  \n|                     _000 0000 0000 1000  -- RESERVED - DO NOT USE (should be 0 in any typecode) --  \n|                     _000 0000 0001 0000  Geometry           TCODE_GEOMETRY  \n|                     _000 0000 0010 0000  Annotation  \n|                     _000 0000 0100 0000  Display Attributes TCODE_DISPLAY  \n|                     _000 0000 1000 0000  Rendering          TCODE_RENDER  \n|                     _000 0001 0000 0000  \n|                     _000 0010 0000 0000  Interface          TCODE_INTERFACE  \n|                     _000 0100 0000 0000  -- RESERVED - DO NOT USE (should be 0 in any typecode) --  \n|                     _000 1000 0000 0000  Tolerances         TCODE_TOLERANCE  \n|                     _001 0000 0000 0000  Tables             TCODE_TABLE  \n|                     _010 0000 0000 0000  Table record       TCODE_TABLEREC  \n|                     _100 0000 0000 0000  User information   TCODE_USER  \n|  \n+-- format: 0 - data size in header  - data block follows    TCODE_SHORT  \n1 - data in header - no data block follows</pre>",
    "constructors": [
      {
        "signature": "File3dmTypeCodes()",
        "summary": "Initializes a new instance of the File3dmTypeCodes class"
      }
    ],
    "fields": [
      {
        "signature": "    public const uint TCODE_ANALYSIS_MESH = (TCODE_GEOMETRY | 0x0018)",
        "modifiers": ["public", "const"],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "    public const uint TCODE_ANGULAR_DIMENSION = (TCODE_ANNOTATION | 0x0007)",
        "modifiers": ["public", "const"],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "    public const uint TCODE_ANNOTATION = 0x00200000",
        "modifiers": ["public", "const"],
        "protected": false,
        "virtual": false,
        "summary": "0x0020000."
      },
      {
        "signature": "    public const uint TCODE_ANNOTATION_LEADER = (TCODE_ANNOTATION | 0x0005)",
        "modifiers": ["public", "const"],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "    public const uint TCODE_ANNOTATION_SETTINGS = (TCODE_ANNOTATION | 0x0001)",
        "modifiers": ["public", "const"],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "    public const uint TCODE_ANONYMOUS_CHUNK = (TCODE_USER | TCODE_CRC | 0x0000)",
        "modifiers": ["public", "const"],
        "protected": false,
        "virtual": false,
        "summary": "(TCODE_USER | TCODE_CRC | 0x0000)"
      },
      {
        "signature": "    public const uint TCODE_BITMAP_RECORD = (TCODE_TABLEREC | TCODE_CRC | 0x0090)",
        "modifiers": ["public", "const"],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "    public const uint TCODE_BITMAP_TABLE = (TCODE_TABLE | 0x0016)",
        "modifiers": ["public", "const"],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "    public const uint TCODE_BITMAPPREVIEW = (TCODE_INTERFACE | 0x0014)",
        "modifiers": ["public", "const"],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "    public const uint TCODE_BUMPMAP = (TCODE_DISPLAY | 0x0003)",
        "modifiers": ["public", "const"],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "    public const uint TCODE_COMMENTBLOCK = 0x00000001",
        "modifiers": ["public", "const"],
        "protected": false,
        "virtual": false,
        "summary": "(0x00000001) The TCODE_COMMENTBLOCK is the first chunk in the file, starts 32 bytes into the file, and contains text information terminated with a ^m_z.  This ^m_z and contents of this chunk were expanded in February 2000.  Files written with code released earlier than this will not have the ^m_z."
      },
      {
        "signature": "    public const uint TCODE_COMPRESSED_MESH_GEOMETRY = (TCODE_GEOMETRY | 0x0017)",
        "modifiers": ["public", "const"],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "    public const uint TCODE_CPLANE = (TCODE_INTERFACE | 0x0003)",
        "modifiers": ["public", "const"],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "    public const uint TCODE_CRC = 0x8000",
        "modifiers": ["public", "const"],
        "protected": false,
        "virtual": false,
        "summary": "0x8000."
      },
      {
        "signature": "    public const uint TCODE_CURRENTLAYER = (TCODE_SHORT | TCODE_DISPLAY | 0x0025)",
        "modifiers": ["public", "const"],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "    public const uint TCODE_DICTIONARY = (TCODE_USER | TCODE_CRC | 0x0010)",
        "modifiers": ["public", "const"],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "    public const uint TCODE_DICTIONARY_END = (TCODE_USER | TCODE_SHORT | 0x0013)",
        "modifiers": ["public", "const"],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "    public const uint TCODE_DICTIONARY_ENTRY = (TCODE_USER | TCODE_CRC | 0x0012)",
        "modifiers": ["public", "const"],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "    public const uint TCODE_DICTIONARY_ID = (TCODE_USER | TCODE_CRC | 0x0011)",
        "modifiers": ["public", "const"],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "    public const uint TCODE_DIMSTYLE_RECORD = (TCODE_TABLEREC | TCODE_CRC | 0x0075)",
        "modifiers": ["public", "const"],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "    public const uint TCODE_DIMSTYLE_TABLE = (TCODE_TABLE | 0x0020)",
        "modifiers": ["public", "const"],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "    public const uint TCODE_DISP_AM_RESOLUTION = (TCODE_SHORT | TCODE_DISPLAY | 0x0005)",
        "modifiers": ["public", "const"],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "    public const uint TCODE_DISP_CPLINES = (TCODE_SHORT | TCODE_DISPLAY | 0x0022)",
        "modifiers": ["public", "const"],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "    public const uint TCODE_DISP_MAXLENGTH = (TCODE_DISPLAY | 0x0023)",
        "modifiers": ["public", "const"],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "    public const uint TCODE_DISPLAY = 0x00400000",
        "modifiers": ["public", "const"],
        "protected": false,
        "virtual": false,
        "summary": "0x0040000."
      },
      {
        "signature": "    public const uint TCODE_ENDOFFILE = 0x00007FFF",
        "modifiers": ["public", "const"],
        "protected": false,
        "virtual": false,
        "summary": "(0x00007FFF) The TCODE_ENDOFFILE is the last chunk in the file and the first 4 bytes of information in this chunk is an integer that contains the file length. This chunk was added in February 2000 and files written with code released earlier than this will not have this termination block."
      },
      {
        "signature": "    public const uint TCODE_ENDOFFILE_GOO = 0x00007FFE",
        "modifiers": ["public", "const"],
        "protected": false,
        "virtual": false,
        "summary": "(0x00007FFE) this typecode is returned when a rogue eof marker is found Some v1 3dm file writers put these markers in a \"goo\". Simply skip these chunks and continue."
      },
      {
        "signature": "    public const uint TCODE_ENDOFTABLE = 0xFFFFFFFF",
        "modifiers": ["public", "const"],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "    public const uint TCODE_FONT_RECORD = (TCODE_TABLEREC | TCODE_CRC | 0x0074)",
        "modifiers": ["public", "const"],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "    public const uint TCODE_FONT_TABLE = (TCODE_TABLE | 0x0019)",
        "modifiers": ["public", "const"],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "    public const uint TCODE_GEOMETRY = 0x00100000",
        "modifiers": ["public", "const"],
        "protected": false,
        "virtual": false,
        "summary": "0x0010000."
      },
      {
        "signature": "    public const uint TCODE_GROUP_RECORD = (TCODE_TABLEREC | TCODE_CRC | 0x0073)",
        "modifiers": ["public", "const"],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "    public const uint TCODE_GROUP_TABLE = (TCODE_TABLE | 0x0018)",
        "modifiers": ["public", "const"],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "    public const uint TCODE_HATCHPATTERN_RECORD = (TCODE_TABLEREC | TCODE_CRC | 0x0077)",
        "modifiers": ["public", "const"],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "    public const uint TCODE_HATCHPATTERN_TABLE = (TCODE_TABLE | 0x0022)",
        "modifiers": ["public", "const"],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "    public const uint TCODE_HIDE_TRACE = (TCODE_INTERFACE | 0x000E)",
        "modifiers": ["public", "const"],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "    public const uint TCODE_HISTORYRECORD_RECORD = (TCODE_TABLEREC | TCODE_CRC | 0x007B)",
        "modifiers": ["public", "const"],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "    public const uint TCODE_HISTORYRECORD_TABLE = (TCODE_TABLE | 0x0026)",
        "modifiers": ["public", "const"],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "    public const uint TCODE_INSTANCE_DEFINITION_RECORD = (TCODE_TABLEREC | TCODE_CRC | 0x0076)",
        "modifiers": ["public", "const"],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "    public const uint TCODE_INSTANCE_DEFINITION_TABLE = (TCODE_TABLE | 0x0021)",
        "modifiers": ["public", "const"],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "    public const uint TCODE_INTERFACE = 0x02000000",
        "modifiers": ["public", "const"],
        "protected": false,
        "virtual": false,
        "summary": "0x02000000."
      },
      {
        "signature": "    public const uint TCODE_LAYER = (TCODE_DISPLAY | 0x0010)",
        "modifiers": ["public", "const"],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "    public const uint TCODE_LAYER_OBSELETE_1 = (TCODE_SHORT | TCODE_DISPLAY | 0x0013)",
        "modifiers": ["public", "const"],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "    public const uint TCODE_LAYER_OBSELETE_2 = (TCODE_SHORT | TCODE_DISPLAY | 0x0014)",
        "modifiers": ["public", "const"],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "    public const uint TCODE_LAYER_OBSELETE_3 = (TCODE_SHORT | TCODE_DISPLAY | 0x0015)",
        "modifiers": ["public", "const"],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "    public const uint TCODE_LAYER_RECORD = (TCODE_TABLEREC | TCODE_CRC | 0x0050)",
        "modifiers": ["public", "const"],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "    public const uint TCODE_LAYER_TABLE = (TCODE_TABLE | 0x0011)",
        "modifiers": ["public", "const"],
        "protected": false,
        "virtual": false,
        "summary": "layers."
      },
      {
        "signature": "    public const uint TCODE_LAYERINDEX = (TCODE_SHORT | TCODE_DISPLAY | 0x0034)",
        "modifiers": ["public", "const"],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "    public const uint TCODE_LAYERLOCKED = (TCODE_SHORT | TCODE_DISPLAY | 0x0018)",
        "modifiers": ["public", "const"],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "    public const uint TCODE_LAYERMATERIALINDEX = (TCODE_SHORT | TCODE_DISPLAY | 0x0035)",
        "modifiers": ["public", "const"],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "    public const uint TCODE_LAYERNAME = (TCODE_DISPLAY | 0x0011)",
        "modifiers": ["public", "const"],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "    public const uint TCODE_LAYERON = (TCODE_SHORT | TCODE_DISPLAY | 0x0016)",
        "modifiers": ["public", "const"],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "    public const uint TCODE_LAYERPICKABLE = (TCODE_SHORT | TCODE_DISPLAY | 0x0030)",
        "modifiers": ["public", "const"],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "    public const uint TCODE_LAYERREF = (TCODE_SHORT | TCODE_TABLEREC | 0x0001)",
        "modifiers": ["public", "const"],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "    public const uint TCODE_LAYERRENDERABLE = (TCODE_SHORT | TCODE_DISPLAY | 0x0032)",
        "modifiers": ["public", "const"],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "    public const uint TCODE_LAYERSNAPABLE = (TCODE_SHORT | TCODE_DISPLAY | 0x0031)",
        "modifiers": ["public", "const"],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "    public const uint TCODE_LAYERSTATE = (TCODE_SHORT | TCODE_DISPLAY | 0x0033)",
        "modifiers": ["public", "const"],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "    public const uint TCODE_LAYERTABLE = (TCODE_SHORT | TCODE_TABLE | 0x0001)",
        "modifiers": ["public", "const"],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "    public const uint TCODE_LAYERTHAWED = (TCODE_SHORT | TCODE_DISPLAY | 0x0017)",
        "modifiers": ["public", "const"],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "    public const uint TCODE_LAYERVISIBLE = (TCODE_SHORT | TCODE_DISPLAY | 0x0012)",
        "modifiers": ["public", "const"],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "    public const uint TCODE_LEGACY_ASM = (TCODE_LEGACY_GEOMETRY | 0x0001)",
        "modifiers": ["public", "const"],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "    public const uint TCODE_LEGACY_ASMSTUFF = (TCODE_LEGACY_GEOMETRY | TCODE_STUFF | TCODE_LEGACY_ASM)",
        "modifiers": ["public", "const"],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "    public const uint TCODE_LEGACY_BND = (TCODE_LEGACY_GEOMETRY | 0x0005)",
        "modifiers": ["public", "const"],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "    public const uint TCODE_LEGACY_BNDSTUFF = (TCODE_LEGACY_GEOMETRY | TCODE_STUFF | TCODE_LEGACY_BND)",
        "modifiers": ["public", "const"],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "    public const uint TCODE_LEGACY_CRV = (TCODE_LEGACY_GEOMETRY | 0x0008)",
        "modifiers": ["public", "const"],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "    public const uint TCODE_LEGACY_CRVSTUFF = (TCODE_LEGACY_GEOMETRY | TCODE_STUFF | TCODE_LEGACY_CRV)",
        "modifiers": ["public", "const"],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "    public const uint TCODE_LEGACY_FAC = (TCODE_LEGACY_GEOMETRY | 0x0004)",
        "modifiers": ["public", "const"],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "    public const uint TCODE_LEGACY_FACSTUFF = (TCODE_LEGACY_GEOMETRY | TCODE_STUFF | TCODE_LEGACY_FAC)",
        "modifiers": ["public", "const"],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "    public const uint TCODE_LEGACY_GEOMETRY = 0x00010000",
        "modifiers": ["public", "const"],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "    public const uint TCODE_LEGACY_PNT = (TCODE_LEGACY_GEOMETRY | 0x000A)",
        "modifiers": ["public", "const"],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "    public const uint TCODE_LEGACY_PNTSTUFF = (TCODE_LEGACY_GEOMETRY | TCODE_STUFF | TCODE_LEGACY_PNT)",
        "modifiers": ["public", "const"],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "    public const uint TCODE_LEGACY_PRT = (TCODE_LEGACY_GEOMETRY | 0x0002)",
        "modifiers": ["public", "const"],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "    public const uint TCODE_LEGACY_PRTSTUFF = (TCODE_LEGACY_GEOMETRY | TCODE_STUFF | TCODE_LEGACY_PRT)",
        "modifiers": ["public", "const"],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "    public const uint TCODE_LEGACY_SHL = (TCODE_LEGACY_GEOMETRY | 0x0003)",
        "modifiers": ["public", "const"],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "    public const uint TCODE_LEGACY_SHLSTUFF = (TCODE_LEGACY_GEOMETRY | TCODE_STUFF | TCODE_LEGACY_SHL)",
        "modifiers": ["public", "const"],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "    public const uint TCODE_LEGACY_SPL = (TCODE_LEGACY_GEOMETRY | 0x0009)",
        "modifiers": ["public", "const"],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "    public const uint TCODE_LEGACY_SPLSTUFF = (TCODE_LEGACY_GEOMETRY | TCODE_STUFF | TCODE_LEGACY_SPL)",
        "modifiers": ["public", "const"],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "    public const uint TCODE_LEGACY_SRF = (TCODE_LEGACY_GEOMETRY | 0x0007)",
        "modifiers": ["public", "const"],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "    public const uint TCODE_LEGACY_SRFSTUFF = (TCODE_LEGACY_GEOMETRY | TCODE_STUFF | TCODE_LEGACY_SRF)",
        "modifiers": ["public", "const"],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "    public const uint TCODE_LEGACY_TOL_ANGLE = (TCODE_TOLERANCE | 0x0002)",
        "modifiers": ["public", "const"],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "    public const uint TCODE_LEGACY_TOL_FIT = (TCODE_TOLERANCE | 0x0001)",
        "modifiers": ["public", "const"],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "    public const uint TCODE_LEGACY_TRM = (TCODE_LEGACY_GEOMETRY | 0x0006)",
        "modifiers": ["public", "const"],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "    public const uint TCODE_LEGACY_TRMSTUFF = (TCODE_LEGACY_GEOMETRY | TCODE_STUFF | TCODE_LEGACY_TRM)",
        "modifiers": ["public", "const"],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "    public const uint TCODE_LIGHT_RECORD = (TCODE_TABLEREC | TCODE_CRC | 0x0060)",
        "modifiers": ["public", "const"],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "    public const uint TCODE_LIGHT_RECORD_ATTRIBUTES = (TCODE_INTERFACE | TCODE_CRC | 0x0061)",
        "modifiers": ["public", "const"],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "    public const uint TCODE_LIGHT_RECORD_ATTRIBUTES_USERDATA = (TCODE_INTERFACE | 0x0062)",
        "modifiers": ["public", "const"],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "    public const uint TCODE_LIGHT_RECORD_END = (TCODE_INTERFACE | TCODE_SHORT | 0x006F)",
        "modifiers": ["public", "const"],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "    public const uint TCODE_LIGHT_TABLE = (TCODE_TABLE | 0x0012)",
        "modifiers": ["public", "const"],
        "protected": false,
        "virtual": false,
        "summary": "rendering lights."
      },
      {
        "signature": "    public const uint TCODE_LINEAR_DIMENSION = (TCODE_ANNOTATION | 0x0006)",
        "modifiers": ["public", "const"],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "    public const uint TCODE_LINETYPE_RECORD = (TCODE_TABLEREC | TCODE_CRC | 0x0078)",
        "modifiers": ["public", "const"],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "    public const uint TCODE_LINETYPE_TABLE = (TCODE_TABLE | 0x0023)",
        "modifiers": ["public", "const"],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "    public const uint TCODE_MARKUP_RECORD = (TCODE_TABLEREC | TCODE_CRC | 0x007D)",
        "modifiers": ["public", "const"],
        "protected": false,
        "virtual": false,
        "summary": "(TCODE_TABLEREC | TCODE_CRC | 0x007D)"
      },
      {
        "signature": "    public const uint TCODE_MARKUP_TABLE = (TCODE_TABLE | 0x0028)",
        "modifiers": ["public", "const"],
        "protected": false,
        "virtual": false,
        "summary": "(TCODE_TABLE | 0x0028)"
      },
      {
        "signature": "    public const uint TCODE_MATERIAL_RECORD = (TCODE_TABLEREC | TCODE_CRC | 0x0040)",
        "modifiers": ["public", "const"],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "    public const uint TCODE_MATERIAL_TABLE = (TCODE_TABLE | 0x0010)",
        "modifiers": ["public", "const"],
        "protected": false,
        "virtual": false,
        "summary": "rendering materials."
      },
      {
        "signature": "    public const uint TCODE_MAXIMIZED_VIEWPORT = (TCODE_SHORT | TCODE_INTERFACE | 0x0011)",
        "modifiers": ["public", "const"],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "    public const uint TCODE_MESH_OBJECT = (TCODE_GEOMETRY | 0x0015)",
        "modifiers": ["public", "const"],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "    public const uint TCODE_MODEL_ATTRIBUTES_CHUNK = (TCODE_USER | TCODE_CRC | 0x0002)",
        "modifiers": ["public", "const"],
        "protected": false,
        "virtual": false,
        "summary": "(TCODE_USER | TCODE_CRC | 0x0002)"
      },
      {
        "signature": "    public const uint TCODE_NAME = (TCODE_INTERFACE | 0x0001)",
        "modifiers": ["public", "const"],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "    public const uint TCODE_NAMED_CPLANE = (TCODE_INTERFACE | 0x0004)",
        "modifiers": ["public", "const"],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "    public const uint TCODE_NAMED_VIEW = (TCODE_INTERFACE | 0x0005)",
        "modifiers": ["public", "const"],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "    public const uint TCODE_NEAR_CLIP_PLANE = (TCODE_INTERFACE | 0x000D)",
        "modifiers": ["public", "const"],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "    public const uint TCODE_NOTES = (TCODE_INTERFACE | 0x000F)",
        "modifiers": ["public", "const"],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "    public const uint TCODE_OBJECT_RECORD = (TCODE_TABLEREC | TCODE_CRC | 0x0070)",
        "modifiers": ["public", "const"],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "    public const uint TCODE_OBJECT_RECORD_ATTRIBUTES = (TCODE_INTERFACE | TCODE_CRC | 0x0072)",
        "modifiers": ["public", "const"],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "    public const uint TCODE_OBJECT_RECORD_ATTRIBUTES_USERDATA = (TCODE_INTERFACE | 0x0073)",
        "modifiers": ["public", "const"],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "    public const uint TCODE_OBJECT_RECORD_END = (TCODE_INTERFACE | TCODE_SHORT | 0x007F)",
        "modifiers": ["public", "const"],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "    public const uint TCODE_OBJECT_RECORD_HISTORY = (TCODE_INTERFACE | TCODE_CRC | 0x0074)",
        "modifiers": ["public", "const"],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "    public const uint TCODE_OBJECT_RECORD_HISTORY_DATA = (TCODE_INTERFACE | TCODE_CRC | 0x0076)",
        "modifiers": ["public", "const"],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "    public const uint TCODE_OBJECT_RECORD_HISTORY_HEADER = (TCODE_INTERFACE | TCODE_CRC | 0x0075)",
        "modifiers": ["public", "const"],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "    public const uint TCODE_OBJECT_RECORD_TYPE = (TCODE_INTERFACE | TCODE_SHORT | 0x0071)",
        "modifiers": ["public", "const"],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "    public const uint TCODE_OBJECT_TABLE = (TCODE_TABLE | 0x0013)",
        "modifiers": ["public", "const"],
        "protected": false,
        "virtual": false,
        "summary": "geometry and annotation."
      },
      {
        "signature": "    public const uint TCODE_OBSOLETE_LAYERSET_RECORD = (TCODE_TABLEREC | TCODE_CRC | 0x0079)",
        "modifiers": ["public", "const"],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "    public const uint TCODE_OBSOLETE_LAYERSET_TABLE = (TCODE_TABLE | 0x0024)",
        "modifiers": ["public", "const"],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "    public const uint TCODE_OLD_FULLMESH = (TCODE_GEOMETRY | 0x0014)",
        "modifiers": ["public", "const"],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "    public const uint TCODE_OLD_MESH_UV = (TCODE_GEOMETRY | 0x0013)",
        "modifiers": ["public", "const"],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "    public const uint TCODE_OLD_MESH_VERTEX_NORMALS = (TCODE_GEOMETRY | 0x0012)",
        "modifiers": ["public", "const"],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "    public const uint TCODE_OLD_RH_TRIMESH = (TCODE_GEOMETRY | 0x0011)",
        "modifiers": ["public", "const"],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "    public const uint TCODE_OPENNURBS_CLASS = (TCODE_OPENNURBS_OBJECT | 0x7FFA)",
        "modifiers": ["public", "const"],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "    public const uint TCODE_OPENNURBS_CLASS_DATA = (TCODE_OPENNURBS_OBJECT | TCODE_CRC | 0x7FFC)",
        "modifiers": ["public", "const"],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "    public const uint TCODE_OPENNURBS_CLASS_END = (TCODE_OPENNURBS_OBJECT | TCODE_SHORT | 0x7FFF)",
        "modifiers": ["public", "const"],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "    public const uint TCODE_OPENNURBS_CLASS_USERDATA = (TCODE_OPENNURBS_OBJECT | 0x7FFD)",
        "modifiers": ["public", "const"],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "    public const uint TCODE_OPENNURBS_CLASS_USERDATA_HEADER = (TCODE_OPENNURBS_OBJECT | TCODE_CRC | 0x7FF9)",
        "modifiers": ["public", "const"],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "    public const uint TCODE_OPENNURBS_CLASS_UUID = (TCODE_OPENNURBS_OBJECT | TCODE_CRC | 0x7FFB)",
        "modifiers": ["public", "const"],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "    public const uint TCODE_OPENNURBS_OBJECT = 0x00020000",
        "modifiers": ["public", "const"],
        "protected": false,
        "virtual": false,
        "summary": "0x00020000."
      },
      {
        "signature": "    public const uint TCODE_PAGEVIEWGROUP_RECORD = (TCODE_TABLEREC | TCODE_CRC | 0x007E)",
        "modifiers": ["public", "const"],
        "protected": false,
        "virtual": false,
        "summary": "(TCODE_TABLEREC | TCODE_CRC | 0x007E)"
      },
      {
        "signature": "    public const uint TCODE_PAGEVIEWGROUP_TABLE = (TCODE_TABLE | 0x0029)",
        "modifiers": ["public", "const"],
        "protected": false,
        "virtual": false,
        "summary": "(TCODE_TABLE | 0x0029)"
      },
      {
        "signature": "    public const uint TCODE_PROPERTIES_APPLICATION = (TCODE_TABLEREC | TCODE_CRC | 0x0024)",
        "modifiers": ["public", "const"],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "    public const uint TCODE_PROPERTIES_AS_FILE_NAME = (TCODE_TABLEREC | TCODE_CRC | 0x0027)",
        "modifiers": ["public", "const"],
        "protected": false,
        "virtual": false,
        "summary": "(TCODE_TABLEREC | TCODE_CRC | 0x0027)"
      },
      {
        "signature": "    public const uint TCODE_PROPERTIES_COMPRESSED_PREVIEWIMAGE = (TCODE_TABLEREC | TCODE_CRC | 0x0025)",
        "modifiers": ["public", "const"],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "    public const uint TCODE_PROPERTIES_NOTES = (TCODE_TABLEREC | TCODE_CRC | 0x0022)",
        "modifiers": ["public", "const"],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "    public const uint TCODE_PROPERTIES_OPENNURBS_VERSION = (TCODE_TABLEREC | TCODE_SHORT | 0x0026)",
        "modifiers": ["public", "const"],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "    public const uint TCODE_PROPERTIES_PREVIEWIMAGE = (TCODE_TABLEREC | TCODE_CRC | 0x0023)",
        "modifiers": ["public", "const"],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "    public const uint TCODE_PROPERTIES_REVISIONHISTORY = (TCODE_TABLEREC | TCODE_CRC | 0x0021)",
        "modifiers": ["public", "const"],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "    public const uint TCODE_PROPERTIES_TABLE = (TCODE_TABLE | 0x0014)",
        "modifiers": ["public", "const"],
        "protected": false,
        "virtual": false,
        "summary": "Model Properties: revision history, notes, preview image."
      },
      {
        "signature": "    public const uint TCODE_RADIAL_DIMENSION = (TCODE_ANNOTATION | 0x0008)",
        "modifiers": ["public", "const"],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "    public const uint TCODE_RENDER = 0x00800000",
        "modifiers": ["public", "const"],
        "protected": false,
        "virtual": false,
        "summary": "0x0080000."
      },
      {
        "signature": "    public const uint TCODE_RENDER_MATERIAL_ID = (TCODE_DISPLAY | 0x0007)",
        "modifiers": ["public", "const"],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "    public const uint TCODE_RENDERMESHPARAMS = (TCODE_DISPLAY | 0x0020)",
        "modifiers": ["public", "const"],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "    public const uint TCODE_RGB = (TCODE_SHORT | TCODE_DISPLAY | 0x0001)",
        "modifiers": ["public", "const"],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "    public const uint TCODE_RGBDISPLAY = (TCODE_SHORT | TCODE_DISPLAY | 0x0006)",
        "modifiers": ["public", "const"],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "    public const uint TCODE_RH_POINT = (TCODE_GEOMETRY | 0x0001)",
        "modifiers": ["public", "const"],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "    public const uint TCODE_RH_SPOTLIGHT = (TCODE_RENDER | 0x0001)",
        "modifiers": ["public", "const"],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "    public const uint TCODE_RHINOIO_OBJECT_BREP = (TCODE_OPENNURBS_OBJECT | 0x000B)",
        "modifiers": ["public", "const"],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "    public const uint TCODE_RHINOIO_OBJECT_DATA = (TCODE_OPENNURBS_OBJECT | 0xFFFE)",
        "modifiers": ["public", "const"],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "    public const uint TCODE_RHINOIO_OBJECT_END = (TCODE_OPENNURBS_OBJECT | 0xFFFF)",
        "modifiers": ["public", "const"],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "    public const uint TCODE_RHINOIO_OBJECT_NURBS_CURVE = (TCODE_OPENNURBS_OBJECT | 0x0008)",
        "modifiers": ["public", "const"],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "    public const uint TCODE_RHINOIO_OBJECT_NURBS_SURFACE = (TCODE_OPENNURBS_OBJECT | 0x0009)",
        "modifiers": ["public", "const"],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "    public const uint TCODE_SECTION_STYLE_RECORD = (TCODE_TABLEREC | TCODE_CRC | 0x007C)",
        "modifiers": ["public", "const"],
        "protected": false,
        "virtual": false,
        "summary": "(TCODE_TABLEREC | TCODE_CRC | 0x007C)"
      },
      {
        "signature": "    public const uint TCODE_SECTION_STYLE_TABLE = (TCODE_TABLE | 0x0027)",
        "modifiers": ["public", "const"],
        "protected": false,
        "virtual": false,
        "summary": "(TCODE_TABLE | 0x0027)"
      },
      {
        "signature": "    public const uint TCODE_SETTINGS__NEVER__USE__THIS = (TCODE_TABLEREC | TCODE_CRC | 0x003E)",
        "modifiers": ["public", "const"],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "    public const uint TCODE_SETTINGS_ANALYSISMESH = (TCODE_TABLEREC | TCODE_CRC | 0x0033)",
        "modifiers": ["public", "const"],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "    public const uint TCODE_SETTINGS_ANNOTATION = (TCODE_TABLEREC | TCODE_CRC | 0x0034)",
        "modifiers": ["public", "const"],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "    public const uint TCODE_SETTINGS_ATTRIBUTES = (TCODE_TABLEREC | TCODE_CRC | 0x0134)",
        "modifiers": ["public", "const"],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "    public const uint TCODE_SETTINGS_CURRENT_COLOR = (TCODE_TABLEREC | TCODE_CRC | 0x003A)",
        "modifiers": ["public", "const"],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "    public const uint TCODE_SETTINGS_CURRENT_DIMSTYLE_INDEX = (TCODE_TABLEREC | TCODE_SHORT | 0x0133)",
        "modifiers": ["public", "const"],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "    public const uint TCODE_SETTINGS_CURRENT_FONT_INDEX = (TCODE_TABLEREC | TCODE_SHORT | 0x0132)",
        "modifiers": ["public", "const"],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "    public const uint TCODE_SETTINGS_CURRENT_LAYER_INDEX = (TCODE_TABLEREC | TCODE_SHORT | 0x0038)",
        "modifiers": ["public", "const"],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "    public const uint TCODE_SETTINGS_CURRENT_MATERIAL_INDEX = (TCODE_TABLEREC | TCODE_CRC | 0x0039)",
        "modifiers": ["public", "const"],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "    public const uint TCODE_SETTINGS_CURRENT_WIRE_DENSITY = (TCODE_TABLEREC | TCODE_SHORT | 0x003C)",
        "modifiers": ["public", "const"],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "    public const uint TCODE_SETTINGS_GRID_DEFAULTS = (TCODE_TABLEREC | TCODE_CRC | 0x003F)",
        "modifiers": ["public", "const"],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "    public const uint TCODE_SETTINGS_MODEL_URL = (TCODE_TABLEREC | TCODE_CRC | 0x0131)",
        "modifiers": ["public", "const"],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "    public const uint TCODE_SETTINGS_NAMED_CPLANE_LIST = (TCODE_TABLEREC | TCODE_CRC | 0x0035)",
        "modifiers": ["public", "const"],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "    public const uint TCODE_SETTINGS_NAMED_VIEW_LIST = (TCODE_TABLEREC | TCODE_CRC | 0x0036)",
        "modifiers": ["public", "const"],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "    public const uint TCODE_SETTINGS_PLUGINLIST = (TCODE_TABLEREC | TCODE_CRC | 0x0135)",
        "modifiers": ["public", "const"],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "    public const uint TCODE_SETTINGS_RENDER = (TCODE_TABLEREC | TCODE_CRC | 0x003D)",
        "modifiers": ["public", "const"],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "    public const uint TCODE_SETTINGS_RENDER_USERDATA = (TCODE_TABLEREC | TCODE_CRC | 0x0136)",
        "modifiers": ["public", "const"],
        "protected": false,
        "virtual": false,
        "summary": "(TCODE_TABLEREC | TCODE_CRC | 0x0136)"
      },
      {
        "signature": "    public const uint TCODE_SETTINGS_RENDERMESH = (TCODE_TABLEREC | TCODE_CRC | 0x0032)",
        "modifiers": ["public", "const"],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "    public const uint TCODE_SETTINGS_TABLE = (TCODE_TABLE | 0x0015)",
        "modifiers": ["public", "const"],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "    public const uint TCODE_SETTINGS_UNITSANDTOLS = (TCODE_TABLEREC | TCODE_CRC | 0x0031)",
        "modifiers": ["public", "const"],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "    public const uint TCODE_SETTINGS_VIEW_LIST = (TCODE_TABLEREC | TCODE_CRC | 0x0037)",
        "modifiers": ["public", "const"],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "    public const uint TCODE_SHORT = 0x80000000",
        "modifiers": ["public", "const"],
        "protected": false,
        "virtual": false,
        "summary": "0x80000000."
      },
      {
        "signature": "    public const uint TCODE_SHOWGRID = (TCODE_SHORT | TCODE_INTERFACE | 0x0007)",
        "modifiers": ["public", "const"],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "    public const uint TCODE_SHOWGRIDAXES = (TCODE_SHORT | TCODE_INTERFACE | 0x0008)",
        "modifiers": ["public", "const"],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "    public const uint TCODE_SHOWWORLDAXES = (TCODE_SHORT | TCODE_INTERFACE | 0x0009)",
        "modifiers": ["public", "const"],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "    public const uint TCODE_SNAPSIZE = (TCODE_INTERFACE | 0x000C)",
        "modifiers": ["public", "const"],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "    public const uint TCODE_STUFF = 0x0100",
        "modifiers": ["public", "const"],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "    public const uint TCODE_SUMMARY = (TCODE_INTERFACE | 0x0013)",
        "modifiers": ["public", "const"],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "    public const uint TCODE_TABLE = 0x10000000",
        "modifiers": ["public", "const"],
        "protected": false,
        "virtual": false,
        "summary": "0x10000000."
      },
      {
        "signature": "    public const uint TCODE_TABLEREC = 0x20000000",
        "modifiers": ["public", "const"],
        "protected": false,
        "virtual": false,
        "summary": "0x20000000."
      },
      {
        "signature": "    public const uint TCODE_TEXT_BLOCK = (TCODE_ANNOTATION | 0x0004)",
        "modifiers": ["public", "const"],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "    public const uint TCODE_TEXTURE_MAPPING_RECORD = (TCODE_TABLEREC | TCODE_CRC | 0x007A)",
        "modifiers": ["public", "const"],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "    public const uint TCODE_TEXTURE_MAPPING_TABLE = (TCODE_TABLE | 0x0025)",
        "modifiers": ["public", "const"],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "    public const uint TCODE_TEXTUREMAP = (TCODE_DISPLAY | 0x0002)",
        "modifiers": ["public", "const"],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "    public const uint TCODE_TOLERANCE = 0x08000000",
        "modifiers": ["public", "const"],
        "protected": false,
        "virtual": false,
        "summary": "0x08000000."
      },
      {
        "signature": "    public const uint TCODE_TRANSPARENCY = (TCODE_SHORT | TCODE_DISPLAY | 0x0004)",
        "modifiers": ["public", "const"],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "    public const uint TCODE_UNIT_AND_TOLERANCES = (TCODE_INTERFACE | 0x0010)",
        "modifiers": ["public", "const"],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "    public const uint TCODE_USER = 0x40000000",
        "modifiers": ["public", "const"],
        "protected": false,
        "virtual": false,
        "summary": "0x40000000."
      },
      {
        "signature": "    public const uint TCODE_USER_RECORD = (TCODE_TABLEREC | 0x0081)",
        "modifiers": ["public", "const"],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "    public const uint TCODE_USER_TABLE = (TCODE_TABLE | 0x0017)",
        "modifiers": ["public", "const"],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "    public const uint TCODE_USER_TABLE_RECORD_HEADER = (TCODE_TABLEREC | TCODE_CRC | 0x0082)",
        "modifiers": ["public", "const"],
        "protected": false,
        "virtual": false,
        "summary": "(TCODE_TABLEREC | TCODE_CRC | 0x0082)"
      },
      {
        "signature": "    public const uint TCODE_USER_TABLE_UUID = (TCODE_TABLEREC | TCODE_CRC | 0x0080)",
        "modifiers": ["public", "const"],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "    public const uint TCODE_UTF8_STRING_CHUNK = (TCODE_USER | TCODE_CRC | 0x0001)",
        "modifiers": ["public", "const"],
        "protected": false,
        "virtual": false,
        "summary": "(TCODE_USER | TCODE_CRC | 0x0001)"
      },
      {
        "signature": "    public const uint TCODE_VIEW = (TCODE_INTERFACE | 0x0002)",
        "modifiers": ["public", "const"],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "    public const uint TCODE_VIEW_ATTRIBUTES = (TCODE_TABLEREC | TCODE_CRC | 0x0C3B)",
        "modifiers": ["public", "const"],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "    public const uint TCODE_VIEW_CPLANE = (TCODE_TABLEREC | TCODE_CRC | 0x013B)",
        "modifiers": ["public", "const"],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "    public const uint TCODE_VIEW_DISPLAYMODE = (TCODE_TABLEREC | TCODE_SHORT | 0x093B)",
        "modifiers": ["public", "const"],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "    public const uint TCODE_VIEW_NAME = (TCODE_TABLEREC | TCODE_CRC | 0x0A3B)",
        "modifiers": ["public", "const"],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "    public const uint TCODE_VIEW_POSITION = (TCODE_TABLEREC | TCODE_CRC | 0x0B3B)",
        "modifiers": ["public", "const"],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "    public const uint TCODE_VIEW_RECORD = (TCODE_TABLEREC | TCODE_CRC | 0x003B)",
        "modifiers": ["public", "const"],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "    public const uint TCODE_VIEW_SHOWCONAXES = (TCODE_TABLEREC | TCODE_SHORT | 0x043B)",
        "modifiers": ["public", "const"],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "    public const uint TCODE_VIEW_SHOWCONGRID = (TCODE_TABLEREC | TCODE_SHORT | 0x033B)",
        "modifiers": ["public", "const"],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "    public const uint TCODE_VIEW_SHOWWORLDAXES = (TCODE_TABLEREC | TCODE_SHORT | 0x053B)",
        "modifiers": ["public", "const"],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "    public const uint TCODE_VIEW_TARGET = (TCODE_TABLEREC | TCODE_CRC | 0x083B)",
        "modifiers": ["public", "const"],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "    public const uint TCODE_VIEW_TRACEIMAGE = (TCODE_TABLEREC | TCODE_CRC | 0x063B)",
        "modifiers": ["public", "const"],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "    public const uint TCODE_VIEW_VIEWPORT = (TCODE_TABLEREC | TCODE_CRC | 0x023B)",
        "modifiers": ["public", "const"],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "    public const uint TCODE_VIEW_VIEWPORT_USERDATA = (TCODE_TABLEREC | TCODE_CRC | 0x0D3B)",
        "modifiers": ["public", "const"],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "    public const uint TCODE_VIEW_WALLPAPER = (TCODE_TABLEREC | TCODE_CRC | 0x073B)",
        "modifiers": ["public", "const"],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "    public const uint TCODE_VIEW_WALLPAPER_V3 = (TCODE_TABLEREC | TCODE_CRC | 0x074B)",
        "modifiers": ["public", "const"],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "    public const uint TCODE_VIEWPORT = (TCODE_INTERFACE | 0x0006)",
        "modifiers": ["public", "const"],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "    public const uint TCODE_VIEWPORT_DISPLAY_MODE = (TCODE_SHORT | TCODE_INTERFACE | 0x0015)",
        "modifiers": ["public", "const"],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "    public const uint TCODE_VIEWPORT_POSITION = (TCODE_INTERFACE | 0x000A)",
        "modifiers": ["public", "const"],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "    public const uint TCODE_VIEWPORT_TRACEINFO = (TCODE_INTERFACE | 0x000B)",
        "modifiers": ["public", "const"],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "    public const uint TCODE_VIEWPORT_WALLPAPER = (TCODE_INTERFACE | 0x0012)",
        "modifiers": ["public", "const"],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "    public const uint TCODE_XDATA = (TCODE_USER | 0x0001)",
        "modifiers": ["public", "const"],
        "protected": false,
        "virtual": false,
        "summary": "(TCODE_USER | 0x0001)"
      }
    ]

  },
  {
    "namespace": "Rhino.FileIO",
    "name": "File3dmViewTable",
    "dataType": "class",
    "summary": "Provides access to views in the 3dm file.",
    "interfaces": ["IList<ViewInfo>", "Collections.IRhinoTable<DocObjects.ViewInfo>"],
    "properties": [
      {
        "signature": "int Count",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the amount of items in the table.",
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "ViewInfo this[int index]",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the view info at an index. The set method always throws NotSupportedException."
      }
    ],
    "methods": [
      {
        "signature": "System.Void Add(DocObjects.ViewInfo item)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Adds a",
        "since": "6.0"
      },
      {
        "signature": "System.Void Clear()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Removes all items from the table.",
        "since": "6.0"
      },
      {
        "signature": "System.Boolean Contains(DocObjects.ViewInfo item)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns an indication of the presence of a view in the table.",
        "since": "6.0",
        "parameters": [
          {
            "name": "item",
            "type": "DocObjects.ViewInfo",
            "summary": "The view to check."
          }
        ],
        "returns": "True if the item is in the table; False otherwise."
      },
      {
        "signature": "System.Void CopyTo(DocObjects.ViewInfo[] array, System.Int32 arrayIndex)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Copies the content of the table to an array.",
        "since": "6.0"
      },
      {
        "signature": "System.Boolean Delete(DocObjects.ViewInfo item)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Deletes an item.",
        "since": "6.0"
      },
      {
        "signature": "System.Boolean Delete(System.Int32 index)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Removes an item.",
        "since": "6.0",
        "parameters": [
          {
            "name": "index",
            "type": "System.Int32",
            "summary": "The index of the item to remove."
          }
        ],
        "returns": "True if the item was removed."
      },
      {
        "signature": "ViewInfo FindName(System.String name)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Finds a ViewInfo given its name.",
        "since": "6.0",
        "parameters": [
          {
            "name": "name",
            "type": "System.String",
            "summary": "The name of the ViewInfo to be searched."
          }
        ],
        "returns": "An ViewInfo, or None on error."
      },
      {
        "signature": "IEnumerator<DocObjects.ViewInfo> GetEnumerator()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns an enumerator that yields all views in the table.",
        "since": "6.0",
        "returns": "An enumerator."
      },
      {
        "signature": "System.Int32 IndexOf(DocObjects.ViewInfo item)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns the index of the current ViewInfo.",
        "since": "6.0",
        "parameters": [
          {
            "name": "item",
            "type": "DocObjects.ViewInfo",
            "summary": "The item to be searched."
          }
        ],
        "returns": "The index of the ViewInfo."
      }
    ]
  },
  {
    "namespace": "Rhino.FileIO",
    "name": "File3dmWriteOptions",
    "dataType": "class",
    "summary": "Options used by File3dm.Write",
    "constructors": [
      {
        "signature": "File3dmWriteOptions()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Initializes properties to defaults.",
        "since": "5.9"
      }
    ],
    "properties": [
      {
        "signature": "bool SaveAnalysisMeshes",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Include analysis meshes in the file. Default is true",
        "since": "5.9",
        "obsolete": "Specify analysis meshes for object types individually. Use EnableAnalysisMeshes",
        "property": ["get", "set"]
      },
      {
        "signature": "bool SaveRenderMeshes",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Include Render meshes in the file. Default is true",
        "since": "5.9",
        "obsolete": "Specify analysis meshes for object types individually. Use EnableAnalysisMeshes",
        "property": ["get", "set"]
      },
      {
        "signature": "bool SaveUserData",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Include custom user data in the file. Default is true",
        "since": "5.9",
        "property": ["get", "set"]
      },
      {
        "signature": "int Version",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "File version. Default is major version number of this assembly version.  \nMust be in range [2; current version].  \nAlternatively, 0 is a placeholder for the last valid version.  \nRhino can read its current version, plus earlier file versions except 1.  \nUse latest version when possible.",
        "since": "5.9",
        "property": ["get", "set"]
      }
    ],
    "methods": [
      {
        "signature": "System.Void EnableAnalysisMeshes(ObjectType objectType, System.Boolean enable)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Activates saving of analysis meshes for specific types of objects. If you do not specify the state for an object type, its default is used. Currently SubD mesh saving is disabled by default, while Brep and Extrusion is enabled.",
        "since": "6.0",
        "parameters": [
          {
            "name": "objectType",
            "type": "ObjectType",
            "summary": "The object type. Mostly mesh, brep, extrusion and SubD (or their flag combinations) make sense here.  \nDO NOT specify a 'filter' or sub-object type."
          },
          {
            "name": "enable",
            "type": "System.Boolean",
            "summary": "If false, disables saving for this object type."
          }
        ]
      },
      {
        "signature": "System.Void EnableRenderMeshes(ObjectType objectType, System.Boolean enable)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Activates saving of render meshes for specific types of objects. If you do not specify the state for an object type, its default is used. Specifically, currently SubD mesh saving is disabled by default, while Brep and Extrusion is on.",
        "since": "6.0",
        "parameters": [
          {
            "name": "objectType",
            "type": "ObjectType",
            "summary": "The object type. Mostly brep, extrusion and SubD (or their flag combinations) make sense here.  \nDO NOT specify a 'filter' or sub-object type."
          },
          {
            "name": "enable",
            "type": "System.Boolean",
            "summary": "If false, disables saving for this object type."
          }
        ]
      }
    ]
  },
  {
    "namespace": "Rhino.FileIO",
    "name": "File3ds",
    "dataType": "class",
    "summary": "Support for writing 3ds file format",
    "constructors": [
      {
        "signature": "File3ds()",
        "summary": "Initializes a new instance of the File3ds class"
      }
    ],
    "methods": [
      {
        "signature": "System.Boolean Read(System.String path, RhinoDoc doc, File3dsReadOptions options)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Read a 3ds file intof a RhinoDoc",
        "since": "8.0",
        "parameters": [
          {
            "name": "path",
            "type": "System.String",
            "summary": "path to read a file from"
          },
          {
            "name": "doc",
            "type": "RhinoDoc",
            "summary": "document to import geometry into"
          },
          {
            "name": "options",
            "type": "File3dsReadOptions",
            "summary": "options used for importing the 3ds file"
          }
        ],
        "returns": "True on success"
      },
      {
        "signature": "System.Boolean Write(System.String path, RhinoDoc doc, File3dsWriteOptions options)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Write a 3ds file based on the contents of a RhinoDoc",
        "since": "8.0",
        "parameters": [
          {
            "name": "path",
            "type": "System.String",
            "summary": "path to write a file to"
          },
          {
            "name": "doc",
            "type": "RhinoDoc",
            "summary": "document to get geometry from"
          },
          {
            "name": "options",
            "type": "File3dsWriteOptions",
            "summary": "options used for generating the 3ds file"
          }
        ],
        "returns": "True on success"
      }
    ]
  },
  {
    "namespace": "Rhino.FileIO",
    "name": "File3dsReadOptions",
    "dataType": "class",
    "summary": "Options for reading a 3ds file",
    "constructors": [
      {
        "signature": "File3dsReadOptions()",
        "summary": "Initializes a new instance of the File3dsReadOptions class"
      }
    ],
    "properties": [
      {
        "signature": "bool ImportCameras",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool ImportLights",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool Unweld",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "double UnweldAngle",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "8.0",
        "property": ["get", "set"]
      }
    ],
    "methods": [
      {
        "signature": "Rhino.Collections.ArchivableDictionary ToDictionary()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Create a dictionary of these options. This dictionary can be passed to the RhinoDoc.Export function",
        "since": "8.0"
      }
    ]
  },
  {
    "namespace": "Rhino.FileIO",
    "name": "File3dsWriteOptions",
    "dataType": "class",
    "summary": "Options for writing a 3ds file",
    "constructors": [
      {
        "signature": "File3dsWriteOptions()",
        "summary": "Initializes a new instance of the File3dsWriteOptions class"
      }
    ],
    "properties": [
      {
        "signature": "MeshingParameters MeshingParameters",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool SaveLights",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool SaveViews",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "8.0",
        "property": ["get", "set"]
      }
    ],
    "methods": [
      {
        "signature": "Rhino.Collections.ArchivableDictionary ToDictionary()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Create a dictionary of these options. This dictionary can be passed to the RhinoDoc.Export function",
        "since": "8.0"
      }
    ]
  },
  {
    "namespace": "Rhino.FileIO",
    "name": "File3mf",
    "dataType": "class",
    "summary": "Support for writing 3mf file format",
    "constructors": [
      {
        "signature": "File3mf()",
        "summary": "Initializes a new instance of the File3mf class"
      }
    ],
    "methods": [
      {
        "signature": "System.Boolean Write(System.String path, RhinoDoc doc, File3mfWriteOptions options)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Write a 3mf file based on the contents of a RhinoDoc",
        "since": "8.0",
        "parameters": [
          {
            "name": "path",
            "type": "System.String",
            "summary": "path to write a file to"
          },
          {
            "name": "doc",
            "type": "RhinoDoc",
            "summary": "document to get geometry from"
          },
          {
            "name": "options",
            "type": "File3mfWriteOptions",
            "summary": "options used for generating the Vda file"
          }
        ],
        "returns": "True on success"
      }
    ]
  },
  {
    "namespace": "Rhino.FileIO",
    "name": "File3mfWriteOptions",
    "dataType": "class",
    "summary": "Options for writing a 3mf file",
    "constructors": [
      {
        "signature": "File3mfWriteOptions()",
        "summary": "Initializes a new instance of the File3mfWriteOptions class"
      }
    ],
    "properties": [
      {
        "signature": "string Copyright",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "8.7",
        "property": ["get", "set"]
      },
      {
        "signature": "string Description",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "8.7",
        "property": ["get", "set"]
      },
      {
        "signature": "string Designer",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "8.7",
        "property": ["get", "set"]
      },
      {
        "signature": "string LicenseTerms",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "8.7",
        "property": ["get", "set"]
      },
      {
        "signature": "Dictionary<string, string> Metadata",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "8.7",
        "property": ["get"]
      },
      {
        "signature": "bool MoveOutputToPositiveXYZOctant",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "8.7",
        "property": ["get", "set"]
      },
      {
        "signature": "string Rating",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "8.7",
        "property": ["get", "set"]
      },
      {
        "signature": "string Title",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "8.7",
        "property": ["get", "set"]
      }
    ],
    "methods": [
      {
        "signature": "Rhino.Collections.ArchivableDictionary ToDictionary()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Create a dictionary of these options. This dictionary can be passed to the RhinoDoc.Export function",
        "since": "8.7"
      }
    ]
  },
  {
    "namespace": "Rhino.FileIO",
    "name": "FileAi",
    "dataType": "class",
    "summary": "Support for writing ai file format",
    "constructors": [
      {
        "signature": "FileAi()",
        "summary": "Initializes a new instance of the FileAi class"
      }
    ],
    "methods": [
      {
        "signature": "System.Boolean Read(System.String path, RhinoDoc doc, FileAiReadOptions options)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Read a Ai file into a RhinoDoc",
        "since": "8.0",
        "parameters": [
          {
            "name": "path",
            "type": "System.String",
            "summary": "path to read a file from"
          },
          {
            "name": "doc",
            "type": "RhinoDoc",
            "summary": "document to import geometry into"
          },
          {
            "name": "options",
            "type": "FileAiReadOptions",
            "summary": "options used for importing the Ai file"
          }
        ],
        "returns": "True on success"
      },
      {
        "signature": "System.Boolean Write(System.String path, RhinoDoc doc, FileAiWriteOptions options)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Write a Ai file based on the contents of a RhinoDoc",
        "since": "8.0",
        "parameters": [
          {
            "name": "path",
            "type": "System.String",
            "summary": "path to write a file to"
          },
          {
            "name": "doc",
            "type": "RhinoDoc",
            "summary": "document to get geometry from"
          },
          {
            "name": "options",
            "type": "FileAiWriteOptions",
            "summary": "options used for generating the ai file"
          }
        ],
        "returns": "True on success"
      }
    ]
  },
  {
    "namespace": "Rhino.FileIO",
    "name": "FileAiReadOptions",
    "dataType": "class",
    "summary": "Options for reading a AI file (old ai files, ps not pdf)",
    "constructors": [
      {
        "signature": "FileAiReadOptions()",
        "summary": "Initializes a new instance of the FileAiReadOptions class"
      }
    ],
    "properties": [
      {
        "signature": "double AiScale",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "Units AiUnits",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool PreserveModelScale",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "double RhinoScale",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "8.0",
        "property": ["get", "set"]
      }
    ],
    "methods": [
      {
        "signature": "Rhino.Collections.ArchivableDictionary ToDictionary()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "8.0"
      }
    ]
  },
  {
    "namespace": "Rhino.FileIO",
    "name": "FileAiReadOptions.Units",
    "dataType": "enum",
    "since": "8.0",
    "values": [
      {
        "signature": "Inches = 0",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "inches"
      },
      {
        "signature": "Centimeters = 1",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "centimeters"
      },
      {
        "signature": "Millimeters = 2",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "millimeters"
      },
      {
        "signature": "Points = 3",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "points"
      }
    ]

  },
  {
    "namespace": "Rhino.FileIO",
    "name": "FileAiWriteOptions",
    "dataType": "class",
    "summary": "Options for writing a ai file",
    "constructors": [
      {
        "signature": "FileAiWriteOptions()",
        "summary": "Initializes a new instance of the FileAiWriteOptions class"
      }
    ],
    "properties": [
      {
        "signature": "double AIScale",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "Units AiUnits",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool ExportHatchesAsSolidFills",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool ExportViewBoundary",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool OrderLayers",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool PreserveModelScale",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "double RhinoScale",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool UseCMYK",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "8.0",
        "property": ["get", "set"]
      }
    ],
    "methods": [
      {
        "signature": "Rhino.Collections.ArchivableDictionary ToDictionary()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "8.0"
      }
    ]
  },
  {
    "namespace": "Rhino.FileIO",
    "name": "FileAiWriteOptions.Units",
    "dataType": "enum",
    "since": "8.0",
    "values": [
      {
        "signature": "Inches = 0",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "inches"
      },
      {
        "signature": "Centimeters = 1",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "centimeters"
      },
      {
        "signature": "Millimeters = 2",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "millimeters"
      },
      {
        "signature": "Points = 3",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "points"
      }
    ]

  },
  {
    "namespace": "Rhino.FileIO",
    "name": "FileAmf",
    "dataType": "class",
    "summary": "Support for writing amf file format",
    "constructors": [
      {
        "signature": "FileAmf()",
        "summary": "Initializes a new instance of the FileAmf class"
      }
    ],
    "methods": [
      {
        "signature": "System.Boolean Write(System.String path, RhinoDoc doc, FileAmfWriteOptions options)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Write a amf file based on the contents of a RhinoDoc",
        "since": "8.0",
        "parameters": [
          {
            "name": "path",
            "type": "System.String",
            "summary": "path to write a file to"
          },
          {
            "name": "doc",
            "type": "RhinoDoc",
            "summary": "document to get geometry from"
          },
          {
            "name": "options",
            "type": "FileAmfWriteOptions",
            "summary": "options used for generating the amf file"
          }
        ],
        "returns": "True on success"
      }
    ]
  },
  {
    "namespace": "Rhino.FileIO",
    "name": "FileAmfWriteOptions",
    "dataType": "class",
    "summary": "Options for writing a amf file",
    "constructors": [
      {
        "signature": "FileAmfWriteOptions()",
        "summary": "Initializes a new instance of the FileAmfWriteOptions class"
      }
    ],
    "properties": [
      {
        "signature": "MeshingParameters MeshingParameters",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "8.0",
        "property": ["get", "set"]
      }
    ],
    "methods": [
      {
        "signature": "Rhino.Collections.ArchivableDictionary ToDictionary()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Create a dictionary of these options. This dictionary can be passed to the RhinoDoc.Export function",
        "since": "8.0"
      }
    ]
  },
  {
    "namespace": "Rhino.FileIO",
    "name": "FileCd",
    "dataType": "class",
    "summary": "Support for writing CD file format",
    "constructors": [
      {
        "signature": "FileCd()",
        "summary": "Initializes a new instance of the FileCd class"
      }
    ],
    "methods": [
      {
        "signature": "System.Boolean Write(System.String path, RhinoDoc doc, FileCdWriteOptions options)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Write a CD file based on the contents of a RhinoDoc",
        "since": "8.0",
        "parameters": [
          {
            "name": "path",
            "type": "System.String",
            "summary": "path to write a file to"
          },
          {
            "name": "doc",
            "type": "RhinoDoc",
            "summary": "document to get geometry from"
          },
          {
            "name": "options",
            "type": "FileCdWriteOptions",
            "summary": "options used for generating the CD file"
          }
        ],
        "returns": "True on success"
      }
    ]
  },
  {
    "namespace": "Rhino.FileIO",
    "name": "FileCdWriteOptions",
    "dataType": "class",
    "summary": "Options for writing a CD file",
    "constructors": [
      {
        "signature": "FileCdWriteOptions()",
        "summary": "Initializes a new instance of the FileCdWriteOptions class"
      }
    ],
    "properties": [
      {
        "signature": "MeshingParameters MeshingParameters",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "8.0",
        "property": ["get", "set"]
      }
    ],
    "methods": [
      {
        "signature": "Rhino.Collections.ArchivableDictionary ToDictionary()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Create a dictionary of these options. This dictionary can be passed to the RhinoDoc.Export function",
        "since": "8.0"
      }
    ]
  },
  {
    "namespace": "Rhino.FileIO",
    "name": "FileCsv",
    "dataType": "class",
    "summary": "Support for writing Csv file format",
    "constructors": [
      {
        "signature": "FileCsv()",
        "summary": "Initializes a new instance of the FileCsv class"
      }
    ],
    "methods": [
      {
        "signature": "System.Boolean Write(System.String path, RhinoDoc doc, FileCsvWriteOptions options)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Write a Csv file based on the contents of a RhinoDoc",
        "since": "8.0",
        "parameters": [
          {
            "name": "path",
            "type": "System.String",
            "summary": "path to write a file to"
          },
          {
            "name": "doc",
            "type": "RhinoDoc",
            "summary": "document to get geometry from"
          },
          {
            "name": "options",
            "type": "FileCsvWriteOptions",
            "summary": "options used for generating the Csv file"
          }
        ],
        "returns": "True on success"
      }
    ]
  },
  {
    "namespace": "Rhino.FileIO",
    "name": "FileCsvWriteOptions",
    "dataType": "class",
    "summary": "Options for writing a Csv file. Set any value you want included in the output to true. With the exception of Header and CumulativeMassProperties, all checked items apply to each and every object exported.",
    "constructors": [
      {
        "signature": "FileCsvWriteOptions()",
        "summary": "Initializes a new instance of the FileCsvWriteOptions class"
      }
    ],
    "properties": [
      {
        "signature": "bool Area",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool AreaCentroid",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool AreaMoments",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool AttributesKeys",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "User text",
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool AttributesTexts",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool CumulativeMassProperties",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool GroupIndexes",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool GroupName",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Group information",
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool Header",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "General",
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool LayerColor",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool LayerHierarchy",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool LayerIndex",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool LayerName",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Layer information",
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool Length",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Mass properties",
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool ObjectColor",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool ObjectDescription",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool ObjectID",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool ObjectKeys",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool ObjectMaterial",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool ObjectName",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Object information",
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool ObjectsTexts",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool Perimeter",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool SurroundPointsWithDoubleQuotes",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool Volume",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool VolumeCentroid",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool VolumeMoments",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "8.0",
        "property": ["get", "set"]
      }
    ],
    "methods": [
      {
        "signature": "Rhino.Collections.ArchivableDictionary ToDictionary()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Create a dictionary of these options. This dictionary can be passed to the RhinoDoc.Export function",
        "since": "8.0"
      }
    ]
  },
  {
    "namespace": "Rhino.FileIO",
    "name": "FileDgn",
    "dataType": "class",
    "summary": "Support for writing Dgn file format",
    "constructors": [
      {
        "signature": "FileDgn()",
        "summary": "Initializes a new instance of the FileDgn class"
      }
    ],
    "methods": [
      {
        "signature": "System.Boolean Read(System.String path, RhinoDoc doc, FileDgnReadOptions options)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Read a dgn file into a RhinoDoc",
        "since": "8.0",
        "parameters": [
          {
            "name": "path",
            "type": "System.String",
            "summary": "path to read a file from"
          },
          {
            "name": "doc",
            "type": "RhinoDoc",
            "summary": "document to import geometry into"
          },
          {
            "name": "options",
            "type": "FileDgnReadOptions",
            "summary": "options used for importing the dgn  file"
          }
        ],
        "returns": "True on success"
      }
    ]
  },
  {
    "namespace": "Rhino.FileIO",
    "name": "FileDgnReadOptions",
    "dataType": "class",
    "summary": "Options for reading a Dgn file",
    "constructors": [
      {
        "signature": "FileDgnReadOptions()",
        "summary": "Initializes a new instance of the FileDgnReadOptions class"
      }
    ],
    "properties": [
      {
        "signature": "bool GroupCellHeaders",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool ImportUnreferencedBlocks",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool ImportUnreferencedLayers",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool ImportUnreferencedLineStyles",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool ImportViews",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "8.0",
        "property": ["get", "set"]
      }
    ],
    "methods": [
      {
        "signature": "Rhino.Collections.ArchivableDictionary ToDictionary()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Create a dictionary of these options. This dictionary can be passed to the RhinoDoc.Export function",
        "since": "8.0"
      }
    ]
  },
  {
    "namespace": "Rhino.FileIO",
    "name": "FileDst",
    "dataType": "class",
    "summary": "Support for writing dst file format",
    "constructors": [
      {
        "signature": "FileDst()",
        "summary": "Initializes a new instance of the FileDst class"
      }
    ],
    "methods": [
      {
        "signature": "System.Boolean Read(System.String path, RhinoDoc doc, FileDstReadOptions options)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Read a dst file into a RhinoDoc",
        "since": "8.0",
        "parameters": [
          {
            "name": "path",
            "type": "System.String",
            "summary": "path to read a file from"
          },
          {
            "name": "doc",
            "type": "RhinoDoc",
            "summary": "document to import geometry into"
          },
          {
            "name": "options",
            "type": "FileDstReadOptions",
            "summary": "options used for importing the dst file"
          }
        ],
        "returns": "True on success"
      }
    ]
  },
  {
    "namespace": "Rhino.FileIO",
    "name": "FileDstReadOptions",
    "dataType": "class",
    "summary": "Options for reading a Dst file",
    "constructors": [
      {
        "signature": "FileDstReadOptions()",
        "summary": "Initializes a new instance of the FileDstReadOptions class"
      }
    ],
    "properties": [
      {
        "signature": "bool ImportJumps",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "8.0",
        "property": ["get", "set"]
      }
    ],
    "methods": [
      {
        "signature": "Rhino.Collections.ArchivableDictionary ToDictionary()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Create a dictionary of these options. This dictionary can be passed to the RhinoDoc.Export function",
        "since": "8.0"
      }
    ]
  },
  {
    "namespace": "Rhino.FileIO",
    "name": "FileDwg",
    "dataType": "class",
    "summary": "Support for writing DWG file format",
    "constructors": [
      {
        "signature": "FileDwg()",
        "summary": "Initializes a new instance of the FileDwg class"
      }
    ],
    "methods": [
      {
        "signature": "System.Boolean Read(System.String path, RhinoDoc doc, FileDwgReadOptions options)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Read a DWG file into a RhinoDoc",
        "since": "8.0",
        "parameters": [
          {
            "name": "path",
            "type": "System.String",
            "summary": "path to read a file from"
          },
          {
            "name": "doc",
            "type": "RhinoDoc",
            "summary": "document to import geometry into"
          },
          {
            "name": "options",
            "type": "FileDwgReadOptions",
            "summary": "options used for importing the DWG file"
          }
        ],
        "returns": "True on success"
      },
      {
        "signature": "System.Boolean Write(System.String path, RhinoDoc doc, FileDwgWriteOptions options)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Write a DWG file based on the contents of a RhinoDoc",
        "since": "8.0",
        "parameters": [
          {
            "name": "path",
            "type": "System.String",
            "summary": "path to write a file to"
          },
          {
            "name": "doc",
            "type": "RhinoDoc",
            "summary": "document to get geometry from"
          },
          {
            "name": "options",
            "type": "FileDwgWriteOptions",
            "summary": "options used for generating the DWG file"
          }
        ],
        "returns": "True on success"
      }
    ]
  },
  {
    "namespace": "Rhino.FileIO",
    "name": "FileDwgReadOptions",
    "dataType": "class",
    "summary": "Options for reading a DWG file",
    "constructors": [
      {
        "signature": "FileDwgReadOptions()",
        "summary": "Initializes a new instance of the FileDwgReadOptions class"
      }
    ],
    "properties": [
      {
        "signature": "bool ConvertRegionsToCurves",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool ConvertWidePolylinesToSurfaces",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool IgnoreThickness",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool ImportUnreferencedBlocks",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool ImportUnreferencedLayers",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool ImportUnreferencedLinetypes",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "UnitSystem LayoutUnits",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool MakeExtrusions",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "9.0",
        "property": ["get", "set"]
      },
      {
        "signature": "MeshPrecisionMode MeshPrecision",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "UnitSystem ModelUnits",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool NestLayers",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "9.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool SetLayerMaterialToLayerColor",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "8.0",
        "property": ["get", "set"]
      }
    ],
    "methods": [
      {
        "signature": "Rhino.Collections.ArchivableDictionary ToDictionary()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Create a dictionary of these options. This dictionary can be passed to the RhinoDoc.Export function",
        "since": "8.0"
      }
    ]
  },
  {
    "namespace": "Rhino.FileIO",
    "name": "FileDwgReadOptions.MeshPrecisionMode",
    "dataType": "enum",
    "since": "8.0",
    "values": [
      {
        "signature": "Automatic = 0",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "DoublePrecision = 1",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "SinglePrecision = 2",
        "modifiers": [],
        "protected": false,
        "virtual": false
      }
    ]

  },
  {
    "namespace": "Rhino.FileIO",
    "name": "FileDwgWriteOptions",
    "dataType": "class",
    "summary": "Options for writing a DWG file",
    "constructors": [
      {
        "signature": "FileDwgWriteOptions()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "AutoCAD version format to write to",
        "since": "8.0"
      },
      {
        "signature": "FileDwgWriteOptions(FileDwgWriteOptions opt)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "9.0"
      }
    ],
    "properties": [
      {
        "signature": "ColorMethodType ColorMethod",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "pallette index: clrACI, RGB: clrRGB",
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "double CurveChordHeight",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Absolute distance from pline to nurb",
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "double CurveMaxAngleDegrees",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Angle between pline segments in writing curve",
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "double CurveMaxAngleRadians",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Angle between pline segments in writing curve",
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "double CurveSegmentLength",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Max length for any polyline segment",
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool CurveUseChordHeight",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool CurveUseMaxAngle",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool CurveUseSegmentLength",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "ExportArcMode ExportArcsAs",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "ExportLineMode ExportLinesAs",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "ExportMeshMode ExportMeshesAs",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Rhino meshes as polyface meshes or 3dfaces",
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "ExportPolycurveMode ExportPolycurvesAs",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "ExportPolylineMode ExportPolylinesAs",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "ExportSplineMode ExportSplinesAs",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "ExportSurfaceMode ExportSurfacesAs",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Rhino surcaces as meshes(0) or curves(1) or acis(2)",
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "FlattenMode Flatten",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Project to cplane or view",
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool FullLayerPath",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "write layernames as Parent$Child or Child",
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool IsDefault",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "double MinPointDistance",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "String Name",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "9.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool NoDxfHeader",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "write an entities only dxf file ( R12 only)",
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool PreserveArcNormals",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Users wanted to use Pedit in AutoCAD to join them into plines and that didn't work if the normals of arcs being joined are different. Default will be True and will change the behavior",
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool Simplify",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "use lines and arcs where possible",
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "double SimplifyTolerance",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool SplitPolycurves",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Explode polycurves before exporting",
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool SplitSplines",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Split splines at FMKs before exporting",
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "UseColorType UseColor",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Set AutoCAD display color with Rhino print or display color",
        "since": "9.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool UseLWPolylines",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "AutocadVersion Version",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Version of DWG file to write",
        "since": "8.0",
    "remarks": "Updated default acad version to 2018 in Rhino V9",
        "property": ["get", "set"]
      },
      {
        "signature": "bool WriteThickCurves",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Write extrusions with simple profile curves as thick curves.",
        "since": "9.0",
        "property": ["get", "set"]
      }
    ],
    "methods": [
      {
        "signature": "System.Void AddToDictionary(Rhino.Collections.ArchivableDictionary dict)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Add these options to a dictionary, used by UIless dotnet export.",
        "since": "9.0"
      },
      {
        "signature": "System.Void SetNamedParameters(NamedParametersEventArgs args)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Add these options to a NamedParametersEventArgs, used in the dotnet version of the acad export UI.",
        "since": "9.0"
      },
      {
        "signature": "Rhino.Collections.ArchivableDictionary ToDictionary()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Create a dictionary of these options. This dictionary can be passed to the RhinoDoc.Export function",
        "since": "8.0"
      }
    ]
  },
  {
    "namespace": "Rhino.FileIO",
    "name": "FileDwgWriteOptions.AutocadVersion",
    "dataType": "enum",
    "values": [
      {
        "signature": "Release12 = 12",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Acad 12, vAC12"
      },
      {
        "signature": "Release13 = 13",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Acad 13, vAC13"
      },
      {
        "signature": "Release14 = 14",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Acad 14, vAC14"
      },
      {
        "signature": "Acad2000 = 2000",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Acad 2000, vAC15"
      },
      {
        "signature": "Acad2004 = 2004",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Acad 2004, vAC18"
      },
      {
        "signature": "Acad2007 = 2007",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Acad 2007, vAC21"
      },
      {
        "signature": "Acad2010 = 2010",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Acad 2010, vAC24"
      },
      {
        "signature": "Acad2013 = 2013",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Acad 2013, vAC27"
      },
      {
        "signature": "Acad2018 = 2018",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Acad 2018, vAC32"
      }
    ]

  },
  {
    "namespace": "Rhino.FileIO",
    "name": "FileDwgWriteOptions.ColorMethodType",
    "dataType": "enum",
    "since": "8.0",
    "values": [
      {
        "signature": "ACI = 0",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "RGB",
        "modifiers": [],
        "protected": false,
        "virtual": false
      }
    ]

  },
  {
    "namespace": "Rhino.FileIO",
    "name": "FileDwgWriteOptions.ExportArcMode",
    "dataType": "enum",
    "since": "8.0",
    "values": [
      {
        "signature": "Lines",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Arcs",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Polybulges",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Polylines",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Splines",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "ThreeDPolylines",
        "modifiers": [],
        "protected": false,
        "virtual": false
      }
    ]

  },
  {
    "namespace": "Rhino.FileIO",
    "name": "FileDwgWriteOptions.ExportLineMode",
    "dataType": "enum",
    "since": "8.0",
    "values": [
      {
        "signature": "Lines",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Polylines",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Splines",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "ThreeDPolylines",
        "modifiers": [],
        "protected": false,
        "virtual": false
      }
    ]

  },
  {
    "namespace": "Rhino.FileIO",
    "name": "FileDwgWriteOptions.ExportMeshMode",
    "dataType": "enum",
    "since": "8.0",
    "values": [
      {
        "signature": "Meshes",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "ThreeDFace",
        "modifiers": [],
        "protected": false,
        "virtual": false
      }
    ]

  },
  {
    "namespace": "Rhino.FileIO",
    "name": "FileDwgWriteOptions.ExportPolycurveMode",
    "dataType": "enum",
    "since": "8.0",
    "values": [
      {
        "signature": "Lines",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Polybulges",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Polylines",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Splines",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "ThreeDPolylines",
        "modifiers": [],
        "protected": false,
        "virtual": false
      }
    ]

  },
  {
    "namespace": "Rhino.FileIO",
    "name": "FileDwgWriteOptions.ExportPolylineMode",
    "dataType": "enum",
    "since": "8.0",
    "values": [
      {
        "signature": "Lines",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Polylines",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Splines",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "ThreeDPolylines",
        "modifiers": [],
        "protected": false,
        "virtual": false
      }
    ]

  },
  {
    "namespace": "Rhino.FileIO",
    "name": "FileDwgWriteOptions.ExportSplineMode",
    "dataType": "enum",
    "since": "8.0",
    "values": [
      {
        "signature": "Lines",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Polylines",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Splines",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "ThreeDPolylines",
        "modifiers": [],
        "protected": false,
        "virtual": false
      }
    ]

  },
  {
    "namespace": "Rhino.FileIO",
    "name": "FileDwgWriteOptions.ExportSurfaceMode",
    "dataType": "enum",
    "since": "8.0",
    "values": [
      {
        "signature": "Solids",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Curves",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Meshes",
        "modifiers": [],
        "protected": false,
        "virtual": false
      }
    ]

  },
  {
    "namespace": "Rhino.FileIO",
    "name": "FileDwgWriteOptions.FlattenMode",
    "dataType": "enum",
    "since": "8.0",
    "values": [
      {
        "signature": "None",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Cplane",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "View",
        "modifiers": [],
        "protected": false,
        "virtual": false
      }
    ]

  },
  {
    "namespace": "Rhino.FileIO",
    "name": "FileDwgWriteOptions.UseColorType",
    "dataType": "enum",
    "since": "9.0",
    "values": [
      {
        "signature": "USEDISPLAY = 0",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "USEPRINT",
        "modifiers": [],
        "protected": false,
        "virtual": false
      }
    ]

  },
  {
    "namespace": "Rhino.FileIO",
    "name": "FileEps",
    "dataType": "class",
    "summary": "Support for reading eps file format",
    "constructors": [
      {
        "signature": "FileEps()",
        "summary": "Initializes a new instance of the FileEps class"
      }
    ],
    "methods": [
      {
        "signature": "System.Boolean Read(System.String path, RhinoDoc doc, FileEpsReadOptions options)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Read a Eps file into a RhinoDoc",
        "since": "8.0",
        "parameters": [
          {
            "name": "path",
            "type": "System.String",
            "summary": "path to read a file from"
          },
          {
            "name": "doc",
            "type": "RhinoDoc",
            "summary": "document to import geometry into"
          },
          {
            "name": "options",
            "type": "FileEpsReadOptions",
            "summary": "options used for importing the Ai file"
          }
        ],
        "returns": "True on success"
      }
    ]
  },
  {
    "namespace": "Rhino.FileIO",
    "name": "FileEpsReadOptions",
    "dataType": "class",
    "summary": "Options for reading a AI file (old ai files, ps not pdf)",
    "constructors": [
      {
        "signature": "FileEpsReadOptions()",
        "summary": "Initializes a new instance of the FileEpsReadOptions class"
      }
    ],
    "properties": [
      {
        "signature": "double EpsScale",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "Units EpsUnits",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool PreserveModelScale",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "double RhinoScale",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "8.0",
        "property": ["get", "set"]
      }
    ],
    "methods": [
      {
        "signature": "Rhino.Collections.ArchivableDictionary ToDictionary()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "8.0"
      }
    ]
  },
  {
    "namespace": "Rhino.FileIO",
    "name": "FileEpsReadOptions.Units",
    "dataType": "enum",
    "since": "8.0",
    "values": [
      {
        "signature": "Inches = 0",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "inches"
      },
      {
        "signature": "Centimeters = 1",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "centimeters"
      },
      {
        "signature": "Millimeters = 2",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "millimeters"
      },
      {
        "signature": "Points = 3",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "points"
      }
    ]

  },
  {
    "namespace": "Rhino.FileIO",
    "name": "FileFbx",
    "dataType": "class",
    "summary": "Support for writing Fbx file format",
    "constructors": [
      {
        "signature": "FileFbx()",
        "summary": "Initializes a new instance of the FileFbx class"
      }
    ],
    "methods": [
      {
        "signature": "System.Boolean Read(System.String path, RhinoDoc doc, FileFbxReadOptions options)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Read a Fbx file intof a RhinoDoc",
        "since": "8.0",
        "parameters": [
          {
            "name": "path",
            "type": "System.String",
            "summary": "path to read a file from"
          },
          {
            "name": "doc",
            "type": "RhinoDoc",
            "summary": "document to import geometry into"
          },
          {
            "name": "options",
            "type": "FileFbxReadOptions",
            "summary": "options used for importing the Fbx file"
          }
        ],
        "returns": "True on success"
      },
      {
        "signature": "System.Boolean Write(System.String path, RhinoDoc doc, FileFbxWriteOptions options)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Write a Fbx file based on the contents of a RhinoDoc",
        "since": "8.0",
        "parameters": [
          {
            "name": "path",
            "type": "System.String",
            "summary": "path to write a file to"
          },
          {
            "name": "doc",
            "type": "RhinoDoc",
            "summary": "document to get geometry from"
          },
          {
            "name": "options",
            "type": "FileFbxWriteOptions",
            "summary": "options used for generating the Fbx file"
          }
        ],
        "returns": "True on success"
      }
    ]
  },
  {
    "namespace": "Rhino.FileIO",
    "name": "FileFbxReadOptions",
    "dataType": "class",
    "summary": "Options for reading a Fbx file",
    "constructors": [
      {
        "signature": "FileFbxReadOptions()",
        "summary": "Initializes a new instance of the FileFbxReadOptions class"
      }
    ],
    "properties": [
      {
        "signature": "bool ImportCameras",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool ImportLights",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool ImportMeshesAsSubD",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool MapFbxYtoRhinoZ",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool Unweld",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "double UnweldAngle",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "8.0",
        "property": ["get", "set"]
      }
    ],
    "methods": [
      {
        "signature": "Rhino.Collections.ArchivableDictionary ToDictionary()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Create a dictionary of these options. This dictionary can be passed to the RhinoDoc.Export function",
        "since": "8.0"
      }
    ]
  },
  {
    "namespace": "Rhino.FileIO",
    "name": "FileFbxWriteOptions",
    "dataType": "class",
    "summary": "Options for writing a Fbx file",
    "constructors": [
      {
        "signature": "FileFbxWriteOptions()",
        "summary": "Initializes a new instance of the FileFbxWriteOptions class"
      }
    ],
    "properties": [
      {
        "signature": "bool MapRhinoZtoFbxY",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "MeshingParameters MeshingParameters",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "FileType SaveFileAs",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool SaveLights",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "MaterialType SaveMaterialsAs",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "ObjectType SaveObjectsAs",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool SaveVertexNormals",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool SaveViews",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "8.0",
        "property": ["get", "set"]
      }
    ],
    "methods": [
      {
        "signature": "Rhino.Collections.ArchivableDictionary ToDictionary()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Create a dictionary of these options. This dictionary can be passed to the RhinoDoc.Export function",
        "since": "8.0"
      }
    ]
  },
  {
    "namespace": "Rhino.FileIO",
    "name": "FileFbxWriteOptions.FileType",
    "dataType": "enum",
    "since": "8.0",
    "values": [
      {
        "signature": "Binary7 = 0",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Ascii7 = 1",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Binary6 = 2",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Ascii6 = 3",
        "modifiers": [],
        "protected": false,
        "virtual": false
      }
    ]

  },
  {
    "namespace": "Rhino.FileIO",
    "name": "FileFbxWriteOptions.MaterialType",
    "dataType": "enum",
    "since": "8.0",
    "values": [
      {
        "signature": "Lambert = 0",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Phong = 1",
        "modifiers": [],
        "protected": false,
        "virtual": false
      }
    ]

  },
  {
    "namespace": "Rhino.FileIO",
    "name": "FileFbxWriteOptions.ObjectType",
    "dataType": "enum",
    "since": "8.0",
    "values": [
      {
        "signature": "Nurbs = 0",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Mesh = 1",
        "modifiers": [],
        "protected": false,
        "virtual": false
      }
    ]

  },
  {
    "namespace": "Rhino.FileIO",
    "name": "FileFindPreference",
    "dataType": "enum",
    "summary": "Defines options for file search.",
    "values": [
      {
        "signature": "None = 0",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "The choice is not defined."
      },
      {
        "signature": "FullPath = 1",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "File name exists in FullPath()."
      },
      {
        "signature": "RelativePath = 2",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "File name exists in base path + RelativePath()."
      },
      {
        "signature": "BasePath = 3",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "File name exists in base path directory."
      },
      {
        "signature": "ContentMatch = 4",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "File with matching content exists."
      },
      {
        "signature": "MostRecent = 5",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Most recently modified file."
      }
    ]

  },
  {
    "namespace": "Rhino.FileIO",
    "name": "FileGHS",
    "dataType": "class",
    "summary": "Support for reading eps file format",
    "constructors": [
      {
        "signature": "FileGHS()",
        "summary": "Initializes a new instance of the FileGHS class"
      }
    ],
    "methods": [
      {
        "signature": "System.Boolean Read(System.String path, RhinoDoc doc, FileGHSReadOptions options)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Read a Ghs file into a RhinoDoc",
        "since": "8.0",
        "parameters": [
          {
            "name": "path",
            "type": "System.String",
            "summary": "path to read a file from"
          },
          {
            "name": "doc",
            "type": "RhinoDoc",
            "summary": "document to import geometry into"
          },
          {
            "name": "options",
            "type": "FileGHSReadOptions",
            "summary": "options used for importing the Ai file"
          }
        ],
        "returns": "True on success"
      }
    ]
  },
  {
    "namespace": "Rhino.FileIO",
    "name": "FileGHSReadOptions",
    "dataType": "class",
    "summary": "Options for reading a GHS file",
    "constructors": [
      {
        "signature": "FileGHSReadOptions()",
        "summary": "Initializes a new instance of the FileGHSReadOptions class"
      }
    ],
    "properties": [
      {
        "signature": "bool AttachGhsData",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool RemoveColinearPoints",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "ReadViewType ViewType",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "8.0",
        "property": ["get", "set"]
      }
    ],
    "methods": [
      {
        "signature": "Rhino.Collections.ArchivableDictionary ToDictionary()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "8.0"
      }
    ]
  },
  {
    "namespace": "Rhino.FileIO",
    "name": "FileGHSReadOptions.ReadViewType",
    "dataType": "enum",
    "since": "8.0",
    "values": [
      {
        "signature": "Body = 0",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "BodyView"
      },
      {
        "signature": "Profile = 1",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Profile View"
      },
      {
        "signature": "Plan = 2",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Plan View"
      },
      {
        "signature": "Wire = 3",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Wireframe"
      },
      {
        "signature": "Solid = 4",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Mesh"
      },
      {
        "signature": "Camera = 5",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "eCAMERA"
      },
      {
        "signature": "Custom = 6",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "eCUSTOM"
      }
    ]

  },
  {
    "namespace": "Rhino.FileIO",
    "name": "FileGltf",
    "dataType": "class",
    "summary": "Support for writing glTF file format",
    "since": "8.3",
    "constructors": [
      {
        "signature": "FileGltf()",
        "summary": "Initializes a new instance of the FileGltf class"
      }
    ],
    "methods": [
      {
        "signature": "System.Boolean Write(System.String filename, RhinoDoc doc, FileGltfWriteOptions options)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Write a glTF file based on the contents of a RhinoDoc",
        "since": "8.3",
        "parameters": [
          {
            "name": "filename",
            "type": "System.String",
            "summary": "path to write a file to"
          },
          {
            "name": "doc",
            "type": "RhinoDoc",
            "summary": "document to get geometry from"
          },
          {
            "name": "options",
            "type": "FileGltfWriteOptions",
            "summary": "options used for generating the glTF file"
          }
        ],
        "returns": "True on success"
      }
    ]
  },
  {
    "namespace": "Rhino.FileIO",
    "name": "FileGltfWriteOptions",
    "dataType": "class",
    "summary": "Options used when writing a glTF file",
    "since": "8.3",
    "constructors": [
      {
        "signature": "FileGltfWriteOptions()",
        "summary": "Initializes a new instance of the FileGltfWriteOptions class"
      }
    ],
    "properties": [
      {
        "signature": "bool CullBackfaces",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Setting that determines whether or not the meshes in the glTF will be rendered with or without backface culling. Known as DoubleSided in the glTF specification.",
        "since": "8.3",
        "property": ["get", "set"]
      },
      {
        "signature": "int DracoCompressionLevel",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "The level of compression used by draco in the range of 1 to 10 inclusive.",
        "since": "8.3",
        "property": ["get", "set"]
      },
      {
        "signature": "int DracoQuantizationBitsNormal",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "The number of bits used when quantizing mesh normals in the range of 8 to 32 inclusive",
        "since": "8.3",
        "property": ["get", "set"]
      },
      {
        "signature": "int DracoQuantizationBitsPosition",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "The number of bits used when quantizing mesh vertex positions in the range of 8 to 32 inclusive",
        "since": "8.3",
        "property": ["get", "set"]
      },
      {
        "signature": "int DracoQuantizationBitsTextureCoordinate",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "The number of bits used when quantizing mesh texture coordinates in the range of 8 to 32 inclusive",
        "since": "8.3",
        "property": ["get", "set"]
      },
      {
        "signature": "bool ExportLayers",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "glTF uses a scene hierarchy structure where nodes are organized in a parent-child relationship. This setting enables/disables the writing of empty nodes with the same names as layers and places exported objects a children of the corresponding layer node.",
        "since": "8.3",
        "property": ["get", "set"]
      },
      {
        "signature": "bool ExportMaterials",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Setting to determine whether or not materials are written to the glTF file",
        "since": "8.3",
        "property": ["get", "set"]
      },
      {
        "signature": "bool ExportOpenMeshes",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Enable/disable the exporting of open meshes",
        "since": "8.3",
        "property": ["get", "set"]
      },
      {
        "signature": "bool ExportTextureCoordinates",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Enable/disable the exporting of texture coordinates",
        "since": "8.3",
        "property": ["get", "set"]
      },
      {
        "signature": "bool ExportVertexColors",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Enable/disable the export of vertex colors",
        "since": "8.3",
        "property": ["get", "set"]
      },
      {
        "signature": "bool ExportVertexNormals",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Enable/disable the exporting of vertex normals",
        "since": "8.3",
        "property": ["get", "set"]
      },
      {
        "signature": "bool MapZToY",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Setting to transform Rhino's Z axis to glTF's Y axis",
        "since": "8.3",
        "property": ["get", "set"]
      },
      {
        "signature": "SubDMeshing SubDMeshType",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "The mesh type for exported SubDs",
        "since": "8.3",
        "property": ["get", "set"]
      },
      {
        "signature": "int SubDSurfaceMeshingDensity",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Determines how coarse the mesh output will be when surface meshing subd objects  See comments for ON_SubDDisplayParameters in opennurbs_mesh.h for details regarding numbers used.",
        "since": "8.3",
        "property": ["get", "set"]
      },
      {
        "signature": "bool UseDisplayColorForUnsetMaterials",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Setting to display color as material when material index for object is -1.",
        "since": "8.3",
        "property": ["get", "set"]
      },
      {
        "signature": "bool UseDracoCompression",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Enable/disable the use of Draco mesh compression in the glTF file",
        "since": "8.3",
        "property": ["get", "set"]
      }
    ],
    "methods": [
      {
        "signature": "Rhino.Collections.ArchivableDictionary ToDictionary()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Create a dictionary of these options. This dictionary can be passed to the RhinoDoc.Export function",
        "since": "8.3"
      }
    ]
  },
  {
    "namespace": "Rhino.FileIO",
    "name": "FileGltfWriteOptions.SubDMeshing",
    "dataType": "enum",
    "summary": "Determines whether the surface or control net of a SubD object is used to generate a mesh",
    "since": "8.3",
    "values": [
      {
        "signature": "Surface = 0",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "The SubD surface is used"
      },
      {
        "signature": "ControlNet = 1",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "The SubD control net is used"
      }
    ]

  },
  {
    "namespace": "Rhino.FileIO",
    "name": "FileGts",
    "dataType": "class",
    "summary": "Support for writing Gts file format",
    "constructors": [
      {
        "signature": "FileGts()",
        "summary": "Initializes a new instance of the FileGts class"
      }
    ],
    "methods": [
      {
        "signature": "System.Boolean Write(System.String path, RhinoDoc doc, FileGtsWriteOptions options)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Write a Gts file based on the contents of a RhinoDoc",
        "since": "8.0",
        "parameters": [
          {
            "name": "path",
            "type": "System.String",
            "summary": "path to write a file to"
          },
          {
            "name": "doc",
            "type": "RhinoDoc",
            "summary": "document to get geometry from"
          },
          {
            "name": "options",
            "type": "FileGtsWriteOptions",
            "summary": "options used for generating the Gts file"
          }
        ],
        "returns": "True on success"
      }
    ]
  },
  {
    "namespace": "Rhino.FileIO",
    "name": "FileGtsWriteOptions",
    "dataType": "class",
    "summary": "Options for writing a Gts file",
    "constructors": [
      {
        "signature": "FileGtsWriteOptions()",
        "summary": "Initializes a new instance of the FileGtsWriteOptions class"
      }
    ],
    "properties": [
      {
        "signature": "MeshingParameters MeshingParameters",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "8.0",
        "property": ["get", "set"]
      }
    ],
    "methods": [
      {
        "signature": "Rhino.Collections.ArchivableDictionary ToDictionary()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Create a dictionary of these options. This dictionary can be passed to the RhinoDoc.Export function",
        "since": "8.0"
      }
    ]
  },
  {
    "namespace": "Rhino.FileIO",
    "name": "FileIgs",
    "dataType": "class",
    "summary": "Support for writing Igs file format",
    "constructors": [
      {
        "signature": "FileIgs()",
        "summary": "Initializes a new instance of the FileIgs class"
      }
    ],
    "methods": [
      {
        "signature": "System.Boolean Write(System.String path, RhinoDoc doc, FileIgsWriteOptions options)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Write a Igs file based on the contents of a RhinoDoc",
        "since": "8.0",
        "parameters": [
          {
            "name": "path",
            "type": "System.String",
            "summary": "path to write a file to"
          },
          {
            "name": "doc",
            "type": "RhinoDoc",
            "summary": "document to get geometry from"
          },
          {
            "name": "options",
            "type": "FileIgsWriteOptions",
            "summary": "options used for generating the Igs file"
          }
        ],
        "returns": "True on success"
      }
    ]
  },
  {
    "namespace": "Rhino.FileIO",
    "name": "FileIgsWriteOptions",
    "dataType": "class",
    "summary": "Options for writing a Igs file",
    "constructors": [
      {
        "signature": "FileIgsWriteOptions()",
        "summary": "Initializes a new instance of the FileIgsWriteOptions class"
      }
    ],
    "properties": [
      {
        "signature": "string Author",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "double CatiaTolsize",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "int CatiaVersion",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool ClampCurveEndKnots",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "TRUE means all periodic NURBS will have their end knots clamped.",
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool ClampSurfaceEndKnots",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool CompositeCurvesAsSingleBsplines",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "MaxDegreeMode CurveMaxDegree",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "d >= 3 means all NURBS curves with degree > d be fit with degree d non-rational cubics.",
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool DoublesUseE",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Use \"E\" instead of the correct \"D\" for double scientific notation to get around IGES bug in FastShip.",
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "EolMode EolType",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "IGES files are ASCII files.  You need to specify the flavor of the ASCII end of line marker.Possibilities are: TL_LF:   line feed (unix) TL_CRLF: carriage return, line feed (Microsoft) TL_CR:   carriage return (Apple)",
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool FitRationalCurves",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "True means all rational NURBS will be fit with non-rational cubics.",
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool FitRationalSurfaces",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "True means non-conic rational surfaces will be fit with non-rational surfaces",
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool FlagDependentCurvesAs03",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool FlagDependentSurfacesAs03",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool ForceBezierKnotsOnCurves",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool ForceBezierKnotsOnSurfaces",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "True means all NURBS surfaces will have their internal knots set to full multiplicity.",
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool ForceTrimmedSurfaces",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "True means all surfaces will be exported as 143 or 144s CATIA may like this better.",
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool HideDependentObjects",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "IgesStringTypeMode IgesStringType",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "IgeswVersionMode IgesVersion",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Version of IGES spec to write",
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "MaxDegreeMode MaxSurfaceDegree",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "MeshesMode MeshType",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool NotesInStartSection",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool NoZerosInTSection",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "The GridTool program used at NASA Langly cannot read IGES files that have leading zeros in the T section.",
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "string Organization",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "PointObjectsMode PointType",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "PolySurfacesMode PolySurfaceType",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "string Receiver",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool RenderColorAsIgesColor",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "double Scale",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "(model space units)/(real world units) For example, if unit_system = TL_INCHES and 1 model space unit = 8 inches, then scale = 0.125.Note that model space units are stored in the IGES file.",
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "string Sender",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool SimplifyCurves",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "TRUE means NURBS that are lines or arcs will be written as lines or arcs instead of 126's",
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool SimplifySurfaces",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "True means that NURBS surfaces that are ruled surfaces or surfaces of revolution will be written as ruled surfaces or surfaces of revolution.",
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "SolidsMode SolidType",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool SplitBiPolarSurfaces",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool SplitClosedSurfaces",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "SurfacesMode SurfaceType",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "double Tolerance",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "In model space units specified above",
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "UnitSystem Units",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool UseParentLabelOnCurves",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "copy parent label to dependent curves",
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool UseParentLabelOnSurfaces",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "copy parent label to dependent srfs",
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool WriteNonPlanarUnitNormal",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "True means the UnitNormal will be written regardless, even if the curve is non planar",
        "since": "8.0",
        "property": ["get", "set"]
      }
    ],
    "methods": [
      {
        "signature": "Rhino.Collections.ArchivableDictionary ToDictionary()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Create a dictionary of these options. This dictionary can be passed to the RhinoDoc.Export function",
        "since": "8.0"
      }
    ]
  },
  {
    "namespace": "Rhino.FileIO",
    "name": "FileIgsWriteOptions.EolMode",
    "dataType": "enum",
    "since": "8.0",
    "values": [
      {
        "signature": "Crlf = 1",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Cr",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Lf",
        "modifiers": [],
        "protected": false,
        "virtual": false
      }
    ]

  },
  {
    "namespace": "Rhino.FileIO",
    "name": "FileIgsWriteOptions.IgesStringTypeMode",
    "dataType": "enum",
    "since": "8.0",
    "values": [
      {
        "signature": "Unicode",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "BIG5",
        "modifiers": [],
        "protected": false,
        "virtual": false
      }
    ]

  },
  {
    "namespace": "Rhino.FileIO",
    "name": "FileIgsWriteOptions.IgeswVersionMode",
    "dataType": "enum",
    "since": "8.0",
    "values": [
      {
        "signature": "Igv52 = 1",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Igv53",
        "modifiers": [],
        "protected": false,
        "virtual": false
      }
    ]

  },
  {
    "namespace": "Rhino.FileIO",
    "name": "FileIgsWriteOptions.MaxDegreeMode",
    "dataType": "enum",
    "since": "8.0",
    "values": [
      {
        "signature": "MdNoLimit = 0",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Md3 = 3",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Md5 = 5",
        "modifiers": [],
        "protected": false,
        "virtual": false
      }
    ]

  },
  {
    "namespace": "Rhino.FileIO",
    "name": "FileIgsWriteOptions.MeshesMode",
    "dataType": "enum",
    "since": "8.0",
    "values": [
      {
        "signature": "MeshNone = 0",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Mesh10612 = 12",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Mesh10613 = 13",
        "modifiers": [],
        "protected": false,
        "virtual": false
      }
    ]

  },
  {
    "namespace": "Rhino.FileIO",
    "name": "FileIgsWriteOptions.PointObjectsMode",
    "dataType": "enum",
    "since": "8.0",
    "values": [
      {
        "signature": "PoSeparate = 116",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "PoSets = 106",
        "modifiers": [],
        "protected": false,
        "virtual": false
      }
    ]

  },
  {
    "namespace": "Rhino.FileIO",
    "name": "FileIgsWriteOptions.PolySurfacesMode",
    "dataType": "enum",
    "since": "8.0",
    "values": [
      {
        "signature": "PsrfSeparate = 0",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "PsrfUnorderedGroup = 402",
        "modifiers": [],
        "protected": false,
        "virtual": false
      }
    ]

  },
  {
    "namespace": "Rhino.FileIO",
    "name": "FileIgsWriteOptions.SolidsMode",
    "dataType": "enum",
    "since": "8.0",
    "values": [
      {
        "signature": "SldSeparate = 0",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Sld184 = 184",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "SldManifoldBRep = 186",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "SldUnorderedGroup = 402",
        "modifiers": [],
        "protected": false,
        "virtual": false
      }
    ]

  },
  {
    "namespace": "Rhino.FileIO",
    "name": "FileIgsWriteOptions.SurfacesMode",
    "dataType": "enum",
    "since": "8.0",
    "values": [
      {
        "signature": "Srf143 = 143",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Srf144 = 144",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Srf128 = 128",
        "modifiers": [],
        "protected": false,
        "virtual": false
      }
    ]

  },
  {
    "namespace": "Rhino.FileIO",
    "name": "FileLwo",
    "dataType": "class",
    "summary": "Support for writing lwo file format",
    "constructors": [
      {
        "signature": "FileLwo()",
        "summary": "Initializes a new instance of the FileLwo class"
      }
    ],
    "methods": [
      {
        "signature": "System.Boolean Read(System.String path, RhinoDoc doc, FileLwoReadOptions options)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Read a lwo file into a RhinoDoc",
        "since": "8.0",
        "parameters": [
          {
            "name": "path",
            "type": "System.String",
            "summary": "path to read a file from"
          },
          {
            "name": "doc",
            "type": "RhinoDoc",
            "summary": "document to import geometry into"
          },
          {
            "name": "options",
            "type": "FileLwoReadOptions",
            "summary": "options used for importing the Lwo file"
          }
        ],
        "returns": "True on success"
      },
      {
        "signature": "System.Boolean Write(System.String path, RhinoDoc doc, FileLwoWriteOptions options)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Write a lwo file based on the contents of a RhinoDoc",
        "since": "8.0",
        "parameters": [
          {
            "name": "path",
            "type": "System.String",
            "summary": "path to write a file to"
          },
          {
            "name": "doc",
            "type": "RhinoDoc",
            "summary": "document to get geometry from"
          },
          {
            "name": "options",
            "type": "FileLwoWriteOptions",
            "summary": "options used for generating the Lwo file"
          }
        ],
        "returns": "True on success"
      }
    ]
  },
  {
    "namespace": "Rhino.FileIO",
    "name": "FileLwoReadOptions",
    "dataType": "class",
    "summary": "Options for reading a Lwo file",
    "constructors": [
      {
        "signature": "FileLwoReadOptions()",
        "summary": "Initializes a new instance of the FileLwoReadOptions class"
      }
    ],
    "properties": [
      {
        "signature": "bool Unweld",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "double UnweldAngle",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "8.0",
        "property": ["get", "set"]
      }
    ],
    "methods": [
      {
        "signature": "Rhino.Collections.ArchivableDictionary ToDictionary()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Create a dictionary of these options. This dictionary can be passed to the RhinoDoc.Export function",
        "since": "8.0"
      }
    ]
  },
  {
    "namespace": "Rhino.FileIO",
    "name": "FileLwoWriteOptions",
    "dataType": "class",
    "summary": "Options for writing a Lwo file",
    "constructors": [
      {
        "signature": "FileLwoWriteOptions()",
        "summary": "Initializes a new instance of the FileLwoWriteOptions class"
      }
    ],
    "properties": [
      {
        "signature": "MeshingParameters MeshingParameters",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool WriteVersion6",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "8.0",
        "property": ["get", "set"]
      }
    ],
    "methods": [
      {
        "signature": "Rhino.Collections.ArchivableDictionary ToDictionary()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Create a dictionary of these options. This dictionary can be passed to the RhinoDoc.Export function",
        "since": "8.0"
      }
    ]
  },
  {
    "namespace": "Rhino.FileIO",
    "name": "FileNwd",
    "dataType": "class",
    "summary": "Support for writing Nwd file format",
    "constructors": [
      {
        "signature": "FileNwd()",
        "summary": "Initializes a new instance of the FileNwd class"
      }
    ],
    "methods": [
      {
        "signature": "System.Boolean Write(System.String path, RhinoDoc doc, FileNwdWriteOptions options)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Write a nwd file based on the contents of a RhinoDoc",
        "since": "9.0",
        "parameters": [
          {
            "name": "path",
            "type": "System.String",
            "summary": "path to write a file to"
          },
          {
            "name": "doc",
            "type": "RhinoDoc",
            "summary": "document to get geometry from"
          },
          {
            "name": "options",
            "type": "FileNwdWriteOptions",
            "summary": "options used for generating the nwd file"
          }
        ],
        "returns": "True on success"
      }
    ]
  },
  {
    "namespace": "Rhino.FileIO",
    "name": "FileNwdWriteOptions",
    "dataType": "class",
    "summary": "Options for writing a Nwd file",
    "constructors": [
      {
        "signature": "FileNwdWriteOptions()",
        "summary": "Initializes a new instance of the FileNwdWriteOptions class"
      }
    ],
    "properties": [
      {
        "signature": "MeshingParameters MeshingParameters",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "9.0",
        "property": ["get", "set"]
      },
      {
        "signature": "NavisWorksVersion Version",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "9.0",
        "property": ["get", "set"]
      }
    ],
    "methods": [
      {
        "signature": "Rhino.Collections.ArchivableDictionary ToDictionary()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Create a dictionary of these options. This dictionary can be passed to the RhinoDoc.Export function",
        "since": "9.0"
      }
    ]
  },
  {
    "namespace": "Rhino.FileIO",
    "name": "FileObj",
    "dataType": "class",
    "summary": "Support for obj file format",
    "constructors": [
      {
        "signature": "FileObj()",
        "summary": "Initializes a new instance of the FileObj class"
      }
    ],
    "methods": [
      {
        "signature": "System.Boolean Read(System.String filename, RhinoDoc doc, FileObjReadOptions options)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "6.0"
      },
      {
        "signature": "WriteFileResult Write(System.IO.StreamWriter stream, RhinoDoc doc, FileObjWriteOptions options)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Write an obj stream based on the contents of a RhinoDoc",
        "since": "7.0",
    "remarks": "No .mtl file is written, hence no materials, when the WriteFile that takes a StreamWriter is called directly.  If you need materials call the WriteFile that takes a string for the obj file path."
      },
      {
        "signature": "WriteFileResult Write(System.String filename, Mesh[] meshes, FileObjWriteOptions options)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Write an obj file with an array of meshes",
        "since": "7.0",
        "parameters": [
          {
            "name": "filename",
            "type": "System.String",
            "summary": "path to write to"
          },
          {
            "name": "meshes",
            "type": "Mesh[]",
            "summary": "meshes to write as obj format"
          },
          {
            "name": "options",
            "type": "FileObjWriteOptions",
            "summary": ""
          }
        ]
      },
      {
        "signature": "WriteFileResult Write(System.String filename, RhinoDoc doc, FileObjWriteOptions options)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Write an obj file based on the contents of a RhinoDoc",
        "since": "6.0"
      }
    ]
  },
  {
    "namespace": "Rhino.FileIO",
    "name": "FileObjReadOptions",
    "dataType": "class",
    "summary": "Options used when reading an obj file.",
    "constructors": [
      {
        "signature": "FileObjReadOptions(FileReadOptions readOptions)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0"
      }
    ],
    "properties": [
      {
        "signature": "bool DisplayColorFromObjMaterial",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Determines whether textures are read from the .mtl file, if it exists.",
        "since": "6.5",
        "property": ["get", "set"]
      },
      {
        "signature": "bool IgnoreTextures",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Determines whether textures are read from the .mtl file, if it exists.",
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool MapYtoZ",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Setting to transform OBJ's Y axis to Rhino's Z axis",
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool MorphTargetOnly",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "TODO",
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool ReverseGroupOrder",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Determines how groups/layers are nested when reading an obj file. Left to Right (default = false) or Right to Left (true)",
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool Split32BitTextures",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "UseObjGsAs UseObjGroupsAs",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "UseObjOsAs UseObjObjectsAs",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "8.0",
        "property": ["get", "set"]
      }
    ],
    "methods": [
      {
        "signature": "Transform GetTransform()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Calculates the YToZ transform.",
        "since": "6.0"
      }
    ],
    "fields": [
      {
        "signature": "public FileReadOptions ReadOptions",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Rhino's FileReadOptions passed into ReadFile"
      }
    ]

  },
  {
    "namespace": "Rhino.FileIO",
    "name": "FileObjReadOptions.UseObjGsAs",
    "dataType": "enum",
    "summary": "Determines how \"g\"s in the obj file will be interpreted on import",
    "since": "6.0",
    "values": [
      {
        "signature": "IgnoreObjGroups = 0",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "OBJ \"g\"s in the file are ignored"
      },
      {
        "signature": "ObjGroupsAsLayers = 1",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "OBJ \"g\"s in the file will become Rhino layers"
      },
      {
        "signature": "ObjGroupsAsGroups = 2",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "OBJ \"g\"s in the file will become Rhino groups"
      },
      {
        "signature": "ObjGroupsAsObjects = 3",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "OBJ \"g\"s in the file will become Rhino objects"
      }
    ]

  },
  {
    "namespace": "Rhino.FileIO",
    "name": "FileObjReadOptions.UseObjOsAs",
    "dataType": "enum",
    "since": "8.5",
    "values": [
      {
        "signature": "IgnoreObjObjects = 0",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "OBJ \"o\"s in the file are ignored"
      },
      {
        "signature": "ObjObjectsAsLayers = 1",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "OBJ \"o\"s in the file will become Rhino layers"
      },
      {
        "signature": "ObjObjectsAsGroups = 2",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "OBJ \"o\"s in the file will become Rhino groups"
      },
      {
        "signature": "ObjObjectsAsObjects = 3",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "OBJ \"o\"s in the file will become Rhino objects"
      }
    ]

  },
  {
    "namespace": "Rhino.FileIO",
    "name": "FileObjWriteOptions",
    "dataType": "class",
    "constructors": [
      {
        "signature": "FileObjWriteOptions(FileWriteOptions writeOptions)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0"
      }
    ],
    "properties": [
      {
        "signature": "string ActualFilePathOnMac",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.3",
    "remarks": "The path passed to FileExportPlugIn::WriteFile on the Mac is a temporary path.  The calling function takes care of moving the temp (.obj) file to it's appropriate location.  We can't use that to write that path to construct the .mat file because the calling function doesn't know anything about it.  ActualFilePathOnMac is the path of the obj file's ultimate destination.  It's only meaningful on the Mac platform.",
        "property": ["get", "set"]
      },
      {
        "signature": "bool CreateNgons",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Setting to enable/disable the creation of ngons for the output",
        "since": "6.0",
        "obsolete": "Use NgonMode.",
        "property": ["get", "set"]
      },
      {
        "signature": "bool CullUnnecessaryVertexesInNgons",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Setting to determine whether interior collinear vertexes are part of the ngon.",
        "since": "6.0",
    "remarks": "Imagine a plane that has been split and then rejoined.  If IncludeUnweldedEdgesInNgons is set to True then you would get an ngon with 6 vertexes, the corners and one on each edge that was split.  Setting this to True would remove those 2 vertexes from the interior of the edge.  TODO This is not hooked up yet, Dale hasn't made this available yet. See RH-30673.",
        "property": ["get", "set"]
      },
      {
        "signature": "AsciiEol EolType",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
    "remarks": "Alias/Wavefront OBJ files are ASCII files. Generally they should have a LF (UNIX) as the end-of-line marker.",
        "property": ["get", "set"]
      },
      {
        "signature": "bool ExportAsTriangles",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Enable/disable export of faces as triangles.",
        "since": "7.4",
        "property": ["get", "set"]
      },
      {
        "signature": "ObjGroupNames ExportGroupNameLayerNames",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Setting to determine whether object, group or layer names will become \"g\"s in the OBJ output file",
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool ExportMaterialDefinitions",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Setting to write an .mtl file and \"usemtl\"s in the obj file",
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool ExportNormals",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Enable/disable export of vertex normals, if they exist.",
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "ObjObjectNames ExportObjectNames",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Setting to determine what object names in Rhino will become in the OBJ output file",
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool ExportOpenMeshes",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Enable/Disable bailing when an open mesh is encountered.",
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool ExportTcs",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Enable/disable export of texture coordinates, if they exist.",
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool ExportVcs",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Enable/disable export of vertex colors, if they exist.",
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool IncludeUnweldedEdgesInNgons",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Setting to determine whether unwelded edges are ignored in the creation of an ngon.",
        "since": "6.0",
    "remarks": "Imagine a plane that has been split and then rejoined.  This setting determines if you will get one or two ngons in the output.  TODO This is not hooked up yet, Dale hasn't made this available yet. See RH-30673.",
        "property": ["get", "set"]
      },
      {
        "signature": "bool MapZtoY",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Setting to transform Rhino's Z axis to OBJ's Y axis",
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool MergeNestedGroupingNames",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Setting to merge nested layer or group names into a single OBJ group name",
        "since": "6.7",
    "remarks": "Setting this to True will take a layer setup like this in Rhino  Grandparent Parent Child  and make a group name of Grandparent__Parent__Child in obj.  If False it will be 3 separate group names in obj and will look like this in the file.  g Grandparent Parent Child",
        "property": ["get", "set"]
      },
      {
        "signature": "MeshingParameters MeshParameters",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Mesh parameters to use when meshing geometry that is not already a mesh.",
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "VertexWelding MeshType",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "int MinNgonFaceCount",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Minimum number of faces to consider creation of ngon",
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "NGons NgonMode",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "7.0",
        "property": ["get", "set"]
      },
      {
        "signature": "GeometryType ObjectType",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "PolylineExportType PolylineType",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "int SignificantDigits",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Number of significant digits to write out for floating point numbers",
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool SortObjGroups",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Setting to enable/disable sorting of OBJ groups",
        "since": "6.0",
    "remarks": "This is mainly for the sake of making an obj file more human readable, however, it is important that it happens when a user has opted to write Rhino groups as OBJ \"g\"s since it is not necessary for every object in Rhino to be part of a group.",
        "property": ["get", "set"]
      },
      {
        "signature": "SubDMeshing SubDMeshType",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "7.0",
        "property": ["get", "set"]
      },
      {
        "signature": "int SubDSurfaceMeshingDensity",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Determines how coarse the mesh output will be when surface meshing subd objects  See comments for ON_SubDDisplayParameters in opennurbs_mesh.h for details regarding numbers used.",
        "since": "7.0",
        "property": ["get", "set"]
      },
      {
        "signature": "CurveType TrimCurveType",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "trimming curve option",
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool UnderbarMaterialNames",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Enable/disable replacing white space with under-bars in material names.",
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool UseDisplayColorForMaterial",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Setting to display color as material when material index for object is -1.",
        "since": "7.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool UseRelativeIndexing",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Determines whether to use relative indexing.  TRUE = use relative (negative) indexing FALSE = use absolute (positive) indexing",
        "since": "6.0",
    "remarks": "This only has an impact on non-mesh output.  There is also no interface in the OBJ export plug-in so code executed when set to True has not been thoroughly tested.  It has been there forever and migrated with each successive revision of OBJ export code.",
        "property": ["get", "set"]
      },
      {
        "signature": "bool UseRenderMeshes",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Use existing or generate render meshes instead of calling RhinoObject.MeshObjects.",
        "since": "7.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool UseSimpleDialog",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Determines whether to use the simple or detailed meshing dialog.",
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "int VcsFormat",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Export vertex colors as 0 == floats (0.0-1.0) or 1 == ints (0-255)",
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool WrapLongLines",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Setting to enable/disable line wrapping with \"\\\"s",
        "since": "6.0",
        "property": ["get", "set"]
      }
    ],
    "methods": [
      {
        "signature": "Transform GetTransform()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Calculates the transform combination of ZToY and any the translation that might occur in a SavewithOrigin.",
        "since": "6.0"
      }
    ],
    "fields": [
      {
        "signature": "public FileWriteOptions WriteOptions",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "public readonly double AngleTolRadians",
        "modifiers": ["public", "readonly"],
        "protected": false,
        "virtual": false,
        "summary": "If trim is TL_OBJ_FILE_TRIM_POLYLINE, angle_tol (in radians) controls the level of linearization on parameter space trimming curves."
      }
    ]

  },
  {
    "namespace": "Rhino.FileIO",
    "name": "FileObjWriteOptions.AsciiEol",
    "dataType": "enum",
    "summary": "End of Line",
    "since": "6.0",
    "values": [
      {
        "signature": "Crlf = 0",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "MicroSoft"
      },
      {
        "signature": "Lf = 1",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "UNIX"
      },
      {
        "signature": "Cr = 2",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Apple"
      }
    ]

  },
  {
    "namespace": "Rhino.FileIO",
    "name": "FileObjWriteOptions.CurveType",
    "dataType": "enum",
    "summary": "Type of curve used for trimmed surfaces",
    "since": "6.0",
    "values": [
      {
        "signature": "Polyline = 0",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Polyline approximation, see comments for AngleTolRadians"
      },
      {
        "signature": "Nurbs = 1",
        "modifiers": [],
        "protected": false,
        "virtual": false
      }
    ]

  },
  {
    "namespace": "Rhino.FileIO",
    "name": "FileObjWriteOptions.GeometryType",
    "dataType": "enum",
    "summary": "(trimmed) NURBS surfaces may be exported as either NURBS or meshes",
    "since": "6.0",
    "values": [
      {
        "signature": "Nurbs = 0",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Mesh = 1",
        "modifiers": [],
        "protected": false,
        "virtual": false
      }
    ]

  },
  {
    "namespace": "Rhino.FileIO",
    "name": "FileObjWriteOptions.NGons",
    "dataType": "enum",
    "since": "7.0",
    "values": [
      {
        "signature": "None = 0",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Ngons will not be created, nor will they be exported if they already exist"
      },
      {
        "signature": "Preserve = 1",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "If ngons already exist, they will be used as is, no ngons will be created"
      },
      {
        "signature": "Create = 2",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Ngons will be created, if possible, by calling Mesh.Ngons.AddPlanarNgons"
      }
    ]

  },
  {
    "namespace": "Rhino.FileIO",
    "name": "FileObjWriteOptions.ObjGroupNames",
    "dataType": "enum",
    "since": "6.0",
    "values": [
      {
        "signature": "NoGroups = 0",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Neither layer or group names are exported as OBJ groups"
      },
      {
        "signature": "LayerAsGroup = 1",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Rhino layer names are exported as OBJ groups"
      },
      {
        "signature": "GroupAsGroup = 2",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Rhino group names are exported as OBJ groups"
      }
    ]

  },
  {
    "namespace": "Rhino.FileIO",
    "name": "FileObjWriteOptions.ObjObjectNames",
    "dataType": "enum",
    "since": "6.0",
    "values": [
      {
        "signature": "NoObjects = 0",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Object names are not exported"
      },
      {
        "signature": "ObjectAsGroup = 1",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Rhino Object names are exported as OBJ groups"
      },
      {
        "signature": "ObjectAsObject = 2",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Rhino Object names are exported as OBJ objects"
      }
    ]

  },
  {
    "namespace": "Rhino.FileIO",
    "name": "FileObjWriteOptions.PolylineExportType",
    "dataType": "enum",
    "summary": "Determines how polylines will be written to the file",
    "since": "8.0",
    "values": [
      {
        "signature": "Bspline = 0",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Polyline is exported as a degree 1 Bspline (this has been the historical method)"
      },
      {
        "signature": "Single = 1",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Polyline is exported as a single OBJ \"l\" object with multiple indices to \"v\" objects"
      },
      {
        "signature": "Multiple = 2",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Polyline is exported as multiple OBJ \"l\" objects, each with 2 indices to \"v\" objects"
      }
    ]

  },
  {
    "namespace": "Rhino.FileIO",
    "name": "FileObjWriteOptions.SubDMeshing",
    "dataType": "enum",
    "summary": "Determines whether the surface or control net of a SubD object is used to generate a mesh",
    "since": "7.0",
    "values": [
      {
        "signature": "Surface = 0",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "The SubD surface is used"
      },
      {
        "signature": "ControlNet = 1",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "The SubD control net is used"
      }
    ]

  },
  {
    "namespace": "Rhino.FileIO",
    "name": "FileObjWriteOptions.VertexWelding",
    "dataType": "enum",
    "summary": "Determines how/if vertexes of the mesh in Rhino will be modified in the output",
    "remarks": "The actual values of any vertex, normal or texture coordinate are not modified, this setting determines whether they are duplicated or merged.",
    "since": "6.0",
    "values": [
      {
        "signature": "Normal = 0",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Mesh is exported in existing state"
      },
      {
        "signature": "Welded = 1",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Mesh topology vertex indexing is used for the v in the OBJ output file normals and texture coordinates, if they exist, come from the mesh"
      },
      {
        "signature": "Unwelded = 2",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Each face gets it's own vertex, and normal and texture coordinates if they exist, in the output"
      }
    ]

  },
  {
    "namespace": "Rhino.FileIO",
    "name": "FileObjWriter.ObjGroupComparer",
    "dataType": "class",
    "interfaces": ["IComparer<ObjRhinoObject>"]
  },
  {
    "namespace": "Rhino.FileIO",
    "name": "FileObjWriter.ObjLayerComparer",
    "dataType": "class",
    "interfaces": ["IComparer<ObjRhinoObject>"]
  },
  {
    "namespace": "Rhino.FileIO",
    "name": "FileObjWriter.ObjRhinoObject",
    "dataType": "class"
  },
  {
    "namespace": "Rhino.FileIO",
    "name": "FileObjWriter.RhinoObjectMesh",
    "dataType": "class"
  },
  {
    "namespace": "Rhino.FileIO",
    "name": "FilePdf",
    "dataType": "class",
    "summary": "Support for PDF file format",
    "constructors": [
      {
        "signature": "FilePdf()",
        "summary": "Initializes a new instance of the FilePdf class"
      }
    ],
    "properties": [
      {
        "signature": "bool LayersAsOptionalContentGroups",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Add layers as \"optional content groups\" to the PDF. This is the visible layer tree available in PDF viewers",
        "since": "7.0",
        "property": ["get", "set"]
      }
    ],
    "methods": [
      {
        "signature": "FilePdf Create()",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Create a new instance of a FilePdf class",
        "since": "6.0"
      },
      {
        "signature": "PrintedPageDefinition[] GetCustomPages()",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Get a list of custom PDF page definitions defined by the user"
      },
      {
        "signature": "System.Boolean Read(System.String path, RhinoDoc doc, FilePdfReadOptions options)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Read a PDF file into a RhinoDoc",
        "since": "8.0",
        "parameters": [
          {
            "name": "path",
            "type": "System.String",
            "summary": "path to read a file from"
          },
          {
            "name": "doc",
            "type": "RhinoDoc",
            "summary": "document to import geometry into"
          },
          {
            "name": "options",
            "type": "FilePdfReadOptions",
            "summary": "options used for importing the PDF file"
          }
        ],
        "returns": "True on success"
      },
      {
        "signature": "System.Void SetCustomPages(IEnumerable<PrintedPageDefinition> pages)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Set the list of custom PDF page definitions"
      },
      {
        "signature": "System.Int32 AddPage(Display.ViewCaptureSettings settings)",
        "modifiers": ["public", "abstract"],
        "protected": false,
        "virtual": false,
        "summary": "Add a new page to this document and draw a viewport into it based on provided ViewCaptureSettings",
        "since": "6.0",
        "returns": "page number on success"
      },
      {
        "signature": "System.Int32 AddPage(System.Int32 widthInDots, System.Int32 heightInDots, System.Int32 dotsPerInch)",
        "modifiers": ["public", "abstract"],
        "protected": false,
        "virtual": false,
        "summary": "Add a blank page to this document",
        "since": "6.5",
        "returns": "page number on success"
      },
      {
        "signature": "System.Void DrawBitmap(System.Int32 pageNumber, System.Drawing.Bitmap bitmap, System.Single left, System.Single top, System.Single width, System.Single height, System.Single rotationInDegrees)",
        "modifiers": ["public", "abstract"],
        "protected": false,
        "virtual": false,
        "summary": "Draw a bitmap",
        "since": "6.5"
      },
      {
        "signature": "System.Void DrawLine(System.Int32 pageNumber, System.Drawing.PointF from, System.Drawing.PointF to, System.Drawing.Color strokeColor, System.Single strokeWidth)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Draw a line",
        "since": "6.5"
      },
      {
        "signature": "System.Void DrawPolyline(System.Int32 pageNumber, System.Drawing.PointF[] polyline, System.Drawing.Color fillColor, System.Drawing.Color strokeColor, System.Single strokeWidth)",
        "modifiers": ["public", "abstract"],
        "protected": false,
        "virtual": false,
        "summary": "Draw a polyline path",
        "since": "6.5"
      },
      {
        "signature": "System.Void DrawText(System.Int32 pageNumber, System.String text, System.Double x, System.Double y, System.Single heightPoints, Rhino.DocObjects.Font onfont, System.Drawing.Color fillColor, System.Drawing.Color strokeColor, System.Single strokeWidth, System.Single angleDegrees, DocObjects.TextHorizontalAlignment horizontalAlignment, DocObjects.TextVerticalAlignment verticalAlignment)",
        "modifiers": ["public", "abstract"],
        "protected": false,
        "virtual": false,
        "summary": "Draw text on a page",
        "since": "6.5"
      },
      {
        "signature": "System.Void FirePreWriteEvent()",
        "modifiers": ["protected"],
        "protected": true,
        "virtual": false,
        "summary": "Called by the framework to fire a PreWrite event"
      },
      {
        "signature": "System.Object PdfDocumentImplementation()",
        "modifiers": ["public", "abstract"],
        "protected": false,
        "virtual": false,
        "summary": "Get actual implementation of PdfDocument class",
        "since": "6.0"
      },
      {
        "signature": "System.Void Write(System.IO.Stream stream)",
        "modifiers": ["public", "abstract"],
        "protected": false,
        "virtual": false,
        "summary": "Write PDF to a stream",
        "since": "6.0"
      },
      {
        "signature": "System.Void Write(System.String filename)",
        "modifiers": ["public", "abstract"],
        "protected": false,
        "virtual": false,
        "summary": "Write PDF to a file",
        "since": "6.0"
      }
    ]
  },
  {
    "namespace": "Rhino.FileIO",
    "name": "FilePdfEventArgs",
    "dataType": "class",
    "summary": "Used for events that are fired while constructing/saving a PDF",
    "baseclass": "EventArgs",
    "properties": [
      {
        "signature": "FilePdf Pdf",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "The document that is about to be written",
        "since": "6.0",
        "property": ["get", "set"]
      }
    ]
  },
  {
    "namespace": "Rhino.FileIO",
    "name": "FilePdfReadOptions",
    "dataType": "class",
    "summary": "Options for reading a PDF file",
    "constructors": [
      {
        "signature": "FilePdfReadOptions()",
        "summary": "Initializes a new instance of the FilePdfReadOptions class"
      }
    ],
    "properties": [
      {
        "signature": "bool ImportFillsAsHatches",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool LoadText",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "double PDFScale",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "PDF_UNITS PdfUnits",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool PreserveModelScale",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "double RhinoScale",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "8.0",
        "property": ["get", "set"]
      }
    ],
    "methods": [
      {
        "signature": "Rhino.Collections.ArchivableDictionary ToDictionary()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "8.0"
      }
    ]
  },
  {
    "namespace": "Rhino.FileIO",
    "name": "FilePdfReadOptions.PDF_UNITS",
    "dataType": "enum",
    "since": "8.0",
    "values": [
      {
        "signature": "inches = 0",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "inches"
      },
      {
        "signature": "centimeters = 1",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "centimeters"
      },
      {
        "signature": "millimeters = 2",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "millimeters"
      },
      {
        "signature": "points = 3",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "points"
      }
    ]

  },
  {
    "namespace": "Rhino.FileIO",
    "name": "FilePly",
    "dataType": "class",
    "summary": "Support for ply file format",
    "constructors": [
      {
        "signature": "FilePly()",
        "summary": "Initializes a new instance of the FilePly class"
      }
    ],
    "methods": [
      {
        "signature": "System.Boolean Read(System.String path, RhinoDoc doc, FilePlyReadOptions options)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Read a PLY file into a RhinoDoc",
        "since": "8.0",
        "parameters": [
          {
            "name": "path",
            "type": "System.String",
            "summary": "path to read a file from"
          },
          {
            "name": "doc",
            "type": "RhinoDoc",
            "summary": "document to import geometry into"
          },
          {
            "name": "options",
            "type": "FilePlyReadOptions",
            "summary": "options used for importing the PLY file"
          }
        ],
        "returns": "True on success"
      },
      {
        "signature": "WriteFileResult Write(System.String filename, RhinoDoc doc, FilePlyWriteOptions options)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Write a ply file based on the contents of a RhinoDoc",
        "since": "7.0"
      }
    ]
  },
  {
    "namespace": "Rhino.FileIO",
    "name": "FilePlyReadOptions",
    "dataType": "class",
    "summary": "Options for reading a PLY file",
    "constructors": [
      {
        "signature": "FilePlyReadOptions()",
        "summary": "Initializes a new instance of the FilePlyReadOptions class"
      }
    ],
    "properties": [
      {
        "signature": "UnitSystem PLYModelUnits",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "8.0",
        "property": ["get", "set"]
      }
    ],
    "methods": [
      {
        "signature": "Rhino.Collections.ArchivableDictionary ToDictionary()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Create a dictionary of these options. This dictionary can be passed to the RhinoDoc.Export function",
        "since": "8.0"
      }
    ]
  },
  {
    "namespace": "Rhino.FileIO",
    "name": "FilePlyWriteOptions",
    "dataType": "class",
    "constructors": [
      {
        "signature": "FilePlyWriteOptions(FileWriteOptions writeOptions)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "7.0"
      }
    ],
    "properties": [
      {
        "signature": "bool ExportASCII",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Determines whether to export as Ascii.",
        "since": "7.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool ExportColors",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Determines whether to export vertex colors.",
        "since": "7.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool ExportDoubles",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Determines whether vertexes are exported as doubles or floats.",
        "since": "7.0",
    "remarks": "only has impact for binary export, floats are always exported to ascii.",
        "property": ["get", "set"]
      },
      {
        "signature": "bool ExportMaterial",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Determines whether to export a material.",
        "since": "7.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool ExportNormals",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Determines whether to export vertex normals.",
        "since": "7.0",
        "property": ["get", "set"]
      },
      {
        "signature": "MeshingParameters MeshingParameters",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "7.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool UseSimpleDialog",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Determines whether to use the simple or detailed meshing dialog.",
        "since": "7.0",
        "property": ["get", "set"]
      }
    ],
    "fields": [
      {
        "signature": "public FileWriteOptions WriteOptions",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false
      }
    ]

  },
  {
    "namespace": "Rhino.FileIO",
    "name": "FilePov",
    "dataType": "class",
    "summary": "Support for writing POV file format",
    "constructors": [
      {
        "signature": "FilePov()",
        "summary": "Initializes a new instance of the FilePov class"
      }
    ],
    "methods": [
      {
        "signature": "System.Boolean Write(System.String path, RhinoDoc doc, FilePovWriteOptions options)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Write a POV file based on the contents of a RhinoDoc",
        "since": "8.0",
        "parameters": [
          {
            "name": "path",
            "type": "System.String",
            "summary": "path to write a file to"
          },
          {
            "name": "doc",
            "type": "RhinoDoc",
            "summary": "document to get geometry from"
          },
          {
            "name": "options",
            "type": "FilePovWriteOptions",
            "summary": "options used for generating the POV file"
          }
        ],
        "returns": "True on success"
      }
    ]
  },
  {
    "namespace": "Rhino.FileIO",
    "name": "FilePovWriteOptions",
    "dataType": "class",
    "summary": "Options for writing a POV file",
    "constructors": [
      {
        "signature": "FilePovWriteOptions()",
        "summary": "Initializes a new instance of the FilePovWriteOptions class"
      }
    ],
    "properties": [
      {
        "signature": "bool ExportAsOneFile",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "MeshingParameters MeshingParameters",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "8.0",
        "property": ["get", "set"]
      }
    ],
    "methods": [
      {
        "signature": "Rhino.Collections.ArchivableDictionary ToDictionary()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Create a dictionary of these options. This dictionary can be passed to the RhinoDoc.Export function",
        "since": "8.0"
      }
    ]
  },
  {
    "namespace": "Rhino.FileIO",
    "name": "FileRaw",
    "dataType": "class",
    "summary": "Support for writing Raw file format",
    "constructors": [
      {
        "signature": "FileRaw()",
        "summary": "Initializes a new instance of the FileRaw class"
      }
    ],
    "methods": [
      {
        "signature": "System.Boolean Read(System.String path, RhinoDoc doc, FileRawReadOptions options)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Read a raw file into a RhinoDoc",
        "since": "8.0",
        "parameters": [
          {
            "name": "path",
            "type": "System.String",
            "summary": "path to read a file from"
          },
          {
            "name": "doc",
            "type": "RhinoDoc",
            "summary": "document to import geometry into"
          },
          {
            "name": "options",
            "type": "FileRawReadOptions",
            "summary": "options used for importing the raw file"
          }
        ],
        "returns": "True on success"
      },
      {
        "signature": "System.Boolean Write(System.String path, RhinoDoc doc, FileRawWriteOptions options)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Write a raw file based on the contents of a RhinoDoc",
        "since": "8.0",
        "parameters": [
          {
            "name": "path",
            "type": "System.String",
            "summary": "path to write a file to"
          },
          {
            "name": "doc",
            "type": "RhinoDoc",
            "summary": "document to get geometry from"
          },
          {
            "name": "options",
            "type": "FileRawWriteOptions",
            "summary": "options used for generating the raw file"
          }
        ],
        "returns": "True on success"
      }
    ]
  },
  {
    "namespace": "Rhino.FileIO",
    "name": "FileRawReadOptions",
    "dataType": "class",
    "summary": "Options for reading a Raw file",
    "constructors": [
      {
        "signature": "FileRawReadOptions()",
        "summary": "Initializes a new instance of the FileRawReadOptions class"
      }
    ],
    "properties": [
      {
        "signature": "UnitSystem RawModelUnits",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "8.0",
        "property": ["get", "set"]
      }
    ],
    "methods": [
      {
        "signature": "Rhino.Collections.ArchivableDictionary ToDictionary()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Create a dictionary of these options. This dictionary can be passed to the RhinoDoc.Export function",
        "since": "8.0"
      }
    ]
  },
  {
    "namespace": "Rhino.FileIO",
    "name": "FileRawWriteOptions",
    "dataType": "class",
    "summary": "Options for writing a Raw file",
    "constructors": [
      {
        "signature": "FileRawWriteOptions()",
        "summary": "Initializes a new instance of the FileRawWriteOptions class"
      }
    ],
    "properties": [
      {
        "signature": "MeshingParameters MeshingParameters",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "8.0",
        "property": ["get", "set"]
      }
    ],
    "methods": [
      {
        "signature": "Rhino.Collections.ArchivableDictionary ToDictionary()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Create a dictionary of these options. This dictionary can be passed to the RhinoDoc.Export function",
        "since": "8.0"
      }
    ]
  },
  {
    "namespace": "Rhino.FileIO",
    "name": "FileReadOptions",
    "dataType": "class",
    "interfaces": ["IDisposable"],
    "constructors": [
      {
        "signature": "FileReadOptions()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      }
    ],
    "properties": [
      {
        "signature": "bool BatchMode",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "True means you cannot ask questions during reading. (no dialogs, no \"getters\", etc.)",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool ImportMode",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "True means we are merging whatever is being read into an existing document. This means you need to consider things like:  \nIf the information being read is in a different unit system, it should be     scaled if UseScaleGeometry is true.  \nThere can be existing layers, fonts, materials, dimension styles, hatch     patterns, and so on with the same name as items being read from the file.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool ImportReferenceMode",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "True means we are reading information for a work session reference model or a linked instance definition.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool InsertMode",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "True means we are reading information that will be used to create an instance definition or some other type of \"inserting\" that is supported by Rhino's \"Insert\" command.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "uint LinkedInstanceDefinitionSerialNumber",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "If a file is being read to create an instance definition, then this value will be the serial number of the instance definition being created. Otherwise, this value will be 0;",
        "since": "8.6",
        "property": ["get"]
      },
      {
        "signature": "bool NewMode",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "True means we are reading template information in something like a OnFileNew event.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool OpenMode",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "True means we are reading the information into an empty document.  This means you need to consider things like: <ul><li>Setting the unit system (if the file has a unit system)</li><li>Creating a default layer if one is not there.</li><li>Setting up appropriate views when you're finished reading.</li></ul>",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "ArchivableDictionary OptionsDictionary",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Additional read options.",
        "since": "8.0",
        "property": ["get"]
      },
      {
        "signature": "Guid ReferenceModelGrandParentLayerId",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Information that ultimately is part of a worksession reference model or linked instance definition model is being read, all layers are added as sub-layers of a grand-parent layer.When the information being read is destined for the active model, no grandparent layer is used. Value is Guid.Empty if no grandparent layer is in use.",
        "since": "8.6",
        "property": ["get"]
      },
      {
        "signature": "bool ScaleGeometry",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "true: If ImportMode is True and the geometry in the file being read has     a unit system different from the model's unit system, then apply the unit     conversion scale to the file's geometry before adding it to the model.  \nfalse: Do not scale. Once case where this happens is when an instance     definition is read from a file and the model space instance references     have been scaled. In case the instance definition geometry cannot be     scaled or the net result is that the size of the instance reference     object is scaled by the square of the scale factor.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool UseScaleGeometry",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "If this parameter is true, then no questions are asked when unit conversion scaling is optional and the setting specified by ScaleGeometry is used.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "uint WorkSessionReferenceModelSerialNumber",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "If a worksession reference model is being read, then a value >= 1000 will be returned. Otherwise, this value will be 0;",
        "since": "8.6",
        "property": ["get"]
      }
    ],
    "methods": [
      {
        "signature": "System.Void Dispose()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "System.Void Dispose(System.Boolean disposing)",
        "modifiers": ["protected", "virtual"],
        "protected": true,
        "virtual": true
      }
    ]
  },
  {
    "namespace": "Rhino.FileIO",
    "name": "FileReference",
    "dataType": "class",
    "summary": "Manages a reference to an existing or non-existing file, using either or both absolute or relative paths. Once constructed, this class is immutable.",
    "interfaces": ["IDisposable"],
    "constructors": [
      {
        "signature": "FileReference(string fullPath, string relativePath, ContentHash hash, FileReferenceStatus status)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Constructs a new instance of the FileReference class, given a fullPath, a relativePath a content hash and a status value.",
        "since": "6.0"
      }
    ],
    "properties": [
      {
        "signature": "ContentHash ContentHash",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the content hash.",
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "string FullPath",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the absolute path of this file reference.",
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "FileReferenceStatus FullPathStatus",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the file reference status.",
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "bool IsSet",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns an indication of the fact that the reference is actually set to a non-None value.",
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "string RelativePath",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the relative path of this file reference.",
        "since": "6.0",
        "property": ["get"]
      }
    ],
    "methods": [
      {
        "signature": "FileReference CreateFromFullAndRelativePaths(System.String fullPath, System.String relativePath)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Returns a new file reference. This returns a new instance even if the path does not exist.",
        "since": "6.0",
        "parameters": [
          {
            "name": "fullPath",
            "type": "System.String",
            "summary": "A full path. This parameter cannot be null."
          },
          {
            "name": "relativePath",
            "type": "System.String",
            "summary": "A relative path. This parameter can be null."
          }
        ],
        "returns": "A file reference to the specified paths."
      },
      {
        "signature": "FileReference CreateFromFullPath(System.String fullPath)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Returns a new file reference. This returns a new instance even if the path does not exist.",
        "since": "6.0",
        "parameters": [
          {
            "name": "fullPath",
            "type": "System.String",
            "summary": "A full path."
          }
        ],
        "returns": "A file reference to the specified path."
      },
      {
        "signature": "System.Void Dispose()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Reclaims unmanaged resources used by this object.",
        "since": "6.0"
      }
    ]
  },
  {
    "namespace": "Rhino.FileIO",
    "name": "FileReferenceStatus",
    "dataType": "enum",
    "summary": "Enumerates a list of file statuses.",
    "values": [
      {
        "signature": "Unknown = 0",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Status of a the full path is not known."
      },
      {
        "signature": "FullPathValid = 1",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Full path is valid."
      },
      {
        "signature": "FileNotFound = 2",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Unable to locate file."
      }
    ]

  },
  {
    "namespace": "Rhino.FileIO",
    "name": "FileSat",
    "dataType": "class",
    "summary": "Support for writing Sat file format",
    "constructors": [
      {
        "signature": "FileSat()",
        "summary": "Initializes a new instance of the FileSat class"
      }
    ],
    "methods": [
      {
        "signature": "System.Boolean Write(System.String filename, RhinoDoc doc, FileSatWriteOptions options)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Write a Sat file based on the contents of a RhinoDoc",
        "since": "7.0",
        "parameters": [
          {
            "name": "filename",
            "type": "System.String",
            "summary": "path to write a file to"
          },
          {
            "name": "doc",
            "type": "RhinoDoc",
            "summary": "document to get geometry from"
          },
          {
            "name": "options",
            "type": "FileSatWriteOptions",
            "summary": "options used for generating the Sat file"
          }
        ],
        "returns": "True on success"
      }
    ]
  },
  {
    "namespace": "Rhino.FileIO",
    "name": "FileSatWriteOptions",
    "dataType": "class",
    "summary": "Options used when writing a Sat file",
    "constructors": [
      {
        "signature": "FileSatWriteOptions()",
        "summary": "Initializes a new instance of the FileSatWriteOptions class"
      }
    ],
    "properties": [
      {
        "signature": "SatTypes Type",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Get and set the type of the sat file being written.",
        "since": "8.0",
        "property": ["get", "set"]
      }
    ],
    "methods": [
      {
        "signature": "Rhino.Collections.ArchivableDictionary ToDictionary()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Create a dictionary of these options. This dictionary can be passed to the RhinoDoc.Export function",
        "since": "8.0"
      }
    ]
  },
  {
    "namespace": "Rhino.FileIO",
    "name": "FileSatWriteOptions.SatTypes",
    "dataType": "enum",
    "summary": "Sat export types. Flavors of sat file that are suitable for a particular application or version of acis sat.",
    "since": "8.0",
    "values": [
      {
        "signature": "Default           = 0",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "ACIS15            = 1",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "ACIS20            = 2",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "ACIS30            = 3",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "ACIS40            = 4",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "AutoCAD           = 5",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "MechanicalDesktop = 6",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Inventor          = 7",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "SolidWorks        = 8",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "SolidEdge         = 9",
        "modifiers": [],
        "protected": false,
        "virtual": false
      }
    ]

  },
  {
    "namespace": "Rhino.FileIO",
    "name": "FileSkp",
    "dataType": "class",
    "summary": "Support for writing Skp file format",
    "constructors": [
      {
        "signature": "FileSkp()",
        "summary": "Initializes a new instance of the FileSkp class"
      }
    ],
    "methods": [
      {
        "signature": "System.Boolean Read(System.String path, RhinoDoc doc, FileSkpReadOptions options)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Read a Skp file into a RhinoDoc",
        "since": "8.0",
        "parameters": [
          {
            "name": "path",
            "type": "System.String",
            "summary": "path to read a file from"
          },
          {
            "name": "doc",
            "type": "RhinoDoc",
            "summary": "document to import geometry into"
          },
          {
            "name": "options",
            "type": "FileSkpReadOptions",
            "summary": "options used for importing the Skp file"
          }
        ],
        "returns": "True on success"
      },
      {
        "signature": "System.Boolean Write(System.String filename, RhinoDoc doc, FileSkpWriteOptions options)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Write a Skp file based on the contents of a RhinoDoc",
        "since": "8.0",
        "parameters": [
          {
            "name": "filename",
            "type": "System.String",
            "summary": "path to write a file to"
          },
          {
            "name": "doc",
            "type": "RhinoDoc",
            "summary": "document to get geometry from"
          },
          {
            "name": "options",
            "type": "FileSkpWriteOptions",
            "summary": "options used for generating the Skp file"
          }
        ],
        "returns": "True on success"
      }
    ]
  },
  {
    "namespace": "Rhino.FileIO",
    "name": "FileSkpReadOptions",
    "dataType": "class",
    "summary": "Options used when reading a Skp file",
    "constructors": [
      {
        "signature": "FileSkpReadOptions()",
        "summary": "Initializes a new instance of the FileSkpReadOptions class"
      }
    ],
    "properties": [
      {
        "signature": "bool AddObjectsToGroups",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "int DisplayColorBy",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "9.0",
    "remarks": "0 == material, 1 == layer",
        "property": ["get", "set"]
      },
      {
        "signature": "bool EmbedTexturesInModel",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool ImportCurves",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool ImportFacesAsMeshes",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Set to False for trimmed planes.",
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool JoinEdges",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool JoinFaces",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool UseGroupLayers",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool UseSketchUpTextureWriter",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool Weld",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "double WeldAngle",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "8.0",
        "property": ["get", "set"]
      }
    ],
    "methods": [
      {
        "signature": "Rhino.Collections.ArchivableDictionary ToDictionary()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Create a dictionary of these options. This dictionary can be passed to the RhinoDoc.Import function",
        "since": "8.0"
      }
    ]
  },
  {
    "namespace": "Rhino.FileIO",
    "name": "FileSkpWriteOptions",
    "dataType": "class",
    "summary": "Options used when writing a Skp file",
    "constructors": [
      {
        "signature": "FileSkpWriteOptions()",
        "summary": "Initializes a new instance of the FileSkpWriteOptions class"
      }
    ],
    "properties": [
      {
        "signature": "bool ExportPlanarRegionsAsPolygons",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool GroupObjects",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "9.0",
        "property": ["get", "set"]
      },
      {
        "signature": "double MaxAngle",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "9.0",
        "property": ["get", "set"]
      },
      {
        "signature": "SketchUpVersion Version",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Set the version of the skp file being written.",
        "since": "8.0",
        "property": ["get", "set"]
      }
    ],
    "methods": [
      {
        "signature": "Rhino.Collections.ArchivableDictionary ToDictionary()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Create a dictionary of these options. This dictionary can be passed to the RhinoDoc.Export function",
        "since": "8.0"
      }
    ]
  },
  {
    "namespace": "Rhino.FileIO",
    "name": "FileSkpWriteOptions.SketchUpVersion",
    "dataType": "enum",
    "summary": "SketchUp Versions",
    "since": "8.0",
    "values": [
      {
        "signature": "SketchUp3    = 0",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "SketchUp4    = 1",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "SketchUp5    = 2",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "SketchUp6    = 3",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "SketchUp7    = 4",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "SketchUp8    = 5",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "SketchUp2013 = 6",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "SketchUp2014 = 7",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "SketchUp2015 = 8",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "SketchUp2016 = 9",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "SketchUp2017 = 10",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "SketchUp2018 = 11",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "SketchUp2019 = 12",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "SketchUp2020 = 13",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "SketchUp2021 = 14",
        "modifiers": [],
        "protected": false,
        "virtual": false
      }
    ]

  },
  {
    "namespace": "Rhino.FileIO",
    "name": "FileSlc",
    "dataType": "class",
    "summary": "Support for writing slice (SLC) file format",
    "constructors": [
      {
        "signature": "FileSlc()",
        "summary": "Initializes a new instance of the FileSlc class"
      }
    ],
    "methods": [
      {
        "signature": "System.Boolean Write(System.String filename, RhinoDoc doc, FileSlcWriteOptions options)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Write a SLC file based on the contents of a RhinoDoc",
        "since": "7.0",
        "parameters": [
          {
            "name": "filename",
            "type": "System.String",
            "summary": "path to write a file to"
          },
          {
            "name": "doc",
            "type": "RhinoDoc",
            "summary": "document to get geometry from"
          },
          {
            "name": "options",
            "type": "FileSlcWriteOptions",
            "summary": "options used for generating the SLC file"
          }
        ],
        "returns": "True on success"
      }
    ]
  },
  {
    "namespace": "Rhino.FileIO",
    "name": "FileSlcWriteOptions",
    "dataType": "class",
    "summary": "Options used when writing a SLC file",
    "constructors": [
      {
        "signature": "FileSlcWriteOptions()",
        "summary": "Initializes a new instance of the FileSlcWriteOptions class"
      }
    ],
    "properties": [
      {
        "signature": "double AngleBetweenSegmentsDegrees",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "The angle that determines how smooth the polylines of the slice curves will be. When the number is small you will get a smooth final output but it will take more time to export and a larger file.",
        "since": "7.0",
        "property": ["get", "set"]
      },
      {
        "signature": "Point3d EndPoint",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "End of the slicing normal",
        "since": "7.0",
        "property": ["get", "set"]
      },
      {
        "signature": "double SliceDistance",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "The distance between the slices or layers of curves that your final output will contain. The distance should be based on the slice thickness of your final output device",
        "since": "7.0",
        "property": ["get", "set"]
      },
      {
        "signature": "Point3d StartPoint",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Start of the slicing normal",
        "since": "7.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool UseMeshes",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Use meshes to generate slices. The curves for each slice are generated by intersecting the object mesh with a plane. the Angle between polyline segments data is not used when this value is true",
        "since": "7.0",
        "property": ["get", "set"]
      }
    ]
  },
  {
    "namespace": "Rhino.FileIO",
    "name": "FileStl",
    "dataType": "class",
    "summary": "Support for writing STL file format",
    "constructors": [
      {
        "signature": "FileStl()",
        "summary": "Initializes a new instance of the FileStl class"
      }
    ],
    "methods": [
      {
        "signature": "System.Boolean Read(System.String path, RhinoDoc doc, FileStlReadOptions options)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Read a STL file into a RhinoDoc",
        "since": "8.0",
        "parameters": [
          {
            "name": "path",
            "type": "System.String",
            "summary": "path to read a file from"
          },
          {
            "name": "doc",
            "type": "RhinoDoc",
            "summary": "document to import geometry into"
          },
          {
            "name": "options",
            "type": "FileStlReadOptions",
            "summary": "options used for importing the STL file"
          }
        ],
        "returns": "True on success"
      },
      {
        "signature": "System.Boolean Write(System.String path, RhinoDoc doc, FileStlWriteOptions options)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Write a STL file based on the contents of a RhinoDoc",
        "since": "8.0",
        "parameters": [
          {
            "name": "path",
            "type": "System.String",
            "summary": "path to write a file to"
          },
          {
            "name": "doc",
            "type": "RhinoDoc",
            "summary": "document to get geometry from"
          },
          {
            "name": "options",
            "type": "FileStlWriteOptions",
            "summary": "options used for generating the STL file"
          }
        ],
        "returns": "True on success"
      }
    ]
  },
  {
    "namespace": "Rhino.FileIO",
    "name": "FileStlReadOptions",
    "dataType": "class",
    "summary": "Options for reading a STL file",
    "constructors": [
      {
        "signature": "FileStlReadOptions()",
        "summary": "Initializes a new instance of the FileStlReadOptions class"
      }
    ],
    "properties": [
      {
        "signature": "bool SplitDisjointMeshes",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "UnitSystem STLModelUnits",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool UseFileNameAsObjectName",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "9.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool Weld",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "double WeldAngle",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "8.0",
        "property": ["get", "set"]
      }
    ],
    "methods": [
      {
        "signature": "Rhino.Collections.ArchivableDictionary ToDictionary()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Create a dictionary of these options. This dictionary can be passed to the RhinoDoc.Export function",
        "since": "8.0"
      }
    ]
  },
  {
    "namespace": "Rhino.FileIO",
    "name": "FileStlWriteOptions",
    "dataType": "class",
    "summary": "Options for writing a STL file",
    "constructors": [
      {
        "signature": "FileStlWriteOptions()",
        "summary": "Initializes a new instance of the FileStlWriteOptions class"
      }
    ],
    "properties": [
      {
        "signature": "bool BinaryFile",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool ExportOpenObjects",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "MeshingParameters MeshingParameters",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "8.0",
        "property": ["get", "set"]
      }
    ],
    "methods": [
      {
        "signature": "Rhino.Collections.ArchivableDictionary ToDictionary()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Create a dictionary of these options. This dictionary can be passed to the RhinoDoc.Export function",
        "since": "8.0"
      }
    ]
  },
  {
    "namespace": "Rhino.FileIO",
    "name": "FileStp",
    "dataType": "class",
    "summary": "Support for writing STEP (STP) file format",
    "constructors": [
      {
        "signature": "FileStp()",
        "summary": "Initializes a new instance of the FileStp class"
      }
    ],
    "methods": [
      {
        "signature": "System.Boolean Read(System.String path, RhinoDoc doc, FileStpReadOptions options)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Read a Stp file into a RhinoDoc",
        "since": "8.0",
        "parameters": [
          {
            "name": "path",
            "type": "System.String",
            "summary": "path to read a file from"
          },
          {
            "name": "doc",
            "type": "RhinoDoc",
            "summary": "document to import geometry into"
          },
          {
            "name": "options",
            "type": "FileStpReadOptions",
            "summary": "options used for importing the Stp file"
          }
        ],
        "returns": "True on success"
      },
      {
        "signature": "System.Boolean Write(System.String filename, RhinoDoc doc, FileStpWriteOptions options)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Write a STP file based on the contents of a RhinoDoc",
        "since": "7.0",
        "parameters": [
          {
            "name": "filename",
            "type": "System.String",
            "summary": "path to write a file to"
          },
          {
            "name": "doc",
            "type": "RhinoDoc",
            "summary": "document to get geometry from"
          },
          {
            "name": "options",
            "type": "FileStpWriteOptions",
            "summary": "options used for generating the STP file"
          }
        ],
        "returns": "True on success"
      }
    ]
  },
  {
    "namespace": "Rhino.FileIO",
    "name": "FileStpReadOptions",
    "dataType": "class",
    "summary": "Options used when reading a STP file",
    "constructors": [
      {
        "signature": "FileStpReadOptions()",
        "summary": "Initializes a new instance of the FileStpReadOptions class"
      }
    ],
    "properties": [
      {
        "signature": "bool JoinSurfaces",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool LimitFaces",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "int MaxFaceCount",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "8.0",
        "property": ["get", "set"]
      }
    ],
    "methods": [
      {
        "signature": "Rhino.Collections.ArchivableDictionary ToDictionary()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Create a dictionary of these options. This dictionary can be passed to the RhinoDoc.Import function",
        "since": "8.0"
      }
    ]
  },
  {
    "namespace": "Rhino.FileIO",
    "name": "FileStpWriteOptions",
    "dataType": "class",
    "summary": "Options used when writing a STP file",
    "constructors": [
      {
        "signature": "FileStpWriteOptions()",
        "summary": "Initializes a new instance of the FileStpWriteOptions class"
      }
    ],
    "properties": [
      {
        "signature": "bool Export2dCurves",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Some (not most, and not Rhino) importing applications can make use of the 2-D trimming curves to get a more accurate and faster import. The size of the step file will be larger",
        "since": "7.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool ExportBlack",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Let importing application set color for black objects. If a Rhino object has color black, no color is assigned to the object in the step file.This will cause the importing application to give the object its default color.This is desirable because black objects look like ink blots in some applications.This option is grayed out if the schema option is AP203ControConfigDesign since that schema does not include color entities.",
        "since": "7.0",
        "property": ["get", "set"]
      },
      {
        "signature": "StepSchema Schema",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Get and set the schema of the step file being written.",
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool SplitClosedSurfaces",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Splits closed surfaces, for example, the interior surfaces of drilled holes.",
        "since": "7.0",
        "property": ["get", "set"]
      }
    ],
    "methods": [
      {
        "signature": "Rhino.Collections.ArchivableDictionary ToDictionary()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Create a dictionary of these options. This dictionary can be passed to the RhinoDoc.Export function",
        "since": "8.0"
      }
    ]
  },
  {
    "namespace": "Rhino.FileIO",
    "name": "FileStpWriteOptions.StepSchema",
    "dataType": "enum",
    "summary": "Step schema.",
    "since": "8.0",
    "values": [
      {
        "signature": "SF_203 = 0",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "SF_214 = 1",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "SF_214_CC2 = 2",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "SF_242 = 3",
        "modifiers": [],
        "protected": false,
        "virtual": false
      }
    ]

  },
  {
    "namespace": "Rhino.FileIO",
    "name": "FileSvg",
    "dataType": "class",
    "summary": "Support for writing Svg file format",
    "constructors": [
      {
        "signature": "FileSvg()",
        "summary": "Initializes a new instance of the FileSvg class"
      }
    ],
    "methods": [
      {
        "signature": "System.Boolean Read(System.String path, RhinoDoc doc, FileSvgReadOptions options)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Read a Svg file into a RhinoDoc",
        "since": "8.0",
        "parameters": [
          {
            "name": "path",
            "type": "System.String",
            "summary": "path to read a file from"
          },
          {
            "name": "doc",
            "type": "RhinoDoc",
            "summary": "document to import geometry into"
          },
          {
            "name": "options",
            "type": "FileSvgReadOptions",
            "summary": "options used for importing the Svg file"
          }
        ],
        "returns": "True on success"
      }
    ]
  },
  {
    "namespace": "Rhino.FileIO",
    "name": "FileSvgReadOptions",
    "dataType": "class",
    "summary": "Options used when reading a Svg file",
    "constructors": [
      {
        "signature": "FileSvgReadOptions()",
        "summary": "Initializes a new instance of the FileSvgReadOptions class"
      }
    ],
    "properties": [
      {
        "signature": "bool GroupMultiCurvePaths",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "ImportFillMode ImportFilledObjectAs",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool RetainGrouping",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "8.0",
        "property": ["get", "set"]
      }
    ],
    "methods": [
      {
        "signature": "Rhino.Collections.ArchivableDictionary ToDictionary()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Create a dictionary of these options. This dictionary can be passed to the RhinoDoc.Import function",
        "since": "8.0"
      }
    ]
  },
  {
    "namespace": "Rhino.FileIO",
    "name": "FileSvgReadOptions.ImportFillMode",
    "dataType": "enum",
    "since": "8.0",
    "values": [
      {
        "signature": "AsCurves",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "AsHatches",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "AsTrimmedPlanes",
        "modifiers": [],
        "protected": false,
        "virtual": false
      }
    ]

  },
  {
    "namespace": "Rhino.FileIO",
    "name": "FileSW",
    "dataType": "class",
    "constructors": [
      {
        "signature": "FileSW()",
        "summary": "Initializes a new instance of the FileSW class"
      }
    ],
    "methods": [
      {
        "signature": "System.Boolean Read(System.String path, RhinoDoc doc, FileSwReadOptions options)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Read a .sldprt or .sldasm file into a RhinoDoc",
        "since": "8.0",
        "parameters": [
          {
            "name": "path",
            "type": "System.String",
            "summary": "path to read a file from"
          },
          {
            "name": "doc",
            "type": "RhinoDoc",
            "summary": "document to import geometry into"
          },
          {
            "name": "options",
            "type": "FileSwReadOptions",
            "summary": "options used for importing the SW file"
          }
        ],
        "returns": "True on success"
      }
    ]
  },
  {
    "namespace": "Rhino.FileIO",
    "name": "FileSwReadOptions",
    "dataType": "class",
    "summary": "Options used when reading a SW file",
    "constructors": [
      {
        "signature": "FileSwReadOptions()",
        "summary": "Initializes a new instance of the FileSwReadOptions class"
      }
    ],
    "properties": [
      {
        "signature": "bool ImportConstructionGeometry",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool ImportPartsAsBlocks",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool RotateYtoZ",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "8.0",
        "property": ["get", "set"]
      }
    ],
    "methods": [
      {
        "signature": "Rhino.Collections.ArchivableDictionary ToDictionary()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Create a dictionary of these options. This dictionary can be passed to the RhinoDoc.Import function",
        "since": "8.0"
      }
    ]
  },
  {
    "namespace": "Rhino.FileIO",
    "name": "FileTxt",
    "dataType": "class",
    "summary": "Support for writing Txt (points) file format",
    "constructors": [
      {
        "signature": "FileTxt()",
        "summary": "Initializes a new instance of the FileTxt class"
      }
    ],
    "methods": [
      {
        "signature": "System.Boolean Read(System.String path, RhinoDoc doc, FileTxtReadOptions options)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Read a Txt file into a RhinoDoc",
        "since": "8.0",
        "parameters": [
          {
            "name": "path",
            "type": "System.String",
            "summary": "path to read a file from"
          },
          {
            "name": "doc",
            "type": "RhinoDoc",
            "summary": "document to import geometry into"
          },
          {
            "name": "options",
            "type": "FileTxtReadOptions",
            "summary": "options used for importing the Txt file"
          }
        ],
        "returns": "True on success"
      },
      {
        "signature": "System.Boolean Write(System.String path, RhinoDoc doc, FileTxtWriteOptions options)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Write a Txt file based on the contents of a RhinoDoc",
        "since": "8.0",
        "parameters": [
          {
            "name": "path",
            "type": "System.String",
            "summary": "path to write a file to"
          },
          {
            "name": "doc",
            "type": "RhinoDoc",
            "summary": "document to get geometry from"
          },
          {
            "name": "options",
            "type": "FileTxtWriteOptions",
            "summary": "options used for generating the Txt file"
          }
        ],
        "returns": "True on success"
      }
    ]
  },
  {
    "namespace": "Rhino.FileIO",
    "name": "FileTxtReadOptions",
    "dataType": "class",
    "summary": "Options for writing a Txt file.",
    "constructors": [
      {
        "signature": "FileTxtReadOptions()",
        "summary": "Initializes a new instance of the FileTxtReadOptions class"
      }
    ],
    "properties": [
      {
        "signature": "bool CreatePointCloud",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "DelimiterMode Delimiter",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "char DelimiterCharacter",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "8.0",
        "property": ["get", "set"]
      }
    ],
    "methods": [
      {
        "signature": "Rhino.Collections.ArchivableDictionary ToDictionary()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Create a dictionary of these options. This dictionary can be passed to the RhinoDoc.Export function",
        "since": "8.0"
      }
    ]
  },
  {
    "namespace": "Rhino.FileIO",
    "name": "FileTxtReadOptions.DelimiterMode",
    "dataType": "enum",
    "since": "8.0",
    "values": [
      {
        "signature": "Comma = 0",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Semicolon = 1",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Space = 2",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Tab = 3",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Other = 4",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Automatic = 5",
        "modifiers": [],
        "protected": false,
        "virtual": false
      }
    ]

  },
  {
    "namespace": "Rhino.FileIO",
    "name": "FileTxtWriteOptions",
    "dataType": "class",
    "summary": "Options for writing a Txt file.",
    "constructors": [
      {
        "signature": "FileTxtWriteOptions()",
        "summary": "Initializes a new instance of the FileTxtWriteOptions class"
      }
    ],
    "properties": [
      {
        "signature": "DelimiterMode Delimiter",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "char DelimiterCharacter",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool ExportVertexColors",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "int Precision",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool SurroundWithDoubleQuotes",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "8.0",
        "property": ["get", "set"]
      }
    ],
    "methods": [
      {
        "signature": "Rhino.Collections.ArchivableDictionary ToDictionary()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Create a dictionary of these options. This dictionary can be passed to the RhinoDoc.Export function",
        "since": "8.0"
      }
    ]
  },
  {
    "namespace": "Rhino.FileIO",
    "name": "FileTxtWriteOptions.DelimiterMode",
    "dataType": "enum",
    "since": "8.0",
    "values": [
      {
        "signature": "Comma = 0",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Semicolon = 1",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Space = 2",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Tab = 3",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Other",
        "modifiers": [],
        "protected": false,
        "virtual": false
      }
    ]

  },
  {
    "namespace": "Rhino.FileIO",
    "name": "FileType",
    "dataType": "class",
    "constructors": [
      {
        "signature": "FileType(string extension, string description)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      }
    ],
    "properties": [
      {
        "signature": "string Description",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "string Extension",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0",
        "property": ["get", "set"]
      }
    ]
  },
  {
    "namespace": "Rhino.FileIO",
    "name": "FileUdo",
    "dataType": "class",
    "summary": "Support for writing Moray UDO file format",
    "constructors": [
      {
        "signature": "FileUdo()",
        "summary": "Initializes a new instance of the FileUdo class"
      }
    ],
    "methods": [
      {
        "signature": "System.Boolean Write(System.String path, RhinoDoc doc, FileUdoWriteOptions options)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Write a Moray UDO file based on the contents of a RhinoDoc",
        "since": "8.0",
        "parameters": [
          {
            "name": "path",
            "type": "System.String",
            "summary": "path to write a file to"
          },
          {
            "name": "doc",
            "type": "RhinoDoc",
            "summary": "document to get geometry from"
          },
          {
            "name": "options",
            "type": "FileUdoWriteOptions",
            "summary": "options used for generating the Moray UDO file"
          }
        ],
        "returns": "True on success"
      }
    ]
  },
  {
    "namespace": "Rhino.FileIO",
    "name": "FileUdoWriteOptions",
    "dataType": "class",
    "summary": "Options for writing a Moray UDO file",
    "constructors": [
      {
        "signature": "FileUdoWriteOptions()",
        "summary": "Initializes a new instance of the FileUdoWriteOptions class"
      }
    ],
    "properties": [
      {
        "signature": "MeshingParameters MeshingParameters",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "8.0",
        "property": ["get", "set"]
      }
    ],
    "methods": [
      {
        "signature": "Rhino.Collections.ArchivableDictionary ToDictionary()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Create a dictionary of these options. This dictionary can be passed to the RhinoDoc.Export function",
        "since": "8.0"
      }
    ]
  },
  {
    "namespace": "Rhino.FileIO",
    "name": "FileUsd",
    "dataType": "class",
    "summary": "Support for writing USD file format",
    "constructors": [
      {
        "signature": "FileUsd()",
        "summary": "Initializes a new instance of the FileUsd class"
      }
    ],
    "methods": [
      {
        "signature": "System.Boolean Write(System.String path, RhinoDoc doc, FileUsdWriteOptions options)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Write a USD file based on the contents of a RhinoDoc",
        "since": "8.0",
        "parameters": [
          {
            "name": "path",
            "type": "System.String",
            "summary": "path to write a file to"
          },
          {
            "name": "doc",
            "type": "RhinoDoc",
            "summary": "document to get geometry from"
          },
          {
            "name": "options",
            "type": "FileUsdWriteOptions",
            "summary": "options used for generating the USD file"
          }
        ],
        "returns": "True on success"
      }
    ]
  },
  {
    "namespace": "Rhino.FileIO",
    "name": "FileUsdWriteOptions",
    "dataType": "class",
    "summary": "Options for writing a USD File (.usda, .usda, .usdz)",
    "constructors": [
      {
        "signature": "FileUsdWriteOptions()",
        "summary": "Initializes a new instance of the FileUsdWriteOptions class"
      }
    ],
    "properties": [
      {
        "signature": "USDExportBlockHandling BlockHandling",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Including blocks inside the file will result in a larger file size and data duplication",
        "since": "9.0",
        "property": ["get", "set"]
      },
      {
        "signature": "string DefaultLayer",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "The root prim for the USD File",
        "since": "9.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool ForceMeshes",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Forces all geometry to be represented as meshes",
        "since": "9.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool IncludeUserStrings",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Includes user strings in prim data",
        "since": "9.0",
        "property": ["get", "set"]
      },
      {
        "signature": "MeshingParameters MeshingParameters",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Leaving this empty will not insert a Prim",
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "string ModelName",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "A given model name will add a prim between the root prim and the start of the models data. Leaving this empty will not insert a Prim",
        "since": "9.0",
        "property": ["get", "set"]
      }
    ],
    "methods": [
      {
        "signature": "Rhino.Collections.ArchivableDictionary ToDictionary()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Create a dictionary of these options. This dictionary can be passed to <b>RhinoDoc.Export(string, Rhino.Collections.ArchivableDictionary)</b>",
        "since": "8.0",
        "returns": "A <b>Rhino.Collections.ArchivableDictionary</b> with all the necessary key/value pairs"
      }
    ]
  },
  {
    "namespace": "Rhino.FileIO",
    "name": "FileVda",
    "dataType": "class",
    "summary": "Support for writing Igs file format",
    "constructors": [
      {
        "signature": "FileVda()",
        "summary": "Initializes a new instance of the FileVda class"
      }
    ],
    "methods": [
      {
        "signature": "System.Boolean Write(System.String path, RhinoDoc doc, FileVdaWriteOptions options)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Write a Vda file based on the contents of a RhinoDoc",
        "since": "8.0",
        "parameters": [
          {
            "name": "path",
            "type": "System.String",
            "summary": "path to write a file to"
          },
          {
            "name": "doc",
            "type": "RhinoDoc",
            "summary": "document to get geometry from"
          },
          {
            "name": "options",
            "type": "FileVdaWriteOptions",
            "summary": "options used for generating the Vda file"
          }
        ],
        "returns": "True on success"
      }
    ]
  },
  {
    "namespace": "Rhino.FileIO",
    "name": "FileVdaWriteOptions",
    "dataType": "class",
    "summary": "Options for writing a Vda file",
    "constructors": [
      {
        "signature": "FileVdaWriteOptions()",
        "summary": "Initializes a new instance of the FileVdaWriteOptions class"
      }
    ],
    "properties": [
      {
        "signature": "string Address",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "string CompanyName",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "string Confidentiality",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "string DateEffective",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "string ObjectCode",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool PointDeviationHairsAsMDI",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "string ProjectName",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "string ReceivingDepartment",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "string SendersName",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "string SendingCompany",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "string TelephoneNumber",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "string Variant",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "8.0",
        "property": ["get", "set"]
      }
    ],
    "methods": [
      {
        "signature": "Rhino.Collections.ArchivableDictionary ToDictionary()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Create a dictionary of these options. This dictionary can be passed to the RhinoDoc.Export function",
        "since": "8.0"
      }
    ]
  },
  {
    "namespace": "Rhino.FileIO",
    "name": "FileVrml",
    "dataType": "class",
    "summary": "Support for writing wrl file format",
    "constructors": [
      {
        "signature": "FileVrml()",
        "summary": "Initializes a new instance of the FileVrml class"
      }
    ],
    "methods": [
      {
        "signature": "System.Boolean Write(System.String path, RhinoDoc doc, FileVrmlWriteOptions options)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Write a wrl file based on the contents of a RhinoDoc",
        "since": "8.0",
        "parameters": [
          {
            "name": "path",
            "type": "System.String",
            "summary": "path to write a file to"
          },
          {
            "name": "doc",
            "type": "RhinoDoc",
            "summary": "document to get geometry from"
          },
          {
            "name": "options",
            "type": "FileVrmlWriteOptions",
            "summary": "options used for generating the wrl file"
          }
        ],
        "returns": "True on success"
      }
    ]
  },
  {
    "namespace": "Rhino.FileIO",
    "name": "FileVrmlWriteOptions",
    "dataType": "class",
    "summary": "Options for writing a wrl file",
    "constructors": [
      {
        "signature": "FileVrmlWriteOptions()",
        "summary": "Initializes a new instance of the FileVrmlWriteOptions class"
      }
    ],
    "properties": [
      {
        "signature": "bool ExportTextureCoordinates",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool ExportVertexColors",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool ExportVertexNormals",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "MeshingParameters MeshingParameters",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "int Version",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "8.0",
        "property": ["get", "set"]
      }
    ],
    "methods": [
      {
        "signature": "Rhino.Collections.ArchivableDictionary ToDictionary()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Create a dictionary of these options. This dictionary can be passed to the RhinoDoc.Export function",
        "since": "8.0"
      }
    ]
  },
  {
    "namespace": "Rhino.FileIO",
    "name": "FileWriteOptions",
    "dataType": "class",
    "interfaces": ["IDisposable"],
    "constructors": [
      {
        "signature": "FileWriteOptions()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      }
    ],
    "properties": [
      {
        "signature": "bool AllowUserInterfaceWithHeadlessDocument",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "If true, file writing plug-ins may show user interface (a dialog when SuppressDialogBoxes is false, command line getters when it is true) even though the document being written is headless.",
    "remarks": "Added 2026-07-10 by wfcook for RH-95100",
        "property": ["get", "set"]
      },
      {
        "signature": "string BackupFileFolder",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "For use on Apple frameworks only. Returns the final destination file name.",
        "since": "6.3",
        "property": ["get", "set"]
      },
      {
        "signature": "bool CreateBackupFiles",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "property": ["get", "set"]
      },
      {
        "signature": "bool CreateOtherBackupFiles",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "property": ["get", "set"]
      },
      {
        "signature": "string DestinationFileName",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "For use on Apple frameworks only. Returns the final destination file name.",
        "since": "6.3",
        "property": ["get"]
      },
      {
        "signature": "Guid FileTypeId",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns nil for a Rhino .3dm file or the GUID of the plugin that wrote the file",
        "property": ["get"]
      },
      {
        "signature": "int FileTypeIndex",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns the FileTypeIndex that identifies the extension the file writing plugin will create.",
        "property": ["get"]
      },
      {
        "signature": "bool FileTypeIs3dm",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "True if the file time is some version of a Rhino 3dm file.",
        "property": ["get"]
      },
      {
        "signature": "bool FileTypeIsComplete3dm",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "True if the the file type is the current 3dm file version and everything in the document will be saved.",
        "property": ["get"]
      },
      {
        "signature": "int FileVersion",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool IncludeBitmapTable",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "The file written should include the bitmap table if your File Writing Plug-in supports it.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool IncludeHistory",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "The file written should include history information if your File Writing Plug-In supports it.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool IncludePreviewImage",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "The file written should include a preview image if your File Writing Plug-in supports it.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool IncludeRenderMeshes",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "The file written should include the render meshes if your File Writing Plug-in supports it.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "ArchivableDictionary OptionsDictionary",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Additional read options.",
        "since": "8.0",
        "property": ["get"]
      },
      {
        "signature": "int Rhino3dmVersion",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns the version of the saved Rhino file 0: The file type is non-3dm file identified by FileTypeId() and FileTypeIndex(). >= 2: The file type is a 3dm file and the number specifies the earliest version of Rhino that will be able to read the 3dm file.",
        "property": ["get"]
      },
      {
        "signature": "RhinoDoc RhinoDoc",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Source RhinoDoc that is being written",
        "since": "7.7",
        "property": ["get"]
      },
      {
        "signature": "bool SuppressAllInput",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "7.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool SuppressDialogBoxes",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "If true, it means the command has been run with a '-', meaning you should not ask questions during writing. (no dialogs, no \"getters\", etc.)",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool UpdateDocumentPath",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "If a complete, current version, 3dm file is successfully saved, then the name of the file will be used to update the document's default file path and title and document will be marked as not modified.",
        "since": "6.7",
        "property": ["get", "set"]
      },
      {
        "signature": "bool UseCompression",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "property": ["get", "set"]
      },
      {
        "signature": "bool WriteAsTemplate",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Write as template",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "bool WriteGeometryOnly",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "If true, the file written should include only geometry File Writing Plug-in supports it.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool WriteSelectedObjectsOnly",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "If true, this command should export only the objects currently selected in the Rhino model.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool WriteUserData",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "If true, the file written should include User Data if your File Writing Plug-in supports it.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "Transform Xform",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0",
        "property": ["get", "set"]
      }
    ],
    "methods": [
      {
        "signature": "System.Void Dispose()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "System.Void Dispose(System.Boolean disposing)",
        "modifiers": ["protected", "virtual"],
        "protected": true,
        "virtual": true
      },
      {
        "signature": "System.String GetFileName()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false
      }
    ]
  },
  {
    "namespace": "Rhino.FileIO",
    "name": "FileX_T",
    "dataType": "class",
    "summary": "Support for writing X_T file format",
    "constructors": [
      {
        "signature": "FileX_T()",
        "summary": "Initializes a new instance of the FileX_T class"
      }
    ],
    "methods": [
      {
        "signature": "System.Boolean Write(System.String filename, RhinoDoc doc, FileX_TWriteOptions options)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Write a X_T file based on the contents of a RhinoDoc",
        "since": "7.0",
        "parameters": [
          {
            "name": "filename",
            "type": "System.String",
            "summary": "path to write a file to"
          },
          {
            "name": "doc",
            "type": "RhinoDoc",
            "summary": "document to get geometry from"
          },
          {
            "name": "options",
            "type": "FileX_TWriteOptions",
            "summary": "options used for generating the X_T file"
          }
        ],
        "returns": "True on success"
      }
    ]
  },
  {
    "namespace": "Rhino.FileIO",
    "name": "FileX_TWriteOptions",
    "dataType": "class",
    "summary": "Options used when writing a X_T file",
    "constructors": [
      {
        "signature": "FileX_TWriteOptions()",
        "summary": "Initializes a new instance of the FileX_TWriteOptions class"
      }
    ],
    "properties": [
      {
        "signature": "X_T_Types Type",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Get and set the type of the x_t file being written.",
        "since": "8.0",
        "property": ["get", "set"]
      }
    ],
    "methods": [
      {
        "signature": "Rhino.Collections.ArchivableDictionary ToDictionary()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Create a dictionary of these options. This dictionary can be passed to the RhinoDoc.Export function",
        "since": "8.0"
      }
    ]
  },
  {
    "namespace": "Rhino.FileIO",
    "name": "FileX_TWriteOptions.X_T_Types",
    "dataType": "enum",
    "summary": "X_T export types. Flavors of x_t file that are suitable for a particular application or version of parsolid x_t.",
    "since": "8.0",
    "values": [
      {
        "signature": "Default    = 0",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Edgecam    = 1",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Mastercam  = 2",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "SolidEdge  = 3",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "SolidWorks = 4",
        "modifiers": [],
        "protected": false,
        "virtual": false
      }
    ]

  },
  {
    "namespace": "Rhino.FileIO",
    "name": "FileX3dv",
    "dataType": "class",
    "summary": "Support for writing x3dv file format",
    "constructors": [
      {
        "signature": "FileX3dv()",
        "summary": "Initializes a new instance of the FileX3dv class"
      }
    ],
    "methods": [
      {
        "signature": "System.Boolean Write(System.String path, RhinoDoc doc, FileX3dvWriteOptions options)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Write a x3dv file based on the contents of a RhinoDoc",
        "since": "8.0",
        "parameters": [
          {
            "name": "path",
            "type": "System.String",
            "summary": "path to write a file to"
          },
          {
            "name": "doc",
            "type": "RhinoDoc",
            "summary": "document to get geometry from"
          },
          {
            "name": "options",
            "type": "FileX3dvWriteOptions",
            "summary": "options used for generating the x3dv file"
          }
        ],
        "returns": "True on success"
      }
    ]
  },
  {
    "namespace": "Rhino.FileIO",
    "name": "FileX3dvWriteOptions",
    "dataType": "class",
    "summary": "Options for writing a x3dv file",
    "constructors": [
      {
        "signature": "FileX3dvWriteOptions()",
        "summary": "Initializes a new instance of the FileX3dvWriteOptions class"
      }
    ],
    "properties": [
      {
        "signature": "bool ExportTextureCoordinates",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool ExportVertexColors",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool ExportVertexNormals",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "MeshingParameters MeshingParameters",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "8.0",
        "property": ["get", "set"]
      }
    ],
    "methods": [
      {
        "signature": "Rhino.Collections.ArchivableDictionary ToDictionary()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Create a dictionary of these options. This dictionary can be passed to the RhinoDoc.Export function",
        "since": "8.0"
      }
    ]
  },
  {
    "namespace": "Rhino.FileIO",
    "name": "FileXaml",
    "dataType": "class",
    "summary": "Support for writing Xaml file format",
    "constructors": [
      {
        "signature": "FileXaml()",
        "summary": "Initializes a new instance of the FileXaml class"
      }
    ],
    "methods": [
      {
        "signature": "System.Boolean Write(System.String path, RhinoDoc doc, FileFbxWriteOptions options)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Write a Xaml file based on the contents of a RhinoDoc",
        "since": "8.0",
        "parameters": [
          {
            "name": "path",
            "type": "System.String",
            "summary": "path to write a file to"
          },
          {
            "name": "doc",
            "type": "RhinoDoc",
            "summary": "document to get geometry from"
          },
          {
            "name": "options",
            "type": "FileFbxWriteOptions",
            "summary": "options used for generating the Xaml file"
          }
        ],
        "returns": "True on success"
      }
    ]
  },
  {
    "namespace": "Rhino.FileIO",
    "name": "FileXamlWriteOptions",
    "dataType": "class",
    "summary": "Options for writing a Xaml file",
    "constructors": [
      {
        "signature": "FileXamlWriteOptions()",
        "summary": "Initializes a new instance of the FileXamlWriteOptions class"
      }
    ],
    "properties": [
      {
        "signature": "bool AddRotationAnimation",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool AddRotationScrollbars",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "AnimationMode AnimationAxis",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "MeshingParameters MeshingParameters",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "8.0",
    "remarks": "This is not currently being used but may be in the future. See UseExistingRenderMeshes.",
        "property": ["get", "set"]
      },
      {
        "signature": "bool UseExistingRenderMeshes",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "If render meshes exist they will be used. Otherwise they are created on the fly using the current render settings of the document.",
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool UseOriginForRotationCenter",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "8.0",
        "property": ["get", "set"]
      }
    ],
    "methods": [
      {
        "signature": "Rhino.Collections.ArchivableDictionary ToDictionary()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Create a dictionary of these options. This dictionary can be passed to the RhinoDoc.Export function",
        "since": "8.0"
      }
    ]
  },
  {
    "namespace": "Rhino.FileIO",
    "name": "FileXamlWriteOptions.AnimationMode",
    "dataType": "enum",
    "since": "8.0",
    "values": [
      {
        "signature": "X = 0",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Y = 1",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Z = 2",
        "modifiers": [],
        "protected": false,
        "virtual": false
      }
    ]

  },
  {
    "namespace": "Rhino.FileIO",
    "name": "ICommonComponentTable",
    "dataType": "interface",
    "summary": "Provides methods to use all File3dm and RhinoDoc tables under the same contract. Do not derive from this interface. This is to ensure all tables can be used with the same method list.",
    "properties": [
      {
        "signature": "ModelComponentType ComponentType",
        "modifiers": [],
        "protected": true,
        "virtual": false,
        "summary": "Returns the model component type the table handles.",
        "property": ["get"]
      }
    ],
    "methods": [
      {
        "signature": "T FindId(System.Guid id)",
        "modifiers": [],
        "protected": true,
        "virtual": false,
        "summary": "Retrieves an object based on ID. You should prefer ID search over Index search.",
        "parameters": [
          {
            "name": "id",
            "type": "System.Guid",
            "summary": "The id to search for."
          }
        ],
        "returns": "A model component, or None if none was found."
      },
      {
        "signature": "T FindNameHash(NameHash nameHash)",
        "modifiers": [],
        "protected": true,
        "virtual": false,
        "summary": "Retrieves an object based on Name.",
        "parameters": [
          {
            "name": "nameHash",
            "type": "NameHash",
            "summary": "The name hash for which to search."
          }
        ]
      }
    ]
  },
  {
    "namespace": "Rhino.FileIO",
    "name": "ImageFile",
    "dataType": "class",
    "summary": "Support functions for image files",
    "constructors": [
      {
        "signature": "ImageFile()",
        "summary": "Initializes a new instance of the ImageFile class"
      }
    ],
    "methods": [
      {
        "signature": "System.Boolean SupportsAlphaChannel(System.String filename)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Returns True if file at given path is an image file and that file format supports an alpha channel",
        "since": "6.0"
      }
    ]
  },
  {
    "namespace": "Rhino.FileIO",
    "name": "ManifestTable",
    "dataType": "class",
    "summary": "Maintains an index to every model component that is in the 3dm file. This is the \"more comprehensive\" table that contains all objects in all other tables.",
    "interfaces": ["ICommonComponentTable<ModelComponent>"],
    "properties": [
      {
        "signature": "ModelComponentType ComponentType",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns <b>ModelComponentType.Mixed</b> .",
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "int Count",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Total number of items in the manifest, including deleted items.",
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "long LongCount",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Total number of items in the manifest, including deleted items.",
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "object Parent",
        "modifiers": ["public", "abstract"],
        "protected": false,
        "virtual": false,
        "summary": "Returns the parent object. This is the RhinoDoc, or the File3md file.",
        "since": "6.0",
        "property": ["get"]
      }
    ],
    "methods": [
      {
        "signature": "ModelComponentType GetModelComponentTypeFromGenericType()",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Returns the result of the ComponentType property of a ModelComponent.",
        "since": "6.0",
        "returns": "A <b>ModelComponentType</b> ."
      },
      {
        "signature": "System.Int32 ActiveObjectCount(ModelComponentType type)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Total number of items in the manifest, including deleted items.",
        "since": "6.0"
      },
      {
        "signature": "System.Void Clear()",
        "modifiers": ["public", "virtual"],
        "protected": false,
        "virtual": true,
        "summary": "Marks all items as deleted.",
        "since": "6.0"
      },
      {
        "signature": "System.Boolean Contains(ModelComponent item)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Determines if an items is contained in this table.",
        "since": "6.0",
        "parameters": [
          {
            "name": "item",
            "type": "ModelComponent",
            "summary": "An item, or null. Null is never contained."
          }
        ],
        "returns": "True if the item is contained; otherwise, false."
      },
      {
        "signature": "System.Void CopyTo(ModelComponent[] array, System.Int32 arrayIndex)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Copies the content of this table to an array.",
        "since": "6.0",
        "parameters": [
          {
            "name": "array",
            "type": "ModelComponent[]",
            "summary": "The array to copy to."
          },
          {
            "name": "arrayIndex",
            "type": "System.Int32",
            "summary": "The position in the array from which to start copying."
          }
        ]
      },
      {
        "signature": "ModelComponent FindId(System.Guid id, ModelComponentType type)",
        "modifiers": ["public", "abstract"],
        "protected": false,
        "virtual": false,
        "summary": "Uses the guid to find a model component. Deleted objects cannot be found by id. The guid is the value that is stored in the .Id property. In a single document, no two active objects have the same guid. If an object is replaced with a new object, then the guid  persists. For example, if the _Move command moves an object, then the moved object inherits its guid from the starting object. If the Copy command copies an object, then the copy gets a new guid. This guid persists through file saving/opening operations. This function will not find grip objects.",
        "since": "6.0",
        "parameters": [
          {
            "name": "id",
            "type": "System.Guid",
            "summary": "ID of model component to search for."
          },
          {
            "name": "type",
            "type": "ModelComponentType",
            "summary": "The type to be searched. If this is <b>ModelComponentType.Unset</b>  then all types are searched."
          }
        ],
        "returns": "Reference to the rhino object with the objectId or None if no such object could be found."
      },
      {
        "signature": "T FindId(System.Guid id)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Uses the guid to find a model component. Deleted objects cannot be found by id. The guid is the value that is stored in the .Id property. In a single document, no two active objects have the same guid. If an object is replaced with a new object, then the guid  persists. For example, if the _Move command moves an object, then the moved object inherits its guid from the starting object. If the Copy command copies an object, then the copy gets a new guid. This guid persists through file saving/opening operations. This function will not find grip objects.",
        "since": "6.0",
        "parameters": [
          {
            "name": "id",
            "type": "System.Guid",
            "summary": "Index of model component to search for."
          }
        ],
        "returns": "Reference to the rhino object or None if no such object could be found."
      },
      {
        "signature": "ModelComponent FindId(System.Guid id)",
        "modifiers": ["public", "abstract"],
        "protected": false,
        "virtual": false,
        "summary": "Uses the guid to find a model component. Deleted objects cannot be found by id. The guid is the value that is stored in the .Id property. In a single document, no two active objects have the same guid. If an object is replaced with a new object, then the guid  persists. For example, if the _Move command moves an object, then the moved object inherits its guid from the starting object. If the Copy command copies an object, then the copy gets a new guid. This guid persists through file saving/opening operations. This function will not find grip objects.",
        "since": "6.0",
        "parameters": [
          {
            "name": "id",
            "type": "System.Guid",
            "summary": "ID of model component to search for."
          }
        ],
        "returns": "Reference to the rhino object with the objectId or None if no such object could be found."
      },
      {
        "signature": "ModelComponent FindIndex(System.Int32 index, ModelComponentType type)",
        "modifiers": ["public", "abstract"],
        "protected": false,
        "virtual": false,
        "summary": "Uses the index to find a model component. The index is the value that is stored in the .Index property.",
        "since": "6.0",
        "parameters": [
          {
            "name": "index",
            "type": "System.Int32",
            "summary": "Index of model component to search for."
          },
          {
            "name": "type",
            "type": "ModelComponentType",
            "summary": "The type to be searched. Cannot be <b>ModelComponentType.Unset</b> ."
          }
        ],
        "returns": "Reference to the rhino object or None if no such object could be found."
      },
      {
        "signature": "T FindIndex(System.Int32 index)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Uses the index to find a model component. The index is the value that is stored in the .Index property.",
        "since": "6.0",
        "parameters": [
          {
            "name": "index",
            "type": "System.Int32",
            "summary": "Index of model component to search for."
          }
        ],
        "returns": "Reference to the rhino object or None if no such object could be found."
      },
      {
        "signature": "ModelComponent FindName(System.String name, ModelComponentType type, System.Guid parent)",
        "modifiers": ["public", "abstract"],
        "protected": false,
        "virtual": false,
        "summary": "Uses the name to find a model component. The name is the value that is stored in the .Name property. Deleted objects have no name.",
        "since": "6.0",
        "parameters": [
          {
            "name": "name",
            "type": "System.String",
            "summary": "Name of model component to search for."
          },
          {
            "name": "type",
            "type": "ModelComponentType",
            "summary": "The type to be searched. Cannot be <b>ModelComponentType.Unset</b> ."
          },
          {
            "name": "parent",
            "type": "System.Guid",
            "summary": "Parent object id. This is only required for layers."
          }
        ],
        "returns": "Reference to the rhino object or None if no such object could be found."
      },
      {
        "signature": "T FindName(System.String name, System.Guid parent)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Uses the name to find a model component. The name is the value that is stored in the .Name property. Deleted objects have no name.",
        "since": "6.0",
        "parameters": [
          {
            "name": "name",
            "type": "System.String",
            "summary": "Name of model component to search for."
          },
          {
            "name": "parent",
            "type": "System.Guid",
            "summary": "Parent object id. This is only required for layers."
          }
        ],
        "returns": "Reference to the rhino object or None if no such object could be found."
      },
      {
        "signature": "ModelComponent FindNameHash(NameHash nameHash, ModelComponentType type)",
        "modifiers": ["public", "abstract"],
        "protected": false,
        "virtual": false,
        "summary": "Uses the hash of the name to find a model component. Deleted objects have no name.",
        "since": "6.0",
        "parameters": [
          {
            "name": "nameHash",
            "type": "NameHash",
            "summary": "NameHash of model component to search for."
          },
          {
            "name": "type",
            "type": "ModelComponentType",
            "summary": "The type to be searched. Cannot be <b>ModelComponentType.Unset</b> ."
          }
        ],
        "returns": "Reference to the rhino object or None if no such object could be found."
      },
      {
        "signature": "T FindNameHash(NameHash nameHash)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Uses the hash of the name to find a model component. Deleted objects have no name.",
        "since": "6.0",
        "parameters": [
          {
            "name": "nameHash",
            "type": "NameHash",
            "summary": "Name hash of model component to search for."
          }
        ]
      },
      {
        "signature": "IEnumerator<T> GetEnumerator()",
        "modifiers": ["public", "virtual"],
        "protected": false,
        "virtual": true,
        "summary": "Visits all model components in the document, including default ones.",
        "since": "6.0",
        "returns": "An enumerator."
      },
      {
        "signature": "IEnumerator<ModelComponent> GetEnumerator()",
        "modifiers": ["public", "virtual"],
        "protected": false,
        "virtual": true,
        "summary": "Visits all model components in the document, including default ones.",
        "since": "6.0",
        "returns": "An enumerator."
      },
      {
        "signature": "IEnumerator<ModelComponent> GetEnumerator(ModelComponentType type)",
        "modifiers": ["public", "abstract"],
        "protected": false,
        "virtual": false,
        "summary": "Returns an enumerators that yields all model components, including default ones, relating to a particular type.",
        "since": "6.0",
        "parameters": [
          {
            "name": "type",
            "type": "ModelComponentType",
            "summary": "The model component type."
          }
        ],
        "returns": "An enumerator."
      }
    ]
  },
  {
    "namespace": "Rhino.FileIO",
    "name": "NameHash",
    "dataType": "class",
    "summary": "Contains information that is useful to uniquely identify an object name. This object is immutable.",
    "remarks": "This object is immutable.",
    "interfaces": ["ICloneable", "IEquatable<NameHash>"],
    "constructors": [
      {
        "signature": "NameHash(NameHash other)",
        "modifiers": ["protected"],
        "protected": true,
        "virtual": false,
        "summary": "Constructs a copy of a content hash.",
        "parameters": [
          {
            "name": "other",
            "type": "NameHash",
            "summary": "The other content hash to copy."
          }
        ]
      },
      {
        "signature": "NameHash(string name, Guid parentId, bool ignoreCase)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Creates a new NameHash, representing a piece of text.",
        "since": "6.0",
        "parameters": [
          {
            "name": "name",
            "type": "System.String",
            "summary": "A name. This can be None and can refer to a non-existing path."
          },
          {
            "name": "parentId",
            "type": "System.Guid",
            "summary": "The id of the parent layer. This is only useful with layers."
          },
          {
            "name": "ignoreCase",
            "type": "System.Boolean",
            "summary": "All manifest searches currently ignore case, except for groups."
          }
        ]
      },
      {
        "signature": "NameHash(string name, Guid parentId, ModelComponentType type)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Creates a new NameHash, representing a piece of text.",
        "since": "6.0",
        "parameters": [
          {
            "name": "name",
            "type": "System.String",
            "summary": "A name. This can be None and can refer to a non-existing path."
          },
          {
            "name": "parentId",
            "type": "System.Guid",
            "summary": "The id of the parent layer. This is only useful with layers."
          },
          {
            "name": "type",
            "type": "DocObjects.ModelComponentType",
            "summary": "Calls <b>DocObjects.ModelComponent.ModelComponentTypeIgnoresCase</b> to determine if case should be used in search."
          }
        ]
      },
      {
        "signature": "NameHash(string name, Guid parentId)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Creates a new NameHash, representing a piece of text.",
        "since": "6.0",
        "parameters": [
          {
            "name": "name",
            "type": "System.String",
            "summary": "A name. This can be None and can refer to a non-existing path."
          },
          {
            "name": "parentId",
            "type": "System.Guid",
            "summary": "The id of the parent layer. This is only useful with layers."
          }
        ]
      },
      {
        "signature": "NameHash(string name)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Creates a new NameHash, representing a piece of text.",
        "since": "6.0",
        "parameters": [
          {
            "name": "name",
            "type": "System.String",
            "summary": "A name. This can be None and can refer to a non-existing path."
          }
        ]
      }
    ],
    "properties": [
      {
        "signature": "uint MappedCodePoints",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the NameHash flags. In some cases = number of mapped code points.",
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "Guid ParentId",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Only useful if this participates in a tree structure, as with layers.",
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "byte[] Sha1Hash",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the 20-bytes long SHA-1 hash of ordinal minimum mapped Unicode (UTF-32) code points.",
        "since": "6.0",
        "property": ["get"]
      }
    ],
    "methods": [
      {
        "signature": "NameHash CreateFilePathHash(System.String path)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Creates a new NameHash, representing the name of a file.",
        "since": "6.0",
        "parameters": [
          {
            "name": "path",
            "type": "System.String",
            "summary": "A path. This can be None and can refer to a non-existing path."
          }
        ]
      },
      {
        "signature": "NameHash Clone()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Creates a copy of this name hash. Because content hash is immutable, this can be used as a deep copy.",
        "since": "6.0",
        "returns": "A different instance of the same name hash."
      },
      {
        "signature": "System.Boolean Equals(NameHash other)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Determines if another name hash has the same value.",
        "since": "6.0",
        "parameters": [
          {
            "name": "other",
            "type": "NameHash",
            "summary": "The other name hash to compare."
          }
        ],
        "returns": "True if the two hashes are equal."
      },
      {
        "signature": "System.Boolean Equals(System.Object obj)",
        "modifiers": ["public", "override"],
        "protected": false,
        "virtual": false,
        "summary": "Determines if another object is a name hash with same value.",
        "parameters": [
          {
            "name": "obj",
            "type": "System.Object",
            "summary": "The other content hash to compare."
          }
        ],
        "returns": "True if the two hashes are equal."
      },
      {
        "signature": "System.Int32 GetHashCode()",
        "modifiers": ["public", "override"],
        "protected": false,
        "virtual": false,
        "summary": "Gets an hash code for this name hash. Two equal content hashes have equal hash code. The other way around might not be true.",
        "returns": "An hash code value."
      }
    ],
    "operators": [
      {
        "signature": "bool operator !=(NameHash left, NameHash right)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Determines if two NameHash instances are different by value.",
        "since": "6.0",
        "parameters": [
          {
            "name": "left",
            "type": "NameHash",
            "summary": "The first hash."
          },
          {
            "name": "right",
            "type": "NameHash",
            "summary": "The second hash."
          }
        ]
      },
      {
        "signature": "bool operator ==(NameHash left, NameHash right)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Determines if two NameHash instances are equal by value.",
        "since": "6.0",
        "parameters": [
          {
            "name": "left",
            "type": "NameHash",
            "summary": "The first hash."
          },
          {
            "name": "right",
            "type": "NameHash",
            "summary": "The second hash."
          }
        ]
      }
    ]

  },
  {
    "namespace": "Rhino.FileIO",
    "name": "NavisWorksVersion",
    "dataType": "enum",
    "values": [
      {
        "signature": "Navisworks2016 = 0",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Navisworks2026 = 1",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "NavisworksCache = 2",
        "modifiers": [],
        "protected": false,
        "virtual": false
      }
    ]

  },
  {
    "namespace": "Rhino.FileIO.Nrbf",
    "name": "MemberInfo",
    "dataType": "struct"
  },
  {
    "namespace": "Rhino.FileIO",
    "name": "SerializationOptions",
    "dataType": "class",
    "summary": "Contains options for serializing -or storing- data, such as Rhino version, user data, and meshes.",
    "constructors": [
      {
        "signature": "SerializationOptions()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Initializes a new instance of the <b>SerializationOptions</b> class.",
        "since": "5.0"
      }
    ],
    "properties": [
      {
        "signature": "int MaxRhinoVersion",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the most recent serialization version available.",
        "since": "8.19",
        "property": ["get"]
      },
      {
        "signature": "int MinRhinoVersion",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the earliest serialization version available.",
        "since": "8.19",
        "property": ["get"]
      },
      {
        "signature": "int RhinoVersion",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets a value indicating the Rhino version.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool WriteAnalysisMeshes",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets a value indicating whether to write analysis meshes",
        "since": "8.4",
        "property": ["get", "set"]
      },
      {
        "signature": "bool WriteRenderMeshes",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets a value indicating whether to write render meshes",
        "since": "8.4",
        "property": ["get", "set"]
      },
      {
        "signature": "bool WriteUserData",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets a value indicating whether to write user data.",
        "since": "5.0",
        "property": ["get", "set"]
      }
    ]
  },
  {
    "namespace": "Rhino.FileIO",
    "name": "SHA1OpenNURBS",
    "dataType": "class",
    "summary": "Provides the OpenNURBS implementation of SHA1.  \nThis class is provided only with the purpose of hashing. It is not meant to be   used for any cryptographic purpose.",
    "baseclass": "SHA1",
    "constructors": [
      {
        "signature": "SHA1OpenNURBS()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Constructs a new instance of the SHA1 algorithm.",
        "since": "6.0"
      }
    ],
    "methods": [
      {
        "signature": "System.Byte[] FileSystemPathHash(System.String path, System.Boolean? ignoreCase)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Computes the SHA1 hash of a file system path, converted to UTF8.  \nThese file system paths have identical values of FileSystemPathHash():  \n/x/y/z/name.ext  \n\\x\\y\\z\\name.ext  \n/x//y//z/name.ext  \n/x/y/a/b/c/../../../z/name.ext  \n/X/Y/Z/NAME.EXT (When ignoreCase is true)",
        "parameters": [
          {
            "name": "path",
            "type": "System.String",
            "summary": "A non-None path string."
          },
          {
            "name": "ignoreCase",
            "type": "System.Boolean?",
            "summary": "If case should be ignored. If this is None or unspecified, the operating system default is used."
          }
        ],
        "returns": "A 20-byte long SHA1 hash."
      },
      {
        "signature": "System.Byte[] StringHash(System.String input)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Computes the SHA1 hash of a string, converted to UTF8.",
        "since": "6.0",
        "returns": "A 20-byte long SHA1 hash."
      },
      {
        "signature": "System.Void Dispose(System.Boolean disposing)",
        "modifiers": ["protected", "override"],
        "protected": true,
        "virtual": false,
        "summary": "Reclaims unmanaged resources used by this instance, and invalidates the instance. After calling this method, all other methods will always call ObjectDisposedException.",
        "parameters": [
          {
            "name": "disposing",
            "type": "System.Boolean",
            "summary": "True if the class user called Dispose."
          }
        ]
      },
      {
        "signature": "System.Void HashCore(System.Byte[] array, System.Int32 start, System.Int32 length)",
        "modifiers": ["protected", "override"],
        "protected": true,
        "virtual": false,
        "summary": "Advances the hash by an input array.",
        "parameters": [
          {
            "name": "array",
            "type": "System.Byte[]",
            "summary": "The array."
          },
          {
            "name": "start",
            "type": "System.Int32",
            "summary": "The start of the data to consider in the array."
          },
          {
            "name": "length",
            "type": "System.Int32",
            "summary": "The used data length on the array."
          }
        ]
      },
      {
        "signature": "System.Byte[] HashFinal()",
        "modifiers": ["protected", "override"],
        "protected": true,
        "virtual": false,
        "summary": "Returns the currently computed hash.",
        "returns": "The final hash."
      },
      {
        "signature": "System.Void Initialize()",
        "modifiers": ["public", "override"],
        "protected": false,
        "virtual": false,
        "summary": "Resets this instance of the algorithm, so that it can be used again. It is not required to call this method after creation.",
        "since": "6.0"
      }
    ]
  },
  {
    "namespace": "Rhino.FileIO",
    "name": "TextLog",
    "dataType": "class",
    "summary": "Used for collecting text data",
    "interfaces": ["IDisposable"],
    "constructors": [
      {
        "signature": "TextLog()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Creates a text log that stores all text in memory.  Use ToString on this version of the TextLog to get the text that we written",
        "since": "5.1"
      },
      {
        "signature": "TextLog(IntPtr ptr)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0"
      },
      {
        "signature": "TextLog(string filename)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Creates a text log that writes all text to a file. If no filename is provided, then text is written to StdOut",
        "since": "5.1",
        "parameters": [
          {
            "name": "filename",
            "type": "System.String",
            "summary": "Name of file to create and write to. If null, then text output is sent to StdOut"
          }
        ]
      }
    ],
    "properties": [
      {
        "signature": "int IndentSize",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "0: one tab per indent. >0: number of spaces per indent",
        "since": "5.1",
        "property": ["get", "set"]
      }
    ],
    "methods": [
      {
        "signature": "TextLog NewCommandLine()",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Returns a reference to a TextLog that prints to the Rhino command line. Each new command line reference holds its own indents.",
        "since": "7.0",
    "remarks": "All Print methods of this instance are guaranteed to be thread safe. Other methods are not guaranteed to be thread safe."
      },
      {
        "signature": "System.Void Dispose()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Actively reclaims unmanaged resources that this instance uses.",
        "since": "5.1"
      },
      {
        "signature": "System.Void Dispose(System.Boolean disposing)",
        "modifiers": ["protected", "virtual"],
        "protected": true,
        "virtual": true,
        "summary": "For derived class implementers.  \nThis method is called with argument True when class user calls Dispose(), while with argument False when     the Garbage Collector invokes the finalizer, or Finalize() method.  \nYou must reclaim all used unmanaged resources in both cases, and can use this chance to call Dispose on disposable fields if the argument is true.  \nAlso, you must call the base virtual method within your overriding method.",
        "parameters": [
          {
            "name": "disposing",
            "type": "System.Boolean",
            "summary": "True if the call comes from the Dispose() method; False if it comes from the Garbage Collector finalizer."
          }
        ]
      },
      {
        "signature": "System.Void PopIndent()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Decrease the indentation level",
        "since": "5.1"
      },
      {
        "signature": "System.Void Print(System.String format, System.Object arg0, System.Object arg1)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Send formatted text to the text log",
        "since": "5.1"
      },
      {
        "signature": "System.Void Print(System.String format, System.Object arg0)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Send formatted text to the text log",
        "since": "5.1"
      },
      {
        "signature": "System.Void Print(System.String text)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Send text to the text log",
        "since": "5.1"
      },
      {
        "signature": "System.Void PrintWrappedText(System.String text, System.Int32 lineLength)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Send text wrapped at a set line length",
        "since": "5.1"
      },
      {
        "signature": "System.Void PushIndent()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Increase the indentation level",
        "since": "5.1"
      },
      {
        "signature": "System.Void ResetString()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "If the TextLog was constructed using the empty constructor, then the text information is stored in a runtime string. This function resets the data held by the string, but retains the strings allocated memory to allow for quicker logging because the stored string doesn't constantly need to reallocate."
      },
      {
        "signature": "System.String ToString()",
        "modifiers": ["public", "override"],
        "protected": false,
        "virtual": false,
        "summary": "If the TextLog was constructed using the empty constructor, then the text information is stored in a runtime string.  The contents of this string is retrieved using ToString for this case"
      }
    ]
  },
  {
    "namespace": "Rhino.FileIO",
    "name": "USDExportBlockHandling",
    "dataType": "enum",
    "summary": "USD Block Exporting Options",
    "since": "9.0",
    "values": [
      {
        "signature": "SeparateFiles = 0",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Blocks are exported as separate files"
      },
      {
        "signature": "Ignore = 1",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Blocks are not exported inside the file or outside the file"
      },
      {
        "signature": "Embedded = 2",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Blocks are included inside the file"
      }
    ]

  },
  {
    "namespace": "Rhino.Geometry",
    "name": "AngularDimension",
    "dataType": "class",
    "summary": "Represents a dimension of an entity that can be measured with an angle.",
    "baseclass": "Rhino.Geometry.Dimension",
    "constructors": [
      {
        "signature": "AngularDimension()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Constructs an angular dimension.",
        "since": "6.0"
      },
      {
        "signature": "AngularDimension(Arc arc, double offset)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Constructs an angular dimension from a given arc.",
        "since": "5.0",
        "parameters": [
          {
            "name": "arc",
            "type": "Arc",
            "summary": "The start and end points of the arc are the start and endpoints of the dimension"
          },
          {
            "name": "offset",
            "type": "System.Double",
            "summary": "How far to offset the dimension location from the arc"
          }
        ]
      },
      {
        "signature": "AngularDimension(Line line1, Point3d pointOnLine1, Line line2, Point3d pointOnLine2, Point3d pointOnAngularDimensionArc, bool bSetExtensionPoints)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Constructs an angular dimension between the lines.  If the lines intersect in a single point, that point is used as the center of the angular dimension arc.In this case, there are eight possible angles to dimension.The pointOnAngularDimensionArc and pointOnLine parameters are used to select the correct angle to dimension. If a pointOnLine parameter is not set, the corresponding line's midpoint is used.  If the lines are colinear, the point on the line closest to pointOnAngularDimensionArc is the center of the angular dimension arc.",
        "since": "8.0",
        "parameters": [
          {
            "name": "line1",
            "type": "Line",
            "summary": "The first line."
          },
          {
            "name": "pointOnLine1",
            "type": "Point3d",
            "summary": "If specified, indicates which semi-infinite portion of line1 to dimension. Otherwise the midpoint of line1 as a segment is used. When in doubt, use Point3d.Unset."
          },
          {
            "name": "line2",
            "type": "Line",
            "summary": "The second line."
          },
          {
            "name": "pointOnLine2",
            "type": "Point3d",
            "summary": ""
          },
          {
            "name": "pointOnAngularDimensionArc",
            "type": "Point3d",
            "summary": "A point on the interior of the angular dimension arc."
          },
          {
            "name": "bSetExtensionPoints",
            "type": "System.Boolean",
            "summary": "If bSetExtensionPoints is true, and a pointOnLine parameter is valid, that point is used as the extension point. Otherwise the angular dimension arc endpoint is used."
          }
        ]
      },
      {
        "signature": "AngularDimension(Plane plane, Vector3d horizontal, Point3d extpoint1, Point3d extpoint2, Point3d dirpoint1, Point3d dirpoint2, Point3d dimlinepoint)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Constructs an angular dimension from parameters.",
        "since": "8.0",
        "parameters": [
          {
            "name": "plane",
            "type": "Plane",
            "summary": "The dimension's plane."
          },
          {
            "name": "horizontal",
            "type": "Vector3d",
            "summary": "The horizontal direction."
          },
          {
            "name": "extpoint1",
            "type": "Point3d",
            "summary": "Start of first extension line."
          },
          {
            "name": "extpoint2",
            "type": "Point3d",
            "summary": "start of second extension line."
          },
          {
            "name": "dirpoint1",
            "type": "Point3d",
            "summary": "point on first extension vector."
          },
          {
            "name": "dirpoint2",
            "type": "Point3d",
            "summary": "Spoint on second extension vector."
          },
          {
            "name": "dimlinepoint",
            "type": "Point3d",
            "summary": "point on dimension line."
          }
        ]
      },
      {
        "signature": "AngularDimension(Plane plane, Vector3d horizontal, Point3d centerpoint, Point3d defpoint1, Point3d defpoint2, Point3d dimlinepoint)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Constructs an angular dimension with extension lines starting at plane origin (arc center).",
        "since": "8.0",
        "parameters": [
          {
            "name": "plane",
            "type": "Plane",
            "summary": "Dimension's plane."
          },
          {
            "name": "horizontal",
            "type": "Vector3d",
            "summary": "Horizontal reference direction."
          },
          {
            "name": "centerpoint",
            "type": "Point3d",
            "summary": "Dimension center point."
          },
          {
            "name": "defpoint1",
            "type": "Point3d",
            "summary": "Point on first extension line."
          },
          {
            "name": "defpoint2",
            "type": "Point3d",
            "summary": "Point on second extension line."
          },
          {
            "name": "dimlinepoint",
            "type": "Point3d",
            "summary": "Point on dimension arc."
          }
        ]
      },
      {
        "signature": "AngularDimension(SerializationInfo info, StreamingContext context)",
        "modifiers": ["protected"],
        "protected": true,
        "virtual": false,
        "summary": "Protected constructor used in serialization."
      }
    ],
    "properties": [
      {
        "signature": "AngleDisplayFormat AngleFormat",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "int AngleResolution",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "double AngleRoundoff",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "ZeroSuppression AngleZeroSuppression",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "Point2d ArrowPoint1",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "Point2d ArrowPoint2",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "Point2d CenterPoint",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "Point2d DefPoint1",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "Point2d DefPoint2",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "Point2d DimlinePoint",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get", "set"]
      }
    ],
    "methods": [
      {
        "signature": "AngularDimension Create(DimensionStyle dimStyle, Line line1, Point3d pointOnLine1, Line line2, Point3d pointOnLine2, Point3d pointOnAngularDimensionArc, System.Boolean bSetExtensionPoints)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "The angle between the lines is dimensioned.  If the lines intersect in a single point, that point is used as the center of the angular dimension arc.In this case, there are eight possible angles to dimension.The pointOnAngularDimensionArc and pointOnLine parameters are used to select the correct angle to dimension. If a pointOnLine parameter is not set, the corresponding line's midpoint is used.  If the lines are colinear, the point on the line closest to pointOnAngularDimensionArc is the center of the angular dimension arc.",
        "since": "8.0",
        "parameters": [
          {
            "name": "dimStyle",
            "type": "DimensionStyle",
            "summary": "Dimension style."
          },
          {
            "name": "line1",
            "type": "Line",
            "summary": "The first line."
          },
          {
            "name": "pointOnLine1",
            "type": "Point3d",
            "summary": "If specified, indicates which semi-infinite portion of line1 to dimension. Otherwise the midpoint of line1 as a segment is used. When in doubt, use Point3d.Unset."
          },
          {
            "name": "line2",
            "type": "Line",
            "summary": "The second line."
          },
          {
            "name": "pointOnLine2",
            "type": "Point3d",
            "summary": ""
          },
          {
            "name": "pointOnAngularDimensionArc",
            "type": "Point3d",
            "summary": "A point on the interior of the angular dimension arc."
          },
          {
            "name": "bSetExtensionPoints",
            "type": "System.Boolean",
            "summary": "If bSetExtensionPoints is true, and a pointOnLine parameter is valid, that point is used as the extension point. Otherwise the angular dimension arc endpoint is used."
          }
        ],
        "returns": "The angular dimension if successful, None otherwise."
      },
      {
        "signature": "AngularDimension Create(DimensionStyle dimStyle, Plane plane, Vector3d horizontal, Point3d extpoint1, Point3d extpoint2, Point3d dirpoint1, Point3d dirpoint2, Point3d dimlinepoint)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Creates an angular dimension from parameters.",
        "since": "8.0",
        "parameters": [
          {
            "name": "dimStyle",
            "type": "DimensionStyle",
            "summary": "The dimension style."
          },
          {
            "name": "plane",
            "type": "Plane",
            "summary": "The dimension's plane."
          },
          {
            "name": "horizontal",
            "type": "Vector3d",
            "summary": "The horizontal direction."
          },
          {
            "name": "extpoint1",
            "type": "Point3d",
            "summary": "Start of first extension line."
          },
          {
            "name": "extpoint2",
            "type": "Point3d",
            "summary": "start of second extension line."
          },
          {
            "name": "dirpoint1",
            "type": "Point3d",
            "summary": "point on first extension vector."
          },
          {
            "name": "dirpoint2",
            "type": "Point3d",
            "summary": "Spoint on second extension vector."
          },
          {
            "name": "dimlinepoint",
            "type": "Point3d",
            "summary": "point on dimension line."
          }
        ]
      },
      {
        "signature": "AngularDimension Create(DimensionStyle dimStyle, Plane plane, Vector3d horizontal, Point3d centerpoint, Point3d defpoint1, Point3d defpoint2, Point3d dimlinepoint)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Creates an angular dimension with extension lines starting at plane origin (arc center).",
        "since": "6.0",
        "parameters": [
          {
            "name": "dimStyle",
            "type": "DimensionStyle",
            "summary": "Dimension's dimension style"
          },
          {
            "name": "plane",
            "type": "Plane",
            "summary": "Dimension's plane."
          },
          {
            "name": "horizontal",
            "type": "Vector3d",
            "summary": "Horizontal reference direction."
          },
          {
            "name": "centerpoint",
            "type": "Point3d",
            "summary": "Dimension center point."
          },
          {
            "name": "defpoint1",
            "type": "Point3d",
            "summary": "Point on first extension line."
          },
          {
            "name": "defpoint2",
            "type": "Point3d",
            "summary": "Point on second extension line."
          },
          {
            "name": "dimlinepoint",
            "type": "Point3d",
            "summary": "Point on dimension arc."
          }
        ],
        "returns": "The angular dimension if successful, None otherwise."
      },
      {
        "signature": "AngularDimension Create(System.Guid styleId, Plane plane, Point3d extpoint1, Point3d extpoint2, Point3d dirpoint1, Point3d dirpoint2, Point3d dimlinepoint)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "deprecated": "8.0",
        "obsolete": "Use an override that accepts a DimStyle"
      },
      {
        "signature": "System.Boolean AdjustFromPoints(Plane plane, Point3d extpoint1, Point3d extpoint2, Point3d dirpoint1, Point3d dirpoint2, Point3d dimlinepoint)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Update angular dimension from point locations.",
        "since": "6.0",
        "parameters": [
          {
            "name": "plane",
            "type": "Plane",
            "summary": "Dimension's plane"
          },
          {
            "name": "extpoint1",
            "type": "Point3d",
            "summary": "Start of first extension line."
          },
          {
            "name": "extpoint2",
            "type": "Point3d",
            "summary": "start of second extension line."
          },
          {
            "name": "dirpoint1",
            "type": "Point3d",
            "summary": "point on first extension vector."
          },
          {
            "name": "dirpoint2",
            "type": "Point3d",
            "summary": "Spoint on second extension vector."
          },
          {
            "name": "dimlinepoint",
            "type": "Point3d",
            "summary": "point on dimension line."
          }
        ],
        "returns": "True if successful, False otherwise."
      },
      {
        "signature": "System.Boolean AdjustFromPoints(Plane plane, Point3d centerpoint, Point3d defpoint1, Point3d defpoint2, Point3d dimlinepoint)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Updates dimension geometry from point locations.",
        "since": "6.0",
        "parameters": [
          {
            "name": "plane",
            "type": "Plane",
            "summary": "Dimension's plane"
          },
          {
            "name": "centerpoint",
            "type": "Point3d",
            "summary": "Dimension's center point"
          },
          {
            "name": "defpoint1",
            "type": "Point3d",
            "summary": "Point on first extension line."
          },
          {
            "name": "defpoint2",
            "type": "Point3d",
            "summary": "Point on second extension line."
          },
          {
            "name": "dimlinepoint",
            "type": "Point3d",
            "summary": "Point on dimension arc."
          }
        ],
        "returns": "True if successful, False otherwise."
      },
      {
        "signature": "System.Boolean Get3dPoints(out Point3d centerpoint, out Point3d defpoint1, out Point3d defpoint2, out Point3d arrowpoint1, out Point3d arrowpoint2, out Point3d dimlinepoint, out Point3d textpoint)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Get locations of dimension's 3d points",
        "since": "6.0",
        "parameters": [
          {
            "name": "centerpoint",
            "type": "Point3d",
            "summary": "Dimension's center point"
          },
          {
            "name": "defpoint1",
            "type": "Point3d",
            "summary": "First definition point"
          },
          {
            "name": "defpoint2",
            "type": "Point3d",
            "summary": "Second definition point"
          },
          {
            "name": "arrowpoint1",
            "type": "Point3d",
            "summary": "First arrow point"
          },
          {
            "name": "arrowpoint2",
            "type": "Point3d",
            "summary": "Second arrow point"
          },
          {
            "name": "dimlinepoint",
            "type": "Point3d",
            "summary": "Point on dimension line"
          },
          {
            "name": "textpoint",
            "type": "Point3d",
            "summary": "Text location point"
          }
        ]
      },
      {
        "signature": "System.String GetAngleDisplayText(DimensionStyle style)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0"
      },
      {
        "signature": "System.Boolean GetDisplayLines(DimensionStyle style, System.Double scale, out Line[] lines, out Arc[] arcs)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0"
      },
      {
        "signature": "System.Boolean GetTextRectangle(out Point3d[] corners)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0"
      }
    ]
  },
  {
    "namespace": "Rhino.Geometry",
    "name": "AnnotationBase",
    "dataType": "class",
    "summary": "Provides a common base class to all annotation geometry.  \nThis class refers to the geometric element that is independent from the document.",
    "baseclass": "Rhino.Geometry.GeometryBase",
    "constructors": [
      {
        "signature": "AnnotationBase()",
        "modifiers": ["protected"],
        "protected": true,
        "virtual": false,
        "summary": "Protected constructor for internal use."
      },
      {
        "signature": "AnnotationBase(SerializationInfo info, StreamingContext context)",
        "modifiers": ["protected"],
        "protected": true,
        "virtual": false,
        "summary": "Protected constructor used in serialization.",
        "parameters": [
          {
            "name": "info",
            "type": "System.Runtime.Serialization.SerializationInfo",
            "summary": "Serialization data."
          },
          {
            "name": "context",
            "type": "System.Runtime.Serialization.StreamingContext",
            "summary": "Serialization stream."
          }
        ]
      }
    ],
    "properties": [
      {
        "signature": "LengthDisplay AlternateDimensionLengthDisplay",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Alternate length display units and format",
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "AnnotationType AnnotationType",
        "modifiers": ["public", "virtual"],
        "protected": false,
        "virtual": true,
        "summary": "Type of annotation",
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "char DecimalSeparator",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Set or get the decimal separator c",
        "since": "7.0",
        "property": ["get", "set"]
      },
      {
        "signature": "LengthDisplay DimensionLengthDisplay",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Length display units and format",
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "double DimensionScale",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the dimension scale",
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "DimensionStyle DimensionStyle",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "If there are no overrides then the parent style is returned otherwise the dimension style saved with the annotation is returned.",
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "Guid DimensionStyleId",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Id of this annotation's parent dimstyle If this annotation has overrides to dimstyle properties, those overrides will be represented in the DimensionStyle returned by DimensionStyle(ParentStyle)",
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool DrawForward",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets whether the text is oriented towards the reader when viewed from behind",
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool DrawTextFrame",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets whether to draw a frame around a text mask",
        "since": "7.0",
        "obsolete": "Do not use setter as the MaskFrame is an enum. Use MaskFrame property instead",
        "property": ["get", "set"]
      },
      {
        "signature": "Font FirstCharFont",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns the font used by the first run of text in an annotation",
        "since": "6.5",
        "property": ["get"]
      },
      {
        "signature": "Font Font",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "The base Font for the text of the annotation.  The text string is rich text and therefore a different font that the base font can be associated with sub strings of the text",
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "int FontIndex",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Obsolete; use Font property instead",
        "since": "6.1",
        "obsolete": "Use Font property instead. Ex: textEntity.Font = Rhino.DocObjects.Font.FromQuartetProperties",
        "property": ["get", "set"]
      },
      {
        "signature": "double FormatWidth",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Text format width (Wrapping rectangle)",
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool HasPropertyOverrides",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "double LineSpaceScale",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Scale applied to line spacing",
        "since": "9.0",
        "property": ["get", "set"]
      },
      {
        "signature": "Color MaskColor",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Color to use for drawing a text mask when it is enabled. If the mask is enabled and MaskColor is System.Drawing.Color.Transparent, then the viewport's color will be used for the MaskColor",
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "MaskType MaskColorSource",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets whether the mask background color is from the background or from a color",
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool MaskEnabled",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Determines whether or not to draw a Text Mask",
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "MaskFrame MaskFrame",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets whether to draw a frame around a text mask",
        "since": "7.0",
        "property": ["get", "set"]
      },
      {
        "signature": "double MaskOffset",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Offset for the border around text of the rectangle used to draw the mask.  This value multiplied by TextHeight is the offset on each side of the tight rectangle around the text characters to the mask rectangle. The default value is 0.1.",
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool MaskUsesViewportColor",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "If true, the viewport's color is used for the mask color. If false, the color defined by MaskColor is used",
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "DimensionStyle ParentDimensionStyle",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "The parent dimension style associated with this annotation",
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "string PlainText",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Text stripped of RTF formatting information",
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "string PlainTextWithFields",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Text stripped of RTF formatting information and with field expressions intact",
        "since": "6.19",
        "property": ["get"]
      },
      {
        "signature": "Plane Plane",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Plane that this annotation lies on",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "string RichText",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Text including additional RTF formatting information",
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "string Text",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Text including additional RTF formatting information",
        "since": "5.0",
        "obsolete": "Use RichText or PlainText",
        "property": ["get", "set"]
      },
      {
        "signature": "string TextFormula",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "See RichText",
        "since": "5.0",
        "obsolete": "Use RichText",
        "property": ["get", "set"]
      },
      {
        "signature": "bool TextHasRtfFormatting",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets a value indicating whether the annotation's text is formatted as RTF (Rich Text Format). Returns True if the text begins with an RTF header; otherwise, false.",
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "double TextHeight",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "AnnotationBase.TextHeight Gets the parent dimstyle for the annotation and gets or sets the text height in the dimstyle",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool TextIsWrapped",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Is text wrapping on",
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "double TextModelWidth",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Width of text in the model",
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "double TextRotationDegrees",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Rotation of text in degrees",
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "double TextRotationRadians",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Rotation of text in radians",
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool UseKerning",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Use kerning data in font to set distances between glyphs",
        "since": "9.0",
        "property": ["get", "set"]
      }
    ],
    "methods": [
      {
        "signature": "System.Boolean FirstCharProperties(System.String rtf_str, ref System.Boolean bold, ref System.Boolean italic, ref System.Boolean underline, ref System.String facename)",
        "modifiers": ["static", "public"],
        "protected": false,
        "virtual": false,
        "summary": "Extracts the font properties (bold, italic, underline, and facename) from the first character run of an RTF string.",
        "since": "6.0",
    "remarks": "Obsolete. Use <b>FirstCharFont</b> instead.",
        "parameters": [
          {
            "name": "rtf_str",
            "type": "System.String",
            "summary": "The RTF string to analyze."
          },
          {
            "name": "bold",
            "type": "System.Boolean",
            "summary": "Set to True if the first run is bold; otherwise, false."
          },
          {
            "name": "italic",
            "type": "System.Boolean",
            "summary": "Set to True if the first run is italic; otherwise, false."
          },
          {
            "name": "underline",
            "type": "System.Boolean",
            "summary": "Set to True if the first run is underlined; otherwise, false."
          },
          {
            "name": "facename",
            "type": "System.String",
            "summary": "Receives the font face name of the first run."
          }
        ],
        "returns": "True if the properties were successfully extracted; otherwise, false."
      },
      {
        "signature": "System.String FormatRtfString(System.String rtf_in, System.Boolean clear_bold, System.Boolean set_bold, System.Boolean clear_italic, System.Boolean set_italic, System.Boolean clear_underline, System.Boolean set_underline, System.Boolean clear_facename, System.Boolean set_facename, System.String facename)",
        "modifiers": ["static", "public"],
        "protected": false,
        "virtual": false,
        "summary": "Modifies the formatting of an RTF (Rich Text Format) string by setting or clearing bold, italic, underline, and font face properties on the first character run.",
        "since": "6.0",
        "parameters": [
          {
            "name": "rtf_in",
            "type": "System.String",
            "summary": "The input RTF string to modify."
          },
          {
            "name": "clear_bold",
            "type": "System.Boolean",
            "summary": "If true, clears the bold formatting."
          },
          {
            "name": "set_bold",
            "type": "System.Boolean",
            "summary": "If true, sets the bold formatting."
          },
          {
            "name": "clear_italic",
            "type": "System.Boolean",
            "summary": "If true, clears the italic formatting."
          },
          {
            "name": "set_italic",
            "type": "System.Boolean",
            "summary": "If true, sets the italic formatting."
          },
          {
            "name": "clear_underline",
            "type": "System.Boolean",
            "summary": "If true, clears the underline formatting."
          },
          {
            "name": "set_underline",
            "type": "System.Boolean",
            "summary": "If true, sets the underline formatting."
          },
          {
            "name": "clear_facename",
            "type": "System.Boolean",
            "summary": "If true, clears the font face name."
          },
          {
            "name": "set_facename",
            "type": "System.Boolean",
            "summary": "If true, sets the font face name."
          },
          {
            "name": "facename",
            "type": "System.String",
            "summary": "The font face name to set ifis true."
          }
        ],
        "returns": "The modified RTF string with the requested formatting changes applied."
      },
      {
        "signature": "System.Double GetDimensionScale(RhinoDoc doc, DimensionStyle dimstyle, Rhino.Display.RhinoViewport vport)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Get view dependent dimension scale",
        "since": "6.0"
      },
      {
        "signature": "System.String PlainTextToRtf(System.String str)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "6.0"
      },
      {
        "signature": "System.Boolean ClearPropertyOverrides()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Clears all overridden properties for this annotation",
        "since": "6.0"
      },
      {
        "signature": "BoundingBox GetBoundingBox(Transform xform)",
        "modifiers": ["public", "override"],
        "protected": false,
        "virtual": false,
        "summary": "Aligned bounding box solver. Gets the world axis aligned bounding box for the transformed geometry.",
        "since": "6.10",
        "parameters": [
          {
            "name": "xform",
            "type": "Transform",
            "summary": "Transformation to apply to bounding box after calculation. The geometry is not modified."
          }
        ],
        "returns": "The bounding box of the transformed geometry in world coordinates or BoundingBox.Empty if not bounding box could be found."
      },
      {
        "signature": "DimensionStyle GetDimensionStyle(DimensionStyle parentDimStyle)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Return the proper dimension style from which to get properties for this annotation object If this object has style overrides, those will be included in the returned dimension style and the style will be updated to include the current state of the parent style for non-overridden fields",
        "since": "6.0"
      },
      {
        "signature": "System.String GetPlainTextWithRunMap(ref System.Int32[] map)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Return plain text string for this annotation with field expressions unevaluated.",
        "since": "7.0",
        "parameters": [
          {
            "name": "map",
            "type": "System.Int32[]",
            "summary": "an array of int values in groups of 3: run index, character start position, and length."
          }
        ],
        "returns": "A plain text string."
      },
      {
        "signature": "System.Boolean IsAllBold()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns True if all of the text in the annotation is Bold, otherwise returns false",
        "since": "6.22"
      },
      {
        "signature": "System.Boolean IsAllItalic()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns True if all of the text in the annotation is Italic, otherwise returns false",
        "since": "6.22"
      },
      {
        "signature": "System.Boolean IsAllUnderlined()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns True if all of the text in the annotation is Underlined, otherwise returns false",
        "since": "6.22"
      },
      {
        "signature": "System.Boolean IsPropertyOverridden(DimensionStyle.Field field)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns True if a property is overridden",
        "since": "6.0"
      },
      {
        "signature": "System.Boolean RunReplace(System.String replaceString, System.Int32 startRunIndex, System.Int32 startRunPosition, System.Int32 endRunIndex, System.Int32 endRunPosition)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Replace text within a formatted string",
        "since": "7.0"
      },
      {
        "signature": "System.Boolean SetBold(System.Boolean set_on)",
        "modifiers": ["public", "virtual"],
        "protected": false,
        "virtual": true,
        "since": "6.0"
      },
      {
        "signature": "System.Boolean SetFacename(System.Boolean set_on, System.String facename)",
        "modifiers": ["public", "virtual"],
        "protected": false,
        "virtual": true,
        "since": "6.0"
      },
      {
        "signature": "System.Boolean SetItalic(System.Boolean set_on)",
        "modifiers": ["public", "virtual"],
        "protected": false,
        "virtual": true,
        "since": "6.0"
      },
      {
        "signature": "System.Boolean SetOverrideDimStyle(DimensionStyle OverrideStyle)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Set a style including overrides for this annotation object. The DimensionStyle OverrideStyle must have the override fields marked as overridden and must have it's Id set to nil. Use DimensionStyle.SetFieldOverride(Field field) and related functions to manage override settings. To override a field, the field value must be set and the field must be marked as an override. The DimensionStyle passed in here must not be in the dimstyle table",
        "since": "6.0"
      },
      {
        "signature": "System.Void SetRichText(System.String rtfText, DimensionStyle dimstyle)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Sets the annotation's text as rich text (RTF), optionally using a specified dimension style for formatting overrides.",
        "since": "6.0",
        "parameters": [
          {
            "name": "rtfText",
            "type": "System.String",
            "summary": "The RTF (Rich Text Format) string to assign to the annotation."
          },
          {
            "name": "dimstyle",
            "type": "DimensionStyle",
            "summary": "The dimension style to use for formatting overrides, or None to use the current style."
          }
        ]
      },
      {
        "signature": "System.Boolean SetUnderline(System.Boolean set_on)",
        "modifiers": ["public", "virtual"],
        "protected": false,
        "virtual": true,
        "since": "6.0"
      },
      {
        "signature": "System.Void WrapText()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Wrap text",
        "since": "6.0"
      }
    ]
  },
  {
    "namespace": "Rhino.Geometry",
    "name": "AnnotationType",
    "dataType": "enum",
    "summary": "ON::AnnotationType identifies the type of an annotation object derived from ON_Annotation.",
    "values": [
      {
        "signature": "Unset = 0",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Not a valid annotation type."
      },
      {
        "signature": "Aligned = 1",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Linear distance between two points with dimension line parallel to the dimensioned points."
      },
      {
        "signature": "Angular = 2",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Angle between two lines."
      },
      {
        "signature": "Diameter = 3",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Arc or circle diameter dimension."
      },
      {
        "signature": "Radius = 4",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Arc or circle radius dimension."
      },
      {
        "signature": "Rotated = 5",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Linear distance between two points with dimension line horizontal, vertical or rotated by a specified amount."
      },
      {
        "signature": "Ordinate = 6",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Ordinate dimension. Typically used to document an offset distance between the center of a circle and a reference point."
      },
      {
        "signature": "ArcLen = 7",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Arc length of a curve."
      },
      {
        "signature": "CenterMark = 8",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Center mark dimension. Typically used to document the center of an arc or circle."
      },
      {
        "signature": "Text = 9",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Text. Stand alone text with a wide variety of uses."
      },
      {
        "signature": "Leader = 10",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Leader. Text and a curve with an arrow head."
      },
      {
        "signature": "Angular3pt = 11",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Angular3pt. Angle defined by 3 points."
      }
    ]

  },
  {
    "namespace": "Rhino.Geometry",
    "name": "Arc",
    "dataType": "struct",
    "summary": "Represents the value of a plane, two angles and a radius in a sub-curve of a three-dimensional circle.  \nThe curve is parameterized by an angle expressed in radians. For an IsValid arc   the total subtended angle AngleRadians() = Domain()(1) - Domain()(0) must satisfy   0 < AngleRadians() < 2*Pi  \nThe parameterization of the Arc is inherited from the Circle it is derived from.   In particular  \nt -> center + cos(t)*radius*xaxis + sin(t)*radius*yaxis  \nwhere xaxis and yaxis, (part of Circle.Plane) form an orthonormal frame of the plane   containing the circle.",
    "constructors": [
      {
        "signature": "Arc(Circle circle, double angleRadians)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Initializes a new instance of an arc from a base circle and an angle.",
        "since": "5.0",
        "parameters": [
          {
            "name": "circle",
            "type": "Circle",
            "summary": "Circle to base arc upon."
          },
          {
            "name": "angleRadians",
            "type": "System.Double",
            "summary": "Sweep angle of arc (in radians)"
          }
        ]
      },
      {
        "signature": "Arc(Circle circle, Interval angleIntervalRadians)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Initializes a new instance of an arc from a base circle and an interval of angles.",
        "since": "5.0",
        "parameters": [
          {
            "name": "circle",
            "type": "Circle",
            "summary": "Circle to base arc upon."
          },
          {
            "name": "angleIntervalRadians",
            "type": "Interval",
            "summary": "Increasing angle interval in radians with angleIntervalRadians.Length() <= 2.0*Math.PI."
          }
        ]
      },
      {
        "signature": "Arc(Plane plane, double radius, double angleRadians)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Initializes a new arc from a base plane, a radius value and an angle.",
        "since": "5.0",
        "parameters": [
          {
            "name": "plane",
            "type": "Plane",
            "summary": "The plane of the arc (arc center will be located at plane origin)"
          },
          {
            "name": "radius",
            "type": "System.Double",
            "summary": "Radius of arc."
          },
          {
            "name": "angleRadians",
            "type": "System.Double",
            "summary": "Sweep angle of arc (in radians)"
          }
        ]
      },
      {
        "signature": "Arc(Plane plane, Point3d center, double radius, double angleRadians)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Initializes a new aligned arc at the given center point, with a custom radius and angle.",
        "since": "5.0",
        "parameters": [
          {
            "name": "plane",
            "type": "Plane",
            "summary": "Alignment plane for arc. The arc will be parallel to this plane."
          },
          {
            "name": "center",
            "type": "Point3d",
            "summary": "Center point for arc."
          },
          {
            "name": "radius",
            "type": "System.Double",
            "summary": "Radius of arc."
          },
          {
            "name": "angleRadians",
            "type": "System.Double",
            "summary": "Sweep angle of arc (in radians)"
          }
        ]
      },
      {
        "signature": "Arc(Point3d center, double radius, double angleRadians)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Initializes a new horizontal arc at the given center point, with a custom radius and angle.",
        "since": "5.0",
        "parameters": [
          {
            "name": "center",
            "type": "Point3d",
            "summary": "Center point of arc."
          },
          {
            "name": "radius",
            "type": "System.Double",
            "summary": "Radius of arc."
          },
          {
            "name": "angleRadians",
            "type": "System.Double",
            "summary": "Sweep angle of arc (in radians)"
          }
        ]
      },
      {
        "signature": "Arc(Point3d startPoint, Point3d pointOnInterior, Point3d endPoint)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Initializes a new arc through three points. If the points are coincident or co-linear, this will result in an Invalid arc.",
        "since": "5.0",
        "parameters": [
          {
            "name": "startPoint",
            "type": "Point3d",
            "summary": "Start point of arc."
          },
          {
            "name": "pointOnInterior",
            "type": "Point3d",
            "summary": "Point on arc interior."
          },
          {
            "name": "endPoint",
            "type": "Point3d",
            "summary": "End point of arc."
          }
        ]
      },
      {
        "signature": "Arc(Point3d pointA, Vector3d tangentA, Point3d pointB)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Initializes a new arc from end points and a tangent vector. If the tangent is parallel with the line segment between the two endpoints this will result in an Invalid arc.",
        "since": "5.0",
        "parameters": [
          {
            "name": "pointA",
            "type": "Point3d",
            "summary": "Start point of arc."
          },
          {
            "name": "tangentA",
            "type": "Vector3d",
            "summary": "Tangent at start of arc."
          },
          {
            "name": "pointB",
            "type": "Point3d",
            "summary": "End point of arc."
          }
        ]
      }
    ],
    "properties": [
      {
        "signature": "Arc Unset",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Gets an Arc with Unset components.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "double Angle",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the sweep -or subtended- angle (in Radians) for this arc segment. Setting this property only alters the <b>EndAngle</b> property such that Angle = <b>EndAngle</b> - <b>StartAngle</b> .",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "double AngleDegrees",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the sweep -or subtended- angle (in Degrees) for this arc segment.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "Interval AngleDomain",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the angle domain (in Radians) of this arc.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "Point3d Center",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the center point for this arc.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "double Circumference",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the circumference of the circle that is coincident with this arc.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "double Diameter",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the Diameter of this arc.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "double EndAngle",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the end angle (in Radians) for this arc segment.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "double EndAngleDegrees",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the end angle (in Degrees) for this arc segment.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "Point3d EndPoint",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the end point of the arc.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "bool IsCircle",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets a value indicating whether or not this arc is a complete circle.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "bool IsValid",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets a value indicating whether or not this arc is valid. Detail: Radius>0 and 0<AngleRadians()<=2*Math.Pi.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "double Length",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the length of the arc. (Length = Radius * (subtended angle in radians)).",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "Point3d MidPoint",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the mid-point of the arc.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "Plane Plane",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the plane in which this arc lies.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "double Radius",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the radius of this arc.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "double StartAngle",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the start angle (in Radians) for this arc segment.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "double StartAngleDegrees",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the start angle (in Degrees) for this arc segment.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "Point3d StartPoint",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the start point of the arc.",
        "since": "5.0",
        "property": ["get"]
      }
    ],
    "methods": [
      {
        "signature": "BoundingBox BoundingBox()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Computes the 3D axis aligned bounding box for this arc.",
        "since": "5.0",
        "returns": "Bounding box of arc."
      },
      {
        "signature": "System.Double ClosestParameter(Point3d testPoint)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets parameter on the arc closest to a test point.",
        "since": "5.0",
        "parameters": [
          {
            "name": "testPoint",
            "type": "Point3d",
            "summary": "Point to get close to."
          }
        ],
        "returns": "Parameter (in radians) of the point on the arc that is closest to the test point. If testPoint is the center of the arc, then the starting point of the arc is (arc.Domain()[0]) returned. If no parameter could be found, RhinoMath.UnsetValue is returned."
      },
      {
        "signature": "Point3d ClosestPoint(Point3d testPoint)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Computes the point on an arc that is closest to a test point.",
        "since": "5.0",
        "parameters": [
          {
            "name": "testPoint",
            "type": "Point3d",
            "summary": "Point to get close to."
          }
        ],
        "returns": "The point on the arc that is closest to testPoint. If testPoint is the center of the arc, then the starting point of the arc is returned. UnsetPoint on failure."
      },
      {
        "signature": "System.Boolean EpsilonEquals(Arc other, System.Double epsilon)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Check that all values in other are within epsilon of the values in this",
        "since": "5.4"
      },
      {
        "signature": "System.Boolean Equals(Arc other)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Determines whether another arc has the same value as this arc.",
        "since": "5.0",
        "parameters": [
          {
            "name": "other",
            "type": "Arc",
            "summary": "An arc."
          }
        ],
        "returns": "True if obj is equal to this arc; otherwise false."
      },
      {
        "signature": "System.Boolean Equals(System.Object obj)",
        "modifiers": ["public", "override"],
        "protected": false,
        "virtual": false,
        "summary": "Determines whether another object is an arc and has the same value as this arc.",
        "parameters": [
          {
            "name": "obj",
            "type": "System.Object",
            "summary": "An object."
          }
        ],
        "returns": "True if obj is an arc and is exactly equal to this arc; otherwise false."
      },
      {
        "signature": "System.Int32 GetHashCode()",
        "modifiers": ["public", "override"],
        "protected": false,
        "virtual": false,
        "summary": "Computes a hash code for the present arc.",
        "returns": "A non-unique integer that represents this arc."
      },
      {
        "signature": "Point3d PointAt(System.Double t)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the point at the given arc parameter.",
        "since": "5.0",
        "parameters": [
          {
            "name": "t",
            "type": "System.Double",
            "summary": "Arc parameter to evaluate."
          }
        ],
        "returns": "The point at the given parameter."
      },
      {
        "signature": "System.Void Reverse()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Reverses the orientation of the arc. Changes the domain from [a,b] to [-b,-a].",
        "since": "5.0"
      },
      {
        "signature": "Vector3d TangentAt(System.Double t)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the tangent at the given parameter.",
        "since": "5.0",
        "parameters": [
          {
            "name": "t",
            "type": "System.Double",
            "summary": "Parameter of tangent to evaluate."
          }
        ],
        "returns": "The tangent at the arc at the given parameter."
      },
      {
        "signature": "NurbsCurve ToNurbsCurve()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Initializes a nurbs curve representation of this arc. This amounts to the same as calling NurbsCurve.CreateFromArc().",
        "since": "5.0",
        "returns": "A nurbs curve representation of this arc or None if no such representation could be made."
      },
      {
        "signature": "NurbsCurve ToNurbsCurve(System.Int32 degree, System.Int32 cvCount)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Create a uniform non-rational cubic NURBS approximation of an arc.",
        "since": "6.0",
        "parameters": [
          {
            "name": "degree",
            "type": "System.Int32",
            "summary": ">=1"
          },
          {
            "name": "cvCount",
            "type": "System.Int32",
            "summary": "cv count >=5"
          }
        ],
        "returns": "NURBS curve approximation of an arc on success"
      },
      {
        "signature": "System.Boolean Transform(Transform xform)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Transforms the arc using a Transformation matrix.",
        "since": "5.0",
        "parameters": [
          {
            "name": "xform",
            "type": "Transform",
            "summary": "Transformations to apply. Note that arcs cannot handle non-euclidean transformations."
          }
        ],
        "returns": "True on success, False on failure."
      },
      {
        "signature": "System.Boolean Trim(Interval domain)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Sets the arc's angle domain (in radians) to the specified interval, provided it is increasing and its length does not exceed 2.0 * Math.PI (plus a small tolerance). If the interval length exceeds 2.0 * Math.PI it will be clamped to exactly 2.0 * Math.PI. Returns True if the domain was set successfully, False otherwise.",
        "since": "5.0",
        "parameters": [
          {
            "name": "domain",
            "type": "Interval",
            "summary": "The desired angle domain in radians. Must satisfy domain[0] < domain[1] and domain[1] - domain[0] <= 2.0 * Math.PI + tolerance."
          }
        ],
        "returns": "True if the domain was set successfully; False if the interval is not increasing or exceeds the allowed length."
      }
    ],
    "operators": [
      {
        "signature": "bool operator !=(Arc a, Arc b)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Determines whether two arcs have different values.",
        "since": "5.0",
        "parameters": [
          {
            "name": "a",
            "type": "Arc",
            "summary": "The first arc."
          },
          {
            "name": "b",
            "type": "Arc",
            "summary": "The second arc."
          }
        ]
      },
      {
        "signature": "bool operator ==(Arc a, Arc b)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Determines whether two arcs have equal values.",
        "since": "5.0",
        "parameters": [
          {
            "name": "a",
            "type": "Arc",
            "summary": "The first arc."
          },
          {
            "name": "b",
            "type": "Arc",
            "summary": "The second arc."
          }
        ]
      }
    ]

  },
  {
    "namespace": "Rhino.Geometry",
    "name": "ArcCurve",
    "dataType": "class",
    "summary": "Represent arcs and circles.  \nArcCurve.IsCircle returns True if the curve is a complete circle.",
    "remarks": "Details:  \nan ArcCurve is a sub-curve of a circle, with a constant speed   parameterization. The parameterization is an affine linear   reparameterization of the underlying arc m_arc onto the domain m_t.  \nA valid ArcCurve has Radius()>0 and  0<AngleRadians()<=2*PI   and a strictly increasing Domain.",
    "baseclass": "Rhino.Geometry.Curve",
    "constructors": [
      {
        "signature": "ArcCurve()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Initializes a new <b>ArcCurve</b> instance.  \nRadius is set to 1, position to Origin and Domain to full span (circle).",
        "since": "5.0"
      },
      {
        "signature": "ArcCurve(Arc arc, double t0, double t1)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Initializes a new <b>ArcCurve</b> instance, copying values from another <b>Arc</b> and specifying the needed parametrization of the arc.  \nArc will not be cut again at these parameterizations.",
        "since": "5.0",
        "parameters": [
          {
            "name": "arc",
            "type": "Arc",
            "summary": "An original arc."
          },
          {
            "name": "t0",
            "type": "System.Double",
            "summary": "A new Domain.T0 value."
          },
          {
            "name": "t1",
            "type": "System.Double",
            "summary": "A new Domain.T1 value."
          }
        ]
      },
      {
        "signature": "ArcCurve(Arc arc)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Initializes a new <b>ArcCurve</b> instance, copying values from another <b>Arc</b> .",
        "since": "5.0",
        "parameters": [
          {
            "name": "arc",
            "type": "Arc",
            "summary": "Another Arc."
          }
        ]
      },
      {
        "signature": "ArcCurve(ArcCurve other)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Initializes a new <b>ArcCurve</b> instance, copying values from another <b>ArcCurve</b> .",
        "since": "5.0",
        "parameters": [
          {
            "name": "other",
            "type": "ArcCurve",
            "summary": "Another ArcCurve."
          }
        ]
      },
      {
        "signature": "ArcCurve(Circle circle, double t0, double t1)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Initializes a new <b>ArcCurve</b> instance, copying values from a <b>Circle</b> and specifying the needed parametrization of the arc.  \nCircle will not be newly cut at these parameterizations.",
        "since": "5.0",
        "parameters": [
          {
            "name": "circle",
            "type": "Circle",
            "summary": "A circle."
          },
          {
            "name": "t0",
            "type": "System.Double",
            "summary": "A new Domain.T0 value."
          },
          {
            "name": "t1",
            "type": "System.Double",
            "summary": "A new Domain.T1 value."
          }
        ]
      },
      {
        "signature": "ArcCurve(Circle circle)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Initializes a new <b>ArcCurve</b> instance, copying the shape of a <b>Circle</b> .  \nParameterization will be [0;circle.Circumference]",
        "since": "5.0",
        "parameters": [
          {
            "name": "circle",
            "type": "Circle",
            "summary": "The original circle."
          }
        ]
      },
      {
        "signature": "ArcCurve(SerializationInfo info, StreamingContext context)",
        "modifiers": ["protected"],
        "protected": true,
        "virtual": false,
        "summary": "Protected constructor used in serialization."
      }
    ],
    "properties": [
      {
        "signature": "double AngleDegrees",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the angles of this arc in degrees.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "double AngleRadians",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the angles of this arc in radians.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "Arc Arc",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the arc that is contained within this ArcCurve.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "bool IsCompleteCircle",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets a value indicating whether or not this curve can be represented by a complete circle.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "double Radius",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the radius of this ArcCurve.",
        "since": "5.0",
        "property": ["get"]
      }
    ]
  },
  {
    "namespace": "Rhino.Geometry",
    "name": "AreaMassProperties",
    "dataType": "class",
    "summary": "Contains static initialization methods and allows access to the computed metrics of area, area centroid and area moments in closed planar curves, in meshes, in surfaces, in hatches and in boundary representations.",
    "interfaces": ["IDisposable"],
    "constructors": [
      {
        "signature": "AreaMassProperties()",
        "summary": "Initializes a new instance of the AreaMassProperties class"
      }
    ],
    "properties": [
      {
        "signature": "double Area",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the area solution.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "double AreaError",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the uncertainty in the area calculation.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "Point3d Centroid",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the area centroid in the world coordinate system.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "Vector3d CentroidCoordinatesMomentsOfInertia",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Moments of inertia with respect to centroid coordinate system. X = integral of ((y-y0)^2 + (z-z0)^2) dm Y = integral of ((z-z0)^2 + (x-x0)^2) dm Z = integral of ((z-z0)^2 + (y-y0)^2) dm where (x0,y0,z0) = centroid.",
        "since": "5.0",
    "remarks": "What is meant by \"moments of inertia\" varies widely in textbooks and papers. The values returned here are the integrals listed in the Summary section. Some applications may want the values from WorldCoordinatesSecondMoments instead of the values returned here.",
        "property": ["get"]
      },
      {
        "signature": "Vector3d CentroidCoordinatesMomentsOfInertiaError",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Uncertainty in centroid coordinates moments of inertia calculation.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "Vector3d CentroidCoordinatesProductMoments",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Product moments with respect to centroid coordinate system.",
        "since": "6.26",
        "property": ["get"]
      },
      {
        "signature": "Vector3d CentroidCoordinatesProductMomentsError",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Uncertainty in product moments with respect to centroid coordinate system.",
        "since": "6.26",
        "property": ["get"]
      },
      {
        "signature": "Vector3d CentroidCoordinatesRadiiOfGyration",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Radii of gyration with respect to centroid coordinate system. X = sqrt(integral of ((y-y0)^2 + (z-z0)^2) dm/M) Y = sqrt(integral of ((z-z0)^2 + (x-x0)^2) dm/M) Z = sqrt(integral of ((z-z0)^2 + (y-y0)^2) dm/M) where (x0,y0,z0) = centroid.",
        "since": "5.0",
    "remarks": "What is meant by \"radii of gyration\" varies widely in textbooks and papers. The values returned here are the integrals listed in the Returns section.",
        "property": ["get"]
      },
      {
        "signature": "Vector3d CentroidCoordinatesSecondMoments",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Second moments with respect to centroid coordinate system. X = integral of (x-x0)^2 dm Y = integral of (y-y0)^2 dm Z = integral of (z-z0)^2 dm where (x0,y0,z0) = centroid.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "Vector3d CentroidCoordinatesSecondMomentsError",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Uncertainty in centroid coordinates second moments calculation.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "Vector3d CentroidError",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the uncertainty in the centroid calculation.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "Vector3d WorldCoordinatesFirstMoments",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns the world coordinate first moments if they were able to be calculated. X is integral of \"x dm\" over the area Y is integral of \"y dm\" over the area Z is integral of \"z dm\" over the area.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "Vector3d WorldCoordinatesFirstMomentsError",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Uncertainty in world coordinates first moments calculation.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "Vector3d WorldCoordinatesMomentsOfInertia",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "The moments of inertia about the world coordinate axes. X = integral of (y^2 + z^2) dm Y = integral of (z^2 + x^2) dm Z = integral of (z^2 + y^2) dm.",
        "since": "5.0",
    "remarks": "What is meant by \"moments of inertia\" varies widely in textbooks and papers. The values returned here are the integrals listed in the Summary section. Some applications may want the values from WorldCoordinatesSecondMoments instead of the values returned here.",
        "property": ["get"]
      },
      {
        "signature": "Vector3d WorldCoordinatesMomentsOfInertiaError",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Uncertainty in world coordinates moments of inertia calculation.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "Vector3d WorldCoordinatesProductMoments",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns the world coordinate product moments if they were able to be calculated. X is integral of \"xy dm\" over the area Y is integral of \"yz dm\" over the area Z is integral of \"zx dm\" over the area.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "Vector3d WorldCoordinatesProductMomentsError",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Uncertainty in world coordinates second moments calculation.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "Vector3d WorldCoordinatesRadiiOfGyration",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Radii of gyration with respect to world coordinate system. X = sqrt(integral of (y^2 + z^2) dm/M) Y = sqrt(integral of (z^2 + x^2) dm/M) Z = sqrt(integral of (z^2 + y^2) dm/M)",
        "since": "5.0",
    "remarks": "What is meant by \"radii of gyration\" varies widely in textbooks and papers. The values returned here are the integrals listed in the Returns section.",
        "property": ["get"]
      },
      {
        "signature": "Vector3d WorldCoordinatesSecondMoments",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns the world coordinate second moments if they were able to be calculated. X is integral of \"xx dm\" over the area Y is integral of \"yy dm\" over the area Z is integral of \"zz dm\" over the area.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "Vector3d WorldCoordinatesSecondMomentsError",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Uncertainty in world coordinates second moments calculation.",
        "since": "5.0",
        "property": ["get"]
      }
    ],
    "methods": [
      {
        "signature": "AreaMassProperties Compute(Brep brep, System.Boolean area, System.Boolean firstMoments, System.Boolean secondMoments, System.Boolean productMoments, System.Double relativeTolerance, System.Double absoluteTolerance)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Compute the AreaMassProperties for a single Brep.",
        "since": "7.10",
        "parameters": [
          {
            "name": "brep",
            "type": "Brep",
            "summary": "Brep to measure."
          },
          {
            "name": "area",
            "type": "System.Boolean",
            "summary": "True to calculate area."
          },
          {
            "name": "firstMoments",
            "type": "System.Boolean",
            "summary": "True to calculate area first moments, area, and area centroid."
          },
          {
            "name": "secondMoments",
            "type": "System.Boolean",
            "summary": "True to calculate area second moments."
          },
          {
            "name": "productMoments",
            "type": "System.Boolean",
            "summary": "True to calculate area product moments."
          },
          {
            "name": "relativeTolerance",
            "type": "System.Double",
            "summary": "The relative tolerance used for the calculation. In overloads of this function where tolerances are not specified, 1.0e-6 is used."
          },
          {
            "name": "absoluteTolerance",
            "type": "System.Double",
            "summary": "The absolute tolerancwe used for the calculation. In overloads of this function where tolerances are not specified, 1.0e-6 is used."
          }
        ],
        "returns": "The AreaMassProperties for the given Brep or None on failure."
      },
      {
        "signature": "AreaMassProperties Compute(Brep brep, System.Boolean area, System.Boolean firstMoments, System.Boolean secondMoments, System.Boolean productMoments)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Compute the AreaMassProperties for a single Brep.",
        "since": "6.3",
        "parameters": [
          {
            "name": "brep",
            "type": "Brep",
            "summary": "Brep to measure."
          },
          {
            "name": "area",
            "type": "System.Boolean",
            "summary": "True to calculate area."
          },
          {
            "name": "firstMoments",
            "type": "System.Boolean",
            "summary": "True to calculate area first moments, area, and area centroid."
          },
          {
            "name": "secondMoments",
            "type": "System.Boolean",
            "summary": "True to calculate area second moments."
          },
          {
            "name": "productMoments",
            "type": "System.Boolean",
            "summary": "True to calculate area product moments."
          }
        ],
        "returns": "The AreaMassProperties for the given Brep or None on failure."
      },
      {
        "signature": "AreaMassProperties Compute(Brep brep)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Computes an AreaMassProperties for a brep.",
        "since": "5.0",
        "parameters": [
          {
            "name": "brep",
            "type": "Brep",
            "summary": "Brep to measure."
          }
        ],
        "returns": "The AreaMassProperties for the given Brep or None on failure."
      },
      {
        "signature": "AreaMassProperties Compute(Curve closedPlanarCurve, System.Double planarTolerance)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Computes an AreaMassProperties for a closed planar curve.",
        "since": "5.0",
        "parameters": [
          {
            "name": "closedPlanarCurve",
            "type": "Curve",
            "summary": "Curve to measure."
          },
          {
            "name": "planarTolerance",
            "type": "System.Double",
            "summary": "absolute tolerance used to insure the closed curve is planar"
          }
        ],
        "returns": "The AreaMassProperties for the given curve or None on failure."
      },
      {
        "signature": "AreaMassProperties Compute(Curve closedPlanarCurve)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Computes an AreaMassProperties for a closed planar curve.",
        "since": "5.0",
        "parameters": [
          {
            "name": "closedPlanarCurve",
            "type": "Curve",
            "summary": "Curve to measure."
          }
        ],
        "returns": "The AreaMassProperties for the given curve or None on failure."
      },
      {
        "signature": "AreaMassProperties Compute(Hatch hatch)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Computes an AreaMassProperties for a hatch.",
        "since": "5.0",
        "parameters": [
          {
            "name": "hatch",
            "type": "Hatch",
            "summary": "Hatch to measure."
          }
        ],
        "returns": "The AreaMassProperties for the given hatch or None on failure."
      },
      {
        "signature": "AreaMassProperties Compute(IEnumerable<GeometryBase> geometry, System.Boolean area, System.Boolean firstMoments, System.Boolean secondMoments, System.Boolean productMoments)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Computes the AreaMassProperties for a collection of geometric objects. At present only Breps, Surfaces, Meshes and Planar Closed Curves are supported.",
        "since": "6.3",
        "parameters": [
          {
            "name": "geometry",
            "type": "IEnumerable<GeometryBase>",
            "summary": "Objects to include in the area computation."
          },
          {
            "name": "area",
            "type": "System.Boolean",
            "summary": "True to calculate area."
          },
          {
            "name": "firstMoments",
            "type": "System.Boolean",
            "summary": "True to calculate area first moments, area, and area centroid."
          },
          {
            "name": "secondMoments",
            "type": "System.Boolean",
            "summary": "True to calculate area second moments."
          },
          {
            "name": "productMoments",
            "type": "System.Boolean",
            "summary": "True to calculate area product moments."
          }
        ],
        "returns": "The AreaMassProperties for the entire collection or None on failure."
      },
      {
        "signature": "AreaMassProperties Compute(IEnumerable<GeometryBase> geometry)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Computes the Area properties for a collection of geometric objects. At present only Breps, Surfaces, Meshes and Planar Closed Curves are supported.",
        "since": "5.1",
        "parameters": [
          {
            "name": "geometry",
            "type": "IEnumerable<GeometryBase>",
            "summary": "Objects to include in the area computation."
          }
        ],
        "returns": "The Area properties for the entire collection or None on failure."
      },
      {
        "signature": "AreaMassProperties Compute(Mesh mesh, System.Boolean area, System.Boolean firstMoments, System.Boolean secondMoments, System.Boolean productMoments)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Compute the AreaMassProperties for a single Mesh.",
        "since": "6.3",
        "parameters": [
          {
            "name": "mesh",
            "type": "Mesh",
            "summary": "Mesh to measure."
          },
          {
            "name": "area",
            "type": "System.Boolean",
            "summary": "True to calculate area."
          },
          {
            "name": "firstMoments",
            "type": "System.Boolean",
            "summary": "True to calculate area first moments, area, and area centroid."
          },
          {
            "name": "secondMoments",
            "type": "System.Boolean",
            "summary": "True to calculate area second moments."
          },
          {
            "name": "productMoments",
            "type": "System.Boolean",
            "summary": "True to calculate area product moments."
          }
        ],
        "returns": "The AreaMassProperties for the given Mesh or None on failure."
      },
      {
        "signature": "AreaMassProperties Compute(Mesh mesh)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Computes an AreaMassProperties for a mesh.",
        "since": "5.0",
        "parameters": [
          {
            "name": "mesh",
            "type": "Mesh",
            "summary": "Mesh to measure."
          }
        ],
        "returns": "The AreaMassProperties for the given Mesh or None on failure."
      },
      {
        "signature": "AreaMassProperties Compute(Surface surface, System.Boolean area, System.Boolean firstMoments, System.Boolean secondMoments, System.Boolean productMoments)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Compute the AreaMassProperties for a single Surface.",
        "since": "6.3",
        "parameters": [
          {
            "name": "surface",
            "type": "Surface",
            "summary": "Surface to measure."
          },
          {
            "name": "area",
            "type": "System.Boolean",
            "summary": "True to calculate area."
          },
          {
            "name": "firstMoments",
            "type": "System.Boolean",
            "summary": "True to calculate area first moments, area, and area centroid."
          },
          {
            "name": "secondMoments",
            "type": "System.Boolean",
            "summary": "True to calculate area second moments."
          },
          {
            "name": "productMoments",
            "type": "System.Boolean",
            "summary": "True to calculate area product moments."
          }
        ],
        "returns": "The AreaMassProperties for the given Surface or None on failure."
      },
      {
        "signature": "AreaMassProperties Compute(Surface surface)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Computes an AreaMassProperties for a surface.",
        "since": "5.0",
        "parameters": [
          {
            "name": "surface",
            "type": "Surface",
            "summary": "Surface to measure."
          }
        ],
        "returns": "The AreaMassProperties for the given Surface or None on failure."
      },
      {
        "signature": "AreaMassProperties WeightedSum(IEnumerable<AreaMassProperties> summands, IEnumerable<double> weights)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Sum a list of mass properties together to get an aggregate mass, weighting each by a density factor.Ignores existing mass properties in this object.",
        "since": "9.0",
        "parameters": [
          {
            "name": "summands",
            "type": "IEnumerable<AreaMassProperties>",
            "summary": "An array of mass properties to add."
          },
          {
            "name": "weights",
            "type": "IEnumerable<double>",
            "summary": "An array of non-negative densities, of the same length as summands."
          }
        ],
        "returns": "An AreaMassProperties containing the result if successful, None if a failure occurs."
      },
      {
        "signature": "System.Boolean CentroidCoordinatesPrincipalMoments(out System.Double x, out Vector3d xaxis, out System.Double y, out Vector3d yaxis, out System.Double z, out Vector3d zaxis)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Calculates the eigenvalues and eigenvectors of the moments matrix with respect to centroid coordinates.",
        "since": "6.9",
        "parameters": [
          {
            "name": "x",
            "type": "System.Double",
            "summary": "Principal moment."
          },
          {
            "name": "xaxis",
            "type": "Vector3d",
            "summary": "Principal axis for x."
          },
          {
            "name": "y",
            "type": "System.Double",
            "summary": "Principal moment."
          },
          {
            "name": "yaxis",
            "type": "Vector3d",
            "summary": "Principal axis for y."
          },
          {
            "name": "z",
            "type": "System.Double",
            "summary": "Principal moment."
          },
          {
            "name": "zaxis",
            "type": "Vector3d",
            "summary": "Principal axis for z."
          }
        ],
        "returns": "True if successful."
      },
      {
        "signature": "System.Boolean CentroidCoordinatesPrincipalMomentsOfInertia(out System.Double x, out Vector3d xaxis, out System.Double y, out Vector3d yaxis, out System.Double z, out Vector3d zaxis)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Calculates the principal moments of inertia and principal axes with respect to centroid coordinates.",
        "since": "7.3",
        "parameters": [
          {
            "name": "x",
            "type": "System.Double",
            "summary": "Principal moment."
          },
          {
            "name": "xaxis",
            "type": "Vector3d",
            "summary": "Principal axis for x."
          },
          {
            "name": "y",
            "type": "System.Double",
            "summary": "Principal moment."
          },
          {
            "name": "yaxis",
            "type": "Vector3d",
            "summary": "Principal axis for y."
          },
          {
            "name": "z",
            "type": "System.Double",
            "summary": "Principal moment."
          },
          {
            "name": "zaxis",
            "type": "Vector3d",
            "summary": "Principal axis for z."
          }
        ],
        "returns": "True if successful."
      },
      {
        "signature": "System.Void Dispose()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Actively reclaims unmanaged resources that this instance uses.",
        "since": "5.0"
      },
      {
        "signature": "System.Void Dispose(System.Boolean disposing)",
        "modifiers": ["protected", "virtual"],
        "protected": true,
        "virtual": true,
        "summary": "For derived class implementers.  \nThis method is called with argument True when class user calls Dispose(), while with argument False when     the Garbage Collector invokes the finalizer, or Finalize() method.  \nYou must reclaim all used unmanaged resources in both cases, and can use this chance to call Dispose on disposable fields if the argument is true.  \nAlso, you must call the base virtual method within your overriding method.",
        "parameters": [
          {
            "name": "disposing",
            "type": "System.Boolean",
            "summary": "True if the call comes from the Dispose() method; False if it comes from the Garbage Collector finalizer."
          }
        ]
      },
      {
        "signature": "System.Boolean Sum(AreaMassProperties summand)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Sum mass properties together to get an aggregate mass.",
        "since": "9.0",
        "parameters": [
          {
            "name": "summand",
            "type": "AreaMassProperties",
            "summary": "mass properties to add."
          }
        ],
        "returns": "True if successful."
      },
      {
        "signature": "System.Boolean Sum(IEnumerable<AreaMassProperties> summands, System.Boolean bAddTo)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Sum mass properties together to get an aggregate mass.",
        "since": "9.0",
        "parameters": [
          {
            "name": "summands",
            "type": "IEnumerable<AreaMassProperties>",
            "summary": "An array of mass properties to add."
          },
          {
            "name": "bAddTo",
            "type": "System.Boolean",
            "summary": "If true, then the summands are added to the existing mass."
          }
        ],
        "returns": "True if successful."
      },
      {
        "signature": "System.Boolean WorldCoordinatesPrincipalMoments(out System.Double x, out Vector3d xaxis, out System.Double y, out Vector3d yaxis, out System.Double z, out Vector3d zaxis)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Calculates the eigenvalues and eigenvectors of moments matrix in world coordinates.",
        "since": "6.9",
        "parameters": [
          {
            "name": "x",
            "type": "System.Double",
            "summary": "Principal moment."
          },
          {
            "name": "xaxis",
            "type": "Vector3d",
            "summary": "Principal axis for x."
          },
          {
            "name": "y",
            "type": "System.Double",
            "summary": "Principal moment."
          },
          {
            "name": "yaxis",
            "type": "Vector3d",
            "summary": "Principal axis for y."
          },
          {
            "name": "z",
            "type": "System.Double",
            "summary": "Principal moment."
          },
          {
            "name": "zaxis",
            "type": "Vector3d",
            "summary": "Principal axis for z."
          }
        ],
        "returns": "True if successful."
      },
      {
        "signature": "System.Boolean WorldCoordinatesPrincipalMomentsOfInertia(out System.Double x, out Vector3d xaxis, out System.Double y, out Vector3d yaxis, out System.Double z, out Vector3d zaxis)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Calculates the principal moments of inertia and principal axes with respect to world coordinates.",
        "since": "7.3",
        "parameters": [
          {
            "name": "x",
            "type": "System.Double",
            "summary": "Principal moment."
          },
          {
            "name": "xaxis",
            "type": "Vector3d",
            "summary": "Principal axis for x."
          },
          {
            "name": "y",
            "type": "System.Double",
            "summary": "Principal moment."
          },
          {
            "name": "yaxis",
            "type": "Vector3d",
            "summary": "Principal axis for y."
          },
          {
            "name": "z",
            "type": "System.Double",
            "summary": "Principal moment."
          },
          {
            "name": "zaxis",
            "type": "Vector3d",
            "summary": "Principal axis for z."
          }
        ],
        "returns": "True if successful."
      }
    ]
  },
  {
    "namespace": "Rhino.Geometry",
    "name": "Arrowhead",
    "dataType": "class",
    "summary": "Arrowhead used by annotation",
    "constructors": [
      {
        "signature": "Arrowhead()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Constructor",
        "since": "6.0"
      },
      {
        "signature": "Arrowhead(ArrowType arrowType, Guid blockId)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Constructor",
        "since": "6.0",
        "parameters": [
          {
            "name": "arrowType",
            "type": "DimensionStyle.ArrowType",
            "summary": "type of this arrowhead"
          },
          {
            "name": "blockId",
            "type": "System.Guid",
            "summary": "Guid of the block used for user defined display"
          }
        ]
      }
    ],
    "properties": [
      {
        "signature": "ArrowType ArrowType",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Type of arrowhead used by annotation",
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "Guid BlockId",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Id of block used for user-defined arrowhead",
        "since": "6.0",
        "property": ["get"]
      }
    ]
  },
  {
    "namespace": "Rhino.Geometry",
    "name": "BezierCurve",
    "dataType": "class",
    "summary": "Represents a Bezier curve.  \nNote: as an exception, the bezier curve is not derived from .",
    "interfaces": ["IDisposable", "ISerializable"],
    "constructors": [
      {
        "signature": "BezierCurve(IEnumerable<Point2d> controlPoints)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Create bezier curve with controls defined by a list of 2d points",
        "since": "5.0"
      },
      {
        "signature": "BezierCurve(IEnumerable<Point3d> controlPoints)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Create bezier curve with controls defined by a list of 3d points",
        "since": "5.0"
      },
      {
        "signature": "BezierCurve(IEnumerable<Point4d> controlPoints)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Create bezier curve with controls defined by a list of 4d points",
        "since": "5.0"
      },
      {
        "signature": "BezierCurve(SerializationInfo info, StreamingContext context)",
        "modifiers": ["protected"],
        "protected": true,
        "virtual": false,
        "summary": "Protected constructor for internal use.",
        "parameters": [
          {
            "name": "info",
            "type": "System.Runtime.Serialization.SerializationInfo",
            "summary": "Serialization data."
          },
          {
            "name": "context",
            "type": "System.Runtime.Serialization.StreamingContext",
            "summary": "Serialization stream."
          }
        ]
      }
    ],
    "properties": [
      {
        "signature": "int ControlVertexCount",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Number of control vertices in this curve",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "int Dimension",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Dimension of Bezier",
        "since": "6.3",
        "property": ["get"]
      },
      {
        "signature": "bool IsRational",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets a value indicating whether or not the curve is rational. Rational curves have control-points with custom weights.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "bool IsValid",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Tests an object to see if it is valid.",
        "since": "5.0",
        "property": ["get"]
      }
    ],
    "methods": [
      {
        "signature": "BezierCurve[] CreateBeziers(Curve sourceCurve)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Create an array of Bezier curves that fit to an existing curve. Please note, these Beziers can be of any order and may be rational.",
        "since": "6.0",
        "parameters": [
          {
            "name": "sourceCurve",
            "type": "Curve",
            "summary": "The curve to fit Beziers to"
          }
        ],
        "returns": "A new array of Bezier curves"
      },
      {
        "signature": "BezierCurve[] CreateCubicBeziers(Curve sourceCurve, System.Double distanceTolerance, System.Double kinkTolerance)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Constructs an array of cubic, non-rational Beziers that fit a curve to a tolerance.",
        "since": "5.0",
        "parameters": [
          {
            "name": "sourceCurve",
            "type": "Curve",
            "summary": "A curve to approximate."
          },
          {
            "name": "distanceTolerance",
            "type": "System.Double",
            "summary": "The max fitting error. Use RhinoMath.SqrtEpsilon as a minimum."
          },
          {
            "name": "kinkTolerance",
            "type": "System.Double",
            "summary": "If the input curve has a g1-discontinuity with angle radian measure greater than kinkTolerance at some point P, the list of beziers will also have a kink at P."
          }
        ],
        "returns": "A new array of bezier curves. The array can be empty and might contain None items."
      },
      {
        "signature": "BezierCurve CreateLoftedBezier(IEnumerable<Point2d> points)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Loft a bezier through a list of points",
        "since": "5.0",
        "parameters": [
          {
            "name": "points",
            "type": "IEnumerable<Point2d>",
            "summary": "2 or more points to interpolate"
          }
        ],
        "returns": "new bezier curve if successful"
      },
      {
        "signature": "BezierCurve CreateLoftedBezier(IEnumerable<Point3d> points)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Loft a bezier through a list of points",
        "since": "5.0",
        "parameters": [
          {
            "name": "points",
            "type": "IEnumerable<Point3d>",
            "summary": "2 or more points to interpolate"
          }
        ],
        "returns": "new bezier curve if successful"
      },
      {
        "signature": "System.Boolean ChangeDimension(System.Int32 desiredDimension)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Change dimension of bezier.",
        "since": "5.0",
        "returns": "True if successful.  False if desired_dimension < 1"
      },
      {
        "signature": "Vector3d CurvatureAt(System.Double t)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Evaluate the curvature vector at a curve parameter.",
        "since": "5.0",
    "remarks": "No error handling.",
        "parameters": [
          {
            "name": "t",
            "type": "System.Double",
            "summary": "Evaluation parameter."
          }
        ],
        "returns": "Curvature vector of the curve at the parameter t."
      },
      {
        "signature": "BezierCurve Derivative()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "System.Void Dispose()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Actively reclaims unmanaged resources that this instance uses.",
        "since": "5.0"
      },
      {
        "signature": "System.Void Dispose(System.Boolean disposing)",
        "modifiers": ["protected", "virtual"],
        "protected": true,
        "virtual": true,
        "summary": "For derived class implementers.  \nThis method is called with argument True when class user calls Dispose(), while with argument False when     the Garbage Collector invokes the finalizer, or Finalize() method.  \nYou must reclaim all used unmanaged resources in both cases, and can use this chance to call Dispose on disposable fields if the argument is true.  \nAlso, you must call the base virtual method within your overriding method.",
        "parameters": [
          {
            "name": "disposing",
            "type": "System.Boolean",
            "summary": "True if the call comes from the Dispose() method; False if it comes from the Garbage Collector finalizer."
          }
        ]
      },
      {
        "signature": "BoundingBox GetBoundingBox(System.Boolean accurate)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Bounding box solver. Gets the world axis aligned bounding box for the curve.",
        "since": "5.0",
        "parameters": [
          {
            "name": "accurate",
            "type": "System.Boolean",
            "summary": "If true, a physically accurate bounding box will be computed. If not, a bounding box estimate will be computed. For some geometry types there is no difference between the estimate and the accurate bounding box. Estimated bounding boxes can be computed much (much) faster than accurate (or \"tight\") bounding boxes. Estimated bounding boxes are always similar to or larger than accurate bounding boxes."
          }
        ],
        "returns": "The bounding box of the geometry in world coordinates or BoundingBox.Empty if not bounding box could be found."
      },
      {
        "signature": "Point2d GetControlVertex2d(System.Int32 index)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Get location of a control vertex.",
        "since": "5.0",
        "parameters": [
          {
            "name": "index",
            "type": "System.Int32",
            "summary": "Control vertex index (0 <= index < ControlVertexCount)"
          }
        ],
        "returns": "If the bezier is rational, the euclidean location is returned."
      },
      {
        "signature": "Point3d GetControlVertex3d(System.Int32 index)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the 3D location of a control vertex at the specified index.",
        "since": "5.0",
        "parameters": [
          {
            "name": "index",
            "type": "System.Int32",
            "summary": "Control vertex index (0 <= index < ControlVertexCount)."
          }
        ],
        "returns": "The 3D location of the control vertex. If the Bezier is rational, the euclidean location is returned. Returns <b>Point3d.Unset</b> if the index is out of range or the control vertex cannot be retrieved."
      },
      {
        "signature": "Point4d GetControlVertex4d(System.Int32 index)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the homogeneous (4D) value of a control vertex at the specified index.",
        "since": "5.0",
        "parameters": [
          {
            "name": "index",
            "type": "System.Int32",
            "summary": "Control vertex index (0 <= index < ControlVertexCount)."
          }
        ],
        "returns": "The homogeneous value of the control vertex. If the Bezier is not rational, the weight is 1. Returns <b>Point4d.Unset</b> if the index is out of range or the control vertex cannot be retrieved."
      },
      {
        "signature": "System.Void GetObjectData(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context)",
        "modifiers": ["public", "virtual"],
        "protected": false,
        "virtual": true,
        "summary": "Populates a System.Runtime.Serialization.SerializationInfo with the data needed to serialize the target object.",
        "since": "6.3",
        "parameters": [
          {
            "name": "info",
            "type": "System.Runtime.Serialization.SerializationInfo",
            "summary": "The System.Runtime.Serialization.SerializationInfo to populate with data."
          },
          {
            "name": "context",
            "type": "System.Runtime.Serialization.StreamingContext",
            "summary": "The destination (see System.Runtime.Serialization.StreamingContext) for this serialization."
          }
        ]
      },
      {
        "signature": "System.Boolean IncreaseDegree(System.Int32 desiredDegree)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Increase degree of bezier",
        "since": "5.0",
        "returns": "True if successful.  False if desiredDegree < current degree."
      },
      {
        "signature": "System.Boolean MakeNonRational()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Make bezier non-rational",
        "since": "5.0",
        "returns": "True if successful"
      },
      {
        "signature": "System.Boolean MakeRational()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Make bezier rational",
        "since": "5.0",
        "returns": "True if successful"
      },
      {
        "signature": "Point3d PointAt(System.Double t)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Evaluates point at a curve parameter.",
        "since": "5.0",
    "remarks": "No error handling.",
        "parameters": [
          {
            "name": "t",
            "type": "System.Double",
            "summary": "Evaluation parameter."
          }
        ],
        "returns": "Point (location of curve at the parameter t)."
      },
      {
        "signature": "System.Boolean Split(System.Double t, out BezierCurve left, out BezierCurve right)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Divides the Bezier curve at the specified parameter.",
        "since": "6.0",
        "parameters": [
          {
            "name": "t",
            "type": "System.Double",
            "summary": "parameter must satisfy 0 < t < 1"
          },
          {
            "name": "left",
            "type": "BezierCurve",
            "summary": ""
          },
          {
            "name": "right",
            "type": "BezierCurve",
            "summary": ""
          }
        ],
        "returns": "True on success"
      },
      {
        "signature": "Vector3d TangentAt(System.Double t)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Evaluates the unit tangent vector at a curve parameter.",
        "since": "5.0",
    "remarks": "No error handling.",
        "parameters": [
          {
            "name": "t",
            "type": "System.Double",
            "summary": "Evaluation parameter."
          }
        ],
        "returns": "Unit tangent vector of the curve at the parameter t."
      },
      {
        "signature": "NurbsCurve ToNurbsCurve()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Constructs a NURBS curve representation of this curve.",
        "since": "5.0",
        "returns": "NURBS representation of the curve on success, None on failure."
      }
    ]
  },
  {
    "namespace": "Rhino.Geometry",
    "name": "BezierSurface",
    "dataType": "class",
    "summary": "Represents a Bezier surface.",
    "interfaces": ["IDisposable"],
    "properties": [
      {
        "signature": "int Dimension",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Dimension of Bezier",
        "since": "7.1",
        "property": ["get"]
      },
      {
        "signature": "bool IsRational",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets a value indicating whether or not the surface is rational. Rational surfaces have control-points with custom weights.",
        "since": "7.1",
        "property": ["get"]
      },
      {
        "signature": "bool IsValid",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Tests an object to see if it is valid.",
        "since": "7.1",
        "property": ["get"]
      }
    ],
    "methods": [
      {
        "signature": "BezierSurface CreateLoftedBezier(IEnumerable<BezierCurve> curves)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Loft a bezier surface through a list of bezier curves.",
        "since": "7.1",
        "parameters": [
          {
            "name": "curves",
            "type": "IEnumerable<BezierCurve>",
            "summary": "list of curves that have the same degree"
          }
        ],
        "returns": "new bezier curve if successful"
      },
      {
        "signature": "System.Int32 ControlVertexCount(System.Int32 direction)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Number of control vertices in this surface",
        "since": "7.1",
        "parameters": [
          {
            "name": "direction",
            "type": "System.Int32",
            "summary": "0 for first parameter's domain, 1 for second parameter's domain."
          }
        ]
      },
      {
        "signature": "System.Void Dispose()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Actively reclaims unmanaged resources that this instance uses.",
        "since": "5.0"
      },
      {
        "signature": "System.Void Dispose(System.Boolean disposing)",
        "modifiers": ["protected", "virtual"],
        "protected": true,
        "virtual": true,
        "summary": "For derived class implementers.  \nThis method is called with argument True when class user calls Dispose(), while with argument False when     the Garbage Collector invokes the finalizer, or Finalize() method.  \nYou must reclaim all used unmanaged resources in both cases, and can use this chance to call Dispose on disposable fields if the argument is true.  \nAlso, you must call the base virtual method within your overriding method.",
        "parameters": [
          {
            "name": "disposing",
            "type": "System.Boolean",
            "summary": "True if the call comes from the Dispose() method; False if it comes from the Garbage Collector finalizer."
          }
        ]
      },
      {
        "signature": "Interval Domain(System.Int32 direction)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the domain in a direction.",
        "since": "7.1",
        "parameters": [
          {
            "name": "direction",
            "type": "System.Int32",
            "summary": "0 gets first parameter, 1 gets second parameter."
          }
        ],
        "returns": "An interval value."
      },
      {
        "signature": "BoundingBox GetBoundingBox(System.Boolean accurate)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Bounding box solver. Gets the world axis aligned bounding box for the surface.",
        "since": "7.1",
        "parameters": [
          {
            "name": "accurate",
            "type": "System.Boolean",
            "summary": "This parameter is currently ignored."
          }
        ],
        "returns": "The bounding box of the geometry in world coordinates or BoundingBox.Empty if not bounding box could be found."
      },
      {
        "signature": "Point2d GetControlVertex2d(System.Int32 i, System.Int32 j)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Get location of a control vertex.",
        "since": "7.1",
        "parameters": [
          {
            "name": "i",
            "type": "System.Int32",
            "summary": "Control vertex index (0 <= index < ControlVertexCount)"
          },
          {
            "name": "j",
            "type": "System.Int32",
            "summary": "Control vertex index (0 <= index < ControlVertexCount)"
          }
        ],
        "returns": "If the bezier is rational, the euclidean location is returned."
      },
      {
        "signature": "Point3d GetControlVertex3d(System.Int32 i, System.Int32 j)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Get location of a control vertex.",
        "since": "7.1",
        "parameters": [
          {
            "name": "i",
            "type": "System.Int32",
            "summary": "Control vertex index (0 <= index < ControlVertexCount)"
          },
          {
            "name": "j",
            "type": "System.Int32",
            "summary": "Control vertex index (0 <= index < ControlVertexCount)"
          }
        ],
        "returns": "If the bezier is rational, the euclidean location is returned."
      },
      {
        "signature": "Point4d GetControlVertex4d(System.Int32 i, System.Int32 j)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Get location of a control vertex.",
        "since": "7.1",
        "parameters": [
          {
            "name": "i",
            "type": "System.Int32",
            "summary": "Control vertex index (0 <= index < ControlVertexCount)"
          },
          {
            "name": "j",
            "type": "System.Int32",
            "summary": "Control vertex index (0 <= index < ControlVertexCount)"
          }
        ],
        "returns": "Homogeneous value of control vertex. If the bezier is not rational, the weight is 1."
      },
      {
        "signature": "System.Boolean MakeNonRational()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Make bezier non-rational",
        "since": "7.1",
        "returns": "True if successful"
      },
      {
        "signature": "System.Boolean MakeRational()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Make bezier rational",
        "since": "7.1",
        "returns": "True if successful"
      },
      {
        "signature": "Point3d PointAt(System.Double u, System.Double v)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Evaluates point at a surface parameter.",
        "since": "7.1",
    "remarks": "No error handling.",
        "parameters": [
          {
            "name": "u",
            "type": "System.Double",
            "summary": "evaluation parameters."
          },
          {
            "name": "v",
            "type": "System.Double",
            "summary": "evaluation parameters."
          }
        ],
        "returns": "Point (location of surface at the parameter u,v)."
      },
      {
        "signature": "BezierSurface Reverse(System.Int32 direction)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Reverses parameterization Domain changes from [a,b] to [-b,-a]",
        "since": "7.1",
        "parameters": [
          {
            "name": "direction",
            "type": "System.Int32",
            "summary": "0 for first parameter's domain, 1 for second parameter's domain."
          }
        ],
        "returns": "a new reversed surface on success."
      },
      {
        "signature": "System.Boolean Split(System.Int32 direction, System.Double t, out BezierSurface left, out BezierSurface right)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Divides the Bezier surface at the specified parameter.",
        "since": "7.1",
        "parameters": [
          {
            "name": "direction",
            "type": "System.Int32",
            "summary": "0 is split along u and 1 is split along v"
          },
          {
            "name": "t",
            "type": "System.Double",
            "summary": "parameter must satisfy 0 < t < 1"
          },
          {
            "name": "left",
            "type": "BezierSurface",
            "summary": ""
          },
          {
            "name": "right",
            "type": "BezierSurface",
            "summary": ""
          }
        ],
        "returns": "True on success"
      },
      {
        "signature": "NurbsSurface ToNurbsSurface()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Constructs a NURBS surface representation of this surface.",
        "since": "7.1",
        "returns": "NURBS representation of the surface on success, None on failure."
      },
      {
        "signature": "System.Boolean Transform(Transform xform)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Transforms the surface",
        "since": "7.1",
        "parameters": [
          {
            "name": "xform",
            "type": "Transform",
            "summary": "Transformation to apply to geometry."
          }
        ],
        "returns": "True if geometry successfully transformed."
      },
      {
        "signature": "BezierSurface Transpose()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Transposes surface parameterization (swap U and V)",
        "since": "7.1",
        "returns": "New transposed surface on success, None on failure."
      }
    ]
  },
  {
    "namespace": "Rhino.Geometry",
    "name": "BlendContinuity",
    "dataType": "enum",
    "summary": "Used in curve and surface blending and matching functions.",
    "since": "5.0",
    "values": [
      {
        "signature": "Position = 0",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Position (G0 continuity) measures location only. If the end points of each curve are in the same location in space, the curves are position continuous (G0) at the ends. In other words, the two curves in question touch each other at their end points."
      },
      {
        "signature": "Tangency = 1",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Tangency (G1 continuity) measures position and curve direction at the ends. In other words, the two curves not only touch, but they go the same direction at the point where they touch. The direction is determined by the first and second point on each curve. If these two points fall on a line, the two curves are tangent at the ends. The first derivative of the two curves is equal at the point where they touch."
      },
      {
        "signature": "Curvature = 2",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Curvature continuity (G2 continuity) between two curves measures position, direction, and radius of curvature at the ends. If the radius of curvature is the same at the common end point, curves are curvature continuous (G2). In other words, the curves not only go the same direction when they meet, but also have the same radius at that point. This condition is not easy to determine by just looking at where the points are located. Both the first and second derivatives of the equations are equal at that point."
      },
      {
        "signature": "G3 = 3",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "G3 continuity adds a third requirement: planar acceleration. Curves that are G3 continuous touch, go the same direction, have the same radius, and that radius is accelerating at the same rate at a certain point. G3 continuous curves have equal third derivatives."
      },
      {
        "signature": "G4 = 4",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "G4 continuity is very seldom used, but can be important in certain isolated cases. G4 continuous curves have all the same requirements as G3 curves, but their curvature acceleration is equal in three dimensions."
      }
    ]

  },
  {
    "namespace": "Rhino.Geometry",
    "name": "BlendType",
    "dataType": "enum",
    "summary": "Blend types used for creating filleted Brep edges",
    "since": "6.0",
    "values": [
      {
        "signature": "Chamfer = 0",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Creates a ruled surface between brep edges with varying chamfer distances."
      },
      {
        "signature": "Fillet = 1",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Creates a tangent surface between brep edges with varying radius values."
      },
      {
        "signature": "Blend = 2",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Creates a curvature-continuous blend surface between brep edges with varying radius values."
      }
    ]

  },
  {
    "namespace": "Rhino.Geometry",
    "name": "BoundingBox",
    "dataType": "struct",
    "summary": "Represents the value of two points in a bounding box defined by the two extreme corner points.  \nThis box is therefore aligned to the world X, Y and Z axes.",
    "constructors": [
      {
        "signature": "BoundingBox(double minX, double minY, double minZ, double maxX, double maxY, double maxZ)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Constructs a bounding box from numeric extremes.",
        "since": "5.0",
        "parameters": [
          {
            "name": "minX",
            "type": "System.Double",
            "summary": "Lower extreme for box X size."
          },
          {
            "name": "minY",
            "type": "System.Double",
            "summary": "Lower extreme for box Y size."
          },
          {
            "name": "minZ",
            "type": "System.Double",
            "summary": "Lower extreme for box Z size."
          },
          {
            "name": "maxX",
            "type": "System.Double",
            "summary": "Upper extreme for box X size."
          },
          {
            "name": "maxY",
            "type": "System.Double",
            "summary": "Upper extreme for box Y size."
          },
          {
            "name": "maxZ",
            "type": "System.Double",
            "summary": "Upper extreme for box Z size."
          }
        ]
      },
      {
        "signature": "BoundingBox(IEnumerable<Point3d> points, Transform xform)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Constructs a bounding box from a collection of points.",
        "since": "6.0",
        "parameters": [
          {
            "name": "points",
            "type": "System.Collections.Generic.IEnumerable<Point3d>",
            "summary": "Points to include in the bounding box."
          },
          {
            "name": "xform",
            "type": "Transform",
            "summary": "Transformation."
          }
        ]
      },
      {
        "signature": "BoundingBox(IEnumerable<Point3d> points)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Constructs a bounding box from a collection of points.",
        "since": "5.0",
        "parameters": [
          {
            "name": "points",
            "type": "System.Collections.Generic.IEnumerable<Point3d>",
            "summary": "Points to include in the bounding box."
          }
        ]
      },
      {
        "signature": "BoundingBox(Point3d min, Point3d max)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Constructs a new bounding box from two corner points.",
        "since": "5.0",
        "parameters": [
          {
            "name": "min",
            "type": "Point3d",
            "summary": "Point containing all the minimum coordinates."
          },
          {
            "name": "max",
            "type": "Point3d",
            "summary": "Point containing all the maximum coordinates."
          }
        ]
      }
    ],
    "properties": [
      {
        "signature": "BoundingBox Empty",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Gets an [Empty] bounding box. An Empty box is an invalid structure that has negative width.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "BoundingBox Unset",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Gets a bounding box that has Unset coordinates for Min and Max.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "double Area",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the area of this BoundingBox.",
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "Point3d Center",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the point in the center of the bounding box.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "Vector3d Diagonal",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the diagonal vector of this BoundingBox. The diagonal connects the Min and Max points.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "bool IsValid",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets a value that indicates whether or not this bounding box is valid. Empty boxes are not valid, and neither are boxes with unset points.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "Point3d Max",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the point in the maximal corner.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "Point3d Min",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the point in the minimal corner.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "double Volume",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the volume of this BoundingBox.",
        "since": "6.0",
        "property": ["get"]
      }
    ],
    "methods": [
      {
        "signature": "BoundingBox Intersection(BoundingBox a, BoundingBox b)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Computes the intersection of two bounding boxes.",
        "since": "5.0",
        "parameters": [
          {
            "name": "a",
            "type": "BoundingBox",
            "summary": "A first bounding box."
          },
          {
            "name": "b",
            "type": "BoundingBox",
            "summary": "A second bounding box."
          }
        ],
        "returns": "The intersection bounding box."
      },
      {
        "signature": "BoundingBox Union(BoundingBox a, BoundingBox b)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Returns a new BoundingBox that represents the union of boxes a and b.",
        "since": "5.0",
    "remarks": "Invalid boxes are ignored and will not affect the union.",
        "parameters": [
          {
            "name": "a",
            "type": "BoundingBox",
            "summary": "First box to include in union."
          },
          {
            "name": "b",
            "type": "BoundingBox",
            "summary": "Second box to include in union."
          }
        ],
        "returns": "The BoundingBox that contains both a and b."
      },
      {
        "signature": "BoundingBox Union(BoundingBox box, Point3d point)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Returns a new BoundingBox that represents the union of a bounding box and a point.",
        "since": "5.0",
    "remarks": "Invalid boxes and points are ignored and will not affect the union.",
        "parameters": [
          {
            "name": "box",
            "type": "BoundingBox",
            "summary": "Box to include in the union."
          },
          {
            "name": "point",
            "type": "Point3d",
            "summary": "Point to include in the union."
          }
        ],
        "returns": "The BoundingBox that contains both the box and the point."
      },
      {
        "signature": "Point3d ClosestPoint(Point3d point, System.Boolean includeInterior)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Finds the closest point on or in the bounding box.",
        "since": "5.0",
        "parameters": [
          {
            "name": "point",
            "type": "Point3d",
            "summary": "Sample point."
          },
          {
            "name": "includeInterior",
            "type": "System.Boolean",
            "summary": "If false, the point is projected onto the boundary faces only, otherwise the interior of the box is also taken into consideration."
          }
        ],
        "returns": "The point on or in the box that is closest to the sample point."
      },
      {
        "signature": "Point3d ClosestPoint(Point3d point)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Finds the closest point on or in the bounding box.",
        "since": "5.0",
        "parameters": [
          {
            "name": "point",
            "type": "Point3d",
            "summary": "Sample point."
          }
        ],
        "returns": "The point on or in the box that is closest to the sample point."
      },
      {
        "signature": "System.Boolean Contains(BoundingBox box, System.Boolean strict)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Determines whether this bounding box contains another bounding box.  \nThe user can choose how to treat bounding boxes with coincident surfaces.",
        "since": "5.0",
        "parameters": [
          {
            "name": "box",
            "type": "BoundingBox",
            "summary": "Box to test."
          },
          {
            "name": "strict",
            "type": "System.Boolean",
            "summary": "If true, the box needs to be fully on the inside of the bounding box. I.e. coincident boxes will be considered 'outside'."
          }
        ],
        "returns": "True if the box is (strictly) on the inside of this BoundingBox."
      },
      {
        "signature": "System.Boolean Contains(BoundingBox box)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Determines whether this bounding box contains another bounding box.  \nThis is the same as calling Contains(box,false).",
        "since": "5.0",
        "parameters": [
          {
            "name": "box",
            "type": "BoundingBox",
            "summary": "Box to test."
          }
        ],
        "returns": "True if the box is on the inside of this bounding box, or is coincident with the surface of it."
      },
      {
        "signature": "System.Boolean Contains(Point3d point, System.Boolean strict)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Tests a point for BoundingBox inclusion.",
        "since": "5.0",
        "parameters": [
          {
            "name": "point",
            "type": "Point3d",
            "summary": "Point to test."
          },
          {
            "name": "strict",
            "type": "System.Boolean",
            "summary": "If true, the point needs to be fully on the inside of the BoundingBox. I.e. coincident points will be considered 'outside'."
          }
        ],
        "returns": "If 'strict' is affirmative, True if the point is inside this bounding box; False if it is on the surface or outside.  \nIf 'strict' is negative, True if the point is on the surface or on the inside of the bounding box; otherwise false."
      },
      {
        "signature": "System.Boolean Contains(Point3d point)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Tests a point for bounding box inclusion. This is the same as calling Contains(point, false)",
        "since": "5.0",
        "parameters": [
          {
            "name": "point",
            "type": "Point3d",
            "summary": "Point to test."
          }
        ],
        "returns": "True if the point is on the inside of or coincident with this bounding box; otherwise false."
      },
      {
        "signature": "Point3d Corner(System.Boolean minX, System.Boolean minY, System.Boolean minZ)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets one of the eight corners of the box.",
        "since": "5.0",
        "parameters": [
          {
            "name": "minX",
            "type": "System.Boolean",
            "summary": "True for the minimum on the X axis; False for the maximum."
          },
          {
            "name": "minY",
            "type": "System.Boolean",
            "summary": "True for the minimum on the Y axis; False for the maximum."
          },
          {
            "name": "minZ",
            "type": "System.Boolean",
            "summary": "True for the minimum on the Z axis; False for the maximum."
          }
        ],
        "returns": "The requested point."
      },
      {
        "signature": "Point3d FurthestPoint(Point3d point)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Finds the furthest point on the Box.",
        "since": "5.0",
        "parameters": [
          {
            "name": "point",
            "type": "Point3d",
            "summary": "Sample point."
          }
        ],
        "returns": "The point on the box that is furthest from the sample point."
      },
      {
        "signature": "Point3d[] GetCorners()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets an array filled with the 8 corner points of this box.  \nSee remarks for the return order.",
        "since": "5.0",
    "remarks": "[0] Min.X, Min.Y, Min.Z  \n[1] Max.X, Min.Y, Min.Z  \n[2] Max.X, Max.Y, Min.Z  \n[3] Min.X, Max.Y, Min.Z  \n[4] Min.X, Min.Y, Max.Z  \n[5] Max.X, Min.Y, Max.Z  \n[6] Max.X, Max.Y, Max.Z  \n[7] Min.X, Max.Y, Max.Z",
        "returns": "An array of 8 corners."
      },
      {
        "signature": "Line[] GetEdges()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets an array of the 12 edges of this box.",
        "since": "5.0",
        "returns": "If the bounding box IsValid, the 12 edges; otherwise, null."
      },
      {
        "signature": "System.Void Inflate(System.Double xAmount, System.Double yAmount, System.Double zAmount)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Inflate the box with custom amounts in all directions. Inflating with negative amounts may result in decreasing boxes.  \nInValid boxes can not be inflated.",
        "since": "5.0",
        "parameters": [
          {
            "name": "xAmount",
            "type": "System.Double",
            "summary": "Amount (in model units) to inflate this box in the x direction."
          },
          {
            "name": "yAmount",
            "type": "System.Double",
            "summary": "Amount (in model units) to inflate this box in the y direction."
          },
          {
            "name": "zAmount",
            "type": "System.Double",
            "summary": "Amount (in model units) to inflate this box in the z direction."
          }
        ]
      },
      {
        "signature": "System.Void Inflate(System.Double amount)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Inflates the box with equal amounts in all directions. Inflating with negative amounts may result in decreasing boxes.  \nInvalid boxes can not be inflated.",
        "since": "5.0",
        "parameters": [
          {
            "name": "amount",
            "type": "System.Double",
            "summary": "Amount (in model units) to inflate this box in all directions."
          }
        ]
      },
      {
        "signature": "System.Int32 IsDegenerate(System.Double tolerance)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Determines whether a bounding box is degenerate (flat) in one or more directions.",
        "since": "5.0",
        "parameters": [
          {
            "name": "tolerance",
            "type": "System.Double",
            "summary": "Distances <= tolerance will be considered to be zero.  If tolerance is negative (default), then a scale invariant tolerance is used."
          }
        ],
        "returns": "0 = box is not degenerate 1 = box is a rectangle (degenerate in one direction). 2 = box is a line (degenerate in two directions). 3 = box is a point (degenerate in three directions) 4 = box is not valid."
      },
      {
        "signature": "System.Boolean MakeValid()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Ensures that the box is defined in an increasing fashion along X, Y and Z axes. If the Min or Max points are unset, this function will not change the box.",
        "since": "5.0",
        "returns": "True if the box was made valid, False if the box could not be made valid."
      },
      {
        "signature": "System.Double MaximumDistanceTo(Point3d testPoint)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Finds the largest distance between this bounding box and a test point.",
        "since": "9.0",
        "parameters": [
          {
            "name": "testPoint",
            "type": "Point3d",
            "summary": "A point to test."
          }
        ],
        "returns": "The maximum distance."
      },
      {
        "signature": "System.Double MinimumDistanceTo(Point3d testPoint)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Finds the shortest distance between this bounding box and a test point.",
        "since": "9.0",
        "parameters": [
          {
            "name": "testPoint",
            "type": "Point3d",
            "summary": "A point to test."
          }
        ],
        "returns": "The minimum distance."
      },
      {
        "signature": "Point3d PointAt(System.Double tx, System.Double ty, System.Double tz)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Evaluates the bounding box with normalized parameters.  \nThe box has idealized side length of 1x1x1.",
        "since": "5.0",
        "parameters": [
          {
            "name": "tx",
            "type": "System.Double",
            "summary": "Normalized (between 0 and 1 is inside the box) parameter along the X direction."
          },
          {
            "name": "ty",
            "type": "System.Double",
            "summary": "Normalized (between 0 and 1 is inside the box) parameter along the Y direction."
          },
          {
            "name": "tz",
            "type": "System.Double",
            "summary": "Normalized (between 0 and 1 is inside the box) parameter along the Z direction."
          }
        ],
        "returns": "The point at the {tx, ty, tz} parameters."
      },
      {
        "signature": "Brep ToBrep()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Constructs a <b>Brep</b> representation of this bounding box.",
        "since": "5.0",
        "returns": "If this operation is successful, a Brep representation of this box; otherwise null."
      },
      {
        "signature": "System.String ToString()",
        "modifiers": ["public", "override"],
        "protected": false,
        "virtual": false,
        "summary": "Constructs the string representation of this aligned bounding box.",
        "returns": "Text."
      },
      {
        "signature": "System.Boolean Transform(Transform xform)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Updates this bounding box to be the smallest axis aligned bounding box that contains the transformed result of its 8 original corner points.",
        "since": "5.0",
        "parameters": [
          {
            "name": "xform",
            "type": "Transform",
            "summary": "A transform."
          }
        ],
        "returns": "True if this operation is successful; otherwise false."
      },
      {
        "signature": "System.Void Union(BoundingBox other)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Updates this BoundingBox to represent the union of itself and another box.",
        "since": "5.0",
    "remarks": "If either this BoundingBox or the other BoundingBox is InValid, the Valid BoundingBox will be the only one included in the union.",
        "parameters": [
          {
            "name": "other",
            "type": "BoundingBox",
            "summary": "Box to include in this union."
          }
        ]
      },
      {
        "signature": "System.Void Union(Point3d point)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Updates this BoundingBox to represent the union of itself and a point.",
        "since": "5.0",
    "remarks": "If this bounding box is InValid then the union will be the BoundingBox containing only the point. If the point is InValid, this BoundingBox will remain unchanged.",
        "parameters": [
          {
            "name": "point",
            "type": "Point3d",
            "summary": "Point to include in the union."
          }
        ]
      }
    ]
  },
  {
    "namespace": "Rhino.Geometry",
    "name": "Box",
    "dataType": "struct",
    "summary": "Represents the value of a plane and three intervals in an orthogonal, oriented box that is not necessarily parallel to the world Y, X, Z axes.",
    "constructors": [
      {
        "signature": "Box(BoundingBox bbox)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Initializes a new Box that mimics a BoundingBox struct.  \nThe orientation plane of the Box is coincident with the      World XY plane.",
        "since": "5.0",
        "parameters": [
          {
            "name": "bbox",
            "type": "BoundingBox",
            "summary": "BoundingBox to mimic."
          }
        ]
      },
      {
        "signature": "Box(Box other)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Copy constructor.",
        "since": "7.0",
        "parameters": [
          {
            "name": "other",
            "type": "Box",
            "summary": "The source box."
          }
        ]
      },
      {
        "signature": "Box(Plane basePlane, BoundingBox boundingbox)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Initializes a box from a base plane and a world-aligned bounding box. The box will use basePlane for its Plane, and the X, Y, and Z intervals of boundingbox as its X, Y, and Z intervals.",
        "since": "5.0",
    "remarks": "The box might not contain boundingbox.",
        "parameters": [
          {
            "name": "basePlane",
            "type": "Plane",
            "summary": "Base plane of bounding box."
          },
          {
            "name": "boundingbox",
            "type": "BoundingBox",
            "summary": "Bounding Box in plane coordinates."
          }
        ]
      },
      {
        "signature": "Box(Plane basePlane, GeometryBase geometry)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Initializes a box that contains a generic piece of geometry. This box will be aligned with an arbitrary plane.",
        "since": "5.0",
        "parameters": [
          {
            "name": "basePlane",
            "type": "Plane",
            "summary": "Base plane for aligned bounding box."
          },
          {
            "name": "geometry",
            "type": "GeometryBase",
            "summary": "Geometry to box."
          }
        ]
      },
      {
        "signature": "Box(Plane basePlane, IEnumerable<Point3d> points)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Initializes the smallest box that contains a set of points.",
        "since": "5.0",
        "parameters": [
          {
            "name": "basePlane",
            "type": "Plane",
            "summary": "Orientation of the box."
          },
          {
            "name": "points",
            "type": "IEnumerable<Point3d>",
            "summary": "Points to include, Invalid points will be ignored."
          }
        ]
      },
      {
        "signature": "Box(Plane basePlane, Interval xSize, Interval ySize, Interval zSize)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Initializes a new box from a base Plane and three Intervals.",
        "since": "5.0",
        "parameters": [
          {
            "name": "basePlane",
            "type": "Plane",
            "summary": "Orientation plane of the box."
          },
          {
            "name": "xSize",
            "type": "Interval",
            "summary": "Dimensions along the base plane X-Axis."
          },
          {
            "name": "ySize",
            "type": "Interval",
            "summary": "Dimensions along the base plane Y-Axis."
          },
          {
            "name": "zSize",
            "type": "Interval",
            "summary": "Dimensions along the base plane Z-Axis."
          }
        ]
      }
    ],
    "properties": [
      {
        "signature": "Box Empty",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Empty Box. Empty boxes are considered to be invalid.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "Box Unset",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Gets a Box whose base plane and axis dimensions are all Unset.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "double Area",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the total surface area of this box, or <b>RhinoMath.UnsetValue</b> for an invalid box.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "BoundingBox BoundingBox",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the world axis aligned Bounding box for this oriented box.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "Point3d Center",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the point that is in the center of the box.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "bool IsValid",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the validity of this Box. Boxes are invalid when the base plane or any of the dimension intervals are invalid or decreasing.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "Plane Plane",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the orientation plane for this Box.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "double Volume",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the total volume of this box, or <b>RhinoMath.UnsetValue</b> for an invalid box.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "Interval X",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the Interval that describes the dimension of the Box along the orientation plane X-Axis. Otherwise known as the Width of the Box.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "Interval Y",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the Interval that describes the dimension of the Box along the orientation plane Y-Axis. Otherwise known as the Depth of the Box.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "Interval Z",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the Interval that describes the dimension of the Box along the orientation plane Z-Axis. Otherwise known as the Height of the Box.",
        "since": "5.0",
        "property": ["get", "set"]
      }
    ],
    "methods": [
      {
        "signature": "Box Clone()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns a deep copy of this instance.",
        "since": "9.0",
        "returns": "A plane with the same values as this item."
      },
      {
        "signature": "Point3d ClosestPoint(Point3d point, System.Boolean includeInterior)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Finds the closest point on or in the Box. The box should be Valid for this to work.",
        "since": "8.29",
        "parameters": [
          {
            "name": "point",
            "type": "Point3d",
            "summary": "Sample point."
          },
          {
            "name": "includeInterior",
            "type": "System.Boolean",
            "summary": "If false, the point is projected onto the boundary faces only, otherwise the interior of the box is also taken into consideration."
          }
        ],
        "returns": "The point on or in the box that is closest to the sample point."
      },
      {
        "signature": "Point3d ClosestPoint(Point3d point)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Finds the closest point on or in the Box. The box should be Valid for this to work.",
        "since": "5.0",
        "parameters": [
          {
            "name": "point",
            "type": "Point3d",
            "summary": "Sample point."
          }
        ],
        "returns": "The point on or in the box that is closest to the sample point."
      },
      {
        "signature": "System.Boolean Contains(BoundingBox box, System.Boolean strict)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Determines whether a BoundingBox is inside this Box (strict inclusion, if strict is true). Invalid boxes contain nothing. Invalid bounding boxes are never contained.",
        "since": "5.0",
        "parameters": [
          {
            "name": "box",
            "type": "BoundingBox",
            "summary": "BoundingBox to test."
          },
          {
            "name": "strict",
            "type": "System.Boolean",
            "summary": "If true, the BoundingBox needs to be strictly inside this Box, i.e. all corners of the BoundingBox are strictly inside this Box. If false, the BoundingBox can be touching this Box's boundary, i.e. all corners of the BoundingBox are non-strictly inside this Box."
          }
        ],
        "returns": "True if the box is (strictly, if strict is true) inside this Box. False if this Box or the BoundingBox are invalid."
      },
      {
        "signature": "System.Boolean Contains(BoundingBox box)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Determines whether a BoundingBox is inside this Box, including its boundary. This is the same as calling Contains(box,false). Invalid boxes contain nothing. Invalid bounding boxes are never contained.",
        "since": "5.0",
        "parameters": [
          {
            "name": "box",
            "type": "BoundingBox",
            "summary": "BoundingBox to test."
          }
        ],
        "returns": "True if all corners of the BoundingBox are non-strictly inside this Box. False if this Box or the BoundingBox are invalid."
      },
      {
        "signature": "System.Boolean Contains(Box box, System.Boolean strict)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Determines whether a Box is inside this Box (strict inclusion, if strict is true). Invalid boxes contain nothing. Invalid boxes are never contained.",
        "since": "5.0",
        "parameters": [
          {
            "name": "box",
            "type": "Box",
            "summary": "Box to test."
          },
          {
            "name": "strict",
            "type": "System.Boolean",
            "summary": "If true, the tested Box needs to be strictly inside this Box, i.e. all corners of the BoundingBox are strictly inside this Box. If false, the tested Box can be touching this Box's boundary, i.e. all corners of the BoundingBox are non-strictly inside this Box."
          }
        ],
        "returns": "True if the box is (strictly) on the inside of this Box. False if this Box or the tested Box are invalid."
      },
      {
        "signature": "System.Boolean Contains(Box box)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Determines whether a Box is inside this Box, including its boundary. This is the same as calling Contains(box,false). Invalid boxes contain nothing. Invalid boxes are never contained.",
        "since": "5.0",
        "parameters": [
          {
            "name": "box",
            "type": "Box",
            "summary": "Box to test."
          }
        ],
        "returns": "True if all corners of the Box are non-strictly inside this Box. False if this Box or the tested Box are invalid."
      },
      {
        "signature": "System.Boolean Contains(Point3d point, System.Boolean strict)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Determines whether a point is (strictly, if strict is true) inside this Box. Invalid boxes contain nothing. Invalid points are never contained.",
        "since": "5.0",
        "parameters": [
          {
            "name": "point",
            "type": "Point3d",
            "summary": "Point to test."
          },
          {
            "name": "strict",
            "type": "System.Boolean",
            "summary": "If true, the point needs to be strictly inside this Box. I.e. points on the boundary of this Box will be considered 'outside'."
          }
        ],
        "returns": "True if the point is (strictly, if strict is true) inside this Box. False if this Box or the Point are invalid."
      },
      {
        "signature": "System.Boolean Contains(Point3d point)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Determines whether a point is inside this Box, including its boundary. This is the same as calling Contains(point,false). Invalid boxes contain nothing. Invalid points are never contained.",
        "since": "5.0",
        "parameters": [
          {
            "name": "point",
            "type": "Point3d",
            "summary": "Point to test."
          }
        ],
        "returns": "True if the point is in the inside or on the boundary of this Box. False if this Box or the Point are invalid."
      },
      {
        "signature": "System.Boolean EpsilonEquals(Box other, System.Double epsilon)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Check that all values in Box other are within epsilon of the values in this Box.",
        "since": "5.4"
      },
      {
        "signature": "Point3d FurthestPoint(Point3d point)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Finds the furthest point on the boundary of this Box. The Box should be Valid for this to work properly.",
        "since": "5.0",
        "parameters": [
          {
            "name": "point",
            "type": "Point3d",
            "summary": "Sample point."
          }
        ],
        "returns": "The point on boundary of the the box that is furthest from the sample point."
      },
      {
        "signature": "Point3d[] GetCorners()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets an array of the 8 corner points of this box, or an empty array if this box is not valid.",
        "since": "5.0",
        "returns": "An array of 0 or 8 corners."
      },
      {
        "signature": "System.Void Inflate(System.Double xAmount, System.Double yAmount, System.Double zAmount)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Inflates the box by a given offset in each direction. Inflating with negative amounts may result in decreasing boxes. InValid boxes cannot be inflated.",
        "since": "5.0",
        "parameters": [
          {
            "name": "xAmount",
            "type": "System.Double",
            "summary": "Amount (in model units) to inflate this box in the x direction."
          },
          {
            "name": "yAmount",
            "type": "System.Double",
            "summary": "Amount (in model units) to inflate this box in the y direction."
          },
          {
            "name": "zAmount",
            "type": "System.Double",
            "summary": "Amount (in model units) to inflate this box in the z direction."
          }
        ]
      },
      {
        "signature": "System.Void Inflate(System.Double amount)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Inflates the box by a given offset in each direction. Inflating with negative amounts may result in decreasing boxes. InValid boxes cannot be inflated.",
        "since": "5.0",
        "parameters": [
          {
            "name": "amount",
            "type": "System.Double",
            "summary": "Amount (in model units) to inflate this box in all directions."
          }
        ]
      },
      {
        "signature": "System.Boolean MakeValid()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "DO NOT USE THIS FUNCTION If some of the box's values (Plane origin or axis, intervals bounds) are unset, do nothing. Else, make the Box valid by reversing the non-increasing intervals of this box. This is almost never what you want because it only makes <b>Empty</b> boxes not empty and with non-zero length.",
        "since": "5.0",
        "deprecated": "9.0",
        "obsolete": "This method is misguided and only turns empty boxes ",
        "returns": "True if the box was made valid, or if it was valid to begin with. False if the box remains unchanged."
      },
      {
        "signature": "Point3d PointAt(System.Double x, System.Double y, System.Double z)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Evaluates the box at the given unitized parameters.  \nThe box is parametrized with a side length of 1x1x1.",
        "since": "5.0",
        "parameters": [
          {
            "name": "x",
            "type": "System.Double",
            "summary": "Unitized parameter (between 0 and 1 is inside the box) along box X direction."
          },
          {
            "name": "y",
            "type": "System.Double",
            "summary": "Unitized parameter (between 0 and 1 is inside the box) along box Y direction."
          },
          {
            "name": "z",
            "type": "System.Double",
            "summary": "Unitized parameter (between 0 and 1 is inside the box) along box Z direction."
          }
        ],
        "returns": "The point at (x,y,z)."
      },
      {
        "signature": "System.Void RepositionBasePlane(Point3d origin)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Repositions the origin of the Base plane for this box without affecting the physical dimensions.",
        "since": "5.0",
        "parameters": [
          {
            "name": "origin",
            "type": "Point3d",
            "summary": "The new base plane origin."
          }
        ]
      },
      {
        "signature": "Brep ToBrep()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Constructs a brep representation of this box.",
        "since": "5.0",
        "returns": "A Brep representation of this box or null."
      },
      {
        "signature": "Extrusion ToExtrusion()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Constructs an extrusion representation of this box.",
        "since": "6.0",
        "returns": "An Extrusion representation of this box or null."
      },
      {
        "signature": "System.Boolean Transform(Transform xform)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Transforms this Box using a Transformation matrix. If the Transform is not a Similarity, the dimensions of the resulting box cannot be trusted.",
        "since": "5.0",
        "parameters": [
          {
            "name": "xform",
            "type": "Transform",
            "summary": "Transformation matrix to apply to this Box."
          }
        ],
        "returns": "True if the Box was successfully transformed, False otherwise."
      },
      {
        "signature": "System.Void Union(Point3d point)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Constructs a union between this Box and the given point. This grows the box in directions so it contains the point.",
        "since": "5.0",
    "remarks": "If this box is invalid, it becomes the box containing only the point, with the same orientation or the WorldXY's orientation if the orientation was invalid.  If point is invalid or can't be projected, this box is unchanged.",
        "parameters": [
          {
            "name": "point",
            "type": "Point3d",
            "summary": "Point to include."
          }
        ]
      }
    ]
  },
  {
    "namespace": "Rhino.Geometry",
    "name": "Brep",
    "dataType": "class",
    "summary": "Boundary Representation. A surface or polysurface along with trim curve information.",
    "baseclass": "Rhino.Geometry.GeometryBase",
    "constructors": [
      {
        "signature": "Brep()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Initializes a new empty brep",
        "since": "5.4"
      },
      {
        "signature": "Brep(SerializationInfo info, StreamingContext context)",
        "modifiers": ["protected"],
        "protected": true,
        "virtual": false,
        "summary": "Protected constructor used in serialization."
      }
    ],
    "properties": [
      {
        "signature": "BrepCurveList Curves2D",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Parameter space trimming curves (used by trims)",
        "since": "5.6",
        "property": ["get"]
      },
      {
        "signature": "BrepCurveList Curves3D",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Pointers to 3d curves (used by edges)",
        "since": "5.6",
        "property": ["get"]
      },
      {
        "signature": "BrepEdgeList Edges",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the brep edges list accessor.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "BrepFaceList Faces",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the brep faces list accessor.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "bool HasRegionTopology",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns True if the Brep has region topology information, False otherwise.",
        "since": "7.13",
        "property": ["get"]
      },
      {
        "signature": "bool IsManifold",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets a value indicating whether or not the Brep is manifold. Non manifold breps have at least one edge that is shared among three or more faces.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "bool IsSolid",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Determines whether this brep is a solid, or a closed oriented manifold.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "bool IsSurface",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns True if the Brep has a single face and that face is geometrically the same as the underlying surface.  I.e., the face has trivial trimming.  \nIn this case, the surface is the first face surface. The flag     Brep.Faces[0].OrientationIsReversed records the correspondence between the surface's     natural parametric orientation and the orientation of the Brep.  \ntrivial trimming here means that there is only one loop curve in the brep     and that loop curve is the same as the underlying surface boundary.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "BrepLoopList Loops",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the brep loop list accessor.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "BrepSolidOrientation SolidOrientation",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the solid orientation state of this Brep.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "BrepSurfaceList Surfaces",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Parametric surfaces used by faces",
        "since": "5.4",
        "property": ["get"]
      },
      {
        "signature": "BrepTrimList Trims",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the brep trims list accessor.",
        "since": "5.1",
        "property": ["get"]
      },
      {
        "signature": "BrepVertexList Vertices",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the brep vertices list accessor.",
        "since": "5.5",
        "property": ["get"]
      }
    ],
    "methods": [
      {
        "signature": "Brep ChangeSeam(BrepFace face, System.Int32 direction, System.Double parameter, System.Double tolerance)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Change the seam of a closed trimmed surface.",
        "since": "6.4",
        "parameters": [
          {
            "name": "face",
            "type": "BrepFace",
            "summary": "A Brep face with a closed underlying surface."
          },
          {
            "name": "direction",
            "type": "System.Int32",
            "summary": "The parameter direction (0 = U, 1 = V). The face's underlying surface must be closed in this direction."
          },
          {
            "name": "parameter",
            "type": "System.Double",
            "summary": "The parameter at which to place the seam."
          },
          {
            "name": "tolerance",
            "type": "System.Double",
            "summary": "Tolerance used to cut up surface."
          }
        ],
        "returns": "A new Brep that has the same geometry as the face with a relocated seam if successful, or None on failure."
      },
      {
        "signature": "Brep CopyTrimCurves(BrepFace trimSource, Surface surfaceSource, System.Double tolerance)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Copy all trims from a Brep face onto a surface.",
        "since": "5.0",
        "parameters": [
          {
            "name": "trimSource",
            "type": "BrepFace",
            "summary": "Brep face which defines the trimming curves."
          },
          {
            "name": "surfaceSource",
            "type": "Surface",
            "summary": "The surface to trim."
          },
          {
            "name": "tolerance",
            "type": "System.Double",
            "summary": "Tolerance to use for rebuilding 3D trim curves."
          }
        ],
        "returns": "A brep with the shape of surfaceSource and the trims of trimSource or None on failure."
      },
      {
        "signature": "Brep CreateBaseballSphere(Point3d center, System.Double radius, System.Double tolerance)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Creates a brep representation of the sphere with two similar trimmed NURBS surfaces, and no singularities.",
        "since": "6.0",
        "parameters": [
          {
            "name": "center",
            "type": "Point3d",
            "summary": "The center of the sphere."
          },
          {
            "name": "radius",
            "type": "System.Double",
            "summary": "The radius of the sphere."
          },
          {
            "name": "tolerance",
            "type": "System.Double",
            "summary": "Used in computing 2d trimming curves. If >= 0.0, then the max of ON_0.0001 * radius and RhinoMath.ZeroTolerance will be used."
          }
        ],
        "returns": "A new brep, or None on error."
      },
      {
        "signature": "Curve CreateBlendShape(BrepFace face0, BrepEdge edge0, System.Double t0, System.Boolean rev0, BlendContinuity continuity0, BrepFace face1, BrepEdge edge1, System.Double t1, System.Boolean rev1, BlendContinuity continuity1)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Makes a curve blend between points on two surface edges. The blend will be tangent to the surfaces and perpendicular to the edges.",
        "since": "6.0",
        "parameters": [
          {
            "name": "face0",
            "type": "BrepFace",
            "summary": "First face to blend from."
          },
          {
            "name": "edge0",
            "type": "BrepEdge",
            "summary": "First edge to blend from."
          },
          {
            "name": "t0",
            "type": "System.Double",
            "summary": "Location on first edge for first end of blend curve."
          },
          {
            "name": "rev0",
            "type": "System.Boolean",
            "summary": "If false, edge0 will be used in its natural direction. If true, edge0 will be used in the reversed direction."
          },
          {
            "name": "continuity0",
            "type": "BlendContinuity",
            "summary": "Continuity for the blend at the start."
          },
          {
            "name": "face1",
            "type": "BrepFace",
            "summary": "Second face to blend from."
          },
          {
            "name": "edge1",
            "type": "BrepEdge",
            "summary": "Second edge to blend from."
          },
          {
            "name": "t1",
            "type": "System.Double",
            "summary": "Location on second edge for second end of blend curve."
          },
          {
            "name": "rev1",
            "type": "System.Boolean",
            "summary": "If false, edge1 will be used in its natural direction. If true, edge1 will be used in the reversed direction."
          },
          {
            "name": "continuity1",
            "type": "BlendContinuity",
            "summary": ">Continuity for the blend at the end."
          }
        ],
        "returns": "The blend curve on success. None on failure"
      },
      {
        "signature": "Brep[] CreateBlendSurface(BrepFace face0, BrepEdge edge0, Interval domain0, System.Boolean rev0, BlendContinuity continuity0, BrepFace face1, BrepEdge edge1, Interval domain1, System.Boolean rev1, BlendContinuity continuity1)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Makes a surface blend between two surface edges.",
        "since": "6.0",
        "parameters": [
          {
            "name": "face0",
            "type": "BrepFace",
            "summary": "First face to blend from."
          },
          {
            "name": "edge0",
            "type": "BrepEdge",
            "summary": "First edge to blend from."
          },
          {
            "name": "domain0",
            "type": "Interval",
            "summary": "The domain of edge0 to use."
          },
          {
            "name": "rev0",
            "type": "System.Boolean",
            "summary": "If false, edge0 will be used in its natural direction. If true, edge0 will be used in the reversed direction."
          },
          {
            "name": "continuity0",
            "type": "BlendContinuity",
            "summary": "Continuity for the blend at the start."
          },
          {
            "name": "face1",
            "type": "BrepFace",
            "summary": "Second face to blend from."
          },
          {
            "name": "edge1",
            "type": "BrepEdge",
            "summary": "Second edge to blend from."
          },
          {
            "name": "domain1",
            "type": "Interval",
            "summary": "The domain of edge1 to use."
          },
          {
            "name": "rev1",
            "type": "System.Boolean",
            "summary": "If false, edge1 will be used in its natural direction. If true, edge1 will be used in the reversed direction."
          },
          {
            "name": "continuity1",
            "type": "BlendContinuity",
            "summary": "Continuity for the blend at the end."
          }
        ],
        "returns": "Array of Breps if successful."
      },
      {
        "signature": "Brep[] CreateBooleanDifference(Brep firstBrep, Brep secondBrep, System.Double tolerance, System.Boolean manifoldOnly)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Compute the Solid Difference of two Breps.",
        "since": "6.0",
    "remarks": "The solid orientation of the breps make a difference when calling this function",
        "parameters": [
          {
            "name": "firstBrep",
            "type": "Brep",
            "summary": "First Brep for boolean difference."
          },
          {
            "name": "secondBrep",
            "type": "Brep",
            "summary": "Second Brep for boolean difference."
          },
          {
            "name": "tolerance",
            "type": "System.Double",
            "summary": "Tolerance to use for difference operation."
          },
          {
            "name": "manifoldOnly",
            "type": "System.Boolean",
            "summary": "If true, non-manifold input breps are ignored."
          }
        ],
        "returns": "An array of Brep results or None on failure."
      },
      {
        "signature": "Brep[] CreateBooleanDifference(Brep firstBrep, Brep secondBrep, System.Double tolerance)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Compute the Solid Difference of two Breps.",
        "since": "5.0",
    "remarks": "The solid orientation of the breps make a difference when calling this function",
        "parameters": [
          {
            "name": "firstBrep",
            "type": "Brep",
            "summary": "First Brep for boolean difference."
          },
          {
            "name": "secondBrep",
            "type": "Brep",
            "summary": "Second Brep for boolean difference."
          },
          {
            "name": "tolerance",
            "type": "System.Double",
            "summary": "Tolerance to use for difference operation."
          }
        ],
        "returns": "An array of Brep results or None on failure."
      },
      {
        "signature": "Brep[] CreateBooleanDifference(IEnumerable<Brep> firstSet, IEnumerable<Brep> secondSet, System.Double tolerance, System.Boolean manifoldOnly)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Compute the Solid Difference of two sets of Breps.",
        "since": "6.0",
    "remarks": "The solid orientation of the breps make a difference when calling this function",
        "parameters": [
          {
            "name": "firstSet",
            "type": "IEnumerable<Brep>",
            "summary": "First set of Breps (the set to subtract from)."
          },
          {
            "name": "secondSet",
            "type": "IEnumerable<Brep>",
            "summary": "Second set of Breps (the set to subtract)."
          },
          {
            "name": "tolerance",
            "type": "System.Double",
            "summary": "Tolerance to use for difference operation."
          },
          {
            "name": "manifoldOnly",
            "type": "System.Boolean",
            "summary": "If true, non-manifold input breps are ignored."
          }
        ],
        "returns": "An array of Brep results or None on failure."
      },
      {
        "signature": "Brep[] CreateBooleanDifference(IEnumerable<Brep> firstSet, IEnumerable<Brep> secondSet, System.Double tolerance)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Compute the Solid Difference of two sets of Breps.",
        "since": "5.0",
    "remarks": "The solid orientation of the breps make a difference when calling this function",
        "parameters": [
          {
            "name": "firstSet",
            "type": "IEnumerable<Brep>",
            "summary": "First set of Breps (the set to subtract from)."
          },
          {
            "name": "secondSet",
            "type": "IEnumerable<Brep>",
            "summary": "Second set of Breps (the set to subtract)."
          },
          {
            "name": "tolerance",
            "type": "System.Double",
            "summary": "Tolerance to use for difference operation."
          }
        ],
        "returns": "An array of Brep results or None on failure."
      },
      {
        "signature": "Brep[] CreateBooleanDifferenceWithIndexMap(IEnumerable<Brep> firstSet, IEnumerable<Brep> secondSet, System.Double tolerance, System.Boolean manifoldOnly, out System.Int32[] indexMap)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Compute the solid difference between two sets of Breps.",
        "since": "8.13",
        "parameters": [
          {
            "name": "firstSet",
            "type": "IEnumerable<Brep>",
            "summary": "The set to be differenced from."
          },
          {
            "name": "secondSet",
            "type": "IEnumerable<Brep>",
            "summary": "The set to difference with."
          },
          {
            "name": "tolerance",
            "type": "System.Double",
            "summary": "Tolerance to use for the boolean operation."
          },
          {
            "name": "manifoldOnly",
            "type": "System.Boolean",
            "summary": "If true, non-manifold input breps are ignored."
          },
          {
            "name": "indexMap",
            "type": "System.Int32[]",
            "summary": "results[i] is the result if subtracting something from firstSet[indexMap[i]]."
          }
        ],
        "returns": "An array of Brep results or None on failure. May be empty if all of the firstSet is differenced away."
      },
      {
        "signature": "Brep[] CreateBooleanIntersection(Brep firstBrep, Brep secondBrep, System.Double tolerance, System.Boolean manifoldOnly)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Compute the Solid Intersection of two Breps.",
        "since": "6.0",
    "remarks": "The solid orientation of the breps make a difference when calling this function",
        "parameters": [
          {
            "name": "firstBrep",
            "type": "Brep",
            "summary": "First Brep for boolean intersection."
          },
          {
            "name": "secondBrep",
            "type": "Brep",
            "summary": "Second Brep for boolean intersection."
          },
          {
            "name": "tolerance",
            "type": "System.Double",
            "summary": "Tolerance to use for intersection operation."
          },
          {
            "name": "manifoldOnly",
            "type": "System.Boolean",
            "summary": "If true, non-manifold input breps are ignored."
          }
        ],
        "returns": "An array of Brep results or None on failure."
      },
      {
        "signature": "Brep[] CreateBooleanIntersection(Brep firstBrep, Brep secondBrep, System.Double tolerance)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Compute the Solid Intersection of two Breps.",
        "since": "5.0",
    "remarks": "The solid orientation of the breps make a difference when calling this function",
        "parameters": [
          {
            "name": "firstBrep",
            "type": "Brep",
            "summary": "First Brep for boolean intersection."
          },
          {
            "name": "secondBrep",
            "type": "Brep",
            "summary": "Second Brep for boolean intersection."
          },
          {
            "name": "tolerance",
            "type": "System.Double",
            "summary": "Tolerance to use for intersection operation."
          }
        ],
        "returns": "An array of Brep results or None on failure."
      },
      {
        "signature": "Brep[] CreateBooleanIntersection(IEnumerable<Brep> firstSet, IEnumerable<Brep> secondSet, System.Double tolerance, System.Boolean manifoldOnly)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Compute the Solid Intersection of two sets of Breps.",
        "since": "6.0",
    "remarks": "The solid orientation of the breps make a difference when calling this function",
        "parameters": [
          {
            "name": "firstSet",
            "type": "IEnumerable<Brep>",
            "summary": "First set of Breps."
          },
          {
            "name": "secondSet",
            "type": "IEnumerable<Brep>",
            "summary": "Second set of Breps."
          },
          {
            "name": "tolerance",
            "type": "System.Double",
            "summary": "Tolerance to use for intersection operation."
          },
          {
            "name": "manifoldOnly",
            "type": "System.Boolean",
            "summary": "If true, non-manifold input breps are ignored."
          }
        ],
        "returns": "An array of Brep results or None on failure."
      },
      {
        "signature": "Brep[] CreateBooleanIntersection(IEnumerable<Brep> firstSet, IEnumerable<Brep> secondSet, System.Double tolerance)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Compute the Solid Intersection of two sets of Breps.",
        "since": "5.0",
    "remarks": "The solid orientation of the breps make a difference when calling this function",
        "parameters": [
          {
            "name": "firstSet",
            "type": "IEnumerable<Brep>",
            "summary": "First set of Breps."
          },
          {
            "name": "secondSet",
            "type": "IEnumerable<Brep>",
            "summary": "Second set of Breps."
          },
          {
            "name": "tolerance",
            "type": "System.Double",
            "summary": "Tolerance to use for intersection operation."
          }
        ],
        "returns": "An array of Brep results or None on failure."
      },
      {
        "signature": "Brep[] CreateBooleanSplit(Brep firstBrep, Brep secondBrep, System.Double tolerance)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Splits shared areas of Breps and creates separate Breps from the shared and unshared parts.",
        "since": "6.16",
        "parameters": [
          {
            "name": "firstBrep",
            "type": "Brep",
            "summary": "The Brep to split."
          },
          {
            "name": "secondBrep",
            "type": "Brep",
            "summary": "The cutting Brep."
          },
          {
            "name": "tolerance",
            "type": "System.Double",
            "summary": "Tolerance to use for splitting operation. When in doubt, use the document's model absolute tolerance."
          }
        ],
        "returns": "An array of Brep if successful, an empty array on failure."
      },
      {
        "signature": "Brep[] CreateBooleanSplit(IEnumerable<Brep> firstSet, IEnumerable<Brep> secondSet, System.Double tolerance)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Splits shared areas of Breps and creates separate Breps from the shared and unshared parts.",
        "since": "6.16",
        "parameters": [
          {
            "name": "firstSet",
            "type": "IEnumerable<Brep>",
            "summary": "The Breps to split."
          },
          {
            "name": "secondSet",
            "type": "IEnumerable<Brep>",
            "summary": "The cutting Breps."
          },
          {
            "name": "tolerance",
            "type": "System.Double",
            "summary": "Tolerance to use for splitting operation. When in doubt, use the document's model absolute tolerance."
          }
        ],
        "returns": "An array of Brep if successful, an empty array on failure."
      },
      {
        "signature": "Brep[] CreateBooleanUnion(IEnumerable<Brep> breps, System.Double tolerance, System.Boolean manifoldOnly, out Point3d[] nakedEdgePoints, out Point3d[] badIntersectionPoints, out Point3d[] nonManifoldEdgePoints)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Compute the Boolean Union of a set of Breps.",
        "since": "8.0",
        "parameters": [
          {
            "name": "breps",
            "type": "IEnumerable<Brep>",
            "summary": "Breps to union."
          },
          {
            "name": "tolerance",
            "type": "System.Double",
            "summary": "Tolerance to use for union operation."
          },
          {
            "name": "manifoldOnly",
            "type": "System.Boolean",
            "summary": "If true, non-manifold input breps are ignored."
          },
          {
            "name": "nakedEdgePoints",
            "type": "Point3d[]",
            "summary": "If Boolean failed because the intersection hit a naked edge, a point will be added where the intersection hits the edge."
          },
          {
            "name": "badIntersectionPoints",
            "type": "Point3d[]",
            "summary": "If Boolean failed because an intersection ends on the interior of both surfaces, a point is added.This happens when the surface intersector fails."
          },
          {
            "name": "nonManifoldEdgePoints",
            "type": "Point3d[]",
            "summary": "If Boolean failed because the intersection hit a non-manifold edge, a point will be added where the intersection hits the edge."
          }
        ],
        "returns": "An array of Brep results or None on failure."
      },
      {
        "signature": "Brep[] CreateBooleanUnion(IEnumerable<Brep> breps, System.Double tolerance, System.Boolean manifoldOnly)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Compute the Boolean Union of a set of Breps.",
        "since": "6.0",
        "parameters": [
          {
            "name": "breps",
            "type": "IEnumerable<Brep>",
            "summary": "Breps to union."
          },
          {
            "name": "tolerance",
            "type": "System.Double",
            "summary": "Tolerance to use for union operation."
          },
          {
            "name": "manifoldOnly",
            "type": "System.Boolean",
            "summary": "If true, non-manifold input breps are ignored."
          }
        ],
        "returns": "An array of Brep results or None on failure."
      },
      {
        "signature": "Brep[] CreateBooleanUnion(IEnumerable<Brep> breps, System.Double tolerance)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Compute the Boolean Union of a set of Breps.",
        "since": "5.0",
        "parameters": [
          {
            "name": "breps",
            "type": "IEnumerable<Brep>",
            "summary": "Breps to union."
          },
          {
            "name": "tolerance",
            "type": "System.Double",
            "summary": "Tolerance to use for union operation."
          }
        ],
        "returns": "An array of Brep results or None on failure."
      },
      {
        "signature": "Brep[] CreateChamferSurface(BrepFace face0, Point2d uv0, System.Double radius0, BrepFace face1, Point2d uv1, System.Double radius1, System.Boolean trim, System.Boolean extend, System.Double tolerance, out Brep[] outBreps0, out Brep[] outBreps1)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Creates a ruled surface as a bevel between two input surface edges.",
        "since": "6.0",
        "obsolete": "Use the CreateFilletSurface that takes settings and returns results",
        "parameters": [
          {
            "name": "face0",
            "type": "BrepFace",
            "summary": "First face to chamfer from."
          },
          {
            "name": "uv0",
            "type": "Point2d",
            "summary": "A parameter face0 at the side you want to keep after chamfering."
          },
          {
            "name": "radius0",
            "type": "System.Double",
            "summary": "The distance from the intersection of face0 to the edge of the chamfer."
          },
          {
            "name": "face1",
            "type": "BrepFace",
            "summary": "Second face to chamfer from."
          },
          {
            "name": "uv1",
            "type": "Point2d",
            "summary": "A parameter face1 at the side you want to keep after chamfering."
          },
          {
            "name": "radius1",
            "type": "System.Double",
            "summary": "The distance from the intersection of face1 to the edge of the chamfer."
          },
          {
            "name": "trim",
            "type": "System.Boolean",
            "summary": "If true, the input faces will be trimmed, if false, the input faces will be split."
          },
          {
            "name": "extend",
            "type": "System.Boolean",
            "summary": "If true, then when one input surface is longer than the other, the chamfer surface is extended to the input surface edges."
          },
          {
            "name": "tolerance",
            "type": "System.Double",
            "summary": "The tolerance. When in doubt, use the document's model absolute tolerance."
          },
          {
            "name": "outBreps0",
            "type": "Brep[]",
            "summary": "The trim or split results of the Brep owned by face0."
          },
          {
            "name": "outBreps1",
            "type": "Brep[]",
            "summary": "The trim or split results of the Brep owned by face1."
          }
        ],
        "returns": "Array of Breps if successful."
      },
      {
        "signature": "Brep[] CreateChamferSurface(BrepFace face0, Point2d uv0, System.Double radius0, BrepFace face1, Point2d uv1, System.Double radius1, System.Boolean extend, System.Double tolerance)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Creates a ruled surface as a bevel between two input surface edges.",
        "since": "6.0",
        "deprecated": "9.0",
        "obsolete": "Use the CreateFilletSurface that takes settings and returns results",
        "parameters": [
          {
            "name": "face0",
            "type": "BrepFace",
            "summary": "First face to chamfer from."
          },
          {
            "name": "uv0",
            "type": "Point2d",
            "summary": "A parameter face0 at the side you want to keep after chamfering."
          },
          {
            "name": "radius0",
            "type": "System.Double",
            "summary": "The distance from the intersection of face0 to the edge of the chamfer."
          },
          {
            "name": "face1",
            "type": "BrepFace",
            "summary": "Second face to chamfer from."
          },
          {
            "name": "uv1",
            "type": "Point2d",
            "summary": "A parameter face1 at the side you want to keep after chamfering."
          },
          {
            "name": "radius1",
            "type": "System.Double",
            "summary": "The distance from the intersection of face1 to the edge of the chamfer."
          },
          {
            "name": "extend",
            "type": "System.Boolean",
            "summary": "If true, then when one input surface is longer than the other, the chamfer surface is extended to the input surface edges."
          },
          {
            "name": "tolerance",
            "type": "System.Double",
            "summary": "The tolerance. When in doubt, use the document's model absolute tolerance."
          }
        ],
        "returns": "Array of Breps if successful."
      },
      {
        "signature": "Curve[] CreateContourCurves(Brep brepToContour, Plane sectionPlane)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Constructs the contour curves for a brep, using a slicing plane.",
        "since": "5.0",
        "parameters": [
          {
            "name": "brepToContour",
            "type": "Brep",
            "summary": "A brep or polysurface."
          },
          {
            "name": "sectionPlane",
            "type": "Plane",
            "summary": "A plane."
          }
        ],
        "returns": "An array with intersected curves. This array can be empty."
      },
      {
        "signature": "Curve[] CreateContourCurves(Brep brepToContour, Point3d contourStart, Point3d contourEnd, System.Double interval)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Constructs the contour curves for a brep at a specified interval.",
        "since": "5.0",
        "parameters": [
          {
            "name": "brepToContour",
            "type": "Brep",
            "summary": "A brep or polysurface."
          },
          {
            "name": "contourStart",
            "type": "Point3d",
            "summary": "A point to start."
          },
          {
            "name": "contourEnd",
            "type": "Point3d",
            "summary": "A point to use as the end."
          },
          {
            "name": "interval",
            "type": "System.Double",
            "summary": "The interaxial offset in world units."
          }
        ],
        "returns": "An array with intersected curves. This array can be empty."
      },
      {
        "signature": "Mesh[] CreateCurvatureAnalysisMesh(Brep brep, Rhino.ApplicationSettings.CurvatureAnalysisSettingsState state)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Create an array of analysis meshes for the brep using the specified settings. Meshes aren't set on the brep.",
        "since": "6.0",
        "parameters": [
          {
            "name": "brep",
            "type": "Brep",
            "summary": ""
          },
          {
            "name": "state",
            "type": "Rhino.ApplicationSettings.CurvatureAnalysisSettingsState",
            "summary": "CurvatureAnalysisSettingsState"
          }
        ],
        "returns": "True if meshes were created"
      },
      {
        "signature": "Brep[] CreateDevelopableLoft(Curve crv0, Curve crv1, System.Boolean reverse0, System.Boolean reverse1, System.Int32 density)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Creates a single developable surface between two curves.",
        "since": "6.10",
        "parameters": [
          {
            "name": "crv0",
            "type": "Curve",
            "summary": "The first rail curve."
          },
          {
            "name": "crv1",
            "type": "Curve",
            "summary": "The second rail curve."
          },
          {
            "name": "reverse0",
            "type": "System.Boolean",
            "summary": "Reverse the first rail curve."
          },
          {
            "name": "reverse1",
            "type": "System.Boolean",
            "summary": "Reverse the second rail curve"
          },
          {
            "name": "density",
            "type": "System.Int32",
            "summary": "The number of rulings across the surface."
          }
        ],
        "returns": "The output Breps if successful, otherwise an empty array."
      },
      {
        "signature": "Brep[] CreateDevelopableLoft(NurbsCurve rail0, NurbsCurve rail1, IEnumerable<Point2d> fixedRulings)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Creates a single developable surface between two curves.",
        "since": "6.10",
        "parameters": [
          {
            "name": "rail0",
            "type": "NurbsCurve",
            "summary": "The first rail curve."
          },
          {
            "name": "rail1",
            "type": "NurbsCurve",
            "summary": "The second rail curve."
          },
          {
            "name": "fixedRulings",
            "type": "IEnumerable<Point2d>",
            "summary": "Rulings define lines across the surface that define the straight sections on the developable surface, where rulings[i].X = parameter on first rail curve, and rulings[i].Y = parameter on second rail curve. Note, rulings will be automatically adjusted to minimum twist."
          }
        ],
        "returns": "The output Breps if successful, otherwise an empty array."
      },
      {
        "signature": "Brep CreateEdgeSurface(IEnumerable<Curve> curves)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Constructs a coons patch from 2, 3, or 4 curves.",
        "since": "5.0",
        "parameters": [
          {
            "name": "curves",
            "type": "IEnumerable<Curve>",
            "summary": "A list, an array or any enumerable set of curves."
          }
        ],
        "returns": "resulting brep or None on failure."
      },
      {
        "signature": "Brep[] CreateFilletEdges(Brep brep, IEnumerable<int> edgeIndices, IEnumerable<double> startRadii, IEnumerable<double> endRadii, BlendType blendType, RailType railType, System.Boolean setbackFillets, System.Double tolerance, System.Double angleTolerance)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Fillets, chamfers, or blends the edges of a brep.",
        "since": "8.6",
        "parameters": [
          {
            "name": "brep",
            "type": "Brep",
            "summary": "The brep to fillet, chamfer, or blend edges."
          },
          {
            "name": "edgeIndices",
            "type": "IEnumerable<int>",
            "summary": "An array of one or more edge indices where the fillet, chamfer, or blend will occur."
          },
          {
            "name": "startRadii",
            "type": "IEnumerable<double>",
            "summary": "An array of starting fillet, chamfer, or blend radaii, one for each edge index."
          },
          {
            "name": "endRadii",
            "type": "IEnumerable<double>",
            "summary": "An array of ending fillet, chamfer, or blend radaii, one for each edge index."
          },
          {
            "name": "blendType",
            "type": "BlendType",
            "summary": "The blend type."
          },
          {
            "name": "railType",
            "type": "RailType",
            "summary": "The rail type."
          },
          {
            "name": "setbackFillets",
            "type": "System.Boolean",
            "summary": "Use setback fillets (not used with blendType= <b>BlendType.Chamfer</b> )"
          },
          {
            "name": "tolerance",
            "type": "System.Double",
            "summary": "The tolerance to be used to perform calculations."
          },
          {
            "name": "angleTolerance",
            "type": "System.Double",
            "summary": "Angle tolerance to be used to perform calculations [radians]. If unsure, use Math.PI/180.0 (one degree)"
          }
        ],
        "returns": "Array of Breps if successful."
      },
      {
        "signature": "Brep[] CreateFilletEdges(Brep brep, IEnumerable<int> edgeIndices, IEnumerable<double> startRadii, IEnumerable<double> endRadii, BlendType blendType, RailType railType, System.Double tolerance)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Fillets, chamfers, or blends the edges of a brep.",
        "since": "6.0",
        "deprecated": "9.0",
        "obsolete": "Prefer the version that takes setbackFillets and angleTolerance options.",
        "parameters": [
          {
            "name": "brep",
            "type": "Brep",
            "summary": "The brep to fillet, chamfer, or blend edges."
          },
          {
            "name": "edgeIndices",
            "type": "IEnumerable<int>",
            "summary": "An array of one or more edge indices where the fillet, chamfer, or blend will occur."
          },
          {
            "name": "startRadii",
            "type": "IEnumerable<double>",
            "summary": "An array of starting fillet, chamfer, or blend radaii, one for each edge index."
          },
          {
            "name": "endRadii",
            "type": "IEnumerable<double>",
            "summary": "An array of ending fillet, chamfer, or blend radaii, one for each edge index."
          },
          {
            "name": "blendType",
            "type": "BlendType",
            "summary": "The blend type."
          },
          {
            "name": "railType",
            "type": "RailType",
            "summary": "The rail type."
          },
          {
            "name": "tolerance",
            "type": "System.Double",
            "summary": "The tolerance to be used to perform calculations."
          }
        ],
        "returns": "Array of Breps if successful."
      },
      {
        "signature": "Brep[] CreateFilletEdgesVariableRadius(Brep brep, IEnumerable<int> edgeIndices, IDictionary<int, IList<BrepEdgeFilletDistance>> edgeDistances, BlendType blendType, RailType railType, System.Boolean setbackFillets, System.Double tolerance, System.Double angleTolerance)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Fillets, chamfers, or blends the edges of a brep.",
        "since": "8.6",
        "parameters": [
          {
            "name": "brep",
            "type": "Brep",
            "summary": "The brep to fillet, chamfer, or blend edges."
          },
          {
            "name": "edgeIndices",
            "type": "IEnumerable<int>",
            "summary": "An array of one or more edge indices where the fillet, chamfer, or blend will occur."
          },
          {
            "name": "edgeDistances",
            "type": "IDictionary<int, IList<BrepEdgeFilletDistance>>",
            "summary": "A dictionary with key the edge index on the input brep, and value a list of <b>BrepEdgeFilletDistance</b> items to apply."
          },
          {
            "name": "blendType",
            "type": "BlendType",
            "summary": "The blend type."
          },
          {
            "name": "railType",
            "type": "RailType",
            "summary": "The rail type."
          },
          {
            "name": "setbackFillets",
            "type": "System.Boolean",
            "summary": "Use setback fillets (not used with blendType= <b>BlendType.Chamfer</b> )"
          },
          {
            "name": "tolerance",
            "type": "System.Double",
            "summary": "The tolerance to be used to perform calculations."
          },
          {
            "name": "angleTolerance",
            "type": "System.Double",
            "summary": "Angle tolerance to be used to perform calculations [radians]."
          }
        ],
        "returns": "Array of Breps if successful."
      },
      {
        "signature": "System.Boolean CreateFilletSurface(BrepFace face0, Point2d uv0, BrepFace face1, Point2d uv1, FilletSurfaceSettings settings, out FilletSurfaceResults results)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Create a fillet (rational arcs or non-rational arc approxiation or chamfered surface",
        "since": "9.0",
        "parameters": [
          {
            "name": "face0",
            "type": "BrepFace",
            "summary": "First face to fillet from."
          },
          {
            "name": "uv0",
            "type": "Point2d",
            "summary": "A parameter face0 at the side you want to keep after filleting."
          },
          {
            "name": "face1",
            "type": "BrepFace",
            "summary": "Second face to fillet from."
          },
          {
            "name": "uv1",
            "type": "Point2d",
            "summary": "A parameter face1 at the side you want to keep after filleting."
          },
          {
            "name": "settings",
            "type": "FilletSurfaceSettings",
            "summary": "The settings to use for filleting/chamfering"
          },
          {
            "name": "results",
            "type": "FilletSurfaceResults",
            "summary": "If True is returned, this contains the fillet results."
          }
        ],
        "returns": "True if successful"
      },
      {
        "signature": "Brep[] CreateFilletSurface(BrepFace face0, Point2d uv0, BrepFace face1, Point2d uv1, System.Double radius, System.Boolean trim, System.Boolean extend, System.Double tolerance, out Brep[] outBreps0, out Brep[] outBreps1)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Creates a constant-radius round surface between two surfaces.",
        "since": "6.0",
        "deprecated": "9.0",
        "obsolete": "Use the CreateFilletSurface that takes settings and returns results",
        "parameters": [
          {
            "name": "face0",
            "type": "BrepFace",
            "summary": "First face to fillet from."
          },
          {
            "name": "uv0",
            "type": "Point2d",
            "summary": "A parameter face0 at the side you want to keep after filleting."
          },
          {
            "name": "face1",
            "type": "BrepFace",
            "summary": "Second face to fillet from."
          },
          {
            "name": "uv1",
            "type": "Point2d",
            "summary": "A parameter face1 at the side you want to keep after filleting."
          },
          {
            "name": "radius",
            "type": "System.Double",
            "summary": "The fillet radius."
          },
          {
            "name": "trim",
            "type": "System.Boolean",
            "summary": "If true, the input faces will be trimmed, if false, the input faces will be split."
          },
          {
            "name": "extend",
            "type": "System.Boolean",
            "summary": "If true, then when one input surface is longer than the other, the fillet surface is extended to the input surface edges."
          },
          {
            "name": "tolerance",
            "type": "System.Double",
            "summary": "The tolerance. When in doubt, use the document's model absolute tolerance."
          },
          {
            "name": "outBreps0",
            "type": "Brep[]",
            "summary": "The trim or split results of the Brep owned by face0."
          },
          {
            "name": "outBreps1",
            "type": "Brep[]",
            "summary": "The trim or split results of the Brep owned by face1."
          }
        ],
        "returns": "Array of Breps if successful."
      },
      {
        "signature": "Brep[] CreateFilletSurface(BrepFace face0, Point2d uv0, BrepFace face1, Point2d uv1, System.Double radius, System.Boolean extend, System.Double tolerance)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Creates a constant-radius round surface between two surfaces.",
        "since": "6.0",
        "deprecated": "9.0",
        "obsolete": "Use the CreateFilletSurface that takes settings and returns results",
        "parameters": [
          {
            "name": "face0",
            "type": "BrepFace",
            "summary": "First face to fillet from."
          },
          {
            "name": "uv0",
            "type": "Point2d",
            "summary": "A parameter face0 at the side you want to keep after filleting."
          },
          {
            "name": "face1",
            "type": "BrepFace",
            "summary": "Second face to fillet from."
          },
          {
            "name": "uv1",
            "type": "Point2d",
            "summary": "A parameter face1 at the side you want to keep after filleting."
          },
          {
            "name": "radius",
            "type": "System.Double",
            "summary": "The fillet radius."
          },
          {
            "name": "extend",
            "type": "System.Boolean",
            "summary": "If true, then when one input surface is longer than the other, the fillet surface is extended to the input surface edges."
          },
          {
            "name": "tolerance",
            "type": "System.Double",
            "summary": "The tolerance. When in doubt, use the document's model absolute tolerance."
          }
        ],
        "returns": "Array of Breps if successful."
      },
      {
        "signature": "System.Boolean CreateFilletSurfaceCurve(BrepFace face, Point2d uv, Curve curve, System.Double t, FilletSurfaceSettings settings, out FilletSurfaceResults results)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Create a fillet (rational arcs or non-rational arc approxiation or chamfered surface",
        "since": "9.0",
        "parameters": [
          {
            "name": "face",
            "type": "BrepFace",
            "summary": "Face to fillet from."
          },
          {
            "name": "uv",
            "type": "Point2d",
            "summary": "A parameter on the face at the side you want to keep after filleting."
          },
          {
            "name": "curve",
            "type": "Curve",
            "summary": "Curve to fillet to."
          },
          {
            "name": "t",
            "type": "System.Double",
            "summary": "A parameter on the curve close to the point on the face."
          },
          {
            "name": "settings",
            "type": "FilletSurfaceSettings",
            "summary": "The settings to use for filleting"
          },
          {
            "name": "results",
            "type": "FilletSurfaceResults",
            "summary": "If True is returned, this contains the fillet results."
          }
        ],
        "returns": "True if successful"
      },
      {
        "signature": "Brep CreateFromBox(BoundingBox box)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Constructs new brep that matches a bounding box.",
        "since": "5.0",
        "parameters": [
          {
            "name": "box",
            "type": "BoundingBox",
            "summary": "A box to use for creation."
          }
        ],
        "returns": "A new brep; or None on failure."
      },
      {
        "signature": "Brep CreateFromBox(Box box)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Constructs new brep that matches an aligned box.",
        "since": "5.0",
        "parameters": [
          {
            "name": "box",
            "type": "Box",
            "summary": "Box to match."
          }
        ],
        "returns": "A Brep with 6 faces that is similar to the Box."
      },
      {
        "signature": "Brep CreateFromBox(IEnumerable<Point3d> corners)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Constructs new brep from 8 corner points.",
        "since": "5.0",
        "parameters": [
          {
            "name": "corners",
            "type": "IEnumerable<Point3d>",
            "summary": "8 points defining the box corners arranged as the vN labels indicate. <pre>v7_______e6____v6  \n|\\             |\\  \n| e7           | e5  \n|  \\ ______e4_____\\  \ne11 v4         |   v5  \n|   |        e10   |  \n|   |          |   |  \nv3--|---e2----v2   e9  \n \\  e8          \\  |  \n e3 |            e1|  \n   \\|             \\|  \n    v0_____e0______v1</pre>"
          }
        ],
        "returns": "A new brep, or None on error."
      },
      {
        "signature": "Brep CreateFromCone(Cone cone, System.Boolean capBottom)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Constructs a Brep representation of the cone with a single face for the cone, an edge along the cone seam, and vertices at the base and apex ends of this seam edge. The optional cap is a single face with one circular edge starting and ending at the base vertex.",
        "since": "5.0",
        "parameters": [
          {
            "name": "cone",
            "type": "Cone",
            "summary": "A cone value."
          },
          {
            "name": "capBottom",
            "type": "System.Boolean",
            "summary": "if True the base of the cone should be capped."
          }
        ],
        "returns": "A Brep if successful, None on error."
      },
      {
        "signature": "Brep CreateFromCornerPoints(Point3d corner1, Point3d corner2, Point3d corner3, Point3d corner4, System.Double tolerance)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Makes a Brep with one face from four corner points.",
        "since": "5.0",
        "parameters": [
          {
            "name": "corner1",
            "type": "Point3d",
            "summary": "A first corner."
          },
          {
            "name": "corner2",
            "type": "Point3d",
            "summary": "A second corner."
          },
          {
            "name": "corner3",
            "type": "Point3d",
            "summary": "A third corner."
          },
          {
            "name": "corner4",
            "type": "Point3d",
            "summary": "A fourth corner."
          },
          {
            "name": "tolerance",
            "type": "System.Double",
            "summary": "Minimum edge length allowed before collapsing the side into a singularity."
          }
        ],
        "returns": "A boundary representation, or None on error."
      },
      {
        "signature": "Brep CreateFromCornerPoints(Point3d corner1, Point3d corner2, Point3d corner3, System.Double tolerance)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Makes a Brep with one face from three corner points.",
        "since": "5.0",
        "parameters": [
          {
            "name": "corner1",
            "type": "Point3d",
            "summary": "A first corner."
          },
          {
            "name": "corner2",
            "type": "Point3d",
            "summary": "A second corner."
          },
          {
            "name": "corner3",
            "type": "Point3d",
            "summary": "A third corner."
          },
          {
            "name": "tolerance",
            "type": "System.Double",
            "summary": "Minimum edge length allowed before collapsing the side into a singularity."
          }
        ],
        "returns": "A boundary representation, or None on error."
      },
      {
        "signature": "Brep CreateFromCylinder(Cylinder cylinder, System.Boolean capBottom, System.Boolean capTop)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Constructs a Brep definition of a cylinder.",
        "since": "5.0",
        "parameters": [
          {
            "name": "cylinder",
            "type": "Cylinder",
            "summary": "cylinder.IsFinite() must be true."
          },
          {
            "name": "capBottom",
            "type": "System.Boolean",
            "summary": "if True end at cylinder.m_height[0] should be capped."
          },
          {
            "name": "capTop",
            "type": "System.Boolean",
            "summary": "if True end at cylinder.m_height[1] should be capped."
          }
        ],
        "returns": "A Brep representation of the cylinder with a single face for the cylinder, an edge along the cylinder seam, and vertices at the bottom and top ends of this seam edge. The optional bottom/top caps are single faces with one circular edge starting and ending at the bottom/top vertex."
      },
      {
        "signature": "Brep CreateFromJoinedEdges(Brep brep0, System.Int32 edgeIndex0, Brep brep1, System.Int32 edgeIndex1, System.Double joinTolerance)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Joins two naked edges, or edges that are coincident or close together, from two Breps.",
        "since": "6.0",
        "parameters": [
          {
            "name": "brep0",
            "type": "Brep",
            "summary": "The first Brep."
          },
          {
            "name": "edgeIndex0",
            "type": "System.Int32",
            "summary": "The edge index on the first Brep."
          },
          {
            "name": "brep1",
            "type": "Brep",
            "summary": "The second Brep."
          },
          {
            "name": "edgeIndex1",
            "type": "System.Int32",
            "summary": "The edge index on the second Brep."
          },
          {
            "name": "joinTolerance",
            "type": "System.Double",
            "summary": "The join tolerance."
          }
        ],
        "returns": "The resulting Brep if successful, None on failure."
      },
      {
        "signature": "Brep[] CreateFromLoft(IEnumerable<Curve> curves, Point3d start, Point3d end, LoftType loftType, System.Boolean closed, System.Double angleTol)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Constructs one or more Breps by lofting through a set of curves.",
        "since": "8.21",
        "parameters": [
          {
            "name": "curves",
            "type": "IEnumerable<Curve>",
            "summary": "The curves to loft through. This function will not perform any curve sorting. You must pass in curves in the order you want them lofted. This function will not adjust the directions of open curves. Use Curve.DoDirectionsMatch and Curve.Reverse to adjust the directions of open curves. This function will not adjust the seams of closed curves. Use Curve.ChangeClosedCurveSeam to adjust the seam of closed curves."
          },
          {
            "name": "start",
            "type": "Point3d",
            "summary": "Optional starting point of loft. Use Point3d.Unset if you do not want to include a start point."
          },
          {
            "name": "end",
            "type": "Point3d",
            "summary": "Optional ending point of loft. Use Point3d.Unset if you do not want to include an end point."
          },
          {
            "name": "loftType",
            "type": "LoftType",
            "summary": "type of loft to perform."
          },
          {
            "name": "closed",
            "type": "System.Boolean",
            "summary": "True if the last curve in this loft should be connected back to the first one."
          },
          {
            "name": "angleTol",
            "type": "System.Double",
            "summary": "angle tolerance, in radians, used to perform the loft."
          }
        ],
        "returns": "Constructs a closed surface, continuing the surface past the last curve around to the first curve. Available when you have selected three shape curves."
      },
      {
        "signature": "Brep[] CreateFromLoft(IEnumerable<Curve> curves, Point3d start, Point3d end, LoftType loftType, System.Boolean closed)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Constructs one or more Breps by lofting through a set of curves.",
        "since": "5.0",
        "parameters": [
          {
            "name": "curves",
            "type": "IEnumerable<Curve>",
            "summary": "The curves to loft through. This function will not perform any curve sorting. You must pass in curves in the order you want them lofted. This function will not adjust the directions of open curves. Use Curve.DoDirectionsMatch and Curve.Reverse to adjust the directions of open curves. This function will not adjust the seams of closed curves. Use Curve.ChangeClosedCurveSeam to adjust the seam of closed curves."
          },
          {
            "name": "start",
            "type": "Point3d",
            "summary": "Optional starting point of loft. Use Point3d.Unset if you do not want to include a start point."
          },
          {
            "name": "end",
            "type": "Point3d",
            "summary": "Optional ending point of loft. Use Point3d.Unset if you do not want to include an end point."
          },
          {
            "name": "loftType",
            "type": "LoftType",
            "summary": "type of loft to perform."
          },
          {
            "name": "closed",
            "type": "System.Boolean",
            "summary": "True if the last curve in this loft should be connected back to the first one."
          }
        ],
        "returns": "Constructs a closed surface, continuing the surface past the last curve around to the first curve. Available when you have selected three shape curves."
      },
      {
        "signature": "Brep[] CreateFromLoft(IEnumerable<Curve> curves, Point3d start, Point3d end, System.Boolean StartTangent, System.Boolean EndTangent, BrepTrim StartTrim, BrepTrim EndTrim, LoftType loftType, System.Boolean closed)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Constructs one or more Breps by lofting through a set of curves, optionally matching start and end tangents of surfaces when first and/or last loft curves are surface edges",
        "since": "7.0",
        "parameters": [
          {
            "name": "curves",
            "type": "IEnumerable<Curve>",
            "summary": "The curves to loft through. This function will not perform any curve sorting. You must pass in curves in the order you want them lofted. This function will not adjust the directions of open curves. Use Curve.DoDirectionsMatch and Curve.Reverse to adjust the directions of open curves. This function will not adjust the seams of closed curves. Use Curve.ChangeClosedCurveSeam to adjust the seam of closed curves."
          },
          {
            "name": "start",
            "type": "Point3d",
            "summary": "Optional starting point of loft. Use Point3d.Unset if you do not want to include a start point. \"start\" and \"StartTangent\" cannot both be true."
          },
          {
            "name": "end",
            "type": "Point3d",
            "summary": "Optional ending point of loft. Use Point3d.Unset if you do not want to include an end point. \"end and \"EndTangent\" cannot both be true."
          },
          {
            "name": "StartTangent",
            "type": "System.Boolean",
            "summary": "If StartTangent is True and the first loft curve is a surface edge, the loft will match the tangent of the surface behind that edge."
          },
          {
            "name": "EndTangent",
            "type": "System.Boolean",
            "summary": "If EndTangent is True and the first loft curve is a surface edge, the loft will match the tangent of the surface behind that edge."
          },
          {
            "name": "StartTrim",
            "type": "BrepTrim",
            "summary": "BrepTrim from the surface edge where start tangent is to be matched"
          },
          {
            "name": "EndTrim",
            "type": "BrepTrim",
            "summary": "BrepTrim from the surface edge where end tangent is to be matched"
          },
          {
            "name": "loftType",
            "type": "LoftType",
            "summary": "type of loft to perform."
          },
          {
            "name": "closed",
            "type": "System.Boolean",
            "summary": "True if the last curve in this loft should be connected back to the first one."
          }
        ],
        "returns": "Constructs a closed surface, continuing the surface past the last curve around to the first curve. Available when you have selected three shape curves."
      },
      {
        "signature": "Brep[] CreateFromLoftRebuild(IEnumerable<Curve> curves, Point3d start, Point3d end, LoftType loftType, System.Boolean closed, System.Double angleTol, System.Int32 rebuildPointCount)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Constructs one or more Breps by lofting through a set of curves. Input for the loft is simplified by rebuilding to a specified number of control points.",
        "since": "8.21",
        "parameters": [
          {
            "name": "curves",
            "type": "IEnumerable<Curve>",
            "summary": "The curves to loft through. This function will not perform any curve sorting. You must pass in curves in the order you want them lofted. This function will not adjust the directions of open curves. Use Curve.DoDirectionsMatch and Curve.Reverse to adjust the directions of open curves. This function will not adjust the seams of closed curves. Use Curve.ChangeClosedCurveSeam to adjust the seam of closed curves."
          },
          {
            "name": "start",
            "type": "Point3d",
            "summary": "Optional starting point of loft. Use Point3d.Unset if you do not want to include a start point."
          },
          {
            "name": "end",
            "type": "Point3d",
            "summary": "Optional ending point of lost. Use Point3d.Unset if you do not want to include an end point."
          },
          {
            "name": "loftType",
            "type": "LoftType",
            "summary": "type of loft to perform."
          },
          {
            "name": "closed",
            "type": "System.Boolean",
            "summary": "True if the last curve in this loft should be connected back to the first one."
          },
          {
            "name": "angleTol",
            "type": "System.Double",
            "summary": "angle tolerance, in radians, used to perform the loft."
          },
          {
            "name": "rebuildPointCount",
            "type": "System.Int32",
            "summary": "A number of points to use while rebuilding the curves. 0 leaves turns this parameter off."
          }
        ],
        "returns": "Constructs a closed surface, continuing the surface past the last curve around to the first curve. Available when you have selected three shape curves."
      },
      {
        "signature": "Brep[] CreateFromLoftRebuild(IEnumerable<Curve> curves, Point3d start, Point3d end, LoftType loftType, System.Boolean closed, System.Int32 rebuildPointCount)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Constructs one or more Breps by lofting through a set of curves. Input for the loft is simplified by rebuilding to a specified number of control points.",
        "since": "5.0",
        "parameters": [
          {
            "name": "curves",
            "type": "IEnumerable<Curve>",
            "summary": "The curves to loft through. This function will not perform any curve sorting. You must pass in curves in the order you want them lofted. This function will not adjust the directions of open curves. Use Curve.DoDirectionsMatch and Curve.Reverse to adjust the directions of open curves. This function will not adjust the seams of closed curves. Use Curve.ChangeClosedCurveSeam to adjust the seam of closed curves."
          },
          {
            "name": "start",
            "type": "Point3d",
            "summary": "Optional starting point of loft. Use Point3d.Unset if you do not want to include a start point."
          },
          {
            "name": "end",
            "type": "Point3d",
            "summary": "Optional ending point of lost. Use Point3d.Unset if you do not want to include an end point."
          },
          {
            "name": "loftType",
            "type": "LoftType",
            "summary": "type of loft to perform."
          },
          {
            "name": "closed",
            "type": "System.Boolean",
            "summary": "True if the last curve in this loft should be connected back to the first one."
          },
          {
            "name": "rebuildPointCount",
            "type": "System.Int32",
            "summary": "A number of points to use while rebuilding the curves. 0 leaves turns this parameter off."
          }
        ],
        "returns": "Constructs a closed surface, continuing the surface past the last curve around to the first curve. Available when you have selected three shape curves."
      },
      {
        "signature": "Brep[] CreateFromLoftRefit(IEnumerable<Curve> curves, Point3d start, Point3d end, LoftType loftType, System.Boolean closed, System.Double angleTol, System.Double refitTolerance)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Constructs one or more Breps by lofting through a set of curves. Input for the loft is simplified by refitting to a specified tolerance.",
        "since": "8.21",
        "parameters": [
          {
            "name": "curves",
            "type": "IEnumerable<Curve>",
            "summary": "The curves to loft through. This function will not perform any curve sorting. You must pass in curves in the order you want them lofted. This function will not adjust the directions of open curves. Use Curve.DoDirectionsMatch and Curve.Reverse to adjust the directions of open curves. This function will not adjust the seams of closed curves. Use Curve.ChangeClosedCurveSeam to adjust the seam of closed curves."
          },
          {
            "name": "start",
            "type": "Point3d",
            "summary": "Optional starting point of loft. Use Point3d.Unset if you do not want to include a start point."
          },
          {
            "name": "end",
            "type": "Point3d",
            "summary": "Optional ending point of lost. Use Point3d.Unset if you do not want to include an end point."
          },
          {
            "name": "loftType",
            "type": "LoftType",
            "summary": "type of loft to perform."
          },
          {
            "name": "closed",
            "type": "System.Boolean",
            "summary": "True if the last curve in this loft should be connected back to the first one."
          },
          {
            "name": "angleTol",
            "type": "System.Double",
            "summary": "angle tolerance, in radians, used to perform the loft."
          },
          {
            "name": "refitTolerance",
            "type": "System.Double",
            "summary": "A distance to use in refitting, or 0 if you want to turn this parameter off."
          }
        ],
        "returns": "Constructs a closed surface, continuing the surface past the last curve around to the first curve. Available when you have selected three shape curves."
      },
      {
        "signature": "Brep[] CreateFromLoftRefit(IEnumerable<Curve> curves, Point3d start, Point3d end, LoftType loftType, System.Boolean closed, System.Double refitTolerance)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Constructs one or more Breps by lofting through a set of curves. Input for the loft is simplified by refitting to a specified tolerance.",
        "since": "5.0",
        "parameters": [
          {
            "name": "curves",
            "type": "IEnumerable<Curve>",
            "summary": "The curves to loft through. This function will not perform any curve sorting. You must pass in curves in the order you want them lofted. This function will not adjust the directions of open curves. Use Curve.DoDirectionsMatch and Curve.Reverse to adjust the directions of open curves. This function will not adjust the seams of closed curves. Use Curve.ChangeClosedCurveSeam to adjust the seam of closed curves."
          },
          {
            "name": "start",
            "type": "Point3d",
            "summary": "Optional starting point of loft. Use Point3d.Unset if you do not want to include a start point."
          },
          {
            "name": "end",
            "type": "Point3d",
            "summary": "Optional ending point of lost. Use Point3d.Unset if you do not want to include an end point."
          },
          {
            "name": "loftType",
            "type": "LoftType",
            "summary": "type of loft to perform."
          },
          {
            "name": "closed",
            "type": "System.Boolean",
            "summary": "True if the last curve in this loft should be connected back to the first one."
          },
          {
            "name": "refitTolerance",
            "type": "System.Double",
            "summary": "A distance to use in refitting, or 0 if you want to turn this parameter off."
          }
        ],
        "returns": "Constructs a closed surface, continuing the surface past the last curve around to the first curve. Available when you have selected three shape curves."
      },
      {
        "signature": "System.Boolean CreateFromMatch(BrepEdge edge, Curve targetCurve, MatchSrfSettings settings, out Brep matched, out Brep target)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Match an edge to the target curve using the settings provided",
        "since": "8.21",
        "parameters": [
          {
            "name": "edge",
            "type": "BrepEdge",
            "summary": "The edge to match. This need to be an untrimmed surface edge."
          },
          {
            "name": "targetCurve",
            "type": "Curve",
            "summary": "The curve to match to. This needs to be a <b>BrepEdge</b> if tangent or curvature matching is requested."
          },
          {
            "name": "settings",
            "type": "MatchSrfSettings",
            "summary": "The settings used for matching"
          },
          {
            "name": "matched",
            "type": "Brep",
            "summary": "If successful, this contains the matched brep"
          },
          {
            "name": "target",
            "type": "Brep",
            "summary": "If successful and <b>MatchSrfSettings.Average</b> is true, this contains the changed target brep."
          }
        ]
      },
      {
        "signature": "System.Boolean CreateFromMatch(BrepEdge edge, IEnumerable<Curve> targetCurves, MatchSrfSettings settings, out Brep matched, out Brep target)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Match an edge to the target curves using the settings provided",
        "since": "8.21",
        "parameters": [
          {
            "name": "edge",
            "type": "BrepEdge",
            "summary": "The edge to match. This need to be an untrimmed surface edge."
          },
          {
            "name": "targetCurves",
            "type": "IEnumerable<Curve>",
            "summary": "The curves to match to. These need to be <b>BrepEdge</b> if tangent or curvature matching is requested."
          },
          {
            "name": "settings",
            "type": "MatchSrfSettings",
            "summary": "The settings used for matching"
          },
          {
            "name": "matched",
            "type": "Brep",
            "summary": "If successful, this contains the matched brep"
          },
          {
            "name": "target",
            "type": "Brep",
            "summary": "If successful and <b>MatchSrfSettings.Average</b> is true, this contains the changed target brep."
          }
        ]
      },
      {
        "signature": "Brep CreateFromMesh(Mesh mesh, System.Boolean trimmedTriangles)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Create a brep representation of a mesh",
        "since": "5.1",
        "parameters": [
          {
            "name": "mesh",
            "type": "Mesh",
            "summary": ""
          },
          {
            "name": "trimmedTriangles",
            "type": "System.Boolean",
            "summary": "if true, triangles in the mesh will be represented by trimmed planes in the brep. If false, triangles in the mesh will be represented by untrimmed singular bilinear NURBS surfaces in the brep."
          }
        ]
      },
      {
        "signature": "Brep CreateFromOffsetFace(BrepFace face, System.Double offsetDistance, System.Double offsetTolerance, System.Boolean bothSides, System.Boolean createSolid)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Offsets a face including trim information to create a new brep.",
        "since": "5.0",
        "parameters": [
          {
            "name": "face",
            "type": "BrepFace",
            "summary": "the face to offset."
          },
          {
            "name": "offsetDistance",
            "type": "System.Double",
            "summary": "An offset distance."
          },
          {
            "name": "offsetTolerance",
            "type": "System.Double",
            "summary": "Use 0.0 to make a loose offset. Otherwise, the document's absolute tolerance is usually sufficient."
          },
          {
            "name": "bothSides",
            "type": "System.Boolean",
            "summary": "When true, offset to both sides of the input face."
          },
          {
            "name": "createSolid",
            "type": "System.Boolean",
            "summary": "When true, make a solid object."
          }
        ],
        "returns": "A new brep if successful. The brep can be disjoint if bothSides is True and createSolid is false, or if createSolid is True and connecting the offsets with side surfaces fails. None if unsuccessful."
      },
      {
        "signature": "Brep CreateFromRevSurface(RevSurface surface, System.Boolean capStart, System.Boolean capEnd)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Constructs a brep form of a surface of revolution.",
        "since": "5.0",
        "parameters": [
          {
            "name": "surface",
            "type": "RevSurface",
            "summary": "The surface of revolution."
          },
          {
            "name": "capStart",
            "type": "System.Boolean",
            "summary": "if true, the start of the revolute is not on the axis of revolution, and the surface of revolution is closed, then a circular cap will be added to close of the hole at the start of the revolute."
          },
          {
            "name": "capEnd",
            "type": "System.Boolean",
            "summary": "if true, the end of the revolute is not on the axis of revolution, and the surface of revolution is closed, then a circular cap will be added to close of the hole at the end of the revolute."
          }
        ],
        "returns": "A Brep if successful, None on error."
      },
      {
        "signature": "Brep CreateFromSphere(Sphere sphere)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Constructs a Brep definition of a sphere.",
        "since": "5.0",
        "parameters": [
          {
            "name": "sphere",
            "type": "Sphere",
            "summary": "The input sphere provides the orienting plane and radius."
          }
        ],
        "returns": "A Brep if successful, None on error."
      },
      {
        "signature": "Brep CreateFromSurface(Surface surface)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Constructs a Brep from a surface. The resulting Brep has an outer boundary made from four trims. The trims are ordered so that they run along the south, east, north, and then west side of the surface's parameter space.",
        "since": "5.0",
        "parameters": [
          {
            "name": "surface",
            "type": "Surface",
            "summary": "A surface to convert."
          }
        ],
        "returns": "Resulting brep or None on failure."
      },
      {
        "signature": "Brep[] CreateFromSweep(Curve rail1, Curve rail2, Curve shape, System.Boolean closed, System.Double tolerance)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "General 2 rail sweep. If you are not producing the sweep results that you are after, then use the SweepTwoRail class with options to generate the swept geometry.",
        "since": "5.0",
        "parameters": [
          {
            "name": "rail1",
            "type": "Curve",
            "summary": "Rail to sweep shapes along"
          },
          {
            "name": "rail2",
            "type": "Curve",
            "summary": "Rail to sweep shapes along"
          },
          {
            "name": "shape",
            "type": "Curve",
            "summary": "Shape curve"
          },
          {
            "name": "closed",
            "type": "System.Boolean",
            "summary": "Only matters if shape is closed"
          },
          {
            "name": "tolerance",
            "type": "System.Double",
            "summary": "Tolerance for fitting surface and rails"
          }
        ],
        "returns": "Array of Brep sweep results"
      },
      {
        "signature": "Brep[] CreateFromSweep(Curve rail1, Curve rail2, IEnumerable<Curve> shapes, Point3d start, Point3d end, System.Boolean closed, System.Double tolerance, SweepRebuild rebuild, System.Int32 rebuildPointCount, System.Double refitTolerance, System.Boolean preserveHeight, System.Boolean autoAdjust)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Sweep2 function that fits a surface through profile curves that define the surface cross-sections and two curves that defines the surface edges.",
        "since": "7.19",
        "parameters": [
          {
            "name": "rail1",
            "type": "Curve",
            "summary": "Rail to sweep shapes along"
          },
          {
            "name": "rail2",
            "type": "Curve",
            "summary": "Rail to sweep shapes along"
          },
          {
            "name": "shapes",
            "type": "IEnumerable<Curve>",
            "summary": "Shape curves"
          },
          {
            "name": "start",
            "type": "Point3d",
            "summary": "Optional starting point of sweep. Use Point3d.Unset if you do not want to include a start point."
          },
          {
            "name": "end",
            "type": "Point3d",
            "summary": "Optional ending point of sweep. Use Point3d.Unset if you do not want to include an end point."
          },
          {
            "name": "closed",
            "type": "System.Boolean",
            "summary": "Only matters if shapes are closed."
          },
          {
            "name": "tolerance",
            "type": "System.Double",
            "summary": "Tolerance for fitting surface and rails."
          },
          {
            "name": "rebuild",
            "type": "SweepRebuild",
            "summary": "The rebuild style."
          },
          {
            "name": "rebuildPointCount",
            "type": "System.Int32",
            "summary": "If rebuild == SweepRebuild.Rebuild, the number of points. Otherwise specify 0."
          },
          {
            "name": "refitTolerance",
            "type": "System.Double",
            "summary": "If rebuild == SweepRebuild.Refit, the refit tolerance. Otherwise, specify 0.0"
          },
          {
            "name": "preserveHeight",
            "type": "System.Boolean",
            "summary": "Removes the association between the height scaling from the width scaling"
          },
          {
            "name": "autoAdjust",
            "type": "System.Boolean",
            "summary": "Set to True to have shape curves adjusted, sorted, and matched automatically. This will produce results comparable to Rhino's Sweep2 command. Set to False to not have shape curves adjusted, sorted, and matched automatically."
          }
        ],
        "returns": "Array of Brep sweep results"
      },
      {
        "signature": "Brep[] CreateFromSweep(Curve rail1, Curve rail2, IEnumerable<Curve> shapes, Point3d start, Point3d end, System.Boolean closed, System.Double tolerance, SweepRebuild rebuild, System.Int32 rebuildPointCount, System.Double refitTolerance, System.Boolean preserveHeight)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Sweep2 function that fits a surface through profile curves that define the surface cross-sections and two curves that defines the surface edges.",
        "since": "6.16",
        "parameters": [
          {
            "name": "rail1",
            "type": "Curve",
            "summary": "Rail to sweep shapes along"
          },
          {
            "name": "rail2",
            "type": "Curve",
            "summary": "Rail to sweep shapes along"
          },
          {
            "name": "shapes",
            "type": "IEnumerable<Curve>",
            "summary": "Shape curves"
          },
          {
            "name": "start",
            "type": "Point3d",
            "summary": "Optional starting point of sweep. Use Point3d.Unset if you do not want to include a start point."
          },
          {
            "name": "end",
            "type": "Point3d",
            "summary": "Optional ending point of sweep. Use Point3d.Unset if you do not want to include an end point."
          },
          {
            "name": "closed",
            "type": "System.Boolean",
            "summary": "Only matters if shapes are closed."
          },
          {
            "name": "tolerance",
            "type": "System.Double",
            "summary": "Tolerance for fitting surface and rails."
          },
          {
            "name": "rebuild",
            "type": "SweepRebuild",
            "summary": "The rebuild style."
          },
          {
            "name": "rebuildPointCount",
            "type": "System.Int32",
            "summary": "If rebuild == SweepRebuild.Rebuild, the number of points. Otherwise specify 0."
          },
          {
            "name": "refitTolerance",
            "type": "System.Double",
            "summary": "If rebuild == SweepRebuild.Refit, the refit tolerance. Otherwise, specify 0.0"
          },
          {
            "name": "preserveHeight",
            "type": "System.Boolean",
            "summary": "Removes the association between the height scaling from the width scaling"
          }
        ],
        "returns": "Array of Brep sweep results"
      },
      {
        "signature": "Brep[] CreateFromSweep(Curve rail1, Curve rail2, IEnumerable<Curve> shapes, System.Boolean closed, System.Double tolerance)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "General 2 rail sweep. If you are not producing the sweep results that you are after, then use the SweepTwoRail class with options to generate the swept geometry.",
        "since": "5.0",
        "parameters": [
          {
            "name": "rail1",
            "type": "Curve",
            "summary": "Rail to sweep shapes along"
          },
          {
            "name": "rail2",
            "type": "Curve",
            "summary": "Rail to sweep shapes along"
          },
          {
            "name": "shapes",
            "type": "IEnumerable<Curve>",
            "summary": "Shape curves"
          },
          {
            "name": "closed",
            "type": "System.Boolean",
            "summary": "Only matters if shapes are closed"
          },
          {
            "name": "tolerance",
            "type": "System.Double",
            "summary": "Tolerance for fitting surface and rails"
          }
        ],
        "returns": "Array of Brep sweep results"
      },
      {
        "signature": "Brep[] CreateFromSweep(Curve rail, Curve shape, System.Boolean closed, System.Double tolerance)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Sweep1 function that fits a surface through a profile curve that define the surface cross-sections and one curve that defines a surface edge.",
        "since": "5.0",
    "remarks": "Rhino's Sweep1 command uses this when the \"refit rail\" option is enabled (true).",
        "parameters": [
          {
            "name": "rail",
            "type": "Curve",
            "summary": "Rail to sweep shapes along."
          },
          {
            "name": "shape",
            "type": "Curve",
            "summary": "Shape curve."
          },
          {
            "name": "closed",
            "type": "System.Boolean",
            "summary": "Only matters if shape is closed."
          },
          {
            "name": "tolerance",
            "type": "System.Double",
            "summary": "Tolerance for fitting surface and rails."
          }
        ],
        "returns": "Array of Brep sweep results."
      },
      {
        "signature": "Brep[] CreateFromSweep(Curve rail, IEnumerable<Curve> shapes, Point3d startPoint, Point3d endPoint, SweepFrame frameType, Vector3d roadlikeNormal, System.Boolean closed, SweepBlend blendType, SweepMiter miterType, System.Double tolerance, SweepRebuild rebuildType, System.Int32 rebuildPointCount, System.Double refitTolerance, System.Boolean refitRail)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Sweep1 function that fits a surface through a series of profile curves that define the surface cross-sections and one curve that defines a surface edge. Unlike other CreateFromSweep and CreateFromSweepSegmented overrides, this method: - Matches shape curve directions and (for closed shapes) seam points before sweeping, which prevents twisting. - Detects when the inputs qualify for a \"simple sweep\" and creates a simpler surface in this case. - Lets the caller pick between the refit - rail and segmented sweep paths. - Splits the resulting Breps at fully multiple knots.",
        "since": "9.0",
    "remarks": "This version mimics what Rhino's Sweep1 command does.",
        "parameters": [
          {
            "name": "rail",
            "type": "Curve",
            "summary": "Rail to sweep shapes along."
          },
          {
            "name": "shapes",
            "type": "IEnumerable<Curve>",
            "summary": "Shape curves."
          },
          {
            "name": "startPoint",
            "type": "Point3d",
            "summary": "Optional starting point of sweep. Use Point3d.Unset if you do not want to include a start point."
          },
          {
            "name": "endPoint",
            "type": "Point3d",
            "summary": "Optional ending point of sweep. Use Point3d.Unset if you do not want to include an end point."
          },
          {
            "name": "frameType",
            "type": "SweepFrame",
            "summary": "The frame type."
          },
          {
            "name": "roadlikeNormal",
            "type": "Vector3d",
            "summary": "The roadlike normal directoion. Use Vector3d.Unset if the frame type is not set to roadlike."
          },
          {
            "name": "closed",
            "type": "System.Boolean",
            "summary": "Only matters if shapes are closed."
          },
          {
            "name": "blendType",
            "type": "SweepBlend",
            "summary": "The shape blending type."
          },
          {
            "name": "miterType",
            "type": "SweepMiter",
            "summary": "The mitering type."
          },
          {
            "name": "tolerance",
            "type": "System.Double",
            "summary": ""
          },
          {
            "name": "rebuildType",
            "type": "SweepRebuild",
            "summary": "The rebuild style."
          },
          {
            "name": "rebuildPointCount",
            "type": "System.Int32",
            "summary": "If rebuild == SweepRebuild.Rebuild, the number of points. Otherwise specify 0."
          },
          {
            "name": "refitTolerance",
            "type": "System.Double",
            "summary": "If rebuild == SweepRebuild.Refit, the refit tolerance. Otherwise, specify 0.0."
          },
          {
            "name": "refitRail",
            "type": "System.Boolean",
            "summary": "False = segmented sweep, True = refit-rail sweep."
          }
        ],
        "returns": "Array of Brep sweep results."
      },
      {
        "signature": "Brep[] CreateFromSweep(Curve rail, IEnumerable<Curve> shapes, Point3d startPoint, Point3d endPoint, SweepFrame frameType, Vector3d roadlikeNormal, System.Boolean closed, SweepBlend blendType, SweepMiter miterType, System.Double tolerance, SweepRebuild rebuildType, System.Int32 rebuildPointCount, System.Double refitTolerance)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Sweep1 function that fits a surface through a series of profile curves that define the surface cross-sections and one curve that defines a surface edge.",
        "since": "7.0",
    "remarks": "Rhino's Sweep1 command uses this when the \"refit rail\" option is enabled (true).",
        "parameters": [
          {
            "name": "rail",
            "type": "Curve",
            "summary": "Rail to sweep shapes along."
          },
          {
            "name": "shapes",
            "type": "IEnumerable<Curve>",
            "summary": "Shape curves."
          },
          {
            "name": "startPoint",
            "type": "Point3d",
            "summary": "Optional starting point of sweep. Use Point3d.Unset if you do not want to include a start point."
          },
          {
            "name": "endPoint",
            "type": "Point3d",
            "summary": "Optional ending point of sweep. Use Point3d.Unset if you do not want to include an end point."
          },
          {
            "name": "frameType",
            "type": "SweepFrame",
            "summary": "The frame type."
          },
          {
            "name": "roadlikeNormal",
            "type": "Vector3d",
            "summary": "The roadlike normal directoion. Use Vector3d.Unset if the frame type is not set to roadlike."
          },
          {
            "name": "closed",
            "type": "System.Boolean",
            "summary": "Only matters if shapes are closed."
          },
          {
            "name": "blendType",
            "type": "SweepBlend",
            "summary": "The shape blending type."
          },
          {
            "name": "miterType",
            "type": "SweepMiter",
            "summary": "The mitering type."
          },
          {
            "name": "tolerance",
            "type": "System.Double",
            "summary": ""
          },
          {
            "name": "rebuildType",
            "type": "SweepRebuild",
            "summary": "The rebuild style."
          },
          {
            "name": "rebuildPointCount",
            "type": "System.Int32",
            "summary": "If rebuild == SweepRebuild.Rebuild, the number of points. Otherwise specify 0."
          },
          {
            "name": "refitTolerance",
            "type": "System.Double",
            "summary": "If rebuild == SweepRebuild.Refit, the refit tolerance. Otherwise, specify 0.0"
          }
        ],
        "returns": "Array of Brep sweep results."
      },
      {
        "signature": "Brep[] CreateFromSweep(Curve rail, IEnumerable<Curve> shapes, System.Boolean closed, System.Double tolerance)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Sweep1 function that fits a surface through profile curves that define the surface cross-sections and one curve that defines a surface edge.",
        "since": "5.0",
    "remarks": "Rhino's Sweep1 command uses this when the \"refit rail\" option is enabled (true).",
        "parameters": [
          {
            "name": "rail",
            "type": "Curve",
            "summary": "Rail to sweep shapes along."
          },
          {
            "name": "shapes",
            "type": "IEnumerable<Curve>",
            "summary": "Shape curves."
          },
          {
            "name": "closed",
            "type": "System.Boolean",
            "summary": "Only matters if shapes are closed."
          },
          {
            "name": "tolerance",
            "type": "System.Double",
            "summary": "Tolerance for fitting surface and rails."
          }
        ],
        "returns": "Array of Brep sweep results."
      },
      {
        "signature": "Brep[] CreateFromSweepInParts(Curve rail1, Curve rail2, IEnumerable<Curve> shapes, IEnumerable<Point2d> rail_params, System.Boolean closed, System.Double tolerance)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Makes a 2 rail sweep. Like CreateFromSweep but the result is split where parameterization along a rail changes abruptly.",
        "since": "6.0",
        "parameters": [
          {
            "name": "rail1",
            "type": "Curve",
            "summary": "Rail to sweep shapes along"
          },
          {
            "name": "rail2",
            "type": "Curve",
            "summary": "Rail to sweep shapes along"
          },
          {
            "name": "shapes",
            "type": "IEnumerable<Curve>",
            "summary": "Shape curves"
          },
          {
            "name": "rail_params",
            "type": "IEnumerable<Point2d>",
            "summary": "Shape parameters"
          },
          {
            "name": "closed",
            "type": "System.Boolean",
            "summary": "Only matters if shapes are closed"
          },
          {
            "name": "tolerance",
            "type": "System.Double",
            "summary": "Tolerance for fitting surface and rails"
          }
        ],
        "returns": "Array of Brep sweep results"
      },
      {
        "signature": "Brep[] CreateFromSweepSegmented(Curve rail, Curve shape, System.Boolean closed, System.Double tolerance)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Sweep1 function that fits a surface through a profile curve that define the surface cross-sections and one curve that defines a surface edge. The Segmented version breaks the rail at curvature kinks and sweeps each piece separately, then put the results together into a Brep.",
        "since": "6.14",
    "remarks": "Rhino's Sweep1 command uses this when the \"refit rail\" option is disabled (false).",
        "parameters": [
          {
            "name": "rail",
            "type": "Curve",
            "summary": "Rail to sweep shapes along"
          },
          {
            "name": "shape",
            "type": "Curve",
            "summary": "Shape curve"
          },
          {
            "name": "closed",
            "type": "System.Boolean",
            "summary": "Only matters if shape is closed"
          },
          {
            "name": "tolerance",
            "type": "System.Double",
            "summary": "Tolerance for fitting surface and rails"
          }
        ],
        "returns": "Array of Brep sweep results"
      },
      {
        "signature": "Brep[] CreateFromSweepSegmented(Curve rail, IEnumerable<Curve> shapes, Point3d startPoint, Point3d endPoint, SweepFrame frameType, Vector3d roadlikeNormal, System.Boolean closed, SweepBlend blendType, SweepMiter miterType, System.Double tolerance, SweepRebuild rebuildType, System.Int32 rebuildPointCount, System.Double refitTolerance)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Sweep1 function that fits a surface through a series of profile curves that define the surface cross-sections and one curve that defines a surface edge. The Segmented version breaks the rail at curvature kinks and sweeps each piece separately, then put the results together into a Brep.",
        "since": "7.0",
    "remarks": "Rhino's Sweep1 command uses this when the \"refit rail\" option is disabled (false).",
        "parameters": [
          {
            "name": "rail",
            "type": "Curve",
            "summary": "Rail to sweep shapes along."
          },
          {
            "name": "shapes",
            "type": "IEnumerable<Curve>",
            "summary": "Shape curves."
          },
          {
            "name": "startPoint",
            "type": "Point3d",
            "summary": "Optional starting point of sweep. Use Point3d.Unset if you do not want to include a start point."
          },
          {
            "name": "endPoint",
            "type": "Point3d",
            "summary": "Optional ending point of sweep. Use Point3d.Unset if you do not want to include an end point."
          },
          {
            "name": "frameType",
            "type": "SweepFrame",
            "summary": "The frame type."
          },
          {
            "name": "roadlikeNormal",
            "type": "Vector3d",
            "summary": "The roadlike normal directoion. Use Vector3d.Unset if the frame type is not set to roadlike."
          },
          {
            "name": "closed",
            "type": "System.Boolean",
            "summary": "Only matters if shapes are closed."
          },
          {
            "name": "blendType",
            "type": "SweepBlend",
            "summary": "The shape blending type."
          },
          {
            "name": "miterType",
            "type": "SweepMiter",
            "summary": "The mitering type."
          },
          {
            "name": "tolerance",
            "type": "System.Double",
            "summary": ""
          },
          {
            "name": "rebuildType",
            "type": "SweepRebuild",
            "summary": "The rebuild style."
          },
          {
            "name": "rebuildPointCount",
            "type": "System.Int32",
            "summary": "If rebuild == SweepRebuild.Rebuild, the number of points. Otherwise specify 0."
          },
          {
            "name": "refitTolerance",
            "type": "System.Double",
            "summary": "If rebuild == SweepRebuild.Refit, the refit tolerance. Otherwise, specify 0.0"
          }
        ],
        "returns": "Array of Brep sweep results."
      },
      {
        "signature": "Brep[] CreateFromSweepSegmented(Curve rail, IEnumerable<Curve> shapes, System.Boolean closed, System.Double tolerance)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Sweep1 function that fits a surface through a series of profile curves that define the surface cross-sections and one curve that defines a surface edge. The Segmented version breaks the rail at curvature kinks and sweeps each piece separately, then put the results together into a Brep.",
        "since": "6.14",
    "remarks": "Rhino's Sweep1 command uses this when the \"refit rail\" option is disabled (false).",
        "parameters": [
          {
            "name": "rail",
            "type": "Curve",
            "summary": "Rail to sweep shapes along."
          },
          {
            "name": "shapes",
            "type": "IEnumerable<Curve>",
            "summary": "Shape curves."
          },
          {
            "name": "closed",
            "type": "System.Boolean",
            "summary": "Only matters if shapes are closed."
          },
          {
            "name": "tolerance",
            "type": "System.Double",
            "summary": "Tolerance for fitting surface and rails."
          }
        ],
        "returns": "Array of Brep sweep results."
      },
      {
        "signature": "Brep[] CreateFromTaperedExtrude(Curve curveToExtrude, System.Double distance, Vector3d direction, Point3d basePoint, System.Double draftAngleRadians, ExtrudeCornerType cornerType, System.Double tolerance, System.Double angleToleranceRadians)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Extrude a curve to a taper making a brep (potentially more than 1)",
        "since": "6.0",
        "parameters": [
          {
            "name": "curveToExtrude",
            "type": "Curve",
            "summary": "the curve to extrude"
          },
          {
            "name": "distance",
            "type": "System.Double",
            "summary": "the distance to extrude"
          },
          {
            "name": "direction",
            "type": "Vector3d",
            "summary": "the direction of the extrusion"
          },
          {
            "name": "basePoint",
            "type": "Point3d",
            "summary": "the base point of the extrusion"
          },
          {
            "name": "draftAngleRadians",
            "type": "System.Double",
            "summary": "angle of the extrusion"
          },
          {
            "name": "cornerType",
            "type": "ExtrudeCornerType",
            "summary": ""
          },
          {
            "name": "tolerance",
            "type": "System.Double",
            "summary": "tolerance to use for the extrusion"
          },
          {
            "name": "angleToleranceRadians",
            "type": "System.Double",
            "summary": "angle tolerance to use for the extrusion"
          }
        ],
        "returns": "array of breps on success"
      },
      {
        "signature": "Brep[] CreateFromTaperedExtrude(Curve curveToExtrude, System.Double distance, Vector3d direction, Point3d basePoint, System.Double draftAngleRadians, ExtrudeCornerType cornerType)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Extrude a curve to a taper making a brep (potentially more than 1)",
        "since": "5.1",
        "deprecated": "6.0",
        "obsolete": "Use version that takes tolerance as input",
    "remarks": "tolerances used are based on the active doc tolerance",
        "parameters": [
          {
            "name": "curveToExtrude",
            "type": "Curve",
            "summary": "the curve to extrude"
          },
          {
            "name": "distance",
            "type": "System.Double",
            "summary": "the distance to extrude"
          },
          {
            "name": "direction",
            "type": "Vector3d",
            "summary": "the direction of the extrusion"
          },
          {
            "name": "basePoint",
            "type": "Point3d",
            "summary": "the base point of the extrusion"
          },
          {
            "name": "draftAngleRadians",
            "type": "System.Double",
            "summary": "angle of the extrusion"
          },
          {
            "name": "cornerType",
            "type": "ExtrudeCornerType",
            "summary": ""
          }
        ],
        "returns": "array of breps on success"
      },
      {
        "signature": "Brep[] CreateFromTaperedExtrudeWithRef(Curve curve, Vector3d direction, System.Double distance, System.Double draftAngle, Plane plane, System.Double tolerance)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Creates one or more Breps by extruding a curve a distance along an axis with draft angle.",
        "since": "6.14",
        "parameters": [
          {
            "name": "curve",
            "type": "Curve",
            "summary": "The curve to extrude."
          },
          {
            "name": "direction",
            "type": "Vector3d",
            "summary": "The extrusion direction."
          },
          {
            "name": "distance",
            "type": "System.Double",
            "summary": "The extrusion distance."
          },
          {
            "name": "draftAngle",
            "type": "System.Double",
            "summary": "The extrusion draft angle in radians."
          },
          {
            "name": "plane",
            "type": "Plane",
            "summary": "The end of the extrusion will be parallel to this plane, and \"distance\" from the plane's origin. The plane's origin is generally be a point on the curve. For planar curves, a natural choice for the plane's normal direction will be the normal direction of the curve's plane. In any case, plane.Normal = direction may make sense."
          },
          {
            "name": "tolerance",
            "type": "System.Double",
            "summary": "The intersecting and trimming tolerance."
          }
        ],
        "returns": "An array of Breps if successful."
      },
      {
        "signature": "Brep CreateFromTorus(Torus torus)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Constructs a Brep definition of a torus.",
        "since": "8.1",
        "parameters": [
          {
            "name": "torus",
            "type": "Torus",
            "summary": "The torus."
          }
        ],
        "returns": "A Brep representation of the torus if successful, None otherwise."
      },
      {
        "signature": "Brep[] CreateOffsetBrep(Brep brep, System.Double distance, System.Boolean solid, System.Boolean extend, System.Boolean shrink, System.Double tolerance, out Brep[] outBlends, out Brep[] outWalls)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Offsets a Brep.",
        "since": "7.5",
        "parameters": [
          {
            "name": "brep",
            "type": "Brep",
            "summary": "The Brep to offset."
          },
          {
            "name": "distance",
            "type": "System.Double",
            "summary": "The distance to offset. This is a signed distance value with respect to face normals and flipped faces."
          },
          {
            "name": "solid",
            "type": "System.Boolean",
            "summary": "If true, then the function makes a closed solid from the input and offset surfaces by lofting a ruled surface between all of the matching edges."
          },
          {
            "name": "extend",
            "type": "System.Boolean",
            "summary": "If true, then the function maintains the sharp corners when the original surfaces have sharps corner. If False, then the function creates fillets at sharp corners in the original surfaces."
          },
          {
            "name": "shrink",
            "type": "System.Boolean",
            "summary": "If true, then the function shrinks the underlying surfaces to their face's outer boundary loop."
          },
          {
            "name": "tolerance",
            "type": "System.Double",
            "summary": "The offset tolerance."
          },
          {
            "name": "outBlends",
            "type": "Brep[]",
            "summary": "The results of the calculation."
          },
          {
            "name": "outWalls",
            "type": "Brep[]",
            "summary": "The results of the calculation."
          }
        ],
        "returns": "Array of Breps if successful. If the function succeeds in offsetting, a single Brep will be returned. Otherwise, the array will contain the offset surfaces, outBlends will contain the set of blends used to fill in gaps (if extend is false), and outWalls will contain the set of wall surfaces that was supposed to join the offset to the original (if solid is true)."
      },
      {
        "signature": "Brep[] CreateOffsetBrep(Brep brep, System.Double distance, System.Boolean solid, System.Boolean extend, System.Double tolerance, out Brep[] outBlends, out Brep[] outWalls)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Offsets a Brep.",
        "since": "6.0",
        "parameters": [
          {
            "name": "brep",
            "type": "Brep",
            "summary": "The Brep to offset."
          },
          {
            "name": "distance",
            "type": "System.Double",
            "summary": "The distance to offset. This is a signed distance value with respect to face normals and flipped faces."
          },
          {
            "name": "solid",
            "type": "System.Boolean",
            "summary": "If true, then the function makes a closed solid from the input and offset surfaces by lofting a ruled surface between all of the matching edges."
          },
          {
            "name": "extend",
            "type": "System.Boolean",
            "summary": "If true, then the function maintains the sharp corners when the original surfaces have sharps corner. If False, then the function creates fillets at sharp corners in the original surfaces."
          },
          {
            "name": "tolerance",
            "type": "System.Double",
            "summary": "The offset tolerance."
          },
          {
            "name": "outBlends",
            "type": "Brep[]",
            "summary": "The results of the calculation."
          },
          {
            "name": "outWalls",
            "type": "Brep[]",
            "summary": "The results of the calculation."
          }
        ],
        "returns": "Array of Breps if successful. If the function succeeds in offsetting, a single Brep will be returned. Otherwise, the array will contain the offset surfaces, outBlends will contain the set of blends used to fill in gaps (if extend is false), and outWalls will contain the set of wall surfaces that was supposed to join the offset to the original (if solid is true)."
      },
      {
        "signature": "Brep CreatePatch(IEnumerable<GeometryBase> geometry, Surface startingSurface, System.Double tolerance)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Constructs a brep patch.  \nThis is the simple version of fit that uses a specified starting surface.",
        "since": "5.0",
        "parameters": [
          {
            "name": "geometry",
            "type": "IEnumerable<GeometryBase>",
            "summary": "Combination of Curves, BrepTrims, Points, PointClouds or Meshes. Curves and trims are sampled to get points. Trims are sampled for points and normals."
          },
          {
            "name": "startingSurface",
            "type": "Surface",
            "summary": "A starting surface (can be null)."
          },
          {
            "name": "tolerance",
            "type": "System.Double",
            "summary": "Tolerance used by input analysis functions for loop finding, trimming, etc."
          }
        ],
        "returns": "Brep fit through input on success, or None on error."
      },
      {
        "signature": "Brep CreatePatch(IEnumerable<GeometryBase> geometry, Surface startingSurface, System.Int32 uSpans, System.Int32 vSpans, System.Boolean trim, System.Boolean tangency, System.Double pointSpacing, System.Double flexibility, System.Double surfacePull, System.Boolean[] fixEdges, System.Double tolerance)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Constructs a brep patch using all controls",
        "since": "5.0",
        "parameters": [
          {
            "name": "geometry",
            "type": "IEnumerable<GeometryBase>",
            "summary": "A combination of <b>Curve</b> , brep trims,  <b>Point</b> , <b>PointCloud</b> or <b>Mesh</b> . Curves and trims are sampled to get points. Trims are sampled for points and normals."
          },
          {
            "name": "startingSurface",
            "type": "Surface",
            "summary": "A starting surface (can be null)."
          },
          {
            "name": "uSpans",
            "type": "System.Int32",
            "summary": "Number of surface spans used when a plane is fit through points to start in the U direction."
          },
          {
            "name": "vSpans",
            "type": "System.Int32",
            "summary": "Number of surface spans used when a plane is fit through points to start in the U direction."
          },
          {
            "name": "trim",
            "type": "System.Boolean",
            "summary": "If true, try to find an outer loop from among the input curves and trim the result to that loop"
          },
          {
            "name": "tangency",
            "type": "System.Boolean",
            "summary": "If true, try to find brep trims in the outer loop of curves and try to fit to the normal direction of the trim's surface at those locations."
          },
          {
            "name": "pointSpacing",
            "type": "System.Double",
            "summary": "Basic distance between points sampled from input curves."
          },
          {
            "name": "flexibility",
            "type": "System.Double",
            "summary": "Determines the behavior of the surface in areas where its not otherwise controlled by the input.  Lower numbers make the surface behave more like a stiff material; higher, less like a stiff material.  That is, each span is made to more closely match the spans adjacent to it if there is no input geometry mapping to that area of the surface when the flexibility value is low.  The scale is logarithmic. Numbers around 0.001 or 0.1 make the patch pretty stiff and numbers around 10 or 100 make the surface flexible."
          },
          {
            "name": "surfacePull",
            "type": "System.Double",
            "summary": "Tends to keep the result surface where it was before the fit in areas where there is on influence from the input geometry"
          },
          {
            "name": "fixEdges",
            "type": "System.Boolean[]",
            "summary": "Array of four elements. Flags to keep the edges of a starting (untrimmed) surface in place while fitting the interior of the surface.  Order of flags is left, bottom, right, top"
          },
          {
            "name": "tolerance",
            "type": "System.Double",
            "summary": "Tolerance used by input analysis functions for loop finding, trimming, etc."
          }
        ],
        "returns": "A brep fit through input on success, or None on error."
      },
      {
        "signature": "Brep CreatePatch(IEnumerable<GeometryBase> geometry, System.Int32 uSpans, System.Int32 vSpans, System.Double tolerance)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Constructs a brep patch.  \nThis is the simple version of fit that uses a plane with u x v spans.     It makes a plane by fitting to the points from the input geometry to use as the starting surface.     The surface has the specified u and v span count.",
        "since": "5.0",
        "parameters": [
          {
            "name": "geometry",
            "type": "IEnumerable<GeometryBase>",
            "summary": "A combination of <b>Curve</b> , brep trims,  <b>Point</b> , <b>PointCloud</b> or <b>Mesh</b> . Curves and trims are sampled to get points. Trims are sampled for points and normals."
          },
          {
            "name": "uSpans",
            "type": "System.Int32",
            "summary": "The number of spans in the U direction."
          },
          {
            "name": "vSpans",
            "type": "System.Int32",
            "summary": "The number of spans in the V direction."
          },
          {
            "name": "tolerance",
            "type": "System.Double",
            "summary": "Tolerance used by input analysis functions for loop finding, trimming, etc."
          }
        ],
        "returns": "A brep fit through input on success, or None on error."
      },
      {
        "signature": "Brep[] CreatePipe(Curve rail, IEnumerable<double> railRadiiParameters, IEnumerable<double> radii, System.Boolean localBlending, PipeCapMode cap, System.Boolean fitRail, System.Double absoluteTolerance, System.Double angleToleranceRadians)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Creates a single walled pipe.",
        "since": "5.0",
        "parameters": [
          {
            "name": "rail",
            "type": "Curve",
            "summary": "The rail, or path, curve."
          },
          {
            "name": "railRadiiParameters",
            "type": "IEnumerable<double>",
            "summary": "One or more normalized curve parameters where changes in radius occur. Important: curve parameters must be normalized - ranging between 0.0 and 1.0. Use Interval.NormalizedParameterAt to calculate these."
          },
          {
            "name": "radii",
            "type": "IEnumerable<double>",
            "summary": "One or more radii - one at each normalized curve parameter in railRadiiParameters."
          },
          {
            "name": "localBlending",
            "type": "System.Boolean",
            "summary": "The shape blending. If True, Local (pipe radius stays constant at the ends and changes more rapidly in the middle) is applied. If False, Global (radius is linearly blended from one end to the other, creating pipes that taper from one radius to the other) is applied."
          },
          {
            "name": "cap",
            "type": "PipeCapMode",
            "summary": "The end cap mode."
          },
          {
            "name": "fitRail",
            "type": "System.Boolean",
            "summary": "If the curve is a polycurve of lines and arcs, the curve is fit and a single surface is created; otherwise the result is a Brep with joined surfaces created from the polycurve segments."
          },
          {
            "name": "absoluteTolerance",
            "type": "System.Double",
            "summary": "The sweeping and fitting tolerance. When in doubt, use the document's absolute tolerance."
          },
          {
            "name": "angleToleranceRadians",
            "type": "System.Double",
            "summary": "The angle tolerance. When in doubt, use the document's angle tolerance in radians."
          }
        ],
        "returns": "Array of Breps success."
      },
      {
        "signature": "Brep[] CreatePipe(Curve rail, System.Double radius, System.Boolean localBlending, PipeCapMode cap, System.Boolean fitRail, System.Double absoluteTolerance, System.Double angleToleranceRadians)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Creates a single walled pipe.",
        "since": "5.0",
        "parameters": [
          {
            "name": "rail",
            "type": "Curve",
            "summary": "The rail, or path, curve."
          },
          {
            "name": "radius",
            "type": "System.Double",
            "summary": "The radius of the pipe."
          },
          {
            "name": "localBlending",
            "type": "System.Boolean",
            "summary": "The shape blending. If True, Local (pipe radius stays constant at the ends and changes more rapidly in the middle) is applied. If False, Global (radius is linearly blended from one end to the other, creating pipes that taper from one radius to the other) is applied."
          },
          {
            "name": "cap",
            "type": "PipeCapMode",
            "summary": "The end cap mode."
          },
          {
            "name": "fitRail",
            "type": "System.Boolean",
            "summary": "If the curve is a polycurve of lines and arcs, the curve is fit and a single surface is created; otherwise the result is a Brep with joined surfaces created from the polycurve segments."
          },
          {
            "name": "absoluteTolerance",
            "type": "System.Double",
            "summary": "The sweeping and fitting tolerance. When in doubt, use the document's absolute tolerance."
          },
          {
            "name": "angleToleranceRadians",
            "type": "System.Double",
            "summary": "The angle tolerance. When in doubt, use the document's angle tolerance in radians."
          }
        ],
        "returns": "Array of Breps success."
      },
      {
        "signature": "Brep[] CreatePlanarBreps(Curve inputLoop, System.Double tolerance)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Constructs a set of planar breps as outlines by the loops.",
        "since": "6.0",
        "parameters": [
          {
            "name": "inputLoop",
            "type": "Curve",
            "summary": "A curve that should form the boundaries of the surfaces or polysurfaces."
          },
          {
            "name": "tolerance",
            "type": "System.Double",
            "summary": ""
          }
        ],
        "returns": "An array of Planar Breps."
      },
      {
        "signature": "Brep[] CreatePlanarBreps(Curve inputLoop)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Constructs a set of planar breps as outlines by the loops.",
        "since": "5.0",
        "deprecated": "6.0",
        "obsolete": "Use version that takes tolerance as input",
        "parameters": [
          {
            "name": "inputLoop",
            "type": "Curve",
            "summary": "A curve that should form the boundaries of the surfaces or polysurfaces."
          }
        ],
        "returns": "An array of Planar Breps."
      },
      {
        "signature": "Brep[] CreatePlanarBreps(IEnumerable<Curve> inputLoops, System.Double tolerance)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Constructs a set of planar breps as outlines by the loops.",
        "since": "6.0",
        "parameters": [
          {
            "name": "inputLoops",
            "type": "IEnumerable<Curve>",
            "summary": "Curve loops that delineate the planar boundaries."
          },
          {
            "name": "tolerance",
            "type": "System.Double",
            "summary": ""
          }
        ],
        "returns": "An array of Planar Breps."
      },
      {
        "signature": "Brep[] CreatePlanarBreps(IEnumerable<Curve> inputLoops)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Constructs a set of planar breps as outlines by the loops.",
        "since": "5.0",
        "deprecated": "6.0",
        "obsolete": "Use version that takes tolerance as input",
        "parameters": [
          {
            "name": "inputLoops",
            "type": "IEnumerable<Curve>",
            "summary": "Curve loops that delineate the planar boundaries."
          }
        ],
        "returns": "An array of Planar Breps."
      },
      {
        "signature": "Brep[] CreatePlanarBreps(Rhino.Collections.CurveList inputLoops, System.Double tolerance)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Constructs a set of planar Breps as outlines by the loops.",
        "since": "6.0",
        "parameters": [
          {
            "name": "inputLoops",
            "type": "Rhino.Collections.CurveList",
            "summary": "Curve loops that delineate the planar boundaries."
          },
          {
            "name": "tolerance",
            "type": "System.Double",
            "summary": ""
          }
        ],
        "returns": "An array of Planar Breps."
      },
      {
        "signature": "Brep[] CreatePlanarBreps(Rhino.Collections.CurveList inputLoops)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Constructs a set of planar Breps as outlines by the loops.",
        "since": "5.0",
        "deprecated": "6.0",
        "obsolete": "Use version that takes tolerance as input",
        "parameters": [
          {
            "name": "inputLoops",
            "type": "Rhino.Collections.CurveList",
            "summary": "Curve loops that delineate the planar boundaries."
          }
        ],
        "returns": "An array of Planar Breps or None on error."
      },
      {
        "signature": "Brep[] CreatePlanarDifference(Brep b0, Brep b1, Plane plane, System.Double tolerance)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "CreatePlanarDifference",
        "since": "7.0",
        "parameters": [
          {
            "name": "b0",
            "type": "Brep",
            "summary": "The first brep to intersect."
          },
          {
            "name": "b1",
            "type": "Brep",
            "summary": "The first brep to intersect."
          },
          {
            "name": "plane",
            "type": "Plane",
            "summary": "The plane in which all the input breps lie"
          },
          {
            "name": "tolerance",
            "type": "System.Double",
            "summary": "Tolerance to use for Difference operation."
          }
        ],
        "returns": "An array of Brep results or None on failure."
      },
      {
        "signature": "Brep[] CreatePlanarIntersection(Brep b0, Brep b1, Plane plane, System.Double tolerance)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "CreatePlanarIntersection",
        "since": "7.0",
        "parameters": [
          {
            "name": "b0",
            "type": "Brep",
            "summary": "The first brep to intersect."
          },
          {
            "name": "b1",
            "type": "Brep",
            "summary": "The second brep to intersect."
          },
          {
            "name": "plane",
            "type": "Plane",
            "summary": "The plane in which all the input breps lie"
          },
          {
            "name": "tolerance",
            "type": "System.Double",
            "summary": "Tolerance to use for intersection operation."
          }
        ],
        "returns": "An array of Brep results or None on failure."
      },
      {
        "signature": "Brep[] CreatePlanarUnion(Brep b0, Brep b1, Plane plane, System.Double tolerance)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "CreatePlanarUnion",
        "since": "7.0",
        "parameters": [
          {
            "name": "b0",
            "type": "Brep",
            "summary": "The first brep to union."
          },
          {
            "name": "b1",
            "type": "Brep",
            "summary": "The first brep to union."
          },
          {
            "name": "plane",
            "type": "Plane",
            "summary": "The plane in which all the input breps lie"
          },
          {
            "name": "tolerance",
            "type": "System.Double",
            "summary": "Tolerance to use for union operation."
          }
        ],
        "returns": "An array of Brep results or None on failure."
      },
      {
        "signature": "Brep[] CreatePlanarUnion(IEnumerable<Brep> breps, Plane plane, System.Double tolerance)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "CreatePlanarUnion",
        "since": "7.0",
        "parameters": [
          {
            "name": "breps",
            "type": "IEnumerable<Brep>",
            "summary": "The planar regions on which to perform the union operation."
          },
          {
            "name": "plane",
            "type": "Plane",
            "summary": "The plane in which all the input breps lie"
          },
          {
            "name": "tolerance",
            "type": "System.Double",
            "summary": "Tolerance to use for union operation."
          }
        ],
        "returns": "An array of Brep results or None on failure."
      },
      {
        "signature": "Brep CreateQuadSphere(Sphere sphere)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Constructs a Brep definition of a quad sphere.",
        "since": "6.0",
        "parameters": [
          {
            "name": "sphere",
            "type": "Sphere",
            "summary": "The input sphere provides the orienting plane and radius."
          }
        ],
        "returns": "A Brep if successful, None on error."
      },
      {
        "signature": "Brep[] CreateShell(Brep brep, IEnumerable<int> facesToRemove, System.Double distance, System.Double tolerance)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Creates a hollowed out shell from a solid Brep. Function only operates on simple, solid, manifold Breps.",
        "since": "5.4",
        "parameters": [
          {
            "name": "brep",
            "type": "Brep",
            "summary": "The solid Brep to shell."
          },
          {
            "name": "facesToRemove",
            "type": "IEnumerable<int>",
            "summary": "The indices of the Brep faces to remove. These surfaces are removed and the remainder is offset inward, using the outer parts of the removed surfaces to join the inner and outer parts."
          },
          {
            "name": "distance",
            "type": "System.Double",
            "summary": "The distance, or thickness, for the shell. This is a signed distance value with respect to face normals and flipped faces."
          },
          {
            "name": "tolerance",
            "type": "System.Double",
            "summary": "The offset tolerance. When in doubt, use the document's absolute tolerance."
          }
        ],
        "returns": "An array of Brep results or None on failure."
      },
      {
        "signature": "Brep[] CreateSolid(IEnumerable<Brep> breps, System.Double tolerance)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Constructs closed polysurfaces from surfaces and polysurfaces that bound a region in space.",
        "since": "5.0",
        "parameters": [
          {
            "name": "breps",
            "type": "IEnumerable<Brep>",
            "summary": "The intersecting surfaces and polysurfaces to automatically trim and join into closed polysurfaces."
          },
          {
            "name": "tolerance",
            "type": "System.Double",
            "summary": "The trim and join tolerance. If set to RhinoMath.UnsetValue, Rhino's global absolute tolerance is used."
          }
        ],
        "returns": "The resulting polysurfaces on success or None on failure."
      },
      {
        "signature": "Brep[] CreateThickPipe(Curve rail, IEnumerable<double> railRadiiParameters, IEnumerable<double> radii0, IEnumerable<double> radii1, System.Boolean localBlending, PipeCapMode cap, System.Boolean fitRail, System.Double absoluteTolerance, System.Double angleToleranceRadians)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Creates a double-walled pipe.",
        "since": "7.0",
        "parameters": [
          {
            "name": "rail",
            "type": "Curve",
            "summary": "The rail, or path, curve."
          },
          {
            "name": "railRadiiParameters",
            "type": "IEnumerable<double>",
            "summary": "One or more normalized curve parameters where changes in radius occur. Important: curve parameters must be normalized - ranging between 0.0 and 1.0. Use Interval.NormalizedParameterAt to calculate these."
          },
          {
            "name": "radii0",
            "type": "IEnumerable<double>",
            "summary": "One or more radii for the first wall - one at each normalized curve parameter in railRadiiParameters."
          },
          {
            "name": "radii1",
            "type": "IEnumerable<double>",
            "summary": "One or more radii for the second wall - one at each normalized curve parameter in railRadiiParameters."
          },
          {
            "name": "localBlending",
            "type": "System.Boolean",
            "summary": "The shape blending. If True, Local (pipe radius stays constant at the ends and changes more rapidly in the middle) is applied. If False, Global (radius is linearly blended from one end to the other, creating pipes that taper from one radius to the other) is applied."
          },
          {
            "name": "cap",
            "type": "PipeCapMode",
            "summary": "The end cap mode."
          },
          {
            "name": "fitRail",
            "type": "System.Boolean",
            "summary": "If the curve is a polycurve of lines and arcs, the curve is fit and a single surface is created; otherwise the result is a Brep with joined surfaces created from the polycurve segments."
          },
          {
            "name": "absoluteTolerance",
            "type": "System.Double",
            "summary": "The sweeping and fitting tolerance. When in doubt, use the document's absolute tolerance."
          },
          {
            "name": "angleToleranceRadians",
            "type": "System.Double",
            "summary": "The angle tolerance. When in doubt, use the document's angle tolerance in radians."
          }
        ],
        "returns": "Array of Breps success."
      },
      {
        "signature": "Brep[] CreateThickPipe(Curve rail, System.Double radius0, System.Double radius1, System.Boolean localBlending, PipeCapMode cap, System.Boolean fitRail, System.Double absoluteTolerance, System.Double angleToleranceRadians)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Creates a double-walled pipe.",
        "since": "7.0",
        "parameters": [
          {
            "name": "rail",
            "type": "Curve",
            "summary": "The rail, or path, curve."
          },
          {
            "name": "radius0",
            "type": "System.Double",
            "summary": "The first radius of the pipe."
          },
          {
            "name": "radius1",
            "type": "System.Double",
            "summary": "The second radius of the pipe."
          },
          {
            "name": "localBlending",
            "type": "System.Boolean",
            "summary": "The shape blending. If True, Local (pipe radius stays constant at the ends and changes more rapidly in the middle) is applied. If False, Global (radius is linearly blended from one end to the other, creating pipes that taper from one radius to the other) is applied."
          },
          {
            "name": "cap",
            "type": "PipeCapMode",
            "summary": "The end cap mode."
          },
          {
            "name": "fitRail",
            "type": "System.Boolean",
            "summary": "If the curve is a polycurve of lines and arcs, the curve is fit and a single surface is created; otherwise the result is a Brep with joined surfaces created from the polycurve segments."
          },
          {
            "name": "absoluteTolerance",
            "type": "System.Double",
            "summary": "The sweeping and fitting tolerance. When in doubt, use the document's absolute tolerance."
          },
          {
            "name": "angleToleranceRadians",
            "type": "System.Double",
            "summary": "The angle tolerance. When in doubt, use the document's angle tolerance in radians."
          }
        ],
        "returns": "Array of Breps success."
      },
      {
        "signature": "Brep CreateTrimmedPlane(Plane plane, Curve curve)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Create a Brep trimmed plane.",
        "since": "6.0",
        "parameters": [
          {
            "name": "plane",
            "type": "Plane",
            "summary": "Plane that will be trimmed."
          },
          {
            "name": "curve",
            "type": "Curve",
            "summary": "A simple (no self intersections) closed curve that defines the outer boundary of the trimmed plane."
          }
        ],
        "returns": "Resulting brep or None on failure."
      },
      {
        "signature": "Brep CreateTrimmedPlane(Plane plane, IEnumerable<Curve> curves)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Create a Brep trimmed plane.",
        "since": "6.0",
        "parameters": [
          {
            "name": "plane",
            "type": "Plane",
            "summary": "Plane that will be trimmed."
          },
          {
            "name": "curves",
            "type": "IEnumerable<Curve>",
            "summary": "A list of curves that form a simple (no self intersections) closed curve that defines the outer boundary of the trimmed plane."
          }
        ],
        "returns": "Resulting brep or None on failure."
      },
      {
        "signature": "Brep CreateTrimmedSurface(BrepFace trimSource, Surface surfaceSource, System.Double tolerance)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Constructs a Brep using the trimming information of a brep face and a surface. Surface must be roughly the same shape and in the same location as the trimming brep face.",
        "since": "6.0",
        "parameters": [
          {
            "name": "trimSource",
            "type": "BrepFace",
            "summary": "BrepFace which contains trimmingSource brep."
          },
          {
            "name": "surfaceSource",
            "type": "Surface",
            "summary": "Surface that trims of BrepFace will be applied to."
          },
          {
            "name": "tolerance",
            "type": "System.Double",
            "summary": ""
          }
        ],
        "returns": "A brep with the shape of surfaceSource and the trims of trimSource or None on failure."
      },
      {
        "signature": "Brep CreateTrimmedSurface(BrepFace trimSource, Surface surfaceSource)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Constructs a Brep using the trimming information of a brep face and a surface. Surface must be roughly the same shape and in the same location as the trimming brep face.",
        "since": "5.0",
        "deprecated": "6.0",
        "obsolete": "Use version that takes tolerance as input",
        "parameters": [
          {
            "name": "trimSource",
            "type": "BrepFace",
            "summary": "BrepFace which contains trimmingSource brep."
          },
          {
            "name": "surfaceSource",
            "type": "Surface",
            "summary": "Surface that trims of BrepFace will be applied to."
          }
        ],
        "returns": "A brep with the shape of surfaceSource and the trims of trimSource or None on failure."
      },
      {
        "signature": "Brep CreateVariationalPatch(IEnumerable<CurveConstraint> edges, IEnumerable<CurveConstraint> internalCurves, IEnumerable<PointConstraint> points, VariationalPatchSettings settings, System.Boolean multiThreading, System.Threading.CancellationToken cancelToken, IProgress<double> progress, out VariationalPatchResult results)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Create a patch using variational approach",
        "parameters": [
          {
            "name": "edges",
            "type": "IEnumerable<CurveConstraint>",
            "summary": "Edges with continuity constraints"
          },
          {
            "name": "internalCurves",
            "type": "IEnumerable<CurveConstraint>",
            "summary": "Internal curves"
          },
          {
            "name": "points",
            "type": "IEnumerable<PointConstraint>",
            "summary": "Internal points"
          },
          {
            "name": "settings",
            "type": "VariationalPatchSettings",
            "summary": "The settings to use while creating the surface"
          },
          {
            "name": "multiThreading",
            "type": "System.Boolean",
            "summary": "Use multi-threading during the calculation"
          },
          {
            "name": "cancelToken",
            "type": "System.Threading.CancellationToken",
            "summary": "The cancellation token."
          },
          {
            "name": "progress",
            "type": "IProgress<double>",
            "summary": "The provider for progress updates."
          },
          {
            "name": "results",
            "type": "VariationalPatchResult",
            "summary": "The results of the patching algorithm."
          }
        ],
        "returns": "Trimmed surface if successful, None otherwise"
      },
      {
        "signature": "Brep CreateVariationalPatch(RhinoDoc doc, IEnumerable<CurveConstraint> edges, IEnumerable<CurveConstraint> internalCurves, IEnumerable<PointConstraint> points, VariationalPatchSettings settings, System.Boolean multiThreading, System.Threading.CancellationToken cancelToken, IProgress<double> progress, out VariationalPatchResult results)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Create a patch using variational approach",
        "parameters": [
          {
            "name": "doc",
            "type": "RhinoDoc",
            "summary": "The Rhino document. Use None if not available."
          },
          {
            "name": "edges",
            "type": "IEnumerable<CurveConstraint>",
            "summary": "Edges with continuity constraints"
          },
          {
            "name": "internalCurves",
            "type": "IEnumerable<CurveConstraint>",
            "summary": "Internal curves"
          },
          {
            "name": "points",
            "type": "IEnumerable<PointConstraint>",
            "summary": "Internal points"
          },
          {
            "name": "settings",
            "type": "VariationalPatchSettings",
            "summary": "The settings to use while creating the surface"
          },
          {
            "name": "multiThreading",
            "type": "System.Boolean",
            "summary": "Use multi-threading during the calculation"
          },
          {
            "name": "cancelToken",
            "type": "System.Threading.CancellationToken",
            "summary": "The cancellation token."
          },
          {
            "name": "progress",
            "type": "IProgress<double>",
            "summary": "The provider for progress updates."
          },
          {
            "name": "results",
            "type": "VariationalPatchResult",
            "summary": "The results of the patching algorithm."
          }
        ],
        "returns": "Trimmed surface if successful, None otherwise"
      },
      {
        "signature": "Brep[] CutUpSurface(Surface surface, IEnumerable<Curve> curves, System.Boolean flip, System.Double fitTolerance, System.Double keepTolerance)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Splits, or cuts up, a surface. Designed to split the underlying surface of a Brep face with edge curves.",
        "since": "8.12",
        "parameters": [
          {
            "name": "surface",
            "type": "Surface",
            "summary": "The surface to cut up."
          },
          {
            "name": "curves",
            "type": "IEnumerable<Curve>",
            "summary": "The edge curves with consistent orientation. The curves should lie on the surface."
          },
          {
            "name": "flip",
            "type": "System.Boolean",
            "summary": "If true, the input curves are oriented clockwise."
          },
          {
            "name": "fitTolerance",
            "type": "System.Double",
            "summary": "The fitting tolerance."
          },
          {
            "name": "keepTolerance",
            "type": "System.Double",
            "summary": "Used to decide which face to keep. For best results, should be at least 2 * fitTolerance."
          }
        ],
        "returns": "The Brep pieces if successful, an empty array on failure."
      },
      {
        "signature": "Brep[] CutUpSurface(Surface surface, IEnumerable<Curve> curves, System.Boolean useEdgeCurves, System.Double tolerance)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Takes a surface and a set of all 3D curves that define a single trimmed surface, and splits the surface with the curves, keeping the piece that uses all of the curves.",
        "since": "8.0",
    "remarks": "This function is useful when importing non-3dm files with questionable geometry. It is also a good way to quickly create a trimmed surface that has multiple inner boundaries without having to call split or trim and then select all of the pieces to throw away. If the surface is closed, an attempt will be made to move seams so that they avoid the curves. If that cannot be done, the result may have more than one face. If the surface is closed in both directions, it is possible that the split will result in two faces that use all of the input curves. In this case all curves must be oriented counter-clockwise, with respect to the surface normal, around the desired result. The surface may be extended if it is not large enough to contain the curves. Noisy singularities will be repaired when possible.",
        "parameters": [
          {
            "name": "surface",
            "type": "Surface",
            "summary": "The surface."
          },
          {
            "name": "curves",
            "type": "IEnumerable<Curve>",
            "summary": "The curves."
          },
          {
            "name": "useEdgeCurves",
            "type": "System.Boolean",
            "summary": "The 2D trimming curves are made by pulling back the 3D curves using the fitting tolerance. If useEdgeCurves is true, the input 3D curves will be used as the edge curves in the result. Otherwise, the edges will come from pushing up the 2D pullbacks."
          },
          {
            "name": "tolerance",
            "type": "System.Double",
            "summary": "The fitting tolerance. When in doubt, use the document's model absolute tolerance."
          }
        ],
        "returns": "The resulting Breps is successful, otherwise an empty array. Note, you may want to join the results into a single Brep."
      },
      {
        "signature": "System.Boolean ExtendBrepFacesToConnect(BrepFace Face0, Point3d f0_sel_pt, BrepFace Face1, Point3d f1_sel_pt, System.Double tol, System.Double angleTol, out Brep outBrep0, out Brep outBrep1)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Extends Faces to meet and trims the faces to each other. If input faces intersect without extending, the selection point indicates the side to keep",
        "since": "8.9",
        "parameters": [
          {
            "name": "Face0",
            "type": "BrepFace",
            "summary": "[in] first face to connect"
          },
          {
            "name": "f0_sel_pt",
            "type": "Point3d",
            "summary": "selection point on first face near the edge to extend."
          },
          {
            "name": "Face1",
            "type": "BrepFace",
            "summary": "[in] second surface"
          },
          {
            "name": "f1_sel_pt",
            "type": "Point3d",
            "summary": "selection point on second face near the edge to extend."
          },
          {
            "name": "tol",
            "type": "System.Double",
            "summary": "[in] tolerance used for intersecting faces and simplifing extension curve"
          },
          {
            "name": "angleTol",
            "type": "System.Double",
            "summary": "[in] angle tolerance in radians used for simplifying extendsion curve"
          },
          {
            "name": "outBrep0",
            "type": "Brep",
            "summary": "[out] first face extended and trimmed to connect with the second face"
          },
          {
            "name": "outBrep1",
            "type": "Brep",
            "summary": "[out] second face extended and trimmed to connect with the first face"
          }
        ],
        "returns": "True if valid connection found"
      },
      {
        "signature": "System.Boolean ExtendBrepFacesToConnect(BrepFace Face0, System.Int32 edgeIndex0, BrepFace Face1, System.Int32 edgeIndex1, System.Double tol, System.Double angleTol, out Brep outBrep0, out Brep outBrep1)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Extends Faces to meet and trims the faces to each other. If input faces intersect without extending, the selection point indicates the side to keep",
        "since": "8.9",
        "parameters": [
          {
            "name": "Face0",
            "type": "BrepFace",
            "summary": "[in] first face to connect"
          },
          {
            "name": "edgeIndex0",
            "type": "System.Int32",
            "summary": "[in] edge to extend."
          },
          {
            "name": "Face1",
            "type": "BrepFace",
            "summary": "[in] second surface"
          },
          {
            "name": "edgeIndex1",
            "type": "System.Int32",
            "summary": "[in] edge to extend."
          },
          {
            "name": "tol",
            "type": "System.Double",
            "summary": "[in] tolerance used for intersecting faces and simplifing extension curve"
          },
          {
            "name": "angleTol",
            "type": "System.Double",
            "summary": "[in] angle tolerance in radians used for simplifying extendsion curve"
          },
          {
            "name": "outBrep0",
            "type": "Brep",
            "summary": "[out] first face extended and trimmed to connect with the second face"
          },
          {
            "name": "outBrep1",
            "type": "Brep",
            "summary": "[out] second face extended and trimmed to connect with the first face"
          }
        ],
        "returns": "True if valid connection found"
      },
      {
        "signature": "Brep[] JoinBreps(IEnumerable<Brep> brepsToJoin, System.Double tolerance, System.Double angleTolerance, out List<int[]> indexMap)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Joins the breps in the input array at any overlapping edges to form as few as possible resulting breps. There may be more than one brep in the result array.",
        "since": "8.5",
        "parameters": [
          {
            "name": "brepsToJoin",
            "type": "IEnumerable<Brep>",
            "summary": "A list, an array or any enumerable set of breps to join."
          },
          {
            "name": "tolerance",
            "type": "System.Double",
            "summary": "3d distance tolerance for detecting overlapping edges. When in doubt, use the document's model absolute tolerance."
          },
          {
            "name": "angleTolerance",
            "type": "System.Double",
            "summary": "Angle tolerance, in radians, used for merging edges. When in doubt, use the document's model angle tolerance."
          },
          {
            "name": "indexMap",
            "type": "List<int[]>",
            "summary": "List of integer arrays, one for each joined result, containing all input Brep indices that went into making each result. Note, this can be null."
          }
        ],
        "returns": "New joined breps on success, None on failure."
      },
      {
        "signature": "Brep[] JoinBreps(IEnumerable<Brep> brepsToJoin, System.Double tolerance, System.Double angleTolerance)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Joins the breps in the input array at any overlapping edges to form as few as possible resulting breps. There may be more than one brep in the result array.",
        "since": "8.3",
        "parameters": [
          {
            "name": "brepsToJoin",
            "type": "IEnumerable<Brep>",
            "summary": "A list, an array or any enumerable set of breps to join."
          },
          {
            "name": "tolerance",
            "type": "System.Double",
            "summary": "3d distance tolerance for detecting overlapping edges. When in doubt, use the document's model absolute tolerance."
          },
          {
            "name": "angleTolerance",
            "type": "System.Double",
            "summary": "Angle tolerance, in radians, used for merging edges. When in doubt, use the document's model angle tolerance."
          }
        ],
        "returns": "New joined breps on success, None on failure."
      },
      {
        "signature": "Brep[] JoinBreps(IEnumerable<Brep> brepsToJoin, System.Double tolerance)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Joins the breps in the input array at any overlapping edges to form as few as possible resulting breps. There may be more than one brep in the result array.",
        "since": "5.0",
        "parameters": [
          {
            "name": "brepsToJoin",
            "type": "IEnumerable<Brep>",
            "summary": "A list, an array or any enumerable set of breps to join."
          },
          {
            "name": "tolerance",
            "type": "System.Double",
            "summary": "3d distance tolerance for detecting overlapping edges."
          }
        ],
        "returns": "New joined breps on success, None on failure."
      },
      {
        "signature": "Brep MergeBreps(IEnumerable<Brep> brepsToMerge, System.Double tolerance)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Combines two or more breps into one. A merge is like a boolean union that keeps the inside pieces. This function creates non-manifold Breps which in general are unusual in Rhino. You may want to consider using JoinBreps or CreateBooleanUnion functions instead.",
        "since": "5.0",
        "parameters": [
          {
            "name": "brepsToMerge",
            "type": "IEnumerable<Brep>",
            "summary": "must contain more than one Brep."
          },
          {
            "name": "tolerance",
            "type": "System.Double",
            "summary": "the tolerance to use when merging."
          }
        ],
        "returns": "Single merged Brep on success. Null on error."
      },
      {
        "signature": "Brep MergeSurfaces(Brep brep0, Brep brep1, System.Double tolerance, System.Double angleToleranceRadians, Point2d point0, Point2d point1, System.Double roundness, System.Boolean smooth)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Merges two surfaces into one surface at untrimmed edges. Both surfaces must be untrimmed and share an edge.",
        "since": "6.0",
        "parameters": [
          {
            "name": "brep0",
            "type": "Brep",
            "summary": "The first single-face Brep to merge."
          },
          {
            "name": "brep1",
            "type": "Brep",
            "summary": "The second single-face Brep to merge."
          },
          {
            "name": "tolerance",
            "type": "System.Double",
            "summary": "Surface edges must be within this tolerance for the two surfaces to merge."
          },
          {
            "name": "angleToleranceRadians",
            "type": "System.Double",
            "summary": "Edge must be within this angle tolerance in order for contiguous edges to be combined into a single edge."
          },
          {
            "name": "point0",
            "type": "Point2d",
            "summary": "2D pick point on the first single-face Brep. The value can be unset."
          },
          {
            "name": "point1",
            "type": "Point2d",
            "summary": "2D pick point on the second single-face Brep. The value can be unset."
          },
          {
            "name": "roundness",
            "type": "System.Double",
            "summary": "Defines the roundness of the merge. Acceptable values are between 0.0 (sharp) and 1.0 (smooth)."
          },
          {
            "name": "smooth",
            "type": "System.Boolean",
            "summary": "The surface will be smooth. This makes the surface behave better for control point editing, but may alter the shape of both surfaces."
          }
        ],
        "returns": "The merged Brep if successful, None if not successful."
      },
      {
        "signature": "Brep MergeSurfaces(Brep brep0, Brep brep1, System.Double tolerance, System.Double angleToleranceRadians)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Merges two surfaces into one surface at untrimmed edges. Both surfaces must be untrimmed and share an edge.",
        "since": "6.0",
        "parameters": [
          {
            "name": "brep0",
            "type": "Brep",
            "summary": "The first single-face Brep to merge."
          },
          {
            "name": "brep1",
            "type": "Brep",
            "summary": "The second single-face Brep to merge."
          },
          {
            "name": "tolerance",
            "type": "System.Double",
            "summary": "Surface edges must be within this tolerance for the two surfaces to merge."
          },
          {
            "name": "angleToleranceRadians",
            "type": "System.Double",
            "summary": "Edge must be within this angle tolerance in order for contiguous edges to be combined into a single edge."
          }
        ],
        "returns": "The merged Brep if successful, None if not successful."
      },
      {
        "signature": "Brep MergeSurfaces(Surface surface0, Surface surface1, System.Double tolerance, System.Double angleToleranceRadians)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Merges two surfaces into one surface at untrimmed edges.",
        "since": "6.0",
        "parameters": [
          {
            "name": "surface0",
            "type": "Surface",
            "summary": "The first surface to merge."
          },
          {
            "name": "surface1",
            "type": "Surface",
            "summary": "The second surface to merge."
          },
          {
            "name": "tolerance",
            "type": "System.Double",
            "summary": "Surface edges must be within this tolerance for the two surfaces to merge."
          },
          {
            "name": "angleToleranceRadians",
            "type": "System.Double",
            "summary": "Edge must be within this angle tolerance in order for contiguous edges to be combined into a single edge."
          }
        ],
        "returns": "The merged surfaces as a Brep if successful, None if not successful."
      },
      {
        "signature": "Brep[] SplitDisjointPieces(Brep brep, out List<int[]> indexMap)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Separates, or splits, a disjoint Brep into separate Breps.",
        "since": "8.15",
        "parameters": [
          {
            "name": "brep",
            "type": "Brep",
            "summary": "The disjoint Brep to separate."
          },
          {
            "name": "indexMap",
            "type": "List<int[]>",
            "summary": "List of integer arrays, one for each result, containing all input Brep face indices that went into making each result. Note, this can be null."
          }
        ],
        "returns": "An array of Brep pieces if successful, otherwise an empty array if the Brep is not disjoint or on error."
      },
      {
        "signature": "Brep[] SplitDisjointPieces(Brep brep)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Separates, or splits, a disjoint Brep into separate Breps.",
        "since": "8.15",
        "parameters": [
          {
            "name": "brep",
            "type": "Brep",
            "summary": "The disjoint Brep to separate."
          }
        ],
        "returns": "An array of Brep pieces if successful, otherwise an empty array if the Brep is not disjoint or on error."
      },
      {
        "signature": "Brep TryConvertBrep(GeometryBase geometry)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Attempts to convert a generic Geometry object into a Brep.",
        "since": "5.0",
        "parameters": [
          {
            "name": "geometry",
            "type": "GeometryBase",
            "summary": "Geometry to convert, not all types of GeometryBase can be represented by BReps."
          }
        ],
        "returns": "Brep if a brep form could be created or None if this is not possible. If geometry was of type Brep to begin with, the same object is returned, i.e. it is not duplicated."
      },
      {
        "signature": "System.Int32 AddEdgeCurve(Curve curve)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Add a 3d curve used by the brep edges",
        "since": "5.4",
        "returns": "Index used to reference this geometry in the edge curve list"
      },
      {
        "signature": "System.Int32 AddSurface(Surface surface)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Adds a 3D surface used by BrepFace.",
        "since": "5.0",
        "parameters": [
          {
            "name": "surface",
            "type": "Surface",
            "summary": "A copy of the surface is added to this brep."
          }
        ],
        "returns": "Index that should be used to reference the geometry.  \n-1 is returned if the input is not acceptable."
      },
      {
        "signature": "System.Int32 AddTrimCurve(Curve curve)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Add a 2d curve used by the brep trims",
        "since": "5.4",
        "returns": "Index used to reference this geometry in the trimming curve list"
      },
      {
        "signature": "System.Void Append(Brep other)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Appends a copy of another brep to this and updates indices of appended brep parts.  Duplicates are not removed",
        "since": "5.4"
      },
      {
        "signature": "Brep CapPlanarHoles(System.Double tolerance)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns a new Brep that is equivalent to this Brep with all planar holes capped.",
        "since": "5.0",
        "parameters": [
          {
            "name": "tolerance",
            "type": "System.Double",
            "summary": "Tolerance to use for capping."
          }
        ],
        "returns": "New brep on success. None on error."
      },
      {
        "signature": "System.Boolean ClosestPoint(Point3d testPoint, out Point3d closestPoint, out ComponentIndex ci, out System.Double s, out System.Double t, System.Double maximumDistance, out Vector3d normal)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Finds a point on the Brep that is closest to testPoint. The method searches all Brep faces looking for the one closest to testPoint. When found, if the closest point falls on the inactive region of the face, then the method finds the face's edge that is closest to testPoint.",
        "since": "5.0",
        "parameters": [
          {
            "name": "testPoint",
            "type": "Point3d",
            "summary": "Base point to project to surface."
          },
          {
            "name": "closestPoint",
            "type": "Point3d",
            "summary": "Location of the closest Brep point."
          },
          {
            "name": "ci",
            "type": "ComponentIndex",
            "summary": "Component index of the Brep component that contains the closest point. Possible component index types are ComponentIndexType.BrepEdge and ComponentIndexType.BrepFace."
          },
          {
            "name": "s",
            "type": "System.Double",
            "summary": "If ci.ComponentIndexType == ComponentIndexType.BrepEdge, then s is the parameter of the closest edge point."
          },
          {
            "name": "t",
            "type": "System.Double",
            "summary": "If ci.ComponentIndexType == ComponentIndexType.BrepFace, then (s,t) is the parameter of the closest face point."
          },
          {
            "name": "maximumDistance",
            "type": "System.Double",
            "summary": "If maximumDistance > 0, then only points whose distance is <= maximumDistance will be returned. Using a positive value of maximumDistance can substantially speed up the search."
          },
          {
            "name": "normal",
            "type": "Vector3d",
            "summary": "If ci.ComponentIndexType == ComponentIndexType.BrepEdge, then this is the tangent to the edge at s. If ci.ComponentIndexType == ComponentIndexType.BrepFace, then this is the normal to the face at (s,t)."
          }
        ],
        "returns": "True if the operation succeeded, False otherwise."
      },
      {
        "signature": "Point3d ClosestPoint(Point3d testPoint)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Finds a point on the brep that is closest to testPoint.",
        "since": "5.0",
        "parameters": [
          {
            "name": "testPoint",
            "type": "Point3d",
            "summary": "Base point to project to brep."
          }
        ],
        "returns": "The point on the Brep closest to testPoint or Point3d.Unset if the operation failed."
      },
      {
        "signature": "System.Void Compact()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Deletes any unreferenced objects from arrays, re-indexes as needed, and shrinks arrays to minimum required size. Uses CUllUnused* members to delete any unreferenced objects from arrays.",
        "since": "5.0"
      },
      {
        "signature": "System.Boolean CullUnused2dCurves()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Culls 3d curves not referenced by an edge.",
        "since": "5.0",
        "returns": "True if operation succeeded; False otherwise."
      },
      {
        "signature": "System.Boolean CullUnused3dCurves()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Culls 2d curves not referenced by a trim.",
        "since": "5.0",
        "returns": "True if operation succeeded; False otherwise."
      },
      {
        "signature": "System.Boolean CullUnusedEdges()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Culls edges with m_edge_index == -1.",
        "since": "5.0",
        "returns": "True if operation succeeded; False otherwise."
      },
      {
        "signature": "System.Boolean CullUnusedFaces()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Culls faces with m_face_index == -1.",
        "since": "5.0",
        "returns": "True if operation succeeded; False otherwise."
      },
      {
        "signature": "System.Boolean CullUnusedLoops()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Culls loops with m_loop_index == -1.",
        "since": "5.0",
        "returns": "True if operation succeeded; False otherwise."
      },
      {
        "signature": "System.Boolean CullUnusedSurfaces()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Culls surfaces not referenced by a face.",
        "since": "5.0",
        "returns": "True if operation succeeded; False otherwise."
      },
      {
        "signature": "System.Boolean CullUnusedTrims()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Culls trims with m_trim_index == -1.",
        "since": "5.0",
        "returns": "True if operation succeeded; False otherwise."
      },
      {
        "signature": "System.Boolean CullUnusedVertices()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Culls vertices with m_vertex_index == -1.",
        "since": "5.0",
        "returns": "True if operation succeeded; False otherwise."
      },
      {
        "signature": "System.Void DestroyRegionTopology()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Destroys a Brep's region topology information.",
        "since": "7.13"
      },
      {
        "signature": "GeometryBase Duplicate()",
        "modifiers": ["public", "override"],
        "protected": false,
        "virtual": false,
        "summary": "Copies this brep.",
        "since": "5.0",
        "returns": "A brep."
      },
      {
        "signature": "Brep DuplicateBrep()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Same as <b>Duplicate()</b> , but already performs a cast to a brep.  \nThis cast always succeeds.",
        "since": "5.0",
        "returns": "A brep."
      },
      {
        "signature": "Curve[] DuplicateEdgeCurves()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Duplicate all the edges of this Brep.",
        "since": "5.0",
        "returns": "An array of edge curves."
      },
      {
        "signature": "Curve[] DuplicateEdgeCurves(System.Boolean nakedOnly)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Duplicate edges of this Brep.",
        "since": "5.0",
        "parameters": [
          {
            "name": "nakedOnly",
            "type": "System.Boolean",
            "summary": "If true, then only the \"naked\" edges are duplicated. If false, then all edges are duplicated."
          }
        ],
        "returns": "Array of edge curves on success."
      },
      {
        "signature": "Curve[] DuplicateNakedEdgeCurves(System.Boolean nakedOuter, System.Boolean nakedInner)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Duplicate naked edges of this Brep.",
        "since": "5.7",
        "parameters": [
          {
            "name": "nakedOuter",
            "type": "System.Boolean",
            "summary": "Return naked edges that are part of an outer loop."
          },
          {
            "name": "nakedInner",
            "type": "System.Boolean",
            "summary": "Return naked edges that are part of an inner loop."
          }
        ],
        "returns": "Array of edge curves on success."
      },
      {
        "signature": "Brep DuplicateSubBrep(IEnumerable<int> faceIndices)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Copy a subset of this Brep into another Brep.",
        "since": "5.0",
        "parameters": [
          {
            "name": "faceIndices",
            "type": "IEnumerable<int>",
            "summary": "array of face indices in this brep to copy. (If any values in faceIndices are out of range or if faceIndices contains duplicates, this function will return null.)"
          }
        ],
        "returns": "A brep, or None on error."
      },
      {
        "signature": "Point3d[] DuplicateVertices()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Duplicate all the corner vertices of this Brep.",
        "since": "5.0",
        "returns": "An array or corner vertices."
      },
      {
        "signature": "System.Void FindCoincidentBrepComponents(Point3d point, System.Double tolerance, out System.Int32[] faces, out System.Int32[] edges, out System.Int32[] vertices)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Find the indices of all brep faces, edges and vertices that are within tolerance of a test-point.",
        "since": "6.2",
        "parameters": [
          {
            "name": "point",
            "type": "Point3d",
            "summary": "Test point."
          },
          {
            "name": "tolerance",
            "type": "System.Double",
            "summary": "Coincidence tolerance."
          },
          {
            "name": "faces",
            "type": "System.Int32[]",
            "summary": "Array of BrepFace indices."
          },
          {
            "name": "edges",
            "type": "System.Int32[]",
            "summary": "Array of BrepEdge indices."
          },
          {
            "name": "vertices",
            "type": "System.Int32[]",
            "summary": "Array of BrepVertex indices."
          }
        ]
      },
      {
        "signature": "System.Void Flip()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Reverses entire brep orientation of all faces.",
        "since": "5.0"
      },
      {
        "signature": "System.Double GetArea()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Compute the Area of the Brep. If you want proper Area data with moments and error information, use the AreaMassProperties class.",
        "since": "5.0",
        "returns": "The area of the Brep."
      },
      {
        "signature": "System.Double GetArea(System.Double relativeTolerance, System.Double absoluteTolerance)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Compute the Area of the Brep. If you want proper Area data with moments and error information, use the AreaMassProperties class.",
        "since": "5.0",
        "parameters": [
          {
            "name": "relativeTolerance",
            "type": "System.Double",
            "summary": "Relative tolerance to use for area calculation."
          },
          {
            "name": "absoluteTolerance",
            "type": "System.Double",
            "summary": "Absolute tolerance to use for area calculation."
          }
        ],
        "returns": "The area of the Brep."
      },
      {
        "signature": "Brep[] GetConnectedComponents()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "If this Brep has two or more connected components, then duplicates of the connected components are returned.",
        "since": "7.18",
        "returns": "An array of connected components, or an empty array."
      },
      {
        "signature": "System.Boolean GetPointInside(System.Double tolerance, out Point3d point)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Finds a point inside of a solid Brep.",
        "since": "6.19",
        "parameters": [
          {
            "name": "tolerance",
            "type": "System.Double",
            "summary": "Used for intersecting rays and is not necessarily related to the distance from the brep to the found point. When in doubt, use the document's model absolute tolerance."
          },
          {
            "name": "point",
            "type": "Point3d",
            "summary": "A point inside the solid Brep."
          }
        ],
        "returns": "Returns False if the input is not solid and manifold, if the Brep's bounding box is less than 2.0 * tolerance wide, or if no point could be found due to ray shooting or other errors. Otherwise, True is returned."
      },
      {
        "signature": "BrepRegion[] GetRegions()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets an array containing all regions in this brep.",
        "since": "5.0",
        "returns": "An array of regions in this brep. This array can be empty, but not null."
      },
      {
        "signature": "Brep[] GetTangentConnectedComponents(System.Double angleTolerance, System.Boolean includeMeshes)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "If this Brep has two or more components connected by tangent edges, then duplicates of the connected components are returned.",
        "since": "8.7",
        "parameters": [
          {
            "name": "angleTolerance",
            "type": "System.Double",
            "summary": "The angle tolerance, in radians, used to determine tangent edges."
          },
          {
            "name": "includeMeshes",
            "type": "System.Boolean",
            "summary": "If true, any cached meshes on this Brep are copied to the returned Breps."
          }
        ],
        "returns": "An array of tangent edge connected components, or an empty array."
      },
      {
        "signature": "System.Double GetVolume()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Compute the Volume of the Brep. If you want proper Volume data with moments and error information, use the VolumeMassProperties class.",
        "since": "5.0",
        "returns": "The volume of the Brep."
      },
      {
        "signature": "System.Double GetVolume(System.Double relativeTolerance, System.Double absoluteTolerance)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Compute the Volume of the Brep. If you want proper Volume data with moments and error information, use the VolumeMassProperties class.",
        "since": "5.0",
        "parameters": [
          {
            "name": "relativeTolerance",
            "type": "System.Double",
            "summary": "Relative tolerance to use for area calculation."
          },
          {
            "name": "absoluteTolerance",
            "type": "System.Double",
            "summary": "Absolute tolerance to use for area calculation."
          }
        ],
        "returns": "The volume of the Brep."
      },
      {
        "signature": "Curve[] GetWireframe(System.Int32 density)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Constructs all the Wireframe curves for this Brep.",
        "since": "5.0",
        "parameters": [
          {
            "name": "density",
            "type": "System.Int32",
            "summary": "Wireframe density. Valid values range between -1 and 99."
          }
        ],
        "returns": "An array of Wireframe curves or None on failure."
      },
      {
        "signature": "Brep InsetFaces(IEnumerable<int> faceIndices, System.Double distance, System.Boolean loose, System.Boolean ignoreSeams, System.Boolean creaseCorners, System.Double tolerance, System.Double angleTolerance)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Individually insets faces of a brep by offsetting the faces outer edges inward and inner edges out then splitting the face with the offset curves.",
        "since": "8.8",
        "parameters": [
          {
            "name": "faceIndices",
            "type": "IEnumerable<int>",
            "summary": "the indices of the faces to inset"
          },
          {
            "name": "distance",
            "type": "System.Double",
            "summary": "The distance to offset along the face"
          },
          {
            "name": "loose",
            "type": "System.Boolean",
            "summary": "If true, offset by moving edit points otherwise offset within tolerance."
          },
          {
            "name": "ignoreSeams",
            "type": "System.Boolean",
            "summary": "If true, the seam edges are not offset and adjacent edges are extended to meet the seam. Otherwise offset normally."
          },
          {
            "name": "creaseCorners",
            "type": "System.Boolean",
            "summary": "If true, splitting curves will be made between the creases on edge curves and creases on the inset curves."
          },
          {
            "name": "tolerance",
            "type": "System.Double",
            "summary": "The fitting tolerance for the offset. When in doubt, use the document's absolute tolerance."
          },
          {
            "name": "angleTolerance",
            "type": "System.Double",
            "summary": "The angle tolerance in radians for identifying creases when creasing corners.  When in doubt, use the document's angle tolerance."
          }
        ],
        "returns": "The brep with inset faces on success. Null on error."
      },
      {
        "signature": "System.Boolean IsBox()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Verifies a Brep is in the form of a solid box.",
        "since": "7.10",
        "returns": "True if the Brep is a solid box, False otherwise."
      },
      {
        "signature": "System.Boolean IsBox(System.Double tolerance)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Verifies a Brep is in the form of a solid box.",
        "since": "7.10",
        "parameters": [
          {
            "name": "tolerance",
            "type": "System.Double",
            "summary": "The tolerance used to determine if faces are planar and to compare face normals."
          }
        ],
        "returns": "True if the Brep is a solid box, False otherwise."
      },
      {
        "signature": "System.Boolean IsDuplicate(Brep other, System.Double tolerance)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "See if this and other are same brep geometry.",
        "since": "5.0",
        "parameters": [
          {
            "name": "other",
            "type": "Brep",
            "summary": "other brep."
          },
          {
            "name": "tolerance",
            "type": "System.Double",
            "summary": "tolerance to use when comparing control points."
          }
        ],
        "returns": "True if breps are the same."
      },
      {
        "signature": "System.Boolean IsExtrusion()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Determines if the Brep is a portion of an extrusion within RhinoMath.ZeroTolerance.",
        "since": "9.0",
        "returns": "True if the Brep is an extrusion."
      },
      {
        "signature": "System.Boolean IsExtrusion(System.Double tolerance)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Determines if the Brep is a portion of an extrusion within a given tolerance.",
        "since": "9.0",
        "parameters": [
          {
            "name": "tolerance",
            "type": "System.Double",
            "summary": "tolerance to use when checking."
          }
        ],
        "returns": "True if the Brep is an extrusion."
      },
      {
        "signature": "System.Boolean IsOrientedManifold(out System.Boolean isOriented, out System.Boolean hasBoundary)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Test a Brep to see if it is an oriented manifold. Non manifold Breps have at least one edge that is shared among three or more faces.",
        "since": "8.26",
        "parameters": [
          {
            "name": "isOriented",
            "type": "System.Boolean",
            "summary": "Set to True if the Brep is an oriented manifold, or False if the Brep is not an oriented manifold."
          },
          {
            "name": "hasBoundary",
            "type": "System.Boolean",
            "summary": "Set to True if the Brep has a boundary edge, or False if the Brep does not have a boundary edge."
          }
        ],
        "returns": "If the Brep is a manifold, True is returned. Otherwise False is returned."
      },
      {
        "signature": "System.Boolean IsPointInside(Point3d point, System.Double tolerance, System.Boolean strictlyIn)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Determines if point is inside a Brep.  This question only makes sense when the brep is a closed and manifold.  This function does not check for closed or manifold, so result is not valid in those cases.  Intersects a line through point with brep, finds the intersection point Q closest to point, and looks at face normal at Q.  If the point Q is on an edge or the intersection is not transverse at Q, then another line is used.",
        "since": "5.0",
        "parameters": [
          {
            "name": "point",
            "type": "Point3d",
            "summary": "3d point to test."
          },
          {
            "name": "tolerance",
            "type": "System.Double",
            "summary": "3d distance tolerance used for intersection and determining strict inclusion. A good default is RhinoMath.SqrtEpsilon."
          },
          {
            "name": "strictlyIn",
            "type": "System.Boolean",
            "summary": "if true, point is in if inside brep by at least tolerance. if false, point is in if truly in or within tolerance of boundary."
          }
        ],
        "returns": "True if point is in, False if not."
      },
      {
        "signature": "System.Boolean IsValidGeometry(out System.String log)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Expert user function that tests the brep to see if its geometry information is valid. The value of brep.IsValidTopology() must be True before brep.IsValidGeometry() can be safely called.",
        "since": "5.0",
        "parameters": [
          {
            "name": "log",
            "type": "System.String",
            "summary": "If the brep geometry is not valid, then a brief description of the problem in English is assigned to this out parameter. The information is suitable for low-level debugging purposes by programmers and is not intended to be useful as a high level user interface tool. Otherwise, <b>string.Empty</b> ."
          }
        ],
        "returns": "A value that indicates whether the geometry is valid."
      },
      {
        "signature": "System.Boolean IsValidTolerancesAndFlags(out System.String log)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Expert user function that tests the brep to see if its tolerances and flags are valid.  The values of brep.IsValidTopology() and brep.IsValidGeometry() must be True before brep.IsValidTolerancesAndFlags() can be safely called.",
        "since": "5.0",
        "parameters": [
          {
            "name": "log",
            "type": "System.String",
            "summary": "If the brep tolerance or flags are not valid, then a brief description of the problem in English is assigned to this out parameter. The information is suitable for low-level debugging purposes by programmers and is not intended to be useful as a high level user interface tool. Otherwise, <b>string.Empty</b> ."
          }
        ],
        "returns": "A value that indicates"
      },
      {
        "signature": "System.Boolean IsValidTopology(out System.String log)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Tests the brep to see if its topology information is valid.",
        "since": "5.0",
        "parameters": [
          {
            "name": "log",
            "type": "System.String",
            "summary": "If the brep topology is not valid, then a brief English description of the problem is appended to the log.  The information appended to log is suitable for low-level debugging purposes by programmers and is not intended to be useful as a high level user interface tool."
          }
        ],
        "returns": "True if the topology is valid; False otherwise."
      },
      {
        "signature": "System.Boolean Join(Brep otherBrep, System.Double tolerance, System.Boolean compact)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "If any edges of this brep overlap edges of otherBrep, merge a copy of otherBrep into this brep joining all edges that overlap within tolerance.",
        "since": "5.0",
    "remarks": "if no edges overlap, this brep is unchanged. otherBrep is copied if it is merged with this, and otherBrep is always unchanged Use this to join a list of breps in a series. When joining multiple breps in series, compact should be set to false. Call compact on the last Join.",
        "parameters": [
          {
            "name": "otherBrep",
            "type": "Brep",
            "summary": "Brep to be added to this brep."
          },
          {
            "name": "tolerance",
            "type": "System.Double",
            "summary": "3d distance tolerance for detecting overlapping edges."
          },
          {
            "name": "compact",
            "type": "System.Boolean",
            "summary": "if true, set brep flags and tolerances, remove unused faces and edges."
          }
        ],
        "returns": "True if any edges were joined."
      },
      {
        "signature": "System.Boolean JoinEdges(System.Int32 edgeIndex0, System.Int32 edgeIndex1, System.Double joinTolerance, System.Boolean compact)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Joins two naked edges, or edges that are coincident or close together.",
        "since": "6.0",
        "parameters": [
          {
            "name": "edgeIndex0",
            "type": "System.Int32",
            "summary": "The first edge index."
          },
          {
            "name": "edgeIndex1",
            "type": "System.Int32",
            "summary": "The second edge index."
          },
          {
            "name": "joinTolerance",
            "type": "System.Double",
            "summary": "The join tolerance."
          },
          {
            "name": "compact",
            "type": "System.Boolean",
            "summary": "If joining more than one edge pair and want the edge indices of subsequent pairs to remain valid, set to false. But then call Brep.Compact() on the final result."
          }
        ],
        "returns": "True if successful, False otherwise."
      },
      {
        "signature": "System.Int32 JoinNakedEdges(System.Double tolerance)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Joins naked edge pairs within the same brep that overlap within tolerance.",
        "since": "5.0",
        "parameters": [
          {
            "name": "tolerance",
            "type": "System.Double",
            "summary": "The tolerance value."
          }
        ],
        "returns": "number of joins made."
      },
      {
        "signature": "System.Boolean MakeValidForV2()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "No support is available for this function.  \nExpert user function that converts all geometry in Brep to NURB form.",
        "since": "6.0",
    "remarks": "Don't call this function unless you know exactly what you are doing."
      },
      {
        "signature": "System.Boolean MergeCoplanarFaces(System.Double tolerance, System.Double angleTolerance)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Merges adjacent coplanar faces into single faces.",
        "since": "6.10",
        "parameters": [
          {
            "name": "tolerance",
            "type": "System.Double",
            "summary": "Tolerance for determining when edges are adjacent. When in doubt, use the document's ModelAbsoluteTolerance property."
          },
          {
            "name": "angleTolerance",
            "type": "System.Double",
            "summary": "Angle tolerance, in radians, for determining when faces are parallel. When in doubt, use the document's ModelAngleToleranceRadians property."
          }
        ],
        "returns": "True if faces were merged, False if no faces were merged."
      },
      {
        "signature": "System.Boolean MergeCoplanarFaces(System.Double tolerance)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Merges adjacent coplanar faces into single faces.",
        "since": "5.0",
        "parameters": [
          {
            "name": "tolerance",
            "type": "System.Double",
            "summary": "Tolerance for determining when edges are adjacent. When in doubt, use the document's ModelAbsoluteTolerance property."
          }
        ],
        "returns": "True if faces were merged, False if no faces were merged."
      },
      {
        "signature": "System.Boolean MergeCoplanarFaces(System.Int32 faceIndex, System.Double tolerance, System.Double angleTolerance)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Merges coplanar faces adjacent to Brep face into a single face.",
        "since": "7.19",
        "parameters": [
          {
            "name": "faceIndex",
            "type": "System.Int32",
            "summary": "The index of the Brep face to search."
          },
          {
            "name": "tolerance",
            "type": "System.Double",
            "summary": "Tolerance for determining when edges are adjacent. When in doubt, use the document's ModelAbsoluteTolerance property."
          },
          {
            "name": "angleTolerance",
            "type": "System.Double",
            "summary": "Angle tolerance, in radians, for determining when faces are parallel. When in doubt, use the document's ModelAngleToleranceRadians property."
          }
        ],
        "returns": "True if faces were merged, False if no faces were merged."
      },
      {
        "signature": "System.Boolean MergeCoplanarFaces(System.Int32 faceIndex0, System.Int32 faceIndex1, System.Double tolerance, System.Double angleTolerance)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Merges two coplanar, adjacent Brep faces into a single face.",
        "since": "7.19",
        "parameters": [
          {
            "name": "faceIndex0",
            "type": "System.Int32",
            "summary": "The index of the first Brep face."
          },
          {
            "name": "faceIndex1",
            "type": "System.Int32",
            "summary": "The index of the second Brep face."
          },
          {
            "name": "tolerance",
            "type": "System.Double",
            "summary": "Tolerance for determining when edges are adjacent. When in doubt, use the document's ModelAbsoluteTolerance property."
          },
          {
            "name": "angleTolerance",
            "type": "System.Double",
            "summary": "Angle tolerance, in radians, for determining when faces are parallel. When in doubt, use the document's ModelAngleToleranceRadians property."
          }
        ],
        "returns": "True if faces were merged, False if no faces were merged."
      },
      {
        "signature": "Brep PushPullExtend(System.Int32 faceIndex, Transform transform, System.Double tolerance)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "If the brep.Faces[faceIndex] is planar, and all the adjacent faces are planar, this function transforms brep.Faces[faceIndex] with the transform parameter and recomputes the adjacent faces. See the PushPull commands extend mode.",
        "since": "8.16",
        "parameters": [
          {
            "name": "faceIndex",
            "type": "System.Int32",
            "summary": "The index of the face being transformed"
          },
          {
            "name": "transform",
            "type": "Transform",
            "summary": "The transformation"
          },
          {
            "name": "tolerance",
            "type": "System.Double",
            "summary": "The tolerance for planarity checks. When in doubt, use the document's absolute tolerance."
          }
        ],
        "returns": "The brep with the transformed face on success. Null on error."
      },
      {
        "signature": "System.Void RebuildTrimsForV2(BrepFace face, NurbsSurface nurbsSurface)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "No support is available for this function.  \nExpert user function used by MakeValidForV2 to convert trim     curves from one surface to its NURBS form. After calling this function,     you need to change the surface of the face to a NurbsSurface.",
        "since": "5.0",
    "remarks": "Don't call this function unless you know exactly what you are doing.",
        "parameters": [
          {
            "name": "face",
            "type": "BrepFace",
            "summary": "Face whose underlying surface has a parameterization that is different from its NURBS form."
          },
          {
            "name": "nurbsSurface",
            "type": "NurbsSurface",
            "summary": "NURBS form of the face's underlying surface."
          }
        ]
      },
      {
        "signature": "System.Boolean RemoveFins()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Recursively removes any Brep face with a naked edge. This function is only useful for non-manifold Breps.",
        "since": "7.0",
        "returns": "True if successful, False if everything is removed or if the result has any Brep edges with more than two Brep trims."
      },
      {
        "signature": "Brep RemoveHoles(IEnumerable<ComponentIndex> loops, System.Double tolerance)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Removes inner loops, or holes, in a Brep.",
        "since": "6.8",
        "parameters": [
          {
            "name": "loops",
            "type": "IEnumerable<ComponentIndex>",
            "summary": "A list of BrepLoop component indexes, where BrepLoop.LoopType == Rhino.Geometry.BrepLoopType.Inner."
          },
          {
            "name": "tolerance",
            "type": "System.Double",
            "summary": "The tolerance. When in doubt, use the document's model absolute tolerance."
          }
        ],
        "returns": "The Brep without holes if successful, None otherwise."
      },
      {
        "signature": "Brep RemoveHoles(System.Double tolerance)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Remove all inner loops, or holes, in a Brep.",
        "since": "6.0",
        "parameters": [
          {
            "name": "tolerance",
            "type": "System.Double",
            "summary": "The tolerance. When in doubt, use the document's model absolute tolerance."
          }
        ],
        "returns": "The Brep without holes if successful, None otherwise."
      },
      {
        "signature": "System.Boolean Repair(System.Double tolerance)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Fills in missing or fixes incorrect component information from a Brep. Useful when reading Brep information from other file formats that do not provide as complete of a Brep definition as required by Rhino.",
        "since": "6.0",
        "parameters": [
          {
            "name": "tolerance",
            "type": "System.Double",
            "summary": "The repair tolerance. When in doubt, use the document's model absolute tolerance."
          }
        ],
        "returns": "True on success."
      },
      {
        "signature": "Brep ReplaceEdge(IEnumerable<int> edgeIndices, BrepReplaceEdgeMethod method, Curve replacementCurve, System.Double tolerance)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Re-trims the given edges of this single-face Brep, replacing each deleted edge with new boundary geometry. This is the SDK equivalent of the ReplaceEdge command.",
        "since": "9.0",
        "parameters": [
          {
            "name": "edgeIndices",
            "type": "IEnumerable<int>",
            "summary": "The indices of the edges to replace."
          },
          {
            "name": "method",
            "type": "BrepReplaceEdgeMethod",
            "summary": "How the deleted edges are re-trimmed."
          },
          {
            "name": "replacementCurve",
            "type": "Curve",
            "summary": "The curve used to re-trim whenis  <b>BrepReplaceEdgeMethod.Curve</b> ; ignored (may be null) otherwise."
          },
          {
            "name": "tolerance",
            "type": "System.Double",
            "summary": "The tolerance. When in doubt, use the document's model absolute tolerance."
          }
        ],
        "returns": "The modified Brep if successful, None otherwise (for example, if this Brep has more than one face)."
      },
      {
        "signature": "System.Void SetTolerancesBoxesAndFlags()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Set tolerances and flags in a Brep.",
        "since": "6.0"
      },
      {
        "signature": "System.Void SetTolerancesBoxesAndFlags(System.Boolean bLazy, System.Boolean bSetVertexTolerances, System.Boolean bSetEdgeTolerances, System.Boolean bSetTrimTolerances, System.Boolean bSetTrimIsoFlags, System.Boolean bSetTrimTypeFlags, System.Boolean bSetLoopTypeFlags, System.Boolean bSetTrimBoxes)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Set tolerances and flags in a Brep.",
        "since": "6.0",
        "parameters": [
          {
            "name": "bLazy",
            "type": "System.Boolean",
            "summary": "If true, only flags and tolerances that are not set will be calculated."
          },
          {
            "name": "bSetVertexTolerances",
            "type": "System.Boolean",
            "summary": "Set True to compute BrepVertex tolerances."
          },
          {
            "name": "bSetEdgeTolerances",
            "type": "System.Boolean",
            "summary": "Set True to compute BrepEdge tolerances."
          },
          {
            "name": "bSetTrimTolerances",
            "type": "System.Boolean",
            "summary": "Set True to compute BrepTrim tolerances."
          },
          {
            "name": "bSetTrimIsoFlags",
            "type": "System.Boolean",
            "summary": "Set True to compute BrepTrim.IsoStatus values."
          },
          {
            "name": "bSetTrimTypeFlags",
            "type": "System.Boolean",
            "summary": "Set True to compute BrepTrim.TrimType values."
          },
          {
            "name": "bSetLoopTypeFlags",
            "type": "System.Boolean",
            "summary": "Set True to compute BrepLoop.BrepLoopType values."
          },
          {
            "name": "bSetTrimBoxes",
            "type": "System.Boolean",
            "summary": "Set True to compute BrepTrim bounding boxes."
          }
        ]
      },
      {
        "signature": "System.Void SetTrimIsoFlags()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "This function can be used to set the BrepTrim::m_iso flag. It is intended to be used when creating a Brep from a definition that does not include compatible parameter space type information.",
        "since": "5.4"
      },
      {
        "signature": "System.Void SetVertices()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "This function can be used to compute vertex information for a b-rep when everything but the Vertices array is properly filled in. It is intended to be used when creating a Brep from a definition that does not include explicit vertex information.",
        "since": "5.4"
      },
      {
        "signature": "Brep[] Split(Brep cutter, System.Double intersectionTolerance, out System.Boolean toleranceWasRaised)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Splits a Brep into pieces using a Brep as a cutter.",
        "since": "5.0",
        "parameters": [
          {
            "name": "cutter",
            "type": "Brep",
            "summary": "The Brep to use as a cutter."
          },
          {
            "name": "intersectionTolerance",
            "type": "System.Double",
            "summary": "The tolerance with which to compute intersections."
          },
          {
            "name": "toleranceWasRaised",
            "type": "System.Boolean",
            "summary": "Set to True if the split failed at intersectionTolerance but succeeded when the tolerance was increased to twice intersectionTolerance."
          }
        ],
        "returns": "A new array of Breps. This array can be empty."
      },
      {
        "signature": "Brep[] Split(Brep cutter, System.Double intersectionTolerance)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Splits a Brep into pieces using a Brep as a cutter.",
        "since": "5.0",
        "parameters": [
          {
            "name": "cutter",
            "type": "Brep",
            "summary": "The Brep to use as a cutter."
          },
          {
            "name": "intersectionTolerance",
            "type": "System.Double",
            "summary": "The tolerance with which to compute intersections."
          }
        ],
        "returns": "A new array of Breps. This array can be empty."
      },
      {
        "signature": "Brep[] Split(IEnumerable<Brep> cutters, System.Double intersectionTolerance)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Splits a Brep into pieces using Breps as cutters.",
        "since": "6.13",
        "parameters": [
          {
            "name": "cutters",
            "type": "IEnumerable<Brep>",
            "summary": "One or more Breps to use as cutters."
          },
          {
            "name": "intersectionTolerance",
            "type": "System.Double",
            "summary": "The tolerance with which to compute intersections."
          }
        ],
        "returns": "A new array of Breps. This array can be empty."
      },
      {
        "signature": "Brep[] Split(IEnumerable<Curve> cutters, System.Double intersectionTolerance)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Splits a Brep into pieces using curves, at least partially on the Brep, as cutters.",
        "since": "6.13",
        "parameters": [
          {
            "name": "cutters",
            "type": "IEnumerable<Curve>",
            "summary": "The splitting curves. Only the portion of the curve on the Brep surface will be used for cutting."
          },
          {
            "name": "intersectionTolerance",
            "type": "System.Double",
            "summary": "The tolerance with which to compute intersections."
          }
        ],
        "returns": "A new array of Breps. This array can be empty."
      },
      {
        "signature": "Brep[] Split(IEnumerable<GeometryBase> cutters, Vector3d normal, System.Boolean planView, System.Double intersectionTolerance)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Splits a Brep into pieces using a combination of curves, to be extruded, and Breps as cutters.",
        "since": "6.13",
    "remarks": "A Curve in cutters is extruded to produce a surface to use as a cutter. The extrusion direction is chosen, as in the Rhino Split command, based on the properties of the active view. In particular the construction plane Normal and whether the active view is a plan view, a parallel projection with construction plane normal as the view direction. If planView is False and the curve is planar then the curve is extruded perpendicular to the curve, otherwise the curve is extruded in the normal direction.",
        "parameters": [
          {
            "name": "cutters",
            "type": "IEnumerable<GeometryBase>",
            "summary": "The curves, surfaces, faces and Breps to be used as cutters. Any other geometry is ignored."
          },
          {
            "name": "normal",
            "type": "Vector3d",
            "summary": "A construction plane normal, used in deciding how to extrude a curve into a cutter."
          },
          {
            "name": "planView",
            "type": "System.Boolean",
            "summary": "Set True if the assume view is a plan, or parallel projection, view."
          },
          {
            "name": "intersectionTolerance",
            "type": "System.Double",
            "summary": "The tolerance with which to compute intersections."
          }
        ],
        "returns": "A new array of Breps. This array can be empty."
      },
      {
        "signature": "System.Void Standardize()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Standardizes all trims, edges, and faces in the brep. After standardizing, there may be unused curves and surfaces in the brep.  Call Brep.Compact to remove these unused curves and surfaces.",
        "since": "5.0"
      },
      {
        "signature": "System.Boolean TransformComponent(IEnumerable<ComponentIndex> components, Transform xform, System.Double tolerance, System.Double timeLimit, System.Boolean useMultipleThreads)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Transform an array of Brep components, bend neighbors to match, and leave the rest fixed.",
        "since": "6.0",
        "parameters": [
          {
            "name": "components",
            "type": "IEnumerable<ComponentIndex>",
            "summary": "The Brep components to transform."
          },
          {
            "name": "xform",
            "type": "Transform",
            "summary": "The transformation to apply."
          },
          {
            "name": "tolerance",
            "type": "System.Double",
            "summary": "The desired fitting tolerance to use when bending faces that share edges with both fixed and transformed components."
          },
          {
            "name": "timeLimit",
            "type": "System.Double",
            "summary": "If the deformation is extreme, it can take a long time to calculate the result. If time_limit > 0, then the value specifies the maximum amount of time in seconds you want to spend before giving up."
          },
          {
            "name": "useMultipleThreads",
            "type": "System.Boolean",
            "summary": "True if multiple threads can be used."
          }
        ],
        "returns": "True if successful, False otherwise."
      },
      {
        "signature": "Brep[] Trim(Brep cutter, System.Double intersectionTolerance)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Trims a brep with an oriented cutter. The parts of the brep that lie inside (opposite the normal) of the cutter are retained while the parts to the outside (in the direction of the normal) are discarded.  If the Cutter is closed, then a connected component of the Brep that does not intersect the cutter is kept if and only if it is contained in the inside of cutter. That is the region bounded by cutter opposite from the normal of cutter, If cutter is not closed all these components are kept.",
        "since": "5.0",
        "parameters": [
          {
            "name": "cutter",
            "type": "Brep",
            "summary": "A cutting brep."
          },
          {
            "name": "intersectionTolerance",
            "type": "System.Double",
            "summary": "A tolerance value with which to compute intersections."
          }
        ],
        "returns": "This Brep is not modified, the trim results are returned in an array."
      },
      {
        "signature": "Brep[] Trim(Plane cutter, System.Double intersectionTolerance)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Trims a Brep with an oriented cutter.  The parts of Brep that lie inside (opposite the normal) of the cutter are retained while the parts to the outside ( in the direction of the normal ) are discarded. A connected component of Brep that does not intersect the cutter is kept if and only if it is contained in the inside of Cutter.  That is the region bounded by cutter opposite from the normal of cutter, or in the case of a Plane cutter the half space opposite from the plane normal.",
        "since": "5.0",
        "parameters": [
          {
            "name": "cutter",
            "type": "Plane",
            "summary": "A cutting plane."
          },
          {
            "name": "intersectionTolerance",
            "type": "System.Double",
            "summary": "A tolerance value with which to compute intersections."
          }
        ],
        "returns": "This Brep is not modified, the trim results are returned in an array."
      },
      {
        "signature": "System.Boolean TryGetExtrusion(out Extrusion extrusion, System.Double tolerance)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Tests a Brep to see if it is an extrusion and returns the extrusion.",
        "since": "9.0",
        "parameters": [
          {
            "name": "extrusion",
            "type": "Extrusion",
            "summary": "On success, the extrusion parameters are filled in."
          },
          {
            "name": "tolerance",
            "type": "System.Double",
            "summary": "tolerance to use when checking."
          }
        ],
        "returns": "True if the Brep is a portion of an extrusion."
      },
      {
        "signature": "System.Boolean TryGetExtrusion(out Extrusion extrusion)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Tests a Brep to see if it is an extrusion within RhinoMath.ZeroTolerance and returns the extrusion.",
        "since": "9.0",
        "parameters": [
          {
            "name": "extrusion",
            "type": "Extrusion",
            "summary": "On success, the extrusion parameters are filled in."
          }
        ],
        "returns": "True if the Brep is an extrusion."
      },
      {
        "signature": "Brep[] UnjoinEdges(IEnumerable<int> edgesToUnjoin)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Un-joins, or separates, edges within the Brep. Note, seams in closed surfaces will not separate.",
        "since": "6.0",
        "parameters": [
          {
            "name": "edgesToUnjoin",
            "type": "IEnumerable<int>",
            "summary": "The indices of the Brep edges to un-join."
          }
        ],
        "returns": "This Brep is not modified, the trim results are returned in an array."
      },
      {
        "signature": "Brep UntrimFace(System.Int32 faceIndex, System.Double tolerance)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Untrims a face completely, expanding it back to its underlying surface: the outer boundary is untrimmed and all inner loops (holes) are removed.",
        "since": "9.0",
        "parameters": [
          {
            "name": "faceIndex",
            "type": "System.Int32",
            "summary": "The index of the face to untrim."
          },
          {
            "name": "tolerance",
            "type": "System.Double",
            "summary": "The tolerance. When in doubt, use the document's model absolute tolerance."
          }
        ],
        "returns": "The untrimmed Brep if successful, None otherwise."
      },
      {
        "signature": "Brep UntrimOuterLoop(System.Int32 faceIndex)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Untrims the outer boundary of a face, expanding the face back to the boundary of its underlying surface. Inner loops (holes) are left in place. The outer boundary is only untrimmed when all of its edges are naked; otherwise the operation fails to avoid corrupting adjacent faces.",
        "since": "9.0",
        "parameters": [
          {
            "name": "faceIndex",
            "type": "System.Int32",
            "summary": "The index of the face to untrim."
          }
        ],
        "returns": "The untrimmed Brep if successful, None otherwise."
      }
    ]
  },
  {
    "namespace": "Rhino.Geometry",
    "name": "Brep.CurveConstraint",
    "dataType": "class",
    "summary": "Variational curve constraint (position)",
    "constructors": [
      {
        "signature": "Brep.CurveConstraint(Curve curve, Continuity continuity)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Subclass constructor for any continuity",
        "parameters": [
          {
            "name": "curve",
            "type": "Curve",
            "summary": "The curve to use"
          },
          {
            "name": "continuity",
            "type": "Continuity",
            "summary": ""
          }
        ]
      },
      {
        "signature": "Brep.CurveConstraint(Curve curve)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Constructor, use curve as positional constraint"
      }
    ],
    "properties": [
      {
        "signature": "Curve Curve",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "The constraint curve",
        "property": ["get"]
      }
    ],
    "fields": [
      {
        "signature": "public Continuity Continuity",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "The constraint continuity"
      }
    ]

  },
  {
    "namespace": "Rhino.Geometry",
    "name": "Brep.FilletSurfaceResults",
    "dataType": "class",
    "summary": "Results from a fillet surface operation",
    "constructors": [
      {
        "signature": "Brep.FilletSurfaceResults()",
        "summary": "Initializes a new instance of the Brep.FilletSurfaceResults class"
      }
    ],
    "properties": [
      {
        "signature": "BrepFace Face0",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "The first face used as input for the fillet surface generation",
        "since": "9.0",
        "property": ["get", "set"]
      },
      {
        "signature": "BrepFace Face1",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "The second face used as input for the fillet surface generation",
        "since": "9.0",
        "property": ["get", "set"]
      },
      {
        "signature": "IList<Brep> Fillets",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "The fillet surfaces created between the first and second face",
        "since": "9.0",
        "property": ["get", "set"]
      },
      {
        "signature": "IList<Brep> OutBreps0",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "If the first input face was trimmed, the trimmed results are returned here",
        "since": "9.0",
        "property": ["get", "set"]
      },
      {
        "signature": "IList<Brep> OutBreps1",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "If the second input face was trimmed, the trimmed results are returned here",
        "since": "9.0",
        "property": ["get", "set"]
      }
    ]
  },
  {
    "namespace": "Rhino.Geometry",
    "name": "Brep.FilletSurfaceSettings",
    "dataType": "class",
    "summary": "Settings to use when creating fillets or chamfers",
    "constructors": [
      {
        "signature": "Brep.FilletSurfaceSettings()",
        "summary": "Initializes a new instance of the Brep.FilletSurfaceSettings class"
      }
    ],
    "properties": [
      {
        "signature": "double AngleTolerance",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Angle tolerance to decide when faces are tangent-continuous",
        "since": "9.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool Chamfer",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "If true, a ruled chamfered surface is created.",
        "since": "9.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool ContinueAcrossTangentFaces",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "If true, the fillets or chamfers will be extended to neighboring faces as long as neighboring faces are tangent to the input faces.",
        "since": "9.0",
        "property": ["get", "set"]
      },
      {
        "signature": "int Degree",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Degree of the arc approxiation (3, 4, or 5) - only for non-rational fillets",
        "since": "9.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool Extend",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "If true, then when one input surface is longer than the other, the fillet surface is extended to the input surface edges",
        "since": "9.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool G2Blend",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "If true, a G2-continuous blend will be created",
        "since": "9.0",
        "property": ["get", "set"]
      },
      {
        "signature": "double InnerSlider",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "A number between -0.95 and 0.95 indicating how far to push the inner control point toward or away from the theoretical middle control point - only for non-rational fillets",
        "since": "9.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool NonRational",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Create a non-rational approximation to the arc. This requires <b>Degree</b> to be set to 3, 4, or 5 and <b>TanSlider</b> and <b>InnerSlider</b> to a value between -0.95 and 0.95.",
        "since": "9.0",
        "property": ["get", "set"]
      },
      {
        "signature": "double Radius",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "The radius of the fillets",
        "since": "9.0",
        "property": ["get", "set"]
      },
      {
        "signature": "double SecondRadius",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "The second radius of the fillets (only for chamfered surfaces)",
        "since": "9.0",
        "property": ["get", "set"]
      },
      {
        "signature": "double TanSlider",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "A number between -0.95 and 0.95 indicating how far to push the tangent control points toward or away from the theoretical middle control point(s) - only for non-rational fillets",
        "since": "9.0",
        "property": ["get", "set"]
      },
      {
        "signature": "double Tolerance",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "The tolerance. When in doubt, use the document's model absolute tolerance.",
        "since": "9.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool Trim",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "If true, the input faces will be trimmed, if false, the input faces will be split.",
        "since": "9.0",
        "property": ["get", "set"]
      }
    ],
    "methods": [
      {
        "signature": "FilletSurfaceSettings CreateChamferSettings(System.Double radius0, System.Double radius1, System.Double tolerance, System.Boolean trim, System.Boolean extend)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Create settings for chamfered surfaces",
        "parameters": [
          {
            "name": "radius0",
            "type": "System.Double",
            "summary": "The distance from the intersection of face0 to the edge of the chamfer."
          },
          {
            "name": "radius1",
            "type": "System.Double",
            "summary": "The distance from the intersection of face1 to the edge of the chamfer."
          },
          {
            "name": "tolerance",
            "type": "System.Double",
            "summary": "The tolerance. When in doubt, use the document's model absolute tolerance."
          },
          {
            "name": "trim",
            "type": "System.Boolean",
            "summary": "If true, the input faces will be trimmed, if false, the input faces will be split."
          },
          {
            "name": "extend",
            "type": "System.Boolean",
            "summary": "If true, then when one input surface is longer than the other, the fillet surface is extended to the input surface edges."
          }
        ]
      },
      {
        "signature": "FilletSurfaceSettings CreateG2BlendSettings(System.Double radius, System.Double tolerance, System.Boolean trim, System.Boolean extend)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Create settings for G2-blended fillet surfaces",
        "since": "9.0",
        "parameters": [
          {
            "name": "radius",
            "type": "System.Double",
            "summary": "The fillet radius."
          },
          {
            "name": "tolerance",
            "type": "System.Double",
            "summary": "The tolerance. When in doubt, use the document's model absolute tolerance."
          },
          {
            "name": "trim",
            "type": "System.Boolean",
            "summary": "If true, the input faces will be trimmed, if false, the input faces will be split."
          },
          {
            "name": "extend",
            "type": "System.Boolean",
            "summary": "If true, then when one input surface is longer than the other, the fillet surface is extended to the input surface edges."
          }
        ]
      },
      {
        "signature": "FilletSurfaceSettings CreateNonRationalSettings(System.Double radius, System.Double tolerance, System.Int32 degree, System.Double tanSlider, System.Double innerSlider, System.Boolean trim, System.Boolean extend)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Create settings for non-rational approximated arc fillet surfaces",
        "since": "9.0",
        "parameters": [
          {
            "name": "radius",
            "type": "System.Double",
            "summary": "The fillet radius."
          },
          {
            "name": "tolerance",
            "type": "System.Double",
            "summary": "The tolerance. When in doubt, use the document's model absolute tolerance."
          },
          {
            "name": "degree",
            "type": "System.Int32",
            "summary": "Degree of the arc approxiation (3, 4, or 5)"
          },
          {
            "name": "tanSlider",
            "type": "System.Double",
            "summary": "A number between -0.95 and 0.95 indicating how far to push the tangent control points toward or away from the theoretical middle control point(s)"
          },
          {
            "name": "innerSlider",
            "type": "System.Double",
            "summary": "A number between -0.95 and 0.95 indicating how far to push the inner control point toward or away from the theoretical middle control point"
          },
          {
            "name": "trim",
            "type": "System.Boolean",
            "summary": "If true, the input faces will be trimmed, if false, the input faces will be split."
          },
          {
            "name": "extend",
            "type": "System.Boolean",
            "summary": "If true, then when one input surface is longer than the other, the fillet surface is extended to the input surface edges."
          }
        ]
      },
      {
        "signature": "FilletSurfaceSettings CreateRationalArcSettings(System.Double radius, System.Double tolerance, System.Boolean trim, System.Boolean extend)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Create settings for rational arc fillet surfaces",
        "since": "9.0",
        "parameters": [
          {
            "name": "radius",
            "type": "System.Double",
            "summary": "The fillet radius."
          },
          {
            "name": "tolerance",
            "type": "System.Double",
            "summary": "The tolerance. When in doubt, use the document's model absolute tolerance."
          },
          {
            "name": "trim",
            "type": "System.Boolean",
            "summary": "If true, the input faces will be trimmed, if false, the input faces will be split."
          },
          {
            "name": "extend",
            "type": "System.Boolean",
            "summary": "If true, then when one input surface is longer than the other, the fillet surface is extended to the input surface edges."
          }
        ]
      }
    ]
  },
  {
    "namespace": "Rhino.Geometry",
    "name": "Brep.PointConstraint",
    "dataType": "class",
    "summary": "Constrain the result to go through a point",
    "constructors": [
      {
        "signature": "Brep.PointConstraint(Point3d point)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Constructor for a given location"
      }
    ],
    "properties": [
      {
        "signature": "Point3d Point",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Location of the constraint",
        "property": ["get"]
      }
    ]
  },
  {
    "namespace": "Rhino.Geometry",
    "name": "Brep.VariationalPatchResult",
    "dataType": "class",
    "summary": "This result contains additional information about the patch generation: warnings and errors and the continuity achieved.",
    "constructors": [
      {
        "signature": "Brep.VariationalPatchResult()",
        "summary": "Initializes a new instance of the Brep.VariationalPatchResult class"
      }
    ],
    "properties": [
      {
        "signature": "string Error",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Errors generated during patch generation. If no result is obtained, this error can give more information about what went wrong.",
        "property": ["get", "set"]
      },
      {
        "signature": "bool? G0",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "This value will be not-None if any positional (G0) constraints were used. It will be True if those constraints were met within the positional tolerance.",
        "property": ["get", "set"]
      },
      {
        "signature": "bool? G0Int",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "This value will be not-None if any internal constraints were used. It will be True if those constraints were met within the internal positional tolerance.",
        "property": ["get", "set"]
      },
      {
        "signature": "bool? G1",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "This value will be not-None if any tangential (G1) constraints were used. It will be True if those constraints were met within the angle tolerance.",
        "property": ["get", "set"]
      },
      {
        "signature": "bool? G2",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "This value will be not-None if any curvature (G2) constraints were used. It will be True if those constraints were met within the curvature relative and zero tolerances.",
        "property": ["get", "set"]
      },
      {
        "signature": "string Warning",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Warnings generated during patch generation",
        "property": ["get", "set"]
      }
    ]
  },
  {
    "namespace": "Rhino.Geometry",
    "name": "Brep.VariationalPatchSettings",
    "dataType": "class",
    "summary": "Settings for the variational patch creation",
    "constructors": [
      {
        "signature": "Brep.VariationalPatchSettings()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Constructor with defaults"
      },
      {
        "signature": "Brep.VariationalPatchSettings(RhinoDoc doc)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Constructor that sets defaults and takes the tolerance, internal tolerance and angle tolerance from the document"
      }
    ],
    "properties": [
      {
        "signature": "double AngleToleranceRadians",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Tolerance for normal (G1) constraints",
        "property": ["get", "set"]
      },
      {
        "signature": "double Bending",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Bending to apply (default 0.3)",
        "property": ["get", "set"]
      },
      {
        "signature": "double CurvatureRelativeTolerance",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Relative curvature (G2) tolerance between curvature values that are both not smaller than <b>CurvatureZeroTolerance</b> .",
        "property": ["get", "set"]
      },
      {
        "signature": "double CurvatureZeroTolerance",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Curvature value considered to be zero.",
        "property": ["get", "set"]
      },
      {
        "signature": "int DegreeU",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Surface degree in U-direction",
        "property": ["get", "set"]
      },
      {
        "signature": "int DegreeV",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Surface degree in V-direction",
        "property": ["get", "set"]
      },
      {
        "signature": "RhinoVariationalDomain Domain",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "The domain creation option",
        "property": ["get", "set"]
      },
      {
        "signature": "Surface InitialSurface",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "The initial surface to use (default: null). The initial surface may not be rational.",
        "property": ["get", "set"]
      },
      {
        "signature": "double InternalTolerance",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Tolerance for positional (G0int) constraints on internal curves",
        "property": ["get", "set"]
      },
      {
        "signature": "int MaxRefinements",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "The maximum number of refinements to apply (default 5).",
        "property": ["get", "set"]
      },
      {
        "signature": "bool PreserveEdges",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "When an initial surface has been set, use <b>PreserveEdges</b> to fix the surface boundary.",
        "property": ["get", "set"]
      },
      {
        "signature": "double RocBending",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Rate-of-change in bending to apply (default 0.7)",
        "property": ["get", "set"]
      },
      {
        "signature": "int SpanCountU",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Number of spans in U-direction",
        "property": ["get", "set"]
      },
      {
        "signature": "int SpanCountV",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Number of spans in V-direction",
        "property": ["get", "set"]
      },
      {
        "signature": "double Stretching",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Stretching to apply (default 0, better not change)",
        "property": ["get", "set"]
      },
      {
        "signature": "double Tolerance",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Tolerance for positional (G0) constraints on edges",
        "property": ["get", "set"]
      },
      {
        "signature": "double UVRotation",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "The rotation angle of the UV domain",
        "property": ["get", "set"]
      }
    ]
  },
  {
    "namespace": "Rhino.Geometry",
    "name": "BrepEdge",
    "dataType": "class",
    "summary": "Represents a single edge curve in a Brep object.",
    "baseclass": "Rhino.Geometry.CurveProxy",
    "properties": [
      {
        "signature": "Brep Brep",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the Brep that owns this edge.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "Curve EdgeCurve",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Get the brep.Curves3D[] 3d curve geometry used by this edge or null.",
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "int EdgeCurveIndex",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Get the brep.Curves3D[] index of the 3d curve geometry used by this edge or -1.",
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "int EdgeIndex",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the index of this edge in the Brep.Edges collection.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "BrepVertex EndVertex",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "BrepVertex at end of edge",
        "since": "5.10",
        "property": ["get"]
      },
      {
        "signature": "uint ProxyBrepSubDEdgeId",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "If this edge is part of a brep created by SubD.ProxyBrep(), then the subd component id of the corresponding SubD edge is returned. Otherwise 0 is returned.",
        "since": "7.19",
        "property": ["get"]
      },
      {
        "signature": "BrepVertex StartVertex",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "BrepVertex at start of edge",
        "since": "5.10",
        "property": ["get"]
      },
      {
        "signature": "double Tolerance",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the accuracy of the edge curve (>=0.0 or RhinoMath.UnsetValue) A value of UnsetValue indicates that the tolerance should be computed.  The maximum distance from the edge's 3d curve to any surface of a face that has this edge as a portion of its boundary must be <= this tolerance.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "int TrimCount",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the number of trim-curves that use this edge.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "EdgeAdjacency Valence",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the topological valency of this edge. The topological valency is defined by how many adjacent faces share this edge.",
        "since": "5.0",
        "property": ["get"]
      }
    ],
    "methods": [
      {
        "signature": "System.Int32[] AdjacentFaces()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the indices of all the BrepFaces that use this edge.",
        "since": "5.0"
      },
      {
        "signature": "Concavity ConcavityAt(System.Double t, System.Double tolerance)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Determine the concavity of this edge at a specific parameter.",
        "since": "6.2",
        "parameters": [
          {
            "name": "t",
            "type": "System.Double",
            "summary": "Edge curve parameter."
          },
          {
            "name": "tolerance",
            "type": "System.Double",
            "summary": "Angle tolerance for tangent faces."
          }
        ],
        "returns": "Concavity measure at parameter."
      },
      {
        "signature": "System.Boolean Get3dVectorsIntoFaces(System.Double t, out Vector3d[] vectors, out Vector3d[] normals)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "For each trim at this edge, find the 3d unit vector at the edge parameter in the trim's surface tangent plane, perpendicular to the edge, which points to the active side of the trim.",
        "since": "9.0",
        "parameters": [
          {
            "name": "t",
            "type": "System.Double",
            "summary": "edge parameter where vectors and normals are evaluated"
          },
          {
            "name": "vectors",
            "type": "Vector3d[]",
            "summary": "3d vectors point into the face(s). One for each trim, in order of <b>BrepEdge.TrimIndices</b>"
          },
          {
            "name": "normals",
            "type": "Vector3d[]",
            "summary": "Surface normals at edge parameter. Perpendicular to the 3d vectors."
          }
        ],
        "returns": "True if vectors can be found. False if edge tangent or surface normals can't be found, or if input is bad."
      },
      {
        "signature": "System.Boolean GetEdgeParameter(System.Int32 trimIndex, System.Double trimParameter, out System.Double edgeParameter)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Get corresponding edge parameter for given trim at given trim parameter.",
        "since": "5.12",
        "returns": "True on success"
      },
      {
        "signature": "System.Boolean IsSmoothManifoldEdge(System.Double angleToleranceRadians)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "For a manifold, non-boundary edge, decides whether or not the two surfaces on either side meet smoothly.",
        "since": "5.0",
        "parameters": [
          {
            "name": "angleToleranceRadians",
            "type": "System.Double",
            "summary": "used to decide if surface normals on either side are parallel."
          }
        ],
        "returns": "True if edge is manifold, has exactly 2 trims, and surface normals on either side agree to within angle_tolerance."
      },
      {
        "signature": "System.Boolean SetEdgeCurve(System.Int32 curve3dIndex, Interval subDomain)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Set 3d curve geometry used by a b-rep edge.",
        "since": "5.4",
        "parameters": [
          {
            "name": "curve3dIndex",
            "type": "System.Int32",
            "summary": "index of 3d curve in m_C3[] array"
          },
          {
            "name": "subDomain",
            "type": "Interval",
            "summary": ""
          }
        ],
        "returns": "True if successful"
      },
      {
        "signature": "System.Boolean SetEdgeCurve(System.Int32 curve3dIndex)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Set 3d curve geometry used by a b-rep edge.",
        "since": "5.4",
        "parameters": [
          {
            "name": "curve3dIndex",
            "type": "System.Int32",
            "summary": "index of 3d curve in m_C3[] array"
          }
        ],
        "returns": "True if successful"
      },
      {
        "signature": "System.Int32[] TrimIndices()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the indices of all trims associated with this edge.",
        "since": "5.12",
        "returns": "Empty array on failure."
      }
    ]
  },
  {
    "namespace": "Rhino.Geometry",
    "name": "BrepEdgeFilletDistance",
    "dataType": "class",
    "summary": "Fillet distances along a BrepEdge",
    "since": "8.6",
    "constructors": [
      {
        "signature": "BrepEdgeFilletDistance(double edgeParameter, double filletDistance)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Construct a fillet distance",
        "since": "8.7",
        "parameters": [
          {
            "name": "edgeParameter",
            "type": "System.Double",
            "summary": "The parameter along the edge where to apply the fillet distance"
          },
          {
            "name": "filletDistance",
            "type": "System.Double",
            "summary": "The distance to apply"
          }
        ]
      }
    ],
    "properties": [
      {
        "signature": "double EdgeParameter",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "The parameter along the BrepEdge where to apply a fillet distance (radius)",
        "since": "8.7",
        "property": ["get"]
      },
      {
        "signature": "double FilletDistance",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Distance to fillet",
        "since": "8.7",
        "property": ["get"]
      }
    ]
  },
  {
    "namespace": "Rhino.Geometry",
    "name": "BrepFace",
    "dataType": "class",
    "summary": "Provides strongly-typed access to brep faces.  \nA Brep face is composed of one surface and trimming curves.",
    "baseclass": "Rhino.Geometry.SurfaceProxy",
    "properties": [
      {
        "signature": "Brep Brep",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the Brep that owns this face.",
        "since": "6.9",
        "property": ["get"]
      },
      {
        "signature": "int FaceIndex",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Index of face in Brep.Faces array.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "Guid Id",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the persistent id of this Brep face. By default, the id is Guid.Zero. Note, Rhino does not set this id. Thus, the property is available for use as a way of tracking Brep faces.",
        "since": "7.7",
        "property": ["get", "set"]
      },
      {
        "signature": "bool IsSurface",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets a value indicating whether the face is synonymous with the underlying surface. If a Face has no trimming curves then it is considered a Surface.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "BrepLoopList Loops",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Loops in this face.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "int MaterialChannelIndex",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "This face's rendering material channel index.",
        "since": "6.26",
        "property": ["get", "set"]
      },
      {
        "signature": "bool OrientationIsReversed",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "True if face orientation is opposite of natural surface orientation.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "BrepLoop OuterLoop",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Every face has a single outer loop.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "uint PackId",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "0 if the pack it is unset, or >0 if the set pack id.",
        "since": "7.19",
    "remarks": "PackId values assigned to brep faces are inheritied from the PackId values assigned to subd faces when a subd is converted into a brep. These faces are \"trivially trimmed\" which means the boundary of the face is identical to the boundary of the underlying surface. There are two types of face packs in a subd, quad grid packs and singleton packs. A subd quad grid pack is a set of subd quads that form a rectangular grid. A subd singleton pack is a single face, quad or n-gon, that is not part of a quad grid pack. There are three types of face packs in a brep created from a subd, grid packs, star packs and singleton packs. A brep \"grid pack\" comes from a rectangular grid of subd quads. A grid pack of brep faces can be converted into a single larger trivially trimmed brep face. A brep \"star pack\" of brep faces comes from a singel subd n-gon (n = 3, 5 or more). The star pack will have n faces with a star center vertex and shared edges radiating from the star center. A brep \"singleton\" pack comes from a single subd quad that could not be grouped into a larger subd quad grid pack.",
        "property": ["get"]
      },
      {
        "signature": "Color PerFaceColor",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "If per-face color is \"Empty\", then this face does not have a custom color",
        "since": "7.0",
        "property": ["get", "set"]
      },
      {
        "signature": "uint ProxyBrepSubDFaceId",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "If this face is part of a brep created by SubD.ProxyBrep(), then the subd component id of the corresponding SubD face is returned. Otherwise 0 is returned.",
        "since": "7.19",
        "property": ["get"]
      },
      {
        "signature": "int SurfaceIndex",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Surface index of the 3d surface geometry used by this face or -1",
        "since": "5.6",
        "property": ["get"]
      }
    ],
    "methods": [
      {
        "signature": "System.Int32[] AdjacentEdges()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the indices of all the BrepEdges that delineate this Face.",
        "since": "5.0"
      },
      {
        "signature": "System.Int32[] AdjacentFaces()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the indices of all the BrepFaces that surround (are adjacent to) this face.",
        "since": "5.0"
      },
      {
        "signature": "System.Boolean ChangeSurface(System.Int32 surfaceIndex)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Expert user tool that replaces the 3d surface geometry use by the face.",
        "since": "5.0",
    "remarks": "If the face had a surface and new surface has a different shape, then you probably want to call something like RebuildEdges() to move the 3d edge curves so they will lie on the new surface. This doesn't delete the old surface; call Brep.CullUnusedSurfaces() or Brep.Compact() to remove unused surfaces.",
        "parameters": [
          {
            "name": "surfaceIndex",
            "type": "System.Int32",
            "summary": "brep surface index of new surface."
          }
        ],
        "returns": "True if successful."
      },
      {
        "signature": "System.Void ClearMaterialChannelIndex()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Clear this face's rendering material channel index.",
        "since": "6.26"
      },
      {
        "signature": "System.Void ClearPackId()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Sets BrepFace.PackId to 0.",
        "since": "7.19"
      },
      {
        "signature": "System.Boolean ClosestPointOnFace(Point3d testPoint, out System.Double u, out System.Double v, System.Double maximumDistance)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Get the closest point to this face. Closest point finding respects the trims on the face.",
        "parameters": [
          {
            "name": "testPoint",
            "type": "Point3d",
            "summary": ""
          },
          {
            "name": "u",
            "type": "System.Double",
            "summary": "The surface u-parameter for the closest point"
          },
          {
            "name": "v",
            "type": "System.Double",
            "summary": "The surface v-parameter for the closest point"
          },
          {
            "name": "maximumDistance",
            "type": "System.Double",
            "summary": "The maximum allowed distance.  \nPast this distance, the search is given up and False is returned.  \nUse 0 to turn off this parameter."
          }
        ]
      },
      {
        "signature": "Brep CreateExtrusion(Curve pathCurve, System.Boolean cap)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Extrude a face in a Brep.",
        "since": "5.3",
        "parameters": [
          {
            "name": "pathCurve",
            "type": "Curve",
            "summary": "The path to extrude along. Note, the direction of the extrusion will follow the direction of the curve."
          },
          {
            "name": "cap",
            "type": "System.Boolean",
            "summary": "If true, the extrusion is capped with a translation of the face being extruded"
          }
        ],
        "returns": "A Brep on success or None on failure."
      },
      {
        "signature": "System.Boolean DraftAnglePoint(Point2d testPoint, System.Double testAngle, Vector3d pullDirection, System.Boolean edge, out Point3d draftPoint, out System.Double draftAngle)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns the surface draft angle and point at a parameter.",
        "since": "6.0",
        "parameters": [
          {
            "name": "testPoint",
            "type": "Point2d",
            "summary": "The u,v parameter on the face to evaluate."
          },
          {
            "name": "testAngle",
            "type": "System.Double",
            "summary": "The angle in radians to test."
          },
          {
            "name": "pullDirection",
            "type": "Vector3d",
            "summary": "The pull direction."
          },
          {
            "name": "edge",
            "type": "System.Boolean",
            "summary": "Restricts the point placement to an edge."
          },
          {
            "name": "draftPoint",
            "type": "Point3d",
            "summary": "The draft angle point."
          },
          {
            "name": "draftAngle",
            "type": "System.Double",
            "summary": "The draft angle in radians."
          }
        ],
        "returns": "True if successful, False otherwise."
      },
      {
        "signature": "Brep DuplicateFace(System.Boolean duplicateMeshes)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Duplicate a face from the brep to create new single face brep.",
        "since": "5.0",
        "parameters": [
          {
            "name": "duplicateMeshes",
            "type": "System.Boolean",
            "summary": "If true, shading meshes will be copied as well."
          }
        ],
        "returns": "A new single-face brep synonymous with the current Face."
      },
      {
        "signature": "Surface DuplicateSurface()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets a copy to the untrimmed surface that this face is based on.",
        "since": "5.0",
        "returns": "A copy of this face's underlying surface."
      },
      {
        "signature": "System.Boolean FilletSurfaceToCurve(Curve curve, System.Double t, System.Double u, System.Double v, System.Double radius, System.Int32 alignToCurve, System.Int32 railDegree, System.Int32 arcDegree, IEnumerable<double> arcSliders, System.Int32 numBezierSrfs, System.Double tolerance, List<Brep> out_fillets, out System.Double[] fitResults)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Creates a constant-radius fillet surface between a surface and the curve.",
        "since": "8.0",
        "parameters": [
          {
            "name": "curve",
            "type": "Curve",
            "summary": "the curve to which this face is being filleted."
          },
          {
            "name": "t",
            "type": "System.Double",
            "summary": "A parameter on the curve, indicating region of fillet."
          },
          {
            "name": "u",
            "type": "System.Double",
            "summary": "A parameter in the u direction of the face indicating which side of the curve to fillet."
          },
          {
            "name": "v",
            "type": "System.Double",
            "summary": "A parameter in the v direction of the face indicating which side of the curve to fillet."
          },
          {
            "name": "radius",
            "type": "System.Double",
            "summary": "The radius of the constant-radius fillet desired. NOTE: using arcSliders will change the shape of the arcs themselves"
          },
          {
            "name": "alignToCurve",
            "type": "System.Int32",
            "summary": "Does the user want the fillet to align to the curve? 0 - No, ignore the curve's b-spline structure 1 - Yes, match the curves's degree, spans, CVs as much as possible 2 - Same as 1, but iterate to fit to tolerance Note that a value of 1 or 2 will cause nBezierSrfs to be ignored"
          },
          {
            "name": "railDegree",
            "type": "System.Int32",
            "summary": "Desired fillet degree (3 or 5) in the u-direction, along the curve"
          },
          {
            "name": "arcDegree",
            "type": "System.Int32",
            "summary": "Desired fillet degree (2, 3, 4, or 5) in the v-direction, along the fillet arcs.If 2, then the surface is rational in v"
          },
          {
            "name": "arcSliders",
            "type": "IEnumerable<double>",
            "summary": "Array of 2 sliders to shape the fillet in the arc direction, used for arcDegree = 3, 4, or 5; input { 0.0, 0.0 } to ignore [0] (-1 to 1) slides tangent arms from base (-1) to theoretical(1) [1] (-1 to 1) slides inner CV(s) from base (-1) to theoretical(1)"
          },
          {
            "name": "numBezierSrfs",
            "type": "System.Int32",
            "summary": "If >0, this indicates the number of equally-spaced fillet surfaces to be output in the rail direction, each surface Bézier in u."
          },
          {
            "name": "tolerance",
            "type": "System.Double",
            "summary": "The tolerance. In in doubt, the document's absolute tolerance."
          },
          {
            "name": "out_fillets",
            "type": "List<Brep>",
            "summary": "he results of the fillet calculation."
          },
          {
            "name": "fitResults",
            "type": "System.Double[]",
            "summary": "array of doubles indicating fitting results: [0] max 3d point deviation along curve [1] max 3d point deviation along face [2] max angle deviation along face(in degrees) [3] max angle deviation between Bézier surfaces(in degrees) [4] max curvature difference between Bézier surfaces"
          }
        ],
        "returns": "True if successful, False otherwise."
      },
      {
        "signature": "System.Boolean FilletSurfaceToRail(Curve curveOnFace, BrepFace secondFace, System.Double u1, System.Double v1, System.Int32 railDegree, System.Int32 arcDegree, IEnumerable<double> arcSliders, System.Int32 numBezierSrfs, System.Boolean extend, FilletSurfaceSplitType split_type, System.Double tolerance, List<Brep> out_fillets, List<Brep> out_breps0, List<Brep> out_breps1, out System.Double[] fitResults)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Creates a surface between two surfaces, with a fixed rail curve on the first surface.",
        "since": "8.0",
    "remarks": "The trim or split input Breps are in OutBreps0, and OutBreps1. If the input faces are from the same Brep, nothing will be added to OutBreps1.If you specified a split type of RhinoFilletSurfaceSplitType::Nothing, then nothing will be added to either OutBreps0 or OutBreps1.",
        "parameters": [
          {
            "name": "curveOnFace",
            "type": "Curve",
            "summary": "A curve on this face"
          },
          {
            "name": "secondFace",
            "type": "BrepFace",
            "summary": "The second face"
          },
          {
            "name": "u1",
            "type": "System.Double",
            "summary": "A parameter in the u direction of the second face at the side you want to keep after filleting."
          },
          {
            "name": "v1",
            "type": "System.Double",
            "summary": "A parameter in the v direction of the second face at the side you want to keep after filleting."
          },
          {
            "name": "railDegree",
            "type": "System.Int32",
            "summary": "Desired fillet degree (3 or 5) in the u-direction, along the rails"
          },
          {
            "name": "arcDegree",
            "type": "System.Int32",
            "summary": "esired fillet degree (2, 3, 4, or 5) in the v-direction, along the fillet arcs.If 2, then the surface is rational in v"
          },
          {
            "name": "arcSliders",
            "type": "IEnumerable<double>",
            "summary": "Array of 2 sliders to shape the fillet in the arc direction, used for arcDegree = 3, 4, or 5; input { 0.0, 0.0 } to ignore [0] (-1 to 1) slides tangent arms from base (-1) to theoretical(1) [1] (-1 to 1) slides inner CV(s) from base (-1) to theoretical(1)"
          },
          {
            "name": "numBezierSrfs",
            "type": "System.Int32",
            "summary": "If >0, this indicates the number of equally-spaced fillet surfaces to be output in the rail direction, each surface Bézier in u."
          },
          {
            "name": "extend",
            "type": "System.Boolean",
            "summary": "If true, then when one input surface is longer than the other, the fillet surface is extended to the input surface edges."
          },
          {
            "name": "split_type",
            "type": "FilletSurfaceSplitType",
            "summary": "The split type"
          },
          {
            "name": "tolerance",
            "type": "System.Double",
            "summary": "The tolerance. In in doubt, the document's absolute tolerance."
          },
          {
            "name": "out_fillets",
            "type": "List<Brep>",
            "summary": "The results of the fillet calculation."
          },
          {
            "name": "out_breps0",
            "type": "List<Brep>",
            "summary": "The trim or split results of the Brep owned by faceWithCurve."
          },
          {
            "name": "out_breps1",
            "type": "List<Brep>",
            "summary": "The trim or split results of the Brep owned by pFace1."
          },
          {
            "name": "fitResults",
            "type": "System.Double[]",
            "summary": "array of doubles indicating fitting results: [0] max 3d point deviation along surface 0 [1] max 3d point deviation along surface 1 [2] max angle deviation along surface 0 (in degrees) [3] max angle deviation along surface 1 (in degrees) [4] max angle deviation between Bézier surfaces(in degrees) [5] max curvature difference between Bézier surfaces"
          }
        ],
        "returns": "True if successful, False otherwise."
      },
      {
        "signature": "Mesh GetMesh(MeshType meshType)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Obtains a reference to a specified type of mesh for this brep face.",
        "since": "5.0",
        "parameters": [
          {
            "name": "meshType",
            "type": "MeshType",
            "summary": "The mesh type."
          }
        ],
        "returns": "A mesh."
      },
      {
        "signature": "PointFaceRelation IsPointOnFace(System.Double u, System.Double v, System.Double tolerance)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Tests if a parameter space point is in the active region of a face.",
        "since": "7.0",
        "parameters": [
          {
            "name": "u",
            "type": "System.Double",
            "summary": "Parameter space point U value."
          },
          {
            "name": "v",
            "type": "System.Double",
            "summary": "Parameter space point V value."
          },
          {
            "name": "tolerance",
            "type": "System.Double",
            "summary": "3D tolerance used when checking to see if the point is on a face or inside of a loop."
          }
        ],
        "returns": "A value describing the relationship between the point and the face."
      },
      {
        "signature": "PointFaceRelation IsPointOnFace(System.Double u, System.Double v)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Tests if a parameter space point is in the active region of a face.",
        "since": "5.0",
        "parameters": [
          {
            "name": "u",
            "type": "System.Double",
            "summary": "Parameter space point U value."
          },
          {
            "name": "v",
            "type": "System.Double",
            "summary": "Parameter space point V value."
          }
        ],
        "returns": "A value describing the relationship between the point and the face."
      },
      {
        "signature": "Point3d[] PullPointsToFace(IEnumerable<Point3d> points, System.Double tolerance)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Pulls one or more points to a brep face.",
        "since": "5.0",
        "parameters": [
          {
            "name": "points",
            "type": "IEnumerable<Point3d>",
            "summary": "Points to pull."
          },
          {
            "name": "tolerance",
            "type": "System.Double",
            "summary": "Tolerance for pulling operation. Only points that are closer than tolerance will be pulled to the face."
          }
        ],
        "returns": "An array of pulled points."
      },
      {
        "signature": "System.Boolean RebuildEdges(System.Double tolerance, System.Boolean rebuildSharedEdges, System.Boolean rebuildVertices)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Rebuild the edges used by a face so they lie on the surface.",
        "since": "5.0",
        "parameters": [
          {
            "name": "tolerance",
            "type": "System.Double",
            "summary": "tolerance for fitting 3d edge curves."
          },
          {
            "name": "rebuildSharedEdges",
            "type": "System.Boolean",
            "summary": "if False and edge is used by this face and a neighbor, then the edge will be skipped."
          },
          {
            "name": "rebuildVertices",
            "type": "System.Boolean",
            "summary": "if true, vertex locations are updated to lie on the surface."
          }
        ],
        "returns": "True on success."
      },
      {
        "signature": "Surface[] RefitTrim(BrepEdge edge, IEnumerable<double> knots, System.Double tolerance, System.Boolean bSections, ref System.Double fitQuality)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "The RefitTrim command replaces a trimmed surface edge with an untrimmed edge.",
        "since": "7.0",
        "parameters": [
          {
            "name": "edge",
            "type": "BrepEdge",
            "summary": "The edge to fit."
          },
          {
            "name": "knots",
            "type": "IEnumerable<double>",
            "summary": "The custom knot vector to use, or an empty vector to use the existing knots of the surface."
          },
          {
            "name": "tolerance",
            "type": "System.Double",
            "summary": "The 3d tolerance for projection, splitting, and fitting."
          },
          {
            "name": "bSections",
            "type": "System.Boolean",
            "summary": "If true, the surface is divided into separate surface patches at all knots."
          },
          {
            "name": "fitQuality",
            "type": "System.Double",
            "summary": "A measure of the 3d fit to the trim curve."
          }
        ],
        "returns": "The trimmed surfaces."
      },
      {
        "signature": "Brep RemoveHoles(System.Double tolerance)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Remove all inner loops, or holes, from a Brep face.",
        "since": "6.0"
      },
      {
        "signature": "System.Boolean SetDomain(System.Int32 direction, Interval domain)",
        "modifiers": ["public", "override"],
        "protected": false,
        "virtual": false,
        "summary": "Sets the surface domain of this face.",
        "since": "5.0",
        "parameters": [
          {
            "name": "direction",
            "type": "System.Int32",
            "summary": "Direction of face to set (0 = U, 1 = V)."
          },
          {
            "name": "domain",
            "type": "Interval",
            "summary": "Domain to apply."
          }
        ],
        "returns": "True on success, False on failure."
      },
      {
        "signature": "System.Boolean SetMesh(MeshType meshType, Mesh mesh)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Sets a reference to a specified type of mesh for this brep face.",
        "since": "5.0",
        "parameters": [
          {
            "name": "meshType",
            "type": "MeshType",
            "summary": "The mesh type."
          },
          {
            "name": "mesh",
            "type": "Mesh",
            "summary": "The new mesh."
          }
        ],
        "returns": "True if the operation succeeded; otherwise false."
      },
      {
        "signature": "System.Void SetPackId(System.UInt32 packId)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Used by SubD functions that create breps to transmit the subd face SubDFace.PackId value to the brep face or faces generated from the subd face. Unless you are an expert and doing something very carefully and very fancy, to not call this function.",
        "since": "7.19",
        "parameters": [
          {
            "name": "packId",
            "type": "System.UInt32",
            "summary": "The pack id."
          }
        ]
      },
      {
        "signature": "System.Boolean ShrinkFace(ShrinkDisableSide disableSide)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Shrinks the underlying untrimmed surface of this Brep face close to trimming boundaries. Shrinking a surface is like extending smoothly, only backwards. knot of full multiplicity are added where you want the surface to be cut off. Then the remaining control points are thrown away.",
        "since": "6.0",
        "parameters": [
          {
            "name": "disableSide",
            "type": "ShrinkDisableSide",
            "summary": "The side(s) of the surface to not shrink."
          }
        ],
        "returns": "True on success, False on failure."
      },
      {
        "signature": "System.Boolean ShrinkSurfaceToEdge()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Shrinks the underlying untrimmed surface of this Brep face right to the trimming boundaries. Note, shrinking the trimmed surface can sometimes cause problems later since having the edges so close to the trimming boundaries can cause commands that use the surface edges as input to fail.",
        "since": "6.16",
        "returns": "True on success, False on failure."
      },
      {
        "signature": "Brep Split(IEnumerable<Curve> curves, System.Double tolerance)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Split this face using 3D trimming curves.",
        "since": "5.0",
        "parameters": [
          {
            "name": "curves",
            "type": "IEnumerable<Curve>",
            "summary": "Curves to split with."
          },
          {
            "name": "tolerance",
            "type": "System.Double",
            "summary": "Tolerance for splitting, when in doubt use the Document Absolute Tolerance."
          }
        ],
        "returns": "A brep consisting of all the split fragments, or None on failure."
      },
      {
        "signature": "Curve[] TrimAwareIsoCurve(System.Int32 direction, System.Double constantParameter)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Similar to IsoCurve function, except this function pays attention to trims on faces and may return multiple curves.",
        "since": "5.0",
    "remarks": "In this function \"direction\" indicates which direction the resulting curve runs. 0: horizontal, 1: vertical In the other Surface functions that take a \"direction\" argument, \"direction\" indicates if \"constantParameter\" is a \"u\" or \"v\" parameter.",
        "parameters": [
          {
            "name": "direction",
            "type": "System.Int32",
            "summary": "Direction of isocurve.  \n0 = Isocurve connects all points with a constant U value.  \n1 = Isocurve connects all points with a constant V value."
          },
          {
            "name": "constantParameter",
            "type": "System.Double",
            "summary": "Surface parameter that remains identical along the isocurves."
          }
        ],
        "returns": "Isoparametric curves connecting all points with the constantParameter value."
      },
      {
        "signature": "Interval[] TrimAwareIsoIntervals(System.Int32 direction, System.Double constantParameter)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets intervals where the iso curve exists on a BrepFace (trimmed surface)",
        "since": "5.0",
        "parameters": [
          {
            "name": "direction",
            "type": "System.Int32",
            "summary": "Direction of isocurve.  \n0 = Isocurve connects all points with a constant U value.  \n1 = Isocurve connects all points with a constant V value."
          },
          {
            "name": "constantParameter",
            "type": "System.Double",
            "summary": "Surface parameter that remains identical along the isocurves."
          }
        ],
        "returns": "If direction = 0, the parameter space iso interval connects the 2d points (intervals[i][0],iso_constant) and (intervals[i][1],iso_constant). If direction = 1, the parameter space iso interval connects the 2d points (iso_constant,intervals[i][0]) and (iso_constant,intervals[i][1])."
      },
      {
        "signature": "Surface UnderlyingSurface()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the untrimmed surface that is the base of this face.",
        "since": "5.0",
        "returns": "A surface, or None on error."
      }
    ]
  },
  {
    "namespace": "Rhino.Geometry",
    "name": "BrepFace.ShrinkDisableSide",
    "dataType": "enum",
    "summary": "Defines bitwise mask flags indicating what side of a surface to not shrink.",
    "since": "6.0",
    "values": [
      {
        "signature": "ShrinkAllSides = 0x0000",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Shrink on all four sides."
      },
      {
        "signature": "DoNotShrinkWestSide = 0x0001",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Do not shrink on the west side of domain."
      },
      {
        "signature": "DoNotShrinkSouthSide = 0x0002",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Do not shrink on the south side of domain."
      },
      {
        "signature": "DoNotShrinkEastSide = 0x0004",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Do not shrink on the east side of domain."
      },
      {
        "signature": "DoNotShrinkNorthSide = 0x0008",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Do not shrink on the north side of domain."
      }
    ]

  },
  {
    "namespace": "Rhino.Geometry",
    "name": "BrepLoop",
    "dataType": "class",
    "summary": "Represent a single loop in a Brep object. A loop is composed of a list of trim curves.",
    "baseclass": "Rhino.Geometry.GeometryBase",
    "properties": [
      {
        "signature": "Brep Brep",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the Brep that owns this loop.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "BrepFace Face",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "BrepFace this loop belongs to.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "bool IsSurfaceBoundary",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "True if the loop's trims all run along the edge's of the underlying surface's parameter space.",
        "since": "8.20",
        "property": ["get"]
      },
      {
        "signature": "int LoopIndex",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the index of this loop in the Brep.Loops collection.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "BrepLoopType LoopType",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "type of loop.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "BrepTrimList Trims",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "List of trims for this loop",
        "since": "5.1",
        "property": ["get"]
      }
    ],
    "methods": [
      {
        "signature": "Curve To2dCurve()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Create a 2d curve that traces the entire loop",
        "since": "5.1"
      },
      {
        "signature": "Curve To3dCurve()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Create a 3D curve that approximates the loop geometry.",
        "since": "5.0",
        "returns": "A 3D curve that approximates the loop or None on failure."
      }
    ]
  },
  {
    "namespace": "Rhino.Geometry",
    "name": "BrepLoopType",
    "dataType": "enum",
    "summary": "Each brep loop has a defined type, e.g. outer, inner or point on surface.",
    "since": "5.0",
    "values": [
      {
        "signature": "Unknown = 0",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Unknown loop type."
      },
      {
        "signature": "Outer = 1",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "2d loop curves form a simple closed curve with a counterclockwise orientation."
      },
      {
        "signature": "Inner = 2",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "2d loop curves form a simple closed curve with a clockwise orientation."
      },
      {
        "signature": "Slit = 3",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Always closed - used internally during splitting operations."
      },
      {
        "signature": "CurveOnSurface = 4",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "\"loop\" is a curve-on-surface made from a single (open or closed) trim that has type TrimType.CurveOnSurface."
      },
      {
        "signature": "PointOnSurface = 5",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "\"loop\" is a PointOnSurface made from a single trim that has type TrimType.PointOnSurface."
      }
    ]

  },
  {
    "namespace": "Rhino.Geometry",
    "name": "BrepRegion",
    "dataType": "class",
    "summary": "Represents a brep topological region that has sides.",
    "baseclass": "Rhino.Runtime.CommonObject",
    "properties": [
      {
        "signature": "BoundingBox BoundingBox",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the region bounding box.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "Brep Brep",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets a reference to the Brep this region belongs to.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "int Index",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the index of region in the RegionTopology array.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "bool IsFinite",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets a value indicating whether this region is finite.",
        "since": "5.0",
        "property": ["get"]
      }
    ],
    "methods": [
      {
        "signature": "Brep BoundaryBrep()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the boundary of a region as a brep object. If the region is finite, the boundary will be a closed  manifold brep. The boundary may have more than one connected component.",
        "since": "5.0",
        "returns": "A brep or None on error."
      },
      {
        "signature": "BrepRegionFaceSide[] GetFaceSides()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets an array of <b>BrepRegionFaceSide</b> entities delimiting this region.",
        "since": "5.0",
        "returns": "An array of region face sides. This array might be empty on failure."
      },
      {
        "signature": "System.Void NonConstOperation()",
        "modifiers": ["protected", "override"],
        "protected": true,
        "virtual": false
      }
    ]
  },
  {
    "namespace": "Rhino.Geometry",
    "name": "BrepRegionFaceSide",
    "dataType": "class",
    "summary": "Represents a side of a <b>BrepRegion</b> entity.",
    "baseclass": "Rhino.Runtime.CommonObject",
    "properties": [
      {
        "signature": "Brep Brep",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "The brep this side belongs to.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "BrepFace Face",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the face this side belongs to.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "BrepRegion Region",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "The region this side belongs to.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "bool SurfaceNormalPointsIntoRegion",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets True if BrepFace's surface normal points into region; False otherwise.",
        "since": "5.0",
        "property": ["get"]
      }
    ],
    "methods": [
      {
        "signature": "System.Void NonConstOperation()",
        "modifiers": ["protected", "override"],
        "protected": true,
        "virtual": false
      }
    ]
  },
  {
    "namespace": "Rhino.Geometry",
    "name": "BrepReplaceEdgeMethod",
    "dataType": "enum",
    "summary": "How a deleted edge is re-trimmed by <b>Brep.ReplaceEdge</b> . Equivalent to the options of the ReplaceEdge command.",
    "since": "9.0",
    "values": [
      {
        "signature": "Line = 0",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Replace the edge with a straight line across the gap."
      },
      {
        "signature": "ExtendSideEdges = 1",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Extend the two adjacent edges until they meet."
      },
      {
        "signature": "Curve = 2",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Replace the edge with a supplied curve."
      }
    ]

  },
  {
    "namespace": "Rhino.Geometry",
    "name": "BrepSolidOrientation",
    "dataType": "enum",
    "summary": "Enumerates all possible Solid Orientations for a Brep.",
    "since": "5.0",
    "values": [
      {
        "signature": "None = 0",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Brep is not a Solid."
      },
      {
        "signature": "Inward = -1",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Brep is a Solid with inward facing normals."
      },
      {
        "signature": "Outward = 1",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Brep is a Solid with outward facing normals."
      },
      {
        "signature": "Unknown = 2",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Breps is a Solid but no orientation could be computed."
      }
    ]

  },
  {
    "namespace": "Rhino.Geometry",
    "name": "BrepTrim",
    "dataType": "class",
    "summary": "Brep trim information is stored in BrepTrim classes. Brep.Trims is an array of all the trims in the brep. A BrepTrim is derived from CurveProxy so the trim can supply easy to use evaluation tools via the Curve virtual member functions. Note well that the domains and orientations of the curve m_C2[trim.m_c2i] and the trim as a curve may not agree.",
    "baseclass": "Rhino.Geometry.CurveProxy",
    "properties": [
      {
        "signature": "Brep Brep",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the Brep that owns this trim.",
        "since": "5.1",
        "property": ["get"]
      },
      {
        "signature": "BrepEdge Edge",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Brep edge this trim belongs to. This will be None for singular trims",
        "since": "5.1",
        "property": ["get"]
      },
      {
        "signature": "BrepVertex EndVertex",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "BrepVertex at end of trim",
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "BrepFace Face",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Brep face this trim belongs to",
        "since": "5.1",
        "property": ["get"]
      },
      {
        "signature": "IsoStatus IsoStatus",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.6",
        "property": ["get", "set"]
      },
      {
        "signature": "BrepLoop Loop",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Loop that this trim belongs to",
        "since": "5.1",
        "property": ["get"]
      },
      {
        "signature": "BrepVertex StartVertex",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "BrepVertex at start of trim",
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "Curve TrimCurve",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the Brep.Curves2D 2d curve geometry used by this trim, or null.",
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "int TrimCurveIndex",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the Brep.Curves2D 2d curve index of the 2d curve geometry used by this trim, or -1.",
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "int TrimIndex",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the index of this trim in the Brep.Trims collection.",
        "since": "5.1",
        "property": ["get"]
      },
      {
        "signature": "BrepTrimType TrimType",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Type of trim",
        "since": "5.1",
        "property": ["get", "set"]
      }
    ],
    "methods": [
      {
        "signature": "System.Void GetTolerances(out System.Double toleranceU, out System.Double toleranceV)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "The values in tolerance[] record the accuracy of the parameter space trimming curves.",
        "since": "5.6",
    "remarks": "tolerance[0] = accuracy of parameter space curve in first (\"u\") parameter  \ntolerance[1] = accuracy of parameter space curve in second (\"v\") parameter  \nA value of RhinoMath.UnsetValue indicates that the tolerance should be computed.     If the value >= 0.0, then the tolerance is set.     If the value is RhinoMath.UnsetValue, then the tolerance needs to be computed.  \nIf the trim is not singular, then the trim must have an edge. If P is a     3d point on the edge's curve and surface(u,v) = Q is the point on the     surface that is closest to P, then there must be a parameter t in the     interval [m_t[0], m_t[1]] such that      |u - curve2d(t)[0]| <= tolerance[0]     and      |v - curve2d(t)[1]| <= tolerance[1]         If P is the 3d point for the vertex brep.m_V[m_vi[k]] and (uk,vk) is the     corresponding end of the trim's parameter space curve, then there must be     a surface parameter (u,v) such that:     <ul><li>the distance from the 3d point surface(u,v) to P is <= brep.m_V[m_vi[k]].m_tolerance,</li><li>|u-uk| <= tolerance[0].</li><li>|v-vk| <= tolerance[1].</li></ul>"
      },
      {
        "signature": "System.Boolean GetTrimParameter(System.Double edgeParameter, out System.Double trimParameter)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Get corresponding trim parameter at given edge parameter.",
        "since": "5.12",
        "returns": "True on success"
      },
      {
        "signature": "System.Boolean IsReversed()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Get orientation of trim with respect to it's corresponding edge.",
        "since": "5.12",
        "returns": "True if the 2d trim and 3d edge have opposite orientations"
      },
      {
        "signature": "System.Void SetTolerances(System.Double toleranceU, System.Double toleranceV)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "The values in tolerance[] record the accuracy of the parameter space trimming curves.",
        "since": "5.6",
    "remarks": "tolerance[0] = accuracy of parameter space curve in first (\"u\") parameter  \ntolerance[1] = accuracy of parameter space curve in second (\"v\") parameter  \nA value of RhinoMath.UnsetValue indicates that the tolerance should be computed.     If the value >= 0.0, then the tolerance is set.     If the value is RhinoMath.UnsetValue, then the tolerance needs to be computed.  \nIf the trim is not singular, then the trim must have an edge. If P is a     3d point on the edge's curve and surface(u,v) = Q is the point on the     surface that is closest to P, then there must be a parameter t in the     interval [m_t[0], m_t[1]] such that      |u - curve2d(t)[0]| <= tolerance[0]     and      |v - curve2d(t)[1]| <= tolerance[1]         If P is the 3d point for the vertex brep.m_V[m_vi[k]] and (uk,vk) is the     corresponding end of the trim's parameter space curve, then there must be     a surface parameter (u,v) such that:     <ul><li>the distance from the 3d point surface(u,v) to P is <= brep.m_V[m_vi[k]].m_tolerance,</li><li>|u-uk| <= tolerance[0].</li><li>|v-vk| <= tolerance[1].</li></ul>"
      },
      {
        "signature": "System.Boolean SetTrimCurve(System.Int32 curve2dIndex, Interval subDomain)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Set 2d curve geometry used by a b-rep trim.",
        "since": "5.4",
        "parameters": [
          {
            "name": "curve2dIndex",
            "type": "System.Int32",
            "summary": "index of 2d curve in m_C2[] array"
          },
          {
            "name": "subDomain",
            "type": "Interval",
            "summary": ""
          }
        ],
        "returns": "True if successful"
      },
      {
        "signature": "System.Boolean SetTrimCurve(System.Int32 curve2dIndex)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Set 2d curve geometry used by a b-rep trim.",
        "since": "5.4",
        "parameters": [
          {
            "name": "curve2dIndex",
            "type": "System.Int32",
            "summary": "index of 2d curve in m_C2[] array"
          }
        ],
        "returns": "True if successful"
      }
    ]
  },
  {
    "namespace": "Rhino.Geometry",
    "name": "BrepTrimType",
    "dataType": "enum",
    "summary": "Each brep trim has a defined type.",
    "since": "5.1",
    "values": [
      {
        "signature": "Unknown = 0",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Unknown type"
      },
      {
        "signature": "Boundary = 1",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Trim is connected to an edge, is part of an outer, inner or slit loop, and is the only trim connected to the edge."
      },
      {
        "signature": "Mated = 2",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Trim is connected to an edge, is part of an outer, inner or slit loop, no other trim from the same loop is connected to the edge, and at least one trim from a different loop is connected to the edge."
      },
      {
        "signature": "Seam = 3",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "trim is connected to an edge, is part of an outer, inner or slit loop, and one other trim from the same loop is connected to the edge. (There can be other mated trims that are also connected to the edge. For example, the non-manifold edge that results when a surface edge lies in the middle of another surface.)  Non-manifold \"cuts\" have seam trims too."
      },
      {
        "signature": "Singular = 4",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Trim is part of an outer loop, the trim's 2d curve runs along the singular side of a surface, and the trim is NOT connected to an edge. (There is no 3d edge because the surface side is singular.)"
      },
      {
        "signature": "CurveOnSurface = 5",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Trim is connected to an edge, is the only trim in a curve-on-surface loop, and is the only trim connected to the edge."
      },
      {
        "signature": "PointOnSurface = 6",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Trim is a point on a surface, trim.m_pbox is records surface parameters, and is the only trim in a point-on-surface loop.  This trim is not connected to an edge and has no 2d curve."
      },
      {
        "signature": "Slit = 7",
        "modifiers": [],
        "protected": false,
        "virtual": false
      }
    ]

  },
  {
    "namespace": "Rhino.Geometry",
    "name": "BrepVertex",
    "dataType": "class",
    "summary": "Brep vertex information",
    "baseclass": "Rhino.Geometry.Point",
    "properties": [
      {
        "signature": "Brep Brep",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the Brep that owns this vertex.",
        "since": "5.4",
        "property": ["get"]
      },
      {
        "signature": "uint ProxyBrepSubDVertexId",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "If this vertex is part of a brep created by SubD.ProxyBrep(), then the subd component id of the corresponding SubD vertex is returned. Otherwise 0 is returned.",
        "since": "7.19",
        "property": ["get"]
      },
      {
        "signature": "double Tolerance",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Accuracy of vertex point, either >=0.0 or <b>RhinoMath.UnsetValue</b> . A value of <b>RhinoMath.UnsetValue</b> indicates that the tolerance should be computed. A value of 0.0 indicates that the distance from the vertex to any applicable edge or trim end is <= <b>RhinoMath.ZeroTolerance</b> . If an edge begins or ends at this vertex, then the distance from the vertex's 3d point to the appropriate end of the edge's 3d curve must be <= this tolerance. If a trim begins or ends at this vertex, then the distance from the vertex's 3d point to the 3d point on the surface obtained by evaluating the surface at the appropriate end of the trimming curve must be  <= this tolerance.",
        "since": "7.26",
        "property": ["get"]
      },
      {
        "signature": "int VertexIndex",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the index of this vertex in the Brep.Vertices collection.",
        "since": "5.4",
        "property": ["get"]
      }
    ],
    "methods": [
      {
        "signature": "System.Int32[] EdgeIndices()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the indices of all edges associated with this vertex.",
        "since": "5.12",
        "returns": "Empty array on failure."
      }
    ]
  },
  {
    "namespace": "Rhino.Geometry",
    "name": "Centermark",
    "dataType": "class",
    "summary": "Represents a center mark dimension.",
    "baseclass": "Rhino.Geometry.Dimension",
    "constructors": [
      {
        "signature": "Centermark()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Constructs a new center mark dimension.",
        "since": "6.0"
      },
      {
        "signature": "Centermark(Plane plane, Curve curve, double curveParameter)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Constructs a new center mark dimension.",
        "since": "8.0",
        "parameters": [
          {
            "name": "plane",
            "type": "Plane",
            "summary": "Dimension's plane."
          },
          {
            "name": "curve",
            "type": "Curve",
            "summary": "Curve used to determine the center mark's radius."
          },
          {
            "name": "curveParameter",
            "type": "System.Double",
            "summary": "Parameter on curve used to determine the center mark's radius."
          }
        ]
      },
      {
        "signature": "Centermark(Plane plane, Point3d centerPoint, double radius)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Constructs a new center mark dimension.",
        "since": "8.0",
        "parameters": [
          {
            "name": "plane",
            "type": "Plane",
            "summary": "Dimension's plane."
          },
          {
            "name": "centerPoint",
            "type": "Point3d",
            "summary": "Dimension's center point."
          },
          {
            "name": "radius",
            "type": "System.Double",
            "summary": "Center mark's radius."
          }
        ]
      },
      {
        "signature": "Centermark(SerializationInfo info, StreamingContext context)",
        "modifiers": ["protected"],
        "protected": true,
        "virtual": false,
        "summary": "Protected constructor used in serialization."
      }
    ],
    "properties": [
      {
        "signature": "double Radius",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the center mark's radius.",
        "since": "8.0",
        "property": ["get", "set"]
      }
    ],
    "methods": [
      {
        "signature": "Centermark Create(DimensionStyle dimStyle, Plane plane, Curve curve, System.Double curveParameter)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Creates a new center mark dimension.",
        "since": "8.0",
        "parameters": [
          {
            "name": "dimStyle",
            "type": "DimensionStyle",
            "summary": "Dimension's dimension style."
          },
          {
            "name": "plane",
            "type": "Plane",
            "summary": "Dimension's plane."
          },
          {
            "name": "curve",
            "type": "Curve",
            "summary": "Curve used to determine the center mark's radius."
          },
          {
            "name": "curveParameter",
            "type": "System.Double",
            "summary": "Parameter on curve used to determine the center mark's radius."
          }
        ],
        "returns": "A new center mark if successful, None otherwise."
      },
      {
        "signature": "Centermark Create(DimensionStyle dimStyle, Plane plane, Point3d centerPoint, System.Double radius)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Creates a new center mark dimension.",
        "since": "6.0",
        "parameters": [
          {
            "name": "dimStyle",
            "type": "DimensionStyle",
            "summary": "Dimension's dimension style."
          },
          {
            "name": "plane",
            "type": "Plane",
            "summary": "Dimension's plane."
          },
          {
            "name": "centerPoint",
            "type": "Point3d",
            "summary": "Dimension's center point."
          },
          {
            "name": "radius",
            "type": "System.Double",
            "summary": "Center mark's radius."
          }
        ],
        "returns": "A new center mark if successful, None otherwise."
      },
      {
        "signature": "System.Boolean AdjustFromPoints(Plane plane, Point3d centerPoint)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Update dimension geometry from point locations.",
        "since": "8.0",
        "parameters": [
          {
            "name": "plane",
            "type": "Plane",
            "summary": "Dimension's plane."
          },
          {
            "name": "centerPoint",
            "type": "Point3d",
            "summary": "Dimension's center point."
          }
        ],
        "returns": "True if successful, False otherwise."
      }
    ]
  },
  {
    "namespace": "Rhino.Geometry",
    "name": "Circle",
    "dataType": "struct",
    "summary": "Represents a circle in 3D.  \nThe values used are a radius and an orthonormal frame of the plane containing the circle,   with origin at the center.  \nThe circle is parameterized by radians from 0 to 2 Pi given by  \nt -> center + cos(t)*radius*xaxis + sin(t)*radius*yaxis  \nwhere center, xaxis and yaxis define the orthonormal frame of the circle plane.",
    "remarks": ">An IsValid circle has positive radius and an IsValid plane defining the frame.",
    "constructors": [
      {
        "signature": "Circle(Arc arc)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Initializes a circle from an arc.",
        "since": "5.0",
        "parameters": [
          {
            "name": "arc",
            "type": "Arc",
            "summary": "Arc that defines the plane and radius."
          }
        ]
      },
      {
        "signature": "Circle(double radius)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Initializes a circle with center (0,0,0) in the world XY plane.",
        "since": "5.0",
        "parameters": [
          {
            "name": "radius",
            "type": "System.Double",
            "summary": "Radius of circle, should be a positive number."
          }
        ]
      },
      {
        "signature": "Circle(Plane plane, double radius)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Initializes a circle on a plane with a given radius.",
        "since": "5.0",
        "parameters": [
          {
            "name": "plane",
            "type": "Plane",
            "summary": "Plane of circle. Plane origin defines the center of the circle."
          },
          {
            "name": "radius",
            "type": "System.Double",
            "summary": "Radius of circle (should be a positive value)."
          }
        ]
      },
      {
        "signature": "Circle(Plane plane, Point3d center, double radius)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Initializes a circle parallel to a given plane with given center and radius.",
        "since": "5.0",
        "parameters": [
          {
            "name": "plane",
            "type": "Plane",
            "summary": "Plane for circle."
          },
          {
            "name": "center",
            "type": "Point3d",
            "summary": "Center point override."
          },
          {
            "name": "radius",
            "type": "System.Double",
            "summary": "Radius of circle (should be a positive value)."
          }
        ]
      },
      {
        "signature": "Circle(Point3d center, double radius)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Initializes a circle parallel to the world XY plane with given center and radius.",
        "since": "5.0",
        "parameters": [
          {
            "name": "center",
            "type": "Point3d",
            "summary": "Center of circle."
          },
          {
            "name": "radius",
            "type": "System.Double",
            "summary": "Radius of circle (should be a positive value)."
          }
        ]
      },
      {
        "signature": "Circle(Point3d point1, Point3d point2, Point3d point3)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Initializes a circle through three 3d points.",
        "since": "5.0",
        "parameters": [
          {
            "name": "point1",
            "type": "Point3d",
            "summary": "The start/end of the circle is at point1."
          },
          {
            "name": "point2",
            "type": "Point3d",
            "summary": "Second point on the circle."
          },
          {
            "name": "point3",
            "type": "Point3d",
            "summary": "Third point on the circle."
          }
        ]
      },
      {
        "signature": "Circle(Point3d startPoint, Vector3d tangentAtP, Point3d pointOnCircle)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Initializes a circle from two 3d points and a tangent at the first point. The start/end of the circle is at point \"startPoint\".",
        "since": "5.0",
    "remarks": "May create an Invalid circle",
        "parameters": [
          {
            "name": "startPoint",
            "type": "Point3d",
            "summary": "Start point of circle."
          },
          {
            "name": "tangentAtP",
            "type": "Vector3d",
            "summary": "Tangent vector at start."
          },
          {
            "name": "pointOnCircle",
            "type": "Point3d",
            "summary": "Point coincident with desired circle."
          }
        ]
      }
    ],
    "properties": [
      {
        "signature": "Circle Unset",
        "modifiers": ["static", "public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets a circle with Unset components.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "BoundingBox BoundingBox",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the circle's 3d axis aligned bounding box.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "Point3d Center",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the center point of this circle.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "double Circumference",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the circumference of this circle.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "double Diameter",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the diameter (radius * 2.0) of this circle. Diameters should be positive values.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool IsValid",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "A valid circle has radius larger than 0.0 and a base plane which is must also be valid.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "Vector3d Normal",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the normal vector for this circle.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "Plane Plane",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the plane of the circle.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "double Radius",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the radius of this circle. Radii should be positive values.",
        "since": "5.0",
        "property": ["get", "set"]
      }
    ],
    "methods": [
      {
        "signature": "System.Boolean TryFitCircleToPoints(IEnumerable<Point3d> points, out Circle circle)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Attempt to fit a circle through a set of points.",
        "since": "6.2",
        "parameters": [
          {
            "name": "points",
            "type": "IEnumerable<Point3d>",
            "summary": "The points through which to fit."
          },
          {
            "name": "circle",
            "type": "Circle",
            "summary": "The resulting circle on success."
          }
        ],
        "returns": "True on success, False on failure."
      },
      {
        "signature": "Circle TryFitCircleTT(Curve c1, Curve c2, System.Double t1, System.Double t2)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Try to fit a circle to two curves using tangent relationships.",
        "since": "5.0",
        "parameters": [
          {
            "name": "c1",
            "type": "Curve",
            "summary": "First curve to touch."
          },
          {
            "name": "c2",
            "type": "Curve",
            "summary": "Second curve to touch."
          },
          {
            "name": "t1",
            "type": "System.Double",
            "summary": "Parameter on first curve close to desired solution."
          },
          {
            "name": "t2",
            "type": "System.Double",
            "summary": "Parameter on second curve closet to desired solution."
          }
        ],
        "returns": "Valid circle on success, Circle.Unset on failure."
      },
      {
        "signature": "Circle TryFitCircleTTT(Curve c1, Curve c2, Curve c3, System.Double t1, System.Double t2, System.Double t3)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Try to fit a circle to three curves using tangent relationships.",
        "since": "5.0",
        "parameters": [
          {
            "name": "c1",
            "type": "Curve",
            "summary": "First curve to touch."
          },
          {
            "name": "c2",
            "type": "Curve",
            "summary": "Second curve to touch."
          },
          {
            "name": "c3",
            "type": "Curve",
            "summary": "Third curve to touch."
          },
          {
            "name": "t1",
            "type": "System.Double",
            "summary": "Parameter on first curve close to desired solution."
          },
          {
            "name": "t2",
            "type": "System.Double",
            "summary": "Parameter on second curve closet to desired solution."
          },
          {
            "name": "t3",
            "type": "System.Double",
            "summary": "Parameter on third curve close to desired solution."
          }
        ],
        "returns": "Valid circle on success, Circle.Unset on failure."
      },
      {
        "signature": "System.Boolean TrySmallestEnclosingCircle(IEnumerable<Point2d> points, System.Double tolerance, out Circle circle, out System.Int32[] indicesOnCircle)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Attempt to create the smallest circle enclosing a set of planar points.",
        "since": "8.4",
        "parameters": [
          {
            "name": "points",
            "type": "IEnumerable<Point2d>",
            "summary": "The points to enclose."
          },
          {
            "name": "tolerance",
            "type": "System.Double",
            "summary": "The tolerance to use"
          },
          {
            "name": "circle",
            "type": "Circle",
            "summary": "The resulting circle on success."
          },
          {
            "name": "indicesOnCircle",
            "type": "System.Int32[]",
            "summary": "If possible, indices of two or three points that define the circle"
          }
        ],
        "returns": "True on success, False on failure."
      },
      {
        "signature": "System.Boolean ClosestParameter(Point3d testPoint, out System.Double t)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the parameter on the circle which is closest to a test point.",
        "since": "5.0",
        "parameters": [
          {
            "name": "testPoint",
            "type": "Point3d",
            "summary": "Point to project onto the circle."
          },
          {
            "name": "t",
            "type": "System.Double",
            "summary": "Parameter on circle closes to testPoint."
          }
        ],
        "returns": "True on success, False on failure."
      },
      {
        "signature": "Point3d ClosestPoint(Point3d testPoint)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the point on the circle which is closest to a test point.",
        "since": "5.0",
        "parameters": [
          {
            "name": "testPoint",
            "type": "Point3d",
            "summary": "Point to project onto the circle."
          }
        ],
        "returns": "The point on the circle that is closest to testPoint or Point3d.Unset on failure."
      },
      {
        "signature": "Vector3d DerivativeAt(System.Int32 derivative, System.Double t)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Determines the value of the Nth derivative at a parameter.",
        "since": "5.0",
        "parameters": [
          {
            "name": "derivative",
            "type": "System.Int32",
            "summary": "Which order of derivative is wanted."
          },
          {
            "name": "t",
            "type": "System.Double",
            "summary": "Parameter to evaluate derivative. Valid values are 0, 1, 2 and 3."
          }
        ],
        "returns": "The derivative of the circle at the given parameter."
      },
      {
        "signature": "System.Boolean EpsilonEquals(Circle other, System.Double epsilon)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Check that all values in other are within epsilon of the values in this",
        "since": "5.4"
      },
      {
        "signature": "System.Boolean IsInPlane(Plane plane, System.Double tolerance)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Evaluates whether or not this circle is co-planar with a given plane.",
        "since": "5.0",
        "parameters": [
          {
            "name": "plane",
            "type": "Plane",
            "summary": "Plane."
          },
          {
            "name": "tolerance",
            "type": "System.Double",
            "summary": "Tolerance to use."
          }
        ],
        "returns": "True if the circle plane is co-planar with the given plane within tolerance."
      },
      {
        "signature": "Point3d PointAt(System.Double t)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Circles use trigonometric parameterization: t -> center + cos(t)*radius*xaxis + sin(t)*radius*yaxis.",
        "since": "5.0",
        "parameters": [
          {
            "name": "t",
            "type": "System.Double",
            "summary": "Parameter of point to evaluate."
          }
        ],
        "returns": "The point on the circle at the given parameter."
      },
      {
        "signature": "System.Void Reverse()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Reverse the orientation of the circle. Changes the domain from [a,b] to [-b,-a].",
        "since": "5.0"
      },
      {
        "signature": "System.Boolean Rotate(System.Double sinAngle, System.Double cosAngle, Vector3d axis, Point3d point)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Rotates the circle around an axis that starts at the provided point.",
        "since": "5.0",
        "parameters": [
          {
            "name": "sinAngle",
            "type": "System.Double",
            "summary": "The value returned by Math.Sin(angle) to compose the rotation."
          },
          {
            "name": "cosAngle",
            "type": "System.Double",
            "summary": "The value returned by Math.Cos(angle) to compose the rotation."
          },
          {
            "name": "axis",
            "type": "Vector3d",
            "summary": "A rotation direction."
          },
          {
            "name": "point",
            "type": "Point3d",
            "summary": "A rotation base point."
          }
        ],
        "returns": "True on success, False on failure."
      },
      {
        "signature": "System.Boolean Rotate(System.Double sinAngle, System.Double cosAngle, Vector3d axis)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Rotates the circle around an axis that starts at the base plane origin.",
        "since": "5.0",
        "parameters": [
          {
            "name": "sinAngle",
            "type": "System.Double",
            "summary": "The value returned by Math.Sin(angle) to compose the rotation."
          },
          {
            "name": "cosAngle",
            "type": "System.Double",
            "summary": "The value returned by Math.Cos(angle) to compose the rotation."
          },
          {
            "name": "axis",
            "type": "Vector3d",
            "summary": "A rotation axis."
          }
        ],
        "returns": "True on success, False on failure."
      },
      {
        "signature": "System.Boolean Rotate(System.Double angle, Vector3d axis, Point3d point)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Rotates the circle through a given angle.",
        "since": "5.0",
        "parameters": [
          {
            "name": "angle",
            "type": "System.Double",
            "summary": "Angle (in radians) of the rotation."
          },
          {
            "name": "axis",
            "type": "Vector3d",
            "summary": "Rotation axis."
          },
          {
            "name": "point",
            "type": "Point3d",
            "summary": "Rotation anchor point."
          }
        ],
        "returns": "True on success, False on failure."
      },
      {
        "signature": "System.Boolean Rotate(System.Double angle, Vector3d axis)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Rotates the circle through a given angle.",
        "since": "5.0",
        "parameters": [
          {
            "name": "angle",
            "type": "System.Double",
            "summary": "Angle (in radians) of the rotation."
          },
          {
            "name": "axis",
            "type": "Vector3d",
            "summary": "Rotation axis."
          }
        ],
        "returns": "True on success, False on failure."
      },
      {
        "signature": "Vector3d TangentAt(System.Double t)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Circles use trigonometric parameterization: t -> center + cos(t)*radius*xaxis + sin(t)*radius*yaxis.",
        "since": "5.0",
        "parameters": [
          {
            "name": "t",
            "type": "System.Double",
            "summary": "Parameter of tangent to evaluate."
          }
        ],
        "returns": "The tangent at the circle at the given parameter."
      },
      {
        "signature": "NurbsCurve ToNurbsCurve()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Constructs a nurbs curve representation of this circle. This amounts to the same as calling NurbsCurve.CreateFromCircle().",
        "since": "5.0",
        "returns": "A nurbs curve representation of this circle or None if no such representation could be made."
      },
      {
        "signature": "NurbsCurve ToNurbsCurve(System.Int32 degree, System.Int32 cvCount)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Create a uniform non-rational cubic NURBS approximation of a circle.",
        "since": "6.0",
        "parameters": [
          {
            "name": "degree",
            "type": "System.Int32",
            "summary": ">=1"
          },
          {
            "name": "cvCount",
            "type": "System.Int32",
            "summary": "cv count >=5"
          }
        ],
        "returns": "NURBS curve approximation of a circle on success"
      },
      {
        "signature": "System.Boolean Transform(Transform xform)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Transforms this circle using an transformation matrix.",
        "since": "5.0",
    "remarks": "Circles may not be transformed accurately if the transformation defines a non-euclidean transformation.",
        "parameters": [
          {
            "name": "xform",
            "type": "Transform",
            "summary": "Transformation to apply."
          }
        ],
        "returns": "True on success, False on failure."
      },
      {
        "signature": "System.Boolean Translate(Vector3d delta)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Moves the circle.",
        "since": "5.0",
        "parameters": [
          {
            "name": "delta",
            "type": "Vector3d",
            "summary": "Translation vector."
          }
        ],
        "returns": "True on success, False on failure."
      }
    ]
  },
  {
    "namespace": "Rhino.Geometry",
    "name": "ClippingPlaneSurface",
    "dataType": "class",
    "summary": "Represents a planar surface that is used as clipping plane in viewports. A clipping plane object maintains a list of viewports that it clips against.",
    "baseclass": "Rhino.Geometry.PlaneSurface",
    "constructors": [
      {
        "signature": "ClippingPlaneSurface()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Constructs an empty clipping plane surface",
        "since": "8.11"
      },
      {
        "signature": "ClippingPlaneSurface(Plane plane)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Constructs a clipping plane surface from a Plane",
        "since": "8.11"
      },
      {
        "signature": "ClippingPlaneSurface(PlaneSurface planeSurface)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Constructs a ClippingPlaneSurface from a PlaneSurface",
        "since": "8.11"
      },
      {
        "signature": "ClippingPlaneSurface(SerializationInfo info, StreamingContext context)",
        "modifiers": ["protected"],
        "protected": true,
        "virtual": false,
        "summary": "Protected constructor for internal use.",
        "parameters": [
          {
            "name": "info",
            "type": "System.Runtime.Serialization.SerializationInfo",
            "summary": "Serialization data."
          },
          {
            "name": "context",
            "type": "System.Runtime.Serialization.StreamingContext",
            "summary": "Serialization stream."
          }
        ]
      }
    ],
    "properties": [
      {
        "signature": "Guid DimensionStyleId",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "The id of the dimstyle used by this clipping plane surface. This is used to help determine how the clipping plane is drawn with respect to things like arrows and fonts",
        "property": ["get", "set"]
      },
      {
        "signature": "bool ParticipationListsEnabled",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Should the object and layer participation lists be used when determining clipping",
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "double PlaneDepth",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Distance that the clipping has an effect",
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool PlaneDepthEnabled",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Determines if the PlaneDepth value should be used",
        "since": "8.0",
        "property": ["get", "set"]
      }
    ],
    "methods": [
      {
        "signature": "System.Boolean AddClipViewportId(System.Guid viewportId)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Adds a viewport id to the list of viewports that this clipping plane clips.",
        "since": "6.1",
        "parameters": [
          {
            "name": "viewportId",
            "type": "System.Guid",
            "summary": "The id of the RhinoViewport to add."
          }
        ],
        "returns": "True if the viewport was added, False if the viewport is already in the list."
      },
      {
        "signature": "System.Void ClearClipParticipationLists()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Remove list of object ids that this clipping plane surface clips. This causes the clipping plane surface to clip all objects",
        "since": "8.0"
      },
      {
        "signature": "System.Void GetClipParticipation(out IEnumerable<Guid> objectIds, out IEnumerable<int> layerIndices, out System.Boolean isExclusionList)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "System.Boolean RemoveClipViewportId(System.Guid viewportId)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Removes a viewport id that this being clipped by this clipping plane.",
        "since": "6.1",
        "parameters": [
          {
            "name": "viewportId",
            "type": "System.Guid",
            "summary": "The id of the RhinoViewport to remove."
          }
        ],
        "returns": "True if the viewport was removed, False if the viewport was not in the list."
      },
      {
        "signature": "System.Void SetClipParticipation(IEnumerable<Guid> objectIds, IEnumerable<int> layerIndices, System.Boolean isExclusionList)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Set a list of specific object ids and layers that this clipping plane surface clips.",
        "since": "8.0",
        "parameters": [
          {
            "name": "objectIds",
            "type": "IEnumerable<Guid>",
            "summary": ""
          },
          {
            "name": "layerIndices",
            "type": "IEnumerable<int>",
            "summary": ""
          },
          {
            "name": "isExclusionList",
            "type": "System.Boolean",
            "summary": "Is the list a set of ids to not clip or a set to clip"
          }
        ]
      },
      {
        "signature": "System.Guid[] ViewportIds()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns the ids of RhinoViewport objects that are clipped by this clipping plane.",
        "since": "5.0",
        "returns": "The ids of RhinoViewport objects."
      }
    ]
  },
  {
    "namespace": "Rhino.Geometry.Collections",
    "name": "BrepCurveList",
    "dataType": "class",
    "summary": "Provides access to all the underlying curves in a Brep object.",
    "interfaces": ["IEnumerable<Curve>", "Rhino.Collections.IRhinoTable<Curve>"],
    "properties": [
      {
        "signature": "int Count",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the number of curves in this list.",
        "since": "5.6",
        "property": ["get"]
      },
      {
        "signature": "Curve this[int index]",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the Curve at the given index. The index must be valid or an IndexOutOfRangeException will be thrown."
      }
    ],
    "methods": [
      {
        "signature": "System.Int32 Add(Curve curve)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Adds a curve",
        "since": "5.6",
        "parameters": [
          {
            "name": "curve",
            "type": "Curve",
            "summary": "A copy of the curve is added to this brep"
          }
        ],
        "returns": "Index that should be used to reference the geometry.  \n-1 is returned if the input is not acceptable."
      },
      {
        "signature": "IEnumerator<Curve> GetEnumerator()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Get an enumerator that visits all curves.",
        "since": "5.6",
        "returns": "The enumerator."
      }
    ]
  },
  {
    "namespace": "Rhino.Geometry.Collections",
    "name": "BrepEdgeList",
    "dataType": "class",
    "summary": "Provides access to all the Edges in a Brep object.",
    "interfaces": ["IEnumerable<BrepEdge>", "Rhino.Collections.IRhinoTable<BrepEdge>"],
    "properties": [
      {
        "signature": "int Count",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the number of brep edges.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "BrepEdge this[int index]",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the BrepEdge at the given index. The index must be valid or an IndexOutOfRangeException will be thrown."
      }
    ],
    "methods": [
      {
        "signature": "BrepEdge Add(BrepVertex startVertex, BrepVertex endVertex, System.Int32 curve3dIndex, Interval subDomain, System.Double edgeTolerance)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Create and add a new edge to this list",
        "since": "5.4"
      },
      {
        "signature": "BrepEdge Add(BrepVertex startVertex, BrepVertex endVertex, System.Int32 curve3dIndex, System.Double edgeTolerance)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Create and add a new edge to this list",
        "since": "5.4"
      },
      {
        "signature": "BrepEdge Add(System.Int32 startVertexIndex, System.Int32 endVertexIndex, System.Int32 curve3dIndex, Interval subDomain, System.Double edgeTolerance)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Create and add a new edge to this list",
        "since": "5.6"
      },
      {
        "signature": "BrepEdge Add(System.Int32 startVertexIndex, System.Int32 endVertexIndex, System.Int32 curve3dIndex, System.Double edgeTolerance)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Create and add a new edge to this list",
        "since": "5.6"
      },
      {
        "signature": "BrepEdge Add(System.Int32 curve3dIndex)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Create and add a new edge to this list",
        "since": "5.4"
      },
      {
        "signature": "IEnumerator<BrepEdge> GetEnumerator()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets an enumerator that visits all edges.",
        "since": "5.0",
        "returns": "The enumerator."
      },
      {
        "signature": "System.Int32 MergeAllEdges(System.Double angleTolerance)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Merges all possible Brep edges. Edges across kinks cannot be merged. A pair of adjacent edges in a Brep  are mergeable if the angle between them is less than tolerance and the valence of the shared vertex is 2.",
        "since": "6.23",
        "parameters": [
          {
            "name": "angleTolerance",
            "type": "System.Double",
            "summary": "The maximum allowable difference of angle in radian between adjacent edges that can be merged."
          }
        ],
        "returns": "The number of edges merged."
      },
      {
        "signature": "System.Int32 MergeEdge(System.Int32 edgeIndex, System.Double angleTolerance)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Merge adjacent edges to a specified edge recursively. A pair of adjacent edges in a Brep  are mergeable if the angle between them is less than tolerance and the valence of the shared vertex is 2.",
        "since": "6.23",
        "parameters": [
          {
            "name": "edgeIndex",
            "type": "System.Int32",
            "summary": ">Index of edge to merge."
          },
          {
            "name": "angleTolerance",
            "type": "System.Double",
            "summary": "The maximum allowable difference of angle in radian between adjacent edges that can be merged."
          }
        ],
        "returns": "The number of edges merged."
      },
      {
        "signature": "System.Int32 RemoveNakedMicroEdges(System.Double tolerance, System.Boolean cleanUp)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Finds any naked edges with the same start and end vertex and an arc-length less than tolerance and attempts to remove them by removing trims and extending the adjacent to meet.",
        "since": "7.0",
        "parameters": [
          {
            "name": "tolerance",
            "type": "System.Double",
            "summary": "The tolerance. When in doubt, use the document's model absolute tolerance."
          },
          {
            "name": "cleanUp",
            "type": "System.Boolean",
            "summary": "If true, then the method cleans up the Brep by setting tolerances, boxes, flags, and then compacts. If false, then the caller should do this at some point."
          }
        ],
        "returns": "The number of naked micro edges that were removed."
      },
      {
        "signature": "System.Int32 RemoveNakedMicroEdges(System.Double tolerance)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Finds any naked edges with the same start and end vertex and an arc-length less than tolerance and attempts to remove them by removing trims and extending the adjacent to meet.",
        "since": "7.0",
        "parameters": [
          {
            "name": "tolerance",
            "type": "System.Double",
            "summary": "The tolerance. When in doubt, use the document's model absolute tolerance."
          }
        ],
        "returns": "The number of naked micro edges that were removed."
      },
      {
        "signature": "System.Int32 SplitEdgeAtParameters(System.Int32 edgeIndex, IEnumerable<double> edgeParameters)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Splits an edge at the specified parameters.",
        "since": "5.0",
    "remarks": "This function leaves deleted stuff in the brep.  Call Brep.Compact() to remove deleted stuff.",
        "parameters": [
          {
            "name": "edgeIndex",
            "type": "System.Int32",
            "summary": "The index of the edge to be addressed."
          },
          {
            "name": "edgeParameters",
            "type": "IEnumerable<double>",
            "summary": "The parameter along that edge."
          }
        ],
        "returns": "Number of splits applied to the edge."
      },
      {
        "signature": "System.Boolean SplitKinkyEdge(System.Int32 edgeIndex, System.Double kinkToleranceRadians)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Splits the edge into G1 pieces.",
        "since": "5.0",
    "remarks": "This function leaves deleted stuff in the brep.  Call Brep.Compact() to remove deleted stuff.",
        "parameters": [
          {
            "name": "edgeIndex",
            "type": "System.Int32",
            "summary": "Index of edge to test and split."
          },
          {
            "name": "kinkToleranceRadians",
            "type": "System.Double",
            "summary": "The split tolerance in radians."
          }
        ],
        "returns": "True if successful."
      }
    ]
  },
  {
    "namespace": "Rhino.Geometry.Collections",
    "name": "BrepFaceList",
    "dataType": "class",
    "summary": "Provides access to all the Faces in a Brep object.",
    "interfaces": ["IEnumerable<BrepFace>", "Rhino.Collections.IRhinoTable<BrepFace>"],
    "properties": [
      {
        "signature": "int Count",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the number of brep faces.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "bool HasPerFaceColors",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "True if one or more faces on the active level have per face color overrides.",
        "since": "8.18",
    "remarks": "Per face colors are a mutable property on <b>BrepFace</b> and are set with <b>BrepFace.PerFaceColor</b> .",
        "property": ["get"]
      },
      {
        "signature": "BrepFace this[int index]",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the BrepFace at the given index. The index must be valid or an IndexOutOfRangeException will be thrown."
      }
    ],
    "methods": [
      {
        "signature": "BrepFace Add(Surface surface)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Add a new face to a brep.  This creates a complete face with new vertices at the surface corners, new edges along the surface boundary, etc.  The loop of the returned face has four trims that correspond to the south, east, north, and west side of the surface in that order.  If you use this version of Add to add an exiting brep, then you are responsible for using a tool like JoinEdges() to hook the new face to its neighbors.",
        "since": "5.4",
        "parameters": [
          {
            "name": "surface",
            "type": "Surface",
            "summary": "surface is copied"
          }
        ]
      },
      {
        "signature": "BrepFace Add(System.Int32 surfaceIndex)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Create and add a new face to this list. An incomplete face is added. The caller must create and fill in the loops used by the face.",
        "since": "5.4",
        "parameters": [
          {
            "name": "surfaceIndex",
            "type": "System.Int32",
            "summary": "index of surface in brep's Surfaces list"
          }
        ]
      },
      {
        "signature": "BrepFace AddConeFace(BrepVertex vertex, BrepEdge edge, System.Boolean revEdge)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Add a new face to the brep whose surface geometry is a ruled cone with the edge as the base and the vertex as the apex point.",
        "since": "5.4",
        "parameters": [
          {
            "name": "vertex",
            "type": "BrepVertex",
            "summary": "The apex of the cone will be at this vertex. The north side of the surface's parameter space will be a singular point at the vertex."
          },
          {
            "name": "edge",
            "type": "BrepEdge",
            "summary": "The south side of the face's surface will run along this edge."
          },
          {
            "name": "revEdge",
            "type": "System.Boolean",
            "summary": "True if the new face's outer boundary orientation along the edge is opposite the orientation of edge."
          }
        ]
      },
      {
        "signature": "BrepFace AddRuledFace(BrepEdge edgeA, System.Boolean revEdgeA, BrepEdge edgeB, System.Boolean revEdgeB)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Add a new face to the brep whose surface geometry is a ruled surface between two edges.",
        "since": "5.4",
        "parameters": [
          {
            "name": "edgeA",
            "type": "BrepEdge",
            "summary": "The south side of the face's surface will run along edgeA."
          },
          {
            "name": "revEdgeA",
            "type": "System.Boolean",
            "summary": "True if the new face's outer boundary orientation along edgeA is opposite the orientation of edgeA."
          },
          {
            "name": "edgeB",
            "type": "BrepEdge",
            "summary": "The north side of the face's surface will run along edgeA"
          },
          {
            "name": "revEdgeB",
            "type": "System.Boolean",
            "summary": "True if the new face's outer boundary orientation along edgeB is opposite the orientation of edgeB"
          }
        ]
      },
      {
        "signature": "System.UInt32 ClearPerFaceColors()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Removes all per face color overrides on the active level.",
        "since": "8.18",
    "remarks": "Per face colors are a mutable property on <b>BrepFace</b> and are set with <b>BrepFace.PerFaceColor</b> .",
        "returns": "Number of changed faces."
      },
      {
        "signature": "Brep ExtractFace(System.Int32 faceIndex)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Extracts a face from a Brep.",
        "since": "5.0",
        "parameters": [
          {
            "name": "faceIndex",
            "type": "System.Int32",
            "summary": "A face index"
          }
        ],
        "returns": "A brep. This can be null."
      },
      {
        "signature": "System.Void Flip(System.Boolean onlyReversedFaces)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Flips the orientation of faces.",
        "since": "5.0",
        "parameters": [
          {
            "name": "onlyReversedFaces",
            "type": "System.Boolean",
            "summary": "If true, clears all BrepFace.OrientationIsReversed flags by calling BrepFace.Transpose() on each face with a True OrientationIsReversed setting. If false, all of the faces are flipped regardless of their orientation."
          }
        ]
      },
      {
        "signature": "IEnumerator<BrepFace> GetEnumerator()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets an enumerators that yields <b>BrepFace</b> objects.",
        "since": "5.0",
        "returns": "The enumerator."
      },
      {
        "signature": "System.Void RemoveAt(System.Int32 faceIndex)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Deletes a face at a specified index.",
        "since": "5.0",
        "parameters": [
          {
            "name": "faceIndex",
            "type": "System.Int32",
            "summary": "The index of the mesh face."
          }
        ]
      },
      {
        "signature": "System.Boolean RemoveSlits()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Remove slit trims and slit boundaries from each face.",
        "since": "5.10",
        "returns": "True if any slits were removed"
      },
      {
        "signature": "System.Boolean ShrinkFaces()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Shrinks all the underlying surfaces in this Brep. Sometimes the surfaces extend far beyond the trimming boundaries of the Brep Face. This function will remove those portions of the surfaces that are not used.",
        "since": "5.0",
        "returns": "True on success, False on failure."
      },
      {
        "signature": "System.Boolean SplitBipolarFaces()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Splits surfaces with two singularities, like spheres, so the results have at most one singularity.",
        "since": "5.0",
        "returns": "True if successful."
      },
      {
        "signature": "System.Boolean SplitClosedFaces(System.Int32 minimumDegree)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Splits closed surfaces so they are not closed.",
        "since": "5.0",
        "parameters": [
          {
            "name": "minimumDegree",
            "type": "System.Int32",
            "summary": "If the degree of the surface < min_degree, the surface is not split. In some cases, minimumDegree = 2 is useful to preserve piecewise linear surfaces."
          }
        ],
        "returns": "True if successful."
      },
      {
        "signature": "System.Boolean SplitFaceAtTangents(System.Int32 faceIndex, System.Boolean aggressiveMode)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Splits the face of a Brep at tangent locations. The face surface will be split at locations of curvature discontinuities with constant tangents.",
        "since": "6.0",
        "parameters": [
          {
            "name": "faceIndex",
            "type": "System.Int32",
            "summary": "The index of the face to split."
          },
          {
            "name": "aggressiveMode",
            "type": "System.Boolean",
            "summary": "If aggressive mode is true, the face surface will be split at locations of curvature discontinuities with constant tangents. If aggressive mode is false, only split when the curvature change is from no curvature to some curvature or when the curvature vector directions are opposite."
          }
        ],
        "returns": "True if successful, False otherwise."
      },
      {
        "signature": "System.Boolean SplitFaceAtTangents(System.Int32 faceIndex)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Splits the face of a Brep at tangent locations. The face surface will be split at locations of curvature discontinuities with constant tangents.",
        "since": "6.0",
        "parameters": [
          {
            "name": "faceIndex",
            "type": "System.Int32",
            "summary": "The index of the face to split."
          }
        ],
        "returns": "True if successful, False otherwise."
      },
      {
        "signature": "System.Boolean SplitFacesAtTangents()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Splits all of the faces of a Brep at tangent locations. The face surfaces will be split at locations of curvature discontinuities with constant tangents.",
        "since": "6.0",
        "returns": "True if successful, False otherwise."
      },
      {
        "signature": "System.Boolean SplitFacesAtTangents(System.Boolean aggressiveMode)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Splits all of the faces of a Brep at tangent locations.",
        "parameters": [
          {
            "name": "aggressiveMode",
            "type": "System.Boolean",
            "summary": "If aggressive mode is true, the face surfaces will be split at locations of curvature discontinuities with constant tangents. If aggressive mode is false, only split when the curvature change is from no curvature to some curvature or when the curvature vector directions are opposite."
          }
        ],
        "returns": "True if successful, False otherwise."
      },
      {
        "signature": "System.Boolean SplitKinkyFace(System.Int32 faceIndex, System.Double kinkTolerance)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Splits a single face into G1 pieces.",
        "since": "5.0",
    "remarks": "This function leaves deleted stuff in the brep.  Call Brep.Compact() to remove deleted stuff.",
        "parameters": [
          {
            "name": "faceIndex",
            "type": "System.Int32",
            "summary": "The index of the face to split."
          },
          {
            "name": "kinkTolerance",
            "type": "System.Double",
            "summary": "Tolerance (in radians) to use for crease detection."
          }
        ],
        "returns": "True on success, False on failure."
      },
      {
        "signature": "System.Boolean SplitKinkyFaces()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Splits any faces with creases into G1 pieces.",
        "since": "5.0",
    "remarks": "If you need to detect whether splitting occurred, compare the before and after values of Faces.Count",
        "returns": "True on success, False on failure."
      },
      {
        "signature": "System.Boolean SplitKinkyFaces(System.Double kinkTolerance, System.Boolean compact)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Splits any faces with creases into G1 pieces.",
        "since": "5.0",
    "remarks": "If you need to detect whether splitting occurred, compare the before and after values of Faces.Count",
        "parameters": [
          {
            "name": "kinkTolerance",
            "type": "System.Double",
            "summary": "Tolerance (in radians) to use for crease detection."
          },
          {
            "name": "compact",
            "type": "System.Boolean",
            "summary": "If true, the Brep will be compacted if possible."
          }
        ],
        "returns": "True on success, False on failure."
      },
      {
        "signature": "System.Boolean SplitKinkyFaces(System.Double kinkTolerance)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Splits any faces with creases into G1 pieces.",
        "since": "5.0",
    "remarks": "If you need to detect whether splitting occurred, compare the before and after values of Faces.Count",
        "parameters": [
          {
            "name": "kinkTolerance",
            "type": "System.Double",
            "summary": "Tolerance (in radians) to use for crease detection."
          }
        ],
        "returns": "True on success, False on failure."
      },
      {
        "signature": "System.Boolean StandardizeFaceSurface(System.Int32 faceIndex)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Standardizes the relationship between a BrepFace and the 3d surface it uses.  When done, the face will be the only face that references its 3d surface, and the orientations of the face and 3d surface will be the same.",
        "since": "5.0",
        "parameters": [
          {
            "name": "faceIndex",
            "type": "System.Int32",
            "summary": "The index of the face."
          }
        ],
        "returns": "True if successful."
      },
      {
        "signature": "System.Void StandardizeFaceSurfaces()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Standardize all faces in the brep.",
        "since": "5.0"
      }
    ]
  },
  {
    "namespace": "Rhino.Geometry.Collections",
    "name": "BrepLoopList",
    "dataType": "class",
    "summary": "Provides access to all the Loops in a Brep object.",
    "interfaces": ["IEnumerable<BrepLoop>", "Rhino.Collections.IRhinoTable<BrepLoop>"],
    "properties": [
      {
        "signature": "int Count",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the number of brep loops.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "BrepLoop this[int index]",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the BrepLoop at the given index. The index must be valid or an IndexOutOfRangeException will be thrown."
      }
    ],
    "methods": [
      {
        "signature": "BrepLoop Add(BrepLoopType loopType, BrepFace face)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Create a new boundary loop on a face.  After you get this BrepLoop, you still need to create the vertices, edges, and trims that define the loop.",
        "since": "5.4",
        "returns": "New loop that needs to be filled in"
      },
      {
        "signature": "BrepLoop Add(BrepLoopType loopType)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Create a new empty boundary loop. The new loop will not be part of a face and will not include any trim curves.",
        "since": "5.4"
      },
      {
        "signature": "BrepLoop AddOuterLoop(System.Int32 faceIndex)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Create a new outer boundary loop that runs along the sides of the face's surface.  All the necessary trims, edges, and vertices are created and added to the brep.",
        "since": "5.4",
        "parameters": [
          {
            "name": "faceIndex",
            "type": "System.Int32",
            "summary": "index of face that needs an outer boundary that runs along the sides of its surface."
          }
        ],
        "returns": "New outer boundary loop that is complete."
      },
      {
        "signature": "BrepLoop AddPlanarFaceLoop(System.Int32 faceIndex, BrepLoopType loopType, IEnumerable<Curve> boundaryCurves)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Add a planar trimming loop to a planar face",
        "since": "5.4",
        "parameters": [
          {
            "name": "faceIndex",
            "type": "System.Int32",
            "summary": "index of planar face.  The underlying surface must be a PlaneSurface"
          },
          {
            "name": "loopType",
            "type": "BrepLoopType",
            "summary": "type of loop to add.  If loopType is Unknown, then the loop direction is tested and the new loops type will be set to Outer or Inner. If the loopType is Outer, then the direction of the new loop is tested and flipped if it is clockwise. If the loopType is Inner, then the direction of the new loop is tested and flipped if it is counter-clockwise."
          },
          {
            "name": "boundaryCurves",
            "type": "IEnumerable<Curve>",
            "summary": "list of 3d curves that form a simple (no self intersections) closed curve.  These curves define the 3d edge geometry and should be near the planar surface."
          }
        ],
        "returns": "new loop if successful"
      },
      {
        "signature": "IEnumerator<BrepLoop> GetEnumerator()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets an enumerator that visits all edges.",
        "since": "5.0",
        "returns": "The enumerator."
      }
    ]
  },
  {
    "namespace": "Rhino.Geometry.Collections",
    "name": "BrepSurfaceList",
    "dataType": "class",
    "summary": "Provides access to all the underlying surfaces in a Brep object.",
    "interfaces": ["IEnumerable<Surface>", "Rhino.Collections.IRhinoTable<Surface>"],
    "properties": [
      {
        "signature": "int Count",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the number of surfaces in a brep.",
        "since": "5.4",
        "property": ["get"]
      },
      {
        "signature": "Surface this[int index]",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the Surface at the given index. The index must be valid or an IndexOutOfRangeException will be thrown."
      }
    ],
    "methods": [
      {
        "signature": "IEnumerator<Surface> GetEnumerator()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets an enumerator that visits all surfaces.",
        "since": "5.4",
        "returns": "The enumerator."
      }
    ]
  },
  {
    "namespace": "Rhino.Geometry.Collections",
    "name": "BrepTrimList",
    "dataType": "class",
    "summary": "Provides access to all the Trims in a Brep object",
    "interfaces": ["IEnumerable<BrepTrim>", "Rhino.Collections.IRhinoTable<BrepTrim>"],
    "properties": [
      {
        "signature": "int Count",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the number of brep trims.",
        "since": "5.1",
        "property": ["get"]
      },
      {
        "signature": "BrepTrim this[int index]",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the BrepTrim at the given index. The index must be valid or an IndexOutOfRangeException will be thrown."
      }
    ],
    "methods": [
      {
        "signature": "BrepTrim Add(BrepEdge edge, System.Boolean rev3d, BrepLoop loop, System.Int32 curve2dIndex)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Add a new trim that will be part of an inner, outer, or slit loop to the brep.",
        "since": "5.4",
        "parameters": [
          {
            "name": "edge",
            "type": "BrepEdge",
            "summary": "3d edge associated with this trim"
          },
          {
            "name": "rev3d",
            "type": "System.Boolean",
            "summary": "True if the edge and trim have opposite directions"
          },
          {
            "name": "loop",
            "type": "BrepLoop",
            "summary": "trim is appended to this loop"
          },
          {
            "name": "curve2dIndex",
            "type": "System.Int32",
            "summary": "index of 2d trimming curve"
          }
        ],
        "returns": "new trim"
      },
      {
        "signature": "BrepTrim Add(System.Boolean rev3d, BrepEdge edge, System.Int32 curve2dIndex)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Add a new trim that will be part of an inner, outer, or slit loop to the brep",
        "since": "5.4",
        "parameters": [
          {
            "name": "rev3d",
            "type": "System.Boolean",
            "summary": "True if the edge and trim have opposite directions"
          },
          {
            "name": "edge",
            "type": "BrepEdge",
            "summary": "3d edge associated with this trim"
          },
          {
            "name": "curve2dIndex",
            "type": "System.Int32",
            "summary": "index of 2d trimming curve"
          }
        ],
        "returns": "new trim"
      },
      {
        "signature": "BrepTrim Add(System.Boolean rev3d, BrepLoop loop, System.Int32 curve2dIndex)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Add a new trim that will be part of an inner, outer, or slit loop to the brep",
        "since": "5.4",
        "parameters": [
          {
            "name": "rev3d",
            "type": "System.Boolean",
            "summary": "True if the edge and trim have opposite directions"
          },
          {
            "name": "loop",
            "type": "BrepLoop",
            "summary": "trim is appended to this loop"
          },
          {
            "name": "curve2dIndex",
            "type": "System.Int32",
            "summary": "index of 2d trimming curve"
          }
        ],
        "returns": "new trim"
      },
      {
        "signature": "BrepTrim Add(System.Int32 curve2dIndex)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Add a new trim that will be part of an inner, outer, or slit loop to the brep.",
        "since": "5.4",
    "remarks": "You should set the trim's Tolerance, TrimType, and IsoStatus values. In general, you should try to use the Add( edge, bRev3d, loop, c2i ) version of NewTrim. If you want to add a singular trim, use AddSingularTrim. If you want to add a curve-on-surface trim, use AddCurveOnFace. If you want to add a point-on-surface trim, use AddPointOnFace.",
        "parameters": [
          {
            "name": "curve2dIndex",
            "type": "System.Int32",
            "summary": "index of 2d trimming curve"
          }
        ],
        "returns": "New Trim"
      },
      {
        "signature": "BrepTrim AddCurveOnFace(BrepFace face, BrepEdge edge, System.Boolean rev3d, System.Int32 curve2dIndex)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Add a new curve on face to the brep",
        "since": "5.4",
    "remarks": "You should set the trim's tolerance and iso values.",
        "parameters": [
          {
            "name": "face",
            "type": "BrepFace",
            "summary": "face that curve lies on"
          },
          {
            "name": "edge",
            "type": "BrepEdge",
            "summary": "3d edge associated with this curve on surface"
          },
          {
            "name": "rev3d",
            "type": "System.Boolean",
            "summary": "True if the 3d edge and the 2d parameter space curve have opposite directions."
          },
          {
            "name": "curve2dIndex",
            "type": "System.Int32",
            "summary": "index of 2d curve in face's parameter space"
          }
        ],
        "returns": "new trim that represents the curve on surface"
      },
      {
        "signature": "BrepTrim AddSingularTrim(BrepVertex vertex, BrepLoop loop, IsoStatus iso, System.Int32 curve2dIndex)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Add a new singular trim to the brep.",
        "since": "5.4",
        "parameters": [
          {
            "name": "vertex",
            "type": "BrepVertex",
            "summary": "vertex along collapsed surface edge"
          },
          {
            "name": "loop",
            "type": "BrepLoop",
            "summary": "trim is appended to this loop"
          },
          {
            "name": "iso",
            "type": "IsoStatus",
            "summary": ""
          },
          {
            "name": "curve2dIndex",
            "type": "System.Int32",
            "summary": "index of 2d trimming curve"
          }
        ],
        "returns": "new trim"
      },
      {
        "signature": "IEnumerator<BrepTrim> GetEnumerator()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets an enumerator that visits all edges.",
        "since": "5.1",
        "returns": "The enumerator."
      },
      {
        "signature": "System.Boolean MatchEnds()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Matches the endpoints of all trims in the Brep.",
        "since": "6.19",
        "returns": "True if any trim's 2d curve is changed, False otherwise."
      },
      {
        "signature": "System.Boolean MatchEnds(BrepLoop loop)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Match the endpoints of all trims in a loop.",
        "since": "6.19",
        "parameters": [
          {
            "name": "loop",
            "type": "BrepLoop",
            "summary": "The Brep loop."
          }
        ],
        "returns": "True if any trim's 2d curve is changed, False otherwise."
      },
      {
        "signature": "System.Boolean MatchEnds(BrepTrim trim0, BrepTrim trim1)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Match the end of a trim to the start of the next trim.",
        "since": "6.19",
        "parameters": [
          {
            "name": "trim0",
            "type": "BrepTrim",
            "summary": "The Brep trim."
          },
          {
            "name": "trim1",
            "type": "BrepTrim",
            "summary": "Brep trim that comes immediately after trim0 in the same loop."
          }
        ],
        "returns": "True if either trim's 2d curve is changed, False otherwise."
      },
      {
        "signature": "System.Boolean MatchEnds(System.Int32 trimIndex)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Match the endpoints of a trim to the next and previous trim.",
        "since": "6.19",
        "returns": "True if any trim's 2d curve is changed, False otherwise."
      }
    ]
  },
  {
    "namespace": "Rhino.Geometry.Collections",
    "name": "BrepVertexList",
    "dataType": "class",
    "summary": "Provides access to all the Vertices in a Brep object",
    "interfaces": ["IEnumerable<BrepVertex>", "Rhino.Collections.IRhinoTable<BrepVertex>"],
    "properties": [
      {
        "signature": "int Count",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the number of brep vertices.",
        "since": "5.4",
        "property": ["get"]
      },
      {
        "signature": "BrepVertex this[int index]",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the BrepVertex at the given index. The index must be valid or an IndexOutOfRangeException will be thrown."
      }
    ],
    "methods": [
      {
        "signature": "BrepVertex Add()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Create and add a new vertex to this list",
        "since": "5.4"
      },
      {
        "signature": "BrepVertex Add(Point3d point, System.Double vertexTolerance)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Create and add a new vertex to this list",
        "since": "5.4",
        "parameters": [
          {
            "name": "point",
            "type": "Point3d",
            "summary": ""
          },
          {
            "name": "vertexTolerance",
            "type": "System.Double",
            "summary": "Use RhinoMath.UnsetTolerance if you are unsure"
          }
        ]
      },
      {
        "signature": "BrepVertex AddPointOnFace(BrepFace face, System.Double s, System.Double t)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Adds a new point on face to the brep",
        "since": "5.4",
    "remarks": "If a vertex is a point on a face, then brep.Edges[edge_index] will be an edge with no 3d curve.  This edge will have a single trim with type BrepTrimType.CurveOnSurface.  There will be a loop containing this single trim.",
        "parameters": [
          {
            "name": "face",
            "type": "BrepFace",
            "summary": "face that vertex lies on"
          },
          {
            "name": "s",
            "type": "System.Double",
            "summary": "surface parameters"
          },
          {
            "name": "t",
            "type": "System.Double",
            "summary": "surface parameters"
          }
        ],
        "returns": "new vertex that represents the point on face"
      },
      {
        "signature": "IEnumerator<BrepVertex> GetEnumerator()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets an enumerator that visits all surfaces.",
        "since": "5.4",
        "returns": "The enumerator."
      }
    ]
  },
  {
    "namespace": "Rhino.Geometry.Collections",
    "name": "MeshFaceList",
    "dataType": "class",
    "summary": "Provides access to the faces and Face related functionality of a Mesh.",
    "interfaces": ["IResizableList<MeshFace>", "IList", "IReadOnlyList<MeshFace>"],
    "properties": [
      {
        "signature": "int Capacity",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the total number of mesh triangles and quads the internal data structure can hold without resizing.",
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "int Count",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the number of mesh faces. When getting this can includes invalid faces.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "int QuadCount",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the number of faces that are valid quads (4 corners).",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "int TriangleCount",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the number of faces that are valid triangles (3 corners).",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "MeshFace this[int index]",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns the mesh face at the given index."
      }
    ],
    "methods": [
      {
        "signature": "System.Int32 AddFace(MeshFace face)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Appends a new mesh face to the end of the mesh face list.",
        "since": "5.0",
        "parameters": [
          {
            "name": "face",
            "type": "MeshFace",
            "summary": "Face to add."
          }
        ],
        "returns": "The index of the newly added face."
      },
      {
        "signature": "System.Int32 AddFace(System.Int32 vertex1, System.Int32 vertex2, System.Int32 vertex3, System.Int32 vertex4)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Appends a new quadrangular face to the end of the mesh face list.",
        "since": "5.0",
        "parameters": [
          {
            "name": "vertex1",
            "type": "System.Int32",
            "summary": "Index of first face corner."
          },
          {
            "name": "vertex2",
            "type": "System.Int32",
            "summary": "Index of second face corner."
          },
          {
            "name": "vertex3",
            "type": "System.Int32",
            "summary": "Index of third face corner."
          },
          {
            "name": "vertex4",
            "type": "System.Int32",
            "summary": "Index of fourth face corner."
          }
        ],
        "returns": "The index of the newly added quad."
      },
      {
        "signature": "System.Int32 AddFace(System.Int32 vertex1, System.Int32 vertex2, System.Int32 vertex3)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Appends a new triangular face to the end of the mesh face list.",
        "since": "5.0",
        "parameters": [
          {
            "name": "vertex1",
            "type": "System.Int32",
            "summary": "Index of first face corner."
          },
          {
            "name": "vertex2",
            "type": "System.Int32",
            "summary": "Index of second face corner."
          },
          {
            "name": "vertex3",
            "type": "System.Int32",
            "summary": "Index of third face corner."
          }
        ],
        "returns": "The index of the newly added triangle."
      },
      {
        "signature": "System.Int32[] AddFaces(IEnumerable<MeshFace> faces)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Appends a list of faces to the end of the mesh face list.",
        "since": "5.0",
        "parameters": [
          {
            "name": "faces",
            "type": "IEnumerable<MeshFace>",
            "summary": "Faces to add."
          }
        ],
        "returns": "Indices of the newly created faces"
      },
      {
        "signature": "System.Int32[] AdjacentFaces(System.Int32 faceIndex)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets all faces that share a topological edge with a given face.",
        "since": "5.0",
        "parameters": [
          {
            "name": "faceIndex",
            "type": "System.Int32",
            "summary": "A face index."
          }
        ],
        "returns": "All indices that share an edge."
      },
      {
        "signature": "System.Void Clear()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Clears the Face list on the mesh.",
        "since": "5.0"
      },
      {
        "signature": "System.Int32 ConvertNonPlanarQuadsToTriangles(System.Double planarTolerance, System.Double angleToleranceRadians, System.Int32 splitMethod)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Splits non-planar quads into two triangles based on given parameters.",
        "since": "6.0",
    "remarks": "If both planarTolerance = Rhino.RhinoMath.UnsetValue and angleToleranceRadians = Rhino.RhinoMath.UnsetValue, then all quads are split.",
        "parameters": [
          {
            "name": "planarTolerance",
            "type": "System.Double",
            "summary": "If planarTolerance >= 0, then a quad is split if its vertices are not coplanar. If both planarTolerance = Rhino.RhinoMath.UnsetValue and angleToleranceRadians >= 0.0, then the planarity test is skipped."
          },
          {
            "name": "angleToleranceRadians",
            "type": "System.Double",
            "summary": "If angleToleranceRadians >= 0.0, then a quad is split if the angle between opposite corner normals is > angleToleranceRadians. The corner normal is the normal to the triangle formed by two adjacent edges and the diagonal connecting their endpoints. A quad has four corner normals. If both angleToleranceRadians = Rhino.RhinoMath.UnsetValue and planarTolerance >= 0.0, then the corner normal angle test is skipped."
          },
          {
            "name": "splitMethod",
            "type": "System.Int32",
            "summary": "0 default Currently divides along the short diagonal. This may be changed as better methods are found or preferences change. By passing zero, you let the developers of this code decide what's best for you over time. 1 divide along the short diagonal 2 divide along the long diagonal 3 minimize resulting area 4 maximize resulting area 5 minimize angle between triangle normals 6 maximize angle between triangle normals"
          }
        ],
        "returns": "Number of quads that were converted to triangles."
      },
      {
        "signature": "System.Boolean ConvertQuadsToTriangles()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Splits all quads along the short diagonal.",
        "since": "5.0",
        "returns": "True on success, False on failure."
      },
      {
        "signature": "System.Boolean ConvertTrianglesToQuads(System.Double angleToleranceRadians, System.Double minimumDiagonalLengthRatio)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Joins adjacent triangles into quads if the resulting quad is 'nice'.",
        "since": "5.0",
        "parameters": [
          {
            "name": "angleToleranceRadians",
            "type": "System.Double",
            "summary": "Used to compare adjacent triangles' face normals. For two triangles to be considered, the angle between their face normals has to be <= angleToleranceRadians. When in doubt use RhinoMath.PI/90.0 (2 degrees)."
          },
          {
            "name": "minimumDiagonalLengthRatio",
            "type": "System.Double",
            "summary": "( <= 1.0) For two triangles to be considered the ratio of the resulting quad's diagonals (length of the shortest diagonal)/(length of longest diagonal). has to be >= minimumDiagonalLengthRatio. When in doubt us .875."
          }
        ],
        "returns": "True on success, False on failure."
      },
      {
        "signature": "System.Int32 CullDegenerateFaces()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Attempts to removes degenerate faces from the mesh.  \nDegenerate faces are faces that contains such a combination of indices,     that their final shape collapsed in a line or point.  \nBefore returning, this method also attempts to repair faces by juggling     vertex indices.",
        "since": "5.0",
        "returns": "The number of degenerate faces that were removed."
      },
      {
        "signature": "System.Int32 DeleteFaces(IEnumerable<int> faceIndexes, System.Boolean compact)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Removes a collection of faces from the mesh without affecting the remaining geometry.",
        "since": "6.6",
        "parameters": [
          {
            "name": "faceIndexes",
            "type": "IEnumerable<int>",
            "summary": "An array containing all the face indices to be removed."
          },
          {
            "name": "compact",
            "type": "System.Boolean",
            "summary": "If true, removes vertices that are no longer referenced."
          }
        ],
        "returns": "The number of faces deleted on success."
      },
      {
        "signature": "System.Int32 DeleteFaces(IEnumerable<int> faceIndexes)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Removes a collection of faces from the mesh without affecting the remaining geometry.",
        "since": "5.0",
        "parameters": [
          {
            "name": "faceIndexes",
            "type": "IEnumerable<int>",
            "summary": "An array containing all the face indices to be removed."
          }
        ],
        "returns": "The number of faces deleted on success."
      },
      {
        "signature": "System.Void Destroy()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Releases all memory allocated to store faces. The list capacity will be 0 after this call.  \nSubsequent calls can add new items.",
        "since": "6.0"
      },
      {
        "signature": "Mesh ExtractDuplicateFaces()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Extracts, or removes, duplicate faces.",
        "since": "6.0",
        "returns": "A mesh containing the extracted duplicate faces if successful, None otherwise."
      },
      {
        "signature": "Mesh ExtractFaces(IEnumerable<int> faceIndices)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Extracts, or removes, faces.",
        "since": "6.0",
        "parameters": [
          {
            "name": "faceIndices",
            "type": "IEnumerable<int>",
            "summary": "The face indices to be extracted."
          }
        ],
        "returns": "A mesh containing the extracted faces if successful, None otherwise."
      },
      {
        "signature": "IndexPair[] GetClashingFacePairs(System.Int32 maxPairCount)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets an array of pairs of mesh faces that clash.",
        "since": "6.0",
        "parameters": [
          {
            "name": "maxPairCount",
            "type": "System.Int32",
            "summary": "If >0, then at most this many pairs will be added to the output array. If <=0, then all clashing pairs will be added to the output array."
          }
        ],
        "returns": "Array of pairs of mesh face indices."
      },
      {
        "signature": "System.Int32[] GetConnectedFaces(System.Int32 faceIndex, System.Double angleRadians, System.Boolean greaterThanAngle)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Find all connected face indices where adjacent face normals meet the criteria of angleRadians and greaterThanAngle",
        "since": "5.6",
        "parameters": [
          {
            "name": "faceIndex",
            "type": "System.Int32",
            "summary": "face index to start from"
          },
          {
            "name": "angleRadians",
            "type": "System.Double",
            "summary": "angle to use for comparison of what is connected"
          },
          {
            "name": "greaterThanAngle",
            "type": "System.Boolean",
            "summary": "If True angles greater than or equal to are considered connected. If false, angles less than or equal to are considered connected."
          }
        ],
        "returns": "list of connected face indices"
      },
      {
        "signature": "System.Int32[] GetConnectedFaces(System.Int32 faceIndex)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Find all connected face indices",
        "since": "7.1",
        "parameters": [
          {
            "name": "faceIndex",
            "type": "System.Int32",
            "summary": "face index to start from"
          }
        ],
        "returns": "list of connected face indices"
      },
      {
        "signature": "System.Int32[] GetConnectedFacesToEdges(System.Int32 startFaceIndex, System.Boolean treatNonmanifoldLikeUnwelded)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Uses startFaceIndex and finds all connected face indexes up to unwelded or naked edges. If treatNonmanifoldLikeUnwelded is True then non-manifold edges will be considered as unwelded or naked",
        "since": "5.6",
        "parameters": [
          {
            "name": "startFaceIndex",
            "type": "System.Int32",
            "summary": "Initial face index"
          },
          {
            "name": "treatNonmanifoldLikeUnwelded",
            "type": "System.Boolean",
            "summary": "True means non-manifold edges will be handled like unwelded edges, False means they aren't considered"
          }
        ],
        "returns": "Array of connected face indexes"
      },
      {
        "signature": "System.Int32[] GetDuplicateFaces()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Finds all of the duplicate faces.",
        "since": "6.0",
        "returns": "The indexes that are duplicates of other indexes if successful. If there are no duplicate, then an empty array is returned."
      },
      {
        "signature": "IEnumerator<MeshFace> GetEnumerator()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets an enumerator that yields all faces in this collection.",
        "since": "5.0",
        "returns": "The enumerator."
      },
      {
        "signature": "MeshFace GetFace(System.Int32 index)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns the mesh face at the given index.",
        "since": "5.0",
        "parameters": [
          {
            "name": "index",
            "type": "System.Int32",
            "summary": "Index of face to get. Must be larger than or equal to zero and smaller than the Face Count of the mesh."
          }
        ],
        "returns": "The mesh face at the given index on success or MeshFace.Unset if the index is out of range."
      },
      {
        "signature": "System.Double GetFaceAspectRatio(System.Int32 index)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns the mesh face at the given index.",
        "since": "6.0",
        "parameters": [
          {
            "name": "index",
            "type": "System.Int32",
            "summary": "Index of face to get. Must be larger than or equal to zero and smaller than the Face Count of the mesh."
          }
        ],
        "returns": "The mesh face at the given index on success or MeshFace.Unset if the index is out of range."
      },
      {
        "signature": "BoundingBox GetFaceBoundingBox(System.Int32 faceIndex)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the bounding box of a face.",
        "since": "5.0",
        "parameters": [
          {
            "name": "faceIndex",
            "type": "System.Int32",
            "summary": "A face index."
          }
        ],
        "returns": "A new bounding box, or <b>BoundingBox.Empty</b> on error."
      },
      {
        "signature": "Point3d GetFaceCenter(System.Int32 faceIndex)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the center point of a face.  \nFor a triangular face, this is the centroid or barycenter.  \nFor a quad, this is the average of four comer points.",
        "since": "5.0",
        "parameters": [
          {
            "name": "faceIndex",
            "type": "System.Int32",
            "summary": "A face index."
          }
        ],
        "returns": "The center point."
      },
      {
        "signature": "System.Boolean GetFaceVertices(System.Int32 faceIndex, out Point3f a, out Point3f b, out Point3f c, out Point3f d)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the 3D location of the vertices forming a face.",
        "since": "5.0",
        "parameters": [
          {
            "name": "faceIndex",
            "type": "System.Int32",
            "summary": "A face index."
          },
          {
            "name": "a",
            "type": "Point3f",
            "summary": "A first point. This out argument is assigned during the call."
          },
          {
            "name": "b",
            "type": "Point3f",
            "summary": "A second point. This out argument is assigned during the call."
          },
          {
            "name": "c",
            "type": "Point3f",
            "summary": "A third point. This out argument is assigned during the call."
          },
          {
            "name": "d",
            "type": "Point3f",
            "summary": "A fourth point. This out argument is assigned during the call."
          }
        ],
        "returns": "True if the operation succeeded, otherwise false."
      },
      {
        "signature": "System.Int32[] GetTopologicalVertices(System.Int32 faceIndex)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the topology vertex indices of a face.",
        "since": "5.0",
        "parameters": [
          {
            "name": "faceIndex",
            "type": "System.Int32",
            "summary": "A face index."
          }
        ],
        "returns": "An array of integers."
      },
      {
        "signature": "System.Boolean GetZeroAreaFaces(out System.Int32[] whollyDegenerateFaces, out System.Int32[] partiallyDegenerateFaces)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Examines and adds face indexes to whollyDegenerateFaces if the face is a triangle with zero area or a quad both triangles have zero area. Face indexes are added to partiallyDegenerateFaces when a quad has one triangle with zero area.",
        "since": "6.0",
        "parameters": [
          {
            "name": "whollyDegenerateFaces",
            "type": "System.Int32[]",
            "summary": "Array of indexes for faces, both triangles and quads, that have zero area."
          },
          {
            "name": "partiallyDegenerateFaces",
            "type": "System.Int32[]",
            "summary": "Array of indexes for quad faces, that have one triangle with zero area."
          }
        ],
        "returns": "Returns True if the mesh has wholly or partially degenerate faces, False otherwise."
      },
      {
        "signature": "System.Boolean HasNakedEdges(System.Int32 faceIndex)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns True if at least one of the face edges are not topologically connected to any other faces.",
        "since": "5.0",
        "parameters": [
          {
            "name": "faceIndex",
            "type": "System.Int32",
            "summary": "A face index."
          }
        ],
        "returns": "True if that face makes the mesh open, otherwise false."
      },
      {
        "signature": "System.Void Insert(System.Int32 index, MeshFace face)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Inserts a mesh face at a defined index in this list.",
        "since": "5.0",
        "parameters": [
          {
            "name": "index",
            "type": "System.Int32",
            "summary": "An index."
          },
          {
            "name": "face",
            "type": "MeshFace",
            "summary": "A face."
          }
        ]
      },
      {
        "signature": "System.Boolean IsHidden(System.Int32 faceIndex)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets a value indicating whether a face is hidden.  \nA face is hidden if, and only if, at least one of its vertices is hidden.",
        "since": "5.0",
        "parameters": [
          {
            "name": "faceIndex",
            "type": "System.Int32",
            "summary": "A face index."
          }
        ],
        "returns": "True if hidden, False if fully visible."
      },
      {
        "signature": "System.Boolean MergeAdjacentFaces(System.Int32 edgeIndex)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Merges two triangular mesh faces that share an edge into one quadrangular face.",
        "since": "7.6",
        "parameters": [
          {
            "name": "edgeIndex",
            "type": "System.Int32",
            "summary": "The common topological edge index."
          }
        ],
        "returns": "True if successful, False otherwise."
      },
      {
        "signature": "System.Void RemoveAt(System.Int32 index, System.Boolean compact)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Removes a face from the mesh.",
        "since": "6.6",
        "parameters": [
          {
            "name": "index",
            "type": "System.Int32",
            "summary": "The index of the face that will be removed."
          },
          {
            "name": "compact",
            "type": "System.Boolean",
            "summary": "If true, removes vertices that are no longer referenced."
          }
        ]
      },
      {
        "signature": "System.Void RemoveAt(System.Int32 index)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Removes a face from the mesh.",
        "since": "5.0",
        "parameters": [
          {
            "name": "index",
            "type": "System.Int32",
            "summary": "The index of the face that will be removed."
          }
        ]
      },
      {
        "signature": "System.Int32 RemoveZeroAreaFaces(ref System.Int32 fixedFaceCount)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Deletes or fixes mesh faces that have zero area.",
        "since": "6.0",
        "parameters": [
          {
            "name": "fixedFaceCount",
            "type": "System.Int32",
            "summary": "Number of fixed partially degenerate faces."
          }
        ],
        "returns": "Number of removed wholly degenerate faces."
      },
      {
        "signature": "System.Boolean SetFace(System.Int32 index, MeshFace face)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Sets a face at a specific index of the mesh.",
        "since": "5.0",
        "parameters": [
          {
            "name": "index",
            "type": "System.Int32",
            "summary": "A position in the list."
          },
          {
            "name": "face",
            "type": "MeshFace",
            "summary": "A face."
          }
        ],
        "returns": "True if the operation succeeded, otherwise false."
      },
      {
        "signature": "System.Boolean SetFace(System.Int32 index, System.Int32 vertex1, System.Int32 vertex2, System.Int32 vertex3, System.Int32 vertex4)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Sets a quadrangular face at a specific index of the mesh.",
        "since": "5.0",
        "parameters": [
          {
            "name": "index",
            "type": "System.Int32",
            "summary": "A position in the list."
          },
          {
            "name": "vertex1",
            "type": "System.Int32",
            "summary": "The first vertex index."
          },
          {
            "name": "vertex2",
            "type": "System.Int32",
            "summary": "The second vertex index."
          },
          {
            "name": "vertex3",
            "type": "System.Int32",
            "summary": "The third vertex index."
          },
          {
            "name": "vertex4",
            "type": "System.Int32",
            "summary": "The fourth vertex index."
          }
        ],
        "returns": "True if the operation succeeded, otherwise false."
      },
      {
        "signature": "System.Boolean SetFace(System.Int32 index, System.Int32 vertex1, System.Int32 vertex2, System.Int32 vertex3)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Sets a triangular face at a specific index of the mesh.",
        "since": "5.0",
        "parameters": [
          {
            "name": "index",
            "type": "System.Int32",
            "summary": "A position in the list."
          },
          {
            "name": "vertex1",
            "type": "System.Int32",
            "summary": "The first vertex index."
          },
          {
            "name": "vertex2",
            "type": "System.Int32",
            "summary": "The second vertex index."
          },
          {
            "name": "vertex3",
            "type": "System.Int32",
            "summary": "The third vertex index."
          }
        ],
        "returns": "True if the operation succeeded, otherwise false."
      },
      {
        "signature": "System.Int32[] ToIntArray(System.Boolean asTriangles, ref List<int> replacedIndices)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Copies all of the faces to a linear array of indices.  Clean-up of vertex indices if replacedIndices is a valid List<int>",
        "parameters": [
          {
            "name": "asTriangles",
            "type": "System.Boolean",
            "summary": "If set totrueas triangles."
          },
          {
            "name": "replacedIndices",
            "type": "List<int>",
            "summary": "List is populated with vertex indices that were replaced with 0. If replacedIndices is None there will be no cleanup"
          }
        ],
        "returns": "The int array. This method never returns null."
      },
      {
        "signature": "System.Int32[] ToIntArray(System.Boolean asTriangles)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Copies all of the face indices to a linear array of indices per face.  Note that this includes indices from invalid faces too.",
        "since": "5.9",
        "parameters": [
          {
            "name": "asTriangles",
            "type": "System.Boolean",
            "summary": "If set totrueas triangles."
          }
        ],
        "returns": "The int array. This method never returns null."
      }
    ]
  },
  {
    "namespace": "Rhino.Geometry.Collections",
    "name": "MeshFaceNormalList",
    "dataType": "class",
    "summary": "Provides access to the Face normals of a Mesh.",
    "interfaces": ["IResizableList<Vector3f>", "IList", "IReadOnlyList<Vector3f>"],
    "properties": [
      {
        "signature": "int Capacity",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the total number of face normals the internal data structure can hold without resizing.",
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "int Count",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the number of mesh face normals.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "Vector3f this[int index]",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the face normal at the given face index. The index must be valid or an IndexOutOfRangeException will be thrown."
      }
    ],
    "methods": [
      {
        "signature": "System.Int32 AddFaceNormal(System.Double x, System.Double y, System.Double z)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Appends a face normal to the list of mesh face normals.",
        "since": "5.0",
        "parameters": [
          {
            "name": "x",
            "type": "System.Double",
            "summary": "X component of face normal."
          },
          {
            "name": "y",
            "type": "System.Double",
            "summary": "Y component of face normal."
          },
          {
            "name": "z",
            "type": "System.Double",
            "summary": "Z component of face normal."
          }
        ],
        "returns": "The index of the newly added face normal."
      },
      {
        "signature": "System.Int32 AddFaceNormal(System.Single x, System.Single y, System.Single z)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Appends a face normal to the list of mesh face normals.",
        "since": "5.0",
        "parameters": [
          {
            "name": "x",
            "type": "System.Single",
            "summary": "X component of face normal."
          },
          {
            "name": "y",
            "type": "System.Single",
            "summary": "Y component of face normal."
          },
          {
            "name": "z",
            "type": "System.Single",
            "summary": "Z component of face normal."
          }
        ],
        "returns": "The index of the newly added face normal."
      },
      {
        "signature": "System.Int32 AddFaceNormal(Vector3d normal)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Appends a face normal to the list of mesh face normals.",
        "since": "5.0",
        "parameters": [
          {
            "name": "normal",
            "type": "Vector3d",
            "summary": "New face normal."
          }
        ],
        "returns": "The index of the newly added face normal."
      },
      {
        "signature": "System.Int32 AddFaceNormal(Vector3f normal)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Appends a face normal to the list of mesh face normals.",
        "since": "5.0",
        "parameters": [
          {
            "name": "normal",
            "type": "Vector3f",
            "summary": "New face normal."
          }
        ],
        "returns": "The index of the newly added face normal."
      },
      {
        "signature": "System.Void Clear()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Clears the Face Normal list on the mesh.",
        "since": "5.0"
      },
      {
        "signature": "System.Boolean ComputeFaceNormals()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Computes all the face normals for this mesh based on the physical shape of the mesh.",
        "since": "5.0",
        "returns": "True on success, False on failure."
      },
      {
        "signature": "System.Void Destroy()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Releases all memory allocated to store face normals. The list capacity will be 0 after this call.  \nSubsequent calls can add new items.",
        "since": "6.0"
      },
      {
        "signature": "IEnumerator<Vector3f> GetEnumerator()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets an enumerator that yields all normals (vectors) in this collection.",
        "since": "5.0",
        "returns": "The enumerator."
      },
      {
        "signature": "System.Boolean SetFaceNormal(System.Int32 index, System.Double x, System.Double y, System.Double z)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Sets a face normal vector at an index using three double-precision numbers.",
        "since": "5.0",
        "parameters": [
          {
            "name": "index",
            "type": "System.Int32",
            "summary": "An index."
          },
          {
            "name": "x",
            "type": "System.Double",
            "summary": "A x component."
          },
          {
            "name": "y",
            "type": "System.Double",
            "summary": "A y component."
          },
          {
            "name": "z",
            "type": "System.Double",
            "summary": "A z component."
          }
        ],
        "returns": "True on success; False on error."
      },
      {
        "signature": "System.Boolean SetFaceNormal(System.Int32 index, System.Single x, System.Single y, System.Single z)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Sets a face normal vector at an index using three single-precision numbers.",
        "since": "5.0",
        "parameters": [
          {
            "name": "index",
            "type": "System.Int32",
            "summary": "An index."
          },
          {
            "name": "x",
            "type": "System.Single",
            "summary": "A x component."
          },
          {
            "name": "y",
            "type": "System.Single",
            "summary": "A y component."
          },
          {
            "name": "z",
            "type": "System.Single",
            "summary": "A z component."
          }
        ],
        "returns": "True on success; False on error."
      },
      {
        "signature": "System.Boolean SetFaceNormal(System.Int32 index, Vector3d normal)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Sets a face normal vector at an index using a single-precision vector.",
        "since": "5.0",
        "parameters": [
          {
            "name": "index",
            "type": "System.Int32",
            "summary": "An index."
          },
          {
            "name": "normal",
            "type": "Vector3d",
            "summary": "A normal vector."
          }
        ],
        "returns": "True on success; False on error."
      },
      {
        "signature": "System.Boolean SetFaceNormal(System.Int32 index, Vector3f normal)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Sets a face normal vector at an index using a single-precision vector.",
        "since": "5.0",
        "parameters": [
          {
            "name": "index",
            "type": "System.Int32",
            "summary": "An index."
          },
          {
            "name": "normal",
            "type": "Vector3f",
            "summary": "A normal vector."
          }
        ],
        "returns": "True on success; False on error."
      },
      {
        "signature": "System.Boolean UnitizeFaceNormals()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Unitizes all the existing face normals.",
        "since": "5.0",
        "returns": "True on success, False on failure."
      }
    ]
  },
  {
    "namespace": "Rhino.Geometry.Collections",
    "name": "MeshNgonList",
    "dataType": "class",
    "summary": "Provides access to the ngons and ngon-related functionality of a Mesh. See also the <b>Rhino.Geometry.Mesh.Ngons</b> property for Ngon functionality details.",
    "interfaces": ["IResizableList<MeshNgon>", "IList", "IReadOnlyList<MeshNgon>"],
    "properties": [
      {
        "signature": "int Count",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the number of mesh ngons.",
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "uint UnsignedCount",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the number of mesh ngons.",
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "MeshNgon this[int index]",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns the mesh ngon at the given index."
      }
    ],
    "methods": [
      {
        "signature": "System.Int32 AddNgon(MeshNgon ngon)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Appends a new ngon to the end of the mesh ngon list.",
        "since": "6.0",
        "parameters": [
          {
            "name": "ngon",
            "type": "MeshNgon",
            "summary": "Ngon to add."
          }
        ],
        "returns": "The index of the newly added ngon."
      },
      {
        "signature": "System.Int32[] AddNgons(IEnumerable<MeshNgon> ngons)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Appends a list of ngons to the end of the mesh ngon list.",
        "since": "6.0",
        "parameters": [
          {
            "name": "ngons",
            "type": "IEnumerable<MeshNgon>",
            "summary": "Ngons to add."
          }
        ],
        "returns": "Indices of the newly created ngons"
      },
      {
        "signature": "System.Int32 AddPlanarNgons(System.Double planarTolerance, System.Int32 minimumNgonVertexCount, System.Int32 minimumNgonFaceCount, System.Boolean allowHoles)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Add an ngon for each group of connected coplanar faces.",
        "since": "6.0",
        "parameters": [
          {
            "name": "planarTolerance",
            "type": "System.Double",
            "summary": "3d distance tolerance for coplanar test."
          },
          {
            "name": "minimumNgonVertexCount",
            "type": "System.Int32",
            "summary": "Minimum number of vertices for an ngon."
          },
          {
            "name": "minimumNgonFaceCount",
            "type": "System.Int32",
            "summary": "Minimum number of faces for an ngon."
          },
          {
            "name": "allowHoles",
            "type": "System.Boolean",
            "summary": "Determines whether the ngon can have inner boundaries."
          }
        ],
        "returns": "Number of ngons added to the mesh."
      },
      {
        "signature": "System.Int32 AddPlanarNgons(System.Double planarTolerance)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Add an ngon for each group of connected coplanar faces.",
        "since": "6.0",
        "parameters": [
          {
            "name": "planarTolerance",
            "type": "System.Double",
            "summary": "3d distance tolerance for coplanar test."
          }
        ],
        "returns": "Number of ngons added to the mesh."
      },
      {
        "signature": "System.Void Clear()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Clears the Ngon list on the mesh.",
        "since": "6.0"
      },
      {
        "signature": "IEnumerator<MeshNgon> GetEnumerator()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets an enumerator that yields all ngons in this collection.",
        "since": "6.0",
        "returns": "The enumerator."
      },
      {
        "signature": "MeshNgon GetNgon(System.Int32 index)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns the mesh ngon at the given index.",
        "since": "6.0",
        "parameters": [
          {
            "name": "index",
            "type": "System.Int32",
            "summary": "Index of ngon to get. Must be larger than or equal to zero and smaller than the Ngon Count of the mesh."
          }
        ],
        "returns": "The mesh ngon at the given index.  This ngon can be MeshNgon.Empty."
      },
      {
        "signature": "System.Int32[] GetNgonBoundary(IEnumerable<int> ngonFaceIndexList)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Get a list of vertices that form the boundary of a face set. This is often use to get ngon boundaries.",
        "since": "6.0",
        "parameters": [
          {
            "name": "ngonFaceIndexList",
            "type": "IEnumerable<int>",
            "summary": "List of mesh face indices."
          }
        ],
        "returns": "List of mesh vertex indices that form the boundary of the face set."
      },
      {
        "signature": "BoundingBox GetNgonBoundingBox(MeshNgon ngon)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the bounding box of an ngon.",
        "since": "6.0",
        "parameters": [
          {
            "name": "ngon",
            "type": "MeshNgon",
            "summary": "An ngon."
          }
        ],
        "returns": "A new bounding box, or <b>BoundingBox.Empty</b> on error."
      },
      {
        "signature": "BoundingBox GetNgonBoundingBox(System.Int32 index)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the bounding box of an ngon.",
        "since": "6.0",
        "parameters": [
          {
            "name": "index",
            "type": "System.Int32",
            "summary": "A ngon index."
          }
        ],
        "returns": "A new bounding box, or <b>BoundingBox.Empty</b> on error."
      },
      {
        "signature": "Point3d GetNgonCenter(MeshNgon ngon)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the center point of an ngon.  \nThis the average of the corner points.",
        "since": "6.0",
        "parameters": [
          {
            "name": "ngon",
            "type": "MeshNgon",
            "summary": "An ngon."
          }
        ],
        "returns": "The center point."
      },
      {
        "signature": "Point3d GetNgonCenter(System.Int32 index)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the center point of an ngon.  \nThis the average of the corner points.",
        "since": "6.0",
        "parameters": [
          {
            "name": "index",
            "type": "System.Int32",
            "summary": "A ngon index."
          }
        ],
        "returns": "The center point."
      },
      {
        "signature": "System.Int32 GetNgonEdgeCount(System.Int32 index)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the complete edge count of an ngon.",
        "since": "6.0",
        "parameters": [
          {
            "name": "index",
            "type": "System.Int32",
            "summary": "Ngon index."
          }
        ],
        "returns": "Complete edge count or zero on error."
      },
      {
        "signature": "System.Int32 GetNgonOuterEdgeCount(System.Int32 index)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the outer edge count of an ngon.",
        "since": "6.0",
        "parameters": [
          {
            "name": "index",
            "type": "System.Int32",
            "summary": "Ngon index."
          }
        ],
        "returns": "Outer edge count or zero on error."
      },
      {
        "signature": "System.Void Insert(System.Int32 index, MeshNgon ngon)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Inserts a mesh ngon at a defined index in this list.",
        "since": "6.0",
        "parameters": [
          {
            "name": "index",
            "type": "System.Int32",
            "summary": "An ngon index."
          },
          {
            "name": "ngon",
            "type": "MeshNgon",
            "summary": "An ngon."
          }
        ]
      },
      {
        "signature": "System.UInt32 IsValid(System.Int32 index, TextLog textLog)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Tests an ngon to see if the vertex and face references are valid and pass partial boundary validity checks.",
        "since": "6.0",
    "remarks": "If the return value is > MeshNgon.BoundaryVertexCount, then the ngon has either inner boundaries or duplicate vertices.",
        "parameters": [
          {
            "name": "index",
            "type": "System.Int32",
            "summary": "The index of the ngon to test."
          },
          {
            "name": "textLog",
            "type": "TextLog",
            "summary": "A text log for collecting information about problems."
          }
        ],
        "returns": "0 if the ngon is not valid, otherwise the number of boundary edges."
      },
      {
        "signature": "System.UInt32 IsValid(System.Int32 index)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Tests an ngon to see if the vertex and face references are valid and pass partial boundary validity checks.",
        "since": "6.0",
    "remarks": "If the return value is > MeshNgon.BoundaryVertexCount, then the ngon has either inner boundaries or duplicate vertices.",
        "parameters": [
          {
            "name": "index",
            "type": "System.Int32",
            "summary": "The index of the ngon to test."
          }
        ],
        "returns": "0 if the ngon is not valid, otherwise the number of boundary edges."
      },
      {
        "signature": "Point3d[] NgonBoundaryVertexList(MeshNgon ngon, System.Boolean bAppendStartPoint)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Get an ngon's boundary points.",
        "since": "6.0",
        "parameters": [
          {
            "name": "ngon",
            "type": "MeshNgon",
            "summary": "ngon."
          },
          {
            "name": "bAppendStartPoint",
            "type": "System.Boolean",
            "summary": "If true, the first point in the list is also appended to the end of the list to create a closed polyline."
          }
        ],
        "returns": "A list of ngon boundary points."
      },
      {
        "signature": "System.Boolean NgonHasHoles(System.Int32 index)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Determines whether a ngon has holes.",
        "since": "6.0",
    "remarks": "A slit, for example, will give an edge count that differs from outer edge count despite the lack of True \"holes\" i.e. interior edges that are not shared by more than one face of the ngon in question.",
        "parameters": [
          {
            "name": "index",
            "type": "System.Int32",
            "summary": "Ngon index."
          }
        ],
        "returns": "True for holes (or malformed ngon, see remarks), False for no holes."
      },
      {
        "signature": "System.Int32 NgonIndexFromFaceIndex(System.Int32 meshFaceIndex)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns the index of a mesh ngon the face belongs to.",
        "since": "6.0",
        "parameters": [
          {
            "name": "meshFaceIndex",
            "type": "System.Int32",
            "summary": "Index of a mesh face."
          }
        ],
        "returns": "The index of the mesh ngon the face belongs to or -1 if the face does not belong to an ngon."
      },
      {
        "signature": "System.Int32 Orientation(System.Int32 index, System.Boolean permitHoles)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Determine if the ngon's boundary orientation matches that of the set of faces it is made from.",
        "since": "7.0",
        "parameters": [
          {
            "name": "index",
            "type": "System.Int32",
            "summary": "Ngon index."
          },
          {
            "name": "permitHoles",
            "type": "System.Boolean",
            "summary": "True if the ngon is permitted to have interior holes, False otherwise."
          }
        ],
        "returns": "1: The ngon does not have holes, the ngon's faces are compatibly oriented, and the ngon's outer boundary orientation matches the faces' orientation. -1: The ngon does not have holes, the ngon's faces are compatibly oriented, and the ngon's outer boundary orientation is opposite the faces' orientation. 0: Otherwise.The ngon may be invalid, have holes, the ngon's faces may not be compatibly oriented, the ngons edges may not have a consistent orientation with respect to the faces, or some other issue."
      },
      {
        "signature": "System.Int32 RemoveAllNgons()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Removes all ngons from the mesh.",
        "since": "8.23",
        "returns": "The number deleted ngons."
      },
      {
        "signature": "System.Void RemoveAt(System.Int32 index)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Removes an ngon from the mesh.",
        "since": "6.0",
        "parameters": [
          {
            "name": "index",
            "type": "System.Int32",
            "summary": "The index of the ngon."
          }
        ]
      },
      {
        "signature": "System.Int32 RemoveNgons(IEnumerable<int> indices)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Remove one or more ngons from the mesh.",
        "since": "6.0",
        "parameters": [
          {
            "name": "indices",
            "type": "IEnumerable<int>",
            "summary": "An array of ngon indices."
          }
        ],
        "returns": "The number of deleted ngons."
      },
      {
        "signature": "System.Void ReverseOuterBoundary(System.Int32 index)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Reverse the order of the m_vi[] array for an ngon",
        "since": "7.0"
      },
      {
        "signature": "System.Void SetNgon(System.Int32 index, MeshNgon ngon)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Set an ngon in this list.",
        "since": "6.0",
        "parameters": [
          {
            "name": "index",
            "type": "System.Int32",
            "summary": "An ngon index."
          },
          {
            "name": "ngon",
            "type": "MeshNgon",
            "summary": "An ngon."
          }
        ]
      }
    ]
  },
  {
    "namespace": "Rhino.Geometry.Collections",
    "name": "MeshPrincipalCurvatureList",
    "dataType": "class",
    "summary": "Provides access to the principal curvatures of a mesh object.",
    "interfaces": ["IResizableList<SurfaceCurvature>", "IList", "IReadOnlyList<SurfaceCurvature>"],
    "since": "9.0",
    "properties": [
      {
        "signature": "int Capacity",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the total number of principal curvatures the internal data structure can hold without resizing.",
        "since": "9.0",
        "property": ["get", "set"]
      },
      {
        "signature": "int Count",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the number of principal curvatures.",
        "since": "9.0",
        "property": ["get", "set"]
      },
      {
        "signature": "SurfaceCurvature this[int index]",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the principal curvature at the given index.",
        "since": "9.0"
      }
    ],
    "methods": [
      {
        "signature": "System.Int32 Add(SurfaceCurvature surfaceCurvature)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Adds a new principal curvature to the end of the principal curvature list.",
        "since": "9.0",
        "parameters": [
          {
            "name": "surfaceCurvature",
            "type": "SurfaceCurvature",
            "summary": "Principal curvature to append."
          }
        ],
        "returns": "The index of the newly added principal curvature."
      },
      {
        "signature": "System.Void Clear()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Clears the principal curvature list on the mesh.",
        "since": "9.0"
      },
      {
        "signature": "System.Void Destroy()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Releases all memory allocated to store principal curvatures. The list capacity will be 0 after this call.  \nSubsequent calls can add new items.",
        "since": "9.0"
      },
      {
        "signature": "MeshCurvatureStats GetCurvatureStats(CurvatureStyle curvatureStyle)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the mesh's curvature statistics.",
        "since": "9.0",
        "parameters": [
          {
            "name": "curvatureStyle",
            "type": "CurvatureStyle",
            "summary": "The curvature style."
          }
        ],
        "returns": "The mesh's curvature statistics."
      },
      {
        "signature": "IEnumerator<SurfaceCurvature> GetEnumerator()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets an enumerator that yields all principal curvatures in this collection.",
        "since": "9.0",
        "returns": "The enumerator."
      },
      {
        "signature": "System.Boolean SetSurfaceCurvature(System.Int32 index, SurfaceCurvature surfaceCurvature)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Sets or adds a principal curvature to the principal curvature iist.  \nIf [index] is less than [Count], the existing principal curvature at [index] will be modified.  \nIf [index] equals [Count], a new principal curvature is appended to the end of the principal curvature list.  \nIf [index] is larger than [Count], the function will return false.",
        "since": "9.0",
        "parameters": [
          {
            "name": "index",
            "type": "System.Int32",
            "summary": "Index of vertex color to set. If index equals Count, then the color will be appended."
          },
          {
            "name": "surfaceCurvature",
            "type": "SurfaceCurvature",
            "summary": "Principal curvature to set."
          }
        ],
        "returns": "True on success, False on failure."
      }
    ]
  },
  {
    "namespace": "Rhino.Geometry.Collections",
    "name": "MeshTextureCoordinateList",
    "dataType": "class",
    "summary": "Provides access to the Vertex Texture coordinates of a Mesh.",
    "interfaces": ["IResizableList<Point2f>", "IList", "IReadOnlyList<Point2f>"],
    "properties": [
      {
        "signature": "int Capacity",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the total number of texture coordinates the internal data structure can hold without resizing.",
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "int Count",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the number of texture coordinates.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "Point2f this[int index]",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the texture coordinate at the given index. The index must be valid or an IndexOutOfRangeException will be thrown."
      }
    ],
    "methods": [
      {
        "signature": "System.Int32 Add(Point2f tc)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Adds a new texture coordinate to the end of the Texture list.",
        "since": "5.0",
        "parameters": [
          {
            "name": "tc",
            "type": "Point2f",
            "summary": "Texture coordinate to add."
          }
        ],
        "returns": "The index of the newly added texture coordinate."
      },
      {
        "signature": "System.Int32 Add(Point3d tc)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Adds a new texture coordinate to the end of the Texture list.",
        "since": "5.0",
        "parameters": [
          {
            "name": "tc",
            "type": "Point3d",
            "summary": "Texture coordinate to add."
          }
        ],
        "returns": "The index of the newly added texture coordinate."
      },
      {
        "signature": "System.Int32 Add(System.Double s, System.Double t)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Adds a new texture coordinate to the end of the Texture list.",
        "since": "5.0",
        "parameters": [
          {
            "name": "s",
            "type": "System.Double",
            "summary": "S component of new texture coordinate."
          },
          {
            "name": "t",
            "type": "System.Double",
            "summary": "T component of new texture coordinate."
          }
        ],
        "returns": "The index of the newly added texture coordinate."
      },
      {
        "signature": "System.Int32 Add(System.Single s, System.Single t)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Adds a new texture coordinate to the end of the Texture list.",
        "since": "5.0",
        "parameters": [
          {
            "name": "s",
            "type": "System.Single",
            "summary": "S component of new texture coordinate."
          },
          {
            "name": "t",
            "type": "System.Single",
            "summary": "T component of new texture coordinate."
          }
        ],
        "returns": "The index of the newly added texture coordinate."
      },
      {
        "signature": "System.Boolean AddRange(Point2f[] textureCoordinates)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Appends an array of texture coordinates.",
        "since": "5.0",
        "parameters": [
          {
            "name": "textureCoordinates",
            "type": "Point2f[]",
            "summary": "Texture coordinates to append."
          }
        ],
        "returns": "True on success, False on failure."
      },
      {
        "signature": "System.Void Clear()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Clears the Texture Coordinate list on the mesh.",
        "since": "5.0"
      },
      {
        "signature": "System.Void Destroy()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Releases all memory allocated to store texture coordinates. The list capacity will be 0 after this call.  \nSubsequent calls can add new items.",
        "since": "6.0"
      },
      {
        "signature": "IEnumerator<Point2f> GetEnumerator()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets an enumerator that yields all texture coordinates in this collection.",
        "since": "5.0",
        "returns": "The enumerator."
      },
      {
        "signature": "System.Boolean NormalizeTextureCoordinates()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Scales the texture coordinates so the texture domains are [0,1] and eliminate any texture rotations.",
        "since": "5.0",
        "returns": "True on success, False on failure."
      },
      {
        "signature": "System.Boolean ReverseTextureCoordinates(System.Int32 direction)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Reverses one coordinate direction of the texture coordinates.  \nThe region of the bitmap the texture uses does not change.     Either Us or Vs direction is flipped.",
        "since": "5.0",
        "parameters": [
          {
            "name": "direction",
            "type": "System.Int32",
            "summary": "0 = first texture coordinate is reversed.  \n1 = second texture coordinate is reversed."
          }
        ],
        "returns": "True if operation succeeded; otherwise, false."
      },
      {
        "signature": "System.Boolean SetTextureCoordinate(System.Int32 index, Point2f tc)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Sets or adds a texture coordinate to the Texture Coordinate List.  \nIf [index] is less than [Count], the existing coordinate at [index] will be modified.  \nIf [index] equals [Count], a new coordinate is appended to the end of the coordinate list.  \nIf [index] is larger than [Count], the function will return false.",
        "since": "5.0",
        "parameters": [
          {
            "name": "index",
            "type": "System.Int32",
            "summary": "Index of texture coordinate to set."
          },
          {
            "name": "tc",
            "type": "Point2f",
            "summary": "Texture coordinate point."
          }
        ],
        "returns": "True on success, False on failure."
      },
      {
        "signature": "System.Boolean SetTextureCoordinate(System.Int32 index, Point3f tc)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Sets or adds a texture coordinate to the Texture Coordinate List.  \nIf [index] is less than [Count], the existing coordinate at [index] will be modified.  \nIf [index] equals [Count], a new coordinate is appended to the end of the coordinate list.  \nIf [index] is larger than [Count], the function will return false.",
        "since": "5.0",
        "parameters": [
          {
            "name": "index",
            "type": "System.Int32",
            "summary": "Index of texture coordinate to set."
          },
          {
            "name": "tc",
            "type": "Point3f",
            "summary": "Texture coordinate point."
          }
        ],
        "returns": "True on success, False on failure."
      },
      {
        "signature": "System.Boolean SetTextureCoordinate(System.Int32 index, System.Double s, System.Double t)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Sets or adds a texture coordinate to the Texture Coordinate List.  \nIf [index] is less than [Count], the existing coordinate at [index] will be modified.  \nIf [index] equals [Count], a new coordinate is appended to the end of the coordinate list.  \nIf [index] is larger than [Count], the function will return false.",
        "since": "5.0",
        "parameters": [
          {
            "name": "index",
            "type": "System.Int32",
            "summary": "Index of texture coordinate to set."
          },
          {
            "name": "s",
            "type": "System.Double",
            "summary": "S component of texture coordinate."
          },
          {
            "name": "t",
            "type": "System.Double",
            "summary": "T component of texture coordinate."
          }
        ],
        "returns": "True on success, False on failure."
      },
      {
        "signature": "System.Boolean SetTextureCoordinate(System.Int32 index, System.Single s, System.Single t)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Sets or adds a texture coordinate to the Texture Coordinate List.  \nIf [index] is less than [Count], the existing coordinate at [index] will be modified.  \nIf [index] equals [Count], a new coordinate is appended to the end of the coordinate list.  \nIf [index] is larger than [Count], the function will return false.",
        "since": "5.0",
        "parameters": [
          {
            "name": "index",
            "type": "System.Int32",
            "summary": "Index of texture coordinate to set."
          },
          {
            "name": "s",
            "type": "System.Single",
            "summary": "S component of texture coordinate."
          },
          {
            "name": "t",
            "type": "System.Single",
            "summary": "T component of texture coordinate."
          }
        ],
        "returns": "True on success, False on failure."
      },
      {
        "signature": "System.Boolean SetTextureCoordinates(Point2f[] textureCoordinates)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Sets all texture coordinates in one go.",
        "since": "5.0",
        "parameters": [
          {
            "name": "textureCoordinates",
            "type": "Point2f[]",
            "summary": "Texture coordinates to assign to the mesh."
          }
        ],
        "returns": "True on success, False on failure."
      },
      {
        "signature": "System.Boolean SetTextureCoordinates(TextureMapping mapping)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Set all texture coordinates based on a texture mapping function",
        "since": "5.0",
        "parameters": [
          {
            "name": "mapping",
            "type": "TextureMapping",
            "summary": "The new mapping type."
          }
        ],
        "returns": "True on success, False on failure."
      },
      {
        "signature": "System.Single[] ToFloatArray()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Copies all vertices to a linear array of float in u,v order",
        "since": "6.0",
        "returns": "The float array."
      },
      {
        "signature": "System.Boolean TransposeTextureCoordinates()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Transposes texture coordinates.  \nThe region of the bitmap the texture uses does not change.     All texture coordinates rows (Us) become columns (Vs), and vice versa.",
        "since": "5.0",
        "returns": "True on success, False on failure."
      }
    ]
  },
  {
    "namespace": "Rhino.Geometry.Collections",
    "name": "MeshTopologyEdgeList",
    "dataType": "class",
    "summary": "Represents an entry point to the list of edges in a mesh topology.",
    "properties": [
      {
        "signature": "int Count",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the amount of edges in this list.",
        "since": "5.0",
        "property": ["get"]
      }
    ],
    "methods": [
      {
        "signature": "System.Boolean CollapseEdge(System.Int32 topologyEdgeIndex)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Replaces a mesh edge with a vertex at its center and update adjacent faces as needed.",
        "since": "5.0",
        "parameters": [
          {
            "name": "topologyEdgeIndex",
            "type": "System.Int32",
            "summary": "An index of a topology edge in <b>Mesh.TopologyEdges</b> ."
          }
        ],
        "returns": "True if successful."
      },
      {
        "signature": "Line EdgeLine(System.Int32 topologyEdgeIndex)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the 3d line along an edge.",
        "since": "5.0",
        "parameters": [
          {
            "name": "topologyEdgeIndex",
            "type": "System.Int32",
            "summary": "The topology edge index."
          }
        ],
        "returns": "Line along edge. If input is not valid, an Invalid Line is returned."
      },
      {
        "signature": "System.Int32[] GetConnectedFaces(System.Int32 topologyEdgeIndex, out System.Boolean[] faceOrientationMatchesEdgeDirection)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets indices of faces connected to an edge.",
        "since": "5.0",
        "parameters": [
          {
            "name": "topologyEdgeIndex",
            "type": "System.Int32",
            "summary": "An index of a topology edge that is queried."
          },
          {
            "name": "faceOrientationMatchesEdgeDirection",
            "type": "System.Boolean[]",
            "summary": "An array of Boolean values that explains whether each face direction matches the direction of the specified edge."
          }
        ],
        "returns": "An array of face indices the edge borders. This might be empty on error."
      },
      {
        "signature": "System.Int32[] GetConnectedFaces(System.Int32 topologyEdgeIndex)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets indices of faces connected to an edge.",
        "since": "5.0",
        "parameters": [
          {
            "name": "topologyEdgeIndex",
            "type": "System.Int32",
            "summary": "An index of a topology edge that is queried."
          }
        ],
        "returns": "An array of face indices the edge borders. This might be empty on error."
      },
      {
        "signature": "System.Int32 GetEdgeIndex(System.Int32 topologyVertex1, System.Int32 topologyVertex2)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns index of edge that connects topological vertices. returns -1 if no edge is found.",
        "since": "5.0",
        "parameters": [
          {
            "name": "topologyVertex1",
            "type": "System.Int32",
            "summary": "The first topology vertex index."
          },
          {
            "name": "topologyVertex2",
            "type": "System.Int32",
            "summary": "The second topology vertex index."
          }
        ],
        "returns": "The edge index."
      },
      {
        "signature": "System.Int32[] GetEdgesForFace(System.Int32 faceIndex, out System.Boolean[] sameOrientation)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets indices of edges that surround a given face.",
        "since": "5.0",
        "parameters": [
          {
            "name": "faceIndex",
            "type": "System.Int32",
            "summary": "A face index."
          },
          {
            "name": "sameOrientation",
            "type": "System.Boolean[]",
            "summary": "Same length as returned edge index array. For each edge, the sameOrientation value tells you if the edge orientation matches the face orientation (true), or is reversed (false) compared to it."
          }
        ],
        "returns": "A new array of indices to the topological edges that are connected with the specified face."
      },
      {
        "signature": "System.Int32[] GetEdgesForFace(System.Int32 faceIndex)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets indices of edges that surround a given face.",
        "since": "5.0",
        "parameters": [
          {
            "name": "faceIndex",
            "type": "System.Int32",
            "summary": "A face index."
          }
        ],
        "returns": "A new array of indices to the topological edges that are connected with the specified face."
      },
      {
        "signature": "IndexPair GetTopologyVertices(System.Int32 topologyEdgeIndex)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the two topology vertices for a given topology edge.",
        "since": "5.0",
        "parameters": [
          {
            "name": "topologyEdgeIndex",
            "type": "System.Int32",
            "summary": "An index of a topology edge."
          }
        ],
        "returns": "The pair of vertex indices the edge connects."
      },
      {
        "signature": "System.Boolean IsEdgeUnwelded(System.Int32 topologyEdgeIndex)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Determines if the mesh edge is unwelded, or if the mesh faces that share the edge have unique vertex indices.",
        "since": "6.13",
        "parameters": [
          {
            "name": "topologyEdgeIndex",
            "type": "System.Int32",
            "summary": "An index of a topology edge in <b>Mesh.TopologyEdges</b> ."
          }
        ],
        "returns": "True if the edge is unwelded, False if the edge is welded."
      },
      {
        "signature": "System.Boolean IsHidden(System.Int32 topologyEdgeIndex)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns True if the topological edge is hidden. The mesh topology edge is hidden only if either of its mesh topology vertices is hidden.",
        "since": "5.0",
        "parameters": [
          {
            "name": "topologyEdgeIndex",
            "type": "System.Int32",
            "summary": "An index of a topology edge in <b>Mesh.TopologyEdges</b> ."
          }
        ],
        "returns": "True if mesh topology edge is hidden."
      },
      {
        "signature": "System.Boolean IsNgonInterior(System.Int32 topologyEdgeIndex)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns True if the topological edge is an interior ngon edge",
        "since": "6.0",
        "parameters": [
          {
            "name": "topologyEdgeIndex",
            "type": "System.Int32",
            "summary": "An index of a topology edge in <b>Mesh.TopologyEdges</b> ."
          }
        ],
        "returns": "True if mesh topology edge is an interior ngon edge."
      },
      {
        "signature": "System.Boolean IsSwappableEdge(System.Int32 topologyEdgeIndex)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Determines if a mesh edge index is valid input for <b>SwapEdge</b> .",
        "since": "5.0",
        "parameters": [
          {
            "name": "topologyEdgeIndex",
            "type": "System.Int32",
            "summary": "An index of a topology edge in <b>Mesh.TopologyEdges</b> ."
          }
        ],
        "returns": "True if edge can be swapped."
      },
      {
        "signature": "System.Boolean SplitEdge(System.Int32 topologyEdgeIndex, Point3d point)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Divides a mesh edge to create two or more triangles",
        "since": "5.0",
        "parameters": [
          {
            "name": "topologyEdgeIndex",
            "type": "System.Int32",
            "summary": "Edge to divide"
          },
          {
            "name": "point",
            "type": "Point3d",
            "summary": "Location to perform the split"
          }
        ],
        "returns": "True if successful"
      },
      {
        "signature": "System.Boolean SplitEdge(System.Int32 topologyEdgeIndex, System.Double t)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Divides a mesh edge to create two or more triangles",
        "since": "5.0",
        "parameters": [
          {
            "name": "topologyEdgeIndex",
            "type": "System.Int32",
            "summary": "Edge to divide"
          },
          {
            "name": "t",
            "type": "System.Double",
            "summary": "Parameter along edge. This is the same as getting an EdgeLine and calling PointAt(t) on that line"
          }
        ],
        "returns": "True if successful"
      },
      {
        "signature": "System.Boolean SwapEdge(System.Int32 topologyEdgeIndex)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "If the edge is shared by two triangular face, then the edge is swapped.",
        "since": "5.0",
        "parameters": [
          {
            "name": "topologyEdgeIndex",
            "type": "System.Int32",
            "summary": "An index of a topology edge in <b>Mesh.TopologyEdges</b> ."
          }
        ],
        "returns": "True if successful."
      }
    ]
  },
  {
    "namespace": "Rhino.Geometry.Collections",
    "name": "MeshTopologyVertexList",
    "dataType": "class",
    "summary": "Provides access to the mesh topology vertices of a mesh. Topology vertices are sets of vertices in the MeshVertexList that can topologically be considered the same vertex.",
    "interfaces": ["IEnumerable<Point3f>", "IList<Point3f>", "IList", "IReadOnlyList<Point3f>"],
    "properties": [
      {
        "signature": "int Count",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the number of mesh topology vertices.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "Point3f this[int index]",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the vertex at the given index. Setting a location adjusts all vertices in the mesh's vertex list that are defined by this topological vertex The index must be valid or an IndexOutOfRangeException will be thrown."
      }
    ],
    "methods": [
      {
        "signature": "System.Int32 ConnectedEdge(System.Int32 topologyVertexIndex, System.Int32 edgeAtVertexIndex)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets a particular edge that is connected to a topological vertex.  \nCall TopologyVertices.SortVertices before this if you are interested in ordered edges.",
        "since": "6.0",
        "parameters": [
          {
            "name": "topologyVertexIndex",
            "type": "System.Int32",
            "summary": "Index of a topology vertex in Mesh.TopologyVertices."
          },
          {
            "name": "edgeAtVertexIndex",
            "type": "System.Int32",
            "summary": "Index of the edge at the vertex."
          }
        ],
        "returns": "The index of the connected edge."
      },
      {
        "signature": "System.Int32[] ConnectedEdges(System.Int32 topologyVertexIndex)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets all edges that are connected to a given vertex.  \nCall TopologyVertices.SortVertices before this if you are interested in ordered edges.",
        "since": "6.0",
        "parameters": [
          {
            "name": "topologyVertexIndex",
            "type": "System.Int32",
            "summary": "Index of a topology vertex in Mesh.TopologyVertices."
          }
        ],
        "returns": "Indices of all edges around vertex that are connected to this topological vertex. None if no faces are connected to this vertex."
      },
      {
        "signature": "System.Int32 ConnectedEdgesCount(System.Int32 topologyVertexIndex)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the count of edges that are connected to a given vertex.",
        "since": "6.0",
        "parameters": [
          {
            "name": "topologyVertexIndex",
            "type": "System.Int32",
            "summary": "Index of a topology vertex in Mesh.TopologyVertices."
          }
        ],
        "returns": "The amount of edges at this vertex. This can be 0."
      },
      {
        "signature": "System.Int32[] ConnectedFaces(System.Int32 topologyVertexIndex)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets all faces that are connected to a given vertex.",
        "since": "5.0",
        "parameters": [
          {
            "name": "topologyVertexIndex",
            "type": "System.Int32",
            "summary": "Index of a topology vertex in Mesh.TopologyVertices."
          }
        ],
        "returns": "Indices of all faces in Mesh.Faces that are connected to this topological vertex. None if no faces are connected to this vertex."
      },
      {
        "signature": "System.Int32[] ConnectedTopologyVertices(System.Int32 topologyVertexIndex, System.Boolean sorted)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets all topological vertices that are connected to a given vertex.",
        "since": "5.0",
        "parameters": [
          {
            "name": "topologyVertexIndex",
            "type": "System.Int32",
            "summary": "index of a topology vertex in Mesh.TopologyVertices."
          },
          {
            "name": "sorted",
            "type": "System.Boolean",
            "summary": "if true, the vertices are returned in a radially sorted order."
          }
        ],
        "returns": "Indices of all topological vertices that are connected to this topological vertex. None if no vertices are connected to this vertex."
      },
      {
        "signature": "System.Int32[] ConnectedTopologyVertices(System.Int32 topologyVertexIndex)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets all topological vertices that are connected to a given vertex.",
        "since": "5.0",
        "parameters": [
          {
            "name": "topologyVertexIndex",
            "type": "System.Int32",
            "summary": "index of a topology vertex in Mesh.TopologyVertices."
          }
        ],
        "returns": "Indices of all topological vertices that are connected to this topological vertex. None if no vertices are connected to this vertex."
      },
      {
        "signature": "IEnumerator<Point3f> GetEnumerator()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets an enumerator that yields all topology vertices in this collection.",
        "since": "5.0",
        "returns": "The enumerator."
      },
      {
        "signature": "System.Int32[] IndicesFromFace(System.Int32 faceIndex)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns TopologyVertexIndices for a given mesh face index.",
        "since": "5.0",
        "parameters": [
          {
            "name": "faceIndex",
            "type": "System.Int32",
            "summary": "The index of a face to query."
          }
        ],
        "returns": "An array of vertex indices."
      },
      {
        "signature": "System.Boolean IsHidden(System.Int32 topologyVertexIndex)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns True if the topological vertex is hidden. The mesh topology vertex is hidden if and only if all the ON_Mesh vertices it represents is hidden.",
        "since": "5.0",
        "parameters": [
          {
            "name": "topologyVertexIndex",
            "type": "System.Int32",
            "summary": "index of a topology vertex in Mesh.TopologyVertices."
          }
        ],
        "returns": "True if mesh topology vertex is hidden."
      },
      {
        "signature": "System.Int32[] MeshVertexIndices(System.Int32 topologyVertexIndex)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets all indices of the mesh vertices that a given topology vertex represents.",
        "since": "5.0",
        "parameters": [
          {
            "name": "topologyVertexIndex",
            "type": "System.Int32",
            "summary": "Index of a topology vertex in Mesh.TopologyVertices to query."
          }
        ],
        "returns": "Indices of all vertices that in Mesh.Vertices that a topology vertex represents."
      },
      {
        "signature": "System.Boolean SortEdges()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Sorts the edge list for the mesh topology vertex list so that the edges are in radial order when you call ConnectedTopologyVertices. A non-manifold edge is treated as a boundary edge with respect to sorting.  If any boundary or non-manifold edges end at the vertex, then the first edge will be a boundary or non-manifold edge.",
        "since": "5.0",
        "returns": "True on success."
      },
      {
        "signature": "System.Boolean SortEdges(System.Int32 topologyVertexIndex)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Sorts the edge list for as single mesh topology vertex so that the edges are in radial order when you call ConnectedTopologyVertices. A non-manifold edge is treated as a boundary edge with respect to sorting.  If any boundary or non-manifold edges end at the vertex, then the first edge will be a boundary or non-manifold edge.",
        "since": "5.0",
        "parameters": [
          {
            "name": "topologyVertexIndex",
            "type": "System.Int32",
            "summary": "index of a topology vertex in Mesh.TopologyVertices>"
          }
        ],
        "returns": "True on success."
      },
      {
        "signature": "System.Int32 TopologyVertexIndex(System.Int32 vertexIndex)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the topology vertex index for an existing mesh vertex in the mesh's VertexList.",
        "since": "5.0",
        "parameters": [
          {
            "name": "vertexIndex",
            "type": "System.Int32",
            "summary": "Index of a vertex in the Mesh.Vertices."
          }
        ],
        "returns": "Index of a topology vertex in the Mesh.TopologyVertices."
      }
    ]
  },
  {
    "namespace": "Rhino.Geometry.Collections",
    "name": "MeshVertexColorList",
    "dataType": "class",
    "summary": "Provides access to the vertex colors of a mesh object.",
    "interfaces": ["IResizableList<Color>", "IList", "IReadOnlyList<Color>"],
    "properties": [
      {
        "signature": "int Capacity",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the total number of vertex colors the internal data structure can hold without resizing.",
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "int Count",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the number of mesh colors.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "MappingTag Tag",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets a mapping information for the mesh associated with these vertex colors.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "Color this[int index]",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the vertex color at the given index. The index must be valid or an IndexOutOfRangeException will be thrown."
      }
    ],
    "methods": [
      {
        "signature": "System.Int32 Add(Color color)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Adds a new vertex color to the end of the color list.",
        "since": "5.0",
        "parameters": [
          {
            "name": "color",
            "type": "Color",
            "summary": "Color to append."
          }
        ],
        "returns": "The index of the newly added color."
      },
      {
        "signature": "System.Int32 Add(System.Int32 red, System.Int32 green, System.Int32 blue)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Adds a new vertex color to the end of the color list.",
        "since": "5.0",
        "parameters": [
          {
            "name": "red",
            "type": "System.Int32",
            "summary": "Red component of color, must be in the 0~255 range."
          },
          {
            "name": "green",
            "type": "System.Int32",
            "summary": "Green component of color, must be in the 0~255 range."
          },
          {
            "name": "blue",
            "type": "System.Int32",
            "summary": "Blue component of color, must be in the 0~255 range."
          }
        ],
        "returns": "The index of the newly added color."
      },
      {
        "signature": "System.Boolean AddRange(IEnumerable<Color> colors)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Adds an enumerable of colors to the to the vertex color list. For the Mesh to be valid, the number of colors must match the number of vertices.",
        "since": "8.12",
        "parameters": [
          {
            "name": "colors",
            "type": "IEnumerable<Color>",
            "summary": "Colors to append."
          }
        ],
        "returns": "True on success, False on failure."
      },
      {
        "signature": "System.Boolean AppendColors(Color[] colors)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Appends a collection of colors to the vertex color list. For the Mesh to be valid, the number of colors must match the number of vertices.",
        "since": "5.0",
        "parameters": [
          {
            "name": "colors",
            "type": "Color[]",
            "summary": "Colors to append."
          }
        ],
        "returns": "True on success, False on failure."
      },
      {
        "signature": "System.Void Clear()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Clears the vertex color list on the mesh.",
        "since": "5.0"
      },
      {
        "signature": "System.Boolean CreateMonotoneMesh(Color baseColor)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Constructs a valid vertex color list consisting of a single color.",
        "since": "5.0",
        "parameters": [
          {
            "name": "baseColor",
            "type": "Color",
            "summary": "Color to apply to every vertex."
          }
        ],
        "returns": "True on success, False on failure."
      },
      {
        "signature": "System.Void Destroy()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Releases all memory allocated to store vertex colors. The list capacity will be 0 after this call.  \nSubsequent calls can add new items.",
        "since": "6.0"
      },
      {
        "signature": "IEnumerator<Color> GetEnumerator()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets an enumerator that yields all colors in this collection.",
        "since": "5.0",
        "returns": "The enumerator."
      },
      {
        "signature": "System.Boolean SetColor(MeshFace face, Color color)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Sets a color at the three or four vertex indices of a specified face.",
        "since": "5.0",
        "parameters": [
          {
            "name": "face",
            "type": "MeshFace",
            "summary": "A face to use to retrieve indices."
          },
          {
            "name": "color",
            "type": "Color",
            "summary": "A color."
          }
        ],
        "returns": "True on success; False on error."
      },
      {
        "signature": "System.Boolean SetColor(System.Int32 index, Color color)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Sets or adds a vertex to the Vertex List.  \nIf [index] is less than [Count], the existing vertex at [index] will be modified.  \nIf [index] equals [Count], a new vertex is appended to the end of the vertex list.  \nIf [index] is larger than [Count], the function will return false.",
        "since": "5.0",
        "parameters": [
          {
            "name": "index",
            "type": "System.Int32",
            "summary": "Index of vertex color to set. If index equals Count, then the color will be appended."
          },
          {
            "name": "color",
            "type": "Color",
            "summary": "Color to set, Alpha channels will be ignored."
          }
        ],
        "returns": "True on success, False on failure."
      },
      {
        "signature": "System.Boolean SetColor(System.Int32 index, System.Int32 red, System.Int32 green, System.Int32 blue)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Sets or adds a vertex color to the color List.  \nIf [index] is less than [Count], the existing vertex at [index] will be modified.  \nIf [index] equals [Count], a new vertex is appended to the end of the vertex list.  \nIf [index] is larger than [Count], the function will return false.",
        "since": "5.0",
        "parameters": [
          {
            "name": "index",
            "type": "System.Int32",
            "summary": "Index of vertex color to set. If index equals Count, then the color will be appended."
          },
          {
            "name": "red",
            "type": "System.Int32",
            "summary": "Red component of vertex color. Value must be in the 0~255 range."
          },
          {
            "name": "green",
            "type": "System.Int32",
            "summary": "Green component of vertex color. Value must be in the 0~255 range."
          },
          {
            "name": "blue",
            "type": "System.Int32",
            "summary": "Blue component of vertex color. Value must be in the 0~255 range."
          }
        ],
        "returns": "True on success, False on failure."
      },
      {
        "signature": "System.Boolean SetColors(Color[] colors)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Sets all the vertex colors in one go. For the Mesh to be valid, the number of colors must match the number of vertices.",
        "since": "5.0",
        "parameters": [
          {
            "name": "colors",
            "type": "Color[]",
            "summary": "Colors to set."
          }
        ],
        "returns": "True on success, False on failure."
      },
      {
        "signature": "System.Int32[] ToARGBArray()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Return colors as an array of integers with packed ARGB values",
        "since": "7.0"
      }
    ]
  },
  {
    "namespace": "Rhino.Geometry.Collections",
    "name": "MeshVertexList",
    "dataType": "class",
    "summary": "Provides access to the vertices and vertex-related functionality of a mesh.",
    "interfaces": ["IResizableList<Point3f>", "IReadOnlyList<Point3f>", "IList"],
    "properties": [
      {
        "signature": "int Capacity",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the total number of vertices the internal data structure can hold without resizing.",
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "int Count",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the number of mesh vertices.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool UseDoublePrecisionVertices",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Set to True if the vertices should be stored in double precision",
        "since": "6.4",
        "property": ["get", "set"]
      },
      {
        "signature": "Point3f this[int index]",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the vertex at the given index. The index must be valid or an IndexOutOfRangeException will be thrown."
      }
    ],
    "methods": [
      {
        "signature": "System.Int32 Align(IEnumerable<Mesh> meshes, System.Double distance, IEnumerable<IEnumerable<bool>> whichVertices)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Moves mesh vertices that belong to naked edges to neighboring vertices, within the specified distance.  \nThis forces unaligned mesh vertices to the same location and is helpful to clean meshes for 3D printing.  \nSee the _AlignMeshVertices Rhino command for more information.",
        "parameters": [
          {
            "name": "meshes",
            "type": "IEnumerable<Mesh>",
            "summary": "The enumerable of meshes that need to have vertices adjusted."
          },
          {
            "name": "distance",
            "type": "System.Double",
            "summary": "Distance that should not be exceed when modifying the mesh."
          },
          {
            "name": "whichVertices",
            "type": "IEnumerable<IEnumerable<bool>>",
            "summary": "If not null, defines which vertices should be considered for adjustment.  \nIf this parameter is non-null, then all items within it have to be non-None as well, defining for each mesh, which vertices to adjust."
          }
        ],
        "returns": "If the operation succeeded, the number of moved vertices, or -1 on error."
      },
      {
        "signature": "System.Int32 Add(Point3d vertex)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Adds a new vertex to the end of the Vertex list.",
        "since": "5.0",
        "parameters": [
          {
            "name": "vertex",
            "type": "Point3d",
            "summary": "Location of new vertex."
          }
        ],
        "returns": "The index of the newly added vertex."
      },
      {
        "signature": "System.Int32 Add(Point3f vertex)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Adds a new vertex to the end of the Vertex list.",
        "since": "5.0",
        "parameters": [
          {
            "name": "vertex",
            "type": "Point3f",
            "summary": "Location of new vertex."
          }
        ],
        "returns": "The index of the newly added vertex."
      },
      {
        "signature": "System.Int32 Add(System.Double x, System.Double y, System.Double z)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Adds a new vertex to the end of the Vertex list.",
        "since": "5.0",
        "parameters": [
          {
            "name": "x",
            "type": "System.Double",
            "summary": "X component of new vertex coordinate."
          },
          {
            "name": "y",
            "type": "System.Double",
            "summary": "Y component of new vertex coordinate."
          },
          {
            "name": "z",
            "type": "System.Double",
            "summary": "Z component of new vertex coordinate."
          }
        ],
        "returns": "The index of the newly added vertex."
      },
      {
        "signature": "System.Int32 Add(System.Single x, System.Single y, System.Single z)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Adds a new vertex to the end of the Vertex list.",
        "since": "5.0",
        "parameters": [
          {
            "name": "x",
            "type": "System.Single",
            "summary": "X component of new vertex coordinate."
          },
          {
            "name": "y",
            "type": "System.Single",
            "summary": "Y component of new vertex coordinate."
          },
          {
            "name": "z",
            "type": "System.Single",
            "summary": "Z component of new vertex coordinate."
          }
        ],
        "returns": "The index of the newly added vertex."
      },
      {
        "signature": "System.Void AddVertices(IEnumerable<Point3d> vertices)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Adds a series of new vertices to the end of the vertex list.  \nThis overload accepts double-precision points.",
        "since": "5.0",
        "parameters": [
          {
            "name": "vertices",
            "type": "IEnumerable<Point3d>",
            "summary": "A list, an array or any enumerable set of <b>Point3d</b> ."
          }
        ]
      },
      {
        "signature": "System.Void AddVertices(IEnumerable<Point3f> vertices)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Adds a series of new vertices to the end of the vertex list.  \nThis overload accepts single-precision points.",
        "since": "5.0",
        "parameters": [
          {
            "name": "vertices",
            "type": "IEnumerable<Point3f>",
            "summary": "A list, an array or any enumerable set of <b>Point3f</b> ."
          }
        ]
      },
      {
        "signature": "System.Int32 Align(System.Double distance, IEnumerable<bool> whichVertices)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Moves mesh vertices that belong to naked edges to neighboring vertices, within the specified distance.  \nThis forces unaligned mesh vertices to the same location and is helpful to clean meshes for 3D printing.  \nSee the _AlignMeshVertices Rhino command for more information.",
        "since": "6.0",
        "parameters": [
          {
            "name": "distance",
            "type": "System.Double",
            "summary": "Distance that should not be exceed when modifying the mesh."
          },
          {
            "name": "whichVertices",
            "type": "IEnumerable<bool>",
            "summary": "If not null, defines which vertices should be considered for adjustment."
          }
        ],
        "returns": "If the operation succeeded, the number of moved vertices, or -1 on error."
      },
      {
        "signature": "System.Void Clear()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Clears the Vertex list on the mesh.",
        "since": "5.0"
      },
      {
        "signature": "System.Boolean CombineIdentical(System.Boolean ignoreNormals, System.Boolean ignoreAdditional)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Merges identical vertices.",
        "since": "5.0",
        "parameters": [
          {
            "name": "ignoreNormals",
            "type": "System.Boolean",
            "summary": "If true, vertex normals will not be taken into consideration when comparing vertices."
          },
          {
            "name": "ignoreAdditional",
            "type": "System.Boolean",
            "summary": "If true, texture coordinates, colors, and principal curvatures will not be taken into consideration when comparing vertices."
          }
        ],
        "returns": "True if the mesh is changed, in which case the mesh will have fewer vertices than before."
      },
      {
        "signature": "System.Int32 CullUnused()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Removes all vertices that are currently not used by the Face list.",
        "since": "5.0",
        "returns": "The number of unused vertices that were removed."
      },
      {
        "signature": "System.Void Destroy()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Releases all memory allocated to store faces. The list capacity will be 0 after this call.  \nSubsequent calls can add new items.",
        "since": "6.0"
      },
      {
        "signature": "System.Int32[] GetConnectedVertices(System.Int32 vertexIndex)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets indices of all vertices that form \"edges\" with a given vertex index.",
        "since": "5.0",
        "parameters": [
          {
            "name": "vertexIndex",
            "type": "System.Int32",
            "summary": "The index of a vertex to query."
          }
        ],
        "returns": "An array of vertex indices that are connected with the specified vertex."
      },
      {
        "signature": "IEnumerator<Point3f> GetEnumerator()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets an enumerator that yields all mesh vertices (points) in this collection.",
        "since": "5.0",
        "returns": "The enumerator."
      },
      {
        "signature": "System.Int32[] GetTopologicalIndenticalVertices(System.Int32 vertexIndex)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets a list of other vertices which are \"topologically\" identical to this vertex.",
        "since": "5.0",
        "parameters": [
          {
            "name": "vertexIndex",
            "type": "System.Int32",
            "summary": "A vertex index in the mesh."
          }
        ],
        "returns": "Array of indices of vertices that are topologically the same as this vertex. The array includes vertexIndex. Returns None on failure."
      },
      {
        "signature": "System.Int32[] GetVertexFaces(System.Int32 vertexIndex)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets a list of all of the faces that share a given vertex.",
        "since": "5.0",
        "parameters": [
          {
            "name": "vertexIndex",
            "type": "System.Int32",
            "summary": "The index of a vertex in the mesh."
          }
        ],
        "returns": "An array of indices of faces on success, None on failure."
      },
      {
        "signature": "System.Void Hide(System.Int32 vertexIndex)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Hides the vertex at the given index.",
        "since": "5.0",
        "parameters": [
          {
            "name": "vertexIndex",
            "type": "System.Int32",
            "summary": "Index of vertex to hide."
          }
        ]
      },
      {
        "signature": "System.Void HideAll()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Hides all vertices in the mesh.",
        "since": "5.0"
      },
      {
        "signature": "System.Boolean IsHidden(System.Int32 vertexIndex)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets a value indicating whether or not a vertex is hidden.",
        "since": "5.0",
        "parameters": [
          {
            "name": "vertexIndex",
            "type": "System.Int32",
            "summary": "Index of vertex to query."
          }
        ],
        "returns": "True if the vertex is hidden, False if it is not."
      },
      {
        "signature": "Point3d Point3dAt(System.Int32 index)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Get double precision location at a given index",
        "since": "6.4"
      },
      {
        "signature": "System.Boolean Remove(IEnumerable<int> indices, System.Boolean shrinkFaces)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Removes the vertices at the given indices and all faces that reference those vertices.",
        "since": "5.0",
        "parameters": [
          {
            "name": "indices",
            "type": "IEnumerable<int>",
            "summary": "Vertex indices to remove."
          },
          {
            "name": "shrinkFaces",
            "type": "System.Boolean",
            "summary": "If true, quads that reference the deleted vertex will be converted to triangles."
          }
        ],
        "returns": "True on success, False on failure."
      },
      {
        "signature": "System.Boolean Remove(System.Int32 index, System.Boolean shrinkFaces)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Removes the vertex at the given index and all faces that reference that index.",
        "since": "5.0",
        "parameters": [
          {
            "name": "index",
            "type": "System.Int32",
            "summary": "Index of vertex to remove."
          },
          {
            "name": "shrinkFaces",
            "type": "System.Boolean",
            "summary": "If true, quads that reference the deleted vertex will be converted to triangles."
          }
        ],
        "returns": "True on success, False on failure."
      },
      {
        "signature": "System.Boolean SetVertex(System.Int32 index, Point3d vertex)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Sets or adds a vertex to the Vertex List.  \nIf [index] is less than [Count], the existing vertex at [index] will be modified.  \nIf [index] equals [Count], a new vertex is appended to the end of the vertex list.  \nIf [index] is larger than [Count], the function will return false.",
        "since": "5.0",
        "parameters": [
          {
            "name": "index",
            "type": "System.Int32",
            "summary": "Index of vertex to set."
          },
          {
            "name": "vertex",
            "type": "Point3d",
            "summary": "Vertex location."
          }
        ],
        "returns": "True on success, False on failure."
      },
      {
        "signature": "System.Boolean SetVertex(System.Int32 index, Point3f vertex)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Sets or adds a vertex to the Vertex List.  \nIf [index] is less than [Count], the existing vertex at [index] will be modified.  \nIf [index] equals [Count], a new vertex is appended to the end of the vertex list.  \nIf [index] is larger than [Count], the function will return false.",
        "since": "5.0",
        "parameters": [
          {
            "name": "index",
            "type": "System.Int32",
            "summary": "Index of vertex to set."
          },
          {
            "name": "vertex",
            "type": "Point3f",
            "summary": "Vertex location."
          }
        ],
        "returns": "True on success, False on failure."
      },
      {
        "signature": "System.Boolean SetVertex(System.Int32 index, System.Double x, System.Double y, System.Double z, System.Boolean updateNormals)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Sets or adds a vertex to the Vertex List.  \nIf [index] is less than [Count], the existing vertex at [index] will be modified.  \nIf [index] equals [Count], a new vertex is appended to the end of the vertex list.  \nIf [index] is larger than [Count], the function will return false.",
        "since": "6.6",
        "parameters": [
          {
            "name": "index",
            "type": "System.Int32",
            "summary": "Index of vertex to set."
          },
          {
            "name": "x",
            "type": "System.Double",
            "summary": "X component of vertex location."
          },
          {
            "name": "y",
            "type": "System.Double",
            "summary": "Y component of vertex location."
          },
          {
            "name": "z",
            "type": "System.Double",
            "summary": "Z component of vertex location."
          },
          {
            "name": "updateNormals",
            "type": "System.Boolean",
            "summary": "Set to True if you'd like the vertex and face normals impacted by the change updated."
          }
        ],
        "returns": "True on success, False on failure."
      },
      {
        "signature": "System.Boolean SetVertex(System.Int32 index, System.Double x, System.Double y, System.Double z)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Sets or adds a vertex to the Vertex List.  \nIf [index] is less than [Count], the existing vertex at [index] will be modified.  \nIf [index] equals [Count], a new vertex is appended to the end of the vertex list.  \nIf [index] is larger than [Count], the function will return false.",
        "since": "5.0",
        "parameters": [
          {
            "name": "index",
            "type": "System.Int32",
            "summary": "Index of vertex to set."
          },
          {
            "name": "x",
            "type": "System.Double",
            "summary": "X component of vertex location."
          },
          {
            "name": "y",
            "type": "System.Double",
            "summary": "Y component of vertex location."
          },
          {
            "name": "z",
            "type": "System.Double",
            "summary": "Z component of vertex location."
          }
        ],
        "returns": "True on success, False on failure."
      },
      {
        "signature": "System.Boolean SetVertex(System.Int32 index, System.Single x, System.Single y, System.Single z)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Sets or adds a vertex to the Vertex List.  \nIf [index] is less than [Count], the existing vertex at [index] will be modified.  \nIf [index] equals [Count], a new vertex is appended to the end of the vertex list.  \nIf [index] is larger than [Count], the function will return false.",
        "since": "5.0",
        "parameters": [
          {
            "name": "index",
            "type": "System.Int32",
            "summary": "Index of vertex to set."
          },
          {
            "name": "x",
            "type": "System.Single",
            "summary": "X component of vertex location."
          },
          {
            "name": "y",
            "type": "System.Single",
            "summary": "Y component of vertex location."
          },
          {
            "name": "z",
            "type": "System.Single",
            "summary": "Z component of vertex location."
          }
        ],
        "returns": "True on success, False on failure."
      },
      {
        "signature": "System.Void Show(System.Int32 vertexIndex)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Shows the vertex at the given index.",
        "since": "5.0",
        "parameters": [
          {
            "name": "vertexIndex",
            "type": "System.Int32",
            "summary": "Index of vertex to show."
          }
        ]
      },
      {
        "signature": "System.Void ShowAll()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Shows all vertices in the mesh.",
        "since": "5.0"
      },
      {
        "signature": "System.Single[] ToFloatArray()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Copies all vertices to a linear array of float in x,y,z order",
        "since": "5.9",
        "returns": "The float array."
      },
      {
        "signature": "Point3d[] ToPoint3dArray()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Copies all vertices to a new array of <b>Point3d</b> .",
        "since": "5.0",
        "returns": "A new array."
      },
      {
        "signature": "Point3f[] ToPoint3fArray()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Copies all vertices to a new array of <b>Point3f</b> .",
        "since": "5.0",
        "returns": "A new array."
      }
    ]
  },
  {
    "namespace": "Rhino.Geometry.Collections",
    "name": "MeshVertexNormalList",
    "dataType": "class",
    "summary": "Provides access to the Vertex Normals of a Mesh.",
    "interfaces": ["IResizableList<Vector3f>", "IList", "IReadOnlyList<Vector3f>"],
    "properties": [
      {
        "signature": "int Capacity",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the amount of vertex normals that the list can hold without resizing.",
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "int Count",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the number of mesh vertex normals.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "Vector3f this[int index]",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the vertex at the given index. The index must be valid or an IndexOutOfRangeException will be thrown."
      }
    ],
    "methods": [
      {
        "signature": "System.Int32 Add(System.Double x, System.Double y, System.Double z)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Adds a new vertex normal at the end of the list.",
        "since": "5.0",
        "parameters": [
          {
            "name": "x",
            "type": "System.Double",
            "summary": "X component of new vertex normal."
          },
          {
            "name": "y",
            "type": "System.Double",
            "summary": "Y component of new vertex normal."
          },
          {
            "name": "z",
            "type": "System.Double",
            "summary": "Z component of new vertex normal."
          }
        ],
        "returns": "The index of the newly added vertex normal."
      },
      {
        "signature": "System.Int32 Add(System.Single x, System.Single y, System.Single z)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Adds a new vertex normal at the end of the list.",
        "since": "5.0",
        "parameters": [
          {
            "name": "x",
            "type": "System.Single",
            "summary": "X component of new vertex normal."
          },
          {
            "name": "y",
            "type": "System.Single",
            "summary": "Y component of new vertex normal."
          },
          {
            "name": "z",
            "type": "System.Single",
            "summary": "Z component of new vertex normal."
          }
        ],
        "returns": "The index of the newly added vertex normal."
      },
      {
        "signature": "System.Int32 Add(Vector3d normal)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Adds a new vertex normal at the end of the list.",
        "since": "5.0",
        "parameters": [
          {
            "name": "normal",
            "type": "Vector3d",
            "summary": "new vertex normal."
          }
        ],
        "returns": "The index of the newly added vertex normal."
      },
      {
        "signature": "System.Int32 Add(Vector3f normal)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Adds a new vertex normal at the end of the list.",
        "since": "5.0",
        "parameters": [
          {
            "name": "normal",
            "type": "Vector3f",
            "summary": "new vertex normal."
          }
        ],
        "returns": "The index of the newly added vertex normal."
      },
      {
        "signature": "System.Boolean AddRange(Vector3f[] normals)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Appends a collection of normal vectors.",
        "since": "5.0",
        "parameters": [
          {
            "name": "normals",
            "type": "Vector3f[]",
            "summary": "Normals to append."
          }
        ],
        "returns": "True on success, False on failure."
      },
      {
        "signature": "System.Void Clear()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Clears the vertex normal collection on the mesh.",
        "since": "5.0"
      },
      {
        "signature": "System.Boolean ComputeNormals()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Computes the vertex normals based on the physical shape of the mesh.",
        "since": "5.0",
        "returns": "True on success, False on failure."
      },
      {
        "signature": "System.Void Destroy()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Releases all memory allocated to store vertex normals. The list capacity will be 0 after this call.  \nSubsequent calls can add new items.",
        "since": "6.0"
      },
      {
        "signature": "System.Void Flip()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Reverses direction of all vertex normals  \nThis is the same as Mesh.Flip(true, false, false)",
        "since": "5.0"
      },
      {
        "signature": "IEnumerator<Vector3f> GetEnumerator()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets an enumerator that yields all normals (vectors) in this collection.",
        "since": "5.0",
        "returns": "The enumerator."
      },
      {
        "signature": "System.Boolean SetNormal(System.Int32 index, System.Double x, System.Double y, System.Double z)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Sets or adds a vertex normal to the list.  \nIf [index] is less than [Count], the existing vertex normal at [index] will be modified.  \nIf [index] equals [Count], a new vertex normal is appended to the end of the list.  \nIf [index] is larger than [Count], the function will return false.",
        "since": "5.0",
        "parameters": [
          {
            "name": "index",
            "type": "System.Int32",
            "summary": "Index of vertex normal to set."
          },
          {
            "name": "x",
            "type": "System.Double",
            "summary": "X component of vertex normal."
          },
          {
            "name": "y",
            "type": "System.Double",
            "summary": "Y component of vertex normal."
          },
          {
            "name": "z",
            "type": "System.Double",
            "summary": "Z component of vertex normal."
          }
        ],
        "returns": "True on success, False on failure."
      },
      {
        "signature": "System.Boolean SetNormal(System.Int32 index, System.Single x, System.Single y, System.Single z)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Sets or adds a normal to the list.  \nIf [index] is less than [Count], the existing vertex normal at [index] will be modified.  \nIf [index] equals [Count], a new vertex normal is appended to the end of the list.  \nIf [index] is larger than [Count], the function will return false.",
        "since": "5.0",
        "parameters": [
          {
            "name": "index",
            "type": "System.Int32",
            "summary": "Index of vertex normal to set."
          },
          {
            "name": "x",
            "type": "System.Single",
            "summary": "X component of vertex normal."
          },
          {
            "name": "y",
            "type": "System.Single",
            "summary": "Y component of vertex normal."
          },
          {
            "name": "z",
            "type": "System.Single",
            "summary": "Z component of vertex normal."
          }
        ],
        "returns": "True on success, False on failure."
      },
      {
        "signature": "System.Boolean SetNormal(System.Int32 index, Vector3d normal)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Sets or adds a vertex normal to the list.  \nIf [index] is less than [Count], the existing vertex normal at [index] will be modified.  \nIf [index] equals [Count], a new vertex normal is appended to the end of the list.  \nIf [index] is larger than [Count], the function will return false.",
        "since": "5.0",
        "parameters": [
          {
            "name": "index",
            "type": "System.Int32",
            "summary": "Index of vertex normal to set."
          },
          {
            "name": "normal",
            "type": "Vector3d",
            "summary": "The new normal at the index."
          }
        ],
        "returns": "True on success, False on failure."
      },
      {
        "signature": "System.Boolean SetNormal(System.Int32 index, Vector3f normal)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Sets or adds a vertex normal to the list.  \nIf [index] is less than [Count], the existing vertex normal at [index] will be modified.  \nIf [index] equals [Count], a new vertex normal is appended to the end of the vertex list.  \nIf [index] is larger than [Count], the function will return false.",
        "since": "5.0",
        "parameters": [
          {
            "name": "index",
            "type": "System.Int32",
            "summary": "Index of vertex normal to set."
          },
          {
            "name": "normal",
            "type": "Vector3f",
            "summary": "The new normal at the index."
          }
        ],
        "returns": "True on success, False on failure."
      },
      {
        "signature": "System.Boolean SetNormals(Vector3f[] normals)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Sets all normal vectors in one go. This method destroys the current normal array if it exists.",
        "since": "5.0",
        "parameters": [
          {
            "name": "normals",
            "type": "Vector3f[]",
            "summary": "Normals for the entire mesh."
          }
        ],
        "returns": "True on success, False on failure."
      },
      {
        "signature": "System.Single[] ToFloatArray()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Copies all vertex normals to a linear array of float in x,y,z order",
        "since": "6.0",
        "returns": "The float array."
      },
      {
        "signature": "System.Boolean UnitizeNormals()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Unitizes all vertex normals.",
        "since": "5.0",
        "returns": "True on success, False on failure."
      }
    ]
  },
  {
    "namespace": "Rhino.Geometry.Collections",
    "name": "MeshVertexStatusList",
    "dataType": "class",
    "summary": "Provides access to status information relative to components of a mesh.",
    "interfaces": ["IResizableList<bool>", "IList", "IReadOnlyList<bool>"],
    "properties": [
      {
        "signature": "int Capacity",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the total number of hidden vertex information the internal data structure can hold without resizing.",
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "int Count",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the number of hidden vertices. For this to be a valid part of a mesh, this count should be the same as the one of mesh vertices.",
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "int HiddenCount",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets a value indicating how many vertices have been set to hidden.",
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "bool this[int index]",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the hidden value at the given index. The index must be valid or an IndexOutOfRangeException will be thrown."
      }
    ],
    "methods": [
      {
        "signature": "System.Void Add(System.Boolean hidden)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Adds a new flag at the end of the list.",
        "since": "6.0",
        "parameters": [
          {
            "name": "hidden",
            "type": "System.Boolean",
            "summary": "True if vertex is hidden."
          }
        ],
        "returns": "The index of the newly added hidden vertex."
      },
      {
        "signature": "System.Void AddRange(IEnumerable<bool> values)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Appends an array, a list or any enumerable of flags to the end of the list.",
        "since": "6.0",
        "parameters": [
          {
            "name": "values",
            "type": "IEnumerable<bool>",
            "summary": "Hidden values to append."
          }
        ],
        "returns": "True on success, False on failure."
      },
      {
        "signature": "System.Void Clear()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Clears the hidden vertex list on the mesh. This results in a fully visible mesh.",
        "since": "6.0"
      },
      {
        "signature": "System.Boolean Contains(System.Boolean hidden)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Determines if some vertices are hidden or some are shown.",
        "since": "6.0",
        "parameters": [
          {
            "name": "hidden",
            "type": "System.Boolean",
            "summary": "The value to be checked. True means some vertex is hidden."
          }
        ],
        "returns": "True if the array contains the specified value."
      },
      {
        "signature": "System.Void CopyTo(System.Boolean[] array, System.Int32 arrayIndex)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Copies to an array, starting at an index.",
        "since": "6.0",
        "parameters": [
          {
            "name": "array",
            "type": "System.Boolean[]",
            "summary": "The array to be copied into."
          },
          {
            "name": "arrayIndex",
            "type": "System.Int32",
            "summary": "The starting index in the array."
          }
        ]
      },
      {
        "signature": "System.Void Destroy()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Releases all memory allocated to store hidden vertices. The list capacity will be 0 after this call.  \nVertices will be immediately considered visible.  \nSubsequent calls can add new items.",
        "since": "6.0"
      },
      {
        "signature": "IEnumerator<bool> GetEnumerator()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets an enumerator that yields all flags in this collection.",
        "since": "6.0",
        "returns": "The enumerator."
      }
    ]
  },
  {
    "namespace": "Rhino.Geometry.Collections",
    "name": "NurbsCurveKnotList",
    "dataType": "class",
    "summary": "Provides access to the knot vector of a NURBS curve.",
    "interfaces": ["IEnumerable<double>", "IRhinoTable<double>", "IEpsilonComparable<NurbsCurveKnotList>", "IList<double>"],
    "properties": [
      {
        "signature": "int Count",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Total number of knots in this curve.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "bool IsClampedEnd",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets a value indicating whether or not the knot vector is clamped at the end of the curve. Clamped curves are coincident with the first and last control-point. This requires fully multiple knots.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "bool IsClampedStart",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets a value indicating whether or not the knot vector is clamped at the start of the curve. Clamped curves start at the first control-point. This requires fully multiple knots.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "KnotStyle KnotStyle",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the style of the knot vector.",
        "since": "7.1",
        "property": ["get"]
      },
      {
        "signature": "double this[int index]",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the knot vector value at the given index."
      }
    ],
    "methods": [
      {
        "signature": "System.Boolean ClampEnd(CurveEnd end)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Clamp end knots. Does not modify control point locations.",
        "since": "5.0",
        "parameters": [
          {
            "name": "end",
            "type": "CurveEnd",
            "summary": "Curve end to clamp."
          }
        ],
        "returns": "True on success, False on failure."
      },
      {
        "signature": "System.Boolean Contains(System.Double item)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns an indication of the presence of a value in the knot list.",
        "since": "6.0",
        "parameters": [
          {
            "name": "item",
            "type": "System.Double",
            "summary": "The item."
          }
        ],
        "returns": "True if present, False otherwise."
      },
      {
        "signature": "System.Void CopyTo(System.Double[] array, System.Int32 arrayIndex)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Copies the list to an array.",
        "since": "6.0",
        "parameters": [
          {
            "name": "array",
            "type": "System.Double[]",
            "summary": "The array to copy to."
          },
          {
            "name": "arrayIndex",
            "type": "System.Int32",
            "summary": "The index into copy will begin."
          }
        ]
      },
      {
        "signature": "System.Boolean CreatePeriodicKnots(System.Double knotSpacing)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Compute a clamped, uniform, periodic knot vector based on the current degree and control point count. Does not change values of control vertices.",
        "since": "5.0",
        "parameters": [
          {
            "name": "knotSpacing",
            "type": "System.Double",
            "summary": "Spacing of subsequent knots."
          }
        ],
        "returns": "True on success, False on failure."
      },
      {
        "signature": "System.Boolean CreateUniformKnots(System.Double knotSpacing)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Compute a clamped, uniform knot vector based on the current degree and control point count. Does not change values of control vertices.",
        "since": "5.0",
        "parameters": [
          {
            "name": "knotSpacing",
            "type": "System.Double",
            "summary": "Spacing of subsequent knots."
          }
        ],
        "returns": "True on success, False on failure."
      },
      {
        "signature": "System.Void EnsurePrivateCopy()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "If you want to keep a copy of this class around by holding onto it in a variable after a command completes, call EnsurePrivateCopy to make sure that this class is not tied to the document. You can call this function as many times as you want.",
        "since": "5.0"
      },
      {
        "signature": "System.Boolean EpsilonEquals(NurbsCurveKnotList other, System.Double epsilon)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Checks that all values in the other list are sequentially equal within epsilon to the values in this list.",
        "since": "5.4",
        "parameters": [
          {
            "name": "other",
            "type": "NurbsCurveKnotList",
            "summary": "The other list."
          },
          {
            "name": "epsilon",
            "type": "System.Double",
            "summary": "The epsilon value."
          }
        ],
        "returns": "True if values are, orderly, equal within epsilon. False otherwise."
      },
      {
        "signature": "System.Int32 IndexOf(System.Double item)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns the first item in the list.",
        "since": "6.0",
        "parameters": [
          {
            "name": "item",
            "type": "System.Double",
            "summary": "The value."
          }
        ],
        "returns": "The index, or -1 if no index is found."
      },
      {
        "signature": "System.Boolean InsertKnot(System.Double value, System.Int32 multiplicity)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Inserts a knot and update control point locations. Does not change parameterization or locus of curve.",
        "since": "5.0",
        "parameters": [
          {
            "name": "value",
            "type": "System.Double",
            "summary": "Knot value to insert."
          },
          {
            "name": "multiplicity",
            "type": "System.Int32",
            "summary": "Multiplicity of knot to insert."
          }
        ],
        "returns": "True on success, False on failure."
      },
      {
        "signature": "System.Boolean InsertKnot(System.Double value)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Inserts a knot and update control point locations. Does not change parameterization or locus of curve.",
        "since": "5.0",
        "parameters": [
          {
            "name": "value",
            "type": "System.Double",
            "summary": "Knot value to insert."
          }
        ],
        "returns": "True on success, False on failure."
      },
      {
        "signature": "System.Int32 KnotMultiplicity(System.Int32 index)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Get knot multiplicity.",
        "since": "5.0",
        "parameters": [
          {
            "name": "index",
            "type": "System.Int32",
            "summary": "Index of knot to query."
          }
        ],
        "returns": "The multiplicity (valence) of the knot."
      },
      {
        "signature": "System.Boolean RemoveKnotAt(System.Double t)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Remove a knot from a curve and adjusts the remaining control points to maintain curve position as closely as possible.",
        "since": "6.0",
        "parameters": [
          {
            "name": "t",
            "type": "System.Double",
            "summary": "The parameter on the curve that is closest to the knot to be removed."
          }
        ],
        "returns": "True if successful, False on failure."
      },
      {
        "signature": "System.Boolean RemoveKnots(System.Int32 index0, System.Int32 index1)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Remove knots from a curve and adjusts the remaining control points to maintain curve position as closely as possible. The knots from Knots[index0] through Knots[index1 - 1] will be removed.",
        "since": "6.0",
        "parameters": [
          {
            "name": "index0",
            "type": "System.Int32",
            "summary": "The starting knot index, where Degree-1 < index0 < index1 <= Points.Count-1."
          },
          {
            "name": "index1",
            "type": "System.Int32",
            "summary": "The ending knot index, where Degree-1 < index0 < index1 <= Points.Count-1."
          }
        ],
        "returns": "True if successful, False on failure."
      },
      {
        "signature": "System.Int32 RemoveMultipleKnots(System.Int32 minimumMultiplicity, System.Int32 maximumMultiplicity, System.Double tolerance)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Remove multiple knots from this curve.",
        "since": "6.0",
        "parameters": [
          {
            "name": "minimumMultiplicity",
            "type": "System.Int32",
            "summary": "Remove knots with multiplicity > minimumKnotMultiplicity."
          },
          {
            "name": "maximumMultiplicity",
            "type": "System.Int32",
            "summary": "Remove knots with multiplicity < maximumKnotMultiplicity."
          },
          {
            "name": "tolerance",
            "type": "System.Double",
            "summary": "When you remove knots, the shape of the curve is changed. If tolerance is RhinoMath.UnsetValue, any amount of change is permitted. If tolerance is >=0, the maximum distance between the input and output curve is restricted to be <= tolerance."
          }
        ],
        "returns": "number of knots removed on success. 0 if no knots were removed"
      },
      {
        "signature": "System.Double SuperfluousKnot(System.Boolean start)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Computes the knots that are superfluous because they are not used in NURBs evaluation. These make it appear so that the first and last curve spans are different from interior spans.  \nhttp://wiki.mcneel.com/developer/onsuperfluousknot",
        "since": "5.0",
        "parameters": [
          {
            "name": "start",
            "type": "System.Boolean",
            "summary": "True if the query targets the first knot. Otherwise, the last knot."
          }
        ],
        "returns": "A component."
      }
    ]
  },
  {
    "namespace": "Rhino.Geometry.Collections",
    "name": "NurbsCurvePointList",
    "dataType": "class",
    "summary": "Provides access to the control points of a NURBS curve.",
    "interfaces": ["IEnumerable<ControlPoint>", "IRhinoTable<ControlPoint>", "IEpsilonComparable<NurbsCurvePointList>", "IList<ControlPoint>"],
    "properties": [
      {
        "signature": "double ControlPolygonLength",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the length of the polyline connecting all control points.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "int Count",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the number of control points in this curve.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "int PointSize",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns the control point size, or the number of doubles per control point. For rational curves, PointSize = Curve.Dimension + 1. For non-rational curves, PointSize = Curve.Dimension.",
        "since": "6.9",
        "property": ["get"]
      },
      {
        "signature": "ControlPoint this[int index]",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the control point location at the given index."
      }
    ],
    "methods": [
      {
        "signature": "System.Boolean ChangeEndWeights(System.Double w0, System.Double w1)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Use a combination of scaling and reparameterization to change the end weights to the specified values.",
        "since": "5.0",
    "remarks": "The domain, Euclidean locations of the control points, and locus of the curve do not change, but the weights, homogeneous CV values and internal knot values may change. If w0 and w1 are 1 and the curve is not rational, the curve is not changed.",
        "parameters": [
          {
            "name": "w0",
            "type": "System.Double",
            "summary": "Weight for first control point."
          },
          {
            "name": "w1",
            "type": "System.Double",
            "summary": "Weight for last control point."
          }
        ],
        "returns": "True on success, False on failure."
      },
      {
        "signature": "System.Boolean Contains(ControlPoint item)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Determines if this list contains an item.",
        "since": "6.0",
        "parameters": [
          {
            "name": "item",
            "type": "ControlPoint",
            "summary": "The exact item to search for."
          }
        ],
        "returns": "A boolean value."
      },
      {
        "signature": "Polyline ControlPolygon()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Constructs a polyline through all the control points. Note that periodic curves generate a closed polyline withfewer points than control-points.",
        "since": "5.0",
        "returns": "A polyline connecting all control points."
      },
      {
        "signature": "System.Void CopyTo(ControlPoint[] array, System.Int32 arrayIndex)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Copied the list to an array.",
        "since": "6.0",
        "parameters": [
          {
            "name": "array",
            "type": "ControlPoint[]",
            "summary": "The array to copy to."
          },
          {
            "name": "arrayIndex",
            "type": "System.Int32",
            "summary": "The index in which the copy will begin."
          }
        ]
      },
      {
        "signature": "System.Void EnsurePrivateCopy()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "If you want to keep a copy of this class around by holding onto it in a variable after a command completes, call EnsurePrivateCopy to make sure that this class is not tied to the document. You can call this function as many times as you want.",
        "since": "5.0"
      },
      {
        "signature": "System.Boolean EpsilonEquals(NurbsCurvePointList other, System.Double epsilon)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Check that all values in other are within epsilon of the values in this",
        "since": "5.4"
      },
      {
        "signature": "System.Boolean GetPoint(System.Int32 index, out Point3d point)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets a world 3-D, or Euclidean, control point at the given index. The 4-D representation is (x, y, z, 1.0).",
        "since": "6.0",
        "parameters": [
          {
            "name": "index",
            "type": "System.Int32",
            "summary": "Index of control point to get."
          },
          {
            "name": "point",
            "type": "Point3d",
            "summary": "Coordinate of control point."
          }
        ],
        "returns": "True on success, False on failure."
      },
      {
        "signature": "System.Boolean GetPoint(System.Int32 index, out Point4d point)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets a homogeneous control point at the given index, where the 4-D representation is (x, y, z, w). The world 3-D, or Euclidean, representation is (x/w, y/w, z/w).",
        "since": "6.0",
    "remarks": "For expert use only. If you do not understand homogeneous coordinates, then use the override that returns world 3-D, or Euclidean, coordinates.",
        "parameters": [
          {
            "name": "index",
            "type": "System.Int32",
            "summary": "Index of control point to get."
          },
          {
            "name": "point",
            "type": "Point4d",
            "summary": "Coordinate and weight of control point."
          }
        ],
        "returns": "True on success, False on failure."
      },
      {
        "signature": "System.Double GetWeight(System.Int32 index)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the weight of a control point at the given index. Note, if the curve is non-rational, the weight will be 1.0.",
        "since": "6.0",
        "parameters": [
          {
            "name": "index",
            "type": "System.Int32",
            "summary": "Index of control point to get."
          }
        ],
        "returns": "The control point weight if successful, Rhino.Math.UnsetValue otherwise."
      },
      {
        "signature": "System.Int32 IndexOf(ControlPoint item)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the index of a control point, or -1.",
        "since": "6.0",
        "parameters": [
          {
            "name": "item",
            "type": "ControlPoint",
            "summary": "The exact item to search for."
          }
        ],
        "returns": "The index."
      },
      {
        "signature": "System.Boolean MakeNonRational()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Converts the curve to a Non-rational NURBS curve. Non-rational curves have unweighted control points.",
        "since": "5.0",
        "returns": "True on success, False on failure."
      },
      {
        "signature": "System.Boolean MakeRational()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Converts the curve to a Rational NURBS curve. Rational NURBS curves have weighted control points.",
        "since": "5.0",
        "returns": "True on success, False on failure."
      },
      {
        "signature": "System.Boolean SetPoint(System.Int32 index, Point3d point, System.Double weight)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Sets a world 3-D, or Euclidean, control point and weight at a given index. The 4-D representation is (x*w, y*w, z*w, w).",
        "since": "6.0",
        "parameters": [
          {
            "name": "index",
            "type": "System.Int32",
            "summary": "Index of control point to set."
          },
          {
            "name": "point",
            "type": "Point3d",
            "summary": "Coordinates of the control point."
          },
          {
            "name": "weight",
            "type": "System.Double",
            "summary": "Weight of control point."
          }
        ],
        "returns": "True on success, False on failure."
      },
      {
        "signature": "System.Boolean SetPoint(System.Int32 index, Point3d point)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Sets a world 3-D, or Euclidean, control point at the given index. The 4-D representation is (x, y, z, 1.0).",
        "since": "5.0",
        "parameters": [
          {
            "name": "index",
            "type": "System.Int32",
            "summary": "Index of control point to set."
          },
          {
            "name": "point",
            "type": "Point3d",
            "summary": "Coordinate of control point."
          }
        ],
        "returns": "True on success, False on failure."
      },
      {
        "signature": "System.Boolean SetPoint(System.Int32 index, Point4d point)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Sets a homogeneous control point at the given index, where the 4-D representation is (x, y, z, w). The world 3-D, or Euclidean, representation is (x/w, y/w, z/w).",
        "since": "5.0",
    "remarks": "For expert use only. If you do not understand homogeneous coordinates, then use an override that accepts world 3-D, or Euclidean, coordinates as input.",
        "parameters": [
          {
            "name": "index",
            "type": "System.Int32",
            "summary": "Index of control point to set."
          },
          {
            "name": "point",
            "type": "Point4d",
            "summary": "Coordinate and weight of control point."
          }
        ],
        "returns": "True on success, False on failure."
      },
      {
        "signature": "System.Boolean SetPoint(System.Int32 index, System.Double x, System.Double y, System.Double z, System.Double weight)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Sets a homogeneous control point at the given index, where the 4-D representation is (x, y, z, w). The world 3-D, or Euclidean, representation is (x/w, y/w, z/w).",
        "since": "5.0",
    "remarks": "For expert use only. If you do not understand homogeneous coordinates, then use an override that accepts world 3-D, or Euclidean, coordinates as input.",
        "parameters": [
          {
            "name": "index",
            "type": "System.Int32",
            "summary": "Index of control point to set."
          },
          {
            "name": "x",
            "type": "System.Double",
            "summary": "X coordinate of control point."
          },
          {
            "name": "y",
            "type": "System.Double",
            "summary": "Y coordinate of control point."
          },
          {
            "name": "z",
            "type": "System.Double",
            "summary": "Z coordinate of control point."
          },
          {
            "name": "weight",
            "type": "System.Double",
            "summary": "Weight of control point."
          }
        ],
        "returns": "True on success, False on failure."
      },
      {
        "signature": "System.Boolean SetPoint(System.Int32 index, System.Double x, System.Double y, System.Double z)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Sets a world 3-D, or Euclidean, control point at the given index. The 4-D representation is (x, y, z, 1.0).",
        "since": "6.0",
        "parameters": [
          {
            "name": "index",
            "type": "System.Int32",
            "summary": "Index of control point to set."
          },
          {
            "name": "x",
            "type": "System.Double",
            "summary": "X coordinate of control point."
          },
          {
            "name": "y",
            "type": "System.Double",
            "summary": "Y coordinate of control point."
          },
          {
            "name": "z",
            "type": "System.Double",
            "summary": "Z coordinate of control point."
          }
        ],
        "returns": "True on success, False on failure."
      },
      {
        "signature": "System.Boolean SetWeight(System.Int32 index, System.Double weight)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Sets the weight of a control point at the given index Note, if the curve is non-rational, it will be converted to rational.",
        "since": "6.0",
        "parameters": [
          {
            "name": "index",
            "type": "System.Int32",
            "summary": "Index of control point to set."
          },
          {
            "name": "weight",
            "type": "System.Double",
            "summary": "The control point weight."
          }
        ],
        "returns": "True if successful, False otherwise."
      },
      {
        "signature": "System.Boolean UVNDirectionsAt(System.Int32 index, out Vector3d uDir, out Vector3d vDir, out Vector3d nDir)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Calculates the U, V, and N directions of a NURBS curve control point similar to the method used by Rhino's MoveUVN command.",
        "since": "7.0",
        "parameters": [
          {
            "name": "index",
            "type": "System.Int32",
            "summary": "Index of control point."
          },
          {
            "name": "uDir",
            "type": "Vector3d",
            "summary": "The U direction."
          },
          {
            "name": "vDir",
            "type": "Vector3d",
            "summary": "The V direction."
          },
          {
            "name": "nDir",
            "type": "Vector3d",
            "summary": "The N direction."
          }
        ],
        "returns": "True if successful, False otherwise."
      },
      {
        "signature": "System.Boolean ValidateSpacing(System.Double closeTolerance, System.Double stackTolerance, out System.Int32[] closeIndices, out System.Int32[] stackedIndices)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Simple check of distance between adjacent control points",
        "since": "6.0",
        "parameters": [
          {
            "name": "closeTolerance",
            "type": "System.Double",
            "summary": "tolerance to use for determining if control points are 'close'"
          },
          {
            "name": "stackTolerance",
            "type": "System.Double",
            "summary": "tolerance to use for determining if control points are 'stacked'"
          },
          {
            "name": "closeIndices",
            "type": "System.Int32[]",
            "summary": "indices of 'close' points are returned in this array"
          },
          {
            "name": "stackedIndices",
            "type": "System.Int32[]",
            "summary": "indices of 'stacked' points are returned in this array"
          }
        ],
        "returns": "True if close or stacked indices are found"
      }
    ]
  },
  {
    "namespace": "Rhino.Geometry.Collections",
    "name": "NurbsSurfaceKnotList",
    "dataType": "class",
    "summary": "Provides access to the knot vector of a NURBS surface.",
    "interfaces": ["IEnumerable<double>", "Rhino.Collections.IRhinoTable<double>", "IEpsilonComparable<NurbsSurfaceKnotList>"],
    "properties": [
      {
        "signature": "bool ClampedAtEnd",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Determines if a knot vector is clamped.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "bool ClampedAtStart",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Determines if a knot vector is clamped.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "int Count",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the total number of knots in this curve.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "KnotStyle KnotStyle",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the style of the knot vector.",
        "since": "7.1",
        "property": ["get"]
      },
      {
        "signature": "double this[int index]",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the knot vector value at the given index."
      }
    ],
    "methods": [
      {
        "signature": "System.Boolean CreatePeriodicKnots(System.Double knotSpacing)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Compute a clamped, uniform, periodic knot vector based on the current degree and control point count. Does not change values of control vertices.",
        "since": "5.0",
        "parameters": [
          {
            "name": "knotSpacing",
            "type": "System.Double",
            "summary": "Spacing of subsequent knots."
          }
        ],
        "returns": "True on success, False on failure."
      },
      {
        "signature": "System.Boolean CreateUniformKnots(System.Double knotSpacing)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Compute a clamped, uniform knot vector based on the current degree and control point count. Does not change values of control vertices.",
        "since": "5.0",
        "parameters": [
          {
            "name": "knotSpacing",
            "type": "System.Double",
            "summary": "Spacing of subsequent knots."
          }
        ],
        "returns": "True on success, False on failure."
      },
      {
        "signature": "System.Void EnsurePrivateCopy()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "If you want to keep a copy of this class around by holding onto it in a variable after a command completes, call EnsurePrivateCopy to make sure that this class is not tied to the document. You can call this function as many times as you want.",
        "since": "5.0"
      },
      {
        "signature": "System.Boolean EpsilonEquals(NurbsSurfaceKnotList other, System.Double epsilon)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Check that all values in other are within epsilon of the values in this",
        "since": "5.4"
      },
      {
        "signature": "System.Boolean InsertKnot(System.Double value, System.Int32 multiplicity)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Inserts a knot and update control point locations. Does not change parameterization or locus of curve.",
        "since": "5.0",
        "parameters": [
          {
            "name": "value",
            "type": "System.Double",
            "summary": "Knot value to insert."
          },
          {
            "name": "multiplicity",
            "type": "System.Int32",
            "summary": "Multiplicity of knot to insert."
          }
        ],
        "returns": "True on success, False on failure."
      },
      {
        "signature": "System.Boolean InsertKnot(System.Double value)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Inserts a knot and update control point locations. Does not change parameterization or locus of curve.",
        "since": "5.0",
        "parameters": [
          {
            "name": "value",
            "type": "System.Double",
            "summary": "Knot value to insert."
          }
        ],
        "returns": "True on success, False on failure."
      },
      {
        "signature": "System.Int32 KnotMultiplicity(System.Int32 index)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Get knot multiplicity.",
        "since": "5.0",
        "parameters": [
          {
            "name": "index",
            "type": "System.Int32",
            "summary": "Index of knot to query."
          }
        ],
        "returns": "The multiplicity (valence) of the knot."
      },
      {
        "signature": "System.Boolean RemoveKnots(System.Int32 index0, System.Int32 index1)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Remove knots from the knot vector and adjusts the remaining control points to maintain surface position as closely as possible. The knots from Knots[index0] through Knots[index1 - 1] will be removed.",
        "since": "6.0",
        "parameters": [
          {
            "name": "index0",
            "type": "System.Int32",
            "summary": "The starting knot index, where Degree-1 < index0 < index1 <= Points.Count-1."
          },
          {
            "name": "index1",
            "type": "System.Int32",
            "summary": "The ending knot index, where Degree-1 < index0 < index1 <= Points.Count-1."
          }
        ],
        "returns": "True if successful, False on failure."
      },
      {
        "signature": "System.Boolean RemoveKnotsAt(System.Double u, System.Double v)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Remove knots from the surface and adjusts the remaining control points to maintain surface position as closely as possible.",
        "since": "6.0",
        "parameters": [
          {
            "name": "u",
            "type": "System.Double",
            "summary": "The u parameter on the surface that is closest to the knot to be removed."
          },
          {
            "name": "v",
            "type": "System.Double",
            "summary": "The v parameter on the surface that is closest to the knot to be removed."
          }
        ],
        "returns": "True if successful, False on failure."
      },
      {
        "signature": "System.Int32 RemoveMultipleKnots(System.Int32 minimumMultiplicity, System.Int32 maximumMultiplicity, System.Double tolerance)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Remove multiple knots from this surface",
        "since": "6.0",
        "parameters": [
          {
            "name": "minimumMultiplicity",
            "type": "System.Int32",
            "summary": "Remove knots with multiplicity > minimumKnotMultiplicity"
          },
          {
            "name": "maximumMultiplicity",
            "type": "System.Int32",
            "summary": "Remove knots with multiplicity < maximumKnotMultiplicity"
          },
          {
            "name": "tolerance",
            "type": "System.Double",
            "summary": "When you remove knots, the shape of the surface is changed. If tolerance is RhinoMath.UnsetValue, any amount of change is permitted. If tolerance is >=0, the maximum distance between the input and output surface is restricted to be <= tolerance."
          }
        ],
        "returns": "number of knots removed on success. 0 if no knots were removed"
      },
      {
        "signature": "System.Double SuperfluousKnot(System.Boolean start)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Computes the knots that are superfluous because they are not used in NURBs evaluation. These make it appear so that the first and last surface spans are different from interior spans.  \nhttp://wiki.mcneel.com/developer/onsuperfluousknot",
        "since": "5.0",
        "parameters": [
          {
            "name": "start",
            "type": "System.Boolean",
            "summary": "True if the query targets the first knot. Otherwise, the last knot."
          }
        ],
        "returns": "A component."
      }
    ]
  },
  {
    "namespace": "Rhino.Geometry.Collections",
    "name": "NurbsSurfacePointList",
    "dataType": "class",
    "summary": "Provides access to the control points of a NURBS surface.",
    "interfaces": ["IEnumerable<ControlPoint>", "IEpsilonComparable<NurbsSurfacePointList>"],
    "properties": [
      {
        "signature": "int CountU",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the number of control points in the U direction of this surface.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "int CountV",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the number of control points in the V direction of this surface.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "int PointSize",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns the control point size, or the number of doubles per control point. For rational curves, PointSize = Surface.Dimension + 1. For non-rational curves, PointSize = Surface.Dimension.",
        "since": "6.9",
        "property": ["get"]
      }
    ],
    "methods": [
      {
        "signature": "System.Void EnsurePrivateCopy()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "If you want to keep a copy of this class around by holding onto it in a variable after a command completes, call EnsurePrivateCopy to make sure that this class is not tied to the document. You can call this function as many times as you want.",
        "since": "5.0"
      },
      {
        "signature": "System.Boolean EpsilonEquals(NurbsSurfacePointList other, System.Double epsilon)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Check that all values in other are within epsilon of the values in this",
        "since": "5.4"
      },
      {
        "signature": "ControlPoint GetControlPoint(System.Int32 u, System.Int32 v)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the control point at the given (u, v) index.",
        "since": "5.0",
        "parameters": [
          {
            "name": "u",
            "type": "System.Int32",
            "summary": "Index of control point in the surface U direction."
          },
          {
            "name": "v",
            "type": "System.Int32",
            "summary": "Index of control point in the surface V direction."
          }
        ],
        "returns": "The control point at the given (u, v) index."
      },
      {
        "signature": "Point2d GetGrevillePoint(System.Int32 u, System.Int32 v)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the 2-D Greville point associated with the control point at the given (u, v) index.",
        "since": "5.0",
        "parameters": [
          {
            "name": "u",
            "type": "System.Int32",
            "summary": "Index of control point in the surface U direction."
          },
          {
            "name": "v",
            "type": "System.Int32",
            "summary": "Index of control point in the surface V direction."
          }
        ],
        "returns": "A Surface UV coordinate on success, Point2d.Unset on failure."
      },
      {
        "signature": "System.Boolean GetPoint(System.Int32 u, System.Int32 v, out Point3d point)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets a world 3-D, or Euclidean, control point at the given (u, v) index. The 4-D representation is (x, y, z, 1.0).",
        "since": "6.0",
        "parameters": [
          {
            "name": "u",
            "type": "System.Int32",
            "summary": "Index of control point in the surface U direction."
          },
          {
            "name": "v",
            "type": "System.Int32",
            "summary": "Index of control point in the surface V direction."
          },
          {
            "name": "point",
            "type": "Point3d",
            "summary": "Coordinate of control point."
          }
        ],
        "returns": "True on success, False on failure."
      },
      {
        "signature": "System.Boolean GetPoint(System.Int32 u, System.Int32 v, out Point4d point)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets a homogeneous control point at the given (u, v) index, where the 4-D representation is (x, y, z, w). The world 3-D, or Euclidean, representation is (x/w, y/w, z/w).",
        "since": "6.0",
    "remarks": "For expert use only. If you do not understand homogeneous coordinates, then use the override that returns world 3-D, or Euclidean, coordinates.",
        "parameters": [
          {
            "name": "u",
            "type": "System.Int32",
            "summary": "Index of control point in the surface U direction."
          },
          {
            "name": "v",
            "type": "System.Int32",
            "summary": "Index of control point in the surface V direction."
          },
          {
            "name": "point",
            "type": "Point4d",
            "summary": "Coordinate and weight of control point."
          }
        ],
        "returns": "True on success, False on failure."
      },
      {
        "signature": "System.Double GetWeight(System.Int32 u, System.Int32 v)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the weight of a control point at the given (u, v) index. Note, if the surface is non-rational, the weight will be 1.0.",
        "since": "6.0",
        "parameters": [
          {
            "name": "u",
            "type": "System.Int32",
            "summary": "Index of control-point along surface U direction."
          },
          {
            "name": "v",
            "type": "System.Int32",
            "summary": "Index of control-point along surface V direction."
          }
        ],
        "returns": "The control point weight if successful, Rhino.Math.UnsetValue otherwise."
      },
      {
        "signature": "System.Boolean SetControlPoint(System.Int32 u, System.Int32 v, ControlPoint cp)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Sets the control point at the given (u, v) index.",
        "since": "5.0",
        "parameters": [
          {
            "name": "u",
            "type": "System.Int32",
            "summary": "Index of control point in the surface U direction."
          },
          {
            "name": "v",
            "type": "System.Int32",
            "summary": "Index of control point in the surface V direction."
          },
          {
            "name": "cp",
            "type": "ControlPoint",
            "summary": "The control point to set."
          }
        ],
        "returns": "True on success, False on failure."
      },
      {
        "signature": "System.Boolean SetControlPoint(System.Int32 u, System.Int32 v, Point3d cp)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Sets the control point at the given (u, v) index.",
        "since": "5.0",
        "deprecated": "6.0",
        "obsolete": "Use one of the SetPoint",
        "parameters": [
          {
            "name": "u",
            "type": "System.Int32",
            "summary": "Index of control point in the surface U direction."
          },
          {
            "name": "v",
            "type": "System.Int32",
            "summary": "Index of control point in the surface V direction."
          },
          {
            "name": "cp",
            "type": "Point3d",
            "summary": "The control point location to set (weight is assumed to be 1.0)."
          }
        ],
        "returns": "True on success, False on failure."
      },
      {
        "signature": "System.Boolean SetPoint(System.Int32 u, System.Int32 v, Point3d point, System.Double weight)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Sets a world 3-D, or Euclidean, control point and weight at a given index. The 4-D representation is (x*w, y*w, z*w, w).",
        "since": "6.0",
        "parameters": [
          {
            "name": "u",
            "type": "System.Int32",
            "summary": "Index of control point in the surface U direction."
          },
          {
            "name": "v",
            "type": "System.Int32",
            "summary": "Index of control point in the surface V direction."
          },
          {
            "name": "point",
            "type": "Point3d",
            "summary": "Coordinates of the control point."
          },
          {
            "name": "weight",
            "type": "System.Double",
            "summary": "Weight of control point."
          }
        ],
        "returns": "True on success, False on failure."
      },
      {
        "signature": "System.Boolean SetPoint(System.Int32 u, System.Int32 v, Point3d point)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Sets a world 3-D, or Euclidean, control point at the given (u, v) index. The 4-D representation is (x, y, z, 1.0).",
        "since": "6.0",
        "parameters": [
          {
            "name": "u",
            "type": "System.Int32",
            "summary": "Index of control point in the surface U direction."
          },
          {
            "name": "v",
            "type": "System.Int32",
            "summary": "Index of control point in the surface V direction."
          },
          {
            "name": "point",
            "type": "Point3d",
            "summary": "Coordinate of control point."
          }
        ],
        "returns": "True on success, False on failure."
      },
      {
        "signature": "System.Boolean SetPoint(System.Int32 u, System.Int32 v, Point4d point)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Sets a homogeneous control point at the given (u, v) index, where the 4-D representation is (x, y, z, w). The world 3-D, or Euclidean, representation is (x/w, y/w, z/w).",
        "since": "6.0",
    "remarks": "For expert use only. If you do not understand homogeneous coordinates, then use an override that accepts world 3-D, or Euclidean, coordinates as input.",
        "parameters": [
          {
            "name": "u",
            "type": "System.Int32",
            "summary": "Index of control point in the surface U direction."
          },
          {
            "name": "v",
            "type": "System.Int32",
            "summary": "Index of control point in the surface V direction."
          },
          {
            "name": "point",
            "type": "Point4d",
            "summary": "Coordinate and weight of control point."
          }
        ],
        "returns": "True on success, False on failure."
      },
      {
        "signature": "System.Boolean SetPoint(System.Int32 u, System.Int32 v, System.Double x, System.Double y, System.Double z, System.Double weight)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Sets a homogeneous control point at the given (u, v) index, where the 4-D representation is (x, y, z, w). The world 3-D, or Euclidean, representation is (x/w, y/w, z/w).",
        "since": "6.0",
    "remarks": "For expert use only. If you do not understand homogeneous coordinates, then use an override that accepts world 3-D, or Euclidean, coordinates as input.",
        "parameters": [
          {
            "name": "u",
            "type": "System.Int32",
            "summary": "Index of control point in the surface U direction."
          },
          {
            "name": "v",
            "type": "System.Int32",
            "summary": "Index of control point in the surface V direction."
          },
          {
            "name": "x",
            "type": "System.Double",
            "summary": "X coordinate of control point."
          },
          {
            "name": "y",
            "type": "System.Double",
            "summary": "Y coordinate of control point."
          },
          {
            "name": "z",
            "type": "System.Double",
            "summary": "Z coordinate of control point."
          },
          {
            "name": "weight",
            "type": "System.Double",
            "summary": "Weight of control point."
          }
        ],
        "returns": "True on success, False on failure."
      },
      {
        "signature": "System.Boolean SetPoint(System.Int32 u, System.Int32 v, System.Double x, System.Double y, System.Double z)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Sets a world 3-D, or Euclidean, control point at the given (u, v) index. The 4-D representation is (x, y, z, 1.0).",
        "since": "6.0",
        "parameters": [
          {
            "name": "u",
            "type": "System.Int32",
            "summary": "Index of control point in the surface U direction."
          },
          {
            "name": "v",
            "type": "System.Int32",
            "summary": "Index of control point in the surface V direction."
          },
          {
            "name": "x",
            "type": "System.Double",
            "summary": "X coordinate of control point."
          },
          {
            "name": "y",
            "type": "System.Double",
            "summary": "Y coordinate of control point."
          },
          {
            "name": "z",
            "type": "System.Double",
            "summary": "Z coordinate of control point."
          }
        ],
        "returns": "True on success, False on failure."
      },
      {
        "signature": "System.Boolean SetWeight(System.Int32 u, System.Int32 v, System.Double weight)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Sets the weight of a control point at the given (u, v) index. Note, if the surface is non-rational, it will be converted to rational.",
        "since": "6.0",
        "parameters": [
          {
            "name": "u",
            "type": "System.Int32",
            "summary": "Index of control-point along surface U direction."
          },
          {
            "name": "v",
            "type": "System.Int32",
            "summary": "Index of control-point along surface V direction."
          },
          {
            "name": "weight",
            "type": "System.Double",
            "summary": "The control point weight."
          }
        ],
        "returns": "True if successful, False otherwise."
      },
      {
        "signature": "System.Boolean UVNDirectionsAt(System.Int32 u, System.Int32 v, out Vector3d uDir, out Vector3d vDir, out Vector3d nDir)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Calculates the U, V, and N directions of a NURBS surface control point similar to the method used by Rhino's MoveUVN command.",
        "since": "7.0",
        "parameters": [
          {
            "name": "u",
            "type": "System.Int32",
            "summary": "Index of control-point along surface U direction."
          },
          {
            "name": "v",
            "type": "System.Int32",
            "summary": "Index of control-point along surface V direction."
          },
          {
            "name": "uDir",
            "type": "Vector3d",
            "summary": "The U direction."
          },
          {
            "name": "vDir",
            "type": "Vector3d",
            "summary": "The V direction."
          },
          {
            "name": "nDir",
            "type": "Vector3d",
            "summary": "The N direction."
          }
        ],
        "returns": "True if successful, False otherwise."
      },
      {
        "signature": "System.Boolean ValidateSpacing(System.Double closeTolerance, System.Double stackTolerance, out IndexPair[] closeIndices, out IndexPair[] stackedIndices)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Simple check of distance between adjacent control points",
        "since": "6.0"
      }
    ]
  },
  {
    "namespace": "Rhino.Geometry.Collections",
    "name": "SubDEdgeList",
    "dataType": "class",
    "summary": "All edges in a SubD",
    "interfaces": ["IEnumerable<SubDEdge>"],
    "properties": [
      {
        "signature": "int Count",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the number of SubD edges.",
        "since": "7.0",
        "property": ["get"]
      }
    ],
    "methods": [
      {
        "signature": "SubDEdge Add(SubDEdgeTag tag, SubDVertex v0, SubDVertex v1)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Add a new edge to the list.",
        "since": "7.0",
        "parameters": [
          {
            "name": "tag",
            "type": "SubDEdgeTag",
            "summary": "The type of edge tag, such as smooth or corner."
          },
          {
            "name": "v0",
            "type": "SubDVertex",
            "summary": "First vertex."
          },
          {
            "name": "v1",
            "type": "SubDVertex",
            "summary": "Second vertex."
          }
        ]
      },
      {
        "signature": "SubDEdge Find(System.Int32 id)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Find an edge in this SubD with a given id",
        "since": "7.0"
      },
      {
        "signature": "SubDEdge Find(System.UInt32 id)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Find an edge in this SubD with a given id",
        "since": "7.0"
      },
      {
        "signature": "IEnumerator<SubDEdge> GetEnumerator()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Implementation of IEnumerable",
        "since": "7.0"
      },
      {
        "signature": "System.Void SetEdgeTags(IEnumerable<int> edgeIndices, SubDEdgeTag tag)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Set edge tags for a list of edges. Useful for adding creases to SubDs",
        "since": "7.7",
        "parameters": [
          {
            "name": "edgeIndices",
            "type": "IEnumerable<int>",
            "summary": "list of indices for the edges to set tags on"
          },
          {
            "name": "tag",
            "type": "SubDEdgeTag",
            "summary": "The type of edge tag"
          }
        ]
      },
      {
        "signature": "System.Void SetEdgeTags(IEnumerable<SubDEdge> edges, SubDEdgeTag tag)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Set edge tags for a list of edges. Useful for adding creases to SubDs",
        "since": "7.7",
        "parameters": [
          {
            "name": "edges",
            "type": "IEnumerable<SubDEdge>",
            "summary": "list of edges to set a specific tag on"
          },
          {
            "name": "tag",
            "type": "SubDEdgeTag",
            "summary": "The type of edge tag"
          }
        ]
      }
    ]
  },
  {
    "namespace": "Rhino.Geometry.Collections",
    "name": "SubDFaceList",
    "dataType": "class",
    "summary": "All faces in a SubD",
    "interfaces": ["IEnumerable<SubDFace>"],
    "properties": [
      {
        "signature": "int Count",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the number of SubD faces.",
        "since": "7.0",
        "property": ["get"]
      },
      {
        "signature": "bool HasPerFaceColors",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "True if one or more faces on the active level have per face color overrides.",
        "since": "8.18",
    "remarks": "Per face colors are a mutable property on <b>SubDFace</b> and are set with <b>SubDFace.PerFaceColor</b> .",
        "property": ["get"]
      }
    ],
    "methods": [
      {
        "signature": "System.UInt32 ClearPerFaceColors()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Removes all per face color overrides on the active level.",
        "since": "8.18",
    "remarks": "Per face colors are a mutable property on <b>SubDFace</b> and are set with <b>SubDFace.PerFaceColor</b> .",
        "returns": "Number of changed faces."
      },
      {
        "signature": "SubDFace Find(System.Int32 id)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Find a face in this SubD with a given id",
        "since": "7.0"
      },
      {
        "signature": "SubDFace Find(System.UInt32 id)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Find a face in this SubD with a given id",
        "since": "7.0"
      },
      {
        "signature": "IEnumerator<SubDFace> GetEnumerator()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Implementation of IEnumerable",
        "since": "7.0"
      }
    ]
  },
  {
    "namespace": "Rhino.Geometry.Collections",
    "name": "SubDVertexList",
    "dataType": "class",
    "summary": "Provides access to all the vertices and vertex-related functionality of a SubD",
    "properties": [
      {
        "signature": "int Count",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the number of SubD vertices.",
        "since": "7.0",
        "property": ["get"]
      },
      {
        "signature": "SubDVertex First",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "First vertex in this linked list of vertices",
        "since": "7.0",
        "property": ["get"]
      }
    ],
    "methods": [
      {
        "signature": "SubDVertex Add(SubDVertexTag tag, Point3d vertex)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Add a new vertex to the end of the Vertex list.",
        "since": "7.0",
        "parameters": [
          {
            "name": "tag",
            "type": "SubDVertexTag",
            "summary": "The type of vertex tag, such as smooth or corner."
          },
          {
            "name": "vertex",
            "type": "Point3d",
            "summary": "Location of new vertex."
          }
        ],
        "returns": "The newly added vertex."
      },
      {
        "signature": "SubDVertex Find(System.Int32 id)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Find a vertex in this SubD with a given id",
        "since": "7.0"
      },
      {
        "signature": "SubDVertex Find(System.UInt32 id)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Find a vertex in this SubD with a given id",
        "since": "7.0"
      },
      {
        "signature": "System.Void SetVertexTags(IEnumerable<int> vertexIndices, SubDVertexTag tag)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Set vertex tags for a list of vertices. Useful for adding creases to SubDs",
        "parameters": [
          {
            "name": "vertexIndices",
            "type": "IEnumerable<int>",
            "summary": "list of indices for the vertices to set tags on"
          },
          {
            "name": "tag",
            "type": "SubDVertexTag",
            "summary": "The type of vertex tag"
          }
        ]
      },
      {
        "signature": "System.Void SetVertexTags(IEnumerable<SubDVertex> vertices, SubDVertexTag tag)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Set vertex tags for a list of vertices. Useful for adding creases to SubDs",
        "parameters": [
          {
            "name": "vertices",
            "type": "IEnumerable<SubDVertex>",
            "summary": "list of vertices to set a specific tag on"
          },
          {
            "name": "tag",
            "type": "SubDVertexTag",
            "summary": "The type of vertex tag"
          }
        ]
      }
    ]
  },
  {
    "namespace": "Rhino.Geometry",
    "name": "ComponentIndex",
    "dataType": "struct",
    "summary": "Represents an index of an element contained in another object.",
    "constructors": [
      {
        "signature": "ComponentIndex(ComponentIndexType type, int index)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Construct component index with a specific type/index combination",
        "since": "5.0"
      }
    ],
    "properties": [
      {
        "signature": "ComponentIndex Unset",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "The unset value of component index.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "ComponentIndexType ComponentIndexType",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "The interpretation of Index depends on the Type value. Type             m_index interpretation (0 based indices) no_type            used when context makes it clear what array is being index brep_vertex        Brep.m_V[] array index brep_edge          Brep.m_E[] array index brep_face          Brep.m_F[] array index brep_trim          Brep.m_T[] array index brep_loop          Brep.m_L[] array index mesh_vertex        Mesh.m_V[] array index meshtop_vertex     MeshTopology.m_topv[] array index meshtop_edge       MeshTopology.m_tope[] array index mesh_face          Mesh.m_F[] array index idef_part          InstanceDefinition.m_object_uuid[] array index polycurve_segment  PolyCurve::m_segment[] array index dim_linear_point   LinearDimension2::POINT_INDEX dim_radial_point   RadialDimension2::POINT_INDEX dim_angular_point  AngularDimension2::POINT_INDEX dim_ordinate_point OrdinateDimension2::POINT_INDEX dim_text_point     TextEntity2 origin point.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "int Index",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "The interpretation of m_index depends on the m_type value. m_type             m_index interpretation (0 based indices) no_type            used when context makes it clear what array is being index brep_vertex        Brep.m_V[] array index brep_edge          Brep.m_E[] array index brep_face          Brep.m_F[] array index brep_trim          Brep.m_T[] array index brep_loop          Brep.m_L[] array index mesh_vertex        Mesh.m_V[] array index meshtop_vertex     MeshTopology.m_topv[] array index meshtop_edge       MeshTopology.m_tope[] array index mesh_face          Mesh.m_F[] array index idef_part          InstanceDefinition.m_object_uuid[] array index polycurve_segment  PolyCurve::m_segment[] array index dim_linear_point   LinearDimension2::POINT_INDEX dim_radial_point   RadialDimension2::POINT_INDEX dim_angular_point  AngularDimension2::POINT_INDEX dim_ordinate_point OrdinateDimension2::POINT_INDEX dim_text_point     TextEntity2 origin point.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "bool IsSet",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "True if <b>ComponentIndexType</b> is set to a value between  <b>ComponentIndexType.BrepVertex</b> and <b>ComponentIndexType.DimLeaderPoint</b> .",
        "since": "8.26",
        "property": ["get"]
      }
    ],
    "methods": [
      {
        "signature": "System.Int32 CompareTo(ComponentIndex other)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Compares this <b>ComponentIndex</b> with another <b>ComponentIndex</b> .",
        "since": "8.0",
        "parameters": [
          {
            "name": "other",
            "type": "ComponentIndex",
            "summary": "The other <b>ComponentIndex</b> to use in comparison"
          }
        ],
        "returns": "0: if this is identical to other  \n-1: if this.ComponentIndexType < other.ComponentIndexType  \n-1: if this.ComponentIndexType == other.ComponentIndexType and this.Index < other.Index  \n+1: otherwise."
      },
      {
        "signature": "System.Boolean Equals(ComponentIndex other)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Determines whether the specified <b>ComponentIndex</b> is equal to the current <b>ComponentIndex</b> , comparing by value.",
        "since": "8.0",
        "parameters": [
          {
            "name": "other",
            "type": "ComponentIndex",
            "summary": "The other <b>ComponentIndex</b> to compare with."
          }
        ],
        "returns": "True if other has the same ComponentIndexType and Index as this; otherwise, false."
      },
      {
        "signature": "System.Boolean Equals(System.Object obj)",
        "modifiers": ["public", "override"],
        "protected": false,
        "virtual": false,
        "summary": "Determines whether the specified <b>object</b> is equal to the current <b>ComponentIndex</b> , comparing by value.",
        "since": "8.0",
        "parameters": [
          {
            "name": "obj",
            "type": "System.Object",
            "summary": "The other object to compare with."
          }
        ],
        "returns": "True if obj is a <b>ComponentIndex</b> and ComponentIndexType and Index is the same; False otherwise."
      },
      {
        "signature": "System.Int32 GetHashCode()",
        "modifiers": ["public", "override"],
        "protected": false,
        "virtual": false,
        "summary": "Computes the hash code for this <b>ComponentIndex</b> object.",
        "since": "8.0",
        "returns": "A hash value that might be equal for two different <b>ComponentIndex</b> values."
      },
      {
        "signature": "System.Boolean IsUnset()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Return True is this component index is the same as the Unset component index",
        "since": "7.0"
      }
    ],
    "operators": [
      {
        "signature": "bool operator!=(ComponentIndex a, ComponentIndex b)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Determines whether two ComponentIndexes have different values.",
        "since": "8.0",
        "parameters": [
          {
            "name": "a",
            "type": "ComponentIndex",
            "summary": "The first <b>ComponentIndex</b>"
          },
          {
            "name": "b",
            "type": "ComponentIndex",
            "summary": "The second <b>ComponentIndex</b>"
          }
        ]
      },
      {
        "signature": "bool operator<(ComponentIndex a, ComponentIndex b)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Determines whether the first <b>ComponentIndex</b> comes before the second.",
        "since": "8.0",
        "parameters": [
          {
            "name": "a",
            "type": "ComponentIndex",
            "summary": "The first <b>ComponentIndex</b>"
          },
          {
            "name": "b",
            "type": "ComponentIndex",
            "summary": "The second <b>ComponentIndex</b>"
          }
        ]
      },
      {
        "signature": "bool operator<=(ComponentIndex a, ComponentIndex b)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Determines whether the first <b>ComponentIndex</b> comes before the second, or it is equal to it.",
        "since": "8.0",
        "parameters": [
          {
            "name": "a",
            "type": "ComponentIndex",
            "summary": "The first <b>ComponentIndex</b>"
          },
          {
            "name": "b",
            "type": "ComponentIndex",
            "summary": "The second <b>ComponentIndex</b>"
          }
        ]
      },
      {
        "signature": "bool operator==(ComponentIndex a, ComponentIndex b)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Determines whether two ComponentIndexes have equal values.",
        "since": "8.0",
        "parameters": [
          {
            "name": "a",
            "type": "ComponentIndex",
            "summary": "The first <b>ComponentIndex</b>"
          },
          {
            "name": "b",
            "type": "ComponentIndex",
            "summary": "The second <b>ComponentIndex</b>"
          }
        ]
      },
      {
        "signature": "bool operator>(ComponentIndex a, ComponentIndex b)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Determines whether the first <b>ComponentIndex</b> comes after the second.",
        "since": "8.0",
        "parameters": [
          {
            "name": "a",
            "type": "ComponentIndex",
            "summary": "The first <b>ComponentIndex</b>"
          },
          {
            "name": "b",
            "type": "ComponentIndex",
            "summary": "The second <b>ComponentIndex</b>"
          }
        ]
      },
      {
        "signature": "bool operator>=(ComponentIndex a, ComponentIndex b)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Determines whether the first <b>ComponentIndex</b> comes after the second, or it is equal to it.",
        "since": "8.0",
        "parameters": [
          {
            "name": "a",
            "type": "ComponentIndex",
            "summary": "The first <b>ComponentIndex</b>"
          },
          {
            "name": "b",
            "type": "ComponentIndex",
            "summary": "The second <b>ComponentIndex</b>"
          }
        ]
      }
    ]

  },
  {
    "namespace": "Rhino.Geometry",
    "name": "ComponentIndexType",
    "dataType": "enum",
    "summary": "Defines enumerated values to represent component index types.",
    "since": "5.0",
    "values": [
      {
        "signature": "InvalidType = 0",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Not used. This is the default value of the enumeration type."
      },
      {
        "signature": "BrepVertex = 1",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Targets a brep vertex index."
      },
      {
        "signature": "BrepEdge = 2",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Targets a brep edge index."
      },
      {
        "signature": "BrepFace = 3",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Targets a brep face index."
      },
      {
        "signature": "BrepTrim = 4",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Targets a brep trim index."
      },
      {
        "signature": "BrepLoop = 5",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Targets a brep loop index."
      },
      {
        "signature": "MeshVertex = 11",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Targets a mesh vertex index."
      },
      {
        "signature": "MeshTopologyVertex = 12",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Targets a mesh topology vertex index."
      },
      {
        "signature": "MeshTopologyEdge = 13",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Targets a mesh topology edge index."
      },
      {
        "signature": "MeshFace = 14",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Targets a mesh face index."
      },
      {
        "signature": "MeshNgon = 15",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Targets a mesh n-gon index."
      },
      {
        "signature": "InstanceDefinitionPart = 21",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Targets an instance definition part index."
      },
      {
        "signature": "PolycurveSegment = 31",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Targets a polycurve segment index."
      },
      {
        "signature": "PointCloudPoint = 41",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Targets a point cloud point index."
      },
      {
        "signature": "GroupMember = 51",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Targets a group member index."
      },
      {
        "signature": "ExtrusionBottomProfile = 61",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "3d bottom profile curves. Index identifies profile component"
      },
      {
        "signature": "ExtrusionTopProfile = 62",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "3d top profile curves. Index identifies profile component"
      },
      {
        "signature": "ExtrusionWallEdge = 63",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "3d wall edge curve. Index/2: identifies profile component Index%2: 0=start, 1=end"
      },
      {
        "signature": "ExtrusionWallSurface = 64",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Side wall surfaces. Index identifies profile component"
      },
      {
        "signature": "ExtrusionCapSurface = 65",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Bottom and top cap surfaces. Index 0=bottom, 1=top"
      },
      {
        "signature": "ExtrusionPath = 66",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Extrusion path (axis line). Index -1=entire path, 0=start point, 1=endpoint"
      },
      {
        "signature": "SubdVertex = 71",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Targets a SubD vertex pointer Id. Ids are not guaranteed to be sequential."
      },
      {
        "signature": "SubdEdge = 72",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Targets a SubD edge pointer Id. Ids are not guaranteed to be sequential."
      },
      {
        "signature": "SubdFace = 73",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Targets a SubD face pointer Id. Ids are not guaranteed to be sequential."
      },
      {
        "signature": "HatchLoop = 81",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Targets a hatch loop."
      },
      {
        "signature": "DimLinearPoint = 100",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Targets a linear dimension point index."
      },
      {
        "signature": "DimRadialPoint = 101",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Targets a radial dimension point index."
      },
      {
        "signature": "DimAngularPoint = 102",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Targets an angular dimension point index."
      },
      {
        "signature": "DimOrdinatePoint = 103",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Targets an ordinate dimension point index."
      },
      {
        "signature": "DimTextPoint = 104",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Targets a text point index."
      },
      {
        "signature": "DimCentermarkPoint = 105",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Targets a centermark point"
      },
      {
        "signature": "DimLeaderPoint = 106",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Targets a leader point"
      },
      {
        "signature": "NoType = 0x0FFFFFFF",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Targets no specific type."
      }
    ]

  },
  {
    "namespace": "Rhino.Geometry",
    "name": "ComponentStatus",
    "dataType": "struct",
    "summary": "Provides information about selection, highlighting, visibility, editability and integrity states of a component.  \nThis structure is immutable.",
    "properties": [
      {
        "signature": "ComponentStatus AllSet",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "All flags are checked.",
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "ComponentStatus Clear",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "This is the default value and equal to undefined.",
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "ComponentStatus Damaged",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "The damaged flag is checked.",
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "ComponentStatus Hidden",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "The hidden flag is checked.",
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "ComponentStatus Highlighted",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "The highlight selection flag is checked.",
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "ComponentStatus Locked",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "The locked flag is checked.",
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "ComponentStatus Selected",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "The selection flag is checked.",
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "ComponentStatus SelectedPersistent",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "The persistent selection flag is checked.",
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "bool IsClear",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "True if every setting is 0 or false.",
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "bool IsDamaged",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns False if component is not damaged. True otherwise.",
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "bool IsHidden",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns True if hidden. False otherwise.",
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "bool IsHighlighted",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns True if highlighted. False otherwise.",
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "bool IsLocked",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns True if locked. False otherwise.",
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "bool IsSelected",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns True if selected or selected persistent. False otherwise.",
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "bool IsSelectedPersistent",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns True if selected persistent. False otherwise.",
        "since": "6.0",
        "property": ["get"]
      }
    ],
    "methods": [
      {
        "signature": "System.Boolean Equals(ComponentStatus other)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Determines if another ComponentStatus and this are equal.",
        "since": "6.0",
        "parameters": [
          {
            "name": "other",
            "type": "ComponentStatus",
            "summary": "A ComponentStatus."
          }
        ],
        "returns": "True if equal in value. False otherwise"
      },
      {
        "signature": "System.Boolean Equals(System.Object obj)",
        "modifiers": ["public", "override"],
        "protected": false,
        "virtual": false,
        "summary": "Determines if an object and this are equal.",
        "parameters": [
          {
            "name": "obj",
            "type": "System.Object",
            "summary": "An object."
          }
        ],
        "returns": "True if equal in value. False otherwise"
      },
      {
        "signature": "System.Int32 GetHashCode()",
        "modifiers": ["public", "override"],
        "protected": false,
        "virtual": false,
        "summary": "Serves as a special hash function. The inner value is used for the purpose.",
        "returns": "An integer deriving from a bit mask."
      },
      {
        "signature": "System.Boolean HasAllEqualStates(ComponentStatus statesFilter, ComponentStatus comparand)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "For the purposes of this test, Selected and SelectedPersistent are considered equal.",
        "since": "6.0",
        "parameters": [
          {
            "name": "statesFilter",
            "type": "ComponentStatus",
            "summary": "If no states are specified, then False is returned."
          },
          {
            "name": "comparand",
            "type": "ComponentStatus",
            "summary": "If a state is set in states_filter, the corresponding state in \"this\" and comparand will be tested."
          }
        ],
        "returns": "True if at all tested states in \"this\" and comparand are identical."
      },
      {
        "signature": "System.Boolean HasNoEqualStates(ComponentStatus statesFilter, ComponentStatus comparand)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "For the purposes of this test, Selected and SelectedPersistent are considered equal.",
        "since": "6.0",
        "parameters": [
          {
            "name": "statesFilter",
            "type": "ComponentStatus",
            "summary": "If no states are specified, then False is returned."
          },
          {
            "name": "comparand",
            "type": "ComponentStatus",
            "summary": "If a state is set in states_filter, the corresponding state in \"this\" and comparand will be tested."
          }
        ],
        "returns": "True if at all tested states in \"this\" and comparand are identical."
      },
      {
        "signature": "System.Boolean HasSomeEqualStates(ComponentStatus statesFilter, ComponentStatus comparand)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "For the purposes of this test, Selected and SelectedPersistent are considered equal.",
        "since": "6.0",
        "parameters": [
          {
            "name": "statesFilter",
            "type": "ComponentStatus",
            "summary": "If no states are specified, then False is returned."
          },
          {
            "name": "comparand",
            "type": "ComponentStatus",
            "summary": "If a state is set in states_filter, the corresponding state in \"this\" and comparand will be tested."
          }
        ],
        "returns": "True if at least one tested state in \"this\" and comparand are identical."
      },
      {
        "signature": "System.String ToString()",
        "modifiers": ["public", "override"],
        "protected": false,
        "virtual": false,
        "summary": "Provides a string representation of this ComponentStatus.",
        "returns": "The representation in English."
      },
      {
        "signature": "ComponentStatus WithStates(ComponentStatus additionalStatus)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Activates any information flag described in any of the two input component statuses and returns a new ComponentStatus with those flags checked.",
        "since": "6.0",
        "parameters": [
          {
            "name": "additionalStatus",
            "type": "ComponentStatus",
            "summary": "To be used for adding status values."
          }
        ]
      }
    ],
    "operators": [
      {
        "signature": "bool operator !=(ComponentStatus a, ComponentStatus b)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Determines if two ComponentStatus objects differ.",
        "since": "6.0",
        "parameters": [
          {
            "name": "a",
            "type": "ComponentStatus",
            "summary": "The first ComponentStatus."
          },
          {
            "name": "b",
            "type": "ComponentStatus",
            "summary": "The second ComponentStatus."
          }
        ]
      },
      {
        "signature": "bool operator ==(ComponentStatus a, ComponentStatus b)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Determines if two ComponentStatus objects are equal.",
        "since": "6.0",
        "parameters": [
          {
            "name": "a",
            "type": "ComponentStatus",
            "summary": "The first ComponentStatus."
          },
          {
            "name": "b",
            "type": "ComponentStatus",
            "summary": "The second ComponentStatus."
          }
        ]
      },
      {
        "signature": "ComponentStatus operator +(ComponentStatus a, ComponentStatus  b)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Sets flags from both component states and returns a new ComponentStatus.",
        "parameters": [
          {
            "name": "a",
            "type": "ComponentStatus",
            "summary": "The first ComponentStatus."
          },
          {
            "name": "b",
            "type": "ComponentStatus",
            "summary": "The second ComponentStatus."
          }
        ]
      }
    ]

  },
  {
    "namespace": "Rhino.Geometry",
    "name": "Concavity",
    "dataType": "enum",
    "summary": "Enumerates the possible types of edge concavity types.",
    "since": "6.2",
    "values": [
      {
        "signature": "None = -1",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Concavity is not relevant, for example naked and non-manifold edges cannot have a concavity measure."
      },
      {
        "signature": "Tangent = 0",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Faces on either side of the edge are tangent within tolerance."
      },
      {
        "signature": "Convex = 1",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Faces on either side of the edge are convex."
      },
      {
        "signature": "Concave = 2",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Faces on either side of the edge are concave."
      }
    ]

  },
  {
    "namespace": "Rhino.Geometry",
    "name": "Cone",
    "dataType": "struct",
    "summary": "Represents the center plane, radius and height values in a right circular cone.",
    "constructors": [
      {
        "signature": "Cone(Plane plane, double height, double radius)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Initializes a new cone with a specified base plane, height and radius.",
        "since": "5.0",
        "parameters": [
          {
            "name": "plane",
            "type": "Plane",
            "summary": "Base plane of cone.  The apex of the cone is at the plane's origin."
          },
          {
            "name": "height",
            "type": "System.Double",
            "summary": "Height of cone."
          },
          {
            "name": "radius",
            "type": "System.Double",
            "summary": "Radius of cone."
          }
        ]
      }
    ],
    "properties": [
      {
        "signature": "Cone Unset",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Gets an invalid Cone.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "Point3d ApexPoint",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Point at tip of the cone.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "Vector3d Axis",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Unit vector axis of cone.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "Point3d BasePoint",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Center of base circle.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "double Height",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the height of the circular right cone.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool IsValid",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "True if plane is valid, height is not zero and radius is not zero.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "Plane Plane",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the base plane of the cone.  The apex of the cone is at the plane's origin.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "double Radius",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the radius of the cone.",
        "since": "5.0",
        "property": ["get", "set"]
      }
    ],
    "methods": [
      {
        "signature": "System.Double AngleInDegrees()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Computes the angle (in degrees) between the axis and the side of the cone. The angle and the height have the same sign.",
        "since": "5.0",
        "returns": "An angle in degrees."
      },
      {
        "signature": "System.Double AngleInRadians()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Computes the angle (in radians) between the axis and the side of the cone. The angle and the height have the same sign.",
        "since": "5.0",
        "returns": "Math.Atan(Radius / Height) if the height is not 0; 0 if the radius is 0; Math.PI otherwise."
      },
      {
        "signature": "System.Boolean EpsilonEquals(Cone other, System.Double epsilon)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Check that all values in other are within epsilon of the values in this",
        "since": "5.4"
      },
      {
        "signature": "Brep ToBrep(System.Boolean capBottom)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets a Brep representation of the cone with a single face for the cone, an edge along the cone seam, and vertices at the base and apex ends of this seam edge. The optional cap is a single face with one circular edge starting and ending at the base vertex.",
        "since": "5.0",
        "parameters": [
          {
            "name": "capBottom",
            "type": "System.Boolean",
            "summary": "True if the bottom should be filled with a surface. False otherwise."
          }
        ],
        "returns": "A brep (polysurface) representation of this cone values."
      },
      {
        "signature": "NurbsSurface ToNurbsSurface()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Constructs a Nurbs surface representation of this Cone. This is synonymous with calling NurbsSurface.CreateFromCone().",
        "since": "5.0",
        "returns": "A Nurbs surface representation of the cone or null."
      },
      {
        "signature": "RevSurface ToRevSurface()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Constructs a RevSurface representation of this Cone. This is synonymous with calling RevSurface.CreateFromCone().",
        "since": "5.0",
        "returns": "A RevSurface representation of the cone or null."
      }
    ]
  },
  {
    "namespace": "Rhino.Geometry",
    "name": "ConicSectionType",
    "dataType": "enum",
    "summary": "Defines enumerated values for types of conic sections.",
    "since": "6.0",
    "values": [
      {
        "signature": "Unknown = 0",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "The curve shape is unknown."
      },
      {
        "signature": "Circle = 1",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "The curve has the shape of a circle."
      },
      {
        "signature": "Ellipse = 2",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "The curve has the shape of an ellipse."
      },
      {
        "signature": "Hyperbola = 3",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "The curve has the shape of a hyperbola."
      },
      {
        "signature": "Parabola = 4",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "The curve has the shape of a parabola."
      }
    ]

  },
  {
    "namespace": "Rhino.Geometry",
    "name": "Continuity",
    "dataType": "enum",
    "summary": "Provides enumerated values for continuity along geometry, such as continuous first derivative or continuous unit tangent and curvature.",
    "since": "5.0",
    "values": [
      {
        "signature": "None = 0",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "There is no continuity."
      },
      {
        "signature": "C0_continuous = 1",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Continuous Function : Test for parametric continuity. In particular, all types of curves are considered infinitely continuous at the start/end of the evaluation domain."
      },
      {
        "signature": "C1_continuous = 2",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Continuous first derivative : Test for parametric continuity. In particular, all types of curves are considered infinitely continuous at the start/end of the evaluation domain."
      },
      {
        "signature": "C2_continuous = 3",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Continuous first derivative and second derivative : Test for parametric continuity. In particular, all types of curves are considered infinitely continuous at the start/end of the evaluation domain."
      },
      {
        "signature": "G1_continuous = 4",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Continuous unit tangent : Test for parametric continuity. In particular, all types of curves are considered infinitely continuous at the start/end of the evaluation domain."
      },
      {
        "signature": "G2_continuous = 5",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Continuous unit tangent and curvature : Test for parametric continuity. In particular, all types of curves are considered infinitely continuous at the start/end of the evaluation domain."
      },
      {
        "signature": "C0_locus_continuous = 6",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Locus continuous function : Continuity tests using the following enum values are identical to tests using the preceding enum values on the INTERIOR of a curve's domain. At the END of a curve a \"locus\" test is performed in place of a parametric test. In particular, at the END of a domain, all open curves are locus discontinuous. At the END of a domain, all closed curves are at least C0_locus_continuous. By convention all Curves are considered locus continuous at the START of the evaluation domain. This convention is not strictly correct, but it was adopted to make iterative kink finding tools easier to use and so that locus discontinuities are reported once at the end parameter of a curve rather than twice."
      },
      {
        "signature": "C1_locus_continuous = 7",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Locus continuous first derivative : Continuity tests using the following enum values are identical to tests using the preceding enum values on the INTERIOR of a curve's domain. At the END of a curve a \"locus\" test is performed in place of a parametric test. In particular, at the END of a domain, all open curves are locus discontinuous. At the END of a domain, all closed curves are at least C0_locus_continuous. By convention all Curves are considered locus continuous at the START of the evaluation domain. This convention is not strictly correct, but it was adopted to make iterative kink finding tools easier to use and so that locus discontinuities are reported once at the end parameter of a curve rather than twice."
      },
      {
        "signature": "C2_locus_continuous = 8",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Locus continuous first and second derivative : Continuity tests using the following enum values are identical to tests using the preceding enum values on the INTERIOR of a curve's domain. At the END of a curve a \"locus\" test is performed in place of a parametric test. In particular, at the END of a domain, all open curves are locus discontinuous. At the END of a domain, all closed curves are at least C0_locus_continuous. By convention all Curves are considered locus continuous at the START of the evaluation domain. This convention is not strictly correct, but it was adopted to make iterative kink finding tools easier to use and so that locus discontinuities are reported once at the end parameter of a curve rather than twice."
      },
      {
        "signature": "G1_locus_continuous = 9",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Locus continuous unit tangent : Continuity tests using the following enum values are identical to tests using the preceding enum values on the INTERIOR of a curve's domain. At the END of a curve a \"locus\" test is performed in place of a parametric test. In particular, at the END of a domain, all open curves are locus discontinuous. At the END of a domain, all closed curves are at least C0_locus_continuous. By convention all Curves are considered locus continuous at the START of the evaluation domain. This convention is not strictly correct, but it was adopted to make iterative kink finding tools easier to use and so that locus discontinuities are reported once at the end parameter of a curve rather than twice."
      },
      {
        "signature": "G2_locus_continuous = 10",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Locus continuous unit tangent and curvature : Continuity tests using the following enum values are identical to tests using the preceding enum values on the INTERIOR of a curve's domain. At the END of a curve a \"locus\" test is performed in place of a parametric test. In particular, at the END of a domain, all open curves are locus discontinuous. At the END of a domain, all closed curves are at least C0_locus_continuous. By convention all Curves are considered locus continuous at the START of the evaluation domain. This convention is not strictly correct, but it was adopted to make iterative kink finding tools easier to use and so that locus discontinuities are reported once at the end parameter of a curve rather than twice."
      },
      {
        "signature": "Cinfinity_continuous = 11",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Analytic discontinuity. Cinfinity_continuous is a euphemism for \"at a knot\"."
      },
      {
        "signature": "Gsmooth_continuous = 12",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Aesthetic discontinuity"
      }
    ]

  },
  {
    "namespace": "Rhino.Geometry",
    "name": "ControlPoint",
    "dataType": "struct",
    "summary": "Represents control point geometry with three-dimensional position and weight.",
    "constructors": [
      {
        "signature": "ControlPoint(double x, double y, double z, double weight)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Constructs a new homogeneous control point, where the 4-D representation is (x, y, z, w). The world 3-D, or Euclidean, representation is (x/w, y/w, z/w).",
        "since": "5.0",
    "remarks": "For expert use only. If you do not understand homogeneous coordinates, then use an override that accepts world 3-D, or Euclidean, coordinates as input.",
        "parameters": [
          {
            "name": "x",
            "type": "System.Double",
            "summary": "X coordinate of the control point."
          },
          {
            "name": "y",
            "type": "System.Double",
            "summary": "Y coordinate of the control point."
          },
          {
            "name": "z",
            "type": "System.Double",
            "summary": "Z coordinate of the control point."
          },
          {
            "name": "weight",
            "type": "System.Double",
            "summary": "Weight factor of the control point. You should not use weights less than or equal to zero."
          }
        ]
      },
      {
        "signature": "ControlPoint(double x, double y, double z)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Constructs a new world 3-D, or Euclidean, control point. The 4-D representation is (x, y, z, 1.0).",
        "since": "5.0",
        "parameters": [
          {
            "name": "x",
            "type": "System.Double",
            "summary": "X coordinate of the control point."
          },
          {
            "name": "y",
            "type": "System.Double",
            "summary": "Y coordinate of the control point."
          },
          {
            "name": "z",
            "type": "System.Double",
            "summary": "Z coordinate of the control point."
          }
        ]
      },
      {
        "signature": "ControlPoint(Point3d euclideanPt, double weight)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Constructs a control point from a world 3-D, or Euclidean, location and a weight. The world 3-D, or Euclidean, representation is (x/w, y/w, z/w).",
        "since": "5.0",
        "parameters": [
          {
            "name": "euclideanPt",
            "type": "Point3d",
            "summary": "Coordinates of the control point."
          },
          {
            "name": "weight",
            "type": "System.Double",
            "summary": "Weight factor of the control point. You should not use weights less than or equal to zero."
          }
        ]
      },
      {
        "signature": "ControlPoint(Point3d pt)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Constructs a new world 3-D, or Euclidean, control point. The 4-D representation of this is (x, y, z, 1.0).",
        "since": "5.0",
        "parameters": [
          {
            "name": "pt",
            "type": "Point3d",
            "summary": "Coordinates of the control point."
          }
        ]
      },
      {
        "signature": "ControlPoint(Point4d pt)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Constructs a new homogeneous control point, where the 4-D representation is (x, y, z, w). The world 3-D, or Euclidean, representation is (x/w, y/w, z/w).",
        "since": "5.0",
    "remarks": "For expert use only. If you do not understand homogeneous coordinates, then use an override that accepts world 3-D, or Euclidean, coordinates as input.",
        "parameters": [
          {
            "name": "pt",
            "type": "Point4d",
            "summary": "Coordinates of the control point."
          }
        ]
      }
    ],
    "properties": [
      {
        "signature": "ControlPoint Unset",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the predefined, unset control point.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "Point3d Location",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets world 3-D, or Euclidean location of the control point.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "double Weight",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the weight of this control point.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "double X",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the X coordinate of the control point.",
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "double Y",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the Y coordinate of the control point.",
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "double Z",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the Z coordinate of the control point.",
        "since": "6.0",
        "property": ["get", "set"]
      }
    ],
    "methods": [
      {
        "signature": "System.Boolean EpsilonEquals(ControlPoint other, System.Double epsilon)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Check that all values in other are within epsilon of the values in this",
        "since": "5.4"
      },
      {
        "signature": "System.Boolean Equals(ControlPoint other)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Determines if two points exactly match.",
        "since": "6.0",
        "parameters": [
          {
            "name": "other",
            "type": "ControlPoint",
            "summary": "The other point."
          }
        ],
        "returns": "True if the other control point exactly matches this one."
      }
    ]
  },
  {
    "namespace": "Rhino.Geometry",
    "name": "CurvatureStyle",
    "dataType": "enum",
    "summary": "Curvature style",
    "since": "9.0",
    "values": [
      {
        "signature": "None = 0",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "None"
      },
      {
        "signature": "GaussianCurvature = 1",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Gaussian curvature"
      },
      {
        "signature": "MeanCurvature = 2",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Unsigned mean curvature"
      },
      {
        "signature": "MinimumCurvature = 3",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Minimum unsigned radius of curvature"
      },
      {
        "signature": "MaximumCurvature = 4",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Maximum unsigned radius of curvature"
      }
    ]

  },
  {
    "namespace": "Rhino.Geometry",
    "name": "Curve",
    "dataType": "class",
    "summary": "Represents a base class that is common to most RhinoCommon curve types.  \nA curve represents an entity that can be all visited by providing   a single parameter, usually called t.",
    "baseclass": "Rhino.Geometry.GeometryBase",
    "constructors": [
      {
        "signature": "Curve(SerializationInfo info, StreamingContext context)",
        "modifiers": ["protected"],
        "protected": true,
        "virtual": false,
        "summary": "Protected serialization constructor for internal use.",
        "parameters": [
          {
            "name": "info",
            "type": "System.Runtime.Serialization.SerializationInfo",
            "summary": "Serialization data."
          },
          {
            "name": "context",
            "type": "System.Runtime.Serialization.StreamingContext",
            "summary": "Serialization stream."
          }
        ]
      }
    ],
    "properties": [
      {
        "signature": "int Degree",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the maximum algebraic degree of any span or a good estimate if curve spans are not algebraic.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "int Dimension",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the dimension of the object.  \nThe dimension is typically three. For parameter space trimming     curves the dimension is two. In rare cases the dimension can     be one or greater than three.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "Interval Domain",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the domain of the curve.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool IsClosed",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets a value indicating whether or not this curve is a closed curve.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "bool IsPeriodic",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets a value indicating whether or not this curve is considered to be Periodic.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "bool IsSubDFriendly",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns True if the curve is a cubic, non-rational, uniform NURBS curve that is either periodic or has natural end conditions. Otherwise, False is returned.",
        "since": "7.0",
    "remarks": "A \"natural\" spline has zero 2nd derivatives (and hence zero curvature) at the start and end. A \"periodic\" spline has unclampled periodic knots and periodic control points.",
        "property": ["get"]
      },
      {
        "signature": "Point3d PointAtEnd",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Evaluates point at the end of the curve.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "Point3d PointAtMid",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Evaluates point at the middle, or mid, of the curve.",
        "since": "8.14",
        "property": ["get"]
      },
      {
        "signature": "Point3d PointAtStart",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Evaluates point at the start of the curve.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "int SpanCount",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the number of non-empty smooth (c-infinity) spans in the curve.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "Vector3d TangentAtEnd",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Evaluate unit tangent vector at the end of the curve.",
        "since": "5.0",
    "remarks": "No error handling.",
        "property": ["get"]
      },
      {
        "signature": "Vector3d TangentAtStart",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Evaluates the unit tangent vector at the start of the curve.",
        "since": "5.0",
    "remarks": "No error handling.",
        "property": ["get"]
      }
    ],
    "methods": [
      {
        "signature": "Curve CreateArcBlend(Point3d startPt, Vector3d startDir, Point3d endPt, Vector3d endDir, System.Double controlPointLengthRatio)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Creates a polycurve consisting of two tangent arc segments that connect two points and two directions.",
        "since": "6.1",
        "parameters": [
          {
            "name": "startPt",
            "type": "Point3d",
            "summary": "Start of the arc blend curve."
          },
          {
            "name": "startDir",
            "type": "Vector3d",
            "summary": "Start direction of the arc blend curve."
          },
          {
            "name": "endPt",
            "type": "Point3d",
            "summary": "End of the arc blend curve."
          },
          {
            "name": "endDir",
            "type": "Vector3d",
            "summary": "End direction of the arc blend curve."
          },
          {
            "name": "controlPointLengthRatio",
            "type": "System.Double",
            "summary": "The ratio of the control polygon lengths of the two arcs. Note, a value of 1.0 means the control polygon lengths for both arcs will be the same."
          }
        ],
        "returns": "The arc blend curve, or None on error."
      },
      {
        "signature": "Curve CreateArcCornerRectangle(Rectangle3d rectangle, System.Double radius)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Creates an arc-cornered (rounded) rectangular curve.",
        "since": "8.9",
        "parameters": [
          {
            "name": "rectangle",
            "type": "Rectangle3d",
            "summary": "The rectangle."
          },
          {
            "name": "radius",
            "type": "System.Double",
            "summary": "The arc radius at each corner."
          }
        ],
        "returns": "Aa arc-cornered rectangular curve if successful, None otherwise."
      },
      {
        "signature": "Curve CreateArcLineArcBlend(Point3d startPt, Vector3d startDir, Point3d endPt, Vector3d endDir, System.Double radius)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Creates an arc-line-arc blend curve between two curves. The output is generally a PolyCurve with three segments: arc, line, arc. In some cases, one or more of those segments will be absent because they would have 0 length. If there is only a single segment, the result will either be an ArcCurve or a LineCurve.",
        "since": "7.9",
    "remarks": "The first arc segment will start at startPt, with starting tangent startDir. The second arc segment will end at endPt with end tangent endDir. The line segment will start from the end of the first arc segment and end at start of the second arc segment, and it will be tangent to both arcs at those points.",
        "parameters": [
          {
            "name": "startPt",
            "type": "Point3d",
            "summary": "Start of the blend curve."
          },
          {
            "name": "startDir",
            "type": "Vector3d",
            "summary": "Start direction of the blend curve."
          },
          {
            "name": "endPt",
            "type": "Point3d",
            "summary": "End of the blend curve."
          },
          {
            "name": "endDir",
            "type": "Vector3d",
            "summary": "End direction of the arc blend curve."
          },
          {
            "name": "radius",
            "type": "System.Double",
            "summary": "The radius of the arc segments."
          }
        ],
        "returns": "The blend curve if successful, False otherwise."
      },
      {
        "signature": "Curve CreateBlendCurve(Curve curveA, Curve curveB, BlendContinuity continuity, System.Double bulgeA, System.Double bulgeB)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Create a Blend curve between two existing curves.",
        "since": "5.0",
    "remarks": "Note: This function only blends with G0, G1, or G2 continuity.",
        "parameters": [
          {
            "name": "curveA",
            "type": "Curve",
            "summary": "Curve to blend from (blending will occur at curve end point)."
          },
          {
            "name": "curveB",
            "type": "Curve",
            "summary": "Curve to blend to (blending will occur at curve start point)."
          },
          {
            "name": "continuity",
            "type": "BlendContinuity",
            "summary": "Continuity of blend, either position (G0), tangency (G1), or curvature (G2)."
          },
          {
            "name": "bulgeA",
            "type": "System.Double",
            "summary": "Bulge factor at curveA end of blend. Values near 1.0 work best."
          },
          {
            "name": "bulgeB",
            "type": "System.Double",
            "summary": "Bulge factor at curveB end of blend. Values near 1.0 work best."
          }
        ],
        "returns": "A curve representing the blend between A and B or None on failure."
      },
      {
        "signature": "Curve CreateBlendCurve(Curve curveA, Curve curveB, BlendContinuity continuity)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Create a Blend curve between two existing curves.",
        "since": "5.0",
    "remarks": "Note: This function only blends with G0, G1, or G2 continuity.",
        "parameters": [
          {
            "name": "curveA",
            "type": "Curve",
            "summary": "Curve to blend from (blending will occur at curve end point)."
          },
          {
            "name": "curveB",
            "type": "Curve",
            "summary": "Curve to blend to (blending will occur at curve start point)."
          },
          {
            "name": "continuity",
            "type": "BlendContinuity",
            "summary": "Continuity of blend, either position (G0), tangency (G1), or curvature (G2)."
          }
        ],
        "returns": "A curve representing the blend between A and B or None on failure."
      },
      {
        "signature": "Curve CreateBlendCurve(Curve curve0, System.Double t0, System.Boolean reverse0, BlendContinuity continuity0, Curve curve1, System.Double t1, System.Boolean reverse1, BlendContinuity continuity1)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Makes a curve blend between two curves at the parameters specified with the directions and continuities specified.",
        "since": "5.0",
        "parameters": [
          {
            "name": "curve0",
            "type": "Curve",
            "summary": "First curve to blend from."
          },
          {
            "name": "t0",
            "type": "System.Double",
            "summary": "Parameter on first curve for blend endpoint."
          },
          {
            "name": "reverse0",
            "type": "System.Boolean",
            "summary": "If false, the blend will go in the natural direction of the curve. If true, the blend will go in the opposite direction to the curve."
          },
          {
            "name": "continuity0",
            "type": "BlendContinuity",
            "summary": "Continuity for the blend at the start."
          },
          {
            "name": "curve1",
            "type": "Curve",
            "summary": "Second curve to blend from."
          },
          {
            "name": "t1",
            "type": "System.Double",
            "summary": "Parameter on second curve for blend endpoint."
          },
          {
            "name": "reverse1",
            "type": "System.Boolean",
            "summary": "If false, the blend will go in the natural direction of the curve. If true, the blend will go in the opposite direction to the curve."
          },
          {
            "name": "continuity1",
            "type": "BlendContinuity",
            "summary": "Continuity for the blend at the end."
          }
        ],
        "returns": "The blend curve on success, or None on failure."
      },
      {
        "signature": "Curve[] CreateBooleanDifference(Curve curveA, Curve curveB, System.Double tolerance)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Calculates the boolean difference between two closed, planar curves. Note, curves must be co-planar.",
        "since": "6.0",
        "parameters": [
          {
            "name": "curveA",
            "type": "Curve",
            "summary": "The first closed, planar curve."
          },
          {
            "name": "curveB",
            "type": "Curve",
            "summary": "The second closed, planar curve."
          },
          {
            "name": "tolerance",
            "type": "System.Double",
            "summary": ""
          }
        ],
        "returns": "Result curves on success, empty array if no difference could be calculated."
      },
      {
        "signature": "Curve[] CreateBooleanDifference(Curve curveA, Curve curveB)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Calculates the boolean difference between two closed, planar curves. Note, curves must be co-planar.",
        "since": "5.0",
        "deprecated": "6.0",
        "obsolete": "Use version that takes tolerance as input",
        "parameters": [
          {
            "name": "curveA",
            "type": "Curve",
            "summary": "The first closed, planar curve."
          },
          {
            "name": "curveB",
            "type": "Curve",
            "summary": "The second closed, planar curve."
          }
        ],
        "returns": "Result curves on success, empty array if no difference could be calculated."
      },
      {
        "signature": "Curve[] CreateBooleanDifference(Curve curveA, IEnumerable<Curve> subtractors, System.Double tolerance)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Calculates the boolean difference between a closed planar curve, and a list of closed planar curves. Note, curves must be co-planar.",
        "since": "6.0",
        "parameters": [
          {
            "name": "curveA",
            "type": "Curve",
            "summary": "The first closed, planar curve."
          },
          {
            "name": "subtractors",
            "type": "IEnumerable<Curve>",
            "summary": "curves to subtract from the first closed curve."
          },
          {
            "name": "tolerance",
            "type": "System.Double",
            "summary": ""
          }
        ],
        "returns": "Result curves on success, empty array if no difference could be calculated."
      },
      {
        "signature": "Curve[] CreateBooleanDifference(Curve curveA, IEnumerable<Curve> subtractors)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Calculates the boolean difference between a closed planar curve, and a list of closed planar curves. Note, curves must be co-planar.",
        "since": "5.0",
        "deprecated": "6.0",
        "obsolete": "Use version that takes tolerance as input",
        "parameters": [
          {
            "name": "curveA",
            "type": "Curve",
            "summary": "The first closed, planar curve."
          },
          {
            "name": "subtractors",
            "type": "IEnumerable<Curve>",
            "summary": "curves to subtract from the first closed curve."
          }
        ],
        "returns": "Result curves on success, empty array if no difference could be calculated."
      },
      {
        "signature": "Curve[] CreateBooleanIntersection(Curve curveA, Curve curveB, System.Double tolerance)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Calculates the boolean intersection of two closed, planar curves. Note, curves must be co-planar.",
        "since": "6.0",
        "parameters": [
          {
            "name": "curveA",
            "type": "Curve",
            "summary": "The first closed, planar curve."
          },
          {
            "name": "curveB",
            "type": "Curve",
            "summary": "The second closed, planar curve."
          },
          {
            "name": "tolerance",
            "type": "System.Double",
            "summary": ""
          }
        ],
        "returns": "Result curves on success, empty array if no intersection could be calculated."
      },
      {
        "signature": "Curve[] CreateBooleanIntersection(Curve curveA, Curve curveB)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Calculates the boolean intersection of two closed, planar curves. Note, curves must be co-planar.",
        "since": "5.0",
        "deprecated": "6.0",
        "obsolete": "Use version that takes tolerance as input",
        "parameters": [
          {
            "name": "curveA",
            "type": "Curve",
            "summary": "The first closed, planar curve."
          },
          {
            "name": "curveB",
            "type": "Curve",
            "summary": "The second closed, planar curve."
          }
        ],
        "returns": "Result curves on success, empty array if no intersection could be calculated."
      },
      {
        "signature": "CurveBooleanRegions CreateBooleanRegions(IEnumerable<Curve> curves, Plane plane, IEnumerable<Point3d> points, System.Boolean combineRegions, System.Double tolerance)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Curve Boolean method, which trims and splits curves based on their overlapping regions.",
        "since": "7.0",
        "parameters": [
          {
            "name": "curves",
            "type": "IEnumerable<Curve>",
            "summary": "The input curves."
          },
          {
            "name": "plane",
            "type": "Plane",
            "summary": "Regions will be found in the projection of the curves to this plane."
          },
          {
            "name": "points",
            "type": "IEnumerable<Point3d>",
            "summary": "These points will be projected to plane. All regions that contain at least one of these points will be found."
          },
          {
            "name": "combineRegions",
            "type": "System.Boolean",
            "summary": "If true, then adjacent regions will be combined."
          },
          {
            "name": "tolerance",
            "type": "System.Double",
            "summary": "Function tolerance. When in doubt, use the document's model absolute tolerance."
          }
        ],
        "returns": "The curve Boolean regions if successful, None of no successful."
      },
      {
        "signature": "CurveBooleanRegions CreateBooleanRegions(IEnumerable<Curve> curves, Plane plane, System.Boolean combineRegions, System.Double tolerance)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Calculates curve Boolean regions, which trims and splits curves based on their overlapping regions.",
        "since": "7.0",
        "parameters": [
          {
            "name": "curves",
            "type": "IEnumerable<Curve>",
            "summary": "The input curves."
          },
          {
            "name": "plane",
            "type": "Plane",
            "summary": "Regions will be found in the projection of the curves to this plane."
          },
          {
            "name": "combineRegions",
            "type": "System.Boolean",
            "summary": "If true, then adjacent regions will be combined."
          },
          {
            "name": "tolerance",
            "type": "System.Double",
            "summary": "Function tolerance. When in doubt, use the document's model absolute tolerance."
          }
        ],
        "returns": "The curve Boolean regions if successful, None of no successful."
      },
      {
        "signature": "Curve[] CreateBooleanUnion(IEnumerable<Curve> curves, System.Double tolerance, out System.Int32[] indexMap)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Calculates the boolean union of two or more closed, planar curves, and reports which input curve ended up in which output curve. Note, curves must be co-planar.",
        "parameters": [
          {
            "name": "curves",
            "type": "IEnumerable<Curve>",
            "summary": "The co-planar curves to union."
          },
          {
            "name": "tolerance",
            "type": "System.Double",
            "summary": "The 3d fitting and intersecting tolerance."
          },
          {
            "name": "indexMap",
            "type": "System.Int32[]",
            "summary": "An array with one entry per input curve. The value at index i is the index, in the returned array, of the union result that input curve i contributed to (the outer boundary curve of that result), or -1 if the input curve was not matched to any output curve. The input curves are indexed in the order they are enumerated ."
          }
        ],
        "returns": "Result curves on success, empty array if no union could be calculated."
      },
      {
        "signature": "Curve[] CreateBooleanUnion(IEnumerable<Curve> curves, System.Double tolerance)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Calculates the boolean union of two or more closed, planar curves. Note, curves must be co-planar.",
        "since": "6.0",
        "parameters": [
          {
            "name": "curves",
            "type": "IEnumerable<Curve>",
            "summary": "The co-planar curves to union."
          },
          {
            "name": "tolerance",
            "type": "System.Double",
            "summary": ""
          }
        ],
        "returns": "Result curves on success, empty array if no union could be calculated."
      },
      {
        "signature": "Curve[] CreateBooleanUnion(IEnumerable<Curve> curves)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Calculates the boolean union of two or more closed, planar curves. Note, curves must be co-planar.",
        "since": "5.0",
        "deprecated": "6.0",
        "obsolete": "Use version that takes tolerance as input",
        "parameters": [
          {
            "name": "curves",
            "type": "IEnumerable<Curve>",
            "summary": "The co-planar curves to union."
          }
        ],
        "returns": "Result curves on success, empty array if no union could be calculated."
      },
      {
        "signature": "Curve CreateCatenaryCurveFromApex(Point3d catenary_start, Point3d catenary_end, Vector3d axis_dir, Point3d catenary_apex, System.Boolean bSmooth, System.Int32 point_count, out Point3d apex_out, out System.Double parameter_out, out System.Double length_out, out System.Double max_deviation_out)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Generate a catenary curve through catenary apex.",
        "parameters": [
          {
            "name": "catenary_start",
            "type": "Point3d",
            "summary": "catenary start point"
          },
          {
            "name": "catenary_end",
            "type": "Point3d",
            "summary": "catenary end point"
          },
          {
            "name": "axis_dir",
            "type": "Vector3d",
            "summary": "catenary axis/gravity direction"
          },
          {
            "name": "catenary_apex",
            "type": "Point3d",
            "summary": "desired catenary apex point"
          },
          {
            "name": "bSmooth",
            "type": "System.Boolean",
            "summary": "if False generates polyline output"
          },
          {
            "name": "point_count",
            "type": "System.Int32",
            "summary": "number of points in the output curve"
          },
          {
            "name": "apex_out",
            "type": "Point3d",
            "summary": "apex point of the output catenary curve"
          },
          {
            "name": "parameter_out",
            "type": "System.Double",
            "summary": "output catenary parameter \"a\" in the formula y = a * cosh(x/a)"
          },
          {
            "name": "length_out",
            "type": "System.Double",
            "summary": "output catenary length"
          },
          {
            "name": "max_deviation_out",
            "type": "System.Double",
            "summary": "sampled max deviation between the output curve and the analytic catenary"
          }
        ],
        "returns": "A catenary Curve or None if unsuccessful"
      },
      {
        "signature": "Curve CreateCatenaryCurveFromLength(Point3d catenary_start, Point3d catenary_end, Vector3d axis_dir, System.Double catenary_length, System.Boolean bSmooth, System.Int32 point_count, out Point3d apex_out, out System.Double parameter_out, out System.Double length_out, out System.Double max_deviation_out)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Generate a catenary curve of specific length.",
        "parameters": [
          {
            "name": "catenary_start",
            "type": "Point3d",
            "summary": "catenary start point"
          },
          {
            "name": "catenary_end",
            "type": "Point3d",
            "summary": "catenary end point"
          },
          {
            "name": "axis_dir",
            "type": "Vector3d",
            "summary": "catenary axis/gravity direction"
          },
          {
            "name": "catenary_length",
            "type": "System.Double",
            "summary": "the desired catenary length"
          },
          {
            "name": "bSmooth",
            "type": "System.Boolean",
            "summary": "if False generates polyline output"
          },
          {
            "name": "point_count",
            "type": "System.Int32",
            "summary": "number of points in the output curve"
          },
          {
            "name": "apex_out",
            "type": "Point3d",
            "summary": "apex point of the output catenary curve"
          },
          {
            "name": "parameter_out",
            "type": "System.Double",
            "summary": "output catenary parameter \"a\" in the formula y = a * cosh(x/a)"
          },
          {
            "name": "length_out",
            "type": "System.Double",
            "summary": "output catenary length"
          },
          {
            "name": "max_deviation_out",
            "type": "System.Double",
            "summary": "sampled max deviation between the output curve and the analytic catenary"
          }
        ],
        "returns": "A catenary Curve or None if unsuccessful"
      },
      {
        "signature": "Curve CreateCatenaryCurveFromParameter(Point3d catenary_start, Point3d catenary_end, Vector3d axis_dir, System.Double catenary_parameter, System.Boolean bSmooth, System.Int32 point_count, out Point3d apex_out, out System.Double parameter_out, out System.Double length_out, out System.Double max_deviation_out)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Generate a catenary curve from catenary parameter.",
        "parameters": [
          {
            "name": "catenary_start",
            "type": "Point3d",
            "summary": "catenary start point"
          },
          {
            "name": "catenary_end",
            "type": "Point3d",
            "summary": "catenary end point"
          },
          {
            "name": "axis_dir",
            "type": "Vector3d",
            "summary": "catenary axis/gravity direction"
          },
          {
            "name": "catenary_parameter",
            "type": "System.Double",
            "summary": "catenary parameter"
          },
          {
            "name": "bSmooth",
            "type": "System.Boolean",
            "summary": "if False generates polyline output"
          },
          {
            "name": "point_count",
            "type": "System.Int32",
            "summary": "number of points in the output curve"
          },
          {
            "name": "apex_out",
            "type": "Point3d",
            "summary": "apex point of the output catenary curve"
          },
          {
            "name": "parameter_out",
            "type": "System.Double",
            "summary": "output catenary parameter \"a\" in the formula y = a * cosh(x/a)"
          },
          {
            "name": "length_out",
            "type": "System.Double",
            "summary": "output catenary length"
          },
          {
            "name": "max_deviation_out",
            "type": "System.Double",
            "summary": "sampled max deviation between the output curve and the analytic catenary"
          }
        ],
        "returns": "A catenary Curve or None if unsuccessful"
      },
      {
        "signature": "Curve CreateCatenaryCurveThroughPoint(Point3d catenary_start, Point3d catenary_end, Vector3d axis_dir, Point3d through_point, System.Boolean bSmooth, System.Int32 point_count, out Point3d apex_out, out System.Double parameter_out, out System.Double length_out, out System.Double max_deviation_out)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Generate a catenary curve through a point",
        "parameters": [
          {
            "name": "catenary_start",
            "type": "Point3d",
            "summary": "catenary start point"
          },
          {
            "name": "catenary_end",
            "type": "Point3d",
            "summary": "catenary end point"
          },
          {
            "name": "axis_dir",
            "type": "Vector3d",
            "summary": "catenary axis/gravity direction"
          },
          {
            "name": "through_point",
            "type": "Point3d",
            "summary": "point on the catenary between catenary_start and catenary_end"
          },
          {
            "name": "bSmooth",
            "type": "System.Boolean",
            "summary": "if False generates polyline output"
          },
          {
            "name": "point_count",
            "type": "System.Int32",
            "summary": "number of points in the output curve"
          },
          {
            "name": "apex_out",
            "type": "Point3d",
            "summary": "apex point of the output catenary curve"
          },
          {
            "name": "parameter_out",
            "type": "System.Double",
            "summary": "output catenary parameter \"a\" in the formula y = a * cosh(x/a)"
          },
          {
            "name": "length_out",
            "type": "System.Double",
            "summary": "output catenary length"
          },
          {
            "name": "max_deviation_out",
            "type": "System.Double",
            "summary": "sampled max deviation between the output curve and the analytic catenary"
          }
        ],
        "returns": "A catenary Curve or None if unsuccessful"
      },
      {
        "signature": "Curve CreateConicCornerRectangle(Rectangle3d rectangle, System.Double rho)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Creates a conic-corned (rounded) rectangular curve.",
        "since": "8.9",
        "parameters": [
          {
            "name": "rectangle",
            "type": "Rectangle3d",
            "summary": "The rectangle."
          },
          {
            "name": "rho",
            "type": "System.Double",
            "summary": "The rho value at each corner, in the exclusive range (0.0, 1.0)."
          }
        ],
        "returns": "A conic-cornered rectangular curve if successful, None otherwise."
      },
      {
        "signature": "Curve CreateControlPointCurve(IEnumerable<Point3d> points, System.Int32 degree)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Constructs a curve from a set of control-point locations.",
        "since": "5.0",
        "parameters": [
          {
            "name": "points",
            "type": "IEnumerable<Point3d>",
            "summary": "Control points."
          },
          {
            "name": "degree",
            "type": "System.Int32",
            "summary": "Degree of curve. The number of control points must be at least degree+1."
          }
        ]
      },
      {
        "signature": "Curve CreateControlPointCurve(IEnumerable<Point3d> points)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Constructs a control-point of degree=3 (or less).",
        "since": "5.0",
        "parameters": [
          {
            "name": "points",
            "type": "IEnumerable<Point3d>",
            "summary": "Control points of curve."
          }
        ]
      },
      {
        "signature": "Curve[] CreateCurve2View(Curve curveA, Curve curveB, Vector3d vectorA, Vector3d vectorB, System.Double tolerance, System.Double angleTolerance)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Creates a third curve from two curves that are planar in different construction planes. The new curve looks the same as each of the original curves when viewed in each plane.",
        "since": "6.0",
        "parameters": [
          {
            "name": "curveA",
            "type": "Curve",
            "summary": "The first curve."
          },
          {
            "name": "curveB",
            "type": "Curve",
            "summary": "The second curve."
          },
          {
            "name": "vectorA",
            "type": "Vector3d",
            "summary": "A vector defining the normal direction of the plane which the first curve is drawn upon."
          },
          {
            "name": "vectorB",
            "type": "Vector3d",
            "summary": "A vector defining the normal direction of the plane which the second curve is drawn upon."
          },
          {
            "name": "tolerance",
            "type": "System.Double",
            "summary": "The tolerance for the operation."
          },
          {
            "name": "angleTolerance",
            "type": "System.Double",
            "summary": "The angle tolerance for the operation."
          }
        ],
        "returns": "An array containing one or more curves if successful."
      },
      {
        "signature": "Arc CreateFillet(Curve curve0, Curve curve1, System.Double radius, System.Double t0Base, System.Double t1Base)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Computes the fillet arc for a curve filleting operation.",
        "since": "5.0",
        "parameters": [
          {
            "name": "curve0",
            "type": "Curve",
            "summary": "First curve to fillet."
          },
          {
            "name": "curve1",
            "type": "Curve",
            "summary": "Second curve to fillet."
          },
          {
            "name": "radius",
            "type": "System.Double",
            "summary": "Fillet radius."
          },
          {
            "name": "t0Base",
            "type": "System.Double",
            "summary": "Parameter on curve0 where the fillet ought to start (approximately)."
          },
          {
            "name": "t1Base",
            "type": "System.Double",
            "summary": "Parameter on curve1 where the fillet ought to end (approximately)."
          }
        ],
        "returns": "The fillet arc on success, or Arc.Unset on failure."
      },
      {
        "signature": "Curve CreateFilletCornersCurve(Curve curve, System.Double radius, System.Double tolerance, System.Double angleTolerance)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Rounds the corners of a kinked curve with arcs of a single, specified radius.",
        "since": "6.0",
        "parameters": [
          {
            "name": "curve",
            "type": "Curve",
            "summary": "The curve to fillet."
          },
          {
            "name": "radius",
            "type": "System.Double",
            "summary": "The fillet radius."
          },
          {
            "name": "tolerance",
            "type": "System.Double",
            "summary": "The tolerance. When in doubt, use the document's model space absolute tolerance."
          },
          {
            "name": "angleTolerance",
            "type": "System.Double",
            "summary": "The angle tolerance in radians. When in doubt, use the document's model space angle tolerance."
          }
        ],
        "returns": "The filleted curve if successful. None on failure."
      },
      {
        "signature": "Curve[] CreateFilletCurves(Curve curve0, Point3d point0, Curve curve1, Point3d point1, System.Double radius, System.Boolean join, System.Boolean trim, System.Boolean arcExtension, System.Double tolerance, System.Double angleTolerance)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Creates a tangent arc between two curves and trims or extends the curves to the arc.",
        "since": "5.10",
        "parameters": [
          {
            "name": "curve0",
            "type": "Curve",
            "summary": "The first curve to fillet."
          },
          {
            "name": "point0",
            "type": "Point3d",
            "summary": "A point on the first curve that is near the end where the fillet will be created."
          },
          {
            "name": "curve1",
            "type": "Curve",
            "summary": "The second curve to fillet."
          },
          {
            "name": "point1",
            "type": "Point3d",
            "summary": "A point on the second curve that is near the end where the fillet will be created."
          },
          {
            "name": "radius",
            "type": "System.Double",
            "summary": "The radius of the fillet."
          },
          {
            "name": "join",
            "type": "System.Boolean",
            "summary": "Join the output curves."
          },
          {
            "name": "trim",
            "type": "System.Boolean",
            "summary": "Trim copies of the input curves to the output fillet curve."
          },
          {
            "name": "arcExtension",
            "type": "System.Boolean",
            "summary": "Applies when arcs are filleted but need to be extended to meet the fillet curve or chamfer line. If true, then the arc is extended maintaining its validity. If false, then the arc is extended with a line segment, which is joined to the arc converting it to a polycurve."
          },
          {
            "name": "tolerance",
            "type": "System.Double",
            "summary": "The tolerance, generally the document's absolute tolerance."
          },
          {
            "name": "angleTolerance",
            "type": "System.Double",
            "summary": ""
          }
        ],
        "returns": "The results of the fillet operation. The number of output curves depends on the input curves and the values of the parameters that were used during the fillet operation. In most cases, the output array will contain either one or three curves, although two curves can be returned if the radius is zero and join = false. For example, if both join and trim = true, then the output curve will be a polycurve containing the fillet curve joined with trimmed copies of the input curves. If join = False and trim = true, then three curves, the fillet curve and trimmed copies of the input curves, will be returned. If both join and trim = false, then just the fillet curve is returned."
      },
      {
        "signature": "Curve CreateInterpolatedCurve(IEnumerable<Point3d> points, System.Int32 degree, CurveKnotStyle knots, Vector3d startTangent, Vector3d endTangent)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Interpolates a sequence of points. Used by InterpCurve Command This routine works best when degree=3.",
        "since": "5.0",
        "parameters": [
          {
            "name": "points",
            "type": "IEnumerable<Point3d>",
            "summary": "Points to interpolate. For periodic curves if the final point is a duplicate of the initial point it is  ignored. (Count must be >=2)"
          },
          {
            "name": "degree",
            "type": "System.Int32",
            "summary": "The degree of the curve >=1. Note: Even degree > 3 periodic interpolation results in a non-periodic closed curve."
          },
          {
            "name": "knots",
            "type": "CurveKnotStyle",
            "summary": "Knot-style to use  and specifies if the curve should be periodic."
          },
          {
            "name": "startTangent",
            "type": "Vector3d",
            "summary": "A starting tangent."
          },
          {
            "name": "endTangent",
            "type": "Vector3d",
            "summary": "An ending tangent."
          }
        ],
        "returns": "interpolated curve on success. None on failure."
      },
      {
        "signature": "Curve CreateInterpolatedCurve(IEnumerable<Point3d> points, System.Int32 degree, CurveKnotStyle knots)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Interpolates a sequence of points. Used by InterpCurve Command This routine works best when degree=3.",
        "since": "5.0",
        "parameters": [
          {
            "name": "points",
            "type": "IEnumerable<Point3d>",
            "summary": "Points to interpolate. For periodic curves if the final point is a duplicate of the initial point it is  ignored. (Count must be >=2)"
          },
          {
            "name": "degree",
            "type": "System.Int32",
            "summary": "The degree of the curve >=1. Note: Even degree > 3 periodic interpolation results in a non-periodic closed curve."
          },
          {
            "name": "knots",
            "type": "CurveKnotStyle",
            "summary": "Knot-style to use  and specifies if the curve should be periodic."
          }
        ],
        "returns": "interpolated curve on success. None on failure."
      },
      {
        "signature": "Curve CreateInterpolatedCurve(IEnumerable<Point3d> points, System.Int32 degree)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Interpolates a sequence of points. Used by InterpCurve Command This routine works best when degree=3.",
        "since": "5.0",
        "parameters": [
          {
            "name": "points",
            "type": "IEnumerable<Point3d>",
            "summary": "Points to interpolate (Count must be >= 2)"
          },
          {
            "name": "degree",
            "type": "System.Int32",
            "summary": "The degree of the curve >=1.  Degree must be odd."
          }
        ],
        "returns": "interpolated curve on success. None on failure."
      },
      {
        "signature": "Curve[] CreateMatchCurve(Curve curve0, System.Boolean reverse0, BlendContinuity continuity, Curve curve1, System.Boolean reverse1, PreserveEnd preserve, System.Boolean average)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Changes a curve end to meet a specified curve with a specified continuity.",
        "since": "7.6",
        "parameters": [
          {
            "name": "curve0",
            "type": "Curve",
            "summary": "The open curve to change."
          },
          {
            "name": "reverse0",
            "type": "System.Boolean",
            "summary": "Reverse the direction of the curve to change before matching."
          },
          {
            "name": "continuity",
            "type": "BlendContinuity",
            "summary": "The continuity at the curve end."
          },
          {
            "name": "curve1",
            "type": "Curve",
            "summary": "The open curve to match."
          },
          {
            "name": "reverse1",
            "type": "System.Boolean",
            "summary": "Reverse the direction of the curve to match before matching."
          },
          {
            "name": "preserve",
            "type": "PreserveEnd",
            "summary": "Prevent modification of the curvature at the end opposite the match for curves with fewer than six control points."
          },
          {
            "name": "average",
            "type": "System.Boolean",
            "summary": "Adjust both curves to match each other."
          }
        ],
        "returns": "The results of the curve matching, if successful, otherwise an empty array."
      },
      {
        "signature": "Curve CreateMeanCurve(Curve curveA, Curve curveB, System.Double angleToleranceRadians)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Constructs a mean, or average, curve from two curves.",
        "since": "5.0",
        "parameters": [
          {
            "name": "curveA",
            "type": "Curve",
            "summary": "A first curve."
          },
          {
            "name": "curveB",
            "type": "Curve",
            "summary": "A second curve."
          },
          {
            "name": "angleToleranceRadians",
            "type": "System.Double",
            "summary": "The angle tolerance, in radians, used to match kinks between curves. If you are unsure how to set this parameter, then either use the document's angle tolerance RhinoDoc.AngleToleranceRadians, or the default value (RhinoMath.UnsetValue)"
          }
        ],
        "returns": "The average curve, or None on error."
      },
      {
        "signature": "Curve CreateMeanCurve(Curve curveA, Curve curveB)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Constructs a mean, or average, curve from two curves.",
        "since": "5.0",
        "parameters": [
          {
            "name": "curveA",
            "type": "Curve",
            "summary": "A first curve."
          },
          {
            "name": "curveB",
            "type": "Curve",
            "summary": "A second curve."
          }
        ],
        "returns": "The average curve, or None on error."
      },
      {
        "signature": "NurbsCurve CreateNurbsCurveFit(Curve curve, Interval domain, NurbsCurveFitParameters rebuildOptions, out Line maximumSeparation, out System.Double thisSeparationParameter, out System.Double nurbsSeparationParameter)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Rebuilds the curve to a NURBS curve with the specified options.",
        "parameters": [
          {
            "name": "curve",
            "type": "Curve",
            "summary": "The input curve you would like to rebuild"
          },
          {
            "name": "domain",
            "type": "Interval",
            "summary": "The domain to process"
          },
          {
            "name": "rebuildOptions",
            "type": "NurbsCurveFitParameters",
            "summary": "Specifies how to rebuild the curve"
          },
          {
            "name": "maximumSeparation",
            "type": "Line",
            "summary": ""
          },
          {
            "name": "thisSeparationParameter",
            "type": "System.Double",
            "summary": ""
          },
          {
            "name": "nurbsSeparationParameter",
            "type": "System.Double",
            "summary": ""
          }
        ],
        "returns": "The resulting curveb"
      },
      {
        "signature": "Curve CreatePeriodicCurve(Curve curve, System.Boolean smooth)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Removes kinks from a curve. Periodic curves deform smoothly without kinks.",
        "since": "6.0",
        "parameters": [
          {
            "name": "curve",
            "type": "Curve",
            "summary": "The curve to make periodic. Curve must have degree >= 2."
          },
          {
            "name": "smooth",
            "type": "System.Boolean",
            "summary": "If true, smooths any kinks in the curve and moves control points to make a smooth curve. If false, control point locations are not changed or changed minimally (only one point may move) and only the knot vector is altered."
          }
        ],
        "returns": "The resulting curve if successful, None otherwise."
      },
      {
        "signature": "Curve CreatePeriodicCurve(Curve curve)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Removes kinks from a curve. Periodic curves deform smoothly without kinks.",
        "since": "6.0",
        "parameters": [
          {
            "name": "curve",
            "type": "Curve",
            "summary": "The curve to make periodic. Curve must have degree >= 2."
          }
        ],
        "returns": "The resulting curve if successful, None otherwise."
      },
      {
        "signature": "Curve CreateRevisionCloud(Curve curve, System.Int32 segmentCount, System.Double angle, System.Boolean flip)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Creates a revision cloud curve from a planar curve.",
        "since": "8.4",
        "parameters": [
          {
            "name": "curve",
            "type": "Curve",
            "summary": "The input planar curve."
          },
          {
            "name": "segmentCount",
            "type": "System.Int32",
            "summary": "The number of segments in the output revision cloud curve. If zero, the number of segments in the output revision cloud curve is based on the NURB form of the input curve."
          },
          {
            "name": "angle",
            "type": "System.Double",
            "summary": "The angle in radians, between PI/2.0 and PI radians (90 and 180 degrees). This angle indicates the amount of bulge in the segments."
          },
          {
            "name": "flip",
            "type": "System.Boolean",
            "summary": "The arc segments in output revision cloud curve will be in the opposite direction to the input curve."
          }
        ],
        "returns": "A revision cloud curve is successful, False otherwise."
      },
      {
        "signature": "Curve CreateRevisionCloud(IEnumerable<Point3d> points, System.Double angle, System.Boolean flip)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Creates a revision cloud curve from points that make up a planar polyline.",
        "since": "8.4",
        "parameters": [
          {
            "name": "points",
            "type": "IEnumerable<Point3d>",
            "summary": "The input points."
          },
          {
            "name": "angle",
            "type": "System.Double",
            "summary": "The angle in radians, between PI/2.0 and PI radians (90 and 180 degrees). This angle indicates the amount of bulge in the segments."
          },
          {
            "name": "flip",
            "type": "System.Boolean",
            "summary": "The arc segments in output revision cloud curve will be in the opposite direction to the input curve."
          }
        ],
        "returns": "A revision cloud curve is successful, False otherwise."
      },
      {
        "signature": "Curve CreateSoftEditCurve(Curve curve, System.Double t, Vector3d delta, System.Double length, System.Boolean fixEnds)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Creates a soft edited curve from an existing curve using a smooth field of influence.",
        "since": "6.0",
        "parameters": [
          {
            "name": "curve",
            "type": "Curve",
            "summary": "The curve to soft edit."
          },
          {
            "name": "t",
            "type": "System.Double",
            "summary": "A parameter on the curve to move from. This location on the curve is moved, and the move is smoothly tapered off with increasing distance along the curve from this parameter."
          },
          {
            "name": "delta",
            "type": "Vector3d",
            "summary": "The direction and magnitude, or maximum distance, of the move."
          },
          {
            "name": "length",
            "type": "System.Double",
            "summary": "The distance along the curve from the editing point over which the strength of the editing falls off smoothly."
          },
          {
            "name": "fixEnds",
            "type": "System.Boolean",
            "summary": ""
          }
        ],
        "returns": "The soft edited curve if successful. None on failure."
      },
      {
        "signature": "Curve[] CreateTextOutlines(System.String text, System.String font, System.Double textHeight, System.Int32 textStyle, System.Boolean closeLoops, Plane plane, System.Double smallCapsScale, System.Double tolerance)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Creates outline curves created from a text string. The functionality is similar to what you find in Rhino's TextObject command or TextEntity.Explode() in RhinoCommon.",
        "since": "6.0",
        "parameters": [
          {
            "name": "text",
            "type": "System.String",
            "summary": "The text from which to create outline curves."
          },
          {
            "name": "font",
            "type": "System.String",
            "summary": "The text font. If the font does not exist on the system. Rhino will use a substitute with similar properties."
          },
          {
            "name": "textHeight",
            "type": "System.Double",
            "summary": "The text height."
          },
          {
            "name": "textStyle",
            "type": "System.Int32",
            "summary": "The font style. The font style can be any number of the following: 0 - Normal, 1 - Bold, 2 - Italic"
          },
          {
            "name": "closeLoops",
            "type": "System.Boolean",
            "summary": "Set this value to True when dealing with normal fonts and when you expect closed loops. You may want to set this to False when specifying a single-stroke font where you don't want closed loops."
          },
          {
            "name": "plane",
            "type": "Plane",
            "summary": "The plane on which the outline curves will lie."
          },
          {
            "name": "smallCapsScale",
            "type": "System.Double",
            "summary": "Displays lower-case letters as small caps. Set the relative text size to a percentage of the normal text."
          },
          {
            "name": "tolerance",
            "type": "System.Double",
            "summary": "The tolerance for the operation."
          }
        ],
        "returns": "An array containing one or more curves if successful."
      },
      {
        "signature": "Curve[] CreateTweenCurves(Curve curve0, Curve curve1, System.Int32 numCurves, System.Double tolerance)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Creates curves between two open or closed input curves. Uses the control points of the curves for finding tween curves. That means the first control point of first curve is matched to first control point of the second curve and so on. There is no matching of curves direction. Caller must match input curves direction before calling the function.",
        "since": "6.0",
        "parameters": [
          {
            "name": "curve0",
            "type": "Curve",
            "summary": "The first, or starting, curve."
          },
          {
            "name": "curve1",
            "type": "Curve",
            "summary": "The second, or ending, curve."
          },
          {
            "name": "numCurves",
            "type": "System.Int32",
            "summary": "Number of tween curves to create."
          },
          {
            "name": "tolerance",
            "type": "System.Double",
            "summary": ""
          }
        ],
        "returns": "An array of tween curves. This array can be empty."
      },
      {
        "signature": "Curve[] CreateTweenCurves(Curve curve0, Curve curve1, System.Int32 numCurves)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Creates curves between two open or closed input curves. Uses the control points of the curves for finding tween curves. That means the first control point of first curve is matched to first control point of the second curve and so on. There is no matching of curves direction. Caller must match input curves direction before calling the function.",
        "since": "5.2",
        "deprecated": "6.0",
        "obsolete": "Use version that takes tolerance as input",
        "parameters": [
          {
            "name": "curve0",
            "type": "Curve",
            "summary": "The first, or starting, curve."
          },
          {
            "name": "curve1",
            "type": "Curve",
            "summary": "The second, or ending, curve."
          },
          {
            "name": "numCurves",
            "type": "System.Int32",
            "summary": "Number of tween curves to create."
          }
        ],
        "returns": "An array of tween curves. This array can be empty."
      },
      {
        "signature": "Curve[] CreateTweenCurvesWithMatching(Curve curve0, Curve curve1, System.Int32 numCurves, System.Double tolerance)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Creates curves between two open or closed input curves. Make the structure of input curves compatible if needed. Refits the input curves to have the same structure. The resulting curves are usually more complex than input unless input curves are compatible and no refit is needed. There is no matching of curves direction. Caller must match input curves direction before calling the function.",
        "since": "6.0",
        "parameters": [
          {
            "name": "curve0",
            "type": "Curve",
            "summary": "The first, or starting, curve."
          },
          {
            "name": "curve1",
            "type": "Curve",
            "summary": "The second, or ending, curve."
          },
          {
            "name": "numCurves",
            "type": "System.Int32",
            "summary": "Number of tween curves to create."
          },
          {
            "name": "tolerance",
            "type": "System.Double",
            "summary": ""
          }
        ],
        "returns": "An array of tween curves. This array can be empty."
      },
      {
        "signature": "Curve[] CreateTweenCurvesWithMatching(Curve curve0, Curve curve1, System.Int32 numCurves)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Creates curves between two open or closed input curves. Make the structure of input curves compatible if needed. Refits the input curves to have the same structure. The resulting curves are usually more complex than input unless input curves are compatible and no refit is needed. There is no matching of curves direction. Caller must match input curves direction before calling the function.",
        "since": "5.2",
        "deprecated": "6.0",
        "obsolete": "Use version that takes tolerance as input",
        "parameters": [
          {
            "name": "curve0",
            "type": "Curve",
            "summary": "The first, or starting, curve."
          },
          {
            "name": "curve1",
            "type": "Curve",
            "summary": "The second, or ending, curve."
          },
          {
            "name": "numCurves",
            "type": "System.Int32",
            "summary": "Number of tween curves to create."
          }
        ],
        "returns": "An array of tween curves. This array can be empty."
      },
      {
        "signature": "Curve[] CreateTweenCurvesWithSampling(Curve curve0, Curve curve1, System.Int32 numCurves, System.Int32 numSamples, System.Double tolerance)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Creates curves between two open or closed input curves. Use sample points method to make curves compatible. This is how the algorithm works: Divides the two curves into an equal number of points, finds the midpoint between the corresponding points on the curves and interpolates the tween curve through those points. There is no matching of curves direction. Caller must match input curves direction before calling the function.",
        "since": "6.0",
        "parameters": [
          {
            "name": "curve0",
            "type": "Curve",
            "summary": "The first, or starting, curve."
          },
          {
            "name": "curve1",
            "type": "Curve",
            "summary": "The second, or ending, curve."
          },
          {
            "name": "numCurves",
            "type": "System.Int32",
            "summary": "Number of tween curves to create."
          },
          {
            "name": "numSamples",
            "type": "System.Int32",
            "summary": "Number of sample points along input curves."
          },
          {
            "name": "tolerance",
            "type": "System.Double",
            "summary": "The tolerance. When in doubt, use the document's model absolute tolerance."
          }
        ],
        "returns": ">An array of tween curves. This array can be empty."
      },
      {
        "signature": "Curve[] CreateTweenCurvesWithSampling(Curve curve0, Curve curve1, System.Int32 numCurves, System.Int32 numSamples)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Creates curves between two open or closed input curves. Use sample points method to make curves compatible. This is how the algorithm works: Divides the two curves into an equal number of points, finds the midpoint between the corresponding points on the curves and interpolates the tween curve through those points. There is no matching of curves direction. Caller must match input curves direction before calling the function.",
        "since": "5.2",
        "deprecated": "6.0",
        "obsolete": "Use version that takes tolerance as input",
        "parameters": [
          {
            "name": "curve0",
            "type": "Curve",
            "summary": "The first, or starting, curve."
          },
          {
            "name": "curve1",
            "type": "Curve",
            "summary": "The second, or ending, curve."
          },
          {
            "name": "numCurves",
            "type": "System.Int32",
            "summary": "Number of tween curves to create."
          },
          {
            "name": "numSamples",
            "type": "System.Int32",
            "summary": "Number of sample points along input curves."
          }
        ],
        "returns": ">An array of tween curves. This array can be empty."
      },
      {
        "signature": "System.Boolean DoDirectionsMatch(Curve curveA, Curve curveB)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Determines whether two curves travel more or less in the same direction.",
        "since": "5.0",
        "parameters": [
          {
            "name": "curveA",
            "type": "Curve",
            "summary": "First curve to test."
          },
          {
            "name": "curveB",
            "type": "Curve",
            "summary": "Second curve to test."
          }
        ],
        "returns": "True if both curves more or less point in the same direction, False if they point in the opposite directions."
      },
      {
        "signature": "System.Boolean GetDistancesBetweenCurves(Curve curveA, Curve curveB, System.Double tolerance, out System.Double maxDistance, out System.Double maxDistanceParameterA, out System.Double maxDistanceParameterB, out System.Double minDistance, out System.Double minDistanceParameterA, out System.Double minDistanceParameterB)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Calculates the minimum and maximum distances between two curves. This function is useful for computing curve deviation. If you are not computing curve deviation, use <b>ClosestPoints(Curve, out Point3d, out Point3d)</b> .",
        "since": "5.0",
        "parameters": [
          {
            "name": "curveA",
            "type": "Curve",
            "summary": "A curve."
          },
          {
            "name": "curveB",
            "type": "Curve",
            "summary": "Another curve."
          },
          {
            "name": "tolerance",
            "type": "System.Double",
            "summary": "A tolerance value."
          },
          {
            "name": "maxDistance",
            "type": "System.Double",
            "summary": "The maximum distance value. This is an out reference argument."
          },
          {
            "name": "maxDistanceParameterA",
            "type": "System.Double",
            "summary": "The maximum distance parameter on curve A. This is an out reference argument."
          },
          {
            "name": "maxDistanceParameterB",
            "type": "System.Double",
            "summary": "The maximum distance parameter on curve B. This is an out reference argument."
          },
          {
            "name": "minDistance",
            "type": "System.Double",
            "summary": "The minimum distance value. This is an out reference argument."
          },
          {
            "name": "minDistanceParameterA",
            "type": "System.Double",
            "summary": "The minimum distance parameter on curve A. This is an out reference argument."
          },
          {
            "name": "minDistanceParameterB",
            "type": "System.Double",
            "summary": "The minimum distance parameter on curve B. This is an out reference argument."
          }
        ],
        "returns": "True if the operation succeeded; otherwise false."
      },
      {
        "signature": "System.Boolean GetFilletPoints(Curve curve0, Curve curve1, System.Double radius, System.Double t0Base, System.Double t1Base, out System.Double t0, out System.Double t1, out Plane filletPlane)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Finds points at which to cut a pair of curves so that a fillet of given radius can be inserted.",
        "since": "5.0",
    "remarks": "A fillet point is a pair of curve parameters (t0,t1) such that there is a circle of radius point3 tangent to curve c0 at t0 and tangent to curve c1 at t1. Of all possible fillet points this function returns the one which is the closest to the base point t0Base, t1Base. Distance from the base point is measured by the sum of arc lengths along the two curves.",
        "parameters": [
          {
            "name": "curve0",
            "type": "Curve",
            "summary": "First curve to fillet."
          },
          {
            "name": "curve1",
            "type": "Curve",
            "summary": "Second curve to fillet."
          },
          {
            "name": "radius",
            "type": "System.Double",
            "summary": "Fillet radius."
          },
          {
            "name": "t0Base",
            "type": "System.Double",
            "summary": "Parameter value for base point on curve0."
          },
          {
            "name": "t1Base",
            "type": "System.Double",
            "summary": "Parameter value for base point on curve1."
          },
          {
            "name": "t0",
            "type": "System.Double",
            "summary": "Parameter value of fillet point on curve 0."
          },
          {
            "name": "t1",
            "type": "System.Double",
            "summary": "Parameter value of fillet point on curve 1."
          },
          {
            "name": "filletPlane",
            "type": "Plane",
            "summary": "The fillet is contained in this plane with the fillet center at the plane origin."
          }
        ],
        "returns": "True on success, False on failure."
      },
      {
        "signature": "Curve[] JoinCurves(IEnumerable<Curve> inputCurves, System.Double joinTolerance, System.Boolean preserveDirection, out System.Int32[] key)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Joins a collection of curve segments together.",
        "since": "8.4",
        "parameters": [
          {
            "name": "inputCurves",
            "type": "IEnumerable<Curve>",
            "summary": "An array, a list or any enumerable set of curve segments to join."
          },
          {
            "name": "joinTolerance",
            "type": "System.Double",
            "summary": "Joining tolerance, i.e. the distance between segment end-points that is allowed."
          },
          {
            "name": "preserveDirection",
            "type": "System.Boolean",
            "summary": "If true, curve endpoints will be compared to curve start points.  \nIf false, all start and endpoints will be compared and copies of input curves may be reversed in output."
          },
          {
            "name": "key",
            "type": "System.Int32[]",
            "summary": "inputCurves[i] is part of returnValue[key[i]]"
          }
        ],
        "returns": "An array of joined curves. This array can be empty."
      },
      {
        "signature": "Curve[] JoinCurves(IEnumerable<Curve> inputCurves, System.Double joinTolerance, System.Boolean preserveDirection, System.Boolean simpleJoin, out System.Int32[] key)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Joins a collection of curve segments together.",
        "since": "8.12",
        "parameters": [
          {
            "name": "inputCurves",
            "type": "IEnumerable<Curve>",
            "summary": "An array, a list or any enumerable set of curve segments to join."
          },
          {
            "name": "joinTolerance",
            "type": "System.Double",
            "summary": "Joining tolerance, i.e. the distance between segment end-points that is allowed."
          },
          {
            "name": "preserveDirection",
            "type": "System.Boolean",
            "summary": "If true, curve endpoints will be compared to curve start points.  \nIf false, all start and endpoints will be compared and copies of input curves may be reversed in output."
          },
          {
            "name": "simpleJoin",
            "type": "System.Boolean",
            "summary": "Set True to use the simple joining method. In general, set this parameter to false."
          },
          {
            "name": "key",
            "type": "System.Int32[]",
            "summary": "inputCurves[i] is part of returnValue[key[i]]"
          }
        ],
        "returns": "An array of joined curves. This array can be empty."
      },
      {
        "signature": "Curve[] JoinCurves(IEnumerable<Curve> inputCurves, System.Double joinTolerance, System.Boolean preserveDirection)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Joins a collection of curve segments together.",
        "since": "5.0",
        "parameters": [
          {
            "name": "inputCurves",
            "type": "IEnumerable<Curve>",
            "summary": "An array, a list or any enumerable set of curve segments to join."
          },
          {
            "name": "joinTolerance",
            "type": "System.Double",
            "summary": "Joining tolerance, i.e. the distance between segment end-points that is allowed."
          },
          {
            "name": "preserveDirection",
            "type": "System.Boolean",
            "summary": "If true, curve endpoints will be compared to curve start points.  \nIf false, all start and endpoints will be compared and copies of input curves may be reversed in output."
          }
        ],
        "returns": "An array of joined curves. This array can be empty."
      },
      {
        "signature": "Curve[] JoinCurves(IEnumerable<Curve> inputCurves, System.Double joinTolerance)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Joins a collection of curve segments together.",
        "since": "5.0",
        "parameters": [
          {
            "name": "inputCurves",
            "type": "IEnumerable<Curve>",
            "summary": "An array, a list or any enumerable set of curve segments to join."
          },
          {
            "name": "joinTolerance",
            "type": "System.Double",
            "summary": "Joining tolerance, i.e. the distance between segment end-points that is allowed."
          }
        ],
        "returns": "An array of joined curves. This array can be empty."
      },
      {
        "signature": "Curve[] JoinCurves(IEnumerable<Curve> inputCurves)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Joins a collection of curve segments together.",
        "since": "5.0",
        "parameters": [
          {
            "name": "inputCurves",
            "type": "IEnumerable<Curve>",
            "summary": "Curve segments to join."
          }
        ],
        "returns": "An array of joined curves. This array can be empty."
      },
      {
        "signature": "System.Boolean MakeEndsMeet(Curve curveA, System.Boolean adjustStartCurveA, Curve curveB, System.Boolean adjustStartCurveB)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Makes adjustments to the ends of one or both input curves so that they meet at a point.",
        "since": "5.0",
        "parameters": [
          {
            "name": "curveA",
            "type": "Curve",
            "summary": "1st curve to adjust."
          },
          {
            "name": "adjustStartCurveA",
            "type": "System.Boolean",
            "summary": "Which end of the 1st curve to adjust: True is start, False is end."
          },
          {
            "name": "curveB",
            "type": "Curve",
            "summary": "2nd curve to adjust."
          },
          {
            "name": "adjustStartCurveB",
            "type": "System.Boolean",
            "summary": "which end of the 2nd curve to adjust true==start, false==end."
          }
        ],
        "returns": "True on success."
      },
      {
        "signature": "RegionContainment PlanarClosedCurveRelationship(Curve curveA, Curve curveB, Plane testPlane, System.Double tolerance)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Determines whether two coplanar simple closed curves are disjoint or intersect; otherwise, if the regions have a containment relationship, discovers which curve encloses the other.",
        "since": "5.0",
        "parameters": [
          {
            "name": "curveA",
            "type": "Curve",
            "summary": "A first curve."
          },
          {
            "name": "curveB",
            "type": "Curve",
            "summary": "A second curve."
          },
          {
            "name": "testPlane",
            "type": "Plane",
            "summary": "A plane."
          },
          {
            "name": "tolerance",
            "type": "System.Double",
            "summary": "A tolerance value."
          }
        ],
        "returns": "A value indicating the relationship between the first and the second curve."
      },
      {
        "signature": "System.Boolean PlanarCurveCollision(Curve curveA, Curve curveB, Plane testPlane, System.Double tolerance)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Determines if two coplanar curves collide (intersect).",
        "since": "5.0",
        "parameters": [
          {
            "name": "curveA",
            "type": "Curve",
            "summary": "A curve."
          },
          {
            "name": "curveB",
            "type": "Curve",
            "summary": "Another curve."
          },
          {
            "name": "testPlane",
            "type": "Plane",
            "summary": "A valid plane containing the curves."
          },
          {
            "name": "tolerance",
            "type": "System.Double",
            "summary": "A tolerance value for intersection."
          }
        ],
        "returns": "True if the curves intersect, otherwise false"
      },
      {
        "signature": "Curve[] ProjectToBrep(Curve curve, Brep brep, Vector3d direction, System.Double tolerance)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Projects a Curve onto a Brep along a given direction.",
        "since": "5.0",
        "parameters": [
          {
            "name": "curve",
            "type": "Curve",
            "summary": "Curve to project."
          },
          {
            "name": "brep",
            "type": "Brep",
            "summary": "Brep to project onto."
          },
          {
            "name": "direction",
            "type": "Vector3d",
            "summary": "Direction of projection."
          },
          {
            "name": "tolerance",
            "type": "System.Double",
            "summary": "Tolerance to use for projection."
          }
        ],
        "returns": "An array of projected curves or empty array if the projection set is empty."
      },
      {
        "signature": "Curve[] ProjectToBrep(Curve curve, IEnumerable<Brep> breps, Vector3d direction, System.Double tolerance, out System.Int32[] brepIndices)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Projects a Curve onto a collection of Breps along a given direction.",
        "since": "5.0",
        "parameters": [
          {
            "name": "curve",
            "type": "Curve",
            "summary": "Curve to project."
          },
          {
            "name": "breps",
            "type": "IEnumerable<Brep>",
            "summary": "Breps to project onto."
          },
          {
            "name": "direction",
            "type": "Vector3d",
            "summary": "Direction of projection."
          },
          {
            "name": "tolerance",
            "type": "System.Double",
            "summary": "Tolerance to use for projection."
          },
          {
            "name": "brepIndices",
            "type": "System.Int32[]",
            "summary": "(out) Integers that identify for each resulting curve which Brep it was projected onto."
          }
        ],
        "returns": "An array of projected curves or None if the projection set is empty."
      },
      {
        "signature": "Curve[] ProjectToBrep(Curve curve, IEnumerable<Brep> breps, Vector3d direction, System.Double tolerance)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Projects a Curve onto a collection of Breps along a given direction.",
        "since": "5.0",
        "parameters": [
          {
            "name": "curve",
            "type": "Curve",
            "summary": "Curve to project."
          },
          {
            "name": "breps",
            "type": "IEnumerable<Brep>",
            "summary": "Breps to project onto."
          },
          {
            "name": "direction",
            "type": "Vector3d",
            "summary": "Direction of projection."
          },
          {
            "name": "tolerance",
            "type": "System.Double",
            "summary": "Tolerance to use for projection."
          }
        ],
        "returns": "An array of projected curves or empty array if the projection set is empty."
      },
      {
        "signature": "Curve[] ProjectToBrep(IEnumerable<Curve> curves, IEnumerable<Brep> breps, Vector3d direction, System.Double tolerance, out System.Int32[] curveIndices, out System.Int32[] brepIndices)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Projects a collection of Curves onto a collection of Breps along a given direction.",
        "since": "5.0",
        "parameters": [
          {
            "name": "curves",
            "type": "IEnumerable<Curve>",
            "summary": "Curves to project."
          },
          {
            "name": "breps",
            "type": "IEnumerable<Brep>",
            "summary": "Breps to project onto."
          },
          {
            "name": "direction",
            "type": "Vector3d",
            "summary": "Direction of projection."
          },
          {
            "name": "tolerance",
            "type": "System.Double",
            "summary": "Tolerance to use for projection."
          },
          {
            "name": "curveIndices",
            "type": "System.Int32[]",
            "summary": "Index of which curve in the input list was the source for a curve in the return array."
          },
          {
            "name": "brepIndices",
            "type": "System.Int32[]",
            "summary": "Index of which brep was used to generate a curve in the return array."
          }
        ],
        "returns": "An array of projected curves. Array is empty if the projection set is empty."
      },
      {
        "signature": "Curve[] ProjectToBrep(IEnumerable<Curve> curves, IEnumerable<Brep> breps, Vector3d direction, System.Double tolerance, System.Boolean loose, out System.Int32[] curveIndices, out System.Int32[] brepIndices)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Projects a collection of Curves onto a collection of Breps along a given direction.",
        "since": "8.17",
        "parameters": [
          {
            "name": "curves",
            "type": "IEnumerable<Curve>",
            "summary": "Curves to project."
          },
          {
            "name": "breps",
            "type": "IEnumerable<Brep>",
            "summary": "Breps to project onto."
          },
          {
            "name": "direction",
            "type": "Vector3d",
            "summary": "Direction of projection."
          },
          {
            "name": "tolerance",
            "type": "System.Double",
            "summary": "Tolerance to use for projection."
          },
          {
            "name": "loose",
            "type": "System.Boolean",
            "summary": "If true, then project curve edit points onto Brep surfaces."
          },
          {
            "name": "curveIndices",
            "type": "System.Int32[]",
            "summary": "Index of which curve in the input list was the source for a curve in the return array."
          },
          {
            "name": "brepIndices",
            "type": "System.Int32[]",
            "summary": "Index of which brep was used to generate a curve in the return array."
          }
        ],
        "returns": "An array of projected curves. Array is empty if the projection set is empty."
      },
      {
        "signature": "Curve[] ProjectToBrep(IEnumerable<Curve> curves, IEnumerable<Brep> breps, Vector3d direction, System.Double tolerance)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Projects a collection of Curves onto a collection of Breps along a given direction.",
        "since": "5.0",
        "parameters": [
          {
            "name": "curves",
            "type": "IEnumerable<Curve>",
            "summary": "Curves to project."
          },
          {
            "name": "breps",
            "type": "IEnumerable<Brep>",
            "summary": "Breps to project onto."
          },
          {
            "name": "direction",
            "type": "Vector3d",
            "summary": "Direction of projection."
          },
          {
            "name": "tolerance",
            "type": "System.Double",
            "summary": "Tolerance to use for projection."
          }
        ],
        "returns": "An array of projected curves or empty array if the projection set is empty."
      },
      {
        "signature": "Curve[] ProjectToMesh(Curve curve, IEnumerable<Mesh> meshes, Vector3d direction, System.Double tolerance)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Projects a curve to a set of meshes using a direction and tolerance.",
        "since": "5.0",
        "parameters": [
          {
            "name": "curve",
            "type": "Curve",
            "summary": "A curve."
          },
          {
            "name": "meshes",
            "type": "IEnumerable<Mesh>",
            "summary": "A list, an array, or any enumerable of meshes."
          },
          {
            "name": "direction",
            "type": "Vector3d",
            "summary": "A direction vector."
          },
          {
            "name": "tolerance",
            "type": "System.Double",
            "summary": "A tolerance value."
          }
        ],
        "returns": "An array of curves if successful, an empty array otherwise."
      },
      {
        "signature": "Curve[] ProjectToMesh(Curve curve, Mesh mesh, Vector3d direction, System.Double tolerance)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Projects a curve to a mesh using a direction and tolerance.",
        "since": "5.0",
        "parameters": [
          {
            "name": "curve",
            "type": "Curve",
            "summary": "A curve."
          },
          {
            "name": "mesh",
            "type": "Mesh",
            "summary": "A mesh."
          },
          {
            "name": "direction",
            "type": "Vector3d",
            "summary": "A direction vector."
          },
          {
            "name": "tolerance",
            "type": "System.Double",
            "summary": "A tolerance value."
          }
        ],
        "returns": "An array of curves if successful, an empty array otherwise."
      },
      {
        "signature": "Curve[] ProjectToMesh(IEnumerable<Curve> curves, IEnumerable<Mesh> meshes, Vector3d direction, System.Double tolerance, System.Boolean loose)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Projects a curve to a set of meshes using a direction and tolerance.",
        "since": "8.17",
        "parameters": [
          {
            "name": "curves",
            "type": "IEnumerable<Curve>",
            "summary": "A list, an array, or any enumerable of curves."
          },
          {
            "name": "meshes",
            "type": "IEnumerable<Mesh>",
            "summary": "A list, an array, or any enumerable of meshes."
          },
          {
            "name": "direction",
            "type": "Vector3d",
            "summary": "A direction vector."
          },
          {
            "name": "tolerance",
            "type": "System.Double",
            "summary": "A tolerance value."
          },
          {
            "name": "loose",
            "type": "System.Boolean",
            "summary": "If true, then project curve edit points onto meshes."
          }
        ],
        "returns": "An array of curves if successful, an empty array otherwise."
      },
      {
        "signature": "Curve[] ProjectToMesh(IEnumerable<Curve> curves, IEnumerable<Mesh> meshes, Vector3d direction, System.Double tolerance)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Projects a curve to a set of meshes using a direction and tolerance.",
        "since": "5.0",
        "parameters": [
          {
            "name": "curves",
            "type": "IEnumerable<Curve>",
            "summary": "A list, an array, or any enumerable of curves."
          },
          {
            "name": "meshes",
            "type": "IEnumerable<Mesh>",
            "summary": "A list, an array, or any enumerable of meshes."
          },
          {
            "name": "direction",
            "type": "Vector3d",
            "summary": "A direction vector."
          },
          {
            "name": "tolerance",
            "type": "System.Double",
            "summary": "A tolerance value."
          }
        ],
        "returns": "An array of curves if successful, an empty array otherwise."
      },
      {
        "signature": "Curve ProjectToPlane(Curve curve, Plane plane)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Constructs a curve by projecting an existing curve to a plane.",
        "since": "5.0",
        "parameters": [
          {
            "name": "curve",
            "type": "Curve",
            "summary": "A curve."
          },
          {
            "name": "plane",
            "type": "Plane",
            "summary": "A plane."
          }
        ],
        "returns": "The projected curve on success; None on failure."
      },
      {
        "signature": "Curve[] PullToBrepFace(Curve curve, BrepFace face, System.Double tolerance, System.Boolean loose)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Pull a curve to a BrepFace using closest point projection.",
        "since": "8.17",
        "parameters": [
          {
            "name": "curve",
            "type": "Curve",
            "summary": "Curve to pull."
          },
          {
            "name": "face",
            "type": "BrepFace",
            "summary": "Brep face that pulls."
          },
          {
            "name": "tolerance",
            "type": "System.Double",
            "summary": "Tolerance to use for pulling."
          },
          {
            "name": "loose",
            "type": "System.Boolean",
            "summary": "If true, the curve's edit points are pulled back to the Brep face's underlying surface. If any edit point misses the surface, the curve will not be created."
          }
        ],
        "returns": "An array of pulled curves, or an empty array on failure."
      },
      {
        "signature": "Curve[] PullToBrepFace(Curve curve, BrepFace face, System.Double tolerance)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Pull a curve to a BrepFace using closest point projection.",
        "since": "5.0",
        "parameters": [
          {
            "name": "curve",
            "type": "Curve",
            "summary": "Curve to pull."
          },
          {
            "name": "face",
            "type": "BrepFace",
            "summary": "Brep face that pulls."
          },
          {
            "name": "tolerance",
            "type": "System.Double",
            "summary": "Tolerance to use for pulling."
          }
        ],
        "returns": "An array of pulled curves, or an empty array on failure."
      },
      {
        "signature": "System.Boolean SortCurves(ICollection<Curve> inputCurves, System.Double tolerance, out IList<IList<SortedSegment>> groups)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Sorts the curves into joinable segment groups. No joining is performed, the curves are only analyzed for start/end proximity.",
        "parameters": [
          {
            "name": "inputCurves",
            "type": "ICollection<Curve>",
            "summary": "The curves to sort"
          },
          {
            "name": "tolerance",
            "type": "System.Double",
            "summary": "The tolerance to bridge any gaps between curves"
          },
          {
            "name": "groups",
            "type": "IList<IList<SortedSegment>>",
            "summary": "The groups of curves that can be formed upon joining. A curve that cannot be joined to any other curve forms a group of size 1. No joining is performed."
          }
        ]
      },
      {
        "signature": "System.Boolean ChangeClosedCurveSeam(System.Double t)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "If this curve is closed, then modify it so that the start/end point is at curve parameter t.",
        "since": "5.0",
        "parameters": [
          {
            "name": "t",
            "type": "System.Double",
            "summary": "Curve parameter of new start/end point. The returned curves domain will start at t."
          }
        ],
        "returns": "True on success, False on failure."
      },
      {
        "signature": "System.Boolean ChangeDimension(System.Int32 desiredDimension)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Changes the dimension of a curve.",
        "since": "5.0",
        "parameters": [
          {
            "name": "desiredDimension",
            "type": "System.Int32",
            "summary": "The desired dimension."
          }
        ],
        "returns": "True if the curve's dimension was already desiredDimension or if the curve's dimension was successfully changed to desiredDimension; otherwise false."
      },
      {
        "signature": "CurveOrientation ClosedCurveOrientation()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Determines the orientation (counterclockwise or clockwise) of a closed, planar curve in the world XY plane. Only works with simple (no self intersections) closed, planar curves.",
        "since": "6.0",
        "returns": "The orientation of this curve with respect to world XY plane."
      },
      {
        "signature": "CurveOrientation ClosedCurveOrientation(Plane plane)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Determines the orientation (counterclockwise or clockwise) of a closed, planar curve in a given plane. Only works with simple (no self intersections) closed, planar curves.",
        "since": "5.0",
        "parameters": [
          {
            "name": "plane",
            "type": "Plane",
            "summary": "The plane in which to solve the orientation."
          }
        ],
        "returns": "The orientation of this curve in the given plane."
      },
      {
        "signature": "CurveOrientation ClosedCurveOrientation(Transform xform)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Determines the orientation (counterclockwise or clockwise) of a closed, planar curve. Only works with simple (no self intersections) closed, planar curves.",
        "since": "5.0",
        "parameters": [
          {
            "name": "xform",
            "type": "Transform",
            "summary": "Transformation to map the curve to the world XY plane."
          }
        ],
        "returns": "The orientation of this curve in the world XY-plane."
      },
      {
        "signature": "CurveOrientation ClosedCurveOrientation(Vector3d upDirection)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Determines the orientation (counterclockwise or clockwise) of a closed, planar curve in a given plane. Only works with simple (no self intersections) closed, planar curves.",
        "since": "5.0",
        "parameters": [
          {
            "name": "upDirection",
            "type": "Vector3d",
            "summary": "A vector that is considered \"up\"."
          }
        ],
        "returns": "The orientation of this curve with respect to a defined up direction."
      },
      {
        "signature": "System.Boolean ClosestPoint(Point3d testPoint, out System.Double t, System.Double maximumDistance)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Finds the parameter of the point on a curve that is closest to testPoint. If the maximumDistance parameter is > 0, then only points whose distance to the given point is <= maximumDistance will be returned.  Using a positive value of maximumDistance can substantially speed up the search.",
        "since": "5.0",
        "parameters": [
          {
            "name": "testPoint",
            "type": "Point3d",
            "summary": "Point to project."
          },
          {
            "name": "t",
            "type": "System.Double",
            "summary": "parameter of local closest point returned here."
          },
          {
            "name": "maximumDistance",
            "type": "System.Double",
            "summary": "The maximum allowed distance.  \nPast this distance, the search is given up and False is returned.  \nUse 0 to turn off this parameter."
          }
        ],
        "returns": "True on success, False on failure."
      },
      {
        "signature": "System.Boolean ClosestPoint(Point3d testPoint, out System.Double t)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Finds parameter of the point on a curve that is closest to testPoint. If the maximumDistance parameter is > 0, then only points whose distance to the given point is <= maximumDistance will be returned.  Using a positive value of maximumDistance can substantially speed up the search.",
        "since": "5.0",
        "parameters": [
          {
            "name": "testPoint",
            "type": "Point3d",
            "summary": "Point to search from."
          },
          {
            "name": "t",
            "type": "System.Double",
            "summary": "Parameter of local closest point."
          }
        ],
        "returns": "True on success, False on failure."
      },
      {
        "signature": "System.Boolean ClosestPoints(Curve otherCurve, out Point3d pointOnThisCurve, out Point3d pointOnOtherCurve)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets closest points between this and another curves.",
        "since": "5.0",
        "parameters": [
          {
            "name": "otherCurve",
            "type": "Curve",
            "summary": "The other curve."
          },
          {
            "name": "pointOnThisCurve",
            "type": "Point3d",
            "summary": "The point on this curve. This out parameter is assigned during this call."
          },
          {
            "name": "pointOnOtherCurve",
            "type": "Point3d",
            "summary": "The point on other curve. This out parameter is assigned during this call."
          }
        ],
        "returns": "True on success; False on error."
      },
      {
        "signature": "System.Boolean ClosestPoints(IEnumerable<GeometryBase> geometry, out Point3d pointOnCurve, out Point3d pointOnObject, out System.Int32 whichGeometry, System.Double maximumDistance)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Finds the object (and the closest point in that object) that is closest to this curve.  \nBreps, surfaces,     curves and point clouds are examples of     objects that can be passed to this function.",
        "since": "5.0",
        "parameters": [
          {
            "name": "geometry",
            "type": "IEnumerable<GeometryBase>",
            "summary": "A list, an array or any enumerable set of geometry to search."
          },
          {
            "name": "pointOnCurve",
            "type": "Point3d",
            "summary": "The point on curve. This out parameter is assigned during this call."
          },
          {
            "name": "pointOnObject",
            "type": "Point3d",
            "summary": "The point on geometry. This out parameter is assigned during this call."
          },
          {
            "name": "whichGeometry",
            "type": "System.Int32",
            "summary": "The index of the geometry. This out parameter is assigned during this call."
          },
          {
            "name": "maximumDistance",
            "type": "System.Double",
            "summary": "Maximum allowable distance. Past this distance, the research is given up and False is returned."
          }
        ],
        "returns": "True on success; False if no object was found or selected."
      },
      {
        "signature": "System.Boolean ClosestPoints(IEnumerable<GeometryBase> geometry, out Point3d pointOnCurve, out Point3d pointOnObject, out System.Int32 whichGeometry)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Finds the object (and the closest point in that object) that is closest to this curve.  \nBreps, surfaces,     curves and point clouds are examples of     objects that can be passed to this function.",
        "since": "5.0",
        "parameters": [
          {
            "name": "geometry",
            "type": "IEnumerable<GeometryBase>",
            "summary": "A list, an array or any enumerable set of geometry to search."
          },
          {
            "name": "pointOnCurve",
            "type": "Point3d",
            "summary": "The point on curve. This out parameter is assigned during this call."
          },
          {
            "name": "pointOnObject",
            "type": "Point3d",
            "summary": "The point on geometry. This out parameter is assigned during this call."
          },
          {
            "name": "whichGeometry",
            "type": "System.Int32",
            "summary": "The index of the geometry. This out parameter is assigned during this call."
          }
        ],
        "returns": "True on success; False if no object was found or selected."
      },
      {
        "signature": "System.Boolean CombineShortSegments(System.Double tolerance)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Looks for segments that are shorter than tolerance that can be combined. For NURBS of degree greater than 1, spans are combined by removing knots. Similarly for NURBS segments of polycurves. Otherwise, RemoveShortSegments() is called. Does not change the domain, but it will change the relative parameterization.",
        "since": "7.8",
        "returns": "True if short segments were combined or removed. False otherwise."
      },
      {
        "signature": "PointContainment Contains(Point3d testPoint, Plane plane, System.Double tolerance)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Computes the relationship between a point and a closed curve region. This curve must be closed or the return value will be Unset.",
        "since": "5.0",
        "parameters": [
          {
            "name": "testPoint",
            "type": "Point3d",
            "summary": "Point to test."
          },
          {
            "name": "plane",
            "type": "Plane",
            "summary": "Plane in which to compare point and region."
          },
          {
            "name": "tolerance",
            "type": "System.Double",
            "summary": "Tolerance to use during comparison."
          }
        ],
        "returns": "Relationship between point and curve region."
      },
      {
        "signature": "PointContainment Contains(Point3d testPoint, Plane plane)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Computes the relationship between a point and a closed curve region. This curve must be closed or the return value will be Unset.",
        "since": "5.0",
        "deprecated": "6.0",
        "obsolete": "Use version that takes a tolerance",
        "parameters": [
          {
            "name": "testPoint",
            "type": "Point3d",
            "summary": "Point to test."
          },
          {
            "name": "plane",
            "type": "Plane",
            "summary": "Plane in which to compare point and region."
          }
        ],
        "returns": "Relationship between point and curve region."
      },
      {
        "signature": "PointContainment Contains(Point3d testPoint)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Computes the relationship between a point and a closed curve region. This curve must be closed or the return value will be Unset. Both curve and point are projected to the World XY plane.",
        "since": "5.0",
        "deprecated": "6.0",
        "obsolete": "Use version that takes a tolerance",
        "parameters": [
          {
            "name": "testPoint",
            "type": "Point3d",
            "summary": "Point to test."
          }
        ],
        "returns": "Relationship between point and curve region."
      },
      {
        "signature": "Polyline ControlPolygon()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the curve's control polygon.",
        "since": "8.11",
        "returns": "The control polygon as a polyline if successful, None otherwise."
      },
      {
        "signature": "Vector3d CurvatureAt(System.Double t)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Evaluate the curvature vector at a curve parameter.",
        "since": "5.0",
    "remarks": "No error handling.",
        "parameters": [
          {
            "name": "t",
            "type": "System.Double",
            "summary": "Evaluation parameter."
          }
        ],
        "returns": "Curvature vector of the curve at the parameter t."
      },
      {
        "signature": "Vector3d[] DerivativeAt(System.Double t, System.Int32 derivativeCount, CurveEvaluationSide side)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Evaluate the derivatives at the specified curve parameter.",
        "since": "5.0",
        "parameters": [
          {
            "name": "t",
            "type": "System.Double",
            "summary": "Curve parameter to evaluate."
          },
          {
            "name": "derivativeCount",
            "type": "System.Int32",
            "summary": "Number of derivatives to evaluate, must be at least 0."
          },
          {
            "name": "side",
            "type": "CurveEvaluationSide",
            "summary": "Side of parameter to evaluate. If the parameter is at a kink, it makes a big difference whether the evaluation is from below or above."
          }
        ],
        "returns": "An array of vectors that represents all the derivatives starting at zero."
      },
      {
        "signature": "Vector3d[] DerivativeAt(System.Double t, System.Int32 derivativeCount)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Evaluate the derivatives at the specified curve parameter.",
        "since": "5.0",
        "parameters": [
          {
            "name": "t",
            "type": "System.Double",
            "summary": "Curve parameter to evaluate."
          },
          {
            "name": "derivativeCount",
            "type": "System.Int32",
            "summary": "Number of derivatives to evaluate, must be at least 0."
          }
        ],
        "returns": "An array of vectors that represents all the derivatives starting at zero."
      },
      {
        "signature": "System.Void Dispose(System.Boolean disposing)",
        "modifiers": ["protected", "override"],
        "protected": true,
        "virtual": false,
        "summary": "For derived class implementers.  \nThis method is called with argument True when class user calls Dispose(), while with argument False when     the Garbage Collector invokes the finalizer, or Finalize() method.  \nYou must reclaim all used unmanaged resources in both cases, and can use this chance to call Dispose on disposable fields if the argument is true.  \nAlso, you must call the base virtual method within your overriding method.",
        "parameters": [
          {
            "name": "disposing",
            "type": "System.Boolean",
            "summary": "True if the call comes from the Dispose() method; False if it comes from the Garbage Collector finalizer."
          }
        ]
      },
      {
        "signature": "Point3d[] DivideAsContour(Point3d contourStart, Point3d contourEnd, System.Double interval)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Divides this curve at fixed steps along a defined contour line.",
        "since": "5.0",
        "parameters": [
          {
            "name": "contourStart",
            "type": "Point3d",
            "summary": "The start of the contouring line."
          },
          {
            "name": "contourEnd",
            "type": "Point3d",
            "summary": "The end of the contouring line."
          },
          {
            "name": "interval",
            "type": "System.Double",
            "summary": "A distance to measure on the contouring axis."
          }
        ],
        "returns": "An array of points; or None on error."
      },
      {
        "signature": "System.Double[] DivideByCount(System.Int32 segmentCount, System.Boolean includeEnds, out Point3d[] points)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Divide the curve into a number of equal-length segments.",
        "since": "5.0",
        "parameters": [
          {
            "name": "segmentCount",
            "type": "System.Int32",
            "summary": "Segment count. Note that the number of division points may differ from the segment count."
          },
          {
            "name": "includeEnds",
            "type": "System.Boolean",
            "summary": "If true, then the point at the start of the first division segment is returned."
          },
          {
            "name": "points",
            "type": "Point3d[]",
            "summary": "A list of division points. If the function returns successfully, this point-array will be filled in."
          }
        ],
        "returns": "Array containing division curve parameters on success, None on failure."
      },
      {
        "signature": "System.Double[] DivideByCount(System.Int32 segmentCount, System.Boolean includeEnds)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Divide the curve into a number of equal-length segments.",
        "since": "5.0",
        "parameters": [
          {
            "name": "segmentCount",
            "type": "System.Int32",
            "summary": "Segment count. Note that the number of division points may differ from the segment count."
          },
          {
            "name": "includeEnds",
            "type": "System.Boolean",
            "summary": "If true, then the point at the start of the first division segment is returned."
          }
        ],
        "returns": "List of curve parameters at the division points on success, None on failure."
      },
      {
        "signature": "System.Double[] DivideByLength(System.Double segmentLength, System.Boolean includeEnds, out Point3d[] points)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Divide the curve into specific length segments.",
        "since": "5.0",
        "parameters": [
          {
            "name": "segmentLength",
            "type": "System.Double",
            "summary": "The length of each and every segment (except potentially the last one)."
          },
          {
            "name": "includeEnds",
            "type": "System.Boolean",
            "summary": "If true, then the point at the start of the first division segment is returned."
          },
          {
            "name": "points",
            "type": "Point3d[]",
            "summary": "If function is successful, points at each parameter value are returned in points."
          }
        ],
        "returns": "Array containing division curve parameters if successful, None on failure."
      },
      {
        "signature": "System.Double[] DivideByLength(System.Double segmentLength, System.Boolean includeEnds, System.Boolean reverse, out Point3d[] points)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Divide the curve into specific length segments.",
        "since": "6.0",
        "parameters": [
          {
            "name": "segmentLength",
            "type": "System.Double",
            "summary": "The length of each and every segment (except potentially the last one)."
          },
          {
            "name": "includeEnds",
            "type": "System.Boolean",
            "summary": "If true, then the point at the start of the first division segment is returned."
          },
          {
            "name": "reverse",
            "type": "System.Boolean",
            "summary": "If true, then the divisions start from the end of the curve."
          },
          {
            "name": "points",
            "type": "Point3d[]",
            "summary": "If function is successful, points at each parameter value are returned in points."
          }
        ],
        "returns": "Array containing division curve parameters if successful, None on failure."
      },
      {
        "signature": "System.Double[] DivideByLength(System.Double segmentLength, System.Boolean includeEnds, System.Boolean reverse)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Divide the curve into specific length segments.",
        "since": "6.0",
        "parameters": [
          {
            "name": "segmentLength",
            "type": "System.Double",
            "summary": "The length of each and every segment (except potentially the last one)."
          },
          {
            "name": "includeEnds",
            "type": "System.Boolean",
            "summary": "If true, then the point at the start of the first division segment is returned."
          },
          {
            "name": "reverse",
            "type": "System.Boolean",
            "summary": "If true, then the divisions start from the end of the curve."
          }
        ],
        "returns": "Array containing division curve parameters if successful, None on failure."
      },
      {
        "signature": "System.Double[] DivideByLength(System.Double segmentLength, System.Boolean includeEnds)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Divide the curve into specific length segments.",
        "since": "5.0",
        "parameters": [
          {
            "name": "segmentLength",
            "type": "System.Double",
            "summary": "The length of each and every segment (except potentially the last one)."
          },
          {
            "name": "includeEnds",
            "type": "System.Boolean",
            "summary": "If true, then the point at the start of the first division segment is returned."
          }
        ],
        "returns": "Array containing division curve parameters if successful, None on failure."
      },
      {
        "signature": "Point3d[] DivideEquidistant(System.Double distance, out System.Double[] curveParameters)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Calculates 3d points on a curve where the linear distance between the points is equal.",
        "since": "8.14",
    "remarks": "Unlike the other divide methods, which divides a curve based on arc length, or the distance along the curve between two points, this function divides a curve based on the linear distance between points.",
        "parameters": [
          {
            "name": "distance",
            "type": "System.Double",
            "summary": "The distance between division points."
          },
          {
            "name": "curveParameters",
            "type": "System.Double[]",
            "summary": "If successful, an array of curve parameters at the point locations."
          }
        ],
        "returns": "An array of equidistant points, or None on error."
      },
      {
        "signature": "Point3d[] DivideEquidistant(System.Double distance)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Calculates 3d points on a curve where the linear distance between the points is equal.",
        "since": "5.0",
    "remarks": "Unlike the other divide methods, which divides a curve based on arc length, or the distance along the curve between two points, this function divides a curve based on the linear distance between points.",
        "parameters": [
          {
            "name": "distance",
            "type": "System.Double",
            "summary": "The distance between division points."
          }
        ],
        "returns": "An array of equidistant points, or None on error."
      },
      {
        "signature": "GeometryBase Duplicate()",
        "modifiers": ["public", "override"],
        "protected": false,
        "virtual": false,
        "summary": "Constructs an exact duplicate of this Curve.",
        "since": "5.0"
      },
      {
        "signature": "Curve DuplicateCurve()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Constructs an exact duplicate of this curve.",
        "since": "5.0",
        "returns": "An exact copy of this curve."
      },
      {
        "signature": "Curve[] DuplicateSegments()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Duplicates curve segments. Explodes polylines, polycurves and G1 discontinuous NURBS curves. Single segment curves, such as lines, arcs, unkinked NURBS curves, are duplicated.",
        "since": "5.0",
    "remarks": "Unlike <b>GetSubCurves</b> , this method produces results based on the curve's data structure.",
        "returns": "An array of all the segments that make up this curve."
      },
      {
        "signature": "Curve Extend(CurveEnd side, CurveExtensionStyle style, IEnumerable<GeometryBase> geometry)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Extends a curve until it intersects a collection of objects.",
        "since": "5.0",
        "parameters": [
          {
            "name": "side",
            "type": "CurveEnd",
            "summary": "The end of the curve to extend."
          },
          {
            "name": "style",
            "type": "CurveExtensionStyle",
            "summary": "The style or type of extension to use."
          },
          {
            "name": "geometry",
            "type": "System.Collections.Generic.IEnumerable<GeometryBase>",
            "summary": "A collection of objects. Allowable object types are Curve, Surface, Brep."
          }
        ],
        "returns": "New extended curve result on success, None on failure."
      },
      {
        "signature": "Curve Extend(CurveEnd side, CurveExtensionStyle style, Point3d endPoint)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Extends a curve to a point.",
        "since": "5.0",
        "parameters": [
          {
            "name": "side",
            "type": "CurveEnd",
            "summary": "The end of the curve to extend."
          },
          {
            "name": "style",
            "type": "CurveExtensionStyle",
            "summary": "The style or type of extension to use."
          },
          {
            "name": "endPoint",
            "type": "Point3d",
            "summary": "A new end point."
          }
        ],
        "returns": "New extended curve result on success, None on failure."
      },
      {
        "signature": "Curve Extend(CurveEnd side, System.Double length, CurveExtensionStyle style)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Extends a curve by a specific length.",
        "since": "5.0",
        "parameters": [
          {
            "name": "side",
            "type": "CurveEnd",
            "summary": "Curve end to extend."
          },
          {
            "name": "length",
            "type": "System.Double",
            "summary": "Length to add to the curve end."
          },
          {
            "name": "style",
            "type": "CurveExtensionStyle",
            "summary": "Extension style."
          }
        ],
        "returns": "A curve with extended ends or None on failure."
      },
      {
        "signature": "Curve Extend(Interval domain)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Where possible, analytically extends curve to include the given domain. This will not work on closed curves. The original curve will be identical to the restriction of the resulting curve to the original curve domain.",
        "since": "5.0",
        "parameters": [
          {
            "name": "domain",
            "type": "Interval",
            "summary": "Extension domain."
          }
        ],
        "returns": "Extended curve on success, None on failure."
      },
      {
        "signature": "Curve Extend(System.Double t0, System.Double t1)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Where possible, analytically extends curve to include the given domain. This will not work on closed curves. The original curve will be identical to the restriction of the resulting curve to the original curve domain.",
        "since": "5.0",
        "parameters": [
          {
            "name": "t0",
            "type": "System.Double",
            "summary": "Start of extension domain, if the start is not inside the Domain of this curve, an attempt will be made to extend the curve."
          },
          {
            "name": "t1",
            "type": "System.Double",
            "summary": "End of extension domain, if the end is not inside the Domain of this curve, an attempt will be made to extend the curve."
          }
        ],
        "returns": "Extended curve on success, None on failure."
      },
      {
        "signature": "Curve ExtendByArc(CurveEnd side, IEnumerable<GeometryBase> geometry)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Extends a curve by an Arc until it intersects a collection of objects.",
        "since": "5.0",
        "parameters": [
          {
            "name": "side",
            "type": "CurveEnd",
            "summary": "The end of the curve to extend."
          },
          {
            "name": "geometry",
            "type": "System.Collections.Generic.IEnumerable<GeometryBase>",
            "summary": "A collection of objects. Allowable object types are Curve, Surface, Brep."
          }
        ],
        "returns": "New extended curve result on success, None on failure."
      },
      {
        "signature": "Curve ExtendByLine(CurveEnd side, IEnumerable<GeometryBase> geometry)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Extends a curve by a line until it intersects a collection of objects.",
        "since": "5.0",
        "parameters": [
          {
            "name": "side",
            "type": "CurveEnd",
            "summary": "The end of the curve to extend."
          },
          {
            "name": "geometry",
            "type": "System.Collections.Generic.IEnumerable<GeometryBase>",
            "summary": "A collection of objects. Allowable object types are Curve, Surface, Brep."
          }
        ],
        "returns": "New extended curve result on success, None on failure."
      },
      {
        "signature": "Curve ExtendOnSurface(CurveEnd side, BrepFace face)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Extends a curve on a surface.",
        "since": "5.0",
        "parameters": [
          {
            "name": "side",
            "type": "CurveEnd",
            "summary": "The end of the curve to extend."
          },
          {
            "name": "face",
            "type": "BrepFace",
            "summary": "BrepFace that contains the curve."
          }
        ],
        "returns": "New extended curve result on success, None on failure."
      },
      {
        "signature": "Curve ExtendOnSurface(CurveEnd side, Surface surface)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Extends a curve on a surface.",
        "since": "5.0",
        "parameters": [
          {
            "name": "side",
            "type": "CurveEnd",
            "summary": "The end of the curve to extend."
          },
          {
            "name": "surface",
            "type": "Surface",
            "summary": "Surface that contains the curve."
          }
        ],
        "returns": "New extended curve result on success, None on failure."
      },
      {
        "signature": "System.Double[] ExtremeParameters(Vector3d direction)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns the parameter values of all local extrema. Parameter values are in increasing order so consecutive extrema define an interval on which each component of the curve is monotone. Note, non-periodic curves always return the end points.",
        "since": "6.0",
        "parameters": [
          {
            "name": "direction",
            "type": "Vector3d",
            "summary": "The direction in which to perform the calculation."
          }
        ],
        "returns": "The parameter values of all local extrema."
      },
      {
        "signature": "Curve Fair(System.Double distanceTolerance, System.Double angleTolerance, System.Int32 clampStart, System.Int32 clampEnd, System.Int32 iterations)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Fairs a curve object. Fair works best on degree 3 (cubic) curves. Attempts to remove large curvature variations while limiting the geometry changes to be no more than the specified tolerance.",
        "since": "5.0",
        "parameters": [
          {
            "name": "distanceTolerance",
            "type": "System.Double",
            "summary": "Maximum allowed distance the faired curve is allowed to deviate from the input."
          },
          {
            "name": "angleTolerance",
            "type": "System.Double",
            "summary": "(in radians) kinks with angles <= angleTolerance are smoothed out 0.05 is a good default."
          },
          {
            "name": "clampStart",
            "type": "System.Int32",
            "summary": "The number of (control vertices-1) to preserve at start.  \n0 = preserve start point  \n1 = preserve start point and 1st derivative  \n2 = preserve start point, 1st and 2nd derivative"
          },
          {
            "name": "clampEnd",
            "type": "System.Int32",
            "summary": "Same as clampStart."
          },
          {
            "name": "iterations",
            "type": "System.Int32",
            "summary": "The number of iterations to use in adjusting the curve."
          }
        ],
        "returns": "Returns new faired Curve on success, None on failure."
      },
      {
        "signature": "System.Boolean FilletSurfaceToCurve(BrepFace face, System.Double t, System.Double u, System.Double v, System.Double radius, System.Int32 alignToCurve, System.Int32 railDegree, System.Int32 arcDegree, IEnumerable<double> arcSliders, System.Int32 numBezierSrfs, System.Double tolerance, List<Brep> out_fillets, out System.Double[] fitResults)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Creates a constant-radius fillet surface between a surface and the curve.",
        "since": "8.0",
        "parameters": [
          {
            "name": "face",
            "type": "BrepFace",
            "summary": "the face being filleted."
          },
          {
            "name": "t",
            "type": "System.Double",
            "summary": "A parameter on the curve, indicating region of fillet."
          },
          {
            "name": "u",
            "type": "System.Double",
            "summary": "A parameter in the u direction of the face indicating which side of the curve to fillet."
          },
          {
            "name": "v",
            "type": "System.Double",
            "summary": "A parameter in the v direction of the face indicating which side of the curve to fillet."
          },
          {
            "name": "radius",
            "type": "System.Double",
            "summary": "The radius of the constant-radius fillet desired. NOTE: using arcSliders will change the shape of the arcs themselves"
          },
          {
            "name": "alignToCurve",
            "type": "System.Int32",
            "summary": "Does the user want the fillet to align to the curve? 0 - No, ignore the curve's b-spline structure 1 - Yes, match the curves's degree, spans, CVs as much as possible 2 - Same as 1, but iterate to fit to tolerance Note that a value of 1 or 2 will cause nBezierSrfs to be ignored"
          },
          {
            "name": "railDegree",
            "type": "System.Int32",
            "summary": "Desired fillet degree (3 or 5) in the u-direction, along the curve"
          },
          {
            "name": "arcDegree",
            "type": "System.Int32",
            "summary": "Desired fillet degree (2, 3, 4, or 5) in the v-direction, along the fillet arcs.If 2, then the surface is rational in v"
          },
          {
            "name": "arcSliders",
            "type": "IEnumerable<double>",
            "summary": "Array of 2 sliders to shape the fillet in the arc direction, used for arcDegree = 3, 4, or 5; input { 0.0, 0.0 } to ignore [0] (-1 to 1) slides tangent arms from base (-1) to theoretical(1) [1] (-1 to 1) slides inner CV(s) from base (-1) to theoretical(1)"
          },
          {
            "name": "numBezierSrfs",
            "type": "System.Int32",
            "summary": "If >0, this indicates the number of equally-spaced fillet surfaces to be output in the rail direction, each surface Bézier in u."
          },
          {
            "name": "tolerance",
            "type": "System.Double",
            "summary": "The tolerance. In in doubt, the document's absolute tolerance."
          },
          {
            "name": "out_fillets",
            "type": "List<Brep>",
            "summary": "he results of the fillet calculation."
          },
          {
            "name": "fitResults",
            "type": "System.Double[]",
            "summary": "array of doubles indicating fitting results: [0] max 3d point deviation along curve [1] max 3d point deviation along face [2] max angle deviation along face(in degrees) [3] max angle deviation between Bézier surfaces(in degrees) [4] max curvature difference between Bézier surfaces"
          }
        ],
        "returns": "True if successful, False otherwise."
      },
      {
        "signature": "System.Boolean FilletSurfaceToRail(BrepFace faceWithCurve, BrepFace secondFace, System.Double u1, System.Double v1, System.Int32 railDegree, System.Int32 arcDegree, IEnumerable<double> arcSliders, System.Int32 numBezierSrfs, System.Boolean extend, FilletSurfaceSplitType split_type, System.Double tolerance, List<Brep> out_fillets, List<Brep> out_breps0, List<Brep> out_breps1, out System.Double[] fitResults)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Creates a surface between two surfaces, with a fixed rail curve on the first surface.",
        "since": "8.0",
    "remarks": "The trim or split input Breps are in OutBreps0, and OutBreps1. If the input faces are from the same Brep, nothing will be added to OutBreps1.If you specified a split type of RhinoFilletSurfaceSplitType::Nothing, then nothing will be added to either OutBreps0 or OutBreps1.",
        "parameters": [
          {
            "name": "faceWithCurve",
            "type": "BrepFace",
            "summary": "The first face on which the curve exists"
          },
          {
            "name": "secondFace",
            "type": "BrepFace",
            "summary": "The second face"
          },
          {
            "name": "u1",
            "type": "System.Double",
            "summary": "A parameter in the u direction of the second face at the side you want to keep after filleting."
          },
          {
            "name": "v1",
            "type": "System.Double",
            "summary": "A parameter in the v direction of the second face at the side you want to keep after filleting."
          },
          {
            "name": "railDegree",
            "type": "System.Int32",
            "summary": "Desired fillet degree (3 or 5) in the u-direction, along the rails"
          },
          {
            "name": "arcDegree",
            "type": "System.Int32",
            "summary": "esired fillet degree (2, 3, 4, or 5) in the v-direction, along the fillet arcs.If 2, then the surface is rational in v"
          },
          {
            "name": "arcSliders",
            "type": "IEnumerable<double>",
            "summary": "Array of 2 sliders to shape the fillet in the arc direction, used for arcDegree = 3, 4, or 5; input { 0.0, 0.0 } to ignore [0] (-1 to 1) slides tangent arms from base (-1) to theoretical(1) [1] (-1 to 1) slides inner CV(s) from base (-1) to theoretical(1)"
          },
          {
            "name": "numBezierSrfs",
            "type": "System.Int32",
            "summary": "If >0, this indicates the number of equally-spaced fillet surfaces to be output in the rail direction, each surface Bézier in u."
          },
          {
            "name": "extend",
            "type": "System.Boolean",
            "summary": "If true, then when one input surface is longer than the other, the fillet surface is extended to the input surface edges."
          },
          {
            "name": "split_type",
            "type": "FilletSurfaceSplitType",
            "summary": "The split type"
          },
          {
            "name": "tolerance",
            "type": "System.Double",
            "summary": "The tolerance. In in doubt, the document's absolute tolerance."
          },
          {
            "name": "out_fillets",
            "type": "List<Brep>",
            "summary": "The results of the fillet calculation."
          },
          {
            "name": "out_breps0",
            "type": "List<Brep>",
            "summary": "The trim or split results of the Brep owned by faceWithCurve."
          },
          {
            "name": "out_breps1",
            "type": "List<Brep>",
            "summary": "The trim or split results of the Brep owned by pFace1."
          },
          {
            "name": "fitResults",
            "type": "System.Double[]",
            "summary": "array of doubles indicating fitting results: [0] max 3d point deviation along surface 0 [1] max 3d point deviation along surface 1 [2] max angle deviation along surface 0 (in degrees) [3] max angle deviation along surface 1 (in degrees) [4] max angle deviation between Bézier surfaces(in degrees) [5] max curvature difference between Bézier surfaces"
          }
        ],
        "returns": "True if successful, False otherwise."
      },
      {
        "signature": "System.Boolean FindLocalInflection(Vector3d N, Interval subDomain, System.Double seed, out System.Double curveParameter, out System.Double angleError)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Local minimization for point on a curve with tangent perpendicular to N.",
        "since": "8.0",
    "remarks": "The algorithm minimizes the square of the dot product of N with the curve tangent. It is possible that the result will not be close to zero.",
        "parameters": [
          {
            "name": "N",
            "type": "Vector3d",
            "summary": "This vector and the curve tangent define a plane. In this plane, there is a vector V perpendicular to the tangent."
          },
          {
            "name": "subDomain",
            "type": "Interval",
            "summary": "Subdomain of curve to evaluate. This must not be empty."
          },
          {
            "name": "seed",
            "type": "System.Double",
            "summary": "A seed parameter, which must be included in the subdomain."
          },
          {
            "name": "curveParameter",
            "type": "System.Double",
            "summary": "The parameter on the curve if successful, <b>RhinoMath.UnsetValue</b> if unsuccessful."
          },
          {
            "name": "angleError",
            "type": "System.Double",
            "summary": "The measure, in radians, of the angle between N and V. The angle will be zero when the result is an inflection."
          }
        ],
        "returns": "True if the minimization succeeds, regardless of angle_error, False if unsuccessful."
      },
      {
        "signature": "Curve Fit(System.Int32 degree, System.Double fitTolerance, System.Double angleTolerance)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Fits a new curve through an existing curve.",
        "since": "5.0",
        "parameters": [
          {
            "name": "degree",
            "type": "System.Int32",
            "summary": "The degree of the returned Curve. Must be bigger than 1."
          },
          {
            "name": "fitTolerance",
            "type": "System.Double",
            "summary": "The fitting tolerance. If fitTolerance is RhinoMath.UnsetValue or <=0.0, the document absolute tolerance is used."
          },
          {
            "name": "angleTolerance",
            "type": "System.Double",
            "summary": "The kink smoothing tolerance in radians.  \nIf angleTolerance is 0.0, all kinks are smoothed  \nIf angleTolerance is >0.0, kinks smaller than angleTolerance are smoothed  \nIf angleTolerance is RhinoMath.UnsetValue or <0.0, the document angle tolerance is used for the kink smoothing"
          }
        ],
        "returns": "Returns a new fitted Curve if successful, None on failure."
      },
      {
        "signature": "System.Boolean FrameAt(System.Double t, out Plane plane)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns a 3d frame at a parameter.",
        "since": "5.0",
        "parameters": [
          {
            "name": "t",
            "type": "System.Double",
            "summary": "Evaluation parameter."
          },
          {
            "name": "plane",
            "type": "Plane",
            "summary": "The frame is returned here."
          }
        ],
        "returns": "True on success, False on failure."
      },
      {
        "signature": "ConicSectionType GetConicSectionType()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns the type of conic section based on the curve's shape.",
        "since": "6.0"
      },
      {
        "signature": "ConicSectionType GetConicSectionType(out Point3d focus1, out Point3d focus2, out Point3d center)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns the type of conic section based on the curve's shape.",
        "since": "6.0",
        "parameters": [
          {
            "name": "focus1",
            "type": "Point3d",
            "summary": "The first focus point, if applicable."
          },
          {
            "name": "focus2",
            "type": "Point3d",
            "summary": "The second focus point, if applicable."
          },
          {
            "name": "center",
            "type": "Point3d",
            "summary": "The center point, if applicable."
          }
        ]
      },
      {
        "signature": "System.Boolean GetCurveParameterFromNurbsFormParameter(System.Double nurbsParameter, out System.Double curveParameter)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Convert a NURBS curve parameter to a curve parameter.",
        "since": "5.0",
    "remarks": "If HasNurbForm returns 2, this function converts the curve parameter to the NURBS curve parameter.",
        "parameters": [
          {
            "name": "nurbsParameter",
            "type": "System.Double",
            "summary": "NURBS form parameter."
          },
          {
            "name": "curveParameter",
            "type": "System.Double",
            "summary": "Curve parameter."
          }
        ],
        "returns": "True on success, False on failure."
      },
      {
        "signature": "System.Double GetLength()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the length of the curve with a fractional tolerance of 1.0e-8.",
        "since": "5.0",
        "returns": "The length of the curve on success, or zero on failure."
      },
      {
        "signature": "System.Double GetLength(Interval subdomain)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Get the length of a sub-section of the curve with a fractional tolerance of 1e-8.",
        "since": "5.0",
        "parameters": [
          {
            "name": "subdomain",
            "type": "Interval",
            "summary": "The calculation is performed on the specified sub-domain of the curve (must be non-decreasing)."
          }
        ],
        "returns": "The length of the sub-curve on success, or zero on failure."
      },
      {
        "signature": "System.Double GetLength(System.Double fractionalTolerance, Interval subdomain)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Get the length of a sub-section of the curve.",
        "since": "5.0",
        "parameters": [
          {
            "name": "fractionalTolerance",
            "type": "System.Double",
            "summary": "Desired fractional precision. fabs((\"exact\" length from start to t) - arc_length)/arc_length <= fractionalTolerance."
          },
          {
            "name": "subdomain",
            "type": "Interval",
            "summary": "The calculation is performed on the specified sub-domain of the curve (must be non-decreasing)."
          }
        ],
        "returns": "The length of the sub-curve on success, or zero on failure."
      },
      {
        "signature": "System.Double GetLength(System.Double fractionalTolerance)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Get the length of the curve.",
        "since": "5.0",
        "parameters": [
          {
            "name": "fractionalTolerance",
            "type": "System.Double",
            "summary": "Desired fractional precision. fabs((\"exact\" length from start to t) - arc_length)/arc_length <= fractionalTolerance."
          }
        ],
        "returns": "The length of the curve on success, or zero on failure."
      },
      {
        "signature": "System.Boolean GetLocalPerpPoint(Point3d testPoint, System.Double seedParmameter, Interval subDomain, out System.Double curveParameter)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Search for a location on the curve, near seedParmameter, that is perpendicular to a test point.",
        "since": "6.0",
        "parameters": [
          {
            "name": "testPoint",
            "type": "Point3d",
            "summary": "The test point."
          },
          {
            "name": "seedParmameter",
            "type": "System.Double",
            "summary": "A \"seed\" parameter on the curve."
          },
          {
            "name": "subDomain",
            "type": "Interval",
            "summary": "The sub-domain of the curve to search."
          },
          {
            "name": "curveParameter",
            "type": "System.Double",
            "summary": "The parameter value at the perpendicular point"
          }
        ],
        "returns": "True if a solution is found, False otherwise."
      },
      {
        "signature": "System.Boolean GetLocalPerpPoint(Point3d testPoint, System.Double seedParmameter, out System.Double curveParameter)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Search for a location on the curve, near seedParmameter, that is perpendicular to a test point.",
        "since": "6.0",
        "parameters": [
          {
            "name": "testPoint",
            "type": "Point3d",
            "summary": "The test point."
          },
          {
            "name": "seedParmameter",
            "type": "System.Double",
            "summary": "A \"seed\" parameter on the curve."
          },
          {
            "name": "curveParameter",
            "type": "System.Double",
            "summary": "The parameter value at the perpendicular point"
          }
        ],
        "returns": "True if a solution is found, False otherwise."
      },
      {
        "signature": "System.Boolean GetLocalTangentPoint(Point3d testPoint, System.Double seedParmameter, Interval subDomain, out System.Double curveParameter)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Search for a location on the curve, near seedParmameter, that is tangent to a test point.",
        "since": "6.0",
        "parameters": [
          {
            "name": "testPoint",
            "type": "Point3d",
            "summary": "The test point."
          },
          {
            "name": "seedParmameter",
            "type": "System.Double",
            "summary": "A \"seed\" parameter on the curve."
          },
          {
            "name": "subDomain",
            "type": "Interval",
            "summary": "The sub-domain of the curve to search."
          },
          {
            "name": "curveParameter",
            "type": "System.Double",
            "summary": "The parameter value at the tangent point"
          }
        ],
        "returns": "True if a solution is found, False otherwise."
      },
      {
        "signature": "System.Boolean GetLocalTangentPoint(Point3d testPoint, System.Double seedParmameter, out System.Double curveParameter)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Search for a location on the curve, near seedParmameter, that is tangent to a test point.",
        "since": "6.0",
        "parameters": [
          {
            "name": "testPoint",
            "type": "Point3d",
            "summary": "The test point."
          },
          {
            "name": "seedParmameter",
            "type": "System.Double",
            "summary": "A \"seed\" parameter on the curve."
          },
          {
            "name": "curveParameter",
            "type": "System.Double",
            "summary": "The parameter value at the tangent point"
          }
        ],
        "returns": "True if a solution is found, False otherwise."
      },
      {
        "signature": "System.Boolean GetNextDiscontinuity(Continuity continuityType, System.Double t0, System.Double t1, out System.Double t)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Searches for a derivative, tangent, or curvature discontinuity.",
        "since": "5.0",
        "parameters": [
          {
            "name": "continuityType",
            "type": "Continuity",
            "summary": "Type of continuity to search for."
          },
          {
            "name": "t0",
            "type": "System.Double",
            "summary": "Search begins at t0. If there is a discontinuity at t0, it will be ignored. This makes it possible to repeatedly call GetNextDiscontinuity() and step through the discontinuities."
          },
          {
            "name": "t1",
            "type": "System.Double",
            "summary": "(t0 != t1)  If there is a discontinuity at t1 it will be ignored unless continuityType is a locus discontinuity type and t1 is at the start or end of the curve."
          },
          {
            "name": "t",
            "type": "System.Double",
            "summary": "If a discontinuity is found, then t reports the parameter at the discontinuity."
          }
        ],
        "returns": "Parametric continuity tests c = (C0_continuous, ..., G2_continuous): True if a parametric discontinuity was found strictly between t0 and t1. Note well that all curves are parametrically continuous at the ends of their domains.  Locus continuity tests c = (C0_locus_continuous, ...,G2_locus_continuous): True if a locus discontinuity was found strictly between t0 and t1 or at t1 is the at the end of a curve. Note well that all open curves (IsClosed()=false) are locus discontinuous at the ends of their domains.  All closed curves (IsClosed()=true) are at least C0_locus_continuous at the ends of their domains."
      },
      {
        "signature": "System.Boolean GetNextDiscontinuity(Continuity continuityType, System.Double t0, System.Double t1, System.Double cosAngleTolerance, System.Double curvatureTolerance, out System.Double t)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Searches for a derivative, tangent, or curvature discontinuity.",
        "since": "7.4",
        "parameters": [
          {
            "name": "continuityType",
            "type": "Continuity",
            "summary": "Type of continuity to search for."
          },
          {
            "name": "t0",
            "type": "System.Double",
            "summary": "Search begins at t0. If there is a discontinuity at t0, it will be ignored. This makes it possible to repeatedly call GetNextDiscontinuity() and step through the discontinuities."
          },
          {
            "name": "t1",
            "type": "System.Double",
            "summary": "(t0 != t1)  If there is a discontinuity at t1 it will be ignored unless continuityType is a locus discontinuity type and t1 is at the start or end of the curve."
          },
          {
            "name": "cosAngleTolerance",
            "type": "System.Double",
            "summary": "default = cos(1 degree) Used only when continuity is G1_continuous or G2_continuous. If the  cosine of the angle between two tangent vectors is <= cos_angle_tolerance, then a G1 discontinuity is reported."
          },
          {
            "name": "curvatureTolerance",
            "type": "System.Double",
            "summary": "(default = ON_SQRT_EPSILON) Used only when continuity is G2_continuous. If K0 and K1 are curvatures evaluated from above and below and |K0 - K1| > curvature_tolerance, then a curvature discontinuity is reported."
          },
          {
            "name": "t",
            "type": "System.Double",
            "summary": "If a discontinuity is found, then t reports the parameter at the discontinuity."
          }
        ],
        "returns": "Parametric continuity tests c = (C0_continuous, ..., G2_continuous): True if a parametric discontinuity was found strictly between t0 and t1. Note well that all curves are parametrically continuous at the ends of their domains.  Locus continuity tests c = (C0_locus_continuous, ...,G2_locus_continuous): True if a locus discontinuity was found strictly between t0 and t1 or at t1 is the at the end of a curve. Note well that all open curves (IsClosed()=false) are locus discontinuous at the ends of their domains.  All closed curves (IsClosed()=true) are at least C0_locus_continuous at the ends of their domains."
      },
      {
        "signature": "System.Boolean GetNurbsFormParameterFromCurveParameter(System.Double curveParameter, out System.Double nurbsParameter)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Convert a curve parameter to a NURBS curve parameter.",
        "since": "5.0",
    "remarks": "If GetNurbForm returns 2, this function converts the curve parameter to the NURBS curve parameter.",
        "parameters": [
          {
            "name": "curveParameter",
            "type": "System.Double",
            "summary": "Curve parameter."
          },
          {
            "name": "nurbsParameter",
            "type": "System.Double",
            "summary": "NURBS form parameter."
          }
        ],
        "returns": "True on success, False on failure."
      },
      {
        "signature": "Plane[] GetPerpendicularFrames(IEnumerable<double> parameters)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets a collection of perpendicular frames along the curve. Perpendicular frames are also known as 'Zero-twisting frames' and they minimize rotation from one frame to the next.",
        "since": "5.0",
        "parameters": [
          {
            "name": "parameters",
            "type": "IEnumerable<double>",
            "summary": "A collection ofstrictly increasingcurve parameters to place perpendicular frames on."
          }
        ],
        "returns": "An array of perpendicular frames on success or None on failure."
      },
      {
        "signature": "Curve[] GetSubCurves()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets subcurves from a curve. The results will be similar to what is produced by Rhino's Explode command.",
        "since": "8.0",
    "remarks": "Unlike <b>DuplicateSegments</b> , this method produces results based on the curve's geometry.",
        "returns": "An array of subcurves that make up this curve."
      },
      {
        "signature": "System.Int32 HasNurbsForm()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Does a NURBS curve representation of this curve exist?",
        "since": "5.0",
        "returns": "0   unable to create NURBS representation with desired accuracy. 1   success - NURBS parameterization matches the curve's to the desired accuracy 2   success - NURBS point locus matches the curve's and the domain of the NURBS curve is correct. However, This curve's parameterization and the NURBS curve parameterization may not match. This situation happens when getting NURBS representations of curves that have a transcendental parameterization like circles."
      },
      {
        "signature": "Point3d[] InflectionPoints()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns a curve's inflection points. An inflection point is a location on a curve at which the sign of the curvature (i.e., the concavity) changes. The curvature at these locations is always 0.",
        "since": "7.0",
        "returns": "An array of points if successful, None if not successful or on error."
      },
      {
        "signature": "Point3d[] InflectionPoints(out System.Double[] curveParameters)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns a curve's inflection points. An inflection point is a location on a curve at which the sign of the curvature (i.e., the concavity) changes. The curvature at these locations is always 0.",
        "since": "8.4",
        "parameters": [
          {
            "name": "curveParameters",
            "type": "System.Double[]",
            "summary": "An array of curve parameters at the inflection points."
          }
        ],
        "returns": "An array of points if successful, None if not successful or on error."
      },
      {
        "signature": "System.Boolean IsArc()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Test a curve to see if it can be represented by an arc or circle within RhinoMath.ZeroTolerance.",
        "since": "5.0",
        "returns": "True if the curve can be represented by an arc or a circle within tolerance."
      },
      {
        "signature": "System.Boolean IsArc(System.Double tolerance)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Test a curve to see if it can be represented by an arc or circle within the given tolerance.",
        "since": "5.0",
        "parameters": [
          {
            "name": "tolerance",
            "type": "System.Double",
            "summary": "Tolerance to use when checking."
          }
        ],
        "returns": "True if the curve can be represented by an arc or a circle within tolerance."
      },
      {
        "signature": "System.Boolean IsCircle()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Test a curve to see if it can be represented by a circle within RhinoMath.ZeroTolerance.",
        "since": "5.0",
        "returns": "True if the Curve can be represented by a circle within tolerance."
      },
      {
        "signature": "System.Boolean IsCircle(System.Double tolerance)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Test a curve to see if it can be represented by a circle within the given tolerance.",
        "since": "5.0",
        "parameters": [
          {
            "name": "tolerance",
            "type": "System.Double",
            "summary": "Tolerance to use when checking."
          }
        ],
        "returns": "True if the curve can be represented by a circle to within tolerance."
      },
      {
        "signature": "System.Boolean IsClosable(System.Double tolerance, System.Double minimumAbsoluteSize, System.Double minimumRelativeSize)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Decide if it makes sense to close off this curve by moving the endpoint to the start based on start-end gap size and length of curve as approximated by chord defined by 6 points.",
        "since": "5.0",
        "parameters": [
          {
            "name": "tolerance",
            "type": "System.Double",
            "summary": "Maximum allowable distance between start and end. If start - end gap is greater than tolerance, this function will return false."
          },
          {
            "name": "minimumAbsoluteSize",
            "type": "System.Double",
            "summary": "If greater than 0.0 and none of the interior sampled points are at least minimumAbsoluteSize from start, this function will return false."
          },
          {
            "name": "minimumRelativeSize",
            "type": "System.Double",
            "summary": "If greater than 1.0 and chord length is less than minimumRelativeSize*gap, this function will return false."
          }
        ],
        "returns": "True if start and end points are close enough based on above conditions."
      },
      {
        "signature": "System.Boolean IsClosable(System.Double tolerance)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Decide if it makes sense to close off this curve by moving the endpoint to the start based on start-end gap size and length of curve as approximated by chord defined by 6 points.",
        "since": "5.0",
        "parameters": [
          {
            "name": "tolerance",
            "type": "System.Double",
            "summary": "Maximum allowable distance between start and end. If start - end gap is greater than tolerance, this function will return false."
          }
        ],
        "returns": "True if start and end points are close enough based on above conditions."
      },
      {
        "signature": "System.Boolean IsContinuous(Continuity continuityType, System.Double t)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Test continuity at a curve parameter value.",
        "since": "5.0",
        "parameters": [
          {
            "name": "continuityType",
            "type": "Continuity",
            "summary": "Type of continuity to test for."
          },
          {
            "name": "t",
            "type": "System.Double",
            "summary": "Parameter to test."
          }
        ],
        "returns": "True if the curve has at least the c type continuity at the parameter t."
      },
      {
        "signature": "System.Boolean IsEllipse()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Test a curve to see if it can be represented by an ellipse within RhinoMath.ZeroTolerance.",
        "since": "5.0",
        "returns": "True if the Curve can be represented by an ellipse within tolerance."
      },
      {
        "signature": "System.Boolean IsEllipse(System.Double tolerance)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Test a curve to see if it can be represented by an ellipse within a given tolerance.",
        "since": "5.0",
        "parameters": [
          {
            "name": "tolerance",
            "type": "System.Double",
            "summary": "Tolerance to use for checking."
          }
        ],
        "returns": "True if the Curve can be represented by an ellipse within tolerance."
      },
      {
        "signature": "System.Boolean IsInPlane(Plane testPlane, System.Double tolerance)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Test a curve to see if it lies in a specific plane.",
        "since": "5.0",
        "parameters": [
          {
            "name": "testPlane",
            "type": "Plane",
            "summary": "Plane to test for."
          },
          {
            "name": "tolerance",
            "type": "System.Double",
            "summary": "Tolerance to use when checking."
          }
        ],
        "returns": "True if the maximum distance from the curve to the testPlane is <= tolerance."
      },
      {
        "signature": "System.Boolean IsInPlane(Plane testPlane)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Test a curve to see if it lies in a specific plane.",
        "since": "5.0",
        "parameters": [
          {
            "name": "testPlane",
            "type": "Plane",
            "summary": "Plane to test for."
          }
        ],
        "returns": "True if the maximum distance from the curve to the testPlane is <= RhinoMath.ZeroTolerance."
      },
      {
        "signature": "System.Boolean IsLinear()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Test a curve to see if it is linear to within RhinoMath.ZeroTolerance units (1e-12).",
        "since": "5.0",
        "returns": "True if the curve is linear."
      },
      {
        "signature": "System.Boolean IsLinear(System.Double tolerance)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Test a curve to see if it is linear to within the custom tolerance.",
        "since": "5.0",
        "parameters": [
          {
            "name": "tolerance",
            "type": "System.Double",
            "summary": "Tolerance to use when checking linearity."
          }
        ],
        "returns": "True if the ends of the curve are farther than tolerance apart and the maximum distance from any point on the curve to the line segment connecting the curve ends is <= tolerance."
      },
      {
        "signature": "System.Boolean IsPlanar()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Test a curve for planarity.",
        "since": "5.0",
        "returns": "True if the curve is planar (flat) to within RhinoMath.ZeroTolerance units (1e-12)."
      },
      {
        "signature": "System.Boolean IsPlanar(System.Double tolerance)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Test a curve for planarity.",
        "since": "5.0",
        "parameters": [
          {
            "name": "tolerance",
            "type": "System.Double",
            "summary": "Tolerance to use when checking."
          }
        ],
        "returns": "True if there is a plane such that the maximum distance from the curve to the plane is <= tolerance."
      },
      {
        "signature": "System.Boolean IsPolyline()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Several types of Curve can have the form of a polyline including a degree 1 NurbsCurve, a PolylineCurve, and a PolyCurve all of whose segments are some form of polyline. IsPolyline tests a curve to see if it can be represented as a polyline.",
        "since": "5.0",
        "returns": "True if this curve can be represented as a polyline; otherwise, false."
      },
      {
        "signature": "System.Boolean IsShort(System.Double tolerance, Interval subdomain)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Used to quickly find short curves.",
        "since": "5.0",
    "remarks": "Faster than calling Length() and testing the result.",
        "parameters": [
          {
            "name": "tolerance",
            "type": "System.Double",
            "summary": "Length threshold value for \"shortness\"."
          },
          {
            "name": "subdomain",
            "type": "Interval",
            "summary": "The test is performed on the interval that is the intersection of sub-domain with Domain()"
          }
        ],
        "returns": "True if the length of the curve is <= tolerance."
      },
      {
        "signature": "System.Boolean IsShort(System.Double tolerance)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Used to quickly find short curves.",
        "since": "5.0",
    "remarks": "Faster than calling Length() and testing the result.",
        "parameters": [
          {
            "name": "tolerance",
            "type": "System.Double",
            "summary": "Length threshold value for \"shortness\"."
          }
        ],
        "returns": "True if the length of the curve is <= tolerance."
      },
      {
        "signature": "System.Boolean LcoalClosestPoint(Point3d testPoint, System.Double seed, out System.Double t)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Find parameter of the point on a curve that is locally closest to the testPoint.  The search for a local close point starts at a seed parameter.",
        "since": "6.3",
        "deprecated": "6.18",
        "obsolete": "Typo: use LocalClosestPoint",
        "parameters": [
          {
            "name": "testPoint",
            "type": "Point3d",
            "summary": "A point to test against."
          },
          {
            "name": "seed",
            "type": "System.Double",
            "summary": "The seed parameter."
          },
          {
            "name": "t",
            "type": "System.Double",
            "summary": ">Parameter of the curve that is closest to testPoint."
          }
        ],
        "returns": "True if the search is successful, False if the search fails."
      },
      {
        "signature": "System.Boolean LengthParameter(System.Double segmentLength, out System.Double t, Interval subdomain)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the parameter along the curve which coincides with a given length along the curve. A fractional tolerance of 1e-8 is used in this version of the function.",
        "since": "5.0",
        "parameters": [
          {
            "name": "segmentLength",
            "type": "System.Double",
            "summary": "Length of segment to measure. Must be less than or equal to the length of the sub-domain."
          },
          {
            "name": "t",
            "type": "System.Double",
            "summary": "Parameter such that the length of the curve from the start of the sub-domain to t is s."
          },
          {
            "name": "subdomain",
            "type": "Interval",
            "summary": "The calculation is performed on the specified sub-domain of the curve rather than the whole curve."
          }
        ],
        "returns": "True on success, False on failure."
      },
      {
        "signature": "System.Boolean LengthParameter(System.Double segmentLength, out System.Double t, System.Double fractionalTolerance, Interval subdomain)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the parameter along the curve which coincides with a given length along the curve.",
        "since": "5.0",
        "parameters": [
          {
            "name": "segmentLength",
            "type": "System.Double",
            "summary": "Length of segment to measure. Must be less than or equal to the length of the sub-domain."
          },
          {
            "name": "t",
            "type": "System.Double",
            "summary": "Parameter such that the length of the curve from the start of the sub-domain to t is s."
          },
          {
            "name": "fractionalTolerance",
            "type": "System.Double",
            "summary": "Desired fractional precision. fabs((\"exact\" length from start to t) - arc_length)/arc_length <= fractionalTolerance."
          },
          {
            "name": "subdomain",
            "type": "Interval",
            "summary": "The calculation is performed on the specified sub-domain of the curve rather than the whole curve."
          }
        ],
        "returns": "True on success, False on failure."
      },
      {
        "signature": "System.Boolean LengthParameter(System.Double segmentLength, out System.Double t, System.Double fractionalTolerance)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the parameter along the curve which coincides with a given length along the curve.",
        "since": "5.0",
        "parameters": [
          {
            "name": "segmentLength",
            "type": "System.Double",
            "summary": "Length of segment to measure. Must be less than or equal to the length of the curve."
          },
          {
            "name": "t",
            "type": "System.Double",
            "summary": "Parameter such that the length of the curve from the curve start point to t equals s."
          },
          {
            "name": "fractionalTolerance",
            "type": "System.Double",
            "summary": "Desired fractional precision. fabs((\"exact\" length from start to t) - arc_length)/arc_length <= fractionalTolerance."
          }
        ],
        "returns": "True on success, False on failure."
      },
      {
        "signature": "System.Boolean LengthParameter(System.Double segmentLength, out System.Double t)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the parameter along the curve which coincides with a given length along the curve. A fractional tolerance of 1e-8 is used in this version of the function.",
        "since": "5.0",
        "parameters": [
          {
            "name": "segmentLength",
            "type": "System.Double",
            "summary": "Length of segment to measure. Must be less than or equal to the length of the curve."
          },
          {
            "name": "t",
            "type": "System.Double",
            "summary": "Parameter such that the length of the curve from the curve start point to t equals length."
          }
        ],
        "returns": "True on success, False on failure."
      },
      {
        "signature": "System.Boolean LocalClosestPoint(Point3d testPoint, System.Double seed, out System.Double t)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Find parameter of the point on a curve that is locally closest to the testPoint.  The search for a local close point starts at a seed parameter.",
        "since": "6.18",
        "parameters": [
          {
            "name": "testPoint",
            "type": "Point3d",
            "summary": "A point to test against."
          },
          {
            "name": "seed",
            "type": "System.Double",
            "summary": "The seed parameter."
          },
          {
            "name": "t",
            "type": "System.Double",
            "summary": ">Parameter of the curve that is closest to testPoint."
          }
        ],
        "returns": "True if the search is successful, False if the search fails."
      },
      {
        "signature": "System.Boolean MakeClosed(System.Double tolerance)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "If IsClosed, just return true. Otherwise, decide if curve can be closed as follows: Linear curves polylinear curves with 2 segments, NURBS with 3 or less control points cannot be made closed. Also, if tolerance > 0 and the gap between start and end is larger than tolerance, curve cannot be made closed. Adjust the curve's endpoint to match its start point.",
        "since": "5.0",
        "parameters": [
          {
            "name": "tolerance",
            "type": "System.Double",
            "summary": "If nonzero, and the gap is more than tolerance, curve cannot be made closed."
          }
        ],
        "returns": "True on success, False on failure."
      },
      {
        "signature": "Point3d[] MaxCurvaturePoints()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns a curve's maximum curvature points. The maximum curvature points identify where the curvature starts to decrease in both directions from the points.",
        "since": "7.0",
        "returns": "An array of points if successful, None if not successful or on error."
      },
      {
        "signature": "Point3d[] MaxCurvaturePoints(out System.Double[] curveParameters)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns a curve's maximum curvature points. The maximum curvature points identify where the curvature starts to decrease in both directions from the points.",
        "since": "8.4",
        "parameters": [
          {
            "name": "curveParameters",
            "type": "System.Double[]",
            "summary": "An array of curve parameters at the maximum curvature points."
          }
        ],
        "returns": "An array of points if successful, None if not successful or on error."
      },
      {
        "signature": "System.Void NonConstOperation()",
        "modifiers": ["protected", "override"],
        "protected": true,
        "virtual": false,
        "summary": "For derived classes implementers.  \nDefines the necessary implementation to free the instance from being constant."
      },
      {
        "signature": "System.Boolean NormalizedLengthParameter(System.Double s, out System.Double t, Interval subdomain)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Input the parameter of the point on the curve that is a prescribed arc length from the start of the curve. A fractional tolerance of 1e-8 is used in this version of the function.",
        "since": "5.0",
        "parameters": [
          {
            "name": "s",
            "type": "System.Double",
            "summary": "Normalized arc length parameter. E.g., 0 = start of curve, 1/2 = midpoint of curve, 1 = end of curve."
          },
          {
            "name": "t",
            "type": "System.Double",
            "summary": "Parameter such that the length of the curve from its start to t is arc_length."
          },
          {
            "name": "subdomain",
            "type": "Interval",
            "summary": "The calculation is performed on the specified sub-domain of the curve."
          }
        ],
        "returns": "True on success, False on failure."
      },
      {
        "signature": "System.Boolean NormalizedLengthParameter(System.Double s, out System.Double t, System.Double fractionalTolerance, Interval subdomain)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Input the parameter of the point on the curve that is a prescribed arc length from the start of the curve.",
        "since": "5.0",
        "parameters": [
          {
            "name": "s",
            "type": "System.Double",
            "summary": "Normalized arc length parameter. E.g., 0 = start of curve, 1/2 = midpoint of curve, 1 = end of curve."
          },
          {
            "name": "t",
            "type": "System.Double",
            "summary": "Parameter such that the length of the curve from its start to t is arc_length."
          },
          {
            "name": "fractionalTolerance",
            "type": "System.Double",
            "summary": "Desired fractional precision. fabs((\"exact\" length from start to t) - arc_length)/arc_length <= fractionalTolerance."
          },
          {
            "name": "subdomain",
            "type": "Interval",
            "summary": "The calculation is performed on the specified sub-domain of the curve."
          }
        ],
        "returns": "True on success, False on failure."
      },
      {
        "signature": "System.Boolean NormalizedLengthParameter(System.Double s, out System.Double t, System.Double fractionalTolerance)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Input the parameter of the point on the curve that is a prescribed arc length from the start of the curve.",
        "since": "5.0",
        "parameters": [
          {
            "name": "s",
            "type": "System.Double",
            "summary": "Normalized arc length parameter. E.g., 0 = start of curve, 1/2 = midpoint of curve, 1 = end of curve."
          },
          {
            "name": "t",
            "type": "System.Double",
            "summary": "Parameter such that the length of the curve from its start to t is arc_length."
          },
          {
            "name": "fractionalTolerance",
            "type": "System.Double",
            "summary": "Desired fractional precision. fabs((\"exact\" length from start to t) - arc_length)/arc_length <= fractionalTolerance."
          }
        ],
        "returns": "True on success, False on failure."
      },
      {
        "signature": "System.Boolean NormalizedLengthParameter(System.Double s, out System.Double t)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Input the parameter of the point on the curve that is a prescribed arc length from the start of the curve. A fractional tolerance of 1e-8 is used in this version of the function.",
        "since": "5.0",
        "parameters": [
          {
            "name": "s",
            "type": "System.Double",
            "summary": "Normalized arc length parameter. E.g., 0 = start of curve, 1/2 = midpoint of curve, 1 = end of curve."
          },
          {
            "name": "t",
            "type": "System.Double",
            "summary": "Parameter such that the length of the curve from its start to t is arc_length."
          }
        ],
        "returns": "True on success, False on failure."
      },
      {
        "signature": "System.Double[] NormalizedLengthParameters(System.Double[] s, System.Double absoluteTolerance, Interval subdomain)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Input the parameter of the point on the curve that is a prescribed arc length from the start of the curve. A fractional tolerance of 1e-8 is used in this version of the function.",
        "since": "5.0",
        "parameters": [
          {
            "name": "s",
            "type": "System.Double[]",
            "summary": "Array of normalized arc length parameters. E.g., 0 = start of curve, 1/2 = midpoint of curve, 1 = end of curve."
          },
          {
            "name": "absoluteTolerance",
            "type": "System.Double",
            "summary": "If absoluteTolerance > 0, then the difference between (s[i+1]-s[i])*curve_length and the length of the curve segment from t[i] to t[i+1] will be <= absoluteTolerance."
          },
          {
            "name": "subdomain",
            "type": "Interval",
            "summary": "The calculation is performed on the specified sub-domain of the curve. A 0.0 s value corresponds to sub-domain->Min() and a 1.0 s value corresponds to sub-domain->Max()."
          }
        ],
        "returns": "If successful, array of curve parameters such that the length of the curve from its start to t[i] is s[i]*curve_length. Null on failure."
      },
      {
        "signature": "System.Double[] NormalizedLengthParameters(System.Double[] s, System.Double absoluteTolerance, System.Double fractionalTolerance, Interval subdomain)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Input the parameter of the point on the curve that is a prescribed arc length from the start of the curve.",
        "since": "5.0",
        "parameters": [
          {
            "name": "s",
            "type": "System.Double[]",
            "summary": "Array of normalized arc length parameters. E.g., 0 = start of curve, 1/2 = midpoint of curve, 1 = end of curve."
          },
          {
            "name": "absoluteTolerance",
            "type": "System.Double",
            "summary": "If absoluteTolerance > 0, then the difference between (s[i+1]-s[i])*curve_length and the length of the curve segment from t[i] to t[i+1] will be <= absoluteTolerance."
          },
          {
            "name": "fractionalTolerance",
            "type": "System.Double",
            "summary": "Desired fractional precision for each segment. fabs(\"true\" length - actual length)/(actual length) <= fractionalTolerance."
          },
          {
            "name": "subdomain",
            "type": "Interval",
            "summary": "The calculation is performed on the specified sub-domain of the curve. A 0.0 s value corresponds to sub-domain->Min() and a 1.0 s value corresponds to sub-domain->Max()."
          }
        ],
        "returns": "If successful, array of curve parameters such that the length of the curve from its start to t[i] is s[i]*curve_length. Null on failure."
      },
      {
        "signature": "System.Double[] NormalizedLengthParameters(System.Double[] s, System.Double absoluteTolerance, System.Double fractionalTolerance)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Input the parameter of the point on the curve that is a prescribed arc length from the start of the curve.",
        "since": "5.0",
        "parameters": [
          {
            "name": "s",
            "type": "System.Double[]",
            "summary": "Array of normalized arc length parameters. E.g., 0 = start of curve, 1/2 = midpoint of curve, 1 = end of curve."
          },
          {
            "name": "absoluteTolerance",
            "type": "System.Double",
            "summary": "If absoluteTolerance > 0, then the difference between (s[i+1]-s[i])*curve_length and the length of the curve segment from t[i] to t[i+1] will be <= absoluteTolerance."
          },
          {
            "name": "fractionalTolerance",
            "type": "System.Double",
            "summary": "Desired fractional precision for each segment. fabs(\"true\" length - actual length)/(actual length) <= fractionalTolerance."
          }
        ],
        "returns": "If successful, array of curve parameters such that the length of the curve from its start to t[i] is s[i]*curve_length. Null on failure."
      },
      {
        "signature": "System.Double[] NormalizedLengthParameters(System.Double[] s, System.Double absoluteTolerance)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Input the parameter of the point on the curve that is a prescribed arc length from the start of the curve. A fractional tolerance of 1e-8 is used in this version of the function.",
        "since": "5.0",
        "parameters": [
          {
            "name": "s",
            "type": "System.Double[]",
            "summary": "Array of normalized arc length parameters. E.g., 0 = start of curve, 1/2 = midpoint of curve, 1 = end of curve."
          },
          {
            "name": "absoluteTolerance",
            "type": "System.Double",
            "summary": "If absoluteTolerance > 0, then the difference between (s[i+1]-s[i])*curve_length and the length of the curve segment from t[i] to t[i+1] will be <= absoluteTolerance."
          }
        ],
        "returns": "If successful, array of curve parameters such that the length of the curve from its start to t[i] is s[i]*curve_length. Null on failure."
      },
      {
        "signature": "Curve[] Offset(Plane plane, System.Double distance, System.Double tolerance, CurveOffsetCornerStyle cornerStyle)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Offsets this curve. If you have a nice offset, then there will be one entry in the array. If the original curve had kinks or the offset curve had self intersections, you will get multiple segments in the output array.",
        "since": "5.0",
        "parameters": [
          {
            "name": "plane",
            "type": "Plane",
            "summary": "Offset solution plane."
          },
          {
            "name": "distance",
            "type": "System.Double",
            "summary": "The positive or negative distance to offset."
          },
          {
            "name": "tolerance",
            "type": "System.Double",
            "summary": "The offset or fitting tolerance."
          },
          {
            "name": "cornerStyle",
            "type": "CurveOffsetCornerStyle",
            "summary": "Corner style for offset kinks."
          }
        ],
        "returns": "Offset curves on success, None on failure."
      },
      {
        "signature": "Curve[] Offset(Point3d directionPoint, Vector3d normal, System.Double distance, System.Double tolerance, CurveOffsetCornerStyle cornerStyle)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Offsets this curve. If you have a nice offset, then there will be one entry in the array. If the original curve had kinks or the offset curve had self intersections, you will get multiple segments in the output array.",
        "since": "5.0",
        "parameters": [
          {
            "name": "directionPoint",
            "type": "Point3d",
            "summary": "A point that indicates the direction of the offset."
          },
          {
            "name": "normal",
            "type": "Vector3d",
            "summary": "The normal to the offset plane."
          },
          {
            "name": "distance",
            "type": "System.Double",
            "summary": "The positive or negative distance to offset."
          },
          {
            "name": "tolerance",
            "type": "System.Double",
            "summary": "The offset or fitting tolerance."
          },
          {
            "name": "cornerStyle",
            "type": "CurveOffsetCornerStyle",
            "summary": "Corner style for offset kinks."
          }
        ],
        "returns": "Offset curves on success, None on failure."
      },
      {
        "signature": "Curve[] Offset(Point3d directionPoint, Vector3d normal, System.Double distance, System.Double tolerance, System.Double angleTolerance, System.Boolean loose, CurveOffsetCornerStyle cornerStyle, CurveOffsetEndStyle endStyle)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Offsets this curve. If you have a nice offset, then there will be one entry in the array. If the original curve had kinks or the offset curve had self intersections, you will get multiple segments in the output array.",
        "since": "7.0",
        "parameters": [
          {
            "name": "directionPoint",
            "type": "Point3d",
            "summary": "A point that indicates the direction of the offset."
          },
          {
            "name": "normal",
            "type": "Vector3d",
            "summary": "The normal to the offset plane."
          },
          {
            "name": "distance",
            "type": "System.Double",
            "summary": "The positive or negative distance to offset."
          },
          {
            "name": "tolerance",
            "type": "System.Double",
            "summary": "The offset or fitting tolerance."
          },
          {
            "name": "angleTolerance",
            "type": "System.Double",
            "summary": "The angle tolerance, in radians, used to decide whether to split at kinks."
          },
          {
            "name": "loose",
            "type": "System.Boolean",
            "summary": "If false, offset within tolerance. If true, offset by moving edit points."
          },
          {
            "name": "cornerStyle",
            "type": "CurveOffsetCornerStyle",
            "summary": "Corner style for offset kinks."
          },
          {
            "name": "endStyle",
            "type": "CurveOffsetEndStyle",
            "summary": "End style for non-loose, non-closed curve offsets."
          }
        ],
        "returns": "Offset curves on success, None on failure."
      },
      {
        "signature": "Curve OffsetNormalToSurface(Surface surface, System.Double height)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Finds a curve by offsetting an existing curve normal to a surface. The caller is responsible for ensuring that the curve lies on the input surface.",
        "since": "5.0",
        "parameters": [
          {
            "name": "surface",
            "type": "Surface",
            "summary": "Surface from which normals are calculated."
          },
          {
            "name": "height",
            "type": "System.Double",
            "summary": "Offset distance."
          }
        ],
        "returns": "Curve offset normal to the surface, if successful, None otherwise. The offset curve is interpolated through a small number of points so if the surface is irregular or complicated, the result will not be a very accurate offset."
      },
      {
        "signature": "Curve[] OffsetOnSurface(BrepFace face, Point2d throughPoint, System.Double fittingTolerance)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Offset a curve on a brep face surface. This curve must lie on the surface.  \nThis overload allows to specify a surface point at which the offset will pass.",
        "since": "5.0",
        "parameters": [
          {
            "name": "face",
            "type": "BrepFace",
            "summary": "The brep face on which to offset."
          },
          {
            "name": "throughPoint",
            "type": "Point2d",
            "summary": "2d point on the brep face to offset through."
          },
          {
            "name": "fittingTolerance",
            "type": "System.Double",
            "summary": "A fitting tolerance."
          }
        ],
        "returns": "Offset curves on success, or None on failure."
      },
      {
        "signature": "Curve[] OffsetOnSurface(BrepFace face, System.Double distance, System.Double fittingTolerance)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Offset this curve on a brep face surface. This curve must lie on the surface.",
        "since": "5.0",
        "parameters": [
          {
            "name": "face",
            "type": "BrepFace",
            "summary": "The brep face on which to offset."
          },
          {
            "name": "distance",
            "type": "System.Double",
            "summary": "A distance to offset (+)left, (-)right."
          },
          {
            "name": "fittingTolerance",
            "type": "System.Double",
            "summary": "A fitting tolerance."
          }
        ],
        "returns": "Offset curves on success, or None on failure."
      },
      {
        "signature": "Curve[] OffsetOnSurface(BrepFace face, System.Double[] curveParameters, System.Double[] offsetDistances, System.Double fittingTolerance)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Offset a curve on a brep face surface. This curve must lie on the surface.  \nThis overload allows to specify different offsets for different curve parameters.",
        "since": "5.0",
        "parameters": [
          {
            "name": "face",
            "type": "BrepFace",
            "summary": "The brep face on which to offset."
          },
          {
            "name": "curveParameters",
            "type": "System.Double[]",
            "summary": "Curve parameters corresponding to the offset distances."
          },
          {
            "name": "offsetDistances",
            "type": "System.Double[]",
            "summary": "distances to offset (+)left, (-)right."
          },
          {
            "name": "fittingTolerance",
            "type": "System.Double",
            "summary": "A fitting tolerance."
          }
        ],
        "returns": "Offset curves on success, or None on failure."
      },
      {
        "signature": "Curve[] OffsetOnSurface(Surface surface, Point2d throughPoint, System.Double fittingTolerance)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Offset a curve on a surface. This curve must lie on the surface.  \nThis overload allows to specify a surface point at which the offset will pass.",
        "since": "5.0",
        "parameters": [
          {
            "name": "surface",
            "type": "Surface",
            "summary": "A surface on which to offset."
          },
          {
            "name": "throughPoint",
            "type": "Point2d",
            "summary": "2d point on the brep face to offset through."
          },
          {
            "name": "fittingTolerance",
            "type": "System.Double",
            "summary": "A fitting tolerance."
          }
        ],
        "returns": "Offset curves on success, or None on failure."
      },
      {
        "signature": "Curve[] OffsetOnSurface(Surface surface, System.Double distance, System.Double fittingTolerance)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Offset a curve on a surface. This curve must lie on the surface.",
        "since": "5.0",
        "parameters": [
          {
            "name": "surface",
            "type": "Surface",
            "summary": "A surface on which to offset."
          },
          {
            "name": "distance",
            "type": "System.Double",
            "summary": "A distance to offset (+)left, (-)right."
          },
          {
            "name": "fittingTolerance",
            "type": "System.Double",
            "summary": "A fitting tolerance."
          }
        ],
        "returns": "Offset curves on success, or None on failure."
      },
      {
        "signature": "Curve[] OffsetOnSurface(Surface surface, System.Double[] curveParameters, System.Double[] offsetDistances, System.Double fittingTolerance)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Offset this curve on a surface. This curve must lie on the surface.  \nThis overload allows to specify different offsets for different curve parameters.",
        "since": "5.0",
        "parameters": [
          {
            "name": "surface",
            "type": "Surface",
            "summary": "A surface on which to offset."
          },
          {
            "name": "curveParameters",
            "type": "System.Double[]",
            "summary": "Curve parameters corresponding to the offset distances."
          },
          {
            "name": "offsetDistances",
            "type": "System.Double[]",
            "summary": "Distances to offset (+)left, (-)right."
          },
          {
            "name": "fittingTolerance",
            "type": "System.Double",
            "summary": "A fitting tolerance."
          }
        ],
        "returns": "Offset curves on success, or None on failure."
      },
      {
        "signature": "Curve OffsetTangentToSurface(Surface surface, System.Double height)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Finds a curve by offsetting an existing curve tangent to a surface. The caller is responsible for ensuring that the curve lies on the input surface.",
        "since": "8.3",
        "parameters": [
          {
            "name": "surface",
            "type": "Surface",
            "summary": "Surface from which tangents are calculated."
          },
          {
            "name": "height",
            "type": "System.Double",
            "summary": "Offset distance."
          }
        ],
        "returns": "Curve offset tangent to the surface, if successful, None otherwise. The offset curve is interpolated through a small number of points so if the surface is irregular or complicated, the result will not be a very accurate offset."
      },
      {
        "signature": "System.Boolean PerpendicularFrameAt(System.Double t, out Plane plane)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Return a 3d frame at a parameter. This is slightly different than FrameAt in that the frame is computed in a way so there is minimal rotation from one frame to the next.",
        "since": "5.0",
        "parameters": [
          {
            "name": "t",
            "type": "System.Double",
            "summary": "Evaluation parameter."
          },
          {
            "name": "plane",
            "type": "Plane",
            "summary": "The frame is returned here."
          }
        ],
        "returns": "True on success, False on failure."
      },
      {
        "signature": "Point3d PointAt(System.Double t)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Evaluates point at a curve parameter.",
        "since": "5.0",
    "remarks": "No error handling.",
        "parameters": [
          {
            "name": "t",
            "type": "System.Double",
            "summary": "Evaluation parameter."
          }
        ],
        "returns": "Point (location of curve at the parameter t)."
      },
      {
        "signature": "Point3d PointAtLength(System.Double length)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets a point at a certain length along the curve. The length must be non-negative and less than or equal to the length of the curve. Lengths will not be wrapped when the curve is closed or periodic.",
        "since": "5.0",
        "parameters": [
          {
            "name": "length",
            "type": "System.Double",
            "summary": "Length along the curve between the start point and the returned point."
          }
        ],
        "returns": "Point on the curve at the specified length from the start point or Poin3d.Unset on failure."
      },
      {
        "signature": "Point3d PointAtNormalizedLength(System.Double length)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets a point at a certain normalized length along the curve. The length must be between or including 0.0 and 1.0, where 0.0 equals the start of the curve and 1.0 equals the end of the curve.",
        "since": "5.0",
        "parameters": [
          {
            "name": "length",
            "type": "System.Double",
            "summary": "Normalized length along the curve between the start point and the returned point."
          }
        ],
        "returns": "Point on the curve at the specified normalized length from the start point or Poin3d.Unset on failure."
      },
      {
        "signature": "Curve[] PullToBrepFace(BrepFace face, System.Double tolerance)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Pulls this curve to a brep face and returns the result of that operation.",
        "since": "5.0",
        "parameters": [
          {
            "name": "face",
            "type": "BrepFace",
            "summary": "A brep face."
          },
          {
            "name": "tolerance",
            "type": "System.Double",
            "summary": "A tolerance value."
          }
        ],
        "returns": "An array containing the resulting curves after pulling. This array could be empty."
      },
      {
        "signature": "Curve PullToMesh(Mesh mesh, System.Double tolerance, System.Boolean loose)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Projects this curve onto a mesh.",
        "since": "8.17",
        "parameters": [
          {
            "name": "mesh",
            "type": "Mesh",
            "summary": "Mesh to project onto."
          },
          {
            "name": "tolerance",
            "type": "System.Double",
            "summary": "Input tolerance. When in doubt, the document's model absolute tolerance."
          },
          {
            "name": "loose",
            "type": "System.Boolean",
            "summary": "If true, the curve's edit points are pulled back to the mesh. If any edit point misses the mesh, the curve will not be created."
          }
        ],
        "returns": "A curve if success, or None on failure."
      },
      {
        "signature": "PolylineCurve PullToMesh(Mesh mesh, System.Double tolerance)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Makes a polyline approximation of the curve and gets the closest point on the mesh for each point on the curve. Then it \"connects the points\" so that you have a polyline on the mesh.",
        "since": "5.0",
        "parameters": [
          {
            "name": "mesh",
            "type": "Mesh",
            "summary": "Mesh to project onto."
          },
          {
            "name": "tolerance",
            "type": "System.Double",
            "summary": "Input tolerance. When in doubt, the document's model absolute tolerance."
          }
        ],
        "returns": "A curve if success, or None on failure."
      },
      {
        "signature": "NurbsCurve Rebuild(System.Int32 pointCount, System.Int32 degree, System.Boolean preserveTangents)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Rebuild a curve with a specific point count.",
        "since": "5.0",
        "parameters": [
          {
            "name": "pointCount",
            "type": "System.Int32",
            "summary": "Number of control points in the rebuild curve."
          },
          {
            "name": "degree",
            "type": "System.Int32",
            "summary": "Degree of curve. Valid values are between and including 1 and 11."
          },
          {
            "name": "preserveTangents",
            "type": "System.Boolean",
            "summary": "If true, the end tangents of the input curve will be preserved."
          }
        ],
        "returns": "A NURBS curve on success or None on failure."
      },
      {
        "signature": "System.Boolean RemoveShortSegments(System.Double tolerance)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Looks for segments that are shorter than tolerance that can be removed. Does not change the domain, but it will change the relative parameterization.",
        "since": "5.0",
        "parameters": [
          {
            "name": "tolerance",
            "type": "System.Double",
            "summary": "Tolerance which defines \"short\" segments."
          }
        ],
        "returns": "True if removable short segments were found. False if no removable short segments were found."
      },
      {
        "signature": "System.Boolean Repair(System.Double tolerance)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Repairs a curve.",
        "since": "8.12",
        "parameters": [
          {
            "name": "tolerance",
            "type": "System.Double",
            "summary": "The repair tolerance."
          }
        ],
        "returns": "True if successful, False otherwise."
      },
      {
        "signature": "Curve Reparameterize()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Reparameterizes a curve using automatic parameterization.",
        "since": "8.14",
    "remarks": "Poorly parameterized objects may not intersect and trim properly when combined with other objects. \"Poorly parameterized\" means the curve's domain or the surface's u or v spaces are tiny or huge compared to the size of the object. When curves are parameterized with a [0,1] domain, both the accuracy and the precision of geometric calculations like intersections and closest points are reduced, sometimes dramatically. Ideally the domain of a curve is close to it's length.",
        "returns": "The reparameterized curve if successful, None otherwise."
      },
      {
        "signature": "System.Boolean Reverse()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Reverses the direction of the curve.",
        "since": "5.0",
    "remarks": "If reversed, the domain changes from [a,b] to [-b,-a]",
        "returns": "True on success, False on failure."
      },
      {
        "signature": "Curve RibbonOffset(RibbonOffsetParameters ribbonParameters, out Curve[] railCurves, out Curve[] crossSectionCurves, out Brep[] brepSurfaces)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Ribbon offset method to mimic RibbonOffset command",
        "since": "8.9",
        "parameters": [
          {
            "name": "ribbonParameters",
            "type": "RibbonOffsetParameters",
            "summary": "The ribbon offset parameters"
          },
          {
            "name": "railCurves",
            "type": "Curve[]",
            "summary": "on success an array of split curves representing the sweep rail segments, None on failure"
          },
          {
            "name": "crossSectionCurves",
            "type": "Curve[]",
            "summary": "on success an array of cross section curves used during brep creation, None on failure"
          },
          {
            "name": "brepSurfaces",
            "type": "Brep[]",
            "summary": "on success and array of breps representing the ribbon surfaces, None on failure"
          }
        ],
        "returns": "return an offset curve on success, None on failure"
      },
      {
        "signature": "Curve RibbonOffset(System.Double distance, System.Double blendRadius, Point3d directionPoint, Vector3d normal, System.Double tolerance, out Curve[] crossSections, out Surface[] ruledSurfaces)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Offsets a closed curve in the following way: pProject the curve to a plane with given normal. Then, loose Offset the projection by distance + blend_radius and trim off self-intersection. THen, Offset the remaining curve back in the opposite direction by blend_radius, filling gaps with blends. Finally, use the elevations of the input curve to get the correct elevations of the result.",
        "since": "7.0",
        "parameters": [
          {
            "name": "distance",
            "type": "System.Double",
            "summary": "The positive distance to offset the curve."
          },
          {
            "name": "blendRadius",
            "type": "System.Double",
            "summary": "Positive, typically the same as distance. When the offset results in a self-intersection that gets trimmed off at a kink, the kink will be blended out using this radius."
          },
          {
            "name": "directionPoint",
            "type": "Point3d",
            "summary": "A point that indicates the direction of the offset. If the offset is inward, the point's projection to the plane should be well within the curve. It will be used to decide which part of the offset to keep if there are self-intersections."
          },
          {
            "name": "normal",
            "type": "Vector3d",
            "summary": "A vector that indicates the normal of the plane in which the offset will occur."
          },
          {
            "name": "tolerance",
            "type": "System.Double",
            "summary": "Used to determine self-intersections, not offset error."
          },
          {
            "name": "crossSections",
            "type": "Curve[]",
            "summary": "Contains lines between input and the offset that might be useful as input to Brep.CreateFromSweep or some other surface creation tool."
          },
          {
            "name": "ruledSurfaces",
            "type": "Surface[]",
            "summary": "Contain ruled surfaces between the input and the parts of the offset that correspond exactly. Note, there will be gaps between these at blends."
          }
        ],
        "returns": "The offset curve if successful."
      },
      {
        "signature": "Curve RibbonOffset(System.Double distance, System.Double blendRadius, Point3d directionPoint, Vector3d normal, System.Double tolerance, out System.Double[] outputParameters, out System.Double[] curveParameters)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Offsets a closed curve in the following way: pProject the curve to a plane with given normal. Then, loose Offset the projection by distance + blend_radius and trim off self-intersection. THen, Offset the remaining curve back in the opposite direction by blend_radius, filling gaps with blends. Finally, use the elevations of the input curve to get the correct elevations of the result.",
        "since": "7.0",
        "parameters": [
          {
            "name": "distance",
            "type": "System.Double",
            "summary": "The positive distance to offset the curve."
          },
          {
            "name": "blendRadius",
            "type": "System.Double",
            "summary": "Positive, typically the same as distance. When the offset results in a self-intersection that gets trimmed off at a kink, the kink will be blended out using this radius."
          },
          {
            "name": "directionPoint",
            "type": "Point3d",
            "summary": "A point that indicates the direction of the offset. If the offset is inward, the point's projection to the plane should be well within the curve. It will be used to decide which part of the offset to keep if there are self-intersections."
          },
          {
            "name": "normal",
            "type": "Vector3d",
            "summary": "A vector that indicates the normal of the plane in which the offset will occur."
          },
          {
            "name": "tolerance",
            "type": "System.Double",
            "summary": "Used to determine self-intersections, not offset error."
          },
          {
            "name": "outputParameters",
            "type": "System.Double[]",
            "summary": "A list of parameter, paired with curveParameters, from the output curve for creating cross sections."
          },
          {
            "name": "curveParameters",
            "type": "System.Double[]",
            "summary": "A list of parameter, paired with outputParameters, from the input curve for creating cross sections."
          }
        ],
        "returns": "The offset curve if successful."
      },
      {
        "signature": "Curve RibbonOffset(System.Double distance, System.Double blendRadius, Point3d directionPoint, Vector3d normal, System.Double tolerance)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Offsets a closed curve in the following way: pProject the curve to a plane with given normal. Then, loose Offset the projection by distance + blend_radius and trim off self-intersection. THen, Offset the remaining curve back in the opposite direction by blend_radius, filling gaps with blends. Finally, use the elevations of the input curve to get the correct elevations of the result.",
        "since": "7.0",
        "parameters": [
          {
            "name": "distance",
            "type": "System.Double",
            "summary": "The positive distance to offset the curve."
          },
          {
            "name": "blendRadius",
            "type": "System.Double",
            "summary": "Positive, typically the same as distance. When the offset results in a self-intersection that gets trimmed off at a kink, the kink will be blended out using this radius."
          },
          {
            "name": "directionPoint",
            "type": "Point3d",
            "summary": "A point that indicates the direction of the offset. If the offset is inward, the point's projection to the plane should be well within the curve. It will be used to decide which part of the offset to keep if there are self-intersections."
          },
          {
            "name": "normal",
            "type": "Vector3d",
            "summary": "A vector that indicates the normal of the plane in which the offset will occur."
          },
          {
            "name": "tolerance",
            "type": "System.Double",
            "summary": "Used to determine self-intersections, not offset error."
          }
        ],
        "returns": "The offset curve if successful."
      },
      {
        "signature": "System.Boolean SetEndPoint(Point3d point)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Forces the curve to end at a specified point. Not all curve types support this operation.",
        "since": "5.0",
    "remarks": "Some end points cannot be moved. Be sure to check return code",
        "parameters": [
          {
            "name": "point",
            "type": "Point3d",
            "summary": "New end point of curve."
          }
        ],
        "returns": "True on success, False on failure."
      },
      {
        "signature": "System.Boolean SetStartPoint(Point3d point)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Forces the curve to start at a specified point. Not all curve types support this operation.",
        "since": "5.0",
    "remarks": "Some start points cannot be moved. Be sure to check return code.",
        "parameters": [
          {
            "name": "point",
            "type": "Point3d",
            "summary": "New start point of curve."
          }
        ],
        "returns": "True on success, False on failure."
      },
      {
        "signature": "Curve Simplify(CurveSimplifyOptions options, System.Double distanceTolerance, System.Double angleToleranceRadians)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns a geometrically equivalent PolyCurve.  \nThe PolyCurve has the following properties  \n1. All the PolyCurve segments are LineCurve, PolylineCurve, ArcCurve, or NurbsCurve.  \n2. The NURBS Curves segments do not have fully multiple interior knots.  \n3. Rational NURBS curves do not have constant weights.  \n4. Any segment for which IsLinear() or IsArc() is True is a Line,         Polyline segment, or an Arc.  \n5. Adjacent co-linear or co-circular segments are combined.  \n6. Segments that meet with G1-continuity have there ends tuned up so        that they meet with G1-continuity to within machine precision.",
        "since": "5.0",
        "parameters": [
          {
            "name": "options",
            "type": "CurveSimplifyOptions",
            "summary": "Simplification options."
          },
          {
            "name": "distanceTolerance",
            "type": "System.Double",
            "summary": "A distance tolerance for the simplification."
          },
          {
            "name": "angleToleranceRadians",
            "type": "System.Double",
            "summary": "An angle tolerance for the simplification."
          }
        ],
        "returns": "New simplified curve on success, None on failure."
      },
      {
        "signature": "Curve SimplifyEnd(CurveEnd end, CurveSimplifyOptions options, System.Double distanceTolerance, System.Double angleToleranceRadians)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Same as SimplifyCurve, but simplifies only the last two segments at \"side\" end.",
        "since": "5.0",
        "parameters": [
          {
            "name": "end",
            "type": "CurveEnd",
            "summary": "If CurveEnd.Start the function simplifies the last two start side segments, otherwise if CurveEnd.End the last two end side segments are simplified."
          },
          {
            "name": "options",
            "type": "CurveSimplifyOptions",
            "summary": "Simplification options."
          },
          {
            "name": "distanceTolerance",
            "type": "System.Double",
            "summary": "A distance tolerance for the simplification."
          },
          {
            "name": "angleToleranceRadians",
            "type": "System.Double",
            "summary": "An angle tolerance for the simplification."
          }
        ],
        "returns": "New simplified curve on success, None on failure."
      },
      {
        "signature": "Curve Smooth(System.Double smoothFactor, System.Boolean bXSmooth, System.Boolean bYSmooth, System.Boolean bZSmooth, System.Boolean bFixBoundaries, SmoothingCoordinateSystem coordinateSystem, Plane plane)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Smooths a curve by averaging the positions of control points in a specified region.",
        "since": "6.0",
        "parameters": [
          {
            "name": "smoothFactor",
            "type": "System.Double",
            "summary": "The smoothing factor, which controls how much control points move towards the average of the neighboring control points. Note that this smoothFactor is equivalent to twice the smooth factor used in the Smooth command: on a polyline, Rhino _Smooth with a factor of 0.2 is the same as <b>Polyline.Smooth(double)</b> with a factor of 0.4."
          },
          {
            "name": "bXSmooth",
            "type": "System.Boolean",
            "summary": "When True control points move in X axis direction."
          },
          {
            "name": "bYSmooth",
            "type": "System.Boolean",
            "summary": "When True control points move in Y axis direction."
          },
          {
            "name": "bZSmooth",
            "type": "System.Boolean",
            "summary": "When True control points move in Z axis direction."
          },
          {
            "name": "bFixBoundaries",
            "type": "System.Boolean",
            "summary": "When True the curve ends don't move."
          },
          {
            "name": "coordinateSystem",
            "type": "SmoothingCoordinateSystem",
            "summary": "The coordinates to determine the direction of the smoothing."
          },
          {
            "name": "plane",
            "type": "Plane",
            "summary": "If SmoothingCoordinateSystem.CPlane specified, then the construction plane."
          }
        ],
        "returns": "The smoothed curve if successful, None otherwise."
      },
      {
        "signature": "Curve Smooth(System.Double smoothFactor, System.Boolean bXSmooth, System.Boolean bYSmooth, System.Boolean bZSmooth, System.Boolean bFixBoundaries, SmoothingCoordinateSystem coordinateSystem)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Smooths a curve by averaging the positions of control points in a specified region.",
        "since": "6.0",
        "parameters": [
          {
            "name": "smoothFactor",
            "type": "System.Double",
            "summary": "The smoothing factor, which controls how much control points move towards the average of the neighboring control points. Note that this smoothFactor is equivalent to twice the smooth factor used in the Smooth command: on a polyline, Rhino _Smooth with a factor of 0.2 is the same as <b>Polyline.Smooth(double)</b> with a factor of 0.4."
          },
          {
            "name": "bXSmooth",
            "type": "System.Boolean",
            "summary": "When True control points move in X axis direction."
          },
          {
            "name": "bYSmooth",
            "type": "System.Boolean",
            "summary": "When True control points move in Y axis direction."
          },
          {
            "name": "bZSmooth",
            "type": "System.Boolean",
            "summary": "When True control points move in Z axis direction."
          },
          {
            "name": "bFixBoundaries",
            "type": "System.Boolean",
            "summary": "When True the curve ends don't move."
          },
          {
            "name": "coordinateSystem",
            "type": "SmoothingCoordinateSystem",
            "summary": "The coordinates to determine the direction of the smoothing."
          }
        ],
        "returns": "The smoothed curve if successful, None otherwise."
      },
      {
        "signature": "Interval SpanDomain(System.Int32 spanIndex)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Get the domain of the curve span with the given index. Use the SpanCount property to test how many spans there are.",
        "since": "5.0",
        "parameters": [
          {
            "name": "spanIndex",
            "type": "System.Int32",
            "summary": "Index of span."
          }
        ],
        "returns": "Interval of the span with the given index."
      },
      {
        "signature": "System.Double[] SpanVector()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns the vector of span division parameters for this curve.",
        "since": "8.13",
        "returns": "An array of parameter values that mark the boundaries between spans of the curve."
      },
      {
        "signature": "Curve[] Split(Brep cutter, System.Double tolerance, System.Double angleToleranceRadians)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Splits a curve into pieces using a polysurface.",
        "since": "6.0",
        "parameters": [
          {
            "name": "cutter",
            "type": "Brep",
            "summary": "A cutting surface or polysurface."
          },
          {
            "name": "tolerance",
            "type": "System.Double",
            "summary": "Tolerance for computing intersections."
          },
          {
            "name": "angleToleranceRadians",
            "type": "System.Double",
            "summary": "Angle tolerance in radians."
          }
        ],
        "returns": "An array of curves. This array can be empty."
      },
      {
        "signature": "Curve[] Split(Brep cutter, System.Double tolerance)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Splits a curve into pieces using a polysurface.",
        "since": "5.0",
        "deprecated": "6.0",
        "obsolete": "Use version that takes an angle tolerance",
        "parameters": [
          {
            "name": "cutter",
            "type": "Brep",
            "summary": "A cutting surface or polysurface."
          },
          {
            "name": "tolerance",
            "type": "System.Double",
            "summary": "A tolerance for computing intersections."
          }
        ],
        "returns": "An array of curves. This array can be empty."
      },
      {
        "signature": "Curve[] Split(IEnumerable<double> t)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Splits (divides) the curve at a series of specified parameters. The parameter must be in the interior of the curve domain.",
        "since": "5.0",
        "parameters": [
          {
            "name": "t",
            "type": "IEnumerable<double>",
            "summary": "Parameters to split the curve at in the interval returned by Domain()."
          }
        ],
        "returns": "Multiple curves on success, None on failure."
      },
      {
        "signature": "Curve[] Split(Plane plane, System.Double tolerance, System.Double angleToleranceRadians)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Splits a curve into pieces using a cutting plane.",
        "since": "9.0",
        "parameters": [
          {
            "name": "plane",
            "type": "Plane",
            "summary": "A cutting plane."
          },
          {
            "name": "tolerance",
            "type": "System.Double",
            "summary": "Tolerance for computing intersections."
          },
          {
            "name": "angleToleranceRadians",
            "type": "System.Double",
            "summary": "Angle tolerance in radians."
          }
        ],
        "returns": "An array of curves. This array can be empty."
      },
      {
        "signature": "Curve[] Split(Surface cutter, System.Double tolerance, System.Double angleToleranceRadians)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Splits a curve into pieces using a surface.",
        "since": "6.0",
        "parameters": [
          {
            "name": "cutter",
            "type": "Surface",
            "summary": "A cutting surface or polysurface."
          },
          {
            "name": "tolerance",
            "type": "System.Double",
            "summary": "Tolerance for computing intersections."
          },
          {
            "name": "angleToleranceRadians",
            "type": "System.Double",
            "summary": "Angle tolerance in radians."
          }
        ],
        "returns": "An array of curves. This array can be empty."
      },
      {
        "signature": "Curve[] Split(Surface cutter, System.Double tolerance)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Splits a curve into pieces using a surface.",
        "since": "5.0",
        "deprecated": "6.0",
        "obsolete": "Use version that takes an angle tolerance",
        "parameters": [
          {
            "name": "cutter",
            "type": "Surface",
            "summary": "A cutting surface or polysurface."
          },
          {
            "name": "tolerance",
            "type": "System.Double",
            "summary": "Tolerance for computing intersections."
          }
        ],
        "returns": "An array of curves. This array can be empty."
      },
      {
        "signature": "Curve[] Split(System.Double t)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Splits (divides) the curve at the specified parameter. The parameter must be in the interior of the curve's domain.",
        "since": "5.0",
        "parameters": [
          {
            "name": "t",
            "type": "System.Double",
            "summary": "Parameter to split the curve at in the interval returned by Domain()."
          }
        ],
        "returns": "Two curves on success, None on failure."
      },
      {
        "signature": "Vector3d TangentAt(System.Double t)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Evaluates the unit tangent vector at a curve parameter.",
        "since": "5.0",
    "remarks": "No error handling.",
        "parameters": [
          {
            "name": "t",
            "type": "System.Double",
            "summary": "Evaluation parameter."
          }
        ],
        "returns": "Unit tangent vector of the curve at the parameter t."
      },
      {
        "signature": "PolyCurve ToArcsAndLines(System.Double tolerance, System.Double angleTolerance, System.Double minimumLength, System.Double maximumLength)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Converts a curve into polycurve consisting of arc segments. Sections of the input curves that are nearly straight are converted to straight-line segments.",
        "since": "6.0",
        "parameters": [
          {
            "name": "tolerance",
            "type": "System.Double",
            "summary": "The tolerance. This is the maximum deviation from arc midpoints to the curve. When in doubt, use the document's model space absolute tolerance."
          },
          {
            "name": "angleTolerance",
            "type": "System.Double",
            "summary": "The angle tolerance in radians. This is the maximum deviation of the arc end directions from the curve direction. When in doubt, use the document's model space angle tolerance."
          },
          {
            "name": "minimumLength",
            "type": "System.Double",
            "summary": "The minimum segment length."
          },
          {
            "name": "maximumLength",
            "type": "System.Double",
            "summary": "The maximum segment length."
          }
        ],
        "returns": "PolyCurve on success, None on error."
      },
      {
        "signature": "NurbsCurve ToNurbsCurve()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Constructs a NURBS curve representation of this curve.",
        "since": "5.0",
        "returns": "NURBS representation of the curve on success, None on failure."
      },
      {
        "signature": "NurbsCurve ToNurbsCurve(Interval subdomain)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Constructs a NURBS curve representation of this curve.",
        "since": "5.0",
        "parameters": [
          {
            "name": "subdomain",
            "type": "Interval",
            "summary": "The NURBS representation for this portion of the curve is returned."
          }
        ],
        "returns": "NURBS representation of the curve on success, None on failure."
      },
      {
        "signature": "PolylineCurve ToPolyline(System.Double tolerance, System.Double angleTolerance, System.Double minimumLength, System.Double maximumLength)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets a polyline approximation of a curve.",
        "since": "6.0",
        "parameters": [
          {
            "name": "tolerance",
            "type": "System.Double",
            "summary": "The tolerance. This is the maximum deviation from line midpoints to the curve. When in doubt, use the document's model space absolute tolerance."
          },
          {
            "name": "angleTolerance",
            "type": "System.Double",
            "summary": "The angle tolerance in radians. This is the maximum deviation of the line directions. When in doubt, use the document's model space angle tolerance."
          },
          {
            "name": "minimumLength",
            "type": "System.Double",
            "summary": "The minimum segment length."
          },
          {
            "name": "maximumLength",
            "type": "System.Double",
            "summary": "The maximum segment length."
          }
        ],
        "returns": "PolyCurve on success, None on error."
      },
      {
        "signature": "PolylineCurve ToPolyline(System.Int32 mainSegmentCount, System.Int32 subSegmentCount, System.Double maxAngleRadians, System.Double maxChordLengthRatio, System.Double maxAspectRatio, System.Double tolerance, System.Double minEdgeLength, System.Double maxEdgeLength, System.Boolean keepStartPoint, Interval curveDomain)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets a polyline approximation of a curve.",
        "since": "5.0",
        "parameters": [
          {
            "name": "mainSegmentCount",
            "type": "System.Int32",
            "summary": "If mainSegmentCount <= 0, then both subSegmentCount and mainSegmentCount are ignored. If mainSegmentCount > 0, then subSegmentCount must be >= 1. In this case the NURBS will be broken into mainSegmentCount equally spaced chords. If needed, each of these chords can be split into as many subSegmentCount sub-parts if the subdivision is necessary for the mesh to meet the other meshing constraints. In particular, if subSegmentCount = 0, then the curve is broken into mainSegmentCount pieces and no further testing is performed."
          },
          {
            "name": "subSegmentCount",
            "type": "System.Int32",
            "summary": "An amount of subsegments."
          },
          {
            "name": "maxAngleRadians",
            "type": "System.Double",
            "summary": "( 0 to pi ) Maximum angle (in radians) between unit tangents at adjacent vertices."
          },
          {
            "name": "maxChordLengthRatio",
            "type": "System.Double",
            "summary": "Maximum permitted value of (distance chord midpoint to curve) / (length of chord)."
          },
          {
            "name": "maxAspectRatio",
            "type": "System.Double",
            "summary": "If maxAspectRatio < 1.0, the parameter is ignored. If 1 <= maxAspectRatio < sqrt(2), it is treated as if maxAspectRatio = sqrt(2). This parameter controls the maximum permitted value of (length of longest chord) / (length of shortest chord)."
          },
          {
            "name": "tolerance",
            "type": "System.Double",
            "summary": "If tolerance = 0, the parameter is ignored. This parameter controls the maximum permitted value of the distance from the curve to the polyline."
          },
          {
            "name": "minEdgeLength",
            "type": "System.Double",
            "summary": "The minimum permitted edge length."
          },
          {
            "name": "maxEdgeLength",
            "type": "System.Double",
            "summary": "If maxEdgeLength = 0, the parameter is ignored. This parameter controls the maximum permitted edge length."
          },
          {
            "name": "keepStartPoint",
            "type": "System.Boolean",
            "summary": "If True the starting point of the curve is added to the polyline. If False the starting point of the curve is not added to the polyline."
          },
          {
            "name": "curveDomain",
            "type": "Interval",
            "summary": "This sub-domain of the NURBS curve is approximated."
          }
        ],
        "returns": "PolylineCurve on success, None on error."
      },
      {
        "signature": "PolylineCurve ToPolyline(System.Int32 mainSegmentCount, System.Int32 subSegmentCount, System.Double maxAngleRadians, System.Double maxChordLengthRatio, System.Double maxAspectRatio, System.Double tolerance, System.Double minEdgeLength, System.Double maxEdgeLength, System.Boolean keepStartPoint)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets a polyline approximation of a curve.",
        "since": "5.0",
        "parameters": [
          {
            "name": "mainSegmentCount",
            "type": "System.Int32",
            "summary": "If mainSegmentCount <= 0, then both subSegmentCount and mainSegmentCount are ignored. If mainSegmentCount > 0, then subSegmentCount must be >= 1. In this case the NURBS will be broken into mainSegmentCount equally spaced chords. If needed, each of these chords can be split into as many subSegmentCount sub-parts if the subdivision is necessary for the mesh to meet the other meshing constraints. In particular, if subSegmentCount = 0, then the curve is broken into mainSegmentCount pieces and no further testing is performed."
          },
          {
            "name": "subSegmentCount",
            "type": "System.Int32",
            "summary": "An amount of subsegments."
          },
          {
            "name": "maxAngleRadians",
            "type": "System.Double",
            "summary": "( 0 to pi ) Maximum angle (in radians) between unit tangents at adjacent vertices."
          },
          {
            "name": "maxChordLengthRatio",
            "type": "System.Double",
            "summary": "Maximum permitted value of (distance chord midpoint to curve) / (length of chord)."
          },
          {
            "name": "maxAspectRatio",
            "type": "System.Double",
            "summary": "If maxAspectRatio < 1.0, the parameter is ignored. If 1 <= maxAspectRatio < sqrt(2), it is treated as if maxAspectRatio = sqrt(2). This parameter controls the maximum permitted value of (length of longest chord) / (length of shortest chord)."
          },
          {
            "name": "tolerance",
            "type": "System.Double",
            "summary": "If tolerance = 0, the parameter is ignored. This parameter controls the maximum permitted value of the distance from the curve to the polyline."
          },
          {
            "name": "minEdgeLength",
            "type": "System.Double",
            "summary": "The minimum permitted edge length."
          },
          {
            "name": "maxEdgeLength",
            "type": "System.Double",
            "summary": "If maxEdgeLength = 0, the parameter is ignored. This parameter controls the maximum permitted edge length."
          },
          {
            "name": "keepStartPoint",
            "type": "System.Boolean",
            "summary": "If True the starting point of the curve is added to the polyline. If False the starting point of the curve is not added to the polyline."
          }
        ],
        "returns": "PolylineCurve on success, None on error."
      },
      {
        "signature": "System.Double TorsionAt(System.Double t)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Evaluate the torsion of a curve at a parameter. Sometimes also called the \"second curvature\", torsion is the rate of change of a curve's osculating plane.",
        "since": "7.10",
    "remarks": "See Barrett O'Neill, Elementary Differential Geometry, page 69.",
        "parameters": [
          {
            "name": "t",
            "type": "System.Double",
            "summary": "The evaluation parameter."
          }
        ],
        "returns": "The torsion if successful."
      },
      {
        "signature": "Curve Trim(CurveEnd side, System.Double length)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Shortens a curve by a given length",
        "since": "5.1",
        "returns": "Trimmed curve if successful, None on failure."
      },
      {
        "signature": "Curve Trim(Interval domain)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Removes portions of the curve outside the specified interval.",
        "since": "5.0",
    "remarks": "If curve is open, then trimming interval must be an increasing interval. If curve is closed, and trimming interval is a decreasing interval, then the portion of the curve across the start/end is returned.",
        "parameters": [
          {
            "name": "domain",
            "type": "Interval",
            "summary": "Trimming interval."
          }
        ],
        "returns": "Trimmed curve if successful, None on failure."
      },
      {
        "signature": "Curve Trim(System.Double t0, System.Double t1)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Removes portions of the curve outside the specified interval.",
        "since": "5.0",
    "remarks": "If curve is open, then trimming interval must be an increasing interval. If curve is closed, and trimming interval is a decreasing interval, then the portion of the curve across the start/end is returned.",
        "parameters": [
          {
            "name": "t0",
            "type": "System.Double",
            "summary": "Start of the trimming interval."
          },
          {
            "name": "t1",
            "type": "System.Double",
            "summary": "End of the trimming interval."
          }
        ],
        "returns": "Trimmed portion of this curve is successful, None on failure."
      },
      {
        "signature": "System.Boolean TrimInterval(Interval domain)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Trims the curve in-place by removing portions of the curve outside the specified interval.",
        "since": "8.25",
    "remarks": "Portions of the curve before curve(domain[0]) and after curve(domain[1]) are removed.",
        "parameters": [
          {
            "name": "domain",
            "type": "Interval",
            "summary": "Trimming interval."
          }
        ],
        "returns": "True if successful, False otherwise."
      },
      {
        "signature": "System.Boolean TrimInterval(System.Double t0, System.Double t1)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Trims the curve in-place by removing portions of the curve outside the specified interval.",
        "since": "8.25",
    "remarks": "Portions of the curve before curve(domain[0]) and after curve(domain[1]) are removed.",
        "parameters": [
          {
            "name": "t0",
            "type": "System.Double",
            "summary": "Start of the trimming interval."
          },
          {
            "name": "t1",
            "type": "System.Double",
            "summary": "End of the trimming interval."
          }
        ],
        "returns": "True if successful, False otherwise."
      },
      {
        "signature": "System.Boolean TryGetArc(out Arc arc, System.Double tolerance)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Try to convert this curve into an Arc using a custom tolerance.",
        "since": "5.0",
        "parameters": [
          {
            "name": "arc",
            "type": "Arc",
            "summary": "On success, the Arc will be filled in."
          },
          {
            "name": "tolerance",
            "type": "System.Double",
            "summary": "Tolerance to use when checking."
          }
        ],
        "returns": "True if the curve could be converted into an arc."
      },
      {
        "signature": "System.Boolean TryGetArc(out Arc arc)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Try to convert this curve into an Arc using RhinoMath.ZeroTolerance.",
        "since": "5.0",
        "parameters": [
          {
            "name": "arc",
            "type": "Arc",
            "summary": "On success, the Arc will be filled in."
          }
        ],
        "returns": "True if the curve could be converted into an arc."
      },
      {
        "signature": "System.Boolean TryGetArc(Plane plane, out Arc arc, System.Double tolerance)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Try to convert this curve into an Arc using a custom tolerance.",
        "since": "5.0",
        "parameters": [
          {
            "name": "plane",
            "type": "Plane",
            "summary": "Plane in which the comparison is performed."
          },
          {
            "name": "arc",
            "type": "Arc",
            "summary": "On success, the Arc will be filled in."
          },
          {
            "name": "tolerance",
            "type": "System.Double",
            "summary": "Tolerance to use when checking."
          }
        ],
        "returns": "True if the curve could be converted into an arc within the given plane."
      },
      {
        "signature": "System.Boolean TryGetArc(Plane plane, out Arc arc)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Try to convert this curve into an Arc using RhinoMath.ZeroTolerance.",
        "since": "5.0",
        "parameters": [
          {
            "name": "plane",
            "type": "Plane",
            "summary": "Plane in which the comparison is performed."
          },
          {
            "name": "arc",
            "type": "Arc",
            "summary": "On success, the Arc will be filled in."
          }
        ],
        "returns": "True if the curve could be converted into an arc within the given plane."
      },
      {
        "signature": "System.Boolean TryGetCircle(out Circle circle, System.Double tolerance)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Try to convert this curve into a Circle using a custom tolerance.",
        "since": "5.0",
        "parameters": [
          {
            "name": "circle",
            "type": "Circle",
            "summary": "On success, the Circle will be filled in."
          },
          {
            "name": "tolerance",
            "type": "System.Double",
            "summary": "Tolerance to use when checking."
          }
        ],
        "returns": "True if the curve could be converted into a Circle within tolerance."
      },
      {
        "signature": "System.Boolean TryGetCircle(out Circle circle)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Try to convert this curve into a circle using RhinoMath.ZeroTolerance.",
        "since": "5.0",
        "parameters": [
          {
            "name": "circle",
            "type": "Circle",
            "summary": "On success, the Circle will be filled in."
          }
        ],
        "returns": "True if the curve could be converted into a Circle."
      },
      {
        "signature": "System.Boolean TryGetEllipse(out Ellipse ellipse, System.Double tolerance)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Try to convert this curve into an Ellipse using a custom tolerance.",
        "since": "5.0",
        "parameters": [
          {
            "name": "ellipse",
            "type": "Ellipse",
            "summary": "On success, the Ellipse will be filled in."
          },
          {
            "name": "tolerance",
            "type": "System.Double",
            "summary": "Tolerance to use when checking."
          }
        ],
        "returns": "True if the curve could be converted into an Ellipse."
      },
      {
        "signature": "System.Boolean TryGetEllipse(out Ellipse ellipse)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Try to convert this curve into an Ellipse within RhinoMath.ZeroTolerance.",
        "since": "5.0",
        "parameters": [
          {
            "name": "ellipse",
            "type": "Ellipse",
            "summary": "On success, the Ellipse will be filled in."
          }
        ],
        "returns": "True if the curve could be converted into an Ellipse."
      },
      {
        "signature": "System.Boolean TryGetEllipse(Plane plane, out Ellipse ellipse, System.Double tolerance)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Try to convert this curve into an Ellipse using a custom tolerance.",
        "since": "5.0",
        "parameters": [
          {
            "name": "plane",
            "type": "Plane",
            "summary": "Plane in which the comparison is performed."
          },
          {
            "name": "ellipse",
            "type": "Ellipse",
            "summary": "On success, the Ellipse will be filled in."
          },
          {
            "name": "tolerance",
            "type": "System.Double",
            "summary": "Tolerance to use when checking."
          }
        ],
        "returns": "True if the curve could be converted into an Ellipse within the given plane."
      },
      {
        "signature": "System.Boolean TryGetEllipse(Plane plane, out Ellipse ellipse)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Try to convert this curve into an Ellipse within RhinoMath.ZeroTolerance.",
        "since": "5.0",
        "parameters": [
          {
            "name": "plane",
            "type": "Plane",
            "summary": "Plane in which the comparison is performed."
          },
          {
            "name": "ellipse",
            "type": "Ellipse",
            "summary": "On success, the Ellipse will be filled in."
          }
        ],
        "returns": "True if the curve could be converted into an Ellipse within the given plane."
      },
      {
        "signature": "System.Boolean TryGetPlane(out Plane plane, System.Double tolerance)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Test a curve for planarity and return the plane.",
        "since": "5.0",
        "parameters": [
          {
            "name": "plane",
            "type": "Plane",
            "summary": "On success, the plane parameters are filled in."
          },
          {
            "name": "tolerance",
            "type": "System.Double",
            "summary": "Tolerance to use when checking."
          }
        ],
        "returns": "True if there is a plane such that the maximum distance from the curve to the plane is <= tolerance."
      },
      {
        "signature": "System.Boolean TryGetPlane(out Plane plane)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Test a curve for planarity and return the plane.",
        "since": "5.0",
        "parameters": [
          {
            "name": "plane",
            "type": "Plane",
            "summary": "On success, the plane parameters are filled in."
          }
        ],
        "returns": "True if there is a plane such that the maximum distance from the curve to the plane is <= RhinoMath.ZeroTolerance."
      },
      {
        "signature": "System.Boolean TryGetPolyline(out Polyline polyline, out System.Double[] parameters)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Several types of Curve can have the form of a polyline including a degree 1 NurbsCurve, a PolylineCurve, and a PolyCurve all of whose segments are some form of polyline. IsPolyline tests a curve to see if it can be represented as a polyline.",
        "since": "5.0",
        "parameters": [
          {
            "name": "polyline",
            "type": "Polyline",
            "summary": "If True is returned, then the polyline form is returned here."
          },
          {
            "name": "parameters",
            "type": "System.Double[]",
            "summary": "if True is returned, then the parameters of the polyline points are returned here."
          }
        ],
        "returns": "True if this curve can be represented as a polyline; otherwise, false."
      },
      {
        "signature": "System.Boolean TryGetPolyline(out Polyline polyline)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Several types of Curve can have the form of a polyline including a degree 1 NurbsCurve, a PolylineCurve, and a PolyCurve all of whose segments are some form of polyline. IsPolyline tests a curve to see if it can be represented as a polyline.",
        "since": "5.0",
        "parameters": [
          {
            "name": "polyline",
            "type": "Polyline",
            "summary": "If True is returned, then the polyline form is returned here."
          }
        ],
        "returns": "True if this curve can be represented as a polyline; otherwise, false."
      }
    ]
  },
  {
    "namespace": "Rhino.Geometry",
    "name": "Curve.SortedSegment",
    "dataType": "struct",
    "summary": "A segment in a sorted curve collection",
    "fields": [
      {
        "signature": "public bool Reversed",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Indicates if the curve is to be reversed"
      },
      {
        "signature": "public int CurveId",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "The id in the original input curve collection"
      }
    ]

  },
  {
    "namespace": "Rhino.Geometry",
    "name": "CurveBooleanRegions",
    "dataType": "class",
    "summary": "Represents the results of a Curve.CreateBooleanRegions calculation.",
    "interfaces": ["IDisposable"],
    "constructors": [
      {
        "signature": "CurveBooleanRegions(SerializationInfo info, StreamingContext context)",
        "modifiers": ["protected"],
        "protected": true,
        "virtual": false,
        "summary": "Protected constructor used in serialization.",
        "parameters": [
          {
            "name": "info",
            "type": "System.Runtime.Serialization.SerializationInfo",
            "summary": "Serialization data."
          },
          {
            "name": "context",
            "type": "System.Runtime.Serialization.StreamingContext",
            "summary": "Serialization stream."
          }
        ]
      }
    ],
    "properties": [
      {
        "signature": "int PlanarCurveCount",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns number of planar curves that were calculated by Curve.CreateBooleanRegions.",
        "since": "7.0",
        "property": ["get"]
      },
      {
        "signature": "int PointCount",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "If this object were created using the Curve.CreateBooleanRegions override that accepts a collection of points as input, then this value will be equal to the length of the points collection.",
        "since": "7.0",
        "property": ["get"]
      },
      {
        "signature": "int RegionCount",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns the number of curve regions. A curve region is a collection of curves that bound a single connected region of the plane.",
        "since": "7.0",
        "property": ["get"]
      }
    ],
    "methods": [
      {
        "signature": "System.Int32 BoundaryCount(System.Int32 regionIndex)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns the number of boundary curves in a curve region.",
        "since": "7.0",
        "parameters": [
          {
            "name": "regionIndex",
            "type": "System.Int32",
            "summary": "The curve region index."
          }
        ],
        "returns": "The number of boundary curves in the curve region."
      },
      {
        "signature": "System.Void Dispose()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Actively reclaims unmanaged resources that this instance uses.",
        "since": "7.0"
      },
      {
        "signature": "System.Void Dispose(System.Boolean disposing)",
        "modifiers": ["protected", "virtual"],
        "protected": true,
        "virtual": true,
        "summary": "This method is called with argument True when class user calls Dispose(), while with argument False when the Garbage Collector invokes the finalizer, or Finalize() method. You must reclaim all used unmanaged resources in both cases, and can use this chance to call Dispose on disposable fields if the argument is true. Also, you must call the base virtual method within your overriding method."
      },
      {
        "signature": "Curve PlanarCurve(System.Int32 planarCurveIndex)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns a planar curve that was calculated by Curve.CreateBooleanRegions.",
        "since": "7.0",
        "returns": "The planar curve if successful, None if not successful."
      },
      {
        "signature": "Curve[] RegionCurves(System.Int32 regionIndex)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns the boundary curves in a curve region. A curve region is a collection of curves that bound a single connected region of the plane. Note, the first curve is always the outer boundary.",
        "since": "7.0",
        "parameters": [
          {
            "name": "regionIndex",
            "type": "System.Int32",
            "summary": "The curve region index."
          }
        ],
        "returns": "An array of boundary curves if successful, an empty array if not successful."
      },
      {
        "signature": "System.Int32 RegionPointIndex(System.Int32 pointIndex)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "If this object were created using the Curve.CreateBooleanRegions override that accepts a collection of points as input, then you this method to retrieve the index of the point contained in a curve region. If this.RegionPointIndex(i) = n, then points[i] is contained in this.RegionCurves(n). If points[i] is not in any region, then this.RegionPointIndex(i) = -1.",
        "since": "7.0",
        "parameters": [
          {
            "name": "pointIndex",
            "type": "System.Int32",
            "summary": "The point index."
          }
        ],
        "returns": "The index of the input point contained in the specified region if successful, or -1 if points[i] was not used in any region or if not successful."
      },
      {
        "signature": "System.Int32 SegmentCount(System.Int32 regionIndex, System.Int32 boundaryIndex)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns the number of segments in a boundary curve in a curve region.",
        "since": "7.0",
        "parameters": [
          {
            "name": "regionIndex",
            "type": "System.Int32",
            "summary": "The curve region index."
          },
          {
            "name": "boundaryIndex",
            "type": "System.Int32",
            "summary": "The boundary curve index."
          }
        ],
        "returns": "The number of curve segments in th boundary curves."
      },
      {
        "signature": "System.Int32 SegmentDetails(System.Int32 regionIndex, System.Int32 boundaryIndex, System.Int32 segmmentIndex, out Interval subDomain, out System.Boolean reversed)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns the details of a segment in a boundary curve in a curve region.",
        "since": "7.0",
        "parameters": [
          {
            "name": "regionIndex",
            "type": "System.Int32",
            "summary": "The curve region index."
          },
          {
            "name": "boundaryIndex",
            "type": "System.Int32",
            "summary": "The boundary curve index."
          },
          {
            "name": "segmmentIndex",
            "type": "System.Int32",
            "summary": "The segment index."
          },
          {
            "name": "subDomain",
            "type": "Interval",
            "summary": "The sub-domain of the planar curve used by the segment."
          },
          {
            "name": "reversed",
            "type": "System.Boolean",
            "summary": "True if the piece of the planar curve should be reversed."
          }
        ],
        "returns": "The index of the planar curve used by the specified segment if successful, -1 if not successful."
      }
    ]
  },
  {
    "namespace": "Rhino.Geometry",
    "name": "CurveEnd",
    "dataType": "enum",
    "summary": "Defines the extremes of a curve through a flagged enumeration.",
    "since": "5.0",
    "values": [
      {
        "signature": "None = 0",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Not the start nor the end."
      },
      {
        "signature": "Start = 1",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "The frontal part of the curve."
      },
      {
        "signature": "End = 2",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "The tail part of the curve."
      },
      {
        "signature": "Both = 3",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Both the start and the end of the curve."
      }
    ]

  },
  {
    "namespace": "Rhino.Geometry",
    "name": "CurveEvaluationSide",
    "dataType": "enum",
    "summary": "Defines enumerated values for the options that defines a curve evaluation side when evaluating kinks.",
    "since": "5.0",
    "values": [
      {
        "signature": "Default = 0",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "The default evaluation side."
      },
      {
        "signature": "Below = -1",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "The below evaluation side."
      },
      {
        "signature": "Above = +1",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "The above evaluation side."
      }
    ]

  },
  {
    "namespace": "Rhino.Geometry",
    "name": "CurveExtensionStyle",
    "dataType": "enum",
    "summary": "Defines enumerated values for styles to use during curve extension, such as \"Line\", \"Arc\" or \"Smooth\".",
    "since": "5.0",
    "values": [
      {
        "signature": "Line = 0",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Curve ends will be propagated linearly according to tangents."
      },
      {
        "signature": "Arc = 1",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Curve ends will be propagated arc-wise according to curvature."
      },
      {
        "signature": "Smooth = 2",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Curve ends will be propagated smoothly according to curvature."
      }
    ]

  },
  {
    "namespace": "Rhino.Geometry",
    "name": "CurveKinkDefinition",
    "dataType": "class",
    "summary": "A \"kink\" in a curve is a unit tangent discontinuity or a vector curvature discontinuity. This class is used to determine which types and magnitudes of unit tangent discontinuities and vector curvature discontinuities should are a \"kink.\" It also provides functions for determining if there is a kink at a specific curve parameter.",
    "interfaces": ["IDisposable"],
    "constructors": [
      {
        "signature": "CurveKinkDefinition()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Construct a new instance with default values."
      },
      {
        "signature": "CurveKinkDefinition(double kinkAngleDegrees, double curvatureKinkRadiusRatio, bool kinkAtTangentChange, bool kinkAtCurvatureChange)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Create a CurveKinkDefinition with specified settings.",
        "parameters": [
          {
            "name": "kinkAngleDegrees",
            "type": "System.Double",
            "summary": "0 <= kinkAngleDegrees <= 180. Values > 180 are treated as 180 and other values outside the [0,180] are treated as ON_CurveKinkDefinition::DefaultPolylineTangentKinkAngleDegrees. If a curve is a polyline and the angle (in degrees) between the tangents at a tangent discontinuity is > polyline_tangent_kink_angle_degrees, then that discontinuity is treated as a kink. In particular, passing 180.0 disables tangent discontinuity checks for polyline curves."
          },
          {
            "name": "curvatureKinkRadiusRatio",
            "type": "System.Double",
            "summary": "0 <= curvatureKinkRadiusRatio <= 1. Values > 1 are treated as 1 and other values outside the [0,1] are treated as ON_CurveKinkDefinition::DefaultCurvatureKinkRadiusRatio. If the ratio (minimum radius of curvature)/(maximum radius of curvature) at a curvature discontinuity is < curvature_kink_radius_ratio, then that discontinuity is treated as a kink. In particular, passing 0.0 disables curvature radius discontinuity checks."
          },
          {
            "name": "kinkAtTangentChange",
            "type": "System.Boolean",
            "summary": "True if tangent discontinuities should be tested to determine if the tangent discontinuity is a kink. False to ignore tangent discontinuities."
          },
          {
            "name": "kinkAtCurvatureChange",
            "type": "System.Boolean",
            "summary": "True if curvature discontinuities should be tested to determine if the curvature discontinuity is a kink. False to ignore curvature discontinuities."
          }
        ]
      }
    ],
    "properties": [
      {
        "signature": "double CurvatureKinkRadiusRatio",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "If the ratio (minimum radius of curvature)/(maximum radius of curvature) at a curvature discontinuity is < <b>CurvatureKinkRadiusRatio</b> , then that curvature discontinuity is treated as a kink. In particular, if <b>CurvatureKinkRadiusRatio</b> = 0, then curvature radius discontinuity checks are disabled.",
        "property": ["get", "set"]
      },
      {
        "signature": "double CurvatureKinkZeroTolerance",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "If the curvature <= <b>CurvatureKinkZeroTolerance</b> , then it is treated as zero curvature. Put another way, if (radius of curvature) * <b>CurvatureKinkZeroTolerance</b> >= 1, then the radius is treated as infinite. If <b>CurvatureKinkZeroTolerance</b> > 0, then the curvature kink test is scale dependent. If <b>CurvatureKinkZeroTolerance</b> = 0, then the curvature kink test is indpendent of scale.",
        "property": ["get", "set"]
      },
      {
        "signature": "double KinkAngleDegrees",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "The angle, in degrees, used to determine if when an abrupt change in tangent or curvature vector direction is a kink.",
        "property": ["get", "set"]
      },
      {
        "signature": "bool KinkAtCurvatureChange",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns True if curvature discontinuities should be tested when finding kinks. The angle used vector curvature direction discontinuities is KinkAngleDegrees(). The ratio used for radius of curvature discontinuities is CurvatureKinkRadiusRatio().",
        "property": ["get", "set"]
      },
      {
        "signature": "bool KinkAtTangentChange",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns True if tangent discontinuities should be tested when finding kinks. The angle used for testing is KinkAngleDegrees().",
        "property": ["get", "set"]
      }
    ],
    "methods": [
      {
        "signature": "System.Boolean ComputeCurvatureRadiusRatio(Vector3d curvatureFromBelow, Vector3d curvatureFromAbove, out System.Double radiusOfCurvatureRatio, out System.Double curvatureVectorAngleDegrees)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Calculates the curvature radius ratio and the angle between the two curvature vectors.",
        "parameters": [
          {
            "name": "curvatureFromBelow",
            "type": "Vector3d",
            "summary": ""
          },
          {
            "name": "curvatureFromAbove",
            "type": "Vector3d",
            "summary": ""
          },
          {
            "name": "radiusOfCurvatureRatio",
            "type": "System.Double",
            "summary": ""
          },
          {
            "name": "curvatureVectorAngleDegrees",
            "type": "System.Double",
            "summary": "If one or both of the vectors have zero length, this returns RhinoMath.UnsetValue"
          }
        ]
      },
      {
        "signature": "System.Void Dispose()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Actively reclaims unmanaged resources that this instance uses."
      },
      {
        "signature": "System.Void Dispose(System.Boolean disposing)",
        "modifiers": ["protected", "virtual"],
        "protected": true,
        "virtual": true,
        "summary": "For derived class implementers.  \nThis method is called with argument True when class user calls Dispose(), while with argument False when     the Garbage Collector invokes the finalizer, or Finalize() method.  \nYou must reclaim all used unmanaged resources in both cases, and can use this chance to call Dispose on disposable fields if the argument is true.  \nAlso, you must call the base virtual method within your overriding method.",
        "parameters": [
          {
            "name": "disposing",
            "type": "System.Boolean",
            "summary": "True if the call comes from the Dispose() method; False if it comes from the Garbage Collector finalizer."
          }
        ]
      },
      {
        "signature": "System.Boolean IsCurvatureKink(Curve curve, System.Double t)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "True if there is a curvature discontinuity at curve(t) that passes the curvature kink test."
      },
      {
        "signature": "System.Boolean IsCurvatureKink(Vector3d curvatureFromBelow, Vector3d curvatureFromAbove)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "True if the angle between curvature_from_below and curvature_from_above is > <b>KinkAngleDegrees</b>  or the ratio min/max < <b>CurvatureKinkRadiusRatio</b> , where min and max are the minimum and maximum lengths of curvatureFromBelow and v. Both of these tests are scale independent. If an input curvature vector has length <= <b>CurvatureKinkZeroTolerance</b> , then that curvature is treated as zero. When is <b>CurvatureKinkZeroTolerance</b> > 0, the test is scale dependent. The default value is chosen to work reasonably well for most models at most scales.",
        "returns": "True if either curvature vector is not valid or if, based on the tests described above, they are different enough to be considered a \"curvature kink.\""
      },
      {
        "signature": "System.Boolean IsCurvatureZero(System.Double curvature)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns True if the curvature vector is considered to be zero given the  <b>CurvatureKinkZeroTolerance</b>"
      },
      {
        "signature": "System.Boolean IsCurvatureZero(Vector3d curvature)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns True if the curvature vector is considered to be zero given the  <b>CurvatureKinkZeroTolerance</b>"
      },
      {
        "signature": "System.Boolean IsKink(Curve curve, System.Double t)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "True if there is a kink at curve(t)."
      },
      {
        "signature": "System.Boolean IsTangentKink(Curve curve, System.Double t)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "True if there is a tangent discontinuity at curve(t) and the agnle between the two tangents is > <b>KinkAngleDegrees</b>"
      },
      {
        "signature": "System.Boolean IsTangentKink(Vector3d tangentFromBelow, Vector3d tangentFromAbove)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "True if the angle between tangent_from_below and tangent_from_above is > <b>KinkAngleDegrees</b>"
      }
    ]
  },
  {
    "namespace": "Rhino.Geometry",
    "name": "CurveKnotStyle",
    "dataType": "enum",
    "summary": "Defines enumerated values for knot spacing styles in interpolated curves.",
    "since": "5.0",
    "values": [
      {
        "signature": "Uniform = 0",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Parameter spacing between consecutive knots is 1.0."
      },
      {
        "signature": "Chord = 1",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Chord length spacing, requires degree=3 with CV1 and CVn1 specified."
      },
      {
        "signature": "ChordSquareRoot = 2",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Square root of chord length, requires degree=3 with CV1 and CVn1 specified."
      },
      {
        "signature": "UniformPeriodic = 3",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Periodic with uniform spacing."
      },
      {
        "signature": "ChordPeriodic = 4",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Periodic with chord length spacing."
      },
      {
        "signature": "ChordSquareRootPeriodic = 5",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Periodic with square root of chord length spacing."
      }
    ]

  },
  {
    "namespace": "Rhino.Geometry",
    "name": "CurveOffsetCornerStyle",
    "dataType": "enum",
    "summary": "Defines enumerated values for all implemented corner styles in curve offsets.",
    "since": "5.0",
    "values": [
      {
        "signature": "None = 0",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "The default value."
      },
      {
        "signature": "Sharp = 1",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Offsets and extends curves with a straight line until they intersect."
      },
      {
        "signature": "Round = 2",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Offsets and fillets curves with an arc of radius equal to the offset distance."
      },
      {
        "signature": "Smooth = 3",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Offsets and connects curves with a smooth (G1 continuity) curve."
      },
      {
        "signature": "Chamfer = 4",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Offsets and connects curves with a straight line between their endpoints."
      }
    ]

  },
  {
    "namespace": "Rhino.Geometry",
    "name": "CurveOffsetEndStyle",
    "dataType": "enum",
    "summary": "Defines enumerated values for all implemented end styles in curve offsets.",
    "since": "7.0",
    "values": [
      {
        "signature": "None = 0",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "No closing segments are added."
      },
      {
        "signature": "Flat = 1",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Straight-line segments are added between the curves."
      },
      {
        "signature": "Round = 2",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Tangent arcs are added between the curves."
      }
    ]

  },
  {
    "namespace": "Rhino.Geometry",
    "name": "CurveOrientation",
    "dataType": "enum",
    "summary": "Defines enumerated values for closed curve orientations.",
    "since": "5.0",
    "values": [
      {
        "signature": "Undefined = 0",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Unable to compute the curve's orientation."
      },
      {
        "signature": "Clockwise = -1",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "The curve's orientation is clockwise in the XY plane."
      },
      {
        "signature": "CounterClockwise = +1",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "The curve's orientation is counter clockwise in the XY plane."
      }
    ]

  },
  {
    "namespace": "Rhino.Geometry",
    "name": "CurveProxy",
    "dataType": "class",
    "summary": "Represent curve geometry. Usually this is part of another piece of geometry that can be represented as a \"proxy\".",
    "baseclass": "Rhino.Geometry.Curve",
    "constructors": [
      {
        "signature": "CurveProxy()",
        "modifiers": ["protected"],
        "protected": true,
        "virtual": false,
        "summary": "Protected constructor for internal use."
      }
    ],
    "properties": [
      {
        "signature": "bool ProxyCurveIsReversed",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "True if \"this\" is a curve is reversed from the \"real\" curve geometry",
        "since": "5.10",
        "property": ["get"]
      }
    ]
  },
  {
    "namespace": "Rhino.Geometry",
    "name": "CurveSimplifyOptions",
    "dataType": "enum",
    "summary": "Enumerates the options to use when simplifying a curve.",
    "since": "5.0",
    "values": [
      {
        "signature": "None = 0",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "No option is specified."
      },
      {
        "signature": "SplitAtFullyMultipleKnots = 1",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Split NurbsCurves at fully multiple knots. Effectively turning single NURBS segments with kinks into multiple segments."
      },
      {
        "signature": "RebuildLines = 2",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Replace linear segments with LineCurves."
      },
      {
        "signature": "RebuildArcs = 4",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Replace partially circular segments with ArcCurves."
      },
      {
        "signature": "RebuildRationals = 8",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Replace rational NURBS curve with constant weights with an equivalent non-rational NurbsCurve."
      },
      {
        "signature": "AdjustG1 = 16",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Adjust segments that are G1 to each other. Segments might only be G1 within tolerance. This can affect downstream operations, such as offsetting. So, if G1 within tolerance, adjust segments so to be exactly G1."
      },
      {
        "signature": "Merge = 32",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Merge adjacent co-linear lines or co-circular arcs or combine consecutive line segments into a polyline."
      },
      {
        "signature": "All = SplitAtFullyMultipleKnots | RebuildLines | RebuildArcs | RebuildRationals | AdjustG1 | Merge",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Implies all of the simplification functions will be used."
      }
    ]

  },
  {
    "namespace": "Rhino.Geometry",
    "name": "Cylinder",
    "dataType": "struct",
    "summary": "Represents the values of a plane, a radius and two heights -on top and beneath- that define a right circular cylinder.",
    "constructors": [
      {
        "signature": "Cylinder(Circle baseCircle, double height)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Constructs a new cylinder with a finite height.",
        "since": "5.0",
        "parameters": [
          {
            "name": "baseCircle",
            "type": "Circle",
            "summary": "Base circle for cylinder."
          },
          {
            "name": "height",
            "type": "System.Double",
            "summary": "Height of cylinder (zero for infinite cylinder)."
          }
        ]
      },
      {
        "signature": "Cylinder(Circle baseCircle)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Constructs a new cylinder with infinite height.",
        "since": "5.0",
        "parameters": [
          {
            "name": "baseCircle",
            "type": "Circle",
            "summary": "Base circle for infinite cylinder."
          }
        ]
      }
    ],
    "properties": [
      {
        "signature": "Cylinder Unset",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Gets an invalid Cylinder.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "Vector3d Axis",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the axis direction of the cylinder.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "Plane BasePlane",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the base plane of the cylinder.",
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "Point3d Center",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the center point of the defining circle.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "double Height1",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the start height of the cylinder. The center of bottom cap is: BasePlane.Origin + Height1 * BasePlane.ZAxis.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "double Height2",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the end height of the cylinder. If the end height equals the start height, the cylinder is presumed to be infinite. The center of top cap is: BasePlane.Origin + Height2 * BasePlane.ZAxis.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool IsFinite",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "True if the cylinder is finite (Height0 != Height1) False if the cylinder is infinite.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "bool IsValid",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets a boolean value indicating whether this cylinder is valid.  \nA valid cylinder is represented by a valid circle and two valid heights.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "double Radius",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the radius of the cylinder.",
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "double TotalHeight",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the height of the cylinder. Infinite cylinders have a height of zero, not Double.PositiveInfinity.",
        "since": "5.0",
        "property": ["get"]
      }
    ],
    "methods": [
      {
        "signature": "Circle CircleAt(System.Double linearParameter)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Compute the circle at the given elevation parameter.",
        "since": "5.0",
        "parameters": [
          {
            "name": "linearParameter",
            "type": "System.Double",
            "summary": "Height parameter for circle section."
          }
        ]
      },
      {
        "signature": "System.Boolean EpsilonEquals(Cylinder other, System.Double epsilon)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Check that all values in other are within epsilon of the values in this",
        "since": "5.4"
      },
      {
        "signature": "Line LineAt(System.Double angularParameter)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Compute the line at the given angle parameter. This line will be degenerate if the cylinder is infinite.",
        "since": "5.0",
        "parameters": [
          {
            "name": "angularParameter",
            "type": "System.Double",
            "summary": "Angle parameter for line section."
          }
        ]
      },
      {
        "signature": "Brep ToBrep(System.Boolean capBottom, System.Boolean capTop)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Constructs a Brep representation of this Cylinder. This is synonymous with calling NurbsSurface.CreateFromCylinder().",
        "since": "5.0",
        "parameters": [
          {
            "name": "capBottom",
            "type": "System.Boolean",
            "summary": "If true, the bottom of the cylinder will be capped."
          },
          {
            "name": "capTop",
            "type": "System.Boolean",
            "summary": "If true, the top of the cylinder will be capped."
          }
        ],
        "returns": "A Brep representation of the cylinder or null."
      },
      {
        "signature": "NurbsSurface ToNurbsSurface()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Constructs a Nurbs surface representation of this cylinder. This is synonymous with calling NurbsSurface.CreateFromCylinder().",
        "since": "5.0",
        "returns": "A Nurbs surface representation of the cylinder or null."
      },
      {
        "signature": "RevSurface ToRevSurface()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Constructs a RevSurface representation of this Cylinder. This is synonymous with calling RevSurface.CreateFromCylinder().",
        "since": "5.0",
        "returns": "A RevSurface representation of the cylinder or null."
      },
      {
        "signature": "System.Boolean Transform(Transform xform)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Transforms this cylinder. Note that non-similarity preserving transformations cannot be applied to a cylinder.",
        "since": "8.15",
        "parameters": [
          {
            "name": "xform",
            "type": "Transform",
            "summary": "Transformation matrix to apply."
          }
        ],
        "returns": "True on success, False on failure."
      }
    ]
  },
  {
    "namespace": "Rhino.Geometry",
    "name": "DetailView",
    "dataType": "class",
    "summary": "Represents a view of the model placed on a page layout.",
    "baseclass": "Rhino.Geometry.GeometryBase",
    "constructors": [
      {
        "signature": "DetailView(SerializationInfo info, StreamingContext context)",
        "modifiers": ["protected"],
        "protected": true,
        "virtual": false,
        "summary": "Protected serialization constructor for internal use.",
        "parameters": [
          {
            "name": "info",
            "type": "System.Runtime.Serialization.SerializationInfo",
            "summary": "Data to be serialized."
          },
          {
            "name": "context",
            "type": "System.Runtime.Serialization.StreamingContext",
            "summary": "Serialization stream."
          }
        ]
      }
    ],
    "properties": [
      {
        "signature": "bool IsParallelProjection",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets whether the view is parallel.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool IsPerspectiveProjection",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets whether the view is perspective.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool IsProjectionLocked",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets whether the view is locked.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "double PageToModelRatio",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the ratio of page units to model units for this detail view. Returns 0 if the projection is not parallel.",
        "since": "5.0",
    "remarks": "This property is only meaningful when <b>IsParallelProjection</b> is true. For non-parallel projections, the ratio is undefined and this property returns 0.",
        "property": ["get"]
      }
    ],
    "methods": [
      {
        "signature": "System.Boolean SetScale(System.Double modelLength, Rhino.LengthUnit modelUnits, System.Double pageLength, Rhino.LengthUnit pageUnits)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Sets the detail viewport's projection so geometry is displayed at a certain scale.",
        "since": "9.0",
        "parameters": [
          {
            "name": "modelLength",
            "type": "System.Double",
            "summary": "Reference model length."
          },
          {
            "name": "modelUnits",
            "type": "Rhino.LengthUnit",
            "summary": "Units for model length."
          },
          {
            "name": "pageLength",
            "type": "System.Double",
            "summary": "Length on page that the modelLength should equal."
          },
          {
            "name": "pageUnits",
            "type": "Rhino.LengthUnit",
            "summary": "Units for page length."
          }
        ],
        "returns": "True on success. False if the DetailView projection is perspective or input values are incongruous."
      },
      {
        "signature": "System.Boolean SetScale(System.Double modelLength, Rhino.UnitSystem modelUnits, System.Double pageLength, Rhino.UnitSystem pageUnits)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Sets the detail viewport's projection so geometry is displayed at a certain scale.",
        "since": "5.0",
        "deprecated": "9.0",
        "obsolete": "Since 9.0",
        "parameters": [
          {
            "name": "modelLength",
            "type": "System.Double",
            "summary": "Reference model length."
          },
          {
            "name": "modelUnits",
            "type": "Rhino.UnitSystem",
            "summary": "Units for model length."
          },
          {
            "name": "pageLength",
            "type": "System.Double",
            "summary": "Length on page that the modelLength should equal."
          },
          {
            "name": "pageUnits",
            "type": "Rhino.UnitSystem",
            "summary": "Units for page length."
          }
        ],
        "returns": "True on success. False if the DetailView projection is perspective or input values are incongruous."
      }
    ]
  },
  {
    "namespace": "Rhino.Geometry",
    "name": "DevelopableSrf",
    "dataType": "class",
    "summary": "Helpers for developable surface functions",
    "constructors": [
      {
        "signature": "DevelopableSrf()",
        "summary": "Initializes a new instance of the DevelopableSrf class"
      }
    ],
    "methods": [
      {
        "signature": "System.Int32 GetLocalDevopableRuling(NurbsCurve rail0, System.Double t0, Interval dom0, NurbsCurve rail1, System.Double t1, Interval dom1, ref System.Double t0_out, ref System.Double t1_out)",
        "modifiers": ["static", "public"],
        "protected": false,
        "virtual": false,
        "summary": "Finds minimum twist ruling between 2 curves at local domains",
        "since": "6.0",
        "parameters": [
          {
            "name": "rail0",
            "type": "NurbsCurve",
            "summary": "First rail"
          },
          {
            "name": "t0",
            "type": "System.Double",
            "summary": "Seed parameter on first rail"
          },
          {
            "name": "dom0",
            "type": "Interval",
            "summary": "Parameter sub-domain to adjust in on first rail"
          },
          {
            "name": "rail1",
            "type": "NurbsCurve",
            "summary": "Second rail"
          },
          {
            "name": "t1",
            "type": "System.Double",
            "summary": "Seed parameter on second rail"
          },
          {
            "name": "dom1",
            "type": "Interval",
            "summary": "Parameter sub-domain to adjust in on second rail"
          },
          {
            "name": "t0_out",
            "type": "System.Double",
            "summary": "Result ruling on first rail"
          },
          {
            "name": "t1_out",
            "type": "System.Double",
            "summary": "Result ruling on second rail"
          }
        ],
        "returns": "-1: Error 0: Exact non-twisting ruling found between t0_out and t1_out 1: Ruling found between t0_out and t1_out that has less twist the ruling between t0 and t1"
      },
      {
        "signature": "System.Boolean RulingMinTwist(NurbsCurve rail0, System.Double t0, Interval dom0, NurbsCurve rail1, System.Double t1, Interval dom1, ref System.Double t0_out, ref System.Double t1_out, ref System.Double cos_twist_out)",
        "modifiers": ["static", "public"],
        "protected": false,
        "virtual": false,
        "summary": "Find a ruling from rail0(t0_out) to rail1(t1_out) that has the least twist across the ruling with t0_out in domain0 and t1_out in domain1. max_cos_twist is cos(twist) for the returned ruling",
        "since": "6.0"
      },
      {
        "signature": "System.Boolean RulingMinTwist(NurbsCurve rail0, System.Double t0, NurbsCurve rail1, System.Double t1, Interval dom1, ref System.Double t1_out, ref System.Double cos_twist_out)",
        "modifiers": ["static", "public"],
        "protected": false,
        "virtual": false,
        "summary": "Find a ruling from rail0(t0) to rail1(t1_out) that has the least twist across the ruling with t1_out in domain1. max_cos_twist is cos(twist) for the returned ruling",
        "since": "6.0"
      },
      {
        "signature": "System.Boolean UntwistRulings(NurbsCurve rail0, NurbsCurve rail1, ref IEnumerable<Point2d> rulings)",
        "modifiers": ["static", "public"],
        "protected": false,
        "virtual": false
      }
    ]
  },
  {
    "namespace": "Rhino.Geometry",
    "name": "Dimension",
    "dataType": "class",
    "summary": "Base class for dimensions",
    "baseclass": "Rhino.Geometry.AnnotationBase",
    "constructors": [
      {
        "signature": "Dimension()",
        "modifiers": ["protected"],
        "protected": true,
        "virtual": false
      },
      {
        "signature": "Dimension(SerializationInfo info, StreamingContext context)",
        "modifiers": ["protected"],
        "protected": true,
        "virtual": false
      }
    ],
    "properties": [
      {
        "signature": "bool AlternateBelowLine",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "double AltLengthFactor",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "int AltLengthResolution",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "double AltLengthRoundoff",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "string AltPrefix",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "string AltSuffix",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "int AltToleranceResolution",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool AltUnitsDisplay",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "ZeroSuppression AltZeroSuppression",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "Guid ArrowBlockId1",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "Guid ArrowBlockId2",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "ArrowFit ArrowFit",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.20",
        "property": ["get", "set"]
      },
      {
        "signature": "ArrowType ArrowheadType1",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "ArrowType ArrowheadType2",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "double ArrowSize",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "double BaselineSpacing",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "double CentermarkSize",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "CenterMarkStyle CentermarkStyle",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "Guid DetailMeasured",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "double DimensionLineExtension",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "double DistanceScale",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "double ExtensionLineExtension",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "double ExtensionLineOffset",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "double FixedExtensionLength",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool FixedLengthExtensionOn",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "ForceArrow ForceArrowPosition",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool ForceDimensionLineBetweenExtensionLines",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.20",
        "property": ["get", "set"]
      },
      {
        "signature": "bool ForceDimLine",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.20",
        "property": ["get", "set"]
      },
      {
        "signature": "ForceText ForceTextPosition",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "double LengthFactor",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "int LengthResolution",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "double LengthRoundoff",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "double NumericValue",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the numeric value (or measurement), depending on geometry type.  \nLinearDimension: distance between arrow tips  \nRadialDimension: radius or diameter depending on type  \nAngularDimension: angle in radians",
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "string PlainUserText",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "string Prefix",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "string Suffix",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool SuppressExtension1",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool SuppressExtension2",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "LeaderContentAngleStyle TextAngleType",
        "modifiers": ["public", "virtual"],
        "protected": false,
        "virtual": true,
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "TextFit TextFit",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.20",
        "property": ["get", "set"]
      },
      {
        "signature": "string TextFormula",
        "modifiers": ["public", "new"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "TextLocation TextLocation",
        "modifiers": ["public", "virtual"],
        "protected": false,
        "virtual": true,
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "TextOrientation TextOrientation",
        "modifiers": ["public", "virtual"],
        "protected": false,
        "virtual": true,
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "Point2d TextPosition",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets and sets the position of text on the plane.",
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "double TextRotation",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "ToleranceDisplayFormat ToleranceFormat",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "double ToleranceHeightScale",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "double ToleranceLowerValue",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "int ToleranceResolution",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "double ToleranceUpperValue",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool UseDefaultTextPoint",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "ZeroSuppression ZeroSuppression",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get", "set"]
      }
    ],
    "methods": [
      {
        "signature": "GeometryBase[] Explode()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Explodes this dimension into its geometric components.",
        "since": "8.0",
        "returns": "An array of Curve and TextEntity objects. If the leader is using user-defined arrowheads, InstanceReferenceGeometry objects will be included."
      },
      {
        "signature": "Transform GetTextTransform(ViewportInfo viewport, DimensionStyle style, System.Double textScale, System.Boolean drawForward)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Get the transform for this text object's text geometry",
        "since": "6.0",
        "parameters": [
          {
            "name": "viewport",
            "type": "ViewportInfo",
            "summary": "Viewport where text is being used"
          },
          {
            "name": "style",
            "type": "DimensionStyle",
            "summary": "Dimension's DimensionStyle"
          },
          {
            "name": "textScale",
            "type": "System.Double",
            "summary": "Scale to apply to text"
          },
          {
            "name": "drawForward",
            "type": "System.Boolean",
            "summary": "Draw text front-facing"
          }
        ]
      },
      {
        "signature": "System.Void SetAltDimensionLengthDisplayWithZeroSuppressionReset(DimensionStyle.LengthDisplay ld)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0"
      },
      {
        "signature": "System.Void SetDimensionLengthDisplayWithZeroSuppressionReset(DimensionStyle.LengthDisplay ld)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0"
      },
      {
        "signature": "System.Void UpdateDimensionText(DimensionStyle style, LengthUnit units)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Remakes dimension text geometry object and sets it on the dimension.",
        "since": "9.0",
        "parameters": [
          {
            "name": "style",
            "type": "DimensionStyle",
            "summary": "The dimension style."
          },
          {
            "name": "units",
            "type": "LengthUnit",
            "summary": "The length units."
          }
        ]
      },
      {
        "signature": "System.Void UpdateDimensionText(DimensionStyle style, UnitSystem units)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Remakes dimension text geometry object and sets it on the dimension.",
        "since": "7.34",
        "deprecated": "9.0",
        "obsolete": "Since 9.0",
        "parameters": [
          {
            "name": "style",
            "type": "DimensionStyle",
            "summary": "The dimension style."
          },
          {
            "name": "units",
            "type": "UnitSystem",
            "summary": "The unit system."
          }
        ]
      }
    ]
  },
  {
    "namespace": "Rhino.Geometry",
    "name": "Dimension.ForceArrow",
    "dataType": "enum",
    "summary": "OBSOLETE enum do not use.",
    "values": [
      {
        "signature": "Auto = 0",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Inside = 1",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Outside = 2",
        "modifiers": [],
        "protected": false,
        "virtual": false
      }
    ]

  },
  {
    "namespace": "Rhino.Geometry",
    "name": "Dimension.ForceText",
    "dataType": "enum",
    "summary": "OBSOLETE enum do not use.",
    "values": [
      {
        "signature": "Auto = 0",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Inside = 1",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Right = 2",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Left = 3",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "HintRight = 4",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "HintLeft = 5",
        "modifiers": [],
        "protected": false,
        "virtual": false
      }
    ]

  },
  {
    "namespace": "Rhino.Geometry",
    "name": "DistancingMode",
    "dataType": "enum",
    "summary": "Defines how offset and similar operations should work.",
    "since": "6.0",
    "values": [
      {
        "signature": "Undefined",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Nothing is defined. This serves as null."
      },
      {
        "signature": "Linear",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "When geometrically possible, offsets with a linear distance."
      },
      {
        "signature": "LinearFromEnd",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "When geometrically possible and an opposite side exists, offsets with a linear distance from that side."
      },
      {
        "signature": "Ratio",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "When geometrically possible, uses a percentage of respective neighbours to compute offsets."
      },
      {
        "signature": "RatioFromEnd",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "When geometrically possible and an opposite side exists, uses a percentage of respective neighbours to compute offsets."
      }
    ]

  },
  {
    "namespace": "Rhino.Geometry",
    "name": "EdgeAdjacency",
    "dataType": "enum",
    "summary": "Enumerates all possible Topological Edge adjacency types.",
    "since": "5.0",
    "values": [
      {
        "signature": "None = 0",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Edge is not used by any faces and is therefore superfluous."
      },
      {
        "signature": "Naked = 1",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Edge is used by a single face."
      },
      {
        "signature": "Interior = 2",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Edge is used by two adjacent faces."
      },
      {
        "signature": "NonManifold = 3",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Edge is used by three or more adjacent faces."
      }
    ]

  },
  {
    "namespace": "Rhino.Geometry",
    "name": "Ellipse",
    "dataType": "struct",
    "summary": "Represents the values of a plane and the two semi-axes radii in an ellipse.",
    "constructors": [
      {
        "signature": "Ellipse(Plane plane, double radius1, double radius2)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Initializes a new ellipse from base plane and both principal radii.",
        "since": "5.0",
        "parameters": [
          {
            "name": "plane",
            "type": "Plane",
            "summary": "Base plane of ellipse."
          },
          {
            "name": "radius1",
            "type": "System.Double",
            "summary": "Ellipse radius along base plane X direction."
          },
          {
            "name": "radius2",
            "type": "System.Double",
            "summary": "Ellipse radius along base plane Y direction."
          }
        ]
      },
      {
        "signature": "Ellipse(Point3d center, Point3d second, Point3d third)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Initializes a new ellipse from a center point and the two semi-axes intersections.",
        "since": "5.0",
        "parameters": [
          {
            "name": "center",
            "type": "Point3d",
            "summary": "A center for the ellipse. The average of the foci."
          },
          {
            "name": "second",
            "type": "Point3d",
            "summary": "The intersection of the ellipse X axis with the ellipse itself."
          },
          {
            "name": "third",
            "type": "Point3d",
            "summary": "A point that determines the radius along the Y semi-axis.  \nIf the point is at right angle with the (center - second point) vector,     it will be the intersection of the ellipse Y axis with the ellipse itself."
          }
        ]
      }
    ],
    "properties": [
      {
        "signature": "Point3d Center",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the center of the ellipse.",
        "since": "7.16",
        "property": ["get", "set"]
      },
      {
        "signature": "double FocalDistance",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the distance from the center to a focus.",
        "since": "7.16",
        "property": ["get"]
      },
      {
        "signature": "bool IsValid",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns an indication of the validity of this ellipse.",
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "Plane Plane",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the base plane of the ellipse.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "double Radius1",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the radius of the ellipse along the base plane X semi-axis.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "double Radius2",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the radius of the ellipse along the base plane Y semi-axis.",
        "since": "5.0",
        "property": ["get", "set"]
      }
    ],
    "methods": [
      {
        "signature": "System.Boolean TryFitEllipseToPoints(IEnumerable<Point3d> points, out Ellipse ellipse)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Attempt to fit an ellipse through a set of points.",
        "since": "9.0",
        "parameters": [
          {
            "name": "points",
            "type": "IEnumerable<Point3d>",
            "summary": "The points through which to fit."
          },
          {
            "name": "ellipse",
            "type": "Ellipse",
            "summary": "The resulting ellipse on success."
          }
        ],
        "returns": "True on success, False on failure."
      },
      {
        "signature": "System.Boolean EpsilonEquals(Ellipse other, System.Double epsilon)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Check that all values in other are within epsilon of the values in this",
        "since": "5.4"
      },
      {
        "signature": "System.Void GetFoci(out Point3d F1, out Point3d F2)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the foci. The foci are two points whose sum of distances from any point on the ellipse is always the same.",
        "since": "7.16",
        "parameters": [
          {
            "name": "F1",
            "type": "Point3d",
            "summary": "The first focus."
          },
          {
            "name": "F2",
            "type": "Point3d",
            "summary": "The second focus."
          }
        ]
      },
      {
        "signature": "NurbsCurve ToNurbsCurve()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Constructs a nurbs curve representation of this ellipse.  \nThis is equivalent to calling NurbsCurve.CreateFromEllipse().",
        "since": "5.0",
        "returns": "A nurbs curve representation of this ellipse or None if no such representation could be made."
      }
    ]
  },
  {
    "namespace": "Rhino.Geometry",
    "name": "ExtrudeCornerType",
    "dataType": "enum",
    "summary": "Corner types used for creating a tapered extrusion",
    "since": "5.1",
    "values": [
      {
        "signature": "None = 0",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "No Corner"
      },
      {
        "signature": "Sharp = 1",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Round = 2",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Smooth = 3",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Chamfer = 4",
        "modifiers": [],
        "protected": false,
        "virtual": false
      }
    ]

  },
  {
    "namespace": "Rhino.Geometry",
    "name": "Extrusion",
    "dataType": "class",
    "summary": "Represents an extrusion, or objects such as beams or linearly extruded elements, that can be represented by profile curves and two miter planes at the extremes.",
    "baseclass": "Rhino.Geometry.Surface",
    "constructors": [
      {
        "signature": "Extrusion()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Initializes a new instance of the <b>Extrusion</b> class.",
        "since": "5.0"
      },
      {
        "signature": "Extrusion(SerializationInfo info, StreamingContext context)",
        "modifiers": ["protected"],
        "protected": true,
        "virtual": false,
        "summary": "Protected serialization constructor.",
        "parameters": [
          {
            "name": "info",
            "type": "System.Runtime.Serialization.SerializationInfo",
            "summary": "The serialization data."
          },
          {
            "name": "context",
            "type": "System.Runtime.Serialization.StreamingContext",
            "summary": "The serialization context stream."
          }
        ]
      }
    ],
    "properties": [
      {
        "signature": "int CapCount",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the amount of capping surfaces.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "bool IsCappedAtBottom",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets a value indicating whether the surface that fills the bottom profile is existing.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "bool IsCappedAtTop",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets a value indicating whether the surface that fills the top profile is existing.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "bool IsMiteredAtEnd",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets a value indicating whether a miter plane at the end is defined.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "bool IsMiteredAtStart",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns a value indicating whether a miter plane at start is defined.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "bool IsSolid",
        "modifiers": ["public", "override"],
        "protected": false,
        "virtual": false,
        "summary": "Gets a value indicating whether there is no gap among all surfaces constructing this object.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "Vector3d MiterPlaneNormalAtEnd",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the normal of the miter plane at the end in profile coordinates. In profile coordinates, 0,0,1 always maps to the extrusion axis",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "Vector3d MiterPlaneNormalAtStart",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the normal of the miter plane at the start in profile coordinates. In profile coordinates, 0,0,1 always maps to the extrusion axis",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "Point3d PathEnd",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the end point of the path.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "Point3d PathStart",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the start point of the path.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "Vector3d PathTangent",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the up vector of the path.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "int ProfileCount",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the amount of profile curves.",
        "since": "5.0",
        "property": ["get"]
      }
    ],
    "methods": [
      {
        "signature": "Extrusion Create(Curve curve, Plane plane, System.Double height, System.Boolean cap)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Create an extrusion from a 3d curve, a plane and a height.",
        "since": "8.0",
        "parameters": [
          {
            "name": "curve",
            "type": "Curve",
            "summary": "A continuous 3d curve."
          },
          {
            "name": "plane",
            "type": "Plane",
            "summary": "A plane. The 3d curve is projected to this plane and the result is passed to <b>Extrusion.SetOuterProfile</b> ."
          },
          {
            "name": "height",
            "type": "System.Double",
            "summary": "If the height > 0, the bottom of the extrusion will be in plane and the top will be height units above the plane. If the height < 0, the top of the extrusion will be in plane and the bottom will be height units below the plane. The plane used is the one that is returned from the curve's TryGetPlane function."
          },
          {
            "name": "cap",
            "type": "System.Boolean",
            "summary": "If the curve is closed and cap is true, then the resulting extrusion is capped."
          }
        ],
        "returns": "If the input is valid, then a new extrusion is returned. Otherwise None is returned"
      },
      {
        "signature": "Extrusion Create(Curve planarCurve, System.Double height, System.Boolean cap)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Creates an extrusion of a 3d curve (which must be planar) and a height.",
        "since": "5.1",
        "parameters": [
          {
            "name": "planarCurve",
            "type": "Curve",
            "summary": "Planar curve used as profile"
          },
          {
            "name": "height",
            "type": "System.Double",
            "summary": "If the height > 0, the bottom of the extrusion will be in plane and the top will be height units above the plane. If the height < 0, the top of the extrusion will be in plane and the bottom will be height units below the plane. The plane used is the one that is returned from the curve's TryGetPlane function."
          },
          {
            "name": "cap",
            "type": "System.Boolean",
            "summary": "If the curve is closed and cap is true, then the resulting extrusion is capped."
          }
        ],
        "returns": "If the input is valid, then a new extrusion is returned. Otherwise None is returned"
      },
      {
        "signature": "Extrusion CreateBoxExtrusion(Box box, System.Boolean cap)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Gets an extrusion from a box.",
        "since": "6.0",
        "parameters": [
          {
            "name": "box",
            "type": "Box",
            "summary": "IsValid must be true."
          },
          {
            "name": "cap",
            "type": "System.Boolean",
            "summary": "If true, the base and the top of the box will be capped. Defaults to true."
          }
        ],
        "returns": "Extrusion on success. None on failure."
      },
      {
        "signature": "Extrusion CreateCylinderExtrusion(Cylinder cylinder, System.Boolean capBottom, System.Boolean capTop)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Gets an extrusion form of a cylinder.",
        "since": "5.0",
        "parameters": [
          {
            "name": "cylinder",
            "type": "Cylinder",
            "summary": "IsFinite must be true."
          },
          {
            "name": "capBottom",
            "type": "System.Boolean",
            "summary": "If true, the end at cylinder.Height1 will be capped."
          },
          {
            "name": "capTop",
            "type": "System.Boolean",
            "summary": "If true, the end at cylinder.Height2 will be capped."
          }
        ],
        "returns": "Extrusion on success. None on failure."
      },
      {
        "signature": "Extrusion CreatePipeExtrusion(Cylinder cylinder, System.Double otherRadius, System.Boolean capTop, System.Boolean capBottom)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Gets an extrusion form of a pipe.",
        "since": "5.0",
        "parameters": [
          {
            "name": "cylinder",
            "type": "Cylinder",
            "summary": "IsFinite must be true."
          },
          {
            "name": "otherRadius",
            "type": "System.Double",
            "summary": "If cylinder.Radius is less than other radius, then the cylinder will be the inside of the pipe."
          },
          {
            "name": "capTop",
            "type": "System.Boolean",
            "summary": "If true, the end at cylinder.Height2 will be capped."
          },
          {
            "name": "capBottom",
            "type": "System.Boolean",
            "summary": "If true, the end at cylinder.Height1 will be capped."
          }
        ],
        "returns": "Extrusion on success. None on failure."
      },
      {
        "signature": "System.Boolean AddInnerProfile(Curve innerProfile)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Adds an inner profile.",
        "since": "5.0",
        "parameters": [
          {
            "name": "innerProfile",
            "type": "Curve",
            "summary": "Closed curve in the XY plane or a 2d curve."
          }
        ],
        "returns": "True if the profile was set."
      },
      {
        "signature": "ComponentIndex GetBrepFormComponentIndex(ComponentIndex extrusionComponentIndex)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Convert a component index that identifies a part of this extrusion to a component index that identifies a part of the Brep created by Extrusion.ToBrep(false).",
        "since": "8.1",
        "parameters": [
          {
            "name": "extrusionComponentIndex",
            "type": "ComponentIndex",
            "summary": "The extrusion component index."
          }
        ],
        "returns": "The Brep component index if successful. Otherwise, <b>ComponentIndex.Unset</b> is returned."
      },
      {
        "signature": "Mesh GetMesh(MeshType meshType)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Obtains a reference to a specified type of mesh for this extrusion.",
        "since": "5.6",
        "parameters": [
          {
            "name": "meshType",
            "type": "MeshType",
            "summary": "The mesh type."
          }
        ],
        "returns": "A mesh."
      },
      {
        "signature": "Plane GetPathPlane(System.Double s)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the 3D plane perpendicular to the path at a normalized path parameter.",
        "since": "5.0",
    "remarks": "When no mitering is happening, GetPathPlane() and GetProfilePlane() return the same plane.",
        "parameters": [
          {
            "name": "s",
            "type": "System.Double",
            "summary": "0.0 = starting profile 1.0 = ending profile."
          }
        ],
        "returns": "A plane. The plane is Invalid on failure."
      },
      {
        "signature": "Plane GetProfilePlane(System.Double s)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the 3D plane containing the profile curve at a normalized path parameter.",
        "since": "5.0",
    "remarks": "When no mitering is happening, GetPathPlane() and GetProfilePlane() return the same plane.",
        "parameters": [
          {
            "name": "s",
            "type": "System.Double",
            "summary": "0.0 = starting profile 1.0 = ending profile."
          }
        ],
        "returns": "A plane. The plane is Invalid on failure."
      },
      {
        "signature": "Transform GetProfileTransformation(System.Double s)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the transformation that maps the XY profile curve to its 3d location.",
        "since": "5.0",
        "parameters": [
          {
            "name": "s",
            "type": "System.Double",
            "summary": "0.0 = starting profile 1.0 = ending profile."
          }
        ],
        "returns": "A Transformation. The transform is Invalid on failure."
      },
      {
        "signature": "Curve[] GetWireframe()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Constructs all the Wireframe curves for this Extrusion.",
        "since": "5.6",
        "returns": "An array of Wireframe curves."
      },
      {
        "signature": "LineCurve PathLineCurve()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the line-like curve that is the conceptual axis of the extrusion.",
        "since": "5.0",
        "returns": "The path as a line curve."
      },
      {
        "signature": "Curve Profile3d(ComponentIndex ci)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets one of the profiles.",
        "since": "5.0",
        "parameters": [
          {
            "name": "ci",
            "type": "ComponentIndex",
            "summary": "The index of this profile."
          }
        ],
        "returns": "The profile."
      },
      {
        "signature": "Curve Profile3d(System.Int32 profileIndex, System.Double s)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets a transversal isocurve of the extruded profile.",
        "since": "5.0",
        "parameters": [
          {
            "name": "profileIndex",
            "type": "System.Int32",
            "summary": "0 <= profileIndex < ProfileCount The outer profile has index 0."
          },
          {
            "name": "s",
            "type": "System.Double",
            "summary": "0.0 <= s <= 1.0 A relative parameter controlling which profile is returned. 0 = bottom profile and 1 = top profile."
          }
        ],
        "returns": "The profile."
      },
      {
        "signature": "System.Int32 ProfileIndex(System.Double profileParameter)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the index of the profile curve at a domain related to a parameter.",
        "since": "5.0",
        "parameters": [
          {
            "name": "profileParameter",
            "type": "System.Double",
            "summary": "Parameter on profile curve."
          }
        ],
        "returns": "-1 if profileParameter does not correspond to a point on the profile curve. When the profileParameter corresponds to the end of one profile and the beginning of the next profile, the index of the next profile is returned."
      },
      {
        "signature": "System.Boolean SetMesh(Mesh mesh, MeshType meshType)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Sets a specified type of mesh for this extrusion.",
        "since": "8.3",
        "parameters": [
          {
            "name": "mesh",
            "type": "Mesh",
            "summary": "The mesh."
          },
          {
            "name": "meshType",
            "type": "MeshType",
            "summary": "The mesh type."
          }
        ],
        "returns": "True on success."
      },
      {
        "signature": "System.Boolean SetOuterProfile(Curve outerProfile, System.Boolean cap)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Sets the outer profile of the extrusion.",
        "since": "5.0",
        "parameters": [
          {
            "name": "outerProfile",
            "type": "Curve",
            "summary": "curve in the XY plane or a 2D curve."
          },
          {
            "name": "cap",
            "type": "System.Boolean",
            "summary": "If outerProfile is a closed curve, then cap determines if the extrusion has end caps. If outerProfile is an open curve, cap is ignored."
          }
        ],
        "returns": "True if the profile was set. If the outer profile is closed, then the extrusion may also have inner profiles. If the outer profile is open, the extrusion may not have inner profiles. If the extrusion already has a profile, the set will fail."
      },
      {
        "signature": "System.Boolean SetPathAndUp(Point3d a, Point3d b, Vector3d up)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Allows to set the two points at the extremes and the up vector.",
        "since": "5.0",
        "parameters": [
          {
            "name": "a",
            "type": "Point3d",
            "summary": "The start point."
          },
          {
            "name": "b",
            "type": "Point3d",
            "summary": "The end point."
          },
          {
            "name": "up",
            "type": "Vector3d",
            "summary": "The up vector."
          }
        ],
        "returns": "True if the operation succeeded; otherwise false. Setting up=a-b will make the operation fail."
      },
      {
        "signature": "Brep ToBrep(System.Boolean splitKinkyFaces)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Constructs a brep form of the extrusion. The outer profile is always the first face of the brep. If there are inner profiles, additional brep faces are created for each profile. If the outer profile is closed, then end caps are added as the last two faces of the brep.",
        "since": "5.0",
        "parameters": [
          {
            "name": "splitKinkyFaces",
            "type": "System.Boolean",
            "summary": "If True and the profiles have kinks, then the faces corresponding to those profiles are split so they will be G1."
          }
        ],
        "returns": "A brep with a similar shape like this extrusion, or None on error."
      },
      {
        "signature": "Curve WallEdge(ComponentIndex ci)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets one of the longitudinal curves along the beam or extrusion.",
        "since": "5.0",
        "parameters": [
          {
            "name": "ci",
            "type": "ComponentIndex",
            "summary": "The index of this profile."
          }
        ],
        "returns": "The profile."
      },
      {
        "signature": "Surface WallSurface(ComponentIndex ci)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets one of the longitudinal surfaces of the extrusion.",
        "since": "5.0",
        "parameters": [
          {
            "name": "ci",
            "type": "ComponentIndex",
            "summary": "The index specifying which precise item to retrieve."
          }
        ],
        "returns": "The surface."
      }
    ]
  },
  {
    "namespace": "Rhino.Geometry",
    "name": "FilletSurfaceSplitType",
    "dataType": "enum",
    "summary": "RhinoFilletSurfaceSplitType",
    "values": [
      {
        "signature": "Nothing = 0",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Nothing"
      },
      {
        "signature": "Trim = 1",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Trim"
      },
      {
        "signature": "Split = 2",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Split"
      }
    ]

  },
  {
    "namespace": "Rhino.Geometry",
    "name": "GeometryBase",
    "dataType": "class",
    "summary": "Provides a common base for most geometric classes. This class is abstract.",
    "baseclass": "Rhino.Runtime.CommonObject",
    "constructors": [
      {
        "signature": "GeometryBase(SerializationInfo info, StreamingContext context)",
        "modifiers": ["protected"],
        "protected": true,
        "virtual": false,
        "summary": "Protected constructor for internal use.",
        "parameters": [
          {
            "name": "info",
            "type": "System.Runtime.Serialization.SerializationInfo",
            "summary": "Serialization data."
          },
          {
            "name": "context",
            "type": "System.Runtime.Serialization.StreamingContext",
            "summary": "Serialization stream."
          }
        ]
      }
    ],
    "properties": [
      {
        "signature": "bool HasBrepForm",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns True if the Brep.TryConvertBrep function will be successful for this object",
        "since": "5.6",
        "property": ["get"]
      },
      {
        "signature": "bool IsDeformable",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "True if object can be accurately modified with \"squishy\" transformations like projections, shears, and non-uniform scaling.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "bool IsDocumentControlled",
        "modifiers": ["public", "sealed", "override"],
        "protected": false,
        "virtual": false,
        "summary": "If True this object may not be modified. Any properties or functions that attempt to modify this object when it is set to \"IsReadOnly\" will throw a NotSupportedException.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "bool IsShallowDuplicate",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Is this instance a 'shallow copy'. Shallow copies are no different than regular instances with the exception that they will convert to complete independent 'deep' copies if a non const operation is perform on the instance (something that mutates the internal data)",
        "property": ["get"]
      },
      {
        "signature": "ObjectType ObjectType",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Useful for switch statements that need to differentiate between basic object types like points, curves, surfaces, and so on.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "int UserStringCount",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the amount of user strings.",
        "since": "5.0",
        "property": ["get"]
      }
    ],
    "methods": [
      {
        "signature": "System.Boolean GeometryEquals(GeometryBase first, GeometryBase second)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Determines if two geometries equal one another, in pure geometrical shape. This version only compares the geometry itself and does not include any user data comparisons. This is a comparison by value: for two identical items it will be true, no matter where in memory they may be stored.",
        "since": "6.0",
        "parameters": [
          {
            "name": "first",
            "type": "GeometryBase",
            "summary": "The first geometry"
          },
          {
            "name": "second",
            "type": "GeometryBase",
            "summary": "The second geometry"
          }
        ],
        "returns": "The indication of equality"
      },
      {
        "signature": "System.Boolean GeometryReferenceEquals(GeometryBase one, GeometryBase other)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Determines if two objects are respectively shallow copies, new managed instantiations of the same geometry, or similar internal references to the exact same geometry, both in managed and in unmanaged code.",
        "since": "7.2",
        "parameters": [
          {
            "name": "one",
            "type": "GeometryBase",
            "summary": "The first object"
          },
          {
            "name": "other",
            "type": "GeometryBase",
            "summary": "The other object"
          }
        ],
        "returns": "True if indeed the objects are really the same. False otherwise."
      },
      {
        "signature": "System.Int32[] GetOverlaps(IEnumerable<GeometryBase> objects, Plane plane, System.Double tolerance, System.Boolean wholeCurves, IEnumerable<GeometryBase> locked, System.Boolean lockedExclusive, out System.Boolean[] entire, out ComponentIndex[][] deadSegments, out Curve[] replacements)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Detects overlapping regions among a set of input objects after they are orthogonally projected onto the supplied plane, and reports what should happen to each input object so that the overlaps can be removed.",
        "since": "9.0",
        "parameters": [
          {
            "name": "objects",
            "type": "IEnumerable<GeometryBase>",
            "summary": "The geometry to test for overlaps. Supported types are <b>Curve</b>  (curves), <b>Point</b> (single points), and <b>PointCloud</b>  (sets of points). Objects of any other type, as well as None or invalid objects, are silently ignored."
          },
          {
            "name": "plane",
            "type": "Plane",
            "summary": "The plane the geometry is orthogonally projected onto before testing. Use Plane.WorldXY to test in the world XY plane (dropping Z)."
          },
          {
            "name": "tolerance",
            "type": "System.Double",
            "summary": "The overlap distance tolerance, measured in the projected plane."
          },
          {
            "name": "wholeCurves",
            "type": "System.Boolean",
            "summary": "When true, an overlapping curve is treated as a single unit; when false, curves may be split at segment boundaries so that only the overlapping portions are affected."
          },
          {
            "name": "locked",
            "type": "IEnumerable<GeometryBase>",
            "summary": "Geometry that participates in the overlap test but is never itself modified. May be None or empty."
          },
          {
            "name": "lockedExclusive",
            "type": "System.Boolean",
            "summary": "When true, overlaps are only reported where an input object overlaps a locked object; overlaps purely among the input objects are ignored."
          },
          {
            "name": "entire",
            "type": "System.Boolean[]",
            "summary": "For each returned object index, True if the entire object is an overlap and should be removed. This out parameter is assigned during this call."
          },
          {
            "name": "deadSegments",
            "type": "ComponentIndex[][]",
            "summary": "For each returned object index, the component indices of the segments that overlap and should be removed. This out parameter is assigned during this call."
          },
          {
            "name": "replacements",
            "type": "Curve[]",
            "summary": "For each returned object index, an optional replacement curve to use in place of the original, or None when no replacement is produced. This out parameter is assigned during this call."
          }
        ],
        "returns": "The indices, into, of the objects that are affected by an overlap. The, , and arrays are parallel to the returned array."
      },
      {
        "signature": "ComponentIndex ComponentIndex()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "If this piece of geometry is a component in something larger, like a BrepEdge in a Brep, then this function returns the component index.",
        "since": "5.0",
        "returns": "This object's component index.  If this object is not a sub-piece of a larger geometric entity, then the returned index has m_type = ComponentIndex.InvalidType and m_index = -1."
      },
      {
        "signature": "System.UInt32 DataCRC(System.UInt32 currentRemainder)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns a CRC calculated from the information that defines the object. This CRC can be used as a quick way to see if two objects are not identical.",
        "since": "7.20",
        "parameters": [
          {
            "name": "currentRemainder",
            "type": "System.UInt32",
            "summary": "The current remainder value."
          }
        ],
        "returns": "CRC of the information the defines the object."
      },
      {
        "signature": "System.Void DeleteAllUserStrings()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "8.9"
      },
      {
        "signature": "System.Boolean DeleteUserString(System.String key)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "8.9"
      },
      {
        "signature": "System.Void Dispose(System.Boolean disposing)",
        "modifiers": ["protected", "override"],
        "protected": true,
        "virtual": false,
        "summary": "Overridden in order to destroy local display cache information"
      },
      {
        "signature": "GeometryBase Duplicate()",
        "modifiers": ["public", "virtual"],
        "protected": false,
        "virtual": true,
        "summary": "Constructs a deep (full) copy of this object.",
        "since": "5.0",
        "returns": "An object of the same type as this, with the same properties and behavior."
      },
      {
        "signature": "GeometryBase DuplicateShallow()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Constructs a light copy of this object. By \"light\", it is meant that the same underlying data is used until something is done to attempt to change it. For example, you could have a shallow copy of a very heavy mesh object and the same underlying data will be used when doing things like inspecting the number of faces on the mesh. If you modify the location of one of the mesh vertices, the shallow copy will create a full duplicate of the underlying mesh data and the shallow copy will become a deep copy.",
        "since": "5.0",
        "returns": "An object of the same type as this object.  \nThis behavior is overridden by implementing classes."
      },
      {
        "signature": "BoundingBox GetBoundingBox(Plane plane, out Box worldBox)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Aligned Bounding box solver. Gets the plane aligned bounding box.",
        "since": "5.0",
        "parameters": [
          {
            "name": "plane",
            "type": "Plane",
            "summary": "Orientation plane for BoundingBox."
          },
          {
            "name": "worldBox",
            "type": "Box",
            "summary": "Aligned box in World coordinates."
          }
        ],
        "returns": "A BoundingBox in plane coordinates."
      },
      {
        "signature": "BoundingBox GetBoundingBox(Plane plane)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Aligned Bounding box solver. Gets the plane aligned bounding box.",
        "since": "5.0",
        "parameters": [
          {
            "name": "plane",
            "type": "Plane",
            "summary": "Orientation plane for BoundingBox."
          }
        ],
        "returns": "A BoundingBox in plane coordinates."
      },
      {
        "signature": "BoundingBox GetBoundingBox(System.Boolean accurate)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Bounding box solver. Gets the world axis aligned bounding box for the geometry.",
        "since": "5.0",
        "parameters": [
          {
            "name": "accurate",
            "type": "System.Boolean",
            "summary": "If true, a physically accurate bounding box will be computed. If not, a bounding box estimate will be computed. For some geometry types there is no difference between the estimate and the accurate bounding box. Estimated bounding boxes can be computed much (much) faster than accurate (or \"tight\") bounding boxes. Estimated bounding boxes are always similar to or larger than accurate bounding boxes."
          }
        ],
        "returns": "The bounding box of the geometry in world coordinates or BoundingBox.Empty if not bounding box could be found."
      },
      {
        "signature": "BoundingBox GetBoundingBox(Transform xform)",
        "modifiers": ["public", "virtual"],
        "protected": false,
        "virtual": true,
        "summary": "Aligned Bounding box solver. Gets the world axis aligned bounding box for the transformed geometry.",
        "since": "5.0",
        "parameters": [
          {
            "name": "xform",
            "type": "Transform",
            "summary": "Transformation to apply to object prior to the BoundingBox computation. The geometry itself is not modified."
          }
        ],
        "returns": "The accurate bounding box of the transformed geometry in world coordinates or BoundingBox.Empty if not bounding box could be found."
      },
      {
        "signature": "System.String GetUserString(System.String key)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets user string from this geometry.",
        "since": "5.0",
        "parameters": [
          {
            "name": "key",
            "type": "System.String",
            "summary": "id used to retrieve the string."
          }
        ],
        "returns": "string associated with the key if successful. None if no key was found."
      },
      {
        "signature": "System.Collections.Specialized.NameValueCollection GetUserStrings()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets a copy of all (user key string, user value string) pairs attached to this geometry.",
        "since": "5.0",
        "returns": "A new collection."
      },
      {
        "signature": "System.Boolean MakeDeformable()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "If possible, converts the object into a form that can be accurately modified with \"squishy\" transformations like projections, shears, an non-uniform scaling.",
        "since": "5.0",
        "returns": "False if object cannot be converted to a deformable object. True if object was already deformable or was converted into a deformable object."
      },
      {
        "signature": "System.UInt32 MemoryEstimate()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Computes an estimate of the number of bytes that this object is using in memory.",
        "since": "5.0",
        "returns": "An estimated memory footprint."
      },
      {
        "signature": "System.Void NonConstOperation()",
        "modifiers": ["protected", "override"],
        "protected": true,
        "virtual": false,
        "summary": "Destroy cache handle"
      },
      {
        "signature": "System.Void OnSwitchToNonConst()",
        "modifiers": ["protected", "override"],
        "protected": true,
        "virtual": false,
        "summary": "Is called when a non-constant operation occurs."
      },
      {
        "signature": "System.Boolean Rotate(System.Double angleRadians, Vector3d rotationAxis, Point3d rotationCenter)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Rotates the object about the specified axis. A positive rotation angle results in a counter-clockwise rotation about the axis (right hand rule).",
        "since": "5.0",
        "parameters": [
          {
            "name": "angleRadians",
            "type": "System.Double",
            "summary": "Angle of rotation in radians."
          },
          {
            "name": "rotationAxis",
            "type": "Vector3d",
            "summary": "Direction of the axis of rotation."
          },
          {
            "name": "rotationCenter",
            "type": "Point3d",
            "summary": "Point on the axis of rotation."
          }
        ],
        "returns": "True if geometry successfully rotated."
      },
      {
        "signature": "System.Boolean Scale(System.Double scaleFactor)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Scales the object by the specified factor. The scale is centered at the origin.",
        "since": "5.0",
        "parameters": [
          {
            "name": "scaleFactor",
            "type": "System.Double",
            "summary": "The uniform scaling factor."
          }
        ],
        "returns": "True if geometry successfully scaled."
      },
      {
        "signature": "System.Boolean SetUserString(System.String key, System.String value)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Attach a user string (key,value combination) to this geometry.",
        "since": "5.0",
        "parameters": [
          {
            "name": "key",
            "type": "System.String",
            "summary": "id used to retrieve this string."
          },
          {
            "name": "value",
            "type": "System.String",
            "summary": "string associated with key."
          }
        ],
        "returns": "True on success."
      },
      {
        "signature": "System.Boolean Transform(Transform xform)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Transforms the geometry. If the input Transform has a SimilarityType of OrientationReversing, you may want to consider flipping the transformed geometry after calling this function when it makes sense. For example, you may want to call Flip() on a Brep after transforming it.",
        "since": "5.0",
        "parameters": [
          {
            "name": "xform",
            "type": "Transform",
            "summary": "Transformation to apply to geometry."
          }
        ],
        "returns": "True if geometry successfully transformed."
      },
      {
        "signature": "System.Boolean Translate(System.Double x, System.Double y, System.Double z)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Translates the object along the specified vector.",
        "since": "5.0",
        "parameters": [
          {
            "name": "x",
            "type": "System.Double",
            "summary": "The X component."
          },
          {
            "name": "y",
            "type": "System.Double",
            "summary": "The Y component."
          },
          {
            "name": "z",
            "type": "System.Double",
            "summary": "The Z component."
          }
        ],
        "returns": "True if geometry successfully translated."
      },
      {
        "signature": "System.Boolean Translate(Vector3d translationVector)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Translates the object along the specified vector.",
        "since": "5.0",
        "parameters": [
          {
            "name": "translationVector",
            "type": "Vector3d",
            "summary": "A moving vector."
          }
        ],
        "returns": "True if geometry successfully translated."
      }
    ]
  },
  {
    "namespace": "Rhino.Geometry",
    "name": "Hatch",
    "dataType": "class",
    "summary": "Represents a hatch in planar boundary loop or loops. This is a 2d entity with a plane defining a local coordinate system. The loops, patterns, angles, etc are all in this local coordinate system. The Hatch object manages the plane and loop array Fill definitions are in the HatchPattern or class derived from HatchPattern Hatch has an index to get the pattern definition from the pattern table.",
    "baseclass": "Rhino.Geometry.GeometryBase",
    "constructors": [
      {
        "signature": "Hatch(SerializationInfo info, StreamingContext context)",
        "modifiers": ["protected"],
        "protected": true,
        "virtual": false,
        "summary": "Protected constructor for internal use.",
        "parameters": [
          {
            "name": "info",
            "type": "System.Runtime.Serialization.SerializationInfo",
            "summary": "Serialization data."
          },
          {
            "name": "context",
            "type": "System.Runtime.Serialization.StreamingContext",
            "summary": "Serialization stream."
          }
        ]
      }
    ],
    "properties": [
      {
        "signature": "Point3d BasePoint",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the hatch pattern base point",
        "since": "6.11",
        "property": ["get", "set"]
      },
      {
        "signature": "int PatternIndex",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the index of the pattern in the document hatch pattern table.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "double PatternRotation",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the relative rotation of the pattern.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "double PatternScale",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the scaling factor of the pattern.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "Plane Plane",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the hatch plane",
        "since": "6.11",
        "property": ["get", "set"]
      }
    ],
    "methods": [
      {
        "signature": "Hatch[] Create(Curve curve, System.Int32 hatchPatternIndex, System.Double rotationRadians, System.Double scale, System.Double tolerance)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Constructs an array of <b>Hatch</b> from one curve.",
        "since": "6.0",
        "parameters": [
          {
            "name": "curve",
            "type": "Curve",
            "summary": "A <b>Curve</b> ."
          },
          {
            "name": "hatchPatternIndex",
            "type": "System.Int32",
            "summary": "The index of the hatch pattern in the document hatch pattern table."
          },
          {
            "name": "rotationRadians",
            "type": "System.Double",
            "summary": "The relative rotation of the pattern."
          },
          {
            "name": "scale",
            "type": "System.Double",
            "summary": "A scaling factor."
          },
          {
            "name": "tolerance",
            "type": "System.Double",
            "summary": ""
          }
        ],
        "returns": "An array of hatches. The array might be empty on error."
      },
      {
        "signature": "Hatch[] Create(Curve curve, System.Int32 hatchPatternIndex, System.Double rotationRadians, System.Double scale)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Constructs an array of <b>Hatch</b> from one curve.",
        "since": "5.0",
        "deprecated": "6.0",
        "obsolete": "Use version that takes a tolerance parameter instead",
        "parameters": [
          {
            "name": "curve",
            "type": "Curve",
            "summary": "A <b>Curve</b> ."
          },
          {
            "name": "hatchPatternIndex",
            "type": "System.Int32",
            "summary": "The index of the hatch pattern in the document hatch pattern table."
          },
          {
            "name": "rotationRadians",
            "type": "System.Double",
            "summary": "The relative rotation of the pattern."
          },
          {
            "name": "scale",
            "type": "System.Double",
            "summary": "A scaling factor."
          }
        ],
        "returns": "An array of hatches. The array might be empty on error."
      },
      {
        "signature": "Hatch[] Create(IEnumerable<Curve> curves, System.Int32 hatchPatternIndex, System.Double rotationRadians, System.Double scale, System.Double tolerance)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Constructs an array of <b>Hatch</b> from a set of curves.",
        "since": "6.0",
        "parameters": [
          {
            "name": "curves",
            "type": "IEnumerable<Curve>",
            "summary": "An array, a list or any enumerable set of <b>Curve</b> ."
          },
          {
            "name": "hatchPatternIndex",
            "type": "System.Int32",
            "summary": "The index of the hatch pattern in the document hatch pattern table."
          },
          {
            "name": "rotationRadians",
            "type": "System.Double",
            "summary": "The relative rotation of the pattern."
          },
          {
            "name": "scale",
            "type": "System.Double",
            "summary": "A scaling factor."
          },
          {
            "name": "tolerance",
            "type": "System.Double",
            "summary": ""
          }
        ],
        "returns": "An array of hatches. The array might be empty on error."
      },
      {
        "signature": "Hatch[] Create(IEnumerable<Curve> curves, System.Int32 hatchPatternIndex, System.Double rotationRadians, System.Double scale)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Constructs an array of <b>Hatch</b> from a set of curves.",
        "since": "5.0",
        "deprecated": "6.0",
        "obsolete": "Use version that takes a tolerance parameter instead",
        "parameters": [
          {
            "name": "curves",
            "type": "IEnumerable<Curve>",
            "summary": "An array, a list or any enumerable set of <b>Curve</b> ."
          },
          {
            "name": "hatchPatternIndex",
            "type": "System.Int32",
            "summary": "The index of the hatch pattern in the document hatch pattern table."
          },
          {
            "name": "rotationRadians",
            "type": "System.Double",
            "summary": "The relative rotation of the pattern."
          },
          {
            "name": "scale",
            "type": "System.Double",
            "summary": "A scaling factor."
          }
        ],
        "returns": "An array of hatches. The array might be empty on error."
      },
      {
        "signature": "Hatch Create(Plane hatchPlane, Curve outerLoop, IEnumerable<Curve> innerLoops, System.Int32 hatchPatternIndex, System.Double rotationRadians, System.Double scale)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Create a hatch with a given set of outer and inner loops",
        "since": "7.18",
        "parameters": [
          {
            "name": "hatchPlane",
            "type": "Plane",
            "summary": ""
          },
          {
            "name": "outerLoop",
            "type": "Curve",
            "summary": "2d closed curve representing outer boundary of hatch"
          },
          {
            "name": "innerLoops",
            "type": "IEnumerable<Curve>",
            "summary": "2d closed curves for inner boundaries"
          },
          {
            "name": "hatchPatternIndex",
            "type": "System.Int32",
            "summary": ""
          },
          {
            "name": "rotationRadians",
            "type": "System.Double",
            "summary": ""
          },
          {
            "name": "scale",
            "type": "System.Double",
            "summary": ""
          }
        ]
      },
      {
        "signature": "Hatch CreateFromBrep(Brep brep, System.Int32 brepFaceIndex, System.Int32 hatchPatternIndex, System.Double rotationRadians, System.Double scale, Point3d basePoint)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Create a hatch from a planar face of a Brep",
        "since": "7.18"
      },
      {
        "signature": "System.Void CreateDisplayGeometry(DocObjects.HatchPattern pattern, System.Double patternScale, out Curve[] bounds, out Line[] lines, out Brep solidBrep)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Generate geometry that would be used to draw the hatch with a given hatch pattern",
        "since": "5.6"
      },
      {
        "signature": "GeometryBase[] Explode()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Decomposes the hatch pattern into an array of geometry.",
        "since": "5.0",
        "returns": "An array of geometry that formed the appearance of the original elements."
      },
      {
        "signature": "Curve[] Get2dCurves(System.Boolean outer)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets 2d curves that define the boundaries of the hatch",
        "since": "8.18",
        "parameters": [
          {
            "name": "outer",
            "type": "System.Boolean",
            "summary": "True to get the outer curves, False to get the inner curves"
          }
        ]
      },
      {
        "signature": "Curve[] Get3dCurves(System.Boolean outer)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets 3d curves that define the boundaries of the hatch",
        "since": "5.0",
        "parameters": [
          {
            "name": "outer",
            "type": "System.Boolean",
            "summary": "True to get the outer curves, False to get the inner curves"
          }
        ]
      },
      {
        "signature": "Rhino.Display.ColorGradient GetGradientFill()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Get gradient fill information for this hatch. If the \"GradientType\" for the fill is None, then this hatch doesn't have any gradient fill.",
        "since": "7.0"
      },
      {
        "signature": "System.Void ScalePattern(Transform xform)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Scale the hatch's pattern",
        "since": "6.11"
      },
      {
        "signature": "System.Void SetGradientFill(Rhino.Display.ColorGradient fill)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "7.0"
      },
      {
        "signature": "Brep ToBrep()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Constructs a Brep representation of this hatch.",
        "since": "8.9",
        "returns": "A Brep representation of this hatch if successful, None otherwise."
      }
    ]
  },
  {
    "namespace": "Rhino.Geometry",
    "name": "HermiteSurface",
    "dataType": "class",
    "summary": "Create an ON_NurbsSurface satisfying Hermite interpolation conditions at a grid of points.",
    "interfaces": ["IDisposable"],
    "constructors": [
      {
        "signature": "HermiteSurface()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Initializes a new <b>HermiteSurface</b> instance.",
        "since": "7.0"
      },
      {
        "signature": "HermiteSurface(int uCount, int vCount)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Initializes a new <b>HermiteSurface</b> instance.",
        "since": "7.0",
        "parameters": [
          {
            "name": "uCount",
            "type": "System.Int32",
            "summary": "The number of parameters in the \"u\" direction."
          },
          {
            "name": "vCount",
            "type": "System.Int32",
            "summary": "The number of parameters in the \"v\" direction."
          }
        ]
      }
    ],
    "properties": [
      {
        "signature": "bool IsValid",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns True if the all of values in all of the internal data structures contain valid values, False otherwise.",
        "since": "7.0",
        "property": ["get"]
      },
      {
        "signature": "int UCount",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the number of parameters in the \"u\" direction.",
        "since": "7.0",
        "property": ["get"]
      },
      {
        "signature": "int VCount",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the number of parameters in the \"v\" direction.",
        "since": "7.0",
        "property": ["get"]
      }
    ],
    "methods": [
      {
        "signature": "System.Void Dispose()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Actively reclaims unmanaged resources that this instance uses.",
        "since": "7.0"
      },
      {
        "signature": "Point3d PointAt(System.Int32 uIndex, System.Int32 vIndex)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the interpolation point at the u,v parameter location.",
        "since": "7.0",
        "parameters": [
          {
            "name": "uIndex",
            "type": "System.Int32",
            "summary": "The \"u\" index."
          },
          {
            "name": "vIndex",
            "type": "System.Int32",
            "summary": "The \"v\" index."
          }
        ],
        "returns": "The point location."
      },
      {
        "signature": "System.Void SetPointAt(System.Int32 uIndex, System.Int32 vIndex, Point3d point)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Sets the interpolation point at the u,v parameter location.",
        "since": "7.0",
        "parameters": [
          {
            "name": "uIndex",
            "type": "System.Int32",
            "summary": "The \"u\" index."
          },
          {
            "name": "vIndex",
            "type": "System.Int32",
            "summary": "The \"v\" index."
          },
          {
            "name": "point",
            "type": "Point3d",
            "summary": "The point location."
          }
        ]
      },
      {
        "signature": "System.Void SetTwistAt(System.Int32 uIndex, System.Int32 vIndex, Vector3d twist)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Set the twist direction (mixed second partial derivative) to interpolate at the u,v parameter location.",
        "since": "7.0",
        "parameters": [
          {
            "name": "uIndex",
            "type": "System.Int32",
            "summary": "The \"u\" index."
          },
          {
            "name": "vIndex",
            "type": "System.Int32",
            "summary": "The \"v\" index."
          },
          {
            "name": "twist",
            "type": "Vector3d",
            "summary": "The twist direction."
          }
        ]
      },
      {
        "signature": "System.Void SetUParameterAt(System.Int32 index, System.Double parameter)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Sets the \"u\" parameter at an index. These parameters are strictly increasing.",
        "since": "7.0",
        "parameters": [
          {
            "name": "index",
            "type": "System.Int32",
            "summary": "The index."
          },
          {
            "name": "parameter",
            "type": "System.Double",
            "summary": "The parameter value."
          }
        ]
      },
      {
        "signature": "System.Void SetUTangentAt(System.Int32 uIndex, System.Int32 vIndex, Vector3d tangent)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Set the \"u\" tangent direction (actually first derivative) to interpolate at the u,v parameter location.",
        "since": "7.0",
        "parameters": [
          {
            "name": "uIndex",
            "type": "System.Int32",
            "summary": "The \"u\" index."
          },
          {
            "name": "vIndex",
            "type": "System.Int32",
            "summary": "The \"v\" index."
          },
          {
            "name": "tangent",
            "type": "Vector3d",
            "summary": "The tangent direction."
          }
        ]
      },
      {
        "signature": "System.Void SetVParameterAt(System.Int32 index, System.Double parameter)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Sets the \"v\" parameter at an index. These parameters are strictly increasing.",
        "since": "7.0",
        "parameters": [
          {
            "name": "index",
            "type": "System.Int32",
            "summary": "The index."
          },
          {
            "name": "parameter",
            "type": "System.Double",
            "summary": "The parameter value."
          }
        ]
      },
      {
        "signature": "System.Void SetVTangentAt(System.Int32 uIndex, System.Int32 vIndex, Vector3d tangent)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Set the \"v\" tangent direction (actually first derivative) to interpolate at the u,v parameter location.",
        "since": "7.0",
        "parameters": [
          {
            "name": "uIndex",
            "type": "System.Int32",
            "summary": "The \"u\" index."
          },
          {
            "name": "vIndex",
            "type": "System.Int32",
            "summary": "The \"v\" index."
          },
          {
            "name": "tangent",
            "type": "Vector3d",
            "summary": "The tangent direction."
          }
        ]
      },
      {
        "signature": "NurbsSurface ToNurbsSurface()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Constructs a NURBS surface satisfying the Hermite interpolation conditions.",
        "since": "7.0",
        "returns": "A NURBS surface is successful, None otherwise."
      },
      {
        "signature": "Vector3d TwistAt(System.Int32 uIndex, System.Int32 vIndex)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Get the twist direction (mixed second partial derivative) to interpolate at the u,v parameter location.",
        "since": "7.0",
        "parameters": [
          {
            "name": "uIndex",
            "type": "System.Int32",
            "summary": "The \"u\" index."
          },
          {
            "name": "vIndex",
            "type": "System.Int32",
            "summary": "The \"v\" index."
          }
        ],
        "returns": "The twist direction."
      },
      {
        "signature": "System.Double UParameterAt(System.Int32 index)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the \"u\" parameter at an index. These parameters are strictly increasing.",
        "since": "7.0",
        "parameters": [
          {
            "name": "index",
            "type": "System.Int32",
            "summary": "The index."
          }
        ],
        "returns": "The parameter."
      },
      {
        "signature": "Vector3d UTangentAt(System.Int32 uIndex, System.Int32 vIndex)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Get the \"u\" tangent direction (actually first derivative) to interpolate at the u,v parameter location.",
        "since": "7.0",
        "parameters": [
          {
            "name": "uIndex",
            "type": "System.Int32",
            "summary": "The \"u\" index."
          },
          {
            "name": "vIndex",
            "type": "System.Int32",
            "summary": "The \"v\" index."
          }
        ],
        "returns": "The tangent direction."
      },
      {
        "signature": "System.Double VParameterAt(System.Int32 index)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the \"v\" parameter at an index. These parameters are strictly increasing.",
        "since": "7.0",
        "parameters": [
          {
            "name": "index",
            "type": "System.Int32",
            "summary": "The index."
          }
        ],
        "returns": "The parameter."
      },
      {
        "signature": "Vector3d VTangentAt(System.Int32 uIndex, System.Int32 vIndex)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Get the \"v\" tangent direction (actually first derivative) to interpolate at the u,v parameter location.",
        "since": "7.0",
        "parameters": [
          {
            "name": "uIndex",
            "type": "System.Int32",
            "summary": "The \"u\" index."
          },
          {
            "name": "vIndex",
            "type": "System.Int32",
            "summary": "The \"v\" index."
          }
        ],
        "returns": "The tangent direction."
      }
    ]
  },
  {
    "namespace": "Rhino.Geometry",
    "name": "HiddenLineDrawing",
    "dataType": "class",
    "summary": "Represents a hidden line drawing object. A hidden line drawing consists of curves generated from source objects. The curves correspond to edges, and silhouettes of  source objects and intersections with cutting planes.",
    "interfaces": ["IDisposable"],
    "constructors": [
      {
        "signature": "HiddenLineDrawing()",
        "summary": "Initializes a new instance of the HiddenLineDrawing class"
      }
    ],
    "properties": [
      {
        "signature": "IEnumerable<HiddenLineDrawingPoint> Points",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Point objects calculated by the hidden line drawing.",
        "since": "6.8",
        "property": ["get"]
      },
      {
        "signature": "IEnumerable<HiddenLineDrawingSegment> Segments",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Sub-curve objects calculated by the hidden line drawing.",
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "ViewportInfo Viewport",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns the ViewportInfo used by the hidden line drawing.",
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "Transform WorldToHiddenLine",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns the world-coordinate system to HLD-coordinate system transformation.",
        "since": "6.0",
        "property": ["get"]
      }
    ],
    "methods": [
      {
        "signature": "HiddenLineDrawing Compute(HiddenLineDrawingParameters parameters, System.Boolean multipleThreads, IProgress<double> progress, System.Threading.CancellationToken cancelToken)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Perform the hidden line drawing calculation based on input parameters",
        "since": "6.0",
        "returns": "Results of calculation on success, None on failure or cancellation"
      },
      {
        "signature": "HiddenLineDrawing Compute(HiddenLineDrawingParameters parameters, System.Boolean multipleThreads)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Perform the hidden line drawing calculation based on input parameters",
        "since": "6.0",
        "returns": "Results of calculation on success, None on failure"
      },
      {
        "signature": "BoundingBox BoundingBox(System.Boolean includeHidden)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Get tight bounding box of the hidden line drawing.",
        "since": "6.0",
        "parameters": [
          {
            "name": "includeHidden",
            "type": "System.Boolean",
            "summary": "Include hidden objects."
          }
        ],
        "returns": "The tight bounding box."
      },
      {
        "signature": "System.Void Dispose()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Actively reclaims unmanaged resources that this instance uses.",
        "since": "6.0"
      },
      {
        "signature": "System.Void RejoinCompatibleVisible()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Join consecutive visible curves from a single FullCurve",
        "since": "8.0"
      }
    ]
  },
  {
    "namespace": "Rhino.Geometry",
    "name": "HiddenLineDrawingObject",
    "dataType": "class",
    "summary": "Represents an object added to a HiddenLineDrawing",
    "properties": [
      {
        "signature": "GeometryBase Geometry",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns the geometry in world coordinates if UseXform is false. Otherwise, the geometry in object space coordinates is returned.",
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "bool OccludingSections",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Objects in this drawing could have occluding sections. Objects must added with the occluding section  option set as desired.",
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "object Tag",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns the extra data used to cross-reference the object specified in HiddenLineDrawing.AddObject.",
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "Transform Transform",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns the transformation passed into the Add... function when setting up the hidden line drawing parameters.",
        "since": "6.0",
        "property": ["get"]
      }
    ]
  },
  {
    "namespace": "Rhino.Geometry",
    "name": "HiddenLineDrawingObjectCurve",
    "dataType": "class",
    "summary": "Curves generated from source objects which correspond to edges, and silhouettes of source objects and intersections with cutting planes. A HiddenLineDrawingObjectCurve is partitioned into hidden and visible segments called HiddenLineDrawingSegment",
    "properties": [
      {
        "signature": "int ClippingPlaneIndex",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Index into HiddenLineDrawing.ClippingPlanes when SilhouetteType == SilhouetteType.SectionCut.",
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "int Index",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Index of this object in HiddenLineDrawing.FullCurves.",
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "bool IsProjecting",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns True if all the non clipped portions of this curve are projecting.",
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "bool IsValid",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Verifies the object is valid.",
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "double OriginalDomainStart",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Initialized to RhinoMath.UnsetValue. Valid if the full curve is closed. Rejoin can reparameterize the curve by moving the seam.  When this has been done the original domain start is stored here.",
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "double[] Parameters",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Increasing, partition of curve.Domain.",
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "HiddenLineDrawingSegment[] Segments",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "The HiddenLineDrawingCurve objects that make up this full curve.",
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "SilhouetteType SilhouetteType",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "The silhouette event type",
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "HiddenLineDrawingObject SourceObject",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Return the source object that this curve came from",
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "ComponentIndex SourceObjectComponentIndex",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Component of source object part that generated this curve.",
        "since": "6.0",
        "property": ["get"]
      }
    ],
    "methods": [
      {
        "signature": "HiddenLineDrawingSegment Curve(System.Double t, System.Int32 side)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns the HiddenLineDrawingCurve object containing parameter 't'.",
        "since": "6.0",
        "parameters": [
          {
            "name": "t",
            "type": "System.Double",
            "summary": "The parameter."
          },
          {
            "name": "side",
            "type": "System.Int32",
            "summary": "Determines which side to return at breakpoints, where: 0 - default, <0 - curve that contains an interval [t-, t], for some t- < t, >0 - curve that contains an interval [t, t+], for some t+ > t."
          }
        ],
        "returns": "The HiddenLineDrawingCurve object if successful."
      },
      {
        "signature": "HiddenLineDrawingSegment Curve(System.Double t)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns the HiddenLineDrawingCurve object containing parameter 't'.",
        "since": "6.0",
        "parameters": [
          {
            "name": "t",
            "type": "System.Double",
            "summary": "The parameter."
          }
        ],
        "returns": "The HiddenLineDrawingCurve object if successful."
      }
    ]
  },
  {
    "namespace": "Rhino.Geometry",
    "name": "HiddenLineDrawingParameters",
    "dataType": "class",
    "summary": "Input used for computing a hidden line drawing",
    "constructors": [
      {
        "signature": "HiddenLineDrawingParameters()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "default constructor",
        "since": "6.0"
      }
    ],
    "properties": [
      {
        "signature": "double AbsoluteTolerance",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Absolute tolerance is used to decide if curves overlap or intersect. A suggested value is to use RhinoDoc.AbsoluteTolerance",
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool Flatten",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Flatten the computed geometry",
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool IncludeHiddenCurves",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Include hidden curves in hidden line drawing (default is true)",
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool IncludeTangentEdges",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Include tangent edges in hidden line drawing (default is true)",
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool IncludeTangentSeams",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Include tangent seams in hidden line drawing (default is true)",
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool OccludingSectionOption",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Enable occluding section option (default is false)",
        "since": "8.0",
        "property": ["get", "set"]
      }
    ],
    "methods": [
      {
        "signature": "System.Void AddClippingPlane(Plane plane)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Specify clipping planes that are active for this view.",
        "since": "6.0"
      },
      {
        "signature": "System.Boolean AddGeometry(GeometryBase geometry, System.Object tag, System.Boolean occluding_sections)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Add geometry that should be included in the calculation",
        "since": "6.0",
        "parameters": [
          {
            "name": "geometry",
            "type": "GeometryBase",
            "summary": "Currently only points, point clouds, curves, meshes, breps, surfaces, and extrusions are supported"
          },
          {
            "name": "tag",
            "type": "System.Object",
            "summary": "arbitrary data to be associated with this geometry"
          },
          {
            "name": "occluding_sections",
            "type": "System.Boolean",
            "summary": "sections of this geometry occlude"
          }
        ],
        "returns": "True if the type of geometry can be added for calculations. Currently only points, point clouds, curves, meshes, breps, surfaces, and extrusions are supported"
      },
      {
        "signature": "System.Boolean AddGeometry(GeometryBase geometry, System.Object tag)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Add geometry that should be included in the calculation",
        "since": "6.0",
        "parameters": [
          {
            "name": "geometry",
            "type": "GeometryBase",
            "summary": "Currently only points, point clouds, curves, meshes, breps, surfaces, and extrusions are supported"
          },
          {
            "name": "tag",
            "type": "System.Object",
            "summary": "arbitrary data to be associated with this geometry"
          }
        ],
        "returns": "True if the type of geometry can be added for calculations. Currently only points, point clouds, curves, meshes, breps, surfaces, and extrusions are supported"
      },
      {
        "signature": "System.Boolean AddGeometry(GeometryBase geometry, Transform xform, System.Object tag, System.Boolean occluding_sections)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Add geometry that should be included in the calculation",
        "since": "6.0",
        "parameters": [
          {
            "name": "geometry",
            "type": "GeometryBase",
            "summary": "Currently only points, point clouds, curves, meshes, breps, surfaces, and extrusions are supported"
          },
          {
            "name": "xform",
            "type": "Transform",
            "summary": ""
          },
          {
            "name": "tag",
            "type": "System.Object",
            "summary": "arbitrary data to be associated with this geometry"
          },
          {
            "name": "occluding_sections",
            "type": "System.Boolean",
            "summary": "sections of this geometry occlude"
          }
        ],
        "returns": "True if the type of geometry can be added for calculations. Currently only points, point clouds, curves, meshes, breps, surfaces, and extrusions are supported"
      },
      {
        "signature": "System.Boolean AddGeometry(GeometryBase geometry, Transform xform, System.Object tag)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Add geometry that should be included in the calculation",
        "since": "6.0",
        "parameters": [
          {
            "name": "geometry",
            "type": "GeometryBase",
            "summary": "Currently only points, point clouds, curves, meshes, breps, surfaces, and extrusions are supported"
          },
          {
            "name": "xform",
            "type": "Transform",
            "summary": ""
          },
          {
            "name": "tag",
            "type": "System.Object",
            "summary": "arbitrary data to be associated with this geometry"
          }
        ],
        "returns": "True if the type of geometry can be added for calculations. Currently only points, point clouds, curves, meshes, breps, surfaces, and extrusions are supported"
      },
      {
        "signature": "System.Boolean AddGeometryAndPlanes(GeometryBase geometry, System.Object tag, List<Plane> clips)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Add geometry and its active clipping planes to be included in the calculation",
        "since": "6.0",
        "parameters": [
          {
            "name": "geometry",
            "type": "GeometryBase",
            "summary": "Currently only points, point clouds, curves, meshes, breps, surfaces, and extrusions are supported"
          },
          {
            "name": "tag",
            "type": "System.Object",
            "summary": "arbitrary data to be associated with this geometry"
          },
          {
            "name": "clips",
            "type": "List<Plane>",
            "summary": "Active clipping planes for this object"
          }
        ],
        "returns": "True if the type of geometry can be added for calculations. Currently only points, point clouds, curves, meshes, breps, surfaces, and extrusions are supported"
      },
      {
        "signature": "System.Boolean AddGeometryAndPlanes(GeometryBase geometry, System.Object tag, System.Boolean occluding_sections, List<Plane> clips)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Add geometry and its active clipping planes to be included in the calculation",
        "since": "6.0",
        "parameters": [
          {
            "name": "geometry",
            "type": "GeometryBase",
            "summary": "Currently only points, point clouds, curves, meshes, breps, surfaces, and extrusions are supported"
          },
          {
            "name": "tag",
            "type": "System.Object",
            "summary": "arbitrary data to be associated with this geometry"
          },
          {
            "name": "occluding_sections",
            "type": "System.Boolean",
            "summary": "sections of this geometry occlude"
          },
          {
            "name": "clips",
            "type": "List<Plane>",
            "summary": "Active clipping planes for this object"
          }
        ],
        "returns": "True if the type of geometry can be added for calculations. Currently only points, point clouds, curves, meshes, breps, surfaces, and extrusions are supported"
      },
      {
        "signature": "System.Boolean AddGeometryAndPlanes(GeometryBase geometry, Transform xform, System.Object tag, List<Plane> clips)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Add geometry and its active clipping planes to be included in the calculation",
        "since": "6.0",
        "parameters": [
          {
            "name": "geometry",
            "type": "GeometryBase",
            "summary": "Currently only points, point clouds, curves, meshes, breps, surfaces, and extrusions are supported"
          },
          {
            "name": "xform",
            "type": "Transform",
            "summary": ""
          },
          {
            "name": "tag",
            "type": "System.Object",
            "summary": "arbitrary data to be associated with this geometry"
          },
          {
            "name": "clips",
            "type": "List<Plane>",
            "summary": "Active clipping planes for this object"
          }
        ],
        "returns": "True if the type of geometry can be added for calculations. Currently only points, point clouds, curves, meshes, breps, surfaces, and extrusions are supported"
      },
      {
        "signature": "System.Boolean AddGeometryAndPlanes(GeometryBase geometry, Transform xform, System.Object tag, System.Boolean occluding_sections, List<Plane> clips)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Add geometry and its active clipping planes to be included in the calculation",
        "since": "6.0",
        "parameters": [
          {
            "name": "geometry",
            "type": "GeometryBase",
            "summary": "Currently only points, point clouds, curves, meshes, breps, surfaces, and extrusions are supported"
          },
          {
            "name": "xform",
            "type": "Transform",
            "summary": ""
          },
          {
            "name": "tag",
            "type": "System.Object",
            "summary": "arbitrary data to be associated with this geometry"
          },
          {
            "name": "occluding_sections",
            "type": "System.Boolean",
            "summary": "sections of this geometry occlude"
          },
          {
            "name": "clips",
            "type": "List<Plane>",
            "summary": "Active clipping planes for this object"
          }
        ],
        "returns": "True if the type of geometry can be added for calculations. Currently only points, point clouds, curves, meshes, breps, surfaces, and extrusions are supported"
      },
      {
        "signature": "System.Void SetViewport(Display.RhinoViewport viewport)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Set the viewport for the hidden line drawing (HLD). The viewport supplies the projection that determines the visibility of curves, and the HLD coordinate system in which the resulting curves are represented. The HLD-coordinate system is a right handed system for 3-D model space, in which the 3rd coordinate direction is the projection direction. In particular the z-coordinate direction points from the scene toward the camera.",
        "since": "6.0",
        "parameters": [
          {
            "name": "viewport",
            "type": "Display.RhinoViewport",
            "summary": "A copy of rhinoViewport is made inside of HiddenLineDrawing."
          }
        ],
        "returns": "True if the viewport has been set."
      },
      {
        "signature": "System.Void SetViewport(ViewportInfo viewport)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Set the viewport for the hidden line drawing (HLD). The viewport supplies the projection that determines the visibility of curves, and the HLD coordinate system in which the resulting curves are represented. The HLD-coordinate system is a right handed system for 3-D model space, in which the 3rd coordinate direction is the projection direction. In particular the z-coordinate direction points from the scene toward the camera.",
        "since": "6.0",
        "parameters": [
          {
            "name": "viewport",
            "type": "ViewportInfo",
            "summary": "A copy of viewportInfo is made inside of HiddenLineDrawing."
          }
        ],
        "returns": "True if the viewport has been set."
      }
    ]
  },
  {
    "namespace": "Rhino.Geometry",
    "name": "HiddenLineDrawingPoint",
    "dataType": "class",
    "summary": "Points generated from source objects which correspond to point and point cloud source objects.",
    "properties": [
      {
        "signature": "int ClippingPlaneIndex",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Index into HiddenLineDrawing.ClippingPlanes when SilhouetteType == SilhouetteType.SectionCut.",
        "since": "6.8",
        "property": ["get"]
      },
      {
        "signature": "int Index",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Index of this object in HiddenLineDrawing.Points.",
        "since": "6.8",
        "property": ["get"]
      },
      {
        "signature": "Point3d Location",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns the location of this object in HiddenLineDrawing coordinates.",
        "since": "6.8",
        "property": ["get"]
      },
      {
        "signature": "Visibility PointVisibility",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns the point's visibility",
        "since": "6.8",
        "property": ["get"]
      },
      {
        "signature": "HiddenLineDrawingObject SourceObject",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Return the source object that this point came from.",
        "since": "6.8",
        "property": ["get"]
      },
      {
        "signature": "ComponentIndex SourceObjectComponentIndex",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Component of source object part that generated this curve.",
        "since": "6.8",
        "property": ["get"]
      }
    ]
  },
  {
    "namespace": "Rhino.Geometry",
    "name": "HiddenLineDrawingPoint.Visibility",
    "dataType": "enum",
    "summary": "The different types of HiddenLineObjectPoint visibility",
    "since": "6.8",
    "values": [
      {
        "signature": "Unset = UnsafeNativeMethods.HldPointVisibility.PointUnset",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Unset value"
      },
      {
        "signature": "Visible = UnsafeNativeMethods.HldPointVisibility.PointVisible",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Visible"
      },
      {
        "signature": "Hidden = UnsafeNativeMethods.HldPointVisibility.PointHidden",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Hidden"
      },
      {
        "signature": "Duplicate = UnsafeNativeMethods.HldPointVisibility.PointDuplicate",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Duplicate"
      }
    ]

  },
  {
    "namespace": "Rhino.Geometry",
    "name": "HiddenLineDrawingSegment",
    "dataType": "class",
    "summary": "The results of HiddenLineDrawing calculation are a collection of segments. A segment is a sub-curve of a HiddenLineDrawingObjectCurve.",
    "properties": [
      {
        "signature": "Curve CurveGeometry",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "The actual curve geometry",
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "SideFill[] CurveSideFills",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "The SideFill fields are only valid for visible curves. With respect to the HiddenLineDrawing, the region to the left (or right respectively) of this curve is described by CurveSideFills[0] or CurveSideFills[1], respectively.  If exactly one of these regions is empty this is a scene silhouette. If this region contains a surface it is either a surface which in 3-D is adjacent to this edge or it an surface that is further away from the camera, we call this a shadow surface. unknown is used for unset values and for projecting curves",
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "int Index",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Index of this curve in HiddenLineDrawing.Curves.",
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "bool IsSceneSilhouette",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns True if this curve is a scene silhouette.",
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "HiddenLineDrawingObjectCurve ParentCurve",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "This curve is a sub-curve of the returned HiddenLineDrawingFullCurve object.",
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "Visibility SegmentVisibility",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns the segment's visibility",
        "since": "6.0",
        "property": ["get"]
      }
    ]
  },
  {
    "namespace": "Rhino.Geometry",
    "name": "HiddenLineDrawingSegment.SideFill",
    "dataType": "enum",
    "summary": "When a silhouette is projected on the image plane (determined by the camera location or direction), and projects to a curve (not a point), the image area to the left or right of a projected silhouette curve is filled with either the surface or a void.",
    "since": "6.0",
    "values": [
      {
        "signature": "SideUnset = UnsafeNativeMethods.HldSilhouetteSideFill.SideUnset",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Unset"
      },
      {
        "signature": "SideSurface = UnsafeNativeMethods.HldSilhouetteSideFill.SideSurface",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Surface"
      },
      {
        "signature": "SideVoid = UnsafeNativeMethods.HldSilhouetteSideFill.SideVoid",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Void"
      },
      {
        "signature": "OtherSurface = UnsafeNativeMethods.HldSilhouetteSideFill.SideOtherSurface",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Other Surface"
      }
    ]

  },
  {
    "namespace": "Rhino.Geometry",
    "name": "HiddenLineDrawingSegment.Visibility",
    "dataType": "enum",
    "summary": "The different types of HiddenLineDrawingSegment visibility",
    "since": "6.0",
    "values": [
      {
        "signature": "Unset = UnsafeNativeMethods.HldCurveVisibility.Unset",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Unset value"
      },
      {
        "signature": "Visible = UnsafeNativeMethods.HldCurveVisibility.Visible",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Visible"
      },
      {
        "signature": "Hidden = UnsafeNativeMethods.HldCurveVisibility.Hidden",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Hidden"
      },
      {
        "signature": "Duplicate = UnsafeNativeMethods.HldCurveVisibility.Duplicate",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Duplicate"
      },
      {
        "signature": "Projecting = UnsafeNativeMethods.HldCurveVisibility.Projecting",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Projects to a point (smaller than tolerance)"
      },
      {
        "signature": "Clipped = UnsafeNativeMethods.HldCurveVisibility.Clipped",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Clipped by clipping planes"
      }
    ]

  },
  {
    "namespace": "Rhino.Geometry",
    "name": "InstanceDefinitionGeometry",
    "dataType": "class",
    "summary": "Represents a block definition in a File3dm. This is the same as Rhino.DocObjects.InstanceDefinition, but not associated with a RhinoDoc.",
    "baseclass": "Rhino.DocObjects.ModelComponent",
    "constructors": [
      {
        "signature": "InstanceDefinitionGeometry()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Initializes a new block definition.",
        "since": "5.0"
      }
    ],
    "properties": [
      {
        "signature": "ModelComponentType ComponentType",
        "modifiers": ["public", "override"],
        "protected": false,
        "virtual": false,
        "summary": "Returns <b>ModelComponentType.InstanceDefinition</b> .",
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "string Description",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the description of the definition.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "string SourceArchive",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the full file path for linked instance definitions.",
        "since": "8.0",
        "property": ["get"]
      },
      {
        "signature": "string Url",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the URL or hyperlink of the definition.",
        "since": "7.0",
        "property": ["get", "set"]
      },
      {
        "signature": "string UrlDescription",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the description of the URL or hyperlink of the definition.",
        "since": "7.0",
        "property": ["get", "set"]
      },
      {
        "signature": "int UserStringCount",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the amount of user strings.",
        "since": "8.9",
        "property": ["get"]
      }
    ],
    "methods": [
      {
        "signature": "System.Void DeleteAllUserStrings()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Deletes all user strings attached to this geometry.",
        "since": "8.9"
      },
      {
        "signature": "System.Boolean DeleteUserString(System.String key)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Deletes the user string with the specified key from this geometry.",
        "since": "8.9",
        "parameters": [
          {
            "name": "key",
            "type": "System.String",
            "summary": "The key of the user string to delete."
          }
        ],
        "returns": "True if the user string was deleted or did not exist; otherwise, false."
      },
      {
        "signature": "System.Guid[] GetObjectIds()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns the unique identifiers of all objects that are part of this instance definition's geometry table.",
        "since": "5.6",
        "returns": "An array of <b>Guid</b> values representing the object IDs in the instance geometry table."
      },
      {
        "signature": "System.String GetUserString(System.String key)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets user string from this geometry.",
        "since": "8.9",
        "parameters": [
          {
            "name": "key",
            "type": "System.String",
            "summary": "id used to retrieve the string."
          }
        ],
        "returns": "string associated with the key if successful. None if no key was found."
      },
      {
        "signature": "System.Collections.Specialized.NameValueCollection GetUserStrings()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets a copy of all (user key string, user value string) pairs attached to this geometry.",
        "since": "8.9",
        "returns": "A new collection."
      },
      {
        "signature": "System.Boolean SetUserString(System.String key, System.String value)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Attach a user string (key,value combination) to this geometry.",
        "since": "8.9",
        "parameters": [
          {
            "name": "key",
            "type": "System.String",
            "summary": "id used to retrieve this string."
          },
          {
            "name": "value",
            "type": "System.String",
            "summary": "string associated with key."
          }
        ],
        "returns": "True on success."
      }
    ]
  },
  {
    "namespace": "Rhino.Geometry",
    "name": "InstanceReferenceGeometry",
    "dataType": "class",
    "summary": "Represents a reference to the geometry in a block definition.",
    "baseclass": "Rhino.Geometry.GeometryBase",
    "constructors": [
      {
        "signature": "InstanceReferenceGeometry(Guid instanceDefinitionId, Transform transform)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Constructor used when creating nested instance references.",
        "since": "5.1"
      },
      {
        "signature": "InstanceReferenceGeometry(SerializationInfo info, StreamingContext context)",
        "modifiers": ["protected"],
        "protected": true,
        "virtual": false,
        "summary": "Protected constructor for internal use.",
        "parameters": [
          {
            "name": "info",
            "type": "System.Runtime.Serialization.SerializationInfo",
            "summary": "Serialization data."
          },
          {
            "name": "context",
            "type": "System.Runtime.Serialization.StreamingContext",
            "summary": "Serialization stream."
          }
        ]
      }
    ],
    "properties": [
      {
        "signature": "Guid ParentIdefId",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "The unique id for the parent instance definition of this instance reference.",
        "since": "5.6",
        "property": ["get"]
      },
      {
        "signature": "Transform Xform",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Transformation for this reference.",
        "since": "5.6",
        "property": ["get"]
      }
    ]
  },
  {
    "namespace": "Rhino.Geometry",
    "name": "Interpolator",
    "dataType": "class",
    "summary": "Exposes a set of standard numeric interpolation algorithms.",
    "baseclass": "RhinoList<double>",
    "constructors": [
      {
        "signature": "Interpolator()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Constructs a new, empty Interpolator.",
        "since": "5.0"
      },
      {
        "signature": "Interpolator(IEnumerable<double> collection)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Constructs an Interpolator from a collection of numbers.",
        "since": "5.0",
        "parameters": [
          {
            "name": "collection",
            "type": "IEnumerable<double>",
            "summary": "Collection of numbers to duplicate."
          }
        ]
      },
      {
        "signature": "Interpolator(int amount, double defaultValue)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Constructs a new Interpolator with a specified amount of numbers.",
        "since": "5.0",
        "parameters": [
          {
            "name": "amount",
            "type": "System.Int32",
            "summary": "Number of values to add to this Interpolator. Must be equal to or larger than zero."
          },
          {
            "name": "defaultValue",
            "type": "System.Double",
            "summary": "Number to add."
          }
        ]
      },
      {
        "signature": "Interpolator(int initialCapacity)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Constructs an empty Interpolator with a certain capacity.",
        "since": "5.0",
        "parameters": [
          {
            "name": "initialCapacity",
            "type": "System.Int32",
            "summary": "Number of items this interpolator can store without resizing."
          }
        ]
      },
      {
        "signature": "Interpolator(RhinoList<double> list)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Copy all the numbers from an existing RhinoList.",
        "since": "5.0",
        "parameters": [
          {
            "name": "list",
            "type": "RhinoList<double>",
            "summary": "List to mimic."
          }
        ]
      }
    ],
    "properties": [
      {
        "signature": "bool Cyclical",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets a value indicating whether or not the values inside this Interpolator are to be treated as cyclical (i.e. circular).",
        "since": "5.0",
        "property": ["get", "set"]
      }
    ],
    "methods": [
      {
        "signature": "System.Double InterpolateCatmullRom(System.Double t)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Sample the list of numbers with Catmull-Rom interpolation.",
        "since": "5.0",
        "parameters": [
          {
            "name": "t",
            "type": "System.Double",
            "summary": "Parameter to sample at. The integer portion of the parameter indicates the index of the left-hand value. If this Interpolator is cyclical, parameters will be wrapped."
          }
        ],
        "returns": "The sampled value at t."
      },
      {
        "signature": "System.Double InterpolateCosine(System.Double t)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Sample the list of numbers with cosine interpolation.",
        "since": "5.0",
        "parameters": [
          {
            "name": "t",
            "type": "System.Double",
            "summary": "Parameter to sample at. The integer portion of the parameter indicates the index of the left-hand value. If this Interpolator is cyclical, parameters will be wrapped."
          }
        ],
        "returns": "The sampled value at t."
      },
      {
        "signature": "System.Double InterpolateCubic(System.Double t)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Sample the list of numbers with cubic interpolation.",
        "since": "5.0",
        "parameters": [
          {
            "name": "t",
            "type": "System.Double",
            "summary": "Parameter to sample at. The integer portion of the parameter indicates the index of the left-hand value. If this Interpolator is cyclical, parameters will be wrapped."
          }
        ],
        "returns": "The sampled value at t."
      },
      {
        "signature": "System.Double InterpolateLinear(System.Double t)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Sample the list of numbers with linear interpolation.",
        "since": "5.0",
        "parameters": [
          {
            "name": "t",
            "type": "System.Double",
            "summary": "Parameter to sample at. The integer portion of the parameter indicates the index of the left-hand value. If this Interpolator is cyclical, parameters will be wrapped."
          }
        ],
        "returns": "The sampled value at t."
      },
      {
        "signature": "System.Double InterpolateNearestNeighbour(System.Double t)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Sample the list of numbers with Nearest Neighbor interpolation.",
        "since": "5.0",
        "parameters": [
          {
            "name": "t",
            "type": "System.Double",
            "summary": "Parameter to sample at. The integer portion of the parameter indicates the index of the left-hand value. If this Interpolator is cyclical, parameters will be wrapped."
          }
        ],
        "returns": "The sampled value at t."
      }
    ]
  },
  {
    "namespace": "Rhino.Geometry.Intersect",
    "name": "ArcArcIntersection",
    "dataType": "enum",
    "summary": "Represents all possible cases of a Arc|Arc intersection event.",
    "since": "7.12",
    "values": [
      {
        "signature": "None = 0",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Arcs do not intersect."
      },
      {
        "signature": "Single = 1",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Arcs touch at a one point."
      },
      {
        "signature": "Multiple = 2",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Arcs intersect at two points."
      },
      {
        "signature": "Overlap = 3",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Arcs are cocircular and overlap."
      }
    ]

  },
  {
    "namespace": "Rhino.Geometry.Intersect",
    "name": "CircleCircleIntersection",
    "dataType": "enum",
    "summary": "Represents all possible cases of a Circle|Circle intersection event.",
    "since": "7.12",
    "values": [
      {
        "signature": "None = 0",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Circles do not intersect."
      },
      {
        "signature": "Single = 1",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Circles touch at a one point."
      },
      {
        "signature": "Multiple = 2",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Circles intersect at two points."
      },
      {
        "signature": "Overlap = 3",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Circles are identical."
      }
    ]

  },
  {
    "namespace": "Rhino.Geometry.Intersect",
    "name": "CurveIntersections",
    "dataType": "class",
    "summary": "Maintains an ordered list of Curve Intersection results.",
    "interfaces": ["IDisposable", "IList<IntersectionEvent>"],
    "constructors": [
      {
        "signature": "CurveIntersections()",
        "summary": "Initializes a new instance of the CurveIntersections class"
      }
    ],
    "properties": [
      {
        "signature": "int Count",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the number of recorded intersection events.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "IntersectionEvent this[int index]",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the intersection event data at the given index."
      }
    ],
    "methods": [
      {
        "signature": "System.Void CopyTo(IntersectionEvent[] array, System.Int32 arrayIndex)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Copies all intersection results into another array, departing at an index in the target array.",
        "since": "5.0",
        "parameters": [
          {
            "name": "array",
            "type": "IntersectionEvent[]",
            "summary": "The target array. This value cannot be null."
          },
          {
            "name": "arrayIndex",
            "type": "System.Int32",
            "summary": "Zero-based index in which to start the copy."
          }
        ]
      },
      {
        "signature": "System.Void Dispose()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Actively reclaims unmanaged resources that this instance uses.",
        "since": "5.0"
      },
      {
        "signature": "System.Void Dispose(System.Boolean disposing)",
        "modifiers": ["protected", "virtual"],
        "protected": true,
        "virtual": true,
        "summary": "For derived class implementers.  \nThis method is called with argument True when class user calls Dispose(), while with argument False when     the Garbage Collector invokes the finalizer, or Finalize() method.  \nYou must reclaim all used unmanaged resources in both cases, and can use this chance to call Dispose on disposable fields if the argument is true.  \nAlso, you must call the base virtual method within your overriding method.",
        "parameters": [
          {
            "name": "disposing",
            "type": "System.Boolean",
            "summary": "True if the call comes from the Dispose() method; False if it comes from the Garbage Collector finalizer."
          }
        ]
      },
      {
        "signature": "IEnumerator<IntersectionEvent> GetEnumerator()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns an enumerator that is capable of yielding all IntersectionEvents in the collection.",
        "since": "5.0",
        "returns": "The constructed enumerator."
      }
    ]
  },
  {
    "namespace": "Rhino.Geometry.Intersect",
    "name": "Intersection",
    "dataType": "class",
    "summary": "Provides static methods for the computation of intersections, projections, sections and similar.",
    "constructors": [
      {
        "signature": "Intersection()",
        "summary": "Initializes a new instance of the Intersection class"
      }
    ],
    "properties": [
      {
        "signature": "double MeshIntersectionsTolerancesCoefficient",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Offers a requested adjustment coefficient for mesh-mesh intersections tolerances.     The value can be used to multiply the document absolute tolerance.  \nThis is only a UI value; it is up to developer to honor (or not) this request, depending on application needs.",
        "since": "7.0",
    "remarks": "Generally, document tolerances are around 0.001 for objects sized about 100 units. However, good mesh triangles for these objects are often a few orders of magnitude smaller than these values. This coefficient is provided to scale absolute document tolerances to values more suitable for good mesh intersections.",
        "property": ["get", "set"]
      }
    ],
    "methods": [
      {
        "signature": "ArcArcIntersection ArcArc(Arc arcA, Arc arcB, out Point3d intersectionPoint1, out Point3d intersectionPoint2)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Intersects two arcs using exact calculations.",
        "since": "7.12",
        "parameters": [
          {
            "name": "arcA",
            "type": "Arc",
            "summary": "First arc to intersect."
          },
          {
            "name": "arcB",
            "type": "Arc",
            "summary": "Second arc to intersect."
          },
          {
            "name": "intersectionPoint1",
            "type": "Point3d",
            "summary": "First intersection point."
          },
          {
            "name": "intersectionPoint2",
            "type": "Point3d",
            "summary": "Second intersection point."
          }
        ],
        "returns": "The intersection type."
      },
      {
        "signature": "System.Boolean BrepBrep(Brep brepA, Brep brepB, System.Double tolerance, out Curve[] intersectionCurves, out Point3d[] intersectionPoints)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Intersects two Breps.",
        "since": "5.0",
        "parameters": [
          {
            "name": "brepA",
            "type": "Brep",
            "summary": "First Brep for intersection."
          },
          {
            "name": "brepB",
            "type": "Brep",
            "summary": "Second Brep for intersection."
          },
          {
            "name": "tolerance",
            "type": "System.Double",
            "summary": "Intersection tolerance."
          },
          {
            "name": "intersectionCurves",
            "type": "Curve[]",
            "summary": "The intersection curves will be returned here."
          },
          {
            "name": "intersectionPoints",
            "type": "Point3d[]",
            "summary": "The intersection points will be returned here."
          }
        ],
        "returns": "True if the operation was success, False otherwise. Check the output arrays to determine how the input intersects."
      },
      {
        "signature": "System.Boolean BrepBrep(Brep brepA, Brep brepB, System.Double tolerance, System.Boolean joinCurves, out Curve[] intersectionCurves, out Point3d[] intersectionPoints)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Intersects two Breps.",
        "since": "8.12",
        "parameters": [
          {
            "name": "brepA",
            "type": "Brep",
            "summary": "First Brep for intersection."
          },
          {
            "name": "brepB",
            "type": "Brep",
            "summary": "Second Brep for intersection."
          },
          {
            "name": "tolerance",
            "type": "System.Double",
            "summary": "Intersection tolerance."
          },
          {
            "name": "joinCurves",
            "type": "System.Boolean",
            "summary": "If true, join the resulting curves where possible."
          },
          {
            "name": "intersectionCurves",
            "type": "Curve[]",
            "summary": "The intersection curves will be returned here."
          },
          {
            "name": "intersectionPoints",
            "type": "Point3d[]",
            "summary": "The intersection points will be returned here."
          }
        ],
        "returns": "True if the operation was success, False otherwise. Check the output arrays to determine how the input intersects."
      },
      {
        "signature": "System.Boolean BrepPlane(Brep brep, Plane plane, System.Double tolerance, out Curve[] intersectionCurves, out Point3d[] intersectionPoints)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Intersects a Brep with an (infinite) plane.",
        "since": "5.0",
        "parameters": [
          {
            "name": "brep",
            "type": "Brep",
            "summary": "Brep to intersect."
          },
          {
            "name": "plane",
            "type": "Plane",
            "summary": "Plane to intersect with."
          },
          {
            "name": "tolerance",
            "type": "System.Double",
            "summary": "Tolerance to use for intersections."
          },
          {
            "name": "intersectionCurves",
            "type": "Curve[]",
            "summary": "The intersection curves will be returned here."
          },
          {
            "name": "intersectionPoints",
            "type": "Point3d[]",
            "summary": "The intersection points will be returned here."
          }
        ],
        "returns": "True on success, False on failure."
      },
      {
        "signature": "System.Boolean BrepPlane(Brep brep, Plane plane, System.Double tolerance, System.Boolean joinCurves, out Curve[] intersectionCurves, out Point3d[] intersectionPoints)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Intersects a Brep with an (infinite) plane.",
        "parameters": [
          {
            "name": "brep",
            "type": "Brep",
            "summary": "Brep to intersect."
          },
          {
            "name": "plane",
            "type": "Plane",
            "summary": "Plane to intersect with."
          },
          {
            "name": "tolerance",
            "type": "System.Double",
            "summary": "Tolerance to use for intersections."
          },
          {
            "name": "joinCurves",
            "type": "System.Boolean",
            "summary": "If true, join the resulting curves where possible."
          },
          {
            "name": "intersectionCurves",
            "type": "Curve[]",
            "summary": "The intersection curves will be returned here."
          },
          {
            "name": "intersectionPoints",
            "type": "Point3d[]",
            "summary": "The intersection points will be returned here."
          }
        ],
        "returns": "True on success, False on failure."
      },
      {
        "signature": "System.Boolean BrepSurface(Brep brep, Surface surface, System.Double tolerance, out Curve[] intersectionCurves, out Point3d[] intersectionPoints)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Intersects a Brep and a Surface.",
        "since": "5.0",
        "parameters": [
          {
            "name": "brep",
            "type": "Brep",
            "summary": "A brep to be intersected."
          },
          {
            "name": "surface",
            "type": "Surface",
            "summary": "A surface to be intersected."
          },
          {
            "name": "tolerance",
            "type": "System.Double",
            "summary": "A tolerance value."
          },
          {
            "name": "intersectionCurves",
            "type": "Curve[]",
            "summary": "The intersection curves array argument. This out reference is assigned during the call."
          },
          {
            "name": "intersectionPoints",
            "type": "Point3d[]",
            "summary": "The intersection points array argument. This out reference is assigned during the call."
          }
        ],
        "returns": "True if the operation was success, False otherwise. Check the output arrays to determine how the input intersects."
      },
      {
        "signature": "System.Boolean BrepSurface(Brep brep, Surface surface, System.Double tolerance, System.Boolean joinCurves, out Curve[] intersectionCurves, out Point3d[] intersectionPoints)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Intersects a Brep and a Surface.",
        "since": "8.12",
        "parameters": [
          {
            "name": "brep",
            "type": "Brep",
            "summary": "A brep to be intersected."
          },
          {
            "name": "surface",
            "type": "Surface",
            "summary": "A surface to be intersected."
          },
          {
            "name": "tolerance",
            "type": "System.Double",
            "summary": "A tolerance value."
          },
          {
            "name": "joinCurves",
            "type": "System.Boolean",
            "summary": "If true, join the resulting curves where possible."
          },
          {
            "name": "intersectionCurves",
            "type": "Curve[]",
            "summary": "The intersection curves array argument. This out reference is assigned during the call."
          },
          {
            "name": "intersectionPoints",
            "type": "Point3d[]",
            "summary": "The intersection points array argument. This out reference is assigned during the call."
          }
        ],
        "returns": "True if the operation was success, False otherwise. Check the output arrays to determine how the input intersects."
      },
      {
        "signature": "CircleCircleIntersection CircleCircle(Circle circleA, Circle circleB, out Point3d intersectionPoint1, out Point3d intersectionPoint2)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Intersects two circles using exact calculations.",
        "since": "7.12",
        "parameters": [
          {
            "name": "circleA",
            "type": "Circle",
            "summary": "First circle to intersect."
          },
          {
            "name": "circleB",
            "type": "Circle",
            "summary": "Second circle to intersect."
          },
          {
            "name": "intersectionPoint1",
            "type": "Point3d",
            "summary": "First intersection point."
          },
          {
            "name": "intersectionPoint2",
            "type": "Point3d",
            "summary": "Second intersection point."
          }
        ],
        "returns": "The intersection type."
      },
      {
        "signature": "System.Boolean CurveBrep(Curve curve, Brep brep, System.Double tolerance, out Curve[] overlapCurves, out Point3d[] intersectionPoints, out System.Double[] curveParameters)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Intersects a curve with a Brep. This function returns the 3D points of intersection, curve parameters at the intersection locations, and 3D overlap curves. If an error occurs while processing overlap curves, this function will return false, but it will still provide partial results.",
        "since": "6.0",
        "parameters": [
          {
            "name": "curve",
            "type": "Curve",
            "summary": "Curve for intersection."
          },
          {
            "name": "brep",
            "type": "Brep",
            "summary": "Brep for intersection."
          },
          {
            "name": "tolerance",
            "type": "System.Double",
            "summary": "Fitting and near miss tolerance."
          },
          {
            "name": "overlapCurves",
            "type": "Curve[]",
            "summary": "The overlap curves will be returned here."
          },
          {
            "name": "intersectionPoints",
            "type": "Point3d[]",
            "summary": "The intersection points will be returned here."
          },
          {
            "name": "curveParameters",
            "type": "System.Double[]",
            "summary": "The intersection curve parameters will be returned here."
          }
        ],
        "returns": "True on success, False on failure."
      },
      {
        "signature": "System.Boolean CurveBrep(Curve curve, Brep brep, System.Double tolerance, out Curve[] overlapCurves, out Point3d[] intersectionPoints)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Intersects a curve with a Brep. This function returns the 3D points of intersection and 3D overlap curves. If an error occurs while processing overlap curves, this function will return false, but it will still provide partial results.",
        "since": "5.0",
        "parameters": [
          {
            "name": "curve",
            "type": "Curve",
            "summary": "Curve for intersection."
          },
          {
            "name": "brep",
            "type": "Brep",
            "summary": "Brep for intersection."
          },
          {
            "name": "tolerance",
            "type": "System.Double",
            "summary": "Fitting and near miss tolerance."
          },
          {
            "name": "overlapCurves",
            "type": "Curve[]",
            "summary": "The overlap curves will be returned here."
          },
          {
            "name": "intersectionPoints",
            "type": "Point3d[]",
            "summary": "The intersection points will be returned here."
          }
        ],
        "returns": "True on success, False on failure."
      },
      {
        "signature": "System.Boolean CurveBrep(Curve curve, Brep brep, System.Double tolerance, System.Double angleTolerance, out System.Double[] t)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Intersect a curve with a Brep. This function returns the intersection parameters on the curve.",
        "since": "6.0",
        "parameters": [
          {
            "name": "curve",
            "type": "Curve",
            "summary": "Curve."
          },
          {
            "name": "brep",
            "type": "Brep",
            "summary": "Brep."
          },
          {
            "name": "tolerance",
            "type": "System.Double",
            "summary": "Absolute tolerance for intersections."
          },
          {
            "name": "angleTolerance",
            "type": "System.Double",
            "summary": "Angle tolerance in radians."
          },
          {
            "name": "t",
            "type": "System.Double[]",
            "summary": "Curve parameters at intersections."
          }
        ],
        "returns": "True on success, False on failure."
      },
      {
        "signature": "System.Boolean CurveBrepFace(Curve curve, BrepFace face, System.Double tolerance, out Curve[] overlapCurves, out Point3d[] intersectionPoints)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Intersects a curve with a Brep face.",
        "since": "5.0",
        "parameters": [
          {
            "name": "curve",
            "type": "Curve",
            "summary": "A curve."
          },
          {
            "name": "face",
            "type": "BrepFace",
            "summary": "A brep face."
          },
          {
            "name": "tolerance",
            "type": "System.Double",
            "summary": "Fitting and near miss tolerance."
          },
          {
            "name": "overlapCurves",
            "type": "Curve[]",
            "summary": "A overlap curves array argument. This out reference is assigned during the call."
          },
          {
            "name": "intersectionPoints",
            "type": "Point3d[]",
            "summary": "A points array argument. This out reference is assigned during the call."
          }
        ],
        "returns": "True on success, False on failure."
      },
      {
        "signature": "CurveIntersections CurveCurve(Curve curveA, Curve curveB, System.Double tolerance, System.Double overlapTolerance)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Finds the intersections between two curves.",
        "since": "5.0",
        "parameters": [
          {
            "name": "curveA",
            "type": "Curve",
            "summary": "First curve for intersection."
          },
          {
            "name": "curveB",
            "type": "Curve",
            "summary": "Second curve for intersection."
          },
          {
            "name": "tolerance",
            "type": "System.Double",
            "summary": "Intersection tolerance. If the curves approach each other to within tolerance, an intersection is assumed."
          },
          {
            "name": "overlapTolerance",
            "type": "System.Double",
            "summary": "The tolerance with which the curves are tested."
          }
        ],
        "returns": "A collection of intersection events."
      },
      {
        "signature": "CurveIntersections CurveCurveValidate(Curve curveA, Curve curveB, System.Double tolerance, System.Double overlapTolerance, out System.Int32[] invalidIndices, out TextLog textLog)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Finds the intersections between two curves.",
        "since": "7.0",
        "parameters": [
          {
            "name": "curveA",
            "type": "Curve",
            "summary": "First curve for intersection."
          },
          {
            "name": "curveB",
            "type": "Curve",
            "summary": "Second curve for intersection."
          },
          {
            "name": "tolerance",
            "type": "System.Double",
            "summary": "Intersection tolerance. If the curves approach each other to within tolerance, an intersection is assumed."
          },
          {
            "name": "overlapTolerance",
            "type": "System.Double",
            "summary": "The tolerance with which the curves are tested."
          },
          {
            "name": "invalidIndices",
            "type": "System.Int32[]",
            "summary": "The indices in the resulting CurveIntersections collection that are invalid."
          },
          {
            "name": "textLog",
            "type": "TextLog",
            "summary": "A text log that contains tails about the invalid intersection events."
          }
        ],
        "returns": "A collection of intersection events."
      },
      {
        "signature": "CurveIntersections CurveLine(Curve curve, Line line, System.Double tolerance, System.Double overlapTolerance)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Intersects a curve and an infinite line.",
        "since": "6.0",
        "parameters": [
          {
            "name": "curve",
            "type": "Curve",
            "summary": "Curve for intersection."
          },
          {
            "name": "line",
            "type": "Line",
            "summary": "Infinite line to intersect."
          },
          {
            "name": "tolerance",
            "type": "System.Double",
            "summary": "Intersection tolerance. If the curves approach each other to within tolerance, an intersection is assumed."
          },
          {
            "name": "overlapTolerance",
            "type": "System.Double",
            "summary": "The tolerance with which the curves are tested."
          }
        ],
        "returns": "A collection of intersection events."
      },
      {
        "signature": "CurveIntersections CurvePlane(Curve curve, Plane plane, System.Double tolerance)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Intersects a curve with an (infinite) plane.",
        "since": "5.0",
        "parameters": [
          {
            "name": "curve",
            "type": "Curve",
            "summary": "Curve to intersect."
          },
          {
            "name": "plane",
            "type": "Plane",
            "summary": "Plane to intersect with."
          },
          {
            "name": "tolerance",
            "type": "System.Double",
            "summary": "Tolerance to use during intersection."
          }
        ],
        "returns": "A list of intersection events or None if no intersections were recorded."
      },
      {
        "signature": "CurveIntersections CurveSelf(Curve curve, System.Double tolerance)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Finds the places where a curve intersects itself.",
        "since": "5.0",
        "parameters": [
          {
            "name": "curve",
            "type": "Curve",
            "summary": "Curve for self-intersections."
          },
          {
            "name": "tolerance",
            "type": "System.Double",
            "summary": "Intersection tolerance. If the curve approaches itself to within tolerance, an intersection is assumed."
          }
        ],
        "returns": "A collection of intersection events."
      },
      {
        "signature": "CurveIntersections CurveSurface(Curve curve, Interval curveDomain, Surface surface, System.Double tolerance, System.Double overlapTolerance)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Intersects a sub-curve and a surface.",
        "since": "5.0",
        "parameters": [
          {
            "name": "curve",
            "type": "Curve",
            "summary": "Curve for intersection."
          },
          {
            "name": "curveDomain",
            "type": "Interval",
            "summary": "Domain of sub-curve to take into consideration for Intersections."
          },
          {
            "name": "surface",
            "type": "Surface",
            "summary": "Surface for intersection."
          },
          {
            "name": "tolerance",
            "type": "System.Double",
            "summary": "Intersection tolerance. If the curve approaches the surface to within tolerance, an intersection is assumed."
          },
          {
            "name": "overlapTolerance",
            "type": "System.Double",
            "summary": "The tolerance with which the curves are tested."
          }
        ],
        "returns": "A collection of intersection events."
      },
      {
        "signature": "CurveIntersections CurveSurface(Curve curve, Surface surface, System.Double tolerance, System.Double overlapTolerance)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Intersects a curve and a surface.",
        "since": "5.0",
        "parameters": [
          {
            "name": "curve",
            "type": "Curve",
            "summary": "Curve for intersection."
          },
          {
            "name": "surface",
            "type": "Surface",
            "summary": "Surface for intersection."
          },
          {
            "name": "tolerance",
            "type": "System.Double",
            "summary": "Intersection tolerance. If the curve approaches the surface to within tolerance, an intersection is assumed."
          },
          {
            "name": "overlapTolerance",
            "type": "System.Double",
            "summary": "The tolerance with which the curves are tested."
          }
        ],
        "returns": "A collection of intersection events."
      },
      {
        "signature": "CurveIntersections CurveSurfaceValidate(Curve curve, Interval curveDomain, Surface surface, System.Double tolerance, System.Double overlapTolerance, out System.Int32[] invalidIndices, out TextLog textLog)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Intersects a sub-curve and a surface.",
        "since": "7.0",
        "parameters": [
          {
            "name": "curve",
            "type": "Curve",
            "summary": "Curve for intersection."
          },
          {
            "name": "curveDomain",
            "type": "Interval",
            "summary": "Domain of sub-curve to take into consideration for Intersections."
          },
          {
            "name": "surface",
            "type": "Surface",
            "summary": "Surface for intersection."
          },
          {
            "name": "tolerance",
            "type": "System.Double",
            "summary": "Intersection tolerance. If the curve approaches the surface to within tolerance, an intersection is assumed."
          },
          {
            "name": "overlapTolerance",
            "type": "System.Double",
            "summary": "The tolerance with which the curves are tested."
          },
          {
            "name": "invalidIndices",
            "type": "System.Int32[]",
            "summary": "The indices in the resulting CurveIntersections collection that are invalid."
          },
          {
            "name": "textLog",
            "type": "TextLog",
            "summary": "A text log that contains tails about the invalid intersection events."
          }
        ],
        "returns": "A collection of intersection events."
      },
      {
        "signature": "CurveIntersections CurveSurfaceValidate(Curve curve, Surface surface, System.Double tolerance, System.Double overlapTolerance, out System.Int32[] invalidIndices, out TextLog textLog)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Intersects a curve and a surface.",
        "since": "7.0",
        "parameters": [
          {
            "name": "curve",
            "type": "Curve",
            "summary": "Curve for intersection."
          },
          {
            "name": "surface",
            "type": "Surface",
            "summary": "Surface for intersection."
          },
          {
            "name": "tolerance",
            "type": "System.Double",
            "summary": "Intersection tolerance. If the curve approaches the surface to within tolerance, an intersection is assumed."
          },
          {
            "name": "overlapTolerance",
            "type": "System.Double",
            "summary": "The tolerance with which the curves are tested."
          },
          {
            "name": "invalidIndices",
            "type": "System.Int32[]",
            "summary": "The indices in the resulting CurveIntersections collection that are invalid."
          },
          {
            "name": "textLog",
            "type": "TextLog",
            "summary": "A text log that contains tails about the invalid intersection events."
          }
        ],
        "returns": "A collection of intersection events."
      },
      {
        "signature": "System.Boolean GeometryPlane(GeometryBase geometry, Plane plane, System.Double tolerance, System.Boolean joinCurves, RhinoDoc doc, out Curve[] intersectionCurves, out Point3d[] intersectionPoints)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Intersects a Brep with an (infinite) plane.",
        "parameters": [
          {
            "name": "geometry",
            "type": "GeometryBase",
            "summary": "GeometryBase object to intersect."
          },
          {
            "name": "plane",
            "type": "Plane",
            "summary": "Plane to intersect with."
          },
          {
            "name": "tolerance",
            "type": "System.Double",
            "summary": "Tolerance to use for intersections."
          },
          {
            "name": "joinCurves",
            "type": "System.Boolean",
            "summary": "If true, join the resulting curves where possible."
          },
          {
            "name": "doc",
            "type": "RhinoDoc",
            "summary": "The document to use for intersection. If null, then it will fail if geometry is an InstanceDefinitionGeometry."
          },
          {
            "name": "intersectionCurves",
            "type": "Curve[]",
            "summary": "The intersection curves will be returned here."
          },
          {
            "name": "intersectionPoints",
            "type": "Point3d[]",
            "summary": "The intersection points will be returned here."
          }
        ],
        "returns": "True on success, False on failure."
      },
      {
        "signature": "System.Boolean LineBox(Line line, BoundingBox box, System.Double tolerance, out Interval lineParameters)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Intersects an infinite line and an axis aligned bounding box.",
        "since": "5.0",
        "parameters": [
          {
            "name": "line",
            "type": "Line",
            "summary": "Line for intersection."
          },
          {
            "name": "box",
            "type": "BoundingBox",
            "summary": "BoundingBox to intersect."
          },
          {
            "name": "tolerance",
            "type": "System.Double",
            "summary": "If tolerance > 0.0, then the intersection is performed against a box that has each side moved out by tolerance."
          },
          {
            "name": "lineParameters",
            "type": "Interval",
            "summary": "The chord from line.PointAt(lineParameters.T0) to line.PointAt(lineParameters.T1) is the intersection."
          }
        ],
        "returns": "True if the line intersects the box, False if no intersection occurs."
      },
      {
        "signature": "System.Boolean LineBox(Line line, Box box, System.Double tolerance, out Interval lineParameters)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Intersects an infinite line with a box volume.",
        "since": "5.0",
        "parameters": [
          {
            "name": "line",
            "type": "Line",
            "summary": "Line for intersection."
          },
          {
            "name": "box",
            "type": "Box",
            "summary": "Box to intersect."
          },
          {
            "name": "tolerance",
            "type": "System.Double",
            "summary": "If tolerance > 0.0, then the intersection is performed against a box that has each side moved out by tolerance."
          },
          {
            "name": "lineParameters",
            "type": "Interval",
            "summary": "The chord from line.PointAt(lineParameters.T0) to line.PointAt(lineParameters.T1) is the intersection."
          }
        ],
        "returns": "True if the line intersects the box, False if no intersection occurs."
      },
      {
        "signature": "LineCircleIntersection LineCircle(Line line, Circle circle, out System.Double t1, out Point3d point1, out System.Double t2, out Point3d point2)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Intersects a line with a circle using exact calculations.",
        "since": "5.0",
        "parameters": [
          {
            "name": "line",
            "type": "Line",
            "summary": "Line for intersection."
          },
          {
            "name": "circle",
            "type": "Circle",
            "summary": "Circle for intersection."
          },
          {
            "name": "t1",
            "type": "System.Double",
            "summary": "Parameter on line for first intersection."
          },
          {
            "name": "point1",
            "type": "Point3d",
            "summary": "Point on circle closest to first intersection."
          },
          {
            "name": "t2",
            "type": "System.Double",
            "summary": "Parameter on line for second intersection."
          },
          {
            "name": "point2",
            "type": "Point3d",
            "summary": "Point on circle closest to second intersection."
          }
        ],
        "returns": "If <b>LineCircleIntersection.Single</b> is returned, only t1 and point1 will have valid values. If <b>LineCircleIntersection.Multiple</b> is returned, t2 and point2 will also be filled out."
      },
      {
        "signature": "LineCylinderIntersection LineCylinder(Line line, Cylinder cylinder, out Point3d intersectionPoint1, out Point3d intersectionPoint2)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Intersects a line with a cylinder using exact calculations.",
        "since": "5.0",
        "parameters": [
          {
            "name": "line",
            "type": "Line",
            "summary": "Line for intersection."
          },
          {
            "name": "cylinder",
            "type": "Cylinder",
            "summary": "Cylinder for intersection."
          },
          {
            "name": "intersectionPoint1",
            "type": "Point3d",
            "summary": "First intersection point."
          },
          {
            "name": "intersectionPoint2",
            "type": "Point3d",
            "summary": "Second intersection point."
          }
        ],
        "returns": "If None is returned, the first point is the point on the line closest to the cylinder and the second point is the point on the cylinder closest to the line.  \nIf  is returned, the first point     is the point on the line and the second point is the  same point on the     cylinder."
      },
      {
        "signature": "System.Boolean LineLine(Line lineA, Line lineB, out System.Double a, out System.Double b, System.Double tolerance, System.Boolean finiteSegments)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Intersects two lines.",
        "since": "5.0",
    "remarks": "If the lines are exactly parallel, meaning the system of equations used to find a and b has no numerical solution, then False is returned. If the lines are nearly parallel, which is often numerically True even if you think the lines look exactly parallel, then the closest points are found and True is returned. So, if you care about weeding out \"parallel\" lines, then you need to do something like the following: <pre>bool rc = Intersect.LineLine(lineA, lineB, out a, out b, tolerance, segments);  \nif (rc)  \n{  \ndouble angle_tol = RhinoMath.ToRadians(1.0); // or whatever  \ndouble parallel_tol = Math.Cos(angle_tol);  \nif ( Math.Abs(lineA.UnitTangent * lineB.UnitTangent) >= parallel_tol )  \n{  \n... do whatever you think is appropriate  \n}  \n}</pre><pre>Dim rc As Boolean = Intersect.LineLine(lineA, lineB, a, b, tolerance, segments)  \nIf (rc) Then  \nDim angle_tol As Double = RhinoMath.ToRadians(1.0) 'or whatever  \nDim parallel_tolerance As Double = Math.Cos(angle_tol)  \nIf (Math.Abs(lineA.UnitTangent * lineB.UnitTangent) >= parallel_tolerance) Then  \n... do whatever you think is appropriate  \nEnd If  \nEnd If</pre>",
        "parameters": [
          {
            "name": "lineA",
            "type": "Line",
            "summary": "First line for intersection."
          },
          {
            "name": "lineB",
            "type": "Line",
            "summary": "Second line for intersection."
          },
          {
            "name": "a",
            "type": "System.Double",
            "summary": "Parameter on lineA that is closest to LineB. The shortest distance between the lines is the chord from lineA.PointAt(a) to lineB.PointAt(b)"
          },
          {
            "name": "b",
            "type": "System.Double",
            "summary": "Parameter on lineB that is closest to LineA. The shortest distance between the lines is the chord from lineA.PointAt(a) to lineB.PointAt(b)"
          },
          {
            "name": "tolerance",
            "type": "System.Double",
            "summary": "If tolerance > 0.0, then an intersection is reported only if the distance between the points is <= tolerance. If tolerance <= 0.0, then the closest point between the lines is reported."
          },
          {
            "name": "finiteSegments",
            "type": "System.Boolean",
            "summary": "If true, the input lines are treated as finite segments. If false, the input lines are treated as infinite lines."
          }
        ],
        "returns": "True if a closest point can be calculated and the result passes the tolerance parameter test; otherwise false."
      },
      {
        "signature": "System.Boolean LineLine(Line lineA, Line lineB, out System.Double a, out System.Double b)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Find the unique closest-points pair between two infinite lines, if it exists.",
        "since": "5.0",
        "parameters": [
          {
            "name": "lineA",
            "type": "Line",
            "summary": "First line."
          },
          {
            "name": "lineB",
            "type": "Line",
            "summary": "Second line."
          },
          {
            "name": "a",
            "type": "System.Double",
            "summary": "Parameter on lineA that is closest to lineB."
          },
          {
            "name": "b",
            "type": "System.Double",
            "summary": "Parameter on lineB that is closest to lineA. The shortest distance between the lines is the chord from lineA.PointAt(a) to lineB.PointAt(b)"
          }
        ],
        "returns": "True if points are found and False if the lines are numerically parallel. Numerically parallel means the 2x2 matrix:  \n+AoA  -AoB  \n-AoB  +BoB is numerically singular, where A = (lineA.To - lineA.From) and B = (lineB.To-lineB.From)."
      },
      {
        "signature": "System.Boolean LinePlane(Line line, Plane plane, out System.Double lineParameter)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Intersects a line and a plane. This function only returns True if the intersection result is a single point (i.e. if the line is coincident with the plane then no intersection is assumed).",
        "since": "5.0",
        "parameters": [
          {
            "name": "line",
            "type": "Line",
            "summary": "Line for intersection."
          },
          {
            "name": "plane",
            "type": "Plane",
            "summary": "Plane to intersect."
          },
          {
            "name": "lineParameter",
            "type": "System.Double",
            "summary": "Parameter on line where intersection occurs. If the parameter is not within the {0, 1} Interval then the finite segment does not intersect the plane."
          }
        ],
        "returns": "True on success, False on failure."
      },
      {
        "signature": "LineSphereIntersection LineSphere(Line line, Sphere sphere, out Point3d intersectionPoint1, out Point3d intersectionPoint2)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Intersects a line with a sphere using exact calculations.",
        "since": "5.0",
        "parameters": [
          {
            "name": "line",
            "type": "Line",
            "summary": "Line for intersection."
          },
          {
            "name": "sphere",
            "type": "Sphere",
            "summary": "Sphere for intersection."
          },
          {
            "name": "intersectionPoint1",
            "type": "Point3d",
            "summary": "First intersection point."
          },
          {
            "name": "intersectionPoint2",
            "type": "Point3d",
            "summary": "Second intersection point."
          }
        ],
        "returns": "If <b>LineSphereIntersection.None</b> is returned, the first point is the point on the line closest to the sphere and the second point is the point on the sphere closest to the line. If <b>LineSphereIntersection.Single</b> is returned, the first point is the point on the line and the second point is the same point on the sphere."
      },
      {
        "signature": "Point3d[] MeshCurve(Mesh mesh, Curve curve, System.Double tolerance, out Curve[] overlapCurves)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Simpler overload of <b>MeshCurve(Mesh, Curve, double)</b> : returns the Point-event hits (isolated crossings and the endpoints of every overlap span) as a flat  <b>Point3d</b> array, and the overlap spans as sub-curves of via. Both arrays are ordered by curve parameter.",
        "since": "9.0",
        "parameters": [
          {
            "name": "mesh",
            "type": "Mesh",
            "summary": "Mesh to intersect."
          },
          {
            "name": "curve",
            "type": "Curve",
            "summary": "Curve to intersect."
          },
          {
            "name": "tolerance",
            "type": "System.Double",
            "summary": "Numerical tolerance; see the rich overload."
          },
          {
            "name": "overlapCurves",
            "type": "Curve[]",
            "summary": "Receives one trimmed sub-curve of the input per overlap event (the portion ofthat lies in a face's plane)."
          }
        ],
        "returns": "One point per Point event — isolated crossings and the endpoints of every overlap span — ordered by curve parameter. Empty on failure or no intersection."
      },
      {
        "signature": "Point3d[] MeshCurve(Mesh mesh, Curve curve, System.Double tolerance, out System.Int32[] faceIds, out Curve[] overlapCurves, out System.Int32[] overlapFaceIds)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Simpler overload of <b>MeshCurve(Mesh, Curve, double)</b> with mesh face indices. Mirrors <b>MeshLine(Mesh, Line, out int[])</b> and adds overlap output as sub-curves.",
        "since": "9.0",
        "parameters": [
          {
            "name": "mesh",
            "type": "Mesh",
            "summary": "Mesh to intersect."
          },
          {
            "name": "curve",
            "type": "Curve",
            "summary": "Curve to intersect."
          },
          {
            "name": "tolerance",
            "type": "System.Double",
            "summary": "Numerical tolerance; see the rich overload."
          },
          {
            "name": "faceIds",
            "type": "System.Int32[]",
            "summary": "Receives one face index per returned point (parallel to the return array)."
          },
          {
            "name": "overlapCurves",
            "type": "Curve[]",
            "summary": "Receives one trimmed sub-curve of the input per overlap event."
          },
          {
            "name": "overlapFaceIds",
            "type": "System.Int32[]",
            "summary": "Receives one face index per overlap sub-curve (parallel to)."
          }
        ],
        "returns": "One point per Point event — isolated crossings and the endpoints of every overlap span — ordered by curve parameter. Empty on failure or no intersection."
      },
      {
        "signature": "MeshCurveIntersection[] MeshCurve(Mesh mesh, Curve curve, System.Double tolerance, System.Boolean includeOverlaps)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Same as <b>MeshCurve(Mesh, Curve, double)</b> with a flag controlling the Overlap span events.",
        "since": "9.0",
    "remarks": "Every overlap is reported as two Point events at the overlap's endpoints plus one Overlap event for the in-plane span. The two endpoint Points are emitted in both modes; controls only the span event. Passfalseto drop the Overlap span events while still reporting the endpoint crossings as Point events — it does not reduce the result to transversal crossings only."
      },
      {
        "signature": "MeshCurveIntersection[] MeshCurve(Mesh mesh, Curve curve, System.Double tolerance)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Intersects a curve and a mesh, returning certified hits sorted by curve parameter.",
        "since": "9.0",
    "remarks": "Every overlap is reported as two Point events at the overlap's endpoints plus one Overlap event for the in-plane span. This overload always includes the Overlap events; use the <b>MeshCurve(Mesh, Curve, double, bool)</b> overload to drop them while still reporting the endpoint Points.",
        "parameters": [
          {
            "name": "mesh",
            "type": "Mesh",
            "summary": "Mesh to intersect."
          },
          {
            "name": "curve",
            "type": "Curve",
            "summary": "Curve to intersect."
          },
          {
            "name": "tolerance",
            "type": "System.Double",
            "summary": "Post-process merge tolerance in 3D model space. Consecutive intersection events whose 3D endpoints are within this distance are fused into a single event. Must be a positive finite value (use the document absolute tolerance as a starting point). The internal calculation tolerance is a fixed value independent of this parameter."
          }
        ],
        "returns": "Array of intersection events sorted by curve parameter. Empty on failure or no intersection."
      },
      {
        "signature": "Point3d[] MeshLine(Mesh mesh, Line line, out System.Int32[] faceIds)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Finds the intersections of a mesh and a line. The points are not necessarily sorted.",
        "since": "5.0",
        "parameters": [
          {
            "name": "mesh",
            "type": "Mesh",
            "summary": "A mesh to intersect"
          },
          {
            "name": "line",
            "type": "Line",
            "summary": "The line to intersect with the mesh"
          },
          {
            "name": "faceIds",
            "type": "System.Int32[]",
            "summary": "The indices of the intersecting faces. This out reference is assigned during the call. Empty if nothing is found."
          }
        ],
        "returns": "An array of points: one for each face that was passed by the faceIds out reference. Empty if no items are found."
      },
      {
        "signature": "Point3d[] MeshLine(Mesh mesh, Line line)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Finds the intersections of a mesh and a line.",
        "since": "7.3",
        "parameters": [
          {
            "name": "mesh",
            "type": "Mesh",
            "summary": "A mesh to intersect"
          },
          {
            "name": "line",
            "type": "Line",
            "summary": "The line to intersect with the mesh"
          }
        ],
        "returns": "An array of points: one for each face that was passed by the faceIds out reference. Empty if no items are found."
      },
      {
        "signature": "Point3d[] MeshLineSorted(Mesh mesh, Line line, out System.Int32[] faceIds)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Finds the intersections of a mesh and a line. Points are sorted along the line.",
        "since": "5.0",
        "parameters": [
          {
            "name": "mesh",
            "type": "Mesh",
            "summary": "A mesh to intersect"
          },
          {
            "name": "line",
            "type": "Line",
            "summary": "The line to intersect with the mesh"
          },
          {
            "name": "faceIds",
            "type": "System.Int32[]",
            "summary": "The indices of the intersecting faces. This out reference is assigned during the call. Empty if nothing is found."
          }
        ],
        "returns": "An array of points: one for each face that was passed by the faceIds out reference. Empty if no items are found."
      },
      {
        "signature": "System.Boolean MeshMesh(IEnumerable<Mesh> meshes, System.Double tolerance, out Polyline[] intersections, System.Boolean overlapsPolylines, out Polyline[] overlapsPolylinesResult, System.Boolean overlapsMesh, out Mesh overlapsMeshResult, FileIO.TextLog textLog, System.Threading.CancellationToken cancel, IProgress<double> progress)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Intersects meshes. Overlaps and perforations are provided in the output list.  \nTolerance can be specified.  \nWe suggest to use the document tolerance multiplied by .",
        "since": "7.0",
        "parameters": [
          {
            "name": "meshes",
            "type": "IEnumerable<Mesh>",
            "summary": "The mesh input list. This cannot be null. Null entries are tolerated."
          },
          {
            "name": "tolerance",
            "type": "System.Double",
            "summary": "A tolerance value. If negative, the positive value will be used. WARNING! Good tolerance values are in the magnitude of 10^-7, or RhinoMath.SqrtEpsilon*10."
          },
          {
            "name": "intersections",
            "type": "Polyline[]",
            "summary": "Returns the intersections."
          },
          {
            "name": "overlapsPolylines",
            "type": "System.Boolean",
            "summary": "If true, overlaps are computed and returned."
          },
          {
            "name": "overlapsPolylinesResult",
            "type": "Polyline[]",
            "summary": "If requested, overlaps are returned here."
          },
          {
            "name": "overlapsMesh",
            "type": "System.Boolean",
            "summary": "If true, an overlaps mesh is computed and returned."
          },
          {
            "name": "overlapsMeshResult",
            "type": "Mesh",
            "summary": "If requested, overlaps are returned here."
          },
          {
            "name": "textLog",
            "type": "FileIO.TextLog",
            "summary": "A text log, or null."
          },
          {
            "name": "cancel",
            "type": "System.Threading.CancellationToken",
            "summary": "A cancellation token to stop the computation at a given point."
          },
          {
            "name": "progress",
            "type": "IProgress<double>",
            "summary": "A progress reporter to inform the user about progress, or null. The reported value is indicative."
          }
        ],
        "returns": "True, if the operation succeeded, otherwise false."
      },
      {
        "signature": "Polyline[] MeshMeshAccurate(Mesh meshA, Mesh meshB, System.Double tolerance)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Intersects two meshes. Overlaps and near misses are handled. This is an old method kept for compatibility.  \nTolerance can be specified.  \nWe suggest to use the document tolerance multiplied by .",
        "since": "5.0",
        "parameters": [
          {
            "name": "meshA",
            "type": "Mesh",
            "summary": "First mesh for intersection."
          },
          {
            "name": "meshB",
            "type": "Mesh",
            "summary": "Second mesh for intersection."
          },
          {
            "name": "tolerance",
            "type": "System.Double",
            "summary": "A tolerance value. If negative, the positive value will be used. WARNING! Good tolerance values are in the magnitude of 10^-7, or RhinoMath.SqrtEpsilon*10."
          }
        ],
        "returns": "An array of intersection and overlaps polylines."
      },
      {
        "signature": "Line[] MeshMeshFast(Mesh meshA, Mesh meshB)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "This is an old overload kept for compatibility. Overlaps and near misses are ignored.",
        "since": "5.0",
        "parameters": [
          {
            "name": "meshA",
            "type": "Mesh",
            "summary": "First mesh for intersection."
          },
          {
            "name": "meshB",
            "type": "Mesh",
            "summary": "Second mesh for intersection."
          }
        ],
        "returns": "An array of intersection line segments, or None if no intersections were found."
      },
      {
        "signature": "System.Boolean MeshMeshPredicate(IEnumerable<Mesh> meshes, System.Double tolerance, out System.Int32[] pairs, FileIO.TextLog textLog)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Determines if meshes intersect or overlap. No geometry is computed.",
        "since": "8.0",
        "parameters": [
          {
            "name": "meshes",
            "type": "IEnumerable<Mesh>",
            "summary": "The mesh input list. This cannot be null. Null entries are tolerated."
          },
          {
            "name": "tolerance",
            "type": "System.Double",
            "summary": "A tolerance value. If negative, the positive value will be used. WARNING! Good tolerance values are in the magnitude of 10^-7, or RhinoMath.SqrtEpsilon*10."
          },
          {
            "name": "pairs",
            "type": "System.Int32[]",
            "summary": "An array containing pairs of meshes that intersect."
          },
          {
            "name": "textLog",
            "type": "FileIO.TextLog",
            "summary": "A text log, or null."
          }
        ],
        "returns": "True, if meshes intersect or overlap, otherwise false. False is also returned on error, but textLog will start with Error: and contain the error."
      },
      {
        "signature": "Polyline[] MeshPlane(Mesh mesh, IEnumerable<Plane> planes)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Intersects a mesh with a collection of infinite planes.  \nis used as fixed tolerance.  \nWe suggest to use the document tolerance multiplied by  instaed.",
        "since": "5.0",
        "parameters": [
          {
            "name": "mesh",
            "type": "Mesh",
            "summary": "Mesh to intersect."
          },
          {
            "name": "planes",
            "type": "IEnumerable<Plane>",
            "summary": "Planes to intersect with."
          }
        ],
        "returns": "An array of polylines describing the intersection loops, or None if no intersections could be found."
      },
      {
        "signature": "Polyline[] MeshPlane(Mesh mesh, MeshIntersectionCache cache, IEnumerable<Plane> planes, System.Double tolerance, System.Boolean overlaps)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Intersects a mesh with a collection of infinite planes.  \nTolerance can be specified.  \nWe suggest to use the document tolerance multiplied by .",
        "since": "9.0",
        "parameters": [
          {
            "name": "mesh",
            "type": "Mesh",
            "summary": "Mesh to intersect."
          },
          {
            "name": "cache",
            "type": "MeshIntersectionCache",
            "summary": "Intersection cache for the mesh."
          },
          {
            "name": "planes",
            "type": "IEnumerable<Plane>",
            "summary": "Planes to intersect with."
          },
          {
            "name": "tolerance",
            "type": "System.Double",
            "summary": "Intersection tolerance."
          },
          {
            "name": "overlaps",
            "type": "System.Boolean",
            "summary": "If true, overlaps are computed and will be part of the output."
          }
        ],
        "returns": "An array of polylines describing the intersection loops, or None if no intersections could be found."
      },
      {
        "signature": "Polyline[] MeshPlane(Mesh mesh, MeshIntersectionCache cache, IEnumerable<Plane> planes, System.Double tolerance)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Intersects a mesh with a collection of infinite planes, providing both overlaps and perforations.  \nTolerance can be specified.  \nWe suggest to use the document tolerance multiplied by .",
        "since": "8.0",
        "parameters": [
          {
            "name": "mesh",
            "type": "Mesh",
            "summary": "Mesh to intersect."
          },
          {
            "name": "cache",
            "type": "MeshIntersectionCache",
            "summary": "Intersection cache for the mesh."
          },
          {
            "name": "planes",
            "type": "IEnumerable<Plane>",
            "summary": "Planes to intersect with."
          },
          {
            "name": "tolerance",
            "type": "System.Double",
            "summary": "Intersection tolerance."
          }
        ],
        "returns": "An array of polylines describing the intersection loops, or None if no intersections could be found."
      },
      {
        "signature": "Polyline[] MeshPlane(Mesh mesh, MeshIntersectionCache cache, Plane plane, System.Double tolerance, System.Boolean overlaps)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Intersects a mesh with an infinite plane.  \nTolerance can be specified.  \nWe suggest to use the document tolerance multiplied by .",
        "since": "8.0",
        "parameters": [
          {
            "name": "mesh",
            "type": "Mesh",
            "summary": "Mesh to intersect."
          },
          {
            "name": "cache",
            "type": "MeshIntersectionCache",
            "summary": "Intersection cache for mesh."
          },
          {
            "name": "plane",
            "type": "Plane",
            "summary": "Plane to intersect with."
          },
          {
            "name": "tolerance",
            "type": "System.Double",
            "summary": "Intersection tolerance."
          },
          {
            "name": "overlaps",
            "type": "System.Boolean",
            "summary": "If true, overlaps are computed and will be part of the output."
          }
        ],
        "returns": "An array of polylines describing the intersection loops, or None if no intersections could be found."
      },
      {
        "signature": "Polyline[] MeshPlane(Mesh mesh, MeshIntersectionCache cache, Plane plane, System.Double tolerance)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Intersects a mesh with an infinite plane.  \nTolerance can be specified.  \nWe suggest to use the document tolerance multiplied by .",
        "since": "8.0",
        "parameters": [
          {
            "name": "mesh",
            "type": "Mesh",
            "summary": "Mesh to intersect."
          },
          {
            "name": "cache",
            "type": "MeshIntersectionCache",
            "summary": "Intersection cache for mesh."
          },
          {
            "name": "plane",
            "type": "Plane",
            "summary": "Plane to intersect with."
          },
          {
            "name": "tolerance",
            "type": "System.Double",
            "summary": "Intersection tolerance."
          }
        ],
        "returns": "An array of polylines describing the intersection loops, or None if no intersections could be found."
      },
      {
        "signature": "Polyline[] MeshPlane(Mesh mesh, Plane plane)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Intersects a mesh with an infinite plane.  <b>RhinoMath.ZeroTolerance</b> is used as fixed tolerance. We suggest to use the document tolerance multiplied by <b>MeshIntersectionsTolerancesCoefficient</b> instaed.",
        "since": "5.0",
        "parameters": [
          {
            "name": "mesh",
            "type": "Mesh",
            "summary": "Mesh to intersect."
          },
          {
            "name": "plane",
            "type": "Plane",
            "summary": "Plane to intersect with."
          }
        ],
        "returns": "An array of polylines describing the intersection loops, or None if no intersections could be found."
      },
      {
        "signature": "Point3d[] MeshPolyline(Mesh mesh, PolylineCurve curve, out System.Int32[] faceIds)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Finds the intersection of a mesh and a polyline. Starting from version 7, points are always sorted along the polyline.",
        "since": "5.0",
        "parameters": [
          {
            "name": "mesh",
            "type": "Mesh",
            "summary": "A mesh to intersect."
          },
          {
            "name": "curve",
            "type": "PolylineCurve",
            "summary": "A polyline curves to intersect."
          },
          {
            "name": "faceIds",
            "type": "System.Int32[]",
            "summary": "The indices of the intersecting faces. This out reference is assigned during the call."
          }
        ],
        "returns": "An array of points: one for each face that was passed by the faceIds out reference."
      },
      {
        "signature": "Point3d[] MeshPolylineSorted(Mesh mesh, PolylineCurve curve, out System.Int32[] faceIds)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Finds the intersection of a mesh and a polyline. Points are guaranteed to be sorted along the polyline.",
        "since": "5.0",
        "parameters": [
          {
            "name": "mesh",
            "type": "Mesh",
            "summary": "A mesh to intersect."
          },
          {
            "name": "curve",
            "type": "PolylineCurve",
            "summary": "A polyline curves to intersect."
          },
          {
            "name": "faceIds",
            "type": "System.Int32[]",
            "summary": "The indices of the intersecting faces. This out reference is assigned during the call."
          }
        ],
        "returns": "An array of points: one for each face that was passed by the faceIds out reference."
      },
      {
        "signature": "System.Double MeshRay(Mesh mesh, Ray3d ray, out System.Int32[] meshFaceIndices)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Finds the first intersection of a ray with a mesh.",
        "since": "5.0",
    "remarks": "The ray may intersect more than one face in cases where the ray hits the edge between two faces or the vertex corner shared by multiple faces, or more than one face is coplanar or happens to be intersecting at the same location as the ray.",
        "parameters": [
          {
            "name": "mesh",
            "type": "Mesh",
            "summary": "A mesh to intersect."
          },
          {
            "name": "ray",
            "type": "Ray3d",
            "summary": "A ray to be casted."
          },
          {
            "name": "meshFaceIndices",
            "type": "System.Int32[]",
            "summary": "faces on mesh that ray intersects."
          }
        ],
        "returns": ">= 0.0 parameter along ray if successful. < 0.0 if no intersection found."
      },
      {
        "signature": "System.Double MeshRay(Mesh mesh, Ray3d ray)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Finds the first intersection of a ray with a mesh.",
        "since": "5.0",
        "parameters": [
          {
            "name": "mesh",
            "type": "Mesh",
            "summary": "A mesh to intersect."
          },
          {
            "name": "ray",
            "type": "Ray3d",
            "summary": "A ray to be casted."
          }
        ],
        "returns": ">= 0.0 parameter along ray if successful. < 0.0 if no intersection found."
      },
      {
        "signature": "System.Boolean PlaneBoundingBox(Plane plane, BoundingBox boundingBox, out Polyline polyline)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Intersects a plane and a bounding box.",
        "since": "8.0",
    "remarks": "Intersects the four bounding box infinite lines in the direction of the max coordinate with the plane. Point and single line intersections are ignored.",
        "parameters": [
          {
            "name": "plane",
            "type": "Plane",
            "summary": "The plane."
          },
          {
            "name": "boundingBox",
            "type": "BoundingBox",
            "summary": "The bounding box."
          },
          {
            "name": "polyline",
            "type": "Polyline",
            "summary": "The output polyline if successful."
          }
        ],
        "returns": "True if successful, False otherwise."
      },
      {
        "signature": "PlaneCircleIntersection PlaneCircle(Plane plane, Circle circle, out System.Double firstCircleParameter, out System.Double secondCircleParameter)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Intersects a plane with a circle using exact calculations.",
        "since": "5.0",
        "parameters": [
          {
            "name": "plane",
            "type": "Plane",
            "summary": "Plane to intersect."
          },
          {
            "name": "circle",
            "type": "Circle",
            "summary": "Circe to intersect."
          },
          {
            "name": "firstCircleParameter",
            "type": "System.Double",
            "summary": "First intersection parameter on circle if successful or RhinoMath.UnsetValue if not."
          },
          {
            "name": "secondCircleParameter",
            "type": "System.Double",
            "summary": "Second intersection parameter on circle if successful or RhinoMath.UnsetValue if not."
          }
        ],
        "returns": "The type of intersection that occurred."
      },
      {
        "signature": "System.Boolean PlanePlane(Plane planeA, Plane planeB, out Line intersectionLine)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Intersects two planes and return the intersection line. If the planes are parallel or coincident, no intersection is assumed.",
        "since": "5.0",
        "parameters": [
          {
            "name": "planeA",
            "type": "Plane",
            "summary": "First plane for intersection."
          },
          {
            "name": "planeB",
            "type": "Plane",
            "summary": "Second plane for intersection."
          },
          {
            "name": "intersectionLine",
            "type": "Line",
            "summary": "If this function returns true, the intersectionLine parameter will return the line where the planes intersect."
          }
        ],
        "returns": "True on success, False on failure."
      },
      {
        "signature": "System.Boolean PlanePlanePlane(Plane planeA, Plane planeB, Plane planeC, out Point3d intersectionPoint)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Intersects three planes to find the single point they all share.",
        "since": "5.0",
        "parameters": [
          {
            "name": "planeA",
            "type": "Plane",
            "summary": "First plane for intersection."
          },
          {
            "name": "planeB",
            "type": "Plane",
            "summary": "Second plane for intersection."
          },
          {
            "name": "planeC",
            "type": "Plane",
            "summary": "Third plane for intersection."
          },
          {
            "name": "intersectionPoint",
            "type": "Point3d",
            "summary": "Point where all three planes converge."
          }
        ],
        "returns": "True on success, False on failure. If at least two out of the three planes are parallel or coincident, failure is assumed."
      },
      {
        "signature": "PlaneSphereIntersection PlaneSphere(Plane plane, Sphere sphere, out Circle intersectionCircle)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Intersects a plane with a sphere using exact calculations.",
        "since": "5.0",
        "parameters": [
          {
            "name": "plane",
            "type": "Plane",
            "summary": "Plane to intersect."
          },
          {
            "name": "sphere",
            "type": "Sphere",
            "summary": "Sphere to intersect."
          },
          {
            "name": "intersectionCircle",
            "type": "Circle",
            "summary": "Intersection result."
          }
        ],
        "returns": "If <b>PlaneSphereIntersection.None</b> is returned, the intersectionCircle has a radius of zero and the center point is the point on the plane closest to the sphere."
      },
      {
        "signature": "Point3d[] ProjectPointsToBreps(IEnumerable<Brep> breps, IEnumerable<Point3d> points, Vector3d direction, System.Double tolerance)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Projects points onto breps.",
        "since": "5.0",
        "parameters": [
          {
            "name": "breps",
            "type": "IEnumerable<Brep>",
            "summary": "The breps projection targets."
          },
          {
            "name": "points",
            "type": "IEnumerable<Point3d>",
            "summary": "The points to project."
          },
          {
            "name": "direction",
            "type": "Vector3d",
            "summary": "The direction to project."
          },
          {
            "name": "tolerance",
            "type": "System.Double",
            "summary": "The tolerance used for intersections."
          }
        ],
        "returns": "Array of projected points, or None in case of any error or invalid input."
      },
      {
        "signature": "Point3d[] ProjectPointsToBrepsEx(IEnumerable<Brep> breps, IEnumerable<Point3d> points, Vector3d direction, System.Double tolerance, out System.Int32[] indices)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Projects points onto breps.",
        "since": "5.10",
        "parameters": [
          {
            "name": "breps",
            "type": "IEnumerable<Brep>",
            "summary": "The breps projection targets."
          },
          {
            "name": "points",
            "type": "IEnumerable<Point3d>",
            "summary": "The points to project."
          },
          {
            "name": "direction",
            "type": "Vector3d",
            "summary": "The direction to project."
          },
          {
            "name": "tolerance",
            "type": "System.Double",
            "summary": "The tolerance used for intersections."
          },
          {
            "name": "indices",
            "type": "System.Int32[]",
            "summary": "Return points[i] is a projection of points[indices[i]]"
          }
        ],
        "returns": "Array of projected points, or None in case of any error or invalid input."
      },
      {
        "signature": "Point3d[] ProjectPointsToMeshes(IEnumerable<Mesh> meshes, IEnumerable<Point3d> points, Vector3d direction, System.Double tolerance)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Projects points onto meshes.",
        "since": "5.0",
        "parameters": [
          {
            "name": "meshes",
            "type": "IEnumerable<Mesh>",
            "summary": "the meshes to project on to."
          },
          {
            "name": "points",
            "type": "IEnumerable<Point3d>",
            "summary": "the points to project."
          },
          {
            "name": "direction",
            "type": "Vector3d",
            "summary": "the direction to project."
          },
          {
            "name": "tolerance",
            "type": "System.Double",
            "summary": "Projection tolerances used for culling close points and for line-mesh intersection."
          }
        ],
        "returns": "Array of projected points, or None in case of any error or invalid input."
      },
      {
        "signature": "Point3d[] ProjectPointsToMeshesEx(IEnumerable<Mesh> meshes, IEnumerable<Point3d> points, Vector3d direction, System.Double tolerance, out System.Int32[] indices)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Projects points onto meshes.",
        "since": "5.10",
        "parameters": [
          {
            "name": "meshes",
            "type": "IEnumerable<Mesh>",
            "summary": "the meshes to project on to."
          },
          {
            "name": "points",
            "type": "IEnumerable<Point3d>",
            "summary": "the points to project."
          },
          {
            "name": "direction",
            "type": "Vector3d",
            "summary": "the direction to project."
          },
          {
            "name": "tolerance",
            "type": "System.Double",
            "summary": "Projection tolerances used for culling close points and for line-mesh intersection."
          },
          {
            "name": "indices",
            "type": "System.Int32[]",
            "summary": "Return points[i] is a projection of points[indices[i]]"
          }
        ],
        "returns": "Array of projected points, or None in case of any error or invalid input."
      },
      {
        "signature": "RayShootEvent[] RayShoot(IEnumerable<GeometryBase> geometry, Ray3d ray, System.Int32 maxReflections)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Computes point intersections that occur when shooting a ray to a collection of surfaces and Breps.",
        "since": "7.0",
        "parameters": [
          {
            "name": "geometry",
            "type": "IEnumerable<GeometryBase>",
            "summary": "The collection of surfaces and Breps to intersect. Trims are ignored on Breps."
          },
          {
            "name": "ray",
            "type": "Ray3d",
            "summary": ">A ray used in intersection."
          },
          {
            "name": "maxReflections",
            "type": "System.Int32",
            "summary": "The maximum number of reflections. This value should be any value between 1 and 1000, inclusive."
          }
        ],
        "returns": "An array of RayShootEvent structs if successful, or an empty array on failure."
      },
      {
        "signature": "Point3d[] RayShoot(Ray3d ray, IEnumerable<GeometryBase> geometry, System.Int32 maxReflections)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Computes point intersections that occur when shooting a ray to a collection of surfaces and Breps.",
        "since": "5.0",
        "parameters": [
          {
            "name": "ray",
            "type": "Ray3d",
            "summary": "A ray used in intersection."
          },
          {
            "name": "geometry",
            "type": "IEnumerable<GeometryBase>",
            "summary": "Only Surface and Brep objects are currently supported. Trims are ignored on Breps."
          },
          {
            "name": "maxReflections",
            "type": "System.Int32",
            "summary": "The maximum number of reflections. This value should be any value between 1 and 1000, inclusive."
          }
        ],
        "returns": "An array of points: one for each surface or Brep face that was hit, or an empty array on failure."
      },
      {
        "signature": "SphereSphereIntersection SphereSphere(Sphere sphereA, Sphere sphereB, out Circle intersectionCircle)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Intersects two spheres using exact calculations.",
        "since": "5.0",
        "parameters": [
          {
            "name": "sphereA",
            "type": "Sphere",
            "summary": "First sphere to intersect."
          },
          {
            "name": "sphereB",
            "type": "Sphere",
            "summary": "Second sphere to intersect."
          },
          {
            "name": "intersectionCircle",
            "type": "Circle",
            "summary": "If intersection is a point, then that point will be the center, radius 0."
          }
        ],
        "returns": "The intersection type."
      },
      {
        "signature": "System.Boolean SurfaceSurface(Surface surfaceA, Surface surfaceB, System.Double tolerance, out Curve[] intersectionCurves, out Point3d[] intersectionPoints)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Intersects two Surfaces.",
        "since": "5.0",
        "parameters": [
          {
            "name": "surfaceA",
            "type": "Surface",
            "summary": "First Surface for intersection."
          },
          {
            "name": "surfaceB",
            "type": "Surface",
            "summary": "Second Surface for intersection."
          },
          {
            "name": "tolerance",
            "type": "System.Double",
            "summary": "Intersection tolerance."
          },
          {
            "name": "intersectionCurves",
            "type": "Curve[]",
            "summary": "The intersection curves will be returned here."
          },
          {
            "name": "intersectionPoints",
            "type": "Point3d[]",
            "summary": "The intersection points will be returned here."
          }
        ],
        "returns": "True on success, False on failure."
      }
    ]
  },
  {
    "namespace": "Rhino.Geometry.Intersect",
    "name": "IntersectionEvent",
    "dataType": "class",
    "summary": "Provides all the information for a single Curve Intersection event.",
    "constructors": [
      {
        "signature": "IntersectionEvent()",
        "summary": "Initializes a new instance of the IntersectionEvent class"
      }
    ],
    "properties": [
      {
        "signature": "bool IsOverlap",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "All curve intersection events are either a single point or an overlap.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "bool IsPoint",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "All curve intersection events are either a single point or an overlap.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "Interval OverlapA",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the interval on curve A where the overlap occurs. If the intersection type is not overlap, this value is meaningless.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "Interval OverlapB",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the interval on curve B where the overlap occurs. If the intersection type is not overlap, this value is meaningless.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "double ParameterA",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the parameter on Curve A where the intersection occurred. If the intersection type is overlap, then this will return the start of the overlap region.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "double ParameterB",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the parameter on Curve B where the intersection occurred. If the intersection type is overlap, then this will return the start of the overlap region.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "Point3d PointA",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the point on Curve A where the intersection occurred. If the intersection type is overlap, then this will return the start of the overlap region.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "Point3d PointA2",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the end point of the overlap on Curve A. If the intersection type is not overlap, this value is meaningless.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "Point3d PointB",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the point on Curve B (or Surface B) where the intersection occurred. If the intersection type is overlap, then this will return the start of the overlap region.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "Point3d PointB2",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the end point of the overlap on Curve B (or Surface B). If the intersection type is not overlap, this value is meaningless.",
        "since": "5.0",
        "property": ["get"]
      }
    ],
    "methods": [
      {
        "signature": "System.Boolean CompareEquivalent(IntersectionEvent eventA, IntersectionEvent eventB, System.Double relativePointTolerance, Rhino.FileIO.TextLog log)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Compare intersection events.",
        "since": "7.0",
        "parameters": [
          {
            "name": "eventA",
            "type": "IntersectionEvent",
            "summary": "The first intersection event to compare."
          },
          {
            "name": "eventB",
            "type": "IntersectionEvent",
            "summary": "The second intersection event to compare."
          },
          {
            "name": "relativePointTolerance",
            "type": "System.Double",
            "summary": "The comparison tolerance. If RhinoMath.UnsetValue, then RhinoMath.SqrtEpsilon is used."
          },
          {
            "name": "log",
            "type": "Rhino.FileIO.TextLog",
            "summary": "If not None and False is returned, then a description of the error is appended to log."
          }
        ]
      },
      {
        "signature": "System.Boolean CompareEquivalent(IntersectionEvent eventA, IntersectionEvent eventB, System.Double relativePointTolerance)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Compare intersection events.",
        "since": "7.0",
        "parameters": [
          {
            "name": "eventA",
            "type": "IntersectionEvent",
            "summary": "The first intersection event to compare."
          },
          {
            "name": "eventB",
            "type": "IntersectionEvent",
            "summary": "The second intersection event to compare."
          },
          {
            "name": "relativePointTolerance",
            "type": "System.Double",
            "summary": "The comparison tolerance. If RhinoMath.UnsetValue, then RhinoMath.SqrtEpsilon is used."
          }
        ],
        "returns": "True if the two inputs represent the same intersection, False otherwise."
      },
      {
        "signature": "System.Void SurfaceOverlapParameter(out Interval uDomain, out Interval vDomain)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "If this instance records a Curve|Surface intersection event, andthe intersection type ifoverlap, then use this function to get the U and V domains on the surface where the overlap occurs.",
        "since": "5.0",
        "parameters": [
          {
            "name": "uDomain",
            "type": "Interval",
            "summary": "Domain along surface U direction for overlap event."
          },
          {
            "name": "vDomain",
            "type": "Interval",
            "summary": "Domain along surface V direction for overlap event."
          }
        ]
      },
      {
        "signature": "System.Void SurfacePointParameter(out System.Double u, out System.Double v)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "If this instance records a Curve|Surface intersection event, andthe intersection type ispoint, then use this function to get the U and V parameters on the surface where the intersection occurs.",
        "since": "5.0",
        "parameters": [
          {
            "name": "u",
            "type": "System.Double",
            "summary": "Parameter on surface u direction where the intersection occurs."
          },
          {
            "name": "v",
            "type": "System.Double",
            "summary": "Parameter on surface v direction where the intersection occurs."
          }
        ]
      }
    ]
  },
  {
    "namespace": "Rhino.Geometry.Intersect",
    "name": "LineCircleIntersection",
    "dataType": "enum",
    "summary": "Represents all possible cases of a Line|Circle intersection event.",
    "since": "5.0",
    "values": [
      {
        "signature": "None = 0",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "No intersections."
      },
      {
        "signature": "Single = 1",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "One intersection."
      },
      {
        "signature": "Multiple = 2",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Two intersections."
      }
    ]

  },
  {
    "namespace": "Rhino.Geometry.Intersect",
    "name": "LineCylinderIntersection",
    "dataType": "enum",
    "summary": "Represents all possible cases of a Line|Cylinder intersection event.",
    "since": "5.0",
    "values": [
      {
        "signature": "None = 0",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "No intersections."
      },
      {
        "signature": "Single = 1",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "One intersection."
      },
      {
        "signature": "Multiple = 2",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Two intersections."
      },
      {
        "signature": "Overlap = 3",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Line lies on cylinder."
      }
    ]

  },
  {
    "namespace": "Rhino.Geometry.Intersect",
    "name": "LineSphereIntersection",
    "dataType": "enum",
    "summary": "Represents all possible cases of a Line|Sphere intersection event.",
    "since": "5.0",
    "values": [
      {
        "signature": "None = 0",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "No intersections."
      },
      {
        "signature": "Single = 1",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "One intersection."
      },
      {
        "signature": "Multiple = 2",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Two intersections."
      }
    ]

  },
  {
    "namespace": "Rhino.Geometry.Intersect",
    "name": "MeshClash",
    "dataType": "class",
    "summary": "Represents a particular instance of a clash or intersection between two meshes.",
    "constructors": [
      {
        "signature": "MeshClash()",
        "summary": "Initializes a new instance of the MeshClash class"
      }
    ],
    "properties": [
      {
        "signature": "Point3d ClashPoint",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "If valid, then the sphere centered at ClashPoint of ClashRadius distance intersects the clashing meshes.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "double ClashRadius",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the clash, or intersection, radius.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "Mesh MeshA",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the first mesh.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "Mesh MeshB",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the second mesh.",
        "since": "5.0",
        "property": ["get"]
      }
    ],
    "methods": [
      {
        "signature": "Mesh[] FindDetail(RhinoObject objA, RhinoObject objB, System.Double distance, MeshType meshType, MeshingParameters meshingParameters)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Finds all of the mesh faces on each of two Rhino objects that interfere within a clash distance. This function uses the object's mesh to calculate the interferences. Acceptable object types include: BrepObject, ExtrusionObject, MeshObject, and SubDObject.",
        "since": "7.0",
        "parameters": [
          {
            "name": "objA",
            "type": "RhinoObject",
            "summary": "The first Rhino object."
          },
          {
            "name": "objB",
            "type": "RhinoObject",
            "summary": "The second Rhino object."
          },
          {
            "name": "distance",
            "type": "System.Double",
            "summary": "The largest distance at which a clash can occur."
          },
          {
            "name": "meshType",
            "type": "MeshType",
            "summary": "The type of mesh to be used for the calculation."
          },
          {
            "name": "meshingParameters",
            "type": "MeshingParameters",
            "summary": "The meshing parameters used to generate meshes for the calculation."
          }
        ],
        "returns": "The resulting meshes are sub-meshes of the input meshes if successful, or an empty array on error."
      },
      {
        "signature": "Mesh[] FindDetail(RhinoObject objA, RhinoObject objB, System.Double distance)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Finds all of the mesh faces on each of two Rhino objects that interfere within a clash distance. This function uses the object's mesh to calculate the interferences. Acceptable object types include: BrepObject, ExtrusionObject, MeshObject, and SubDObject.",
        "since": "7.0",
        "parameters": [
          {
            "name": "objA",
            "type": "RhinoObject",
            "summary": "The first Rhino object."
          },
          {
            "name": "objB",
            "type": "RhinoObject",
            "summary": "The second Rhino object."
          },
          {
            "name": "distance",
            "type": "System.Double",
            "summary": "The largest distance at which a clash can occur."
          }
        ],
        "returns": "The resulting meshes are sub-meshes of the input meshes if successful, or an empty array on error."
      },
      {
        "signature": "MeshClash[] Search(IEnumerable<Mesh> setA, IEnumerable<Mesh> setB, System.Double distance, System.Int32 maxEventCount)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Searches for locations where the distance froma mesh in one setof meshes is less than distance toanother mesh in a second setof meshes.",
        "since": "5.0",
        "parameters": [
          {
            "name": "setA",
            "type": "IEnumerable<Mesh>",
            "summary": "The first set of meshes."
          },
          {
            "name": "setB",
            "type": "IEnumerable<Mesh>",
            "summary": "The second set of meshes."
          },
          {
            "name": "distance",
            "type": "System.Double",
            "summary": "The largest distance at which there is a clash. All values smaller than this cause a clash as well."
          },
          {
            "name": "maxEventCount",
            "type": "System.Int32",
            "summary": "The maximum number of clash objects."
          }
        ],
        "returns": "An array of clash objects."
      },
      {
        "signature": "MeshInterference[] Search(IEnumerable<RhinoObject> setA, IEnumerable<RhinoObject> setB, System.Double distance, MeshType meshType, MeshingParameters meshingParameters)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Searches for locations where the distance from a RhinoObject, in one set of objects, is less than the specified distance to another RhinoObject in a second set of objects. This function uses the object's mesh to calculate the interferences. Acceptable object types include: BrepObject, ExtrusionObject, MeshObject, and SubDObject.",
        "since": "7.0",
        "parameters": [
          {
            "name": "setA",
            "type": "IEnumerable<RhinoObject>",
            "summary": "The first set of Rhino objects."
          },
          {
            "name": "setB",
            "type": "IEnumerable<RhinoObject>",
            "summary": "The second set of Rhino objects."
          },
          {
            "name": "distance",
            "type": "System.Double",
            "summary": "The largest distance at which a clash can occur."
          },
          {
            "name": "meshType",
            "type": "MeshType",
            "summary": "The type of mesh to be used for the calculation."
          },
          {
            "name": "meshingParameters",
            "type": "MeshingParameters",
            "summary": "The meshing parameters used to generate meshes for the calculation."
          }
        ],
        "returns": "An array of mesh interference object if successful, or an empty array on failure."
      },
      {
        "signature": "MeshInterference[] Search(IEnumerable<RhinoObject> setA, IEnumerable<RhinoObject> setB, System.Double distance)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Searches for locations where the distance from a RhinoObject, in one set of objects, is less than the specified distance to another RhinoObject in a second set of objects. This function uses the object's mesh to calculate the interferences. Acceptable object types include: BrepObject, ExtrusionObject, MeshObject, and SubDObject.",
        "since": "7.0",
        "parameters": [
          {
            "name": "setA",
            "type": "IEnumerable<RhinoObject>",
            "summary": "The first set of Rhino objects."
          },
          {
            "name": "setB",
            "type": "IEnumerable<RhinoObject>",
            "summary": "The second set of Rhino objects."
          },
          {
            "name": "distance",
            "type": "System.Double",
            "summary": "The largest distance at which a clash can occur."
          }
        ],
        "returns": "An array of mesh interference object if successful, or an empty array on failure."
      },
      {
        "signature": "MeshClash[] Search(Mesh meshA, IEnumerable<Mesh> setB, System.Double distance, System.Int32 maxEventCount)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Searches the locations where the distance fromthe first meshtoa mesh in the second setof meshes is less than the provided value.",
        "since": "5.0",
        "parameters": [
          {
            "name": "meshA",
            "type": "Mesh",
            "summary": "The first mesh."
          },
          {
            "name": "setB",
            "type": "IEnumerable<Mesh>",
            "summary": "The second set of meshes."
          },
          {
            "name": "distance",
            "type": "System.Double",
            "summary": "The largest distance at which there is a clash. All values smaller than this cause a clash as well."
          },
          {
            "name": "maxEventCount",
            "type": "System.Int32",
            "summary": "The maximum number of clash objects."
          }
        ],
        "returns": "An array of clash objects."
      },
      {
        "signature": "MeshClash[] Search(Mesh meshA, Mesh meshB, System.Double distance, System.Int32 maxEventCount)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Searches the locations where the distance fromthe first meshtothe second mesh is less than the provided value.",
        "since": "5.0",
        "parameters": [
          {
            "name": "meshA",
            "type": "Mesh",
            "summary": "The first mesh."
          },
          {
            "name": "meshB",
            "type": "Mesh",
            "summary": "The second mesh."
          },
          {
            "name": "distance",
            "type": "System.Double",
            "summary": "The largest distance at which there is a clash. All values smaller than this cause a clash as well."
          },
          {
            "name": "maxEventCount",
            "type": "System.Int32",
            "summary": "The maximum number of clash objects."
          }
        ],
        "returns": "An array of clash objects."
      }
    ]
  },
  {
    "namespace": "Rhino.Geometry.Intersect",
    "name": "MeshCurveIntersection",
    "dataType": "class",
    "summary": "One certified hit from a curve-mesh intersection. Either a single isolated crossing ( <b>IsPoint</b> ) or a parameter range over which the curve lies in a face's plane ( <b>IsOverlap</b> ). For a point hit, <b>CurveParameter</b> is degenerate and  <b>PointA</b> equals <b>PointB</b> . In a results array, every overlap is reported as two Point hits at its endpoints plus one Overlap hit for the span. The *Toleranceproperties are certified half-widths derived from interval enclosures.",
    "since": "9.0",
    "constructors": [
      {
        "signature": "MeshCurveIntersection()",
        "summary": "Initializes a new instance of the MeshCurveIntersection class"
      }
    ],
    "properties": [
      {
        "signature": "Vector3d BarycentricA",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Barycentric coordinates of <b>PointA</b> wrt the face's triangle.",
        "since": "9.0",
        "property": ["get"]
      },
      {
        "signature": "Vector3d BarycentricB",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Barycentric coordinates of <b>PointB</b> .",
        "since": "9.0",
        "property": ["get"]
      },
      {
        "signature": "double BarycentricTolerance",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Certified half-width on each barycentric slot.",
        "since": "9.0",
        "property": ["get"]
      },
      {
        "signature": "Interval CurveParameter",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Curve parameter range of the hit.",
        "since": "9.0",
        "property": ["get"]
      },
      {
        "signature": "double CurveParameterTolerance",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Certified half-width on each curve parameter slot.",
        "since": "9.0",
        "property": ["get"]
      },
      {
        "signature": "int FaceIndex",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Index into <b>Mesh.Faces</b> of the canonical face that produced this hit (the lowest face index among <b>FaceIndices</b> ).",
        "since": "9.0",
        "property": ["get"]
      },
      {
        "signature": "IReadOnlyList<int> FaceIndices",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "All mesh faces that share this hit, sorted ascending. For a face-interior hit or a 1-valence mesh boundary edge, contains just <b>FaceIndex</b> . For a hit on a shared mesh edge, contains the 2+ faces meeting at that edge. For a vertex hit, contains every face incident to that vertex.",
        "since": "9.0",
        "property": ["get"]
      },
      {
        "signature": "int FaceTriangleIndex",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "0 for a triangle face; 0 or 1 for the two sub-triangles of a quad face.",
        "since": "9.0",
        "property": ["get"]
      },
      {
        "signature": "MeshIncidence Incidence",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "The kind of mesh feature this hit lies on: face, edge, or vertex.",
        "since": "9.0",
        "property": ["get"]
      },
      {
        "signature": "bool IsOnTriangleBoundary",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "True if this hit lies on a mesh-level boundary ( <b>Incidence</b> is  <b>MeshIncidence.Edge</b> or <b>MeshIncidence.Vertex</b> ).",
        "since": "9.0",
        "property": ["get"]
      },
      {
        "signature": "bool IsOverlap",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "True if this event is a range over which the curve lies in the face's plane.",
        "since": "9.0",
        "property": ["get"]
      },
      {
        "signature": "bool IsPoint",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "True if this event is an isolated crossing.",
        "since": "9.0",
        "property": ["get"]
      },
      {
        "signature": "Point3d PointA",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "3D point on the curve at the start of the event.",
        "since": "9.0",
        "property": ["get"]
      },
      {
        "signature": "Point3d PointB",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "3D point on the curve at the end of the event.",
        "since": "9.0",
        "property": ["get"]
      },
      {
        "signature": "double PointTolerance",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Certified half-width on each 3D point slot.",
        "since": "9.0",
        "property": ["get"]
      }
    ]
  },
  {
    "namespace": "Rhino.Geometry.Intersect",
    "name": "MeshIncidence",
    "dataType": "enum",
    "summary": "The kind of mesh feature a <b>MeshCurveIntersection</b> lies on, determined by mesh topology after deduplication.",
    "since": "9.0",
    "values": [
      {
        "signature": "Face = 0",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Strictly inside a face (also reported for hits on the internal diagonal of a quad's two-triangle split, which is not a real mesh edge)."
      },
      {
        "signature": "Edge = 1",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "On a mesh edge (shared by 2+ faces, or a 1-valence boundary edge)."
      },
      {
        "signature": "Vertex = 2",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "At a mesh topology vertex."
      }
    ]

  },
  {
    "namespace": "Rhino.Geometry.Intersect",
    "name": "MeshInterference",
    "dataType": "struct",
    "summary": "Represents an element which is part of a clash or intersection between two meshes.",
    "properties": [
      {
        "signature": "Point3d[] HitPoints",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Array of hit points where the objects of IndexA and IndexB interfere.",
        "since": "7.0",
        "property": ["get", "set"]
      },
      {
        "signature": "int IndexA",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "The index of the first clashing, or interfering object.",
        "since": "7.0",
        "property": ["get", "set"]
      },
      {
        "signature": "int IndexB",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "The index of the second clashing, or interfering object.",
        "since": "7.0",
        "property": ["get", "set"]
      }
    ]
  },
  {
    "namespace": "Rhino.Geometry.Intersect",
    "name": "MeshIntersectionCache",
    "dataType": "class",
    "summary": "Provides a mechanism for lazily evaluating mesh data.",
    "interfaces": ["IDisposable"],
    "since": "8.0",
    "constructors": [
      {
        "signature": "MeshIntersectionCache()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Provides a mechanism for lazily evaluating mesh data. The implementation is private and subject to change.",
        "since": "8.0"
      }
    ],
    "methods": [
      {
        "signature": "System.Void Dispose()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Actively reclaims unmanaged resources that this instance uses.",
        "since": "8.0"
      },
      {
        "signature": "System.Void Dispose(System.Boolean disposing)",
        "modifiers": ["protected", "virtual"],
        "protected": true,
        "virtual": true,
        "summary": "Disposes the mesh intersection cache.",
        "since": "8.0",
        "parameters": [
          {
            "name": "disposing",
            "type": "System.Boolean",
            "summary": "If set totruedispose was called explicitly, otherwise specify False if calling from a finalizer."
          }
        ]
      }
    ]
  },
  {
    "namespace": "Rhino.Geometry.Intersect",
    "name": "PlaneCircleIntersection",
    "dataType": "enum",
    "summary": "Represents all possible cases of a Plane|Circle intersection event.",
    "since": "5.0",
    "values": [
      {
        "signature": "None = 0",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "No intersections. Either because radius is too small or because circle plane is parallel but not coincident with the intersection plane."
      },
      {
        "signature": "Tangent = 1",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Tangent (one point) intersection."
      },
      {
        "signature": "Secant = 2",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Secant (two point) intersection."
      },
      {
        "signature": "Parallel = 3",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Circle and plane are planar but not coincident. Parallel indicates no intersection took place."
      },
      {
        "signature": "Coincident = 4",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Circle and plane are co-planar, they intersect everywhere."
      }
    ]

  },
  {
    "namespace": "Rhino.Geometry.Intersect",
    "name": "PlaneSphereIntersection",
    "dataType": "enum",
    "summary": "Represents all possible cases of a Plane|Sphere intersection event.",
    "since": "5.0",
    "values": [
      {
        "signature": "None = 0",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "No intersections."
      },
      {
        "signature": "Point = 1",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Tangent intersection."
      },
      {
        "signature": "Circle = 2",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Circular intersection."
      }
    ]

  },
  {
    "namespace": "Rhino.Geometry.Intersect",
    "name": "RayShootEvent",
    "dataType": "struct",
    "summary": "Represents an element which is part of a ray shoot.",
    "since": "7.0",
    "properties": [
      {
        "signature": "int BrepFaceIndex",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "If GeometryIndex references a Brep, then the index of the Brep face that was hit. If GeometryIndex references a surface, than RhinoMath.UnsetIntIndex.",
        "since": "7.0",
        "property": ["get", "set"]
      },
      {
        "signature": "int GeometryIndex",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "The index of the surface or Brep that was hit.",
        "since": "7.0",
        "property": ["get", "set"]
      },
      {
        "signature": "Point3d Point",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "The 3d hit point.",
        "since": "7.0",
        "property": ["get", "set"]
      }
    ]
  },
  {
    "namespace": "Rhino.Geometry.Intersect",
    "name": "SphereSphereIntersection",
    "dataType": "enum",
    "summary": "Represents all possible cases of a Sphere|Sphere intersection event.",
    "since": "5.0",
    "values": [
      {
        "signature": "None = 0",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Spheres do not intersect."
      },
      {
        "signature": "Point = 1",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Spheres touch at a single point."
      },
      {
        "signature": "Circle = 2",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Spheres intersect at a circle."
      },
      {
        "signature": "Overlap = 3",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Spheres are identical."
      }
    ]

  },
  {
    "namespace": "Rhino.Geometry",
    "name": "Interval",
    "dataType": "struct",
    "summary": "Represents an interval in one-dimensional space, that is defined as two extrema or bounds.",
    "constructors": [
      {
        "signature": "Interval(double t0, double t1)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Initializes a new instance of the Rhino.Geometry.Interval class.",
        "since": "5.0",
        "parameters": [
          {
            "name": "t0",
            "type": "System.Double",
            "summary": "The first value."
          },
          {
            "name": "t1",
            "type": "System.Double",
            "summary": "The second value."
          }
        ]
      },
      {
        "signature": "Interval(Interval other)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Initializes a new instance copying the other instance values.",
        "since": "5.0",
        "parameters": [
          {
            "name": "other",
            "type": "Interval",
            "summary": "The Rhino.Geometry.Interval to use as a base."
          }
        ]
      }
    ],
    "properties": [
      {
        "signature": "Interval Unset",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Gets an Interval whose limits are RhinoMath.UnsetValue.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "bool IsDecreasing",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns True if T[0] > T[1].",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "bool IsIncreasing",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns True if T0 < T1.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "bool IsSingleton",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns True if T0 == T1 != ON.UnsetValue.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "bool IsValid",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets a value indicating whether or not this Interval is valid. Valid intervals must contain valid numbers.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "double Length",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the signed length of the numeric range. If the interval is decreasing, a negative length will be returned.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "double Max",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the larger of T0 and T1.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "double Mid",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the average of T0 and T1.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "double Min",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the smaller of T0 and T1.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "double T0",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the lower bound of the Interval.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "double T1",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the upper bound of the Interval.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "double this[int index]",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the indexed bound of this Interval."
      }
    ],
    "methods": [
      {
        "signature": "Interval FromIntersection(Interval a, Interval b)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Returns a new Interval that is the Intersection of the two input Intervals.",
        "since": "5.0",
        "parameters": [
          {
            "name": "a",
            "type": "Interval",
            "summary": "The first input interval."
          },
          {
            "name": "b",
            "type": "Interval",
            "summary": "The second input interval."
          }
        ],
        "returns": "If the intersection is not empty, then intersection = [max(a.Min(),b.Min()), min(a.Max(),b.Max())] The interval [ON.UnsetValue,ON.UnsetValue] is considered to be the empty set interval.  The result of any intersection involving an empty set interval or disjoint intervals is the empty set interval."
      },
      {
        "signature": "Interval FromUnion(Interval a, Interval b)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Returns a new Interval which contains both inputs.",
        "since": "5.0",
        "parameters": [
          {
            "name": "a",
            "type": "Interval",
            "summary": "The first input interval."
          },
          {
            "name": "b",
            "type": "Interval",
            "summary": "The second input interval."
          }
        ],
        "returns": "The union of an empty set and an increasing interval is the increasing interval.  \nThe union of two empty sets is empty.  \nThe union of an empty set an a non-empty interval is the non-empty interval.  \nThe union of two non-empty intervals is [min(a.Min(),b.Min()), max(a.Max(),b.Max())]"
      },
      {
        "signature": "System.Int32 CompareTo(Interval other)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Compares this <b>Interval</b> with another interval.  \nThe lower bound has first evaluation priority.",
        "since": "5.0",
        "parameters": [
          {
            "name": "other",
            "type": "Interval",
            "summary": "The other <b>Interval</b> to compare with."
          }
        ],
        "returns": "0: if this is identical to other  \n-1: if this[0] < other[0]  \n+1: if this[0] > other[0]  \n-1: if this[0] == other[0] and this[1] < other[1]  \n+1: if this[0] == other[0] and this[1] > other[1]."
      },
      {
        "signature": "System.Boolean EpsilonEquals(Interval other, System.Double epsilon)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Check that all values in other are within epsilon of the values in this",
        "since": "5.4"
      },
      {
        "signature": "System.Boolean Equals(Interval other)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Determines whether the specified <b>Interval</b> is equal to the current <b>Interval</b> , comparing by value.",
        "since": "5.0",
        "parameters": [
          {
            "name": "other",
            "type": "Interval",
            "summary": "The other interval to compare with."
          }
        ],
        "returns": "True if obj is an <b>Interval</b> and has the same bounds; False otherwise."
      },
      {
        "signature": "System.Boolean Equals(System.Object obj)",
        "modifiers": ["public", "override"],
        "protected": false,
        "virtual": false,
        "summary": "Determines whether the specified <b>object</b> is equal to the current <b>Interval</b> , comparing by value.",
        "parameters": [
          {
            "name": "obj",
            "type": "System.Object",
            "summary": "The other object to compare with."
          }
        ],
        "returns": "True if obj is an <b>Interval</b> and has the same bounds; False otherwise."
      },
      {
        "signature": "System.Void Expand(System.Double value)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Expand an interval by adding the value to T1 and subtracting it from T0. If T1 < T0, T0 and T1 are swapped.",
        "since": "9.0"
      },
      {
        "signature": "System.Int32 GetHashCode()",
        "modifiers": ["public", "override"],
        "protected": false,
        "virtual": false,
        "summary": "Computes the hash code for this <b>Interval</b> object.",
        "returns": "A hash value that might be equal for two different <b>Interval</b> values."
      },
      {
        "signature": "System.Void Grow(System.Double value)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Grows the <b>Interval</b> to include the given number.",
        "since": "5.0",
        "parameters": [
          {
            "name": "value",
            "type": "System.Double",
            "summary": "Number to include in this interval."
          }
        ]
      },
      {
        "signature": "System.Boolean IncludesInterval(Interval interval, System.Boolean strict)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Tests another interval for Interval inclusion.",
        "since": "5.0",
        "parameters": [
          {
            "name": "interval",
            "type": "Interval",
            "summary": "Interval to test."
          },
          {
            "name": "strict",
            "type": "System.Boolean",
            "summary": "If true, the other interval must be fully on the inside of the Interval."
          }
        ],
        "returns": "True if the other interval is contained within the limits of this Interval; otherwise false."
      },
      {
        "signature": "System.Boolean IncludesInterval(Interval interval)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Tests another interval for Interval inclusion.",
        "since": "5.0",
        "parameters": [
          {
            "name": "interval",
            "type": "Interval",
            "summary": "Interval to test."
          }
        ],
        "returns": "True if the other interval is contained within or is coincident with the limits of this Interval; otherwise false."
      },
      {
        "signature": "System.Boolean IncludesParameter(System.Double t, System.Boolean strict)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Tests a parameter for Interval inclusion.",
        "since": "5.0",
        "parameters": [
          {
            "name": "t",
            "type": "System.Double",
            "summary": "Parameter to test."
          },
          {
            "name": "strict",
            "type": "System.Boolean",
            "summary": "If true, the parameter must be fully on the inside of the Interval."
          }
        ],
        "returns": "True if t is contained within the limits of this Interval."
      },
      {
        "signature": "System.Boolean IncludesParameter(System.Double t)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Tests a parameter for Interval inclusion.",
        "since": "5.0",
        "parameters": [
          {
            "name": "t",
            "type": "System.Double",
            "summary": "Parameter to test."
          }
        ],
        "returns": "True if t is contained within or is coincident with the limits of this Interval."
      },
      {
        "signature": "System.Void MakeIncreasing()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Ensures this <b>Interval</b> is either singleton or increasing.",
        "since": "5.0"
      },
      {
        "signature": "Interval NormalizedIntervalAt(Interval intervalParameter)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Converts interval value, or pair of values, to normalized parameter.",
        "since": "5.0",
        "returns": "Normalized parameter x so that min*(1.0-x) + max*x = intervalParameter."
      },
      {
        "signature": "System.Double NormalizedParameterAt(System.Double intervalParameter)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Converts interval value, or pair of values, to normalized parameter.",
        "since": "5.0",
        "returns": "Normalized parameter x so that min*(1.0-x) + max*x = intervalParameter."
      },
      {
        "signature": "System.Double ParameterAt(System.Double normalizedParameter)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Converts normalized parameter to interval value, or pair of values.",
        "since": "5.0",
        "returns": "Interval parameter min*(1.0-normalizedParameter) + max*normalizedParameter."
      },
      {
        "signature": "Interval ParameterIntervalAt(Interval normalizedInterval)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Converts normalized parameter to interval value, or pair of values.",
        "since": "5.0",
        "returns": "Interval parameter min*(1.0-normalizedParameter) + max*normalized_paramete."
      },
      {
        "signature": "System.Void Reverse()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Changes interval to [-T1, -T0].",
        "since": "5.0"
      },
      {
        "signature": "System.Void Swap()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Exchanges T0 and T1.",
        "since": "5.0"
      },
      {
        "signature": "System.String ToString()",
        "modifiers": ["public", "override"],
        "protected": false,
        "virtual": false,
        "summary": "Returns a string representation of this <b>Interval</b> .",
        "returns": "A string with T0,T1."
      }
    ],
    "operators": [
      {
        "signature": "bool operator !=(Interval a, Interval b)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Determines whether the two Intervals have different values.",
        "since": "5.0",
        "parameters": [
          {
            "name": "a",
            "type": "Interval",
            "summary": "The first interval."
          },
          {
            "name": "b",
            "type": "Interval",
            "summary": "The second interval."
          }
        ]
      },
      {
        "signature": "bool operator <(Interval a, Interval b)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Determines whether the first specified <b>Interval</b> comes before (has inferior sorting value than) the second Interval.  \nThe lower bound has first evaluation priority.",
        "since": "5.0",
        "parameters": [
          {
            "name": "a",
            "type": "Interval",
            "summary": "First interval."
          },
          {
            "name": "b",
            "type": "Interval",
            "summary": "Second interval."
          }
        ]
      },
      {
        "signature": "bool operator <=(Interval a, Interval b)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Determines whether the first specified <b>Interval</b> comes before (has inferior sorting value than) the second Interval, or is equal to it.  \nThe lower bound has first evaluation priority.",
        "since": "5.0",
        "parameters": [
          {
            "name": "a",
            "type": "Interval",
            "summary": "First interval."
          },
          {
            "name": "b",
            "type": "Interval",
            "summary": "Second interval."
          }
        ]
      },
      {
        "signature": "bool operator ==(Interval a, Interval b)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Determines whether the two Intervals have equal values.",
        "since": "5.0",
        "parameters": [
          {
            "name": "a",
            "type": "Interval",
            "summary": "The first interval."
          },
          {
            "name": "b",
            "type": "Interval",
            "summary": "The second interval."
          }
        ]
      },
      {
        "signature": "bool operator >(Interval a, Interval b)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Determines whether the first specified <b>Interval</b> comes after (has superior sorting value than) the second Interval.  \nThe lower bound has first evaluation priority.",
        "since": "5.0",
        "parameters": [
          {
            "name": "a",
            "type": "Interval",
            "summary": "First interval."
          },
          {
            "name": "b",
            "type": "Interval",
            "summary": "Second interval."
          }
        ]
      },
      {
        "signature": "bool operator >=(Interval a, Interval b)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Determines whether the first specified <b>Interval</b> comes after (has superior sorting value than) the second Interval, or is equal to it.  \nThe lower bound has first evaluation priority.",
        "since": "5.0",
        "parameters": [
          {
            "name": "a",
            "type": "Interval",
            "summary": "First interval."
          },
          {
            "name": "b",
            "type": "Interval",
            "summary": "Second interval."
          }
        ]
      },
      {
        "signature": "Interval operator -(double number, Interval interval)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Shifts an interval by a specific amount (subtraction).",
        "since": "5.0",
        "parameters": [
          {
            "name": "number",
            "type": "System.Double",
            "summary": "The shifting value to subtract from (minuend)."
          },
          {
            "name": "interval",
            "type": "Interval",
            "summary": "The interval to be subtracted from (subtrahend)."
          }
        ]
      },
      {
        "signature": "Interval operator -(Interval interval, double number)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Shifts an interval by a specific amount (subtraction).",
        "since": "5.0",
        "parameters": [
          {
            "name": "interval",
            "type": "Interval",
            "summary": "The base interval (minuend)."
          },
          {
            "name": "number",
            "type": "System.Double",
            "summary": "The shifting value to be subtracted (subtrahend)."
          }
        ]
      },
      {
        "signature": "Interval operator +(double number, Interval interval)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Shifts an interval by a specific amount (addition).",
        "parameters": [
          {
            "name": "number",
            "type": "System.Double",
            "summary": "The shifting value."
          },
          {
            "name": "interval",
            "type": "Interval",
            "summary": "The interval to be used as a base."
          }
        ]
      },
      {
        "signature": "Interval operator +(Interval interval, double number)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Shifts a <b>Interval</b> by a specific amount (addition).",
        "parameters": [
          {
            "name": "interval",
            "type": "Interval",
            "summary": "The interval to be used as a base."
          },
          {
            "name": "number",
            "type": "System.Double",
            "summary": "The shifting value."
          }
        ]
      }
    ]

  },
  {
    "namespace": "Rhino.Geometry",
    "name": "InvalidDimensionStyleIdException",
    "dataType": "class",
    "summary": "General exception that can be thrown by annotations",
    "baseclass": "InvalidOperationException",
    "constructors": [
      {
        "signature": "InvalidDimensionStyleIdException(string msg)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0"
      }
    ]
  },
  {
    "namespace": "Rhino.Geometry",
    "name": "IsoStatus",
    "dataType": "enum",
    "summary": "Defines enumerated values for isoparametric curve direction on a surface, such as X or Y, and curve sides, such as North or West boundary.  \nNote: odd values are all x-constant; even values > 0 are all y-constant.",
    "since": "5.0",
    "values": [
      {
        "signature": "None = 0",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "curve is not an isoparametric curve."
      },
      {
        "signature": "X = 1",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "curve is a \"x\" = constant (vertical) isoparametric curve in the interior of the surface's domain."
      },
      {
        "signature": "Y = 2",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "curve is a \"y\" = constant (horizontal) isoparametric curve in the interior of the surface's domain."
      },
      {
        "signature": "West = 3",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "curve is a \"x\" = constant isoparametric curve along the west side of the surface's domain."
      },
      {
        "signature": "South = 4",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "curve is a \"y\" = constant isoparametric curve along the south side of the surface's domain."
      },
      {
        "signature": "East = 5",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "curve is a \"x\" = constant isoparametric curve along the east side of the surface's domain."
      },
      {
        "signature": "North = 6",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "curve is a \"y\" = constant isoparametric curve along the north side of the surface's domain."
      }
    ]

  },
  {
    "namespace": "Rhino.Geometry",
    "name": "KnotStyle",
    "dataType": "enum",
    "summary": "Knot styles for NURBS curves and surfaces. If a knot vector meets the conditions of two styles, then the style with the lowest value is used.",
    "since": "7.0",
    "values": [
      {
        "signature": "Unknown = 0",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Unknown knot style"
      },
      {
        "signature": "Uniform = 1",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Uniform knots (ends not clamped)."
      },
      {
        "signature": "QuasiUniform = 2",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Uniform knots (clamped ends, degree >= 2)."
      },
      {
        "signature": "PiecewiseBezier= 3",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "All internal knots have full multiplicity."
      },
      {
        "signature": "ClampedEnd = 4",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Clamped end knots (with at least one interior non-uniform knot)."
      },
      {
        "signature": "NonUniform = 5",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Known to be none of the other styles"
      }
    ]

  },
  {
    "namespace": "Rhino.Geometry",
    "name": "Leader",
    "dataType": "class",
    "summary": "Leader geometry class",
    "baseclass": "Rhino.Geometry.AnnotationBase",
    "constructors": [
      {
        "signature": "Leader()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Constructor",
        "since": "6.0"
      },
      {
        "signature": "Leader(SerializationInfo info, StreamingContext context)",
        "modifiers": ["protected"],
        "protected": true,
        "virtual": false,
        "summary": "Protected serialization constructor for internal use.",
        "parameters": [
          {
            "name": "info",
            "type": "System.Runtime.Serialization.SerializationInfo",
            "summary": "Serialization data."
          },
          {
            "name": "context",
            "type": "System.Runtime.Serialization.StreamingContext",
            "summary": "Serialization stream."
          }
        ]
      }
    ],
    "properties": [
      {
        "signature": "NurbsCurve Curve",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the curve used by this leader",
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "Guid LeaderArrowBlockId",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Id of the block used as the arrow for the leader when the arrow type is 'User arrow'",
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "double LeaderArrowSize",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "The size of the leader arrow",
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "ArrowType LeaderArrowType",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "The arrowhead type for the leader",
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "LeaderContentAngleStyle LeaderContentAngleStyle",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Angle for text of leader text",
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "LeaderCurveStyle LeaderCurveStyle",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "The style of the leader curve: polyline or spline",
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool LeaderHasLanding",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns True if the leader has a landing line",
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "double LeaderLandingLength",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the length of the landing line",
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "TextHorizontalAlignment LeaderTextHorizontalAlignment",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the horizontal alignment of the leader's text",
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "TextVerticalAlignment LeaderTextVerticalAlignment",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the vertical alignment of the leader's text",
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "Point2d[] Points2D",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Get or set the 2d points defining the curve used by this leader",
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "Point3d[] Points3D",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Get or set the 3d points defining the curve used by this leader",
        "since": "6.0",
        "property": ["get", "set"]
      }
    ],
    "methods": [
      {
        "signature": "Leader Create(System.String text, Plane plane, DimensionStyle dimstyle, Point3d[] points)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Creates a Leader geometry object",
        "since": "6.0"
      },
      {
        "signature": "Leader CreateWithRichText(System.String richText, Plane plane, DimensionStyle dimstyle, Point3d[] points)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Creates a Leader geometry object",
        "since": "6.0"
      },
      {
        "signature": "GeometryBase[] Explode()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Explodes this leader into its geometric components.",
        "since": "8.0",
        "returns": "An array of Curve and TextEntity objects. If the leader is using user-defined arrowheads, InstanceReferenceGeometry objects will be included."
      }
    ]
  },
  {
    "namespace": "Rhino.Geometry",
    "name": "LengthMassProperties",
    "dataType": "class",
    "summary": "Contains static initialization methods and allows access to the computed metrics of length, length centroid, and length moments in curves.",
    "interfaces": ["IDisposable"],
    "constructors": [
      {
        "signature": "LengthMassProperties()",
        "summary": "Initializes a new instance of the LengthMassProperties class"
      }
    ],
    "properties": [
      {
        "signature": "Point3d Centroid",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the length centroid in the world coordinate system.",
        "since": "7.6",
        "property": ["get"]
      },
      {
        "signature": "Vector3d CentroidCoordinatesMomentsOfInertia",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Moments of inertia with respect to centroid coordinate system. X = integral of ((y-y0)^2 + (z-z0)^2) dm Y = integral of ((z-z0)^2 + (x-x0)^2) dm Z = integral of ((z-z0)^2 + (y-y0)^2) dm where (x0,y0,z0) = centroid.",
        "since": "7.6",
    "remarks": "What is meant by \"moments of inertia\" varies widely in textbooks and papers. The values returned here are the integrals listed in the Summary section. Some applications may want the values from WorldCoordinatesSecondMoments instead of the values returned here.",
        "property": ["get"]
      },
      {
        "signature": "Vector3d CentroidCoordinatesMomentsOfInertiaError",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Uncertainty in centroid coordinates moments of inertia calculation.",
        "since": "7.6",
        "property": ["get"]
      },
      {
        "signature": "Vector3d CentroidCoordinatesProductMoments",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Product moments with respect to centroid coordinate system.",
        "since": "7.6",
        "property": ["get"]
      },
      {
        "signature": "Vector3d CentroidCoordinatesProductMomentsError",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Uncertainty in product moments with respect to centroid coordinate system.",
        "since": "7.6",
        "property": ["get"]
      },
      {
        "signature": "Vector3d CentroidCoordinatesRadiiOfGyration",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Radii of gyration with respect to centroid coordinate system. X = sqrt(integral of ((y-y0)^2 + (z-z0)^2) dm/M) Y = sqrt(integral of ((z-z0)^2 + (x-x0)^2) dm/M) Z = sqrt(integral of ((z-z0)^2 + (y-y0)^2) dm/M) where (x0,y0,z0) = centroid.",
        "since": "7.6",
    "remarks": "What is meant by \"radii of gyration\" varies widely in textbooks and papers. The values returned here are the integrals listed in the Returns section.",
        "property": ["get"]
      },
      {
        "signature": "Vector3d CentroidCoordinatesSecondMoments",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Second moments with respect to centroid coordinate system. X = integral of (x-x0)^2 dm Y = integral of (y-y0)^2 dm Z = integral of (z-z0)^2 dm where (x0,y0,z0) = centroid.",
        "since": "7.6",
        "property": ["get"]
      },
      {
        "signature": "Vector3d CentroidCoordinatesSecondMomentsError",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Uncertainty in centroid coordinates second moments calculation.",
        "since": "7.6",
        "property": ["get"]
      },
      {
        "signature": "Vector3d CentroidError",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the uncertainty in the centroid calculation.",
        "since": "7.6",
        "property": ["get"]
      },
      {
        "signature": "double Length",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the length solution.",
        "since": "7.6",
        "property": ["get"]
      },
      {
        "signature": "double LengthError",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the uncertainty in the length calculation.",
        "since": "7.6",
        "property": ["get"]
      },
      {
        "signature": "Vector3d WorldCoordinatesFirstMoments",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns the world coordinate first moments if they were able to be calculated. X is integral of \"x dm\" over the length Y is integral of \"y dm\" over the length Z is integral of \"z dm\" over the length.",
        "since": "7.6",
        "property": ["get"]
      },
      {
        "signature": "Vector3d WorldCoordinatesFirstMomentsError",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Uncertainty in world coordinates first moments calculation.",
        "since": "7.6",
        "property": ["get"]
      },
      {
        "signature": "Vector3d WorldCoordinatesMomentsOfInertia",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "The moments of inertia about the world coordinate axes. X = integral of (y^2 + z^2) dm Y = integral of (z^2 + x^2) dm Z = integral of (z^2 + y^2) dm.",
        "since": "7.6",
    "remarks": "What is meant by \"moments of inertia\" varies widely in textbooks and papers. The values returned here are the integrals listed in the Summary section. Some applications may want the values from WorldCoordinatesSecondMoments instead of the values returned here.",
        "property": ["get"]
      },
      {
        "signature": "Vector3d WorldCoordinatesMomentsOfInertiaError",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Uncertainty in world coordinates moments of inertia calculation.",
        "since": "7.6",
        "property": ["get"]
      },
      {
        "signature": "Vector3d WorldCoordinatesProductMoments",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns the world coordinate product moments if they were able to be calculated. X is integral of \"xy dm\" over the length Y is integral of \"yz dm\" over the length Z is integral of \"zx dm\" over the length.",
        "since": "7.6",
        "property": ["get"]
      },
      {
        "signature": "Vector3d WorldCoordinatesProductMomentsError",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Uncertainty in world coordinates second moments calculation.",
        "since": "7.6",
        "property": ["get"]
      },
      {
        "signature": "Vector3d WorldCoordinatesRadiiOfGyration",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Radii of gyration with respect to world coordinate system. X = sqrt(integral of (y^2 + z^2) dm/M) Y = sqrt(integral of (z^2 + x^2) dm/M) Z = sqrt(integral of (z^2 + y^2) dm/M)",
        "since": "7.6",
    "remarks": "What is meant by \"radii of gyration\" varies widely in textbooks and papers. The values returned here are the integrals listed in the Returns section.",
        "property": ["get"]
      },
      {
        "signature": "Vector3d WorldCoordinatesSecondMoments",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns the world coordinate second moments if they were able to be calculated. X is integral of \"xx dm\" over the length Y is integral of \"yy dm\" over the length Z is integral of \"zz dm\" over the length.",
        "since": "7.6",
        "property": ["get"]
      },
      {
        "signature": "Vector3d WorldCoordinatesSecondMomentsError",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Uncertainty in world coordinates second moments calculation.",
        "since": "7.6",
        "property": ["get"]
      }
    ],
    "methods": [
      {
        "signature": "LengthMassProperties Compute(Curve curve, System.Boolean length, System.Boolean firstMoments, System.Boolean secondMoments, System.Boolean productMoments)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Calculates the length mass properties of a curve.",
        "since": "7.6",
        "parameters": [
          {
            "name": "curve",
            "type": "Curve",
            "summary": "The curve to measure."
          },
          {
            "name": "length",
            "type": "System.Boolean",
            "summary": "True to calculate length."
          },
          {
            "name": "firstMoments",
            "type": "System.Boolean",
            "summary": "True to calculate length first moments, length, and length centroid."
          },
          {
            "name": "secondMoments",
            "type": "System.Boolean",
            "summary": "True to calculate length second moments."
          },
          {
            "name": "productMoments",
            "type": "System.Boolean",
            "summary": "True to calculate length product moments."
          }
        ],
        "returns": "The LengthMassProperties for the given curve, or None on failure."
      },
      {
        "signature": "LengthMassProperties Compute(Curve curve)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Calculates the length mass properties of a curve.",
        "since": "7.6",
        "parameters": [
          {
            "name": "curve",
            "type": "Curve",
            "summary": "The curve to measure."
          }
        ],
        "returns": "The LengthMassProperties for the given curve, or None on failure."
      },
      {
        "signature": "LengthMassProperties Compute(IEnumerable<Curve> curves, System.Boolean length, System.Boolean firstMoments, System.Boolean secondMoments, System.Boolean productMoments)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Calculates the length mass properties of an enumeration of curves.",
        "since": "7.6",
        "parameters": [
          {
            "name": "curves",
            "type": "IEnumerable<Curve>",
            "summary": "An enumeration of curves."
          },
          {
            "name": "length",
            "type": "System.Boolean",
            "summary": "True to calculate length."
          },
          {
            "name": "firstMoments",
            "type": "System.Boolean",
            "summary": "True to calculate length first moments, length, and length centroid."
          },
          {
            "name": "secondMoments",
            "type": "System.Boolean",
            "summary": "True to calculate length second moments."
          },
          {
            "name": "productMoments",
            "type": "System.Boolean",
            "summary": "True to calculate length product moments."
          }
        ],
        "returns": "The LengthMassProperties for the given enumeration of curves, or None on failure."
      },
      {
        "signature": "LengthMassProperties Compute(IEnumerable<Curve> curves)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Calculates the length mass properties of an enumeration of curves.",
        "since": "7.6",
        "returns": "The LengthMassProperties for the given enumeration of curves, or None on failure."
      },
      {
        "signature": "LengthMassProperties WeightedSum(IEnumerable<LengthMassProperties> summands, IEnumerable<double> weights)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Sum a list of mass properties together to get an aggregate mass, weighting each by a density factor.Ignores existing mass properties in this object.",
        "since": "9.0",
        "parameters": [
          {
            "name": "summands",
            "type": "IEnumerable<LengthMassProperties>",
            "summary": "An array of mass properties to add."
          },
          {
            "name": "weights",
            "type": "IEnumerable<double>",
            "summary": "An array of non-negative densities, of the same length as summands."
          }
        ],
        "returns": "An LengthMassProperties containing the result if successful, None if a failure occurs."
      },
      {
        "signature": "System.Boolean CentroidCoordinatesPrincipalMoments(out System.Double x, out Vector3d xaxis, out System.Double y, out Vector3d yaxis, out System.Double z, out Vector3d zaxis)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Calculates the eigenvalues and eigenvectors of the moments matrix with respect to centroid coordinates.",
        "since": "7.6",
        "parameters": [
          {
            "name": "x",
            "type": "System.Double",
            "summary": "Principal moment."
          },
          {
            "name": "xaxis",
            "type": "Vector3d",
            "summary": "Principal axis for x."
          },
          {
            "name": "y",
            "type": "System.Double",
            "summary": "Principal moment."
          },
          {
            "name": "yaxis",
            "type": "Vector3d",
            "summary": "Principal axis for y."
          },
          {
            "name": "z",
            "type": "System.Double",
            "summary": "Principal moment."
          },
          {
            "name": "zaxis",
            "type": "Vector3d",
            "summary": "Principal axis for z."
          }
        ],
        "returns": "True if successful."
      },
      {
        "signature": "System.Boolean CentroidCoordinatesPrincipalMomentsOfInertia(out System.Double x, out Vector3d xaxis, out System.Double y, out Vector3d yaxis, out System.Double z, out Vector3d zaxis)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Calculates the principal moments of inertia and principal axes with respect to centroid coordinates.",
        "since": "7.6",
        "parameters": [
          {
            "name": "x",
            "type": "System.Double",
            "summary": "Principal moment."
          },
          {
            "name": "xaxis",
            "type": "Vector3d",
            "summary": "Principal axis for x."
          },
          {
            "name": "y",
            "type": "System.Double",
            "summary": "Principal moment."
          },
          {
            "name": "yaxis",
            "type": "Vector3d",
            "summary": "Principal axis for y."
          },
          {
            "name": "z",
            "type": "System.Double",
            "summary": "Principal moment."
          },
          {
            "name": "zaxis",
            "type": "Vector3d",
            "summary": "Principal axis for z."
          }
        ],
        "returns": "True if successful."
      },
      {
        "signature": "System.Void Dispose()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Actively reclaims unmanaged resources that this instance uses.",
        "since": "5.0"
      },
      {
        "signature": "System.Void Dispose(System.Boolean disposing)",
        "modifiers": ["protected", "virtual"],
        "protected": true,
        "virtual": true,
        "summary": "For derived class implementers.  \nThis method is called with argument True when class user calls Dispose(), while with argument False when     the Garbage Collector invokes the finalizer, or Finalize() method.  \nYou must reclaim all used unmanaged resources in both cases, and can use this chance to call Dispose on disposable fields if the argument is true.  \nAlso, you must call the base virtual method within your overriding method.",
        "parameters": [
          {
            "name": "disposing",
            "type": "System.Boolean",
            "summary": "True if the call comes from the Dispose() method; False if it comes from the Garbage Collector finalizer."
          }
        ]
      },
      {
        "signature": "System.Boolean Sum(IEnumerable<LengthMassProperties> summands, System.Boolean bAddTo)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Sum mass properties together to get an aggregate mass.",
        "since": "9.0",
        "parameters": [
          {
            "name": "summands",
            "type": "IEnumerable<LengthMassProperties>",
            "summary": "An array of mass properties to add."
          },
          {
            "name": "bAddTo",
            "type": "System.Boolean",
            "summary": "If true, then the summands are added to the existing mass."
          }
        ],
        "returns": "True if successful."
      },
      {
        "signature": "System.Boolean Sum(LengthMassProperties summand)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Sum mass properties together to get an aggregate mass.",
        "since": "9.0",
        "parameters": [
          {
            "name": "summand",
            "type": "LengthMassProperties",
            "summary": "mass properties to add."
          }
        ],
        "returns": "True if successful."
      },
      {
        "signature": "System.Boolean WorldCoordinatesPrincipalMoments(out System.Double x, out Vector3d xaxis, out System.Double y, out Vector3d yaxis, out System.Double z, out Vector3d zaxis)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Calculates the eigenvalues and eigenvectors of moments matrix in world coordinates.",
        "since": "7.6",
        "parameters": [
          {
            "name": "x",
            "type": "System.Double",
            "summary": "Principal moment."
          },
          {
            "name": "xaxis",
            "type": "Vector3d",
            "summary": "Principal axis for x."
          },
          {
            "name": "y",
            "type": "System.Double",
            "summary": "Principal moment."
          },
          {
            "name": "yaxis",
            "type": "Vector3d",
            "summary": "Principal axis for y."
          },
          {
            "name": "z",
            "type": "System.Double",
            "summary": "Principal moment."
          },
          {
            "name": "zaxis",
            "type": "Vector3d",
            "summary": "Principal axis for z."
          }
        ],
        "returns": "True if successful."
      },
      {
        "signature": "System.Boolean WorldCoordinatesPrincipalMomentsOfInertia(out System.Double x, out Vector3d xaxis, out System.Double y, out Vector3d yaxis, out System.Double z, out Vector3d zaxis)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Calculates the principal moments of inertia and principal axes with respect to world coordinates.",
        "since": "7.6",
        "parameters": [
          {
            "name": "x",
            "type": "System.Double",
            "summary": "Principal moment."
          },
          {
            "name": "xaxis",
            "type": "Vector3d",
            "summary": "Principal axis for x."
          },
          {
            "name": "y",
            "type": "System.Double",
            "summary": "Principal moment."
          },
          {
            "name": "yaxis",
            "type": "Vector3d",
            "summary": "Principal axis for y."
          },
          {
            "name": "z",
            "type": "System.Double",
            "summary": "Principal moment."
          },
          {
            "name": "zaxis",
            "type": "Vector3d",
            "summary": "Principal axis for z."
          }
        ],
        "returns": "True if successful."
      }
    ]
  },
  {
    "namespace": "Rhino.Geometry",
    "name": "Light",
    "dataType": "class",
    "summary": "Represents a light that shines in the modeling space.",
    "baseclass": "Rhino.Geometry.GeometryBase",
    "constructors": [
      {
        "signature": "Light()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Initializes a new light.",
        "since": "5.0"
      },
      {
        "signature": "Light(SerializationInfo info, StreamingContext context)",
        "modifiers": ["protected"],
        "protected": true,
        "virtual": false,
        "summary": "Protected constructor used in serialization.",
        "parameters": [
          {
            "name": "info",
            "type": "System.Runtime.Serialization.SerializationInfo",
            "summary": "Serialization data."
          },
          {
            "name": "context",
            "type": "System.Runtime.Serialization.StreamingContext",
            "summary": "Serialization stream."
          }
        ]
      }
    ],
    "properties": [
      {
        "signature": "Color Ambient",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the ambient color.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "Attenuation AttenuationType",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Get the type of attenuation for this light.",
        "since": "7.0",
        "property": ["get", "set"]
      },
      {
        "signature": "Vector3d AttenuationVector",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or Sets the attenuation vector.",
        "since": "5.7",
        "property": ["get", "set"]
      },
      {
        "signature": "CoordinateSystem CoordinateSystem",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets a value, determined by LightStyle, that explains whether the camera directions are relative to World or Camera spaces.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "Color Diffuse",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the diffuse color.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "Vector3d Direction",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the vector direction of the camera.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "double HotSpot",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "The hot spot setting runs from 0.0 to 1.0 and is used to provides a linear interface for controlling the focus or concentration of a spotlight. A hot spot setting of 0.0 corresponds to a spot exponent of 128. A hot spot setting of 1.0 corresponds to a spot exponent of 0.0.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "Guid Id",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the ID of this light.",
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "double Intensity",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the light intensity.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool IsDirectionalLight",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets a value indicating whether the light style is <b>LightStyle</b> CameraDirectional or WorldDirectional.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "bool IsEnabled",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets a value that defines if the light is turned on (true) or off (false).",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool IsLinearLight",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets a value indicating whether the light style is <b>LightStyle</b> WorldLinear.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "bool IsPointLight",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets a value indicating whether the light style is <b>LightStyle</b> CameraPoint or WorldPoint.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "bool IsRectangularLight",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets a value indicating whether the light style is <b>LightStyle</b> WorldRectangular.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "bool IsSpotLight",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets a value indicating whether the light style is <b>LightStyle</b> CameraSpot or WorldSpot.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "bool IsSunLight",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets a value indicating whether this object is a Sun light.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "Vector3d Length",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the height in linear and rectangular lights.  \n(ignored for non-linear/rectangular lights.)",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "LightStyle LightStyle",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets a light style on this camera.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "Point3d Location",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the light or 3D position or location.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "string Name",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the light name.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "Vector3d PerpendicularDirection",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets a perpendicular vector to the camera direction.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "double PowerCandela",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the light power in candelas (cd).",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "double PowerLumens",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the light power in lumens (lm).",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "double PowerWatts",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the light power in watts (W).",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "double ShadowIntensity",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the shadow intensity for the light.",
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "Color Specular",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the specular color.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "double SpotAngleRadians",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the spot angle in radians.  \nIgnored for non-spot lights.  \nangle = 0 to pi/2  (0 to 90 degrees).",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "double SpotExponent",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "The spot exponent varies from 0.0 to 128.0 and provides an exponential interface for controlling the focus or concentration of a spotlight (like the OpenGL GL_SPOT_EXPONENT parameter).  The spot exponent and hot spot parameters are linked; changing one will change the other. A hot spot setting of 0.0 corresponds to a spot exponent of 128. A hot spot setting of 1.0 corresponds to a spot exponent of 0.0.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "double SpotLightShadowIntensity",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the spot light shadow intensity.  \n(ignored for non-spot lights.)",
        "since": "5.0",
        "obsolete": "Use ShadowIntensity",
        "property": ["get", "set"]
      },
      {
        "signature": "Vector3d Width",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the width in linear and rectangular lights.  \n(ignored for non-linear/rectangular lights.)",
        "since": "5.0",
        "property": ["get", "set"]
      }
    ],
    "methods": [
      {
        "signature": "Light CreateSunLight(Render.Sun sun)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Constructs a light which simulates a <b>Rhino.Render.Sun</b> .",
        "since": "5.0",
        "parameters": [
          {
            "name": "sun",
            "type": "Render.Sun",
            "summary": "A Sun object from the Rhino.Render namespace."
          }
        ],
        "returns": "A light."
      },
      {
        "signature": "Light CreateSunLight(System.Double northAngleDegrees, System.DateTime when, System.Double latitudeDegrees, System.Double longitudeDegrees)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Constructs a light which simulates the Sun based on a given time and location on Earth.",
        "since": "5.0",
        "parameters": [
          {
            "name": "northAngleDegrees",
            "type": "System.Double",
            "summary": "The angle of North in degrees. North is the angle between positive World X axis and model North, as measured on World XY plane."
          },
          {
            "name": "when",
            "type": "System.DateTime",
            "summary": "The time of the measurement. The Kind property of DateTime specifies whether this is in local or universal time.  \nLocal and Undefined date-time kinds in this argument are considered local."
          },
          {
            "name": "latitudeDegrees",
            "type": "System.Double",
            "summary": "The latitude, in degrees, of the location on Earth."
          },
          {
            "name": "longitudeDegrees",
            "type": "System.Double",
            "summary": "The longitude, in degrees, of the location on Earth."
          }
        ],
        "returns": "A newly constructed light object."
      },
      {
        "signature": "Light CreateSunLight(System.Double northAngleDegrees, System.Double azimuthDegrees, System.Double altitudeDegrees)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Constructs a light that represents the Sun.",
        "since": "5.0",
        "parameters": [
          {
            "name": "northAngleDegrees",
            "type": "System.Double",
            "summary": "The angle of North in degrees. North is the angle between positive World X axis and model North, as measured on World XY plane."
          },
          {
            "name": "azimuthDegrees",
            "type": "System.Double",
            "summary": "The Azimuth angle value in degrees. Azimuth is the compass angle from North."
          },
          {
            "name": "altitudeDegrees",
            "type": "System.Double",
            "summary": "The Altitude angle in degrees. Altitude is the angle above the ground plane."
          }
        ],
        "returns": "A new sun light."
      },
      {
        "signature": "System.Double GetAttenuation(System.Double d)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the attenuation settings (ignored for \"directional\" and \"ambient\" lights).  \nattenuation = 1/(a0 + d*a1 + d^2*a2) where d = distance to light.",
        "since": "5.0",
        "parameters": [
          {
            "name": "d",
            "type": "System.Double",
            "summary": "The distance to evaluate."
          }
        ],
        "returns": "0 if a0 + d*a1 + d^2*a2 <= 0."
      },
      {
        "signature": "System.Boolean GetSpotLightRadii(out System.Double innerRadius, out System.Double outerRadius)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the spot light radii.",
        "since": "5.0",
        "parameters": [
          {
            "name": "innerRadius",
            "type": "System.Double",
            "summary": "The inner radius. This out parameter is assigned during this call."
          },
          {
            "name": "outerRadius",
            "type": "System.Double",
            "summary": "The outer radius. This out parameter is assigned during this call."
          }
        ],
        "returns": "True if operation succeeded; otherwise, false."
      },
      {
        "signature": "System.Void SetAttenuation(System.Double a0, System.Double a1, System.Double a2)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Sets the attenuation settings (ignored for \"directional\" and \"ambient\" lights).  \nattenuation = 1/(a0 + d*a1 + d^2*a2) where d = distance to light.",
        "since": "5.0",
        "parameters": [
          {
            "name": "a0",
            "type": "System.Double",
            "summary": "The new constant attenuation divisor term."
          },
          {
            "name": "a1",
            "type": "System.Double",
            "summary": "The new reverse linear attenuation divisor term."
          },
          {
            "name": "a2",
            "type": "System.Double",
            "summary": "The new reverse quadratic attenuation divisor term."
          }
        ]
      }
    ],
    "fields": [
      {
        "signature": "public static readonly Vector3d ConstantAttenuationVector = new Vector3d(1, 0, 0)",
        "modifiers": ["public", "static", "readonly"],
        "protected": false,
        "virtual": false,
        "summary": "Vector denoting a constant light attenuation."
      },
      {
        "signature": "public static readonly Vector3d InverseSquaredAttenuationVector = new Vector3d(0, 0, 1)",
        "modifiers": ["public", "static", "readonly"],
        "protected": false,
        "virtual": false,
        "summary": "Vector denoting an inverse squared light attenuation."
      },
      {
        "signature": "public static readonly Vector3d LinearAttenuationVector = new Vector3d(0, 1, 0)",
        "modifiers": ["public", "static", "readonly"],
        "protected": false,
        "virtual": false,
        "summary": "Vector denoting a linear light attenuation."
      }
    ]

  },
  {
    "namespace": "Rhino.Geometry",
    "name": "Light.Attenuation",
    "dataType": "enum",
    "summary": "Types of light attenuation available.",
    "since": "7.0",
    "values": [
      {
        "signature": "Constant",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Constant light attenuation, meaning no light energy fall-off."
      },
      {
        "signature": "Linear",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Linear light attenuation, meaning linear light energy fall-off."
      },
      {
        "signature": "InverseSquared",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Inverse squared light attenuation, meaning light energy falls off in spherical order."
      }
    ]

  },
  {
    "namespace": "Rhino.Geometry",
    "name": "LightStyle",
    "dataType": "enum",
    "summary": "Defines enumerated values to represent light styles or types, such as directional or spotlight.",
    "since": "5.0",
    "values": [
      {
        "signature": "None = 0",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "No light type. This is the default value of the enumeration type."
      },
      {
        "signature": "CameraDirectional = 4",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Light location and direction in camera coordinates. +x points to right, +y points up, +z points towards camera."
      },
      {
        "signature": "CameraPoint = 5",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Light location and direction in camera coordinates. +x points to right, +y points up, +z points towards camera."
      },
      {
        "signature": "CameraSpot = 6",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Light location and direction in camera coordinates. +x points to right, +y points up, +z points towards camera."
      },
      {
        "signature": "WorldDirectional = 7",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Light location and direction in world coordinates."
      },
      {
        "signature": "WorldPoint = 8",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Light location and direction in world coordinates."
      },
      {
        "signature": "WorldSpot = 9",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Light location and direction in world coordinates."
      },
      {
        "signature": "Ambient = 10",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Ambient light."
      },
      {
        "signature": "WorldLinear = 11",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Linear light in world coordinates."
      },
      {
        "signature": "WorldRectangular = 12",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Rectangular light in world coordinates."
      }
    ]

  },
  {
    "namespace": "Rhino.Geometry",
    "name": "Line",
    "dataType": "struct",
    "summary": "Represents the value of start and end points in a single line segment.",
    "constructors": [
      {
        "signature": "Line(double x0, double y0, double z0, double x1, double y1, double z1)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Constructs a new line segment between two points.",
        "since": "5.0",
        "parameters": [
          {
            "name": "x0",
            "type": "System.Double",
            "summary": "The X coordinate of the first point."
          },
          {
            "name": "y0",
            "type": "System.Double",
            "summary": "The Y coordinate of the first point."
          },
          {
            "name": "z0",
            "type": "System.Double",
            "summary": "The Z coordinate of the first point."
          },
          {
            "name": "x1",
            "type": "System.Double",
            "summary": "The X coordinate of the second point."
          },
          {
            "name": "y1",
            "type": "System.Double",
            "summary": "The Y coordinate of the second point."
          },
          {
            "name": "z1",
            "type": "System.Double",
            "summary": "The Z coordinate of the second point."
          }
        ]
      },
      {
        "signature": "Line(Point3d from, Point3d to)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Constructs a new line segment between two points.",
        "since": "5.0",
        "parameters": [
          {
            "name": "from",
            "type": "Point3d",
            "summary": "Start point of line."
          },
          {
            "name": "to",
            "type": "Point3d",
            "summary": "End point of line."
          }
        ]
      },
      {
        "signature": "Line(Point3d start, Vector3d direction, double length)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Constructs a new line segment from start point, direction and length.",
        "since": "5.0",
        "parameters": [
          {
            "name": "start",
            "type": "Point3d",
            "summary": "Start point of line segment."
          },
          {
            "name": "direction",
            "type": "Vector3d",
            "summary": "Direction of line segment."
          },
          {
            "name": "length",
            "type": "System.Double",
            "summary": "Length of line segment."
          }
        ]
      },
      {
        "signature": "Line(Point3d start, Vector3d span)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Constructs a new line segment from start point and span vector.",
        "since": "5.0",
        "parameters": [
          {
            "name": "start",
            "type": "Point3d",
            "summary": "Start point of line segment."
          },
          {
            "name": "span",
            "type": "Vector3d",
            "summary": "Direction and length of line segment."
          }
        ]
      }
    ],
    "properties": [
      {
        "signature": "Line Unset",
        "modifiers": ["static", "public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets a line segment which has <b>Point3d.Unset</b> end points.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "BoundingBox BoundingBox",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the line's 3d axis aligned bounding box.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "Vector3d Direction",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the direction of this line segment. The length of the direction vector equals the length of the line segment.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "Point3d From",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Start point of line segment.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "double FromX",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the X coordinate of the line From point.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "double FromY",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the Y coordinate of the line From point.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "double FromZ",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the Z coordinate of the line From point.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool IsValid",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets a value indicating whether or not this line is valid. Valid lines must have valid start and end points, and the points must not be equal.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "double Length",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the length of this line segment. Note that a negative length will invert the line segment without making the actual length negative. The line From point will remain fixed when a new Length is set.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "Point3d To",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "End point of line segment.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "double ToX",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the X coordinate of the line To point.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "double ToY",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the Y coordinate of the line To point.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "double ToZ",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the Z coordinate of the line To point.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "Vector3d UnitTangent",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the tangent of the line segment. Note that tangent vectors are always unit vectors.",
        "since": "5.0",
        "property": ["get"]
      }
    ],
    "methods": [
      {
        "signature": "System.Boolean TryCreateBetweenCurves(Curve curve0, Curve curve1, ref System.Double t0, ref System.Double t1, System.Boolean perpendicular0, System.Boolean perpendicular1, out Line line)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Creates a line segment between a pair of curves such that the line segment is either tangent or perpendicular to each of the curves.",
        "since": "5.2",
        "parameters": [
          {
            "name": "curve0",
            "type": "Curve",
            "summary": "The first curve."
          },
          {
            "name": "curve1",
            "type": "Curve",
            "summary": "The second curve."
          },
          {
            "name": "t0",
            "type": "System.Double",
            "summary": "Parameter value of point on curve0. Seed value at input and solution at output."
          },
          {
            "name": "t1",
            "type": "System.Double",
            "summary": "Parameter value of point on curve 0.  Seed value at input and solution at output."
          },
          {
            "name": "perpendicular0",
            "type": "System.Boolean",
            "summary": "Find line perpendicular to (true) or tangent to (false) curve0."
          },
          {
            "name": "perpendicular1",
            "type": "System.Boolean",
            "summary": "Find line Perpendicular to (true) or tangent to (false) curve1."
          },
          {
            "name": "line",
            "type": "Line",
            "summary": "The line segment if successful."
          }
        ],
        "returns": "True on success, False on failure."
      },
      {
        "signature": "System.Boolean TryFitLineToPoints(IEnumerable<Point3d> points, out Line fitLine)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Attempt to fit a line through a set of points.",
        "since": "5.0",
        "parameters": [
          {
            "name": "points",
            "type": "IEnumerable<Point3d>",
            "summary": "The points through which to fit."
          },
          {
            "name": "fitLine",
            "type": "Line",
            "summary": "The resulting line on success."
          }
        ],
        "returns": "True on success, False on failure."
      },
      {
        "signature": "System.Double ClosestParameter(Point3d testPoint)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Finds the parameter on the infinite line segment that is closest to a test point.",
        "since": "5.0",
        "parameters": [
          {
            "name": "testPoint",
            "type": "Point3d",
            "summary": "Point to project onto the line."
          }
        ],
        "returns": "The parameter on the line that is closest to testPoint."
      },
      {
        "signature": "Point3d ClosestPoint(Point3d testPoint, System.Boolean limitToFiniteSegment)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Finds the point on the (in)finite line segment that is closest to a test point.",
        "since": "5.0",
        "parameters": [
          {
            "name": "testPoint",
            "type": "Point3d",
            "summary": "Point to project onto the line."
          },
          {
            "name": "limitToFiniteSegment",
            "type": "System.Boolean",
            "summary": "If true, the projection is limited to the finite line segment."
          }
        ],
        "returns": "The point on the (in)finite line that is closest to testPoint."
      },
      {
        "signature": "System.Double DistanceTo(Point3d testPoint, System.Boolean limitToFiniteSegment)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Compute the shortest distance between this line segment and a test point.",
        "since": "5.0",
        "parameters": [
          {
            "name": "testPoint",
            "type": "Point3d",
            "summary": "Point for distance computation."
          },
          {
            "name": "limitToFiniteSegment",
            "type": "System.Boolean",
            "summary": "If true, the distance is limited to the finite line segment."
          }
        ],
        "returns": "The shortest distance between this line segment and testPoint."
      },
      {
        "signature": "System.Boolean EpsilonEquals(Line other, System.Double epsilon)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Check that all values in other are within epsilon of the values in this",
        "since": "5.4"
      },
      {
        "signature": "System.Boolean Equals(Line other)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Determines whether a line has the same value as this line.",
        "since": "5.0",
        "parameters": [
          {
            "name": "other",
            "type": "Line",
            "summary": "A line."
          }
        ],
        "returns": "True if other has the same coordinates as this; otherwise false."
      },
      {
        "signature": "System.Boolean Equals(System.Object obj)",
        "modifiers": ["public", "override"],
        "protected": false,
        "virtual": false,
        "summary": "Determines whether an object is a line that has the same value as this line.",
        "parameters": [
          {
            "name": "obj",
            "type": "System.Object",
            "summary": "An object."
          }
        ],
        "returns": "True if obj is a Line and has the same coordinates as this; otherwise false."
      },
      {
        "signature": "System.Boolean Extend(System.Double startLength, System.Double endLength)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Extend the line by custom distances on both sides.",
        "since": "5.0",
        "parameters": [
          {
            "name": "startLength",
            "type": "System.Double",
            "summary": "Distance to extend the line at the start point. Positive distance result in longer lines."
          },
          {
            "name": "endLength",
            "type": "System.Double",
            "summary": "Distance to extend the line at the end point. Positive distance result in longer lines."
          }
        ],
        "returns": "True on success, False on failure."
      },
      {
        "signature": "System.Boolean ExtendThroughBox(BoundingBox box, System.Double additionalLength)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Ensure the line extends all the way through a box. Note, this does not result in the shortest possible line that overlaps the box.",
        "since": "5.0",
        "parameters": [
          {
            "name": "box",
            "type": "BoundingBox",
            "summary": "Box to extend through."
          },
          {
            "name": "additionalLength",
            "type": "System.Double",
            "summary": "Additional length to append at both sides of the line."
          }
        ],
        "returns": "True on success, False on failure."
      },
      {
        "signature": "System.Boolean ExtendThroughBox(BoundingBox box)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Ensure the line extends all the way through a box. Note, this does not result in the shortest possible line that overlaps the box.",
        "since": "5.0",
        "parameters": [
          {
            "name": "box",
            "type": "BoundingBox",
            "summary": "Box to extend through."
          }
        ],
        "returns": "True on success, False on failure."
      },
      {
        "signature": "System.Boolean ExtendThroughBox(Box box, System.Double additionalLength)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Ensure the line extends all the way through a box. Note, this does not result in the shortest possible line that overlaps the box.",
        "since": "5.0",
        "parameters": [
          {
            "name": "box",
            "type": "Box",
            "summary": "Box to extend through."
          },
          {
            "name": "additionalLength",
            "type": "System.Double",
            "summary": "Additional length to append at both sides of the line."
          }
        ],
        "returns": "True on success, False on failure."
      },
      {
        "signature": "System.Boolean ExtendThroughBox(Box box)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Ensure the line extends all the way through a box. Note, this does not result in the shortest possible line that overlaps the box.",
        "since": "5.0",
        "parameters": [
          {
            "name": "box",
            "type": "Box",
            "summary": "Box to extend through."
          }
        ],
        "returns": "True on success, False on failure."
      },
      {
        "signature": "System.Void Flip()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Flip the endpoints of the line segment.",
        "since": "5.0"
      },
      {
        "signature": "System.Int32 GetHashCode()",
        "modifiers": ["public", "override"],
        "protected": false,
        "virtual": false,
        "summary": "Computes a hash number that represents this line.",
        "returns": "A number that is not unique to the value of this line."
      },
      {
        "signature": "System.Double MaximumDistanceTo(Line testLine)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Finds the largest distance between this line as a finite segment and another finite segment.",
        "since": "5.0",
        "parameters": [
          {
            "name": "testLine",
            "type": "Line",
            "summary": "A line to test."
          }
        ],
        "returns": "The maximum distance."
      },
      {
        "signature": "System.Double MaximumDistanceTo(Point3d testPoint)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Finds the largest distance between this line as a finite segment and a test point.",
        "since": "5.0",
        "parameters": [
          {
            "name": "testPoint",
            "type": "Point3d",
            "summary": "A point to test."
          }
        ],
        "returns": "The maximum distance."
      },
      {
        "signature": "System.Double MinimumDistanceTo(Line testLine)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Finds the shortest distance between this line as a finite segment and another finite segment.",
        "since": "5.0",
        "parameters": [
          {
            "name": "testLine",
            "type": "Line",
            "summary": "A line to test."
          }
        ],
        "returns": "The minimum distance."
      },
      {
        "signature": "System.Double MinimumDistanceTo(Point3d testPoint)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Finds the shortest distance between this line as a finite segment and a test point.",
        "since": "5.0",
        "parameters": [
          {
            "name": "testPoint",
            "type": "Point3d",
            "summary": "A point to test."
          }
        ],
        "returns": "The minimum distance."
      },
      {
        "signature": "Point3d PointAt(System.Double t)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Evaluates the line at the specified parameter.",
        "since": "5.0",
        "parameters": [
          {
            "name": "t",
            "type": "System.Double",
            "summary": "Parameter to evaluate line segment at. Line parameters are normalized parameters."
          }
        ],
        "returns": "The point at the specified parameter."
      },
      {
        "signature": "Point3d PointAtLength(System.Double distance)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Computes a point located at a specific metric distance from the line origin ( <b>From</b> ).  \nIf line start and end coincide, then the start point is always returned.",
        "since": "6.0",
        "parameters": [
          {
            "name": "distance",
            "type": "System.Double",
            "summary": "A positive, 0, or a negative value that will be the distance from <b>From</b> ."
          }
        ],
        "returns": "The newly found point."
      },
      {
        "signature": "NurbsCurve ToNurbsCurve()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Constructs a nurbs curve representation of this line. This amounts to the same as calling NurbsCurve.CreateFromLine().",
        "since": "5.0",
        "returns": "A nurbs curve representation of this line or None if no such representation could be made."
      },
      {
        "signature": "System.String ToString()",
        "modifiers": ["public", "override"],
        "protected": false,
        "virtual": false,
        "summary": "Constructs the string representation of this line, in the form \"From,To\".",
        "returns": "A text string."
      },
      {
        "signature": "System.String ToString(System.String format, System.IFormatProvider formatProvider)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "7.0"
      },
      {
        "signature": "System.Boolean Transform(Transform xform)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Transform the line using a Transformation matrix.",
        "since": "5.0",
        "parameters": [
          {
            "name": "xform",
            "type": "Transform",
            "summary": "Transform to apply to this line."
          }
        ],
        "returns": "True on success, False on failure."
      },
      {
        "signature": "System.Boolean TryGetPlane(out Plane plane)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets a plane that contains the line. The origin of the plane is at the start of the line. If possible, a plane parallel to the world XY, YZ, or ZX plane is returned.",
        "since": "5.0",
        "parameters": [
          {
            "name": "plane",
            "type": "Plane",
            "summary": "If the return value is true, the plane out parameter is assigned during this call."
          }
        ],
        "returns": "True on success."
      }
    ],
    "operators": [
      {
        "signature": "bool operator !=(Line a, Line b)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Determines whether two lines have different values.",
        "since": "5.0",
        "parameters": [
          {
            "name": "a",
            "type": "Line",
            "summary": "A line."
          },
          {
            "name": "b",
            "type": "Line",
            "summary": "Another line."
          }
        ]
      },
      {
        "signature": "bool operator ==(Line a, Line b)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Determines whether two lines have the same value.",
        "since": "5.0",
        "parameters": [
          {
            "name": "a",
            "type": "Line",
            "summary": "A line."
          },
          {
            "name": "b",
            "type": "Line",
            "summary": "Another line."
          }
        ]
      }
    ]

  },
  {
    "namespace": "Rhino.Geometry",
    "name": "LinearDimension",
    "dataType": "class",
    "summary": "Represents a linear dimension",
    "baseclass": "Rhino.Geometry.Dimension",
    "constructors": [
      {
        "signature": "LinearDimension()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "LinearDimension(Plane dimensionPlane, Point2d extensionLine1End, Point2d extensionLine2End, Point2d pointOnDimensionLine)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "LinearDimension(SerializationInfo info, StreamingContext context)",
        "modifiers": ["protected"],
        "protected": true,
        "virtual": false,
        "summary": "Protected constructor used in serialization."
      }
    ],
    "properties": [
      {
        "signature": "bool Aligned",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets a value indicating whether this annotation is aligned.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "AnnotationType AnnotationType",
        "modifiers": ["public", "new"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "Point2d Arrowhead1End",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the arrow head end of the first extension line.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "Point2d Arrowhead2End",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the arrow head end of the second extension line.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "Point2d DimensionLinePoint",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Point on annotation plane where dimension line starts",
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "double DistanceBetweenArrowTips",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the distance between arrow tips.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "Point2d ExtensionLine1End",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "End of the first extension line.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "Point2d ExtensionLine2End",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "End of the second extension line.",
        "since": "5.0",
        "property": ["get", "set"]
      }
    ],
    "methods": [
      {
        "signature": "LinearDimension Create(AnnotationType dimtype, DimensionStyle dimStyle, Plane plane, Vector3d horizontal, Point3d defpoint1, Point3d defpoint2, Point3d dimlinepoint, System.Double rotationInPlane)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Initialize Dimension parameters",
        "since": "6.0",
        "parameters": [
          {
            "name": "dimtype",
            "type": "AnnotationType",
            "summary": "AnnotationType.Rotated or AnnotationType.Aligned"
          },
          {
            "name": "dimStyle",
            "type": "DimensionStyle",
            "summary": "Dimension's DimensionStyle"
          },
          {
            "name": "plane",
            "type": "Plane",
            "summary": "Dimension's plane"
          },
          {
            "name": "horizontal",
            "type": "Vector3d",
            "summary": "Horizontal reference direction"
          },
          {
            "name": "defpoint1",
            "type": "Point3d",
            "summary": "First definition point"
          },
          {
            "name": "defpoint2",
            "type": "Point3d",
            "summary": "Second definition point"
          },
          {
            "name": "dimlinepoint",
            "type": "Point3d",
            "summary": "Point on dimension line"
          },
          {
            "name": "rotationInPlane",
            "type": "System.Double",
            "summary": "For Rotated style"
          }
        ]
      },
      {
        "signature": "LinearDimension FromPoints(Point3d extensionLine1End, Point3d extensionLine2End, Point3d pointOnDimensionLine)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Initializes a new instance of the <b>LinearDimension</b> class, based on three points.",
        "since": "5.0"
      },
      {
        "signature": "System.Boolean Get3dPoints(out Point3d extensionLine1End, out Point3d extensionLine2End, out Point3d arrowhead1End, out Point3d arrowhead2End, out Point3d dimlinepoint, out Point3d textpoint)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Get locations of dimension's 3d points",
        "since": "6.0",
        "parameters": [
          {
            "name": "extensionLine1End",
            "type": "Point3d",
            "summary": "First definition point"
          },
          {
            "name": "extensionLine2End",
            "type": "Point3d",
            "summary": "Second definition point"
          },
          {
            "name": "arrowhead1End",
            "type": "Point3d",
            "summary": "First arrowhead point"
          },
          {
            "name": "arrowhead2End",
            "type": "Point3d",
            "summary": "Second Arrowhead point"
          },
          {
            "name": "dimlinepoint",
            "type": "Point3d",
            "summary": "Point on dimension line"
          },
          {
            "name": "textpoint",
            "type": "Point3d",
            "summary": "Text location"
          }
        ],
        "returns": "True = success"
      },
      {
        "signature": "System.Boolean GetDisplayLines(DimensionStyle style, System.Double scale, out IEnumerable<Line> lines)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "System.String GetDistanceDisplayText(LengthUnit units, DimensionStyle style)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "9.0"
      },
      {
        "signature": "System.String GetDistanceDisplayText(UnitSystem unitsystem, DimensionStyle style)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "deprecated": "9.0",
        "obsolete": "Since 9.0"
      },
      {
        "signature": "System.Boolean GetTextRectangle(out Point3d[] corners)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0"
      },
      {
        "signature": "System.Void SetLocations(Point2d extensionLine1End, Point2d extensionLine2End, Point2d pointOnDimensionLine)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Sets the three locations of the point, using two-dimensional points that refer to the plane of the annotation.",
        "since": "5.0"
      }
    ]
  },
  {
    "namespace": "Rhino.Geometry",
    "name": "LineCurve",
    "dataType": "class",
    "summary": "Represents a linear curve.",
    "baseclass": "Rhino.Geometry.Curve",
    "constructors": [
      {
        "signature": "LineCurve()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Initializes a new instance of the <b>LineCurve</b> class.",
        "since": "5.0"
      },
      {
        "signature": "LineCurve(Line line, double t0, double t1)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Initializes a new instance of the <b>LineCurve</b> class, by retrieving its value from a <b>Line</b> and setting the domain.",
        "since": "5.0",
        "parameters": [
          {
            "name": "line",
            "type": "Line",
            "summary": "A line to use as model."
          },
          {
            "name": "t0",
            "type": "System.Double",
            "summary": "The new domain start."
          },
          {
            "name": "t1",
            "type": "System.Double",
            "summary": "The new domain end."
          }
        ]
      },
      {
        "signature": "LineCurve(Line line)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Initializes a new instance of the <b>LineCurve</b> class, by retrieving its value from a <b>Line</b> .",
        "since": "5.0",
        "parameters": [
          {
            "name": "line",
            "type": "Line",
            "summary": "A line to use as model."
          }
        ]
      },
      {
        "signature": "LineCurve(LineCurve other)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Initializes a new instance of the <b>LineCurve</b> class, by copying values from another linear curve.",
        "since": "5.0"
      },
      {
        "signature": "LineCurve(Point2d from, Point2d to)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Initializes a new instance of the <b>LineCurve</b> class, by setting start and end point from two <b>Point2d</b> .",
        "since": "5.0",
        "parameters": [
          {
            "name": "from",
            "type": "Point2d",
            "summary": "A start point."
          },
          {
            "name": "to",
            "type": "Point2d",
            "summary": "An end point."
          }
        ]
      },
      {
        "signature": "LineCurve(Point3d from, Point3d to)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Initializes a new instance of the <b>LineCurve</b> class, by setting start and end point from two <b>Point3d</b> .",
        "since": "5.0",
        "parameters": [
          {
            "name": "from",
            "type": "Point3d",
            "summary": "A start point."
          },
          {
            "name": "to",
            "type": "Point3d",
            "summary": "An end point."
          }
        ]
      },
      {
        "signature": "LineCurve(SerializationInfo info, StreamingContext context)",
        "modifiers": ["protected"],
        "protected": true,
        "virtual": false,
        "summary": "Protected constructor used in serialization.",
        "parameters": [
          {
            "name": "info",
            "type": "System.Runtime.Serialization.SerializationInfo",
            "summary": "Serialization data."
          },
          {
            "name": "context",
            "type": "System.Runtime.Serialization.StreamingContext",
            "summary": "Serialization stream."
          }
        ]
      }
    ],
    "properties": [
      {
        "signature": "Line Line",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the Line value inside this curve.",
        "since": "5.0",
        "property": ["get", "set"]
      }
    ]
  },
  {
    "namespace": "Rhino.Geometry",
    "name": "LoftType",
    "dataType": "enum",
    "summary": "Specifies enumerated constants for all supported loft types.",
    "since": "5.0",
    "values": [
      {
        "signature": "Normal = 0",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Uses chord-length parameterization in the loft direction."
      },
      {
        "signature": "Loose = 1",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "The surface is allowed to move away from the original curves to make a smoother surface. The surface control points are created at the same locations as the control points of the loft input curves."
      },
      {
        "signature": "Tight = 2",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "The surface sticks closely to the original curves. Uses square root of chord-length parameterization in the loft direction."
      },
      {
        "signature": "Straight = 3",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "The sections between the curves are straight. This is also known as a ruled surface."
      },
      {
        "signature": "    Developable = 4",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Obsolete, do not use."
      },
      {
        "signature": "Uniform = 5",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Constructs a uniform loft. The object knot vectors will be uniform."
      }
    ]

  },
  {
    "namespace": "Rhino.Geometry",
    "name": "MatchSrfSettings",
    "dataType": "class",
    "summary": "Settings for matching a surface edge to other edge(s)",
    "constructors": [
      {
        "signature": "MatchSrfSettings(Continuity match, Continuity otherEnd)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Constructor",
        "since": "8.21"
      }
    ],
    "properties": [
      {
        "signature": "bool Average",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "If true, change both surfaces",
        "since": "8.21",
        "property": ["get", "set"]
      },
      {
        "signature": "Continuity Continuity",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Match the shape of the edge being edited to the target edge  <b>Continuity.C0_continuous</b> : edge position only  <b>Continuity.G1_continuous</b> : edge position and tangency  <b>Continuity.G2_continuous</b> : edge position, tangency and curvature",
        "since": "8.21",
        "property": ["get", "set"]
      },
      {
        "signature": "bool MatchClosestPoints",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Match the edge to the closest points on the target edge",
        "since": "8.21",
        "property": ["get", "set"]
      },
      {
        "signature": "Continuity OtherEnd",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Maintain the shape of the edge opposite the one being edited  <b>Continuity.None</b> : opposite edge is free to change  <b>Continuity.C0_continuous</b> : opposite edge position only  <b>Continuity.G1_continuous</b> : opposite edge position and tangency  <b>Continuity.G2_continuous</b> : opposite edge position, tangency and curvature",
        "since": "8.21",
        "property": ["get", "set"]
      },
      {
        "signature": "PreserveIsoCurveMethod PreserveIso",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "The way the surface iso-lines align with the target",
        "since": "8.21",
        "property": ["get", "set"]
      },
      {
        "signature": "double RefineAngleToleranceRadians",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Angle between surface normals during refinement",
        "since": "8.21",
        "property": ["get", "set"]
      },
      {
        "signature": "double RefineCurvatureTolerance",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Percentage radius of curvature difference during refinement",
        "since": "8.21",
        "property": ["get", "set"]
      },
      {
        "signature": "bool RefineMatch",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Add control point rows to the surface if necessary",
        "since": "8.21",
        "property": ["get", "set"]
      },
      {
        "signature": "double RefinePositionalTolerance",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Absolute distance tolerance for refinement",
        "since": "8.21",
        "property": ["get", "set"]
      },
      {
        "signature": "bool ReverseAverageTargetDirection",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Reverse the direction of the target for the averaged edge.",
        "since": "8.21",
        "property": ["get", "set"]
      },
      {
        "signature": "bool ReverseMatchDirection",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Reverse the direction of the edge to match.",
        "since": "8.21",
        "property": ["get", "set"]
      }
    ],
    "methods": [
      {
        "signature": "System.Void EnableRefinement(System.Boolean enabled, System.Double positionalTolerance, System.Double angleToleranceRadians, System.Double curvatureTolerance)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Enable refinement of the surface being edited",
        "since": "8.21",
        "parameters": [
          {
            "name": "enabled",
            "type": "System.Boolean",
            "summary": "Switch refinement on or off"
          },
          {
            "name": "positionalTolerance",
            "type": "System.Double",
            "summary": "absolute distance"
          },
          {
            "name": "angleToleranceRadians",
            "type": "System.Double",
            "summary": "angle between surface normals"
          },
          {
            "name": "curvatureTolerance",
            "type": "System.Double",
            "summary": "percentage difference in radius of curvature"
          }
        ]
      }
    ]
  },
  {
    "namespace": "Rhino.Geometry",
    "name": "Matrix",
    "dataType": "class",
    "summary": "Represents an arbitrarily sized matrix of <b>double</b> -precision floating point numbers. If you are working with a 4x4 matrix, then you may want to use the <b>Transform</b> class instead.",
    "interfaces": ["IDisposable"],
    "constructors": [
      {
        "signature": "Matrix(int rowCount, int columnCount)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Initializes a new instance of the matrix.",
        "since": "5.0",
        "parameters": [
          {
            "name": "rowCount",
            "type": "System.Int32",
            "summary": "A positive integer, or 0, for the number of rows."
          },
          {
            "name": "columnCount",
            "type": "System.Int32",
            "summary": "A positive integer, or 0, for the number of columns."
          }
        ]
      },
      {
        "signature": "Matrix(Transform xform)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Initializes a new instance of the matrix based on a 4x4 matrix <b>Transform</b> .",
        "since": "5.0",
        "parameters": [
          {
            "name": "xform",
            "type": "Transform",
            "summary": "A 4x4 matrix to copy from."
          }
        ]
      }
    ],
    "properties": [
      {
        "signature": "int ColumnCount",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the amount of columns.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "bool IsColumnOrthogonal",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets a value indicating whether the matrix is column orthogonal.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "bool IsColumnOrthoNormal",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets a value indicating whether the matrix is column orthonormal.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "bool IsRowOrthogonal",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets a value indicating whether the matrix is row orthogonal.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "bool IsRowOrthoNormal",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets a value indicating whether the matrix is row orthonormal.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "bool IsSquare",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets a value indicating whether this matrix has the same number of rows and columns. 0x0 matrices are not considered square.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "bool IsValid",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets a value indicating whether this matrix is valid.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "int RowCount",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the amount of rows.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "double this[int row]",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the matrix value at the given row and column indices."
      }
    ],
    "methods": [
      {
        "signature": "System.Double[] BackSolve(System.Double zeroTolerance, System.Double[] b)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Solves M*x=b where M is upper triangular with a unit diagonal and b is a column of values.",
        "since": "5.0",
        "parameters": [
          {
            "name": "zeroTolerance",
            "type": "System.Double",
            "summary": "(>=0.0) used to test for \"zero\" values in b in under determined systems of equations."
          },
          {
            "name": "b",
            "type": "System.Double[]",
            "summary": "The values in B[RowCount],...,B[B.Length-1] are tested to make sure they are within \"zeroTolerance\"."
          }
        ],
        "returns": "Array of length ColumnCount on success. None on error."
      },
      {
        "signature": "Point3d[] BackSolvePoints(System.Double zeroTolerance, Point3d[] b)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Solves M*x=b where M is upper triangular with a unit diagonal and b is a column of 3d points.",
        "since": "5.0",
        "parameters": [
          {
            "name": "zeroTolerance",
            "type": "System.Double",
            "summary": "(>=0.0) used to test for \"zero\" values in b in under determined systems of equations."
          },
          {
            "name": "b",
            "type": "Point3d[]",
            "summary": "The values in B[RowCount],...,B[B.Length-1] are tested to make sure they are \"zero\"."
          }
        ],
        "returns": "Array of length ColumnCount on success. None on error."
      },
      {
        "signature": "System.Void Dispose()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Actively reclaims unmanaged resources that this instance uses.",
        "since": "5.0"
      },
      {
        "signature": "System.Void Dispose(System.Boolean disposing)",
        "modifiers": ["protected", "virtual"],
        "protected": true,
        "virtual": true,
        "summary": "For derived class implementers.  \nThis method is called with argument True when class user calls Dispose(), while with argument False when     the Garbage Collector invokes the finalizer, or Finalize() method.  \nYou must reclaim all used unmanaged resources in both cases, and can use this chance to call Dispose on disposable fields if the argument is true.  \nAlso, you must call the base virtual method within your overriding method.",
        "parameters": [
          {
            "name": "disposing",
            "type": "System.Boolean",
            "summary": "True if the call comes from the Dispose() method; False if it comes from the Garbage Collector finalizer."
          }
        ]
      },
      {
        "signature": "Matrix Duplicate()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Create a duplicate of this matrix.",
        "since": "5.1",
        "returns": "An exact duplicate of this matrix."
      },
      {
        "signature": "System.Int32 GetHashCode()",
        "modifiers": ["public", "override"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the hash code for this matrix. The hash code will change when the matrix changes so you cannot change matrices while they are stored in hash tables.",
        "returns": "Hash code."
      },
      {
        "signature": "System.Boolean Invert(System.Double zeroTolerance)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Modifies this matrix to become its own inverse.  \nMatrix might be non-invertible (singular) and the return value will be false.",
        "since": "5.0",
        "parameters": [
          {
            "name": "zeroTolerance",
            "type": "System.Double",
            "summary": "The admitted tolerance for 0."
          }
        ],
        "returns": "True if operation succeeded; otherwise false."
      },
      {
        "signature": "System.Int32 RowReduce(System.Double zeroTolerance, out System.Double determinant, out System.Double pivot)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Row reduces a matrix to calculate rank and determinant.",
        "since": "5.0",
    "remarks": "The matrix itself is row reduced so that the result is an upper triangular matrix with 1's on the diagonal.",
        "parameters": [
          {
            "name": "zeroTolerance",
            "type": "System.Double",
            "summary": "(>=0.0) zero tolerance for pivot test.  If a the absolute value of a pivot is <= zeroTolerance, then the pivot is assumed to be zero."
          },
          {
            "name": "determinant",
            "type": "System.Double",
            "summary": "value of determinant is returned here."
          },
          {
            "name": "pivot",
            "type": "System.Double",
            "summary": "value of the smallest pivot is returned here."
          }
        ],
        "returns": "Rank of the matrix."
      },
      {
        "signature": "System.Int32 RowReduce(System.Double zeroTolerance, Point3d[] b, out System.Double pivot)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Row reduces a matrix as the first step in solving M*X=b where b is a column of 3d points.",
        "since": "5.0",
    "remarks": "The matrix itself is row reduced so that the result is an upper triangular matrix with 1's on the diagonal.",
        "parameters": [
          {
            "name": "zeroTolerance",
            "type": "System.Double",
            "summary": "(>=0.0) zero tolerance for pivot test. If the absolute value of a pivot is <= zero_tolerance, then the pivot is assumed to be zero."
          },
          {
            "name": "b",
            "type": "Point3d[]",
            "summary": "An array of RowCount 3d points that is row reduced with the matrix."
          },
          {
            "name": "pivot",
            "type": "System.Double",
            "summary": "The value of the smallest pivot is returned here."
          }
        ],
        "returns": "Rank of the matrix."
      },
      {
        "signature": "System.Int32 RowReduce(System.Double zeroTolerance, System.Double[] b, out System.Double pivot)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Row reduces a matrix as the first step in solving M*X=b where b is a column of values.",
        "since": "5.0",
    "remarks": "The matrix itself is row reduced so that the result is an upper triangular matrix with 1's on the diagonal.",
        "parameters": [
          {
            "name": "zeroTolerance",
            "type": "System.Double",
            "summary": "(>=0.0) zero tolerance for pivot test. If the absolute value of a pivot is <= zero_tolerance, then the pivot is assumed to be zero."
          },
          {
            "name": "b",
            "type": "System.Double[]",
            "summary": "an array of RowCount values that is row reduced with the matrix."
          },
          {
            "name": "pivot",
            "type": "System.Double",
            "summary": "the value of the smallest pivot is returned here."
          }
        ],
        "returns": "Rank of the matrix."
      },
      {
        "signature": "System.Void Scale(System.Double s)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Modifies the current matrix by multiplying its values by a number.",
        "since": "5.0",
        "parameters": [
          {
            "name": "s",
            "type": "System.Double",
            "summary": "A scale factor."
          }
        ]
      },
      {
        "signature": "System.Void SetDiagonal(System.Double d)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Sets diagonal value and zeros off all non-diagonal values.",
        "since": "5.0",
        "parameters": [
          {
            "name": "d",
            "type": "System.Double",
            "summary": "The new diagonal value."
          }
        ]
      },
      {
        "signature": "System.Boolean SwapColumns(System.Int32 columnA, System.Int32 columnB)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Exchanges two columns.",
        "since": "5.0",
        "parameters": [
          {
            "name": "columnA",
            "type": "System.Int32",
            "summary": "A first column."
          },
          {
            "name": "columnB",
            "type": "System.Int32",
            "summary": "Another column."
          }
        ],
        "returns": "True if operation succeeded; otherwise false."
      },
      {
        "signature": "System.Boolean SwapRows(System.Int32 rowA, System.Int32 rowB)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Exchanges two rows.",
        "since": "5.0",
        "parameters": [
          {
            "name": "rowA",
            "type": "System.Int32",
            "summary": "A first row."
          },
          {
            "name": "rowB",
            "type": "System.Int32",
            "summary": "Another row."
          }
        ],
        "returns": "True if operation succeeded; otherwise false."
      },
      {
        "signature": "System.Boolean Transpose()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Modifies this matrix to be its transpose.  \nThis is like swapping rows with columns.  \nhttp://en.wikipedia.org/wiki/Transpose",
        "since": "5.0",
        "returns": "True if operation succeeded; otherwise false."
      },
      {
        "signature": "System.Void Zero()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Sets all values inside the matrix to zero.",
        "since": "5.0"
      }
    ],
    "operators": [
      {
        "signature": "Matrix operator *(Matrix a, Matrix b)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Multiplies two matrices and returns a new product matrix.",
        "since": "5.0",
        "parameters": [
          {
            "name": "a",
            "type": "Matrix",
            "summary": "A first matrix to use in calculation."
          },
          {
            "name": "b",
            "type": "Matrix",
            "summary": "Another matrix to use in calculation."
          }
        ]
      },
      {
        "signature": "Matrix operator +(Matrix a, Matrix b)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Adds two matrices and returns a new sum matrix.",
        "parameters": [
          {
            "name": "a",
            "type": "Matrix",
            "summary": "A first matrix to use in calculation."
          },
          {
            "name": "b",
            "type": "Matrix",
            "summary": "Another matrix to use in calculation."
          }
        ]
      }
    ]

  },
  {
    "namespace": "Rhino.Geometry",
    "name": "Mesh",
    "dataType": "class",
    "summary": "Represents a geometry type that is defined by vertices and faces.  \nThis is often called a face-vertex mesh.",
    "baseclass": "Rhino.Geometry.GeometryBase",
    "constructors": [
      {
        "signature": "Mesh()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Initializes a new empty mesh.",
        "since": "5.0"
      },
      {
        "signature": "Mesh(SerializationInfo info, StreamingContext context)",
        "modifiers": ["protected"],
        "protected": true,
        "virtual": false,
        "summary": "Protected constructor for internal use.",
        "parameters": [
          {
            "name": "info",
            "type": "System.Runtime.Serialization.SerializationInfo",
            "summary": "Serialization data."
          },
          {
            "name": "context",
            "type": "System.Runtime.Serialization.StreamingContext",
            "summary": "Serialization stream."
          }
        ]
      }
    ],
    "properties": [
      {
        "signature": "MeshVertexStatusList ComponentStates",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets access to the vertex hidden/visibility collection in this mesh. This is a runtime property and it is not saved in the 3dm file.",
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "int DisjointMeshCount",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the number of disjoint (topologically unconnected) pieces in this mesh.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "MeshFaceNormalList FaceNormals",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets access to the face normal collection in this mesh.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "MeshFaceList Faces",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets access to the mesh face list.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "bool HasCachedTextureCoordinates",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Will return True if SetCachedTextureCoordinates has been called; otherwise will return false.",
        "since": "5.10",
        "property": ["get"]
      },
      {
        "signature": "bool HasPrincipalCurvatures",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "HasPrincipalCurvatures",
        "since": "7.0",
        "property": ["get"]
      },
      {
        "signature": "bool IsClosed",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns True if every mesh \"edge\" has two or more faces.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "bool IsOriented",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns True if the mesh is manifold and every pair of faces that share an \"edge\" have compatible orientations.",
        "since": "7.6",
        "property": ["get"]
      },
      {
        "signature": "bool IsSolid",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns True if the mesh is solid. A \"solid\" is a closed oriented manifold.",
        "since": "7.6",
        "property": ["get"]
      },
      {
        "signature": "MeshNgonList Ngons",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets access to the mesh ngon list.  \nNgons represent groups of Faces (triangles + quads).  \nFaces are used to tessellate an Ngon internally.  \nWhen a triangle or quad is referenced in the Ngon list, it is no longer visualized and     conceived as a single entity, but takes part of the Ngon.  \nIf you need to get access to both Ngons and the faces that are not referenced by Ngons,     that is, all polygons that are visible in the mesh, then use the      helper method.",
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "MeshVertexNormalList Normals",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets access to the vertex normal collection in this mesh.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "int PartitionCount",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Number of partition information chunks stored on this mesh based on the last call to CreatePartitions",
        "since": "5.6",
        "property": ["get"]
      },
      {
        "signature": "MeshPrincipalCurvatureList PrincipalCurvatures",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets access to the (optional) principal curvatures list in this mesh. Principal curvatures are found on analysis meshes, not render meshes.",
        "since": "9.0",
        "property": ["get"]
      },
      {
        "signature": "MeshTextureCoordinateList TextureCoordinates",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets access to the vertex texture coordinate collection in this mesh.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "MeshTopologyEdgeList TopologyEdges",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the <b>Rhino.Geometry.Collections.MeshTopologyEdgeList</b> object associated with this mesh.  \nThis object stores edge connectivity.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "MeshTopologyVertexList TopologyVertices",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the <b>Rhino.Geometry.Collections.MeshTopologyVertexList</b> object associated with this mesh.  \nThis object stores vertex connectivity and the indices of vertices     that were unified while computing the edge topology.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "MeshVertexColorList VertexColors",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets access to the (optional) vertex color collection in this mesh.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "MeshVertexList Vertices",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets access to the vertices set of this mesh.",
        "since": "5.0",
        "property": ["get"]
      }
    ],
    "methods": [
      {
        "signature": "MeshThicknessMeasurement[] ComputeThickness(IEnumerable<Mesh> meshes, System.Double maximumThickness, System.Double sharpAngle, System.Threading.CancellationToken cancelToken)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Compute thickness metrics for this mesh.",
        "since": "6.0",
        "parameters": [
          {
            "name": "meshes",
            "type": "IEnumerable<Mesh>",
            "summary": "Meshes to include in thickness analysis."
          },
          {
            "name": "maximumThickness",
            "type": "System.Double",
            "summary": "Maximum thickness to consider. Use as small a thickness as possible to speed up the solver."
          },
          {
            "name": "sharpAngle",
            "type": "System.Double",
            "summary": "Sharpness angle in radians."
          },
          {
            "name": "cancelToken",
            "type": "System.Threading.CancellationToken",
            "summary": "Computation cancellation token."
          }
        ],
        "returns": "Array of thickness measurements."
      },
      {
        "signature": "MeshThicknessMeasurement[] ComputeThickness(IEnumerable<Mesh> meshes, System.Double maximumThickness, System.Threading.CancellationToken cancelToken)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Compute thickness metrics for this mesh.",
        "since": "6.0",
        "parameters": [
          {
            "name": "meshes",
            "type": "IEnumerable<Mesh>",
            "summary": "Meshes to include in thickness analysis."
          },
          {
            "name": "maximumThickness",
            "type": "System.Double",
            "summary": "Maximum thickness to consider. Use as small a thickness as possible to speed up the solver."
          },
          {
            "name": "cancelToken",
            "type": "System.Threading.CancellationToken",
            "summary": "Computation cancellation token."
          }
        ],
        "returns": "Array of thickness measurements."
      },
      {
        "signature": "MeshThicknessMeasurement[] ComputeThickness(IEnumerable<Mesh> meshes, System.Double maximumThickness)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Compute thickness metrics for this mesh.",
        "since": "6.0",
        "parameters": [
          {
            "name": "meshes",
            "type": "IEnumerable<Mesh>",
            "summary": "Meshes to include in thickness analysis."
          },
          {
            "name": "maximumThickness",
            "type": "System.Double",
            "summary": "Maximum thickness to consider. Use as small a thickness as possible to speed up the solver."
          }
        ],
        "returns": "Array of thickness measurements."
      },
      {
        "signature": "Mesh[] CreateBooleanDifference(IEnumerable<Mesh> firstSet, IEnumerable<Mesh> secondSet, MeshBooleanOptions options, out Commands.Result result, out int[] inputMap)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Computes the solid difference of two sets of meshes and reports which inputs contributed to each output.",
        "since": "9.0",
        "parameters": [
          {
            "name": "firstSet",
            "type": "IEnumerable<Mesh>",
            "summary": "First set of Meshes (the set to subtract from)."
          },
          {
            "name": "secondSet",
            "type": "IEnumerable<Mesh>",
            "summary": "Second set of Meshes (the set to subtract)."
          },
          {
            "name": "options",
            "type": "MeshBooleanOptions",
            "summary": "An option instance. Should have a valid Tolerance set."
          },
          {
            "name": "result",
            "type": "Commands.Result",
            "summary": "Indicates if the function succeeded, was cancelled, did nothing, or failed."
          },
          {
            "name": "inputMap",
            "type": "int[]",
            "summary": "On success, one array per output mesh (parallel to the returned array), listing the indices of the input meshes that contributed faces to that output. The index space is flat-concatenated: occupies 0..n0-1 andoccupies n0..n0+n1-1, in enumeration order; None inputs are skipped and not assigned an index. Null when the function fails."
          }
        ],
        "returns": "An array of Mesh results or None on failure."
      },
      {
        "signature": "Mesh[] CreateBooleanDifference(IEnumerable<Mesh> firstSet, IEnumerable<Mesh> secondSet, MeshBooleanOptions options, out Commands.Result result)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Computes the solid difference of two sets of Meshes.",
        "since": "8.0",
        "parameters": [
          {
            "name": "firstSet",
            "type": "IEnumerable<Mesh>",
            "summary": "First set of Meshes (the set to subtract from)."
          },
          {
            "name": "secondSet",
            "type": "IEnumerable<Mesh>",
            "summary": "Second set of Meshes (the set to subtract)."
          },
          {
            "name": "options",
            "type": "MeshBooleanOptions",
            "summary": "An option instance. Should have a valid Tolerance set."
          },
          {
            "name": "result",
            "type": "Commands.Result",
            "summary": "Indicates if the function succeeded, was cancelled, did nothing, or failed."
          }
        ],
        "returns": "An array of Mesh results or None on failure."
      },
      {
        "signature": "Mesh[] CreateBooleanDifference(IEnumerable<Mesh> firstSet, IEnumerable<Mesh> secondSet)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Computes the solid difference of two sets of Meshes.",
        "since": "5.0",
        "parameters": [
          {
            "name": "firstSet",
            "type": "IEnumerable<Mesh>",
            "summary": "First set of Meshes (the set to subtract from)."
          },
          {
            "name": "secondSet",
            "type": "IEnumerable<Mesh>",
            "summary": "Second set of Meshes (the set to subtract)."
          }
        ],
        "returns": "An array of Mesh results or None on failure."
      },
      {
        "signature": "Mesh[] CreateBooleanIntersection(IEnumerable<Mesh> firstSet, IEnumerable<Mesh> secondSet, MeshBooleanOptions options, out Result result, out int[] inputMap)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Computes the solid intersection of two sets of meshes and reports which inputs contributed to each output.",
        "since": "9.0",
        "parameters": [
          {
            "name": "firstSet",
            "type": "IEnumerable<Mesh>",
            "summary": "First set of Meshes."
          },
          {
            "name": "secondSet",
            "type": "IEnumerable<Mesh>",
            "summary": "Second set of Meshes."
          },
          {
            "name": "options",
            "type": "MeshBooleanOptions",
            "summary": "The boolean option instance, or null."
          },
          {
            "name": "result",
            "type": "Result",
            "summary": "A value indicating success, or cancel, or failure, or nothing."
          },
          {
            "name": "inputMap",
            "type": "int[]",
            "summary": "On success, one array per output mesh (parallel to the returned array), listing the indices of the input meshes that contributed faces to that output. The index space is flat-concatenated: occupies 0..n0-1 andoccupies n0..n0+n1-1, in enumeration order; None inputs are skipped and not assigned an index. Null when the function fails."
          }
        ],
        "returns": "An array of Mesh results or None on failure."
      },
      {
        "signature": "Mesh[] CreateBooleanIntersection(IEnumerable<Mesh> firstSet, IEnumerable<Mesh> secondSet, MeshBooleanOptions options, out Result result)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Computes the solid intersection of two sets of meshes.",
        "since": "5.0",
        "parameters": [
          {
            "name": "firstSet",
            "type": "IEnumerable<Mesh>",
            "summary": "First set of Meshes."
          },
          {
            "name": "secondSet",
            "type": "IEnumerable<Mesh>",
            "summary": "Second set of Meshes."
          },
          {
            "name": "options",
            "type": "MeshBooleanOptions",
            "summary": "The boolean option instance, or null."
          },
          {
            "name": "result",
            "type": "Result",
            "summary": "A value indicating success, or cancel, or failure, or nothing."
          }
        ],
        "returns": "An array of Mesh results or None on failure."
      },
      {
        "signature": "Mesh[] CreateBooleanIntersection(IEnumerable<Mesh> firstSet, IEnumerable<Mesh> secondSet)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Computes the solid intersection of two sets of meshes.",
        "since": "5.0",
        "parameters": [
          {
            "name": "firstSet",
            "type": "IEnumerable<Mesh>",
            "summary": "First set of Meshes."
          },
          {
            "name": "secondSet",
            "type": "IEnumerable<Mesh>",
            "summary": "Second set of Meshes."
          }
        ],
        "returns": "An array of Mesh results or None on failure."
      },
      {
        "signature": "Mesh[] CreateBooleanSplit(IEnumerable<Mesh> meshesToSplit, IEnumerable<Mesh> meshSplitters, MeshBooleanOptions options, out Result result, out int[] inputMap)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Splits a set of meshes with another set and reports which inputs contributed to each output.",
        "since": "9.0",
        "parameters": [
          {
            "name": "meshesToSplit",
            "type": "IEnumerable<Mesh>",
            "summary": "A list, an array, or any enumerable set of meshes to be split."
          },
          {
            "name": "meshSplitters",
            "type": "IEnumerable<Mesh>",
            "summary": "A list, an array, or any enumerable set of meshes that cut."
          },
          {
            "name": "options",
            "type": "MeshBooleanOptions",
            "summary": "The boolean option instance, or null."
          },
          {
            "name": "result",
            "type": "Result",
            "summary": "A value indicating success, or cancel, or failure, or nothing."
          },
          {
            "name": "inputMap",
            "type": "int[]",
            "summary": "On success, one array per output mesh (parallel to the returned array), listing the indices of the input meshes that contributed faces to that output. The index space is flat-concatenated: occupies 0..n0-1 andoccupies n0..n0+n1-1, in enumeration order; None inputs are skipped and not assigned an index. Null when the function fails."
          }
        ],
        "returns": "A new mesh array, or None on error."
      },
      {
        "signature": "Mesh[] CreateBooleanSplit(IEnumerable<Mesh> meshesToSplit, IEnumerable<Mesh> meshSplitters, MeshBooleanOptions options, out Result result)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Splits a set of meshes with another set.",
        "since": "5.0",
        "parameters": [
          {
            "name": "meshesToSplit",
            "type": "IEnumerable<Mesh>",
            "summary": "A list, an array, or any enumerable set of meshes to be split. If this is null, None will be returned."
          },
          {
            "name": "meshSplitters",
            "type": "IEnumerable<Mesh>",
            "summary": "A list, an array, or any enumerable set of meshes that cut. If this is null, None will be returned."
          },
          {
            "name": "options",
            "type": "MeshBooleanOptions",
            "summary": "The boolean option instance, or null."
          },
          {
            "name": "result",
            "type": "Result",
            "summary": "A value indicating success, or cancel, or failure, or nothing."
          }
        ],
        "returns": "A new mesh array, or None on error."
      },
      {
        "signature": "Mesh[] CreateBooleanSplit(IEnumerable<Mesh> meshesToSplit, IEnumerable<Mesh> meshSplitters)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Splits a set of meshes with another set.",
        "since": "5.0",
        "parameters": [
          {
            "name": "meshesToSplit",
            "type": "IEnumerable<Mesh>",
            "summary": "A list, an array, or any enumerable set of meshes to be split. If this is null, None will be returned."
          },
          {
            "name": "meshSplitters",
            "type": "IEnumerable<Mesh>",
            "summary": "A list, an array, or any enumerable set of meshes that cut. If this is null, None will be returned."
          }
        ],
        "returns": "A new mesh array, or None on error."
      },
      {
        "signature": "Mesh[] CreateBooleanUnion(IEnumerable<Mesh> meshes, MeshBooleanOptions options, out Commands.Result commandResult, out int[] inputMap)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Computes the solid union of a set of meshes and reports which inputs contributed to each output.",
        "since": "9.0",
        "parameters": [
          {
            "name": "meshes",
            "type": "IEnumerable<Mesh>",
            "summary": "Meshes to union."
          },
          {
            "name": "options",
            "type": "MeshBooleanOptions",
            "summary": "An option instance. Can be null, but generally it should be instantiated and have a tolerance set."
          },
          {
            "name": "commandResult",
            "type": "Commands.Result",
            "summary": "A value indicating if the function was successful, or if it was cancelled, or if it did nothing, or failed."
          },
          {
            "name": "inputMap",
            "type": "int[]",
            "summary": "On success, one array per output mesh (parallel to the returned array), listing the indices of the input meshes that contributed faces to that output. Indices refer toin enumeration order; None inputs are skipped and not assigned an index. Null when the function fails."
          }
        ],
        "returns": "An array of Mesh results or None on failure."
      },
      {
        "signature": "Mesh[] CreateBooleanUnion(IEnumerable<Mesh> meshes, MeshBooleanOptions options, out Commands.Result commandResult)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Computes the solid union of a set of meshes.",
        "since": "8.0",
        "parameters": [
          {
            "name": "meshes",
            "type": "IEnumerable<Mesh>",
            "summary": "Meshes to union."
          },
          {
            "name": "options",
            "type": "MeshBooleanOptions",
            "summary": "An option instance. Can be null, but generally it should be instantiated and have a tolerance set."
          },
          {
            "name": "commandResult",
            "type": "Commands.Result",
            "summary": "A value indicating if the function was successful, or if it was cancelled, or if it did nothing, or failed."
          }
        ]
      },
      {
        "signature": "Mesh[] CreateBooleanUnion(IEnumerable<Mesh> meshes, System.Double tolerance)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Computes the solid union of a set of meshes.",
        "since": "8.0",
        "parameters": [
          {
            "name": "meshes",
            "type": "IEnumerable<Mesh>",
            "summary": "Meshes to union."
          },
          {
            "name": "tolerance",
            "type": "System.Double",
            "summary": "A valid tolerance value. See <b>Intersect.Intersection.MeshIntersectionsTolerancesCoefficient</b>"
          }
        ],
        "returns": "An array of Mesh results or None on failure."
      },
      {
        "signature": "Mesh[] CreateBooleanUnion(IEnumerable<Mesh> meshes)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Computes the solid union of a set of meshes. WARNING: Use the overload that takes a tolerance or options.",
        "since": "5.0",
        "parameters": [
          {
            "name": "meshes",
            "type": "IEnumerable<Mesh>",
            "summary": "Meshes to union."
          }
        ],
        "returns": "An array of Mesh results or None on failure."
      },
      {
        "signature": "Curve[] CreateContourCurves(Mesh meshToContour, Plane sectionPlane, System.Double tolerance)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Constructs contour curves for a mesh, sectioned at a plane.",
        "since": "7.13",
        "parameters": [
          {
            "name": "meshToContour",
            "type": "Mesh",
            "summary": "A mesh to contour."
          },
          {
            "name": "sectionPlane",
            "type": "Plane",
            "summary": "A cutting plane."
          },
          {
            "name": "tolerance",
            "type": "System.Double",
            "summary": "A tolerance value. If negative, the positive value will be used. WARNING! Good tolerance values are in the magnitude of 10^-7, or RhinoMath.SqrtEpsilon*10. See comments at <b>Intersect.Intersection.MeshIntersectionsTolerancesCoefficient</b>"
          }
        ],
        "returns": "An array of curves. This array can be empty."
      },
      {
        "signature": "Curve[] CreateContourCurves(Mesh meshToContour, Plane sectionPlane)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "(Old call maintained for compatibility.)",
        "since": "5.0",
        "deprecated": "7.13",
        "obsolete": "Prefer the option that takes a tolerance value.",
        "parameters": [
          {
            "name": "meshToContour",
            "type": "Mesh",
            "summary": "Avoid."
          },
          {
            "name": "sectionPlane",
            "type": "Plane",
            "summary": "Avoid."
          }
        ],
        "returns": "Avoid."
      },
      {
        "signature": "Curve[] CreateContourCurves(Mesh meshToContour, Point3d contourStart, Point3d contourEnd, System.Double interval, System.Double tolerance)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Constructs contour curves for a mesh, sectioned along a linear axis.",
        "since": "7.13",
        "parameters": [
          {
            "name": "meshToContour",
            "type": "Mesh",
            "summary": "A mesh to contour."
          },
          {
            "name": "contourStart",
            "type": "Point3d",
            "summary": "A start point of the contouring axis."
          },
          {
            "name": "contourEnd",
            "type": "Point3d",
            "summary": "An end point of the contouring axis."
          },
          {
            "name": "interval",
            "type": "System.Double",
            "summary": "An interval distance."
          },
          {
            "name": "tolerance",
            "type": "System.Double",
            "summary": "A tolerance value. If negative, the positive value will be used. WARNING! Good tolerance values are in the magnitude of 10^-7, or RhinoMath.SqrtEpsilon*10. See comments at <b>Intersect.Intersection.MeshIntersectionsTolerancesCoefficient</b>"
          }
        ],
        "returns": "An array of curves. This array can be empty."
      },
      {
        "signature": "Curve[] CreateContourCurves(Mesh meshToContour, Point3d contourStart, Point3d contourEnd, System.Double interval)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "(Old call maintained for compatibility.)",
        "since": "5.0",
        "deprecated": "7.13",
        "obsolete": "Prefer the overload that takes a tolerance value.",
        "parameters": [
          {
            "name": "meshToContour",
            "type": "Mesh",
            "summary": "Avoid."
          },
          {
            "name": "contourStart",
            "type": "Point3d",
            "summary": "Avoid."
          },
          {
            "name": "contourEnd",
            "type": "Point3d",
            "summary": "Avoid."
          },
          {
            "name": "interval",
            "type": "System.Double",
            "summary": "Avoid."
          }
        ],
        "returns": "Avoid."
      },
      {
        "signature": "Mesh CreateConvexHull3D(IEnumerable<Point3d> points, out int[] hullFacets, System.Double tolerance, System.Double angleTolerance)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Attempts to create a 3d convex hull mesh from input points.",
        "since": "8.5",
        "parameters": [
          {
            "name": "points",
            "type": "IEnumerable<Point3d>",
            "summary": "The 3D input points to be covered with the convex hull. These points must not be coplanar."
          },
          {
            "name": "hullFacets",
            "type": "int[]",
            "summary": "An out parameter of jagged array of indices into the argument point enumerable. Each list item specifies the indices that make up a facet of the convex hull. These indices are not indices into the resulting mesh's indices. Can be the empty jagged array if the resulting mesh is null."
          },
          {
            "name": "tolerance",
            "type": "System.Double",
            "summary": "The tolerance used to decide if points are coplanar or not. Use the document's tolerance if in doubt."
          },
          {
            "name": "angleTolerance",
            "type": "System.Double",
            "summary": "The angle tolerance used for merging coplanar points into facets. Use the document's angle tolerance in radians if in doubt."
          }
        ],
        "returns": "A valid mesh if successful. If there were too few input points, or the input was coplanar up to the specified tolerance, the result can be null."
      },
      {
        "signature": "Mesh CreateExtrusion(Curve profile, Vector3d direction, MeshingParameters parameters)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Constructs a mesh by extruding a curve along a vector.",
        "since": "8.0",
        "parameters": [
          {
            "name": "profile",
            "type": "Curve",
            "summary": "Profile curve to extrude."
          },
          {
            "name": "direction",
            "type": "Vector3d",
            "summary": "Direction and length of extrusion."
          },
          {
            "name": "parameters",
            "type": "MeshingParameters",
            "summary": "Parameters used to create the mesh."
          }
        ],
        "returns": "A mesh on success or None on failure."
      },
      {
        "signature": "Mesh CreateExtrusion(Curve profile, Vector3d direction)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Constructs a mesh by extruding a curve along a vector.",
        "since": "8.0",
        "parameters": [
          {
            "name": "profile",
            "type": "Curve",
            "summary": "Profile curve to extrude."
          },
          {
            "name": "direction",
            "type": "Vector3d",
            "summary": "Direction and length of extrusion."
          }
        ],
        "returns": "A mesh on success or None on failure."
      },
      {
        "signature": "Mesh CreateFromBox(BoundingBox box, System.Int32 xCount, System.Int32 yCount, System.Int32 zCount)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Constructs new mesh that matches a bounding box.",
        "since": "5.6",
        "parameters": [
          {
            "name": "box",
            "type": "BoundingBox",
            "summary": "A box to use for creation."
          },
          {
            "name": "xCount",
            "type": "System.Int32",
            "summary": "Number of faces in x-direction."
          },
          {
            "name": "yCount",
            "type": "System.Int32",
            "summary": "Number of faces in y-direction."
          },
          {
            "name": "zCount",
            "type": "System.Int32",
            "summary": "Number of faces in z-direction."
          }
        ],
        "returns": "A new brep, or None on failure."
      },
      {
        "signature": "Mesh CreateFromBox(Box box, System.Int32 xCount, System.Int32 yCount, System.Int32 zCount)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Constructs new mesh that matches an aligned box.",
        "since": "5.3",
        "parameters": [
          {
            "name": "box",
            "type": "Box",
            "summary": "Box to match."
          },
          {
            "name": "xCount",
            "type": "System.Int32",
            "summary": "Number of faces in x-direction."
          },
          {
            "name": "yCount",
            "type": "System.Int32",
            "summary": "Number of faces in y-direction."
          },
          {
            "name": "zCount",
            "type": "System.Int32",
            "summary": "Number of faces in z-direction."
          }
        ]
      },
      {
        "signature": "Mesh CreateFromBox(IEnumerable<Point3d> corners, System.Int32 xCount, System.Int32 yCount, System.Int32 zCount)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Constructs new mesh from 8 corner points.",
        "since": "5.3",
        "parameters": [
          {
            "name": "corners",
            "type": "IEnumerable<Point3d>",
            "summary": "8 points defining the box corners arranged as the vN labels indicate. <pre>v7_____________v6  \n|\\             |\\  \n| \\            | \\  \n|  \\ _____________\\  \n|   v4         |   v5  \n|   |          |   |  \n|   |          |   |  \nv3--|----------v2  |  \n \\  |           \\  |  \n  \\ |            \\ |  \n   \\|             \\|  \n    v0_____________v1</pre>"
          },
          {
            "name": "xCount",
            "type": "System.Int32",
            "summary": "Number of faces in x-direction."
          },
          {
            "name": "yCount",
            "type": "System.Int32",
            "summary": "Number of faces in y-direction."
          },
          {
            "name": "zCount",
            "type": "System.Int32",
            "summary": "Number of faces in z-direction."
          }
        ],
        "returns": "A new brep, or None on failure."
      },
      {
        "signature": "Mesh[] CreateFromBrep(Brep brep, MeshingParameters meshingParameters)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Constructs a mesh from a brep.",
        "since": "5.0",
        "parameters": [
          {
            "name": "brep",
            "type": "Brep",
            "summary": "Brep to approximate."
          },
          {
            "name": "meshingParameters",
            "type": "MeshingParameters",
            "summary": "Parameters to use during meshing."
          }
        ],
        "returns": "An array of meshes."
      },
      {
        "signature": "Mesh[] CreateFromBrep(Brep brep)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Constructs a mesh from a brep.",
        "since": "5.0",
        "deprecated": "6.0",
        "obsolete": "Use version that takes MeshingParameters as input",
        "parameters": [
          {
            "name": "brep",
            "type": "Brep",
            "summary": "Brep to approximate."
          }
        ],
        "returns": "An array of meshes."
      },
      {
        "signature": "Mesh CreateFromClosedPolyline(Polyline polyline)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Attempts to create a Mesh that is a triangulation of a simple closed polyline that projects onto a plane.",
        "since": "5.0",
        "parameters": [
          {
            "name": "polyline",
            "type": "Polyline",
            "summary": "must be closed"
          }
        ],
        "returns": "New mesh on success or None on failure."
      },
      {
        "signature": "Mesh CreateFromCone(Cone cone, System.Int32 vertical, System.Int32 around, System.Boolean solid, System.Boolean quadCaps)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Constructs a mesh cone.",
        "since": "7.0",
        "parameters": [
          {
            "name": "cone",
            "type": "Cone",
            "summary": ""
          },
          {
            "name": "vertical",
            "type": "System.Int32",
            "summary": "Number of faces in the top-to-bottom direction."
          },
          {
            "name": "around",
            "type": "System.Int32",
            "summary": "Number of faces around the cone."
          },
          {
            "name": "solid",
            "type": "System.Boolean",
            "summary": "If False the mesh will be open with no faces on the circular planar portion."
          },
          {
            "name": "quadCaps",
            "type": "System.Boolean",
            "summary": "If True and it's possible to make quad caps, i.e.. around is even, then caps will have quad faces."
          }
        ],
        "returns": "A valid mesh if successful."
      },
      {
        "signature": "Mesh CreateFromCone(Cone cone, System.Int32 vertical, System.Int32 around, System.Boolean solid)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Constructs a mesh cone.",
        "since": "6.8",
        "parameters": [
          {
            "name": "cone",
            "type": "Cone",
            "summary": ""
          },
          {
            "name": "vertical",
            "type": "System.Int32",
            "summary": "Number of faces in the top-to-bottom direction."
          },
          {
            "name": "around",
            "type": "System.Int32",
            "summary": "Number of faces around the cone."
          },
          {
            "name": "solid",
            "type": "System.Boolean",
            "summary": "If False the mesh will be open with no faces on the circular planar portion."
          }
        ],
        "returns": "A valid mesh if successful."
      },
      {
        "signature": "Mesh CreateFromCone(Cone cone, System.Int32 vertical, System.Int32 around)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Constructs a solid mesh cone.",
        "since": "5.0",
        "parameters": [
          {
            "name": "cone",
            "type": "Cone",
            "summary": ""
          },
          {
            "name": "vertical",
            "type": "System.Int32",
            "summary": "Number of faces in the top-to-bottom direction."
          },
          {
            "name": "around",
            "type": "System.Int32",
            "summary": "Number of faces around the cone."
          }
        ],
        "returns": "A valid mesh if successful."
      },
      {
        "signature": "Mesh CreateFromCurveExtrusion(Curve curve, Vector3d direction, MeshingParameters parameters, BoundingBox boundingBox)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Constructs a mesh from an extruded curve. This method is designed for projecting curves onto a mesh. In most cases, a better to use <b>Mesh.CreateExtrusion(Curve, Vector3d)</b> .",
        "since": "7.0",
        "parameters": [
          {
            "name": "curve",
            "type": "Curve",
            "summary": "A curve to extrude."
          },
          {
            "name": "direction",
            "type": "Vector3d",
            "summary": "The direction of extrusion."
          },
          {
            "name": "parameters",
            "type": "MeshingParameters",
            "summary": "The parameters of meshing."
          },
          {
            "name": "boundingBox",
            "type": "BoundingBox",
            "summary": "The bounding box controls the length of the extrusion."
          }
        ],
        "returns": "A new mesh, or None on failure."
      },
      {
        "signature": "Mesh CreateFromCurvePipe(Curve curve, System.Double radius, System.Int32 segments, System.Int32 accuracy, MeshPipeCapStyle capType, System.Boolean faceted, IEnumerable<Interval> intervals)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Constructs a new mesh pipe from a curve.",
        "since": "6.0",
        "parameters": [
          {
            "name": "curve",
            "type": "Curve",
            "summary": "A curve to pipe."
          },
          {
            "name": "radius",
            "type": "System.Double",
            "summary": "The radius of the pipe, a measure from the curve to the surface of the mesh pipe."
          },
          {
            "name": "segments",
            "type": "System.Int32",
            "summary": "The number of mesh faces that surround the curve. For example with three segments, the cross-section of the pipe looks like an equilateral triangle. The more segments there are, the rounder the pipe is."
          },
          {
            "name": "accuracy",
            "type": "System.Int32",
            "summary": "The accuracy of the pipe. Changes the visual fidelity of the pipe along the curve. Higher value means that the center of the pipe is closer to the curve. By increasing the accuracy, the mesh will get more faces along the curve."
          },
          {
            "name": "capType",
            "type": "MeshPipeCapStyle",
            "summary": "The type of cap to be created at the end of the pipe."
          },
          {
            "name": "faceted",
            "type": "System.Boolean",
            "summary": "Specifies whether the pipe is faceted, or not. This setting only affects the normals of the pipe mesh."
          },
          {
            "name": "intervals",
            "type": "IEnumerable<Interval>",
            "summary": "A series of intervals to pipe, or None to pipe the entire curve."
          }
        ],
        "returns": "A new mesh if successful, or None on failure."
      },
      {
        "signature": "Mesh CreateFromCylinder(Cylinder cylinder, System.Int32 vertical, System.Int32 around, System.Boolean capBottom, System.Boolean capTop, System.Boolean circumscribe, System.Boolean quadCaps)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Constructs a mesh cylinder.",
        "since": "7.0",
        "parameters": [
          {
            "name": "cylinder",
            "type": "Cylinder",
            "summary": ""
          },
          {
            "name": "vertical",
            "type": "System.Int32",
            "summary": "Number of faces in the top-to-bottom direction."
          },
          {
            "name": "around",
            "type": "System.Int32",
            "summary": "Number of faces around the cylinder."
          },
          {
            "name": "capBottom",
            "type": "System.Boolean",
            "summary": "If True end at Cylinder.Height1 should be capped."
          },
          {
            "name": "capTop",
            "type": "System.Boolean",
            "summary": "If True end at Cylinder.Height2 should be capped."
          },
          {
            "name": "circumscribe",
            "type": "System.Boolean",
            "summary": "If True end polygons will circumscribe circle."
          },
          {
            "name": "quadCaps",
            "type": "System.Boolean",
            "summary": "If True and it's possible to make quad caps, i.e.. around is even, then caps will have quad faces."
          }
        ],
        "returns": "Returns a mesh cylinder if successful, None otherwise."
      },
      {
        "signature": "Mesh CreateFromCylinder(Cylinder cylinder, System.Int32 vertical, System.Int32 around, System.Boolean capBottom, System.Boolean capTop, System.Boolean quadCaps)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Constructs a mesh cylinder.",
        "since": "7.0",
        "parameters": [
          {
            "name": "cylinder",
            "type": "Cylinder",
            "summary": ""
          },
          {
            "name": "vertical",
            "type": "System.Int32",
            "summary": "Number of faces in the top-to-bottom direction."
          },
          {
            "name": "around",
            "type": "System.Int32",
            "summary": "Number of faces around the cylinder."
          },
          {
            "name": "capBottom",
            "type": "System.Boolean",
            "summary": "If True end at Cylinder.Height1 should be capped."
          },
          {
            "name": "capTop",
            "type": "System.Boolean",
            "summary": "If True end at Cylinder.Height2 should be capped."
          },
          {
            "name": "quadCaps",
            "type": "System.Boolean",
            "summary": "If True and it's possible to make quad caps, i.e.. around is even, then caps will have quad faces."
          }
        ],
        "returns": "Returns a mesh cylinder if successful, None otherwise."
      },
      {
        "signature": "Mesh CreateFromCylinder(Cylinder cylinder, System.Int32 vertical, System.Int32 around, System.Boolean capBottom, System.Boolean capTop)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Constructs a mesh cylinder.",
        "since": "7.0",
        "parameters": [
          {
            "name": "cylinder",
            "type": "Cylinder",
            "summary": ""
          },
          {
            "name": "vertical",
            "type": "System.Int32",
            "summary": "Number of faces in the top-to-bottom direction."
          },
          {
            "name": "around",
            "type": "System.Int32",
            "summary": "Number of faces around the cylinder."
          },
          {
            "name": "capBottom",
            "type": "System.Boolean",
            "summary": "If True end at Cylinder.Height1 should be capped."
          },
          {
            "name": "capTop",
            "type": "System.Boolean",
            "summary": "If True end at Cylinder.Height2 should be capped."
          }
        ],
        "returns": "Returns a mesh cylinder if successful, None otherwise."
      },
      {
        "signature": "Mesh CreateFromCylinder(Cylinder cylinder, System.Int32 vertical, System.Int32 around)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Constructs a capped mesh cylinder.",
        "since": "5.0",
        "parameters": [
          {
            "name": "cylinder",
            "type": "Cylinder",
            "summary": ""
          },
          {
            "name": "vertical",
            "type": "System.Int32",
            "summary": "Number of faces in the top-to-bottom direction."
          },
          {
            "name": "around",
            "type": "System.Int32",
            "summary": "Number of faces around the cylinder."
          }
        ],
        "returns": "Returns a mesh cylinder if successful, None otherwise."
      },
      {
        "signature": "Mesh CreateFromExtrusion(Extrusion extrusion, MeshingParameters meshingParameters)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Constructs a mesh from a brep.",
        "since": "8.3",
        "parameters": [
          {
            "name": "extrusion",
            "type": "Extrusion",
            "summary": "Brep to approximate."
          },
          {
            "name": "meshingParameters",
            "type": "MeshingParameters",
            "summary": "Parameters to use during meshing."
          }
        ],
        "returns": "A mesh."
      },
      {
        "signature": "Mesh CreateFromFilteredFaceList(Mesh original, IEnumerable<bool> inclusion)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Constructs a sub-mesh, that contains a filtered list of faces.",
        "since": "7.0",
        "parameters": [
          {
            "name": "original",
            "type": "Mesh",
            "summary": "The mesh to copy. If null, None is returned."
          },
          {
            "name": "inclusion",
            "type": "IEnumerable<bool>",
            "summary": "A series of True and False values, that determine if each face is used in the new mesh. If None or empty, a non-filtered copy of the original mesh is returned.  \nIf the amount does not match the length of the face list, the pattern is repeated. If it exceeds the amount     of faces in the mesh face list, the pattern is truncated."
          }
        ],
        "returns": "A copy of the original mesh with its faces filtered, or None on failure."
      },
      {
        "signature": "Mesh CreateFromIsosurface(Func<Point3d, double> scalarFieldEvaluator, BoundingBox box, System.Int32 resolution, System.Int32 RootFindingMaxSteps)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Create an isosurface mesh based on a scalar field evaluator"
      },
      {
        "signature": "Mesh[] CreateFromIterativeCleanup(IEnumerable<Mesh> meshes, System.Double tolerance)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Repairs meshes with vertices that are too near, using a tolerance value.",
        "since": "7.0",
    "remarks": "<b>RequireIterativeCleanup</b>",
        "parameters": [
          {
            "name": "meshes",
            "type": "IEnumerable<Mesh>",
            "summary": "The meshes to be repaired."
          },
          {
            "name": "tolerance",
            "type": "System.Double",
            "summary": "A minimum distance for clean vertices."
          }
        ],
        "returns": "A valid meshes array if successful. If no change was required, some meshes can be null. Otherwise, null, when no changes were done."
      },
      {
        "signature": "Mesh CreateFromLines(Curve[] lines, System.Int32 maxFaceValence, System.Double tolerance)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Creates a mesh by analizing the edge structure. Input lines could be from the extraction of edges from an original mesh.",
        "since": "6.0",
        "parameters": [
          {
            "name": "lines",
            "type": "Curve[]",
            "summary": "Lines to use for computation. If curve is non-linear, curve ends are used"
          },
          {
            "name": "maxFaceValence",
            "type": "System.Int32",
            "summary": "The maximum number of edges per face."
          },
          {
            "name": "tolerance",
            "type": "System.Double",
            "summary": "The distance after which two end points of lines are considered coincident."
          }
        ],
        "returns": "A new mesh, or None if no mesh is constructed."
      },
      {
        "signature": "Mesh CreateFromPatchSingleFace(Mesh mesh, IEnumerable<ComponentIndex> components)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Creates a single mesh face from the given input.",
        "since": "8.0",
        "parameters": [
          {
            "name": "mesh",
            "type": "Mesh",
            "summary": "The input mesh."
          },
          {
            "name": "components",
            "type": "IEnumerable<ComponentIndex>",
            "summary": "An enumeration of component indexes from the input mesh. This can be one following combinations: 1 vertex (MeshVertex or MeshTopologyVertex) and 1 edge (MeshTopologyEdge), 2 edges (MeshTopologyEdge), or 3 vertices (MeshVertex or MeshTopologyVertex)."
          }
        ],
        "returns": "A new mesh if successful, None otherwise."
      },
      {
        "signature": "Mesh CreateFromPlanarBoundary(Curve boundary, MeshingParameters parameters, System.Double tolerance)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Attempts to construct a mesh from a closed planar curve.RhinoMakePlanarMeshes",
        "since": "6.0",
        "parameters": [
          {
            "name": "boundary",
            "type": "Curve",
            "summary": "must be a closed planar curve."
          },
          {
            "name": "parameters",
            "type": "MeshingParameters",
            "summary": "parameters used for creating the mesh."
          },
          {
            "name": "tolerance",
            "type": "System.Double",
            "summary": "Tolerance to use during operation."
          }
        ],
        "returns": "New mesh on success or None on failure."
      },
      {
        "signature": "Mesh CreateFromPlanarBoundary(Curve boundary, MeshingParameters parameters)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Do not use this overload. Use version that takes a tolerance parameter instead.",
        "since": "5.0",
        "deprecated": "6.0",
        "obsolete": "Use version that takes a tolerance parameter instead",
        "parameters": [
          {
            "name": "boundary",
            "type": "Curve",
            "summary": "Do not use."
          },
          {
            "name": "parameters",
            "type": "MeshingParameters",
            "summary": "Do not use."
          }
        ],
        "returns": "Do not use."
      },
      {
        "signature": "Mesh CreateFromPlane(Plane plane, Interval xInterval, Interval yInterval, System.Int32 xCount, System.Int32 yCount)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Constructs a planar mesh grid.",
        "since": "5.0",
        "parameters": [
          {
            "name": "plane",
            "type": "Plane",
            "summary": "Plane of mesh."
          },
          {
            "name": "xInterval",
            "type": "Interval",
            "summary": "Interval describing size and extends of mesh along plane x-direction."
          },
          {
            "name": "yInterval",
            "type": "Interval",
            "summary": "Interval describing size and extends of mesh along plane y-direction."
          },
          {
            "name": "xCount",
            "type": "System.Int32",
            "summary": "Number of faces in x-direction."
          },
          {
            "name": "yCount",
            "type": "System.Int32",
            "summary": "Number of faces in y-direction."
          }
        ]
      },
      {
        "signature": "Mesh CreateFromSphere(Sphere sphere, System.Int32 xCount, System.Int32 yCount)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Constructs a mesh sphere.",
        "since": "5.0",
        "parameters": [
          {
            "name": "sphere",
            "type": "Sphere",
            "summary": "Base sphere for mesh."
          },
          {
            "name": "xCount",
            "type": "System.Int32",
            "summary": "Number of faces in the around direction."
          },
          {
            "name": "yCount",
            "type": "System.Int32",
            "summary": "Number of faces in the top-to-bottom direction."
          }
        ]
      },
      {
        "signature": "Mesh CreateFromSubD(SubD subd, SubDDisplayParameters.Density displayDensity)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Create a mesh from a SubD limit surface",
        "since": "9.0",
        "parameters": [
          {
            "name": "subd",
            "type": "SubD",
            "summary": "SubD to mesh"
          },
          {
            "name": "displayDensity",
            "type": "SubDDisplayParameters.Density",
            "summary": "Adaptive display density value to use. If in doubt, pass  <b>SubDDisplayParameters.Density.DefaultDensity</b> : this is what the cache uses."
          }
        ],
        "returns": "New mesh representing the SubD"
      },
      {
        "signature": "Mesh CreateFromSubD(SubD subd, System.Int32 displayDensity)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Create a mesh from a SubD limit surface",
        "since": "7.0",
        "parameters": [
          {
            "name": "subd",
            "type": "SubD",
            "summary": "SubD to mesh"
          },
          {
            "name": "displayDensity",
            "type": "System.Int32",
            "summary": "Adaptive display density value to use. If in doubt, pass  <b>SubDDisplayParameters.Density.DefaultDensity</b> : this is what the cache uses."
          }
        ],
        "returns": "New mesh representing the SubD"
      },
      {
        "signature": "Mesh CreateFromSubD(SubD subd)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Create a mesh from a SubD limit surface, using the default meshing density for SubDs.",
        "since": "9.0",
        "parameters": [
          {
            "name": "subd",
            "type": "SubD",
            "summary": "SubD to mesh"
          }
        ],
        "returns": "New mesh representing the SubD"
      },
      {
        "signature": "Mesh CreateFromSubDControlNet(SubD subd)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Create a mesh from a SubD control net",
        "since": "7.0",
        "returns": "mesh representing control net on success, None on failure"
      },
      {
        "signature": "Mesh CreateFromSubDControlNetWithTextureCoordinates(SubD subd)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Create a mesh from a SubD control net including texture coordinates",
        "since": "8.3",
        "returns": "mesh representing control net on success, None on failure"
      },
      {
        "signature": "Mesh CreateFromSurface(Surface surface, MeshingParameters meshingParameters)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Constructs a mesh from a surface",
        "since": "6.5",
        "parameters": [
          {
            "name": "surface",
            "type": "Surface",
            "summary": "Surface to approximate"
          },
          {
            "name": "meshingParameters",
            "type": "MeshingParameters",
            "summary": "settings used to create the mesh"
          }
        ],
        "returns": "New mesh representing the surface"
      },
      {
        "signature": "Mesh CreateFromSurface(Surface surface)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Constructs a mesh from a surface",
        "since": "6.5",
        "parameters": [
          {
            "name": "surface",
            "type": "Surface",
            "summary": "Surface to approximate"
          }
        ],
        "returns": "New mesh representing the surface"
      },
      {
        "signature": "Mesh CreateFromSurfaceControlNet(Surface surface)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Calculate a mesh representation of a surface's control net.",
        "since": "7.18",
        "parameters": [
          {
            "name": "surface",
            "type": "Surface",
            "summary": "The surface."
          }
        ],
        "returns": "Mesh representing the surface control net on success, None on failure"
      },
      {
        "signature": "Mesh CreateFromTessellation(IEnumerable<Point3d> points, IEnumerable<IEnumerable<Point3d>> edges, Plane plane, System.Boolean allowNewVertices)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Attempts to create a mesh that is a triangulation of a list of points, projected on a plane, including its holes and fixed edges.",
        "parameters": [
          {
            "name": "points",
            "type": "IEnumerable<Point3d>",
            "summary": "A list, an array or any enumerable of points."
          },
          {
            "name": "edges",
            "type": "IEnumerable<IEnumerable<Point3d>>",
            "summary": "A list of polylines, or other lists of points representing edges. This can be null. If nested enumerable items are null, they will be discarded."
          },
          {
            "name": "plane",
            "type": "Plane",
            "summary": "A plane."
          },
          {
            "name": "allowNewVertices",
            "type": "System.Boolean",
            "summary": "If true, the mesh might have more vertices than the list of input points, if doing so will improve long thin triangles."
          }
        ],
        "returns": "A new mesh, or None if not successful."
      },
      {
        "signature": "Mesh CreateFromTorus(Torus torus, System.Int32 vertical, System.Int32 around)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Constructs a mesh torus.",
        "since": "7.0",
        "parameters": [
          {
            "name": "torus",
            "type": "Torus",
            "summary": "The torus."
          },
          {
            "name": "vertical",
            "type": "System.Int32",
            "summary": "Number of faces in the top-to-bottom direction."
          },
          {
            "name": "around",
            "type": "System.Int32",
            "summary": "Number of faces around the torus."
          }
        ],
        "returns": "Returns a mesh torus if successful, None otherwise."
      },
      {
        "signature": "Mesh CreateIcoSphere(Sphere sphere, System.Int32 subdivisions)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Constructs a icospherical mesh. A mesh icosphere differs from a standard UV mesh sphere in that it's vertices are evenly distributed. A mesh icosphere starts from an icosahedron (a regular polyhedron with 20 equilateral triangles). It is then refined by splitting each triangle into 4 smaller triangles. This splitting can be done several times.",
        "since": "6.0",
        "parameters": [
          {
            "name": "sphere",
            "type": "Sphere",
            "summary": "The input sphere provides the orienting plane and radius."
          },
          {
            "name": "subdivisions",
            "type": "System.Int32",
            "summary": "The number of times you want the faces split, where 0  <= subdivisions <= 7. Note, the total number of mesh faces produces is: 20 * (4 ^ subdivisions)"
          }
        ],
        "returns": "A welded mesh icosphere if successful, or None on failure."
      },
      {
        "signature": "Mesh CreatePatch(Polyline outerBoundary, System.Double angleToleranceRadians, Surface pullbackSurface, IEnumerable<Curve> innerBoundaryCurves, IEnumerable<Curve> innerBothSideCurves, IEnumerable<Point3d> innerPoints, System.Boolean trimback, System.Int32 divisions)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Construct a mesh patch from a variety of input geometry.",
        "since": "6.0",
        "parameters": [
          {
            "name": "outerBoundary",
            "type": "Polyline",
            "summary": "(optional: can be null) Outer boundary polyline, if provided this will become the outer boundary of the resulting mesh. Any of the input that is completely outside the outer boundary will be ignored and have no impact on the result. If any of the input intersects the outer boundary the result will be unpredictable and is likely to not include the entire outer boundary."
          },
          {
            "name": "angleToleranceRadians",
            "type": "System.Double",
            "summary": "Maximum angle between unit tangents and adjacent vertices. Used to divide curve inputs that cannot otherwise be represented as a polyline."
          },
          {
            "name": "pullbackSurface",
            "type": "Surface",
            "summary": "(optional: can be null) Initial surface where 3d input will be pulled to make a 2d representation used by the function that generates the mesh. Providing a pullbackSurface can be helpful when it is similar in shape to the pattern of the input, the pulled 2d points will be a better representation of the 3d points. If all of the input is more or less coplanar to start with, providing pullbackSurface has no real benefit."
          },
          {
            "name": "innerBoundaryCurves",
            "type": "IEnumerable<Curve>",
            "summary": "(optional: can be null) Polylines to create holes in the output mesh. If innerBoundaryCurves are the only input then the result may be null if trimback is set to False (see comments for trimback) because the resulting mesh could be invalid (all faces created contained vertices from the perimeter boundary)."
          },
          {
            "name": "innerBothSideCurves",
            "type": "IEnumerable<Curve>",
            "summary": "(optional: can be null) These polylines will create faces on both sides of the edge. If there are only input points(innerPoints) there is no way to guarantee a triangulation that will create an edge between two particular points. Adding a line, or polyline, to innerBothsideCurves that includes points from innerPoints will help guide the triangulation."
          },
          {
            "name": "innerPoints",
            "type": "IEnumerable<Point3d>",
            "summary": "(optional: can be null) Points to be used to generate the mesh. If outerBoundary is not null, points outside of that boundary after it has been pulled to pullbackSurface (or the best plane through the input if pullbackSurface is null) will be ignored."
          },
          {
            "name": "trimback",
            "type": "System.Boolean",
            "summary": "Only used when a outerBoundary has not been provided. When that is the case, the function uses the perimeter of the surface as the outer boundary instead. If true, any face of the resulting triangulated mesh that contains a vertex of the perimeter boundary will be removed."
          },
          {
            "name": "divisions",
            "type": "System.Int32",
            "summary": "Only used when a outerBoundary has not been provided. When that is the case, division becomes the number of divisions each side of the surface's perimeter will be divided into to create an outer boundary to work with."
          }
        ],
        "returns": "mesh on success; None on failure"
      },
      {
        "signature": "Mesh CreateQuadSphere(Sphere sphere, System.Int32 subdivisions)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Constructs a quad mesh sphere. A quad mesh sphere differs from a standard UV mesh sphere in that it's vertices are evenly distributed. A quad mesh sphere starts from a cube (a regular polyhedron with 6 square sides). It is then refined by splitting each quad into 4 smaller quads. This splitting can be done several times.",
        "since": "6.0",
        "parameters": [
          {
            "name": "sphere",
            "type": "Sphere",
            "summary": "The input sphere provides the orienting plane and radius."
          },
          {
            "name": "subdivisions",
            "type": "System.Int32",
            "summary": "The number of times you want the faces split, where 0  <= subdivisions <= 8. Note, the total number of mesh faces produces is: 6 * (4 ^ subdivisions)"
          }
        ],
        "returns": "A welded quad mesh sphere if successful, or None on failure."
      },
      {
        "signature": "Mesh CreateRefinedCatmullClarkMesh(Mesh mesh, RefinementSettings settings)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Instantiates a new mesh that represents a Catmull-Clark subdivision of the mesh.",
        "since": "6.0",
        "parameters": [
          {
            "name": "mesh",
            "type": "Mesh",
            "summary": "The mesh to subdivide."
          },
          {
            "name": "settings",
            "type": "RefinementSettings",
            "summary": "An instance of the settings class, or None for defaults."
          }
        ],
        "returns": "A new mesh. None is never returned."
      },
      {
        "signature": "Mesh CreateRefinedLoopMesh(Mesh mesh, LoopFormula formula, RefinementSettings settings)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Instantiates a new mesh that represents a Loop subdivision of the mesh.",
        "since": "6.0",
        "parameters": [
          {
            "name": "mesh",
            "type": "Mesh",
            "summary": "The mesh to subdivide."
          },
          {
            "name": "formula",
            "type": "LoopFormula",
            "summary": "The Loop subdivision formula."
          },
          {
            "name": "settings",
            "type": "RefinementSettings",
            "summary": "An instance of the settings class, or None for defaults."
          }
        ],
        "returns": "A new mesh. None is never returned."
      },
      {
        "signature": "Mesh CreateUnweldedMesh(Mesh mesh)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Creates a new unwelded mesh from an existing mesh. Texture coordinates are ignored.",
        "since": "8.12",
        "parameters": [
          {
            "name": "mesh",
            "type": "Mesh",
            "summary": "The source mesh to copy."
          }
        ],
        "returns": "The new unwelded mesh if successful, None otherwise."
      },
      {
        "signature": "Mesh[] MatchEdges(IEnumerable<Mesh> inputMeshes, System.Double distance, System.Boolean simpleSplits, System.Boolean rachet, System.Boolean average, System.Boolean join)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Moves face edges of open meshes to meet near face edges. The method will first try to match vertices, and then then it will try to split edges to make the edges match.",
        "since": "9.0",
        "parameters": [
          {
            "name": "inputMeshes",
            "type": "IEnumerable<Mesh>",
            "summary": "Input meshes to be split and matched."
          },
          {
            "name": "distance",
            "type": "System.Double",
            "summary": "The distance tolerance. Use larger tolerances only if you select specific edges to close."
          },
          {
            "name": "simpleSplits",
            "type": "System.Boolean",
            "summary": "When this is True and there is only one split in a face the code just divides the face at that vertex.  If it is False or there are multiple splits on the same face TL_Triangulate3dPolygon is called and the resulting faces replace the existing face."
          },
          {
            "name": "rachet",
            "type": "System.Boolean",
            "summary": "If true, matching the mesh takes place in four passes starting at a tolerance that is smaller than your specified tolerance and working up to the specified tolerance with successive passes. This matches small edges first and works up to larger edges. If false, then a single pass is made."
          },
          {
            "name": "average",
            "type": "System.Boolean",
            "summary": "Set to True if you want an average to the vertex sets to be modified rather than using the first."
          },
          {
            "name": "join",
            "type": "System.Boolean",
            "summary": "Set to True if you want the output joined into a single mesh"
          }
        ],
        "returns": "The resulting output meshes."
      },
      {
        "signature": "Mesh[] PartitionMesh(Mesh mesh, System.Int32 maxVertexCount, System.Int32 maxFaceCount)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Some file formats and rendering engines are only able to process small batches of triangles. Use this function to partition the mesh into subsets of vertices and faces that those file formats and rendering engines can handle.",
        "since": "8.25",
    "remarks": "The resulting sub-meshes tend to be less disjoint than the output of <b>SplitMesh</b> . The less disjoint meshes will take more time to compute.",
        "parameters": [
          {
            "name": "mesh",
            "type": "Mesh",
            "summary": "Mesh to partition."
          },
          {
            "name": "maxVertexCount",
            "type": "System.Int32",
            "summary": "Maximum number of vertices in a partition."
          },
          {
            "name": "maxFaceCount",
            "type": "System.Int32",
            "summary": "Maximum number of faces in a partition."
          }
        ],
        "returns": "An array of sub-meshes if successful, otherwise an empty array."
      },
      {
        "signature": "Mesh QuadRemeshBrep(Brep brep, QuadRemeshParameters parameters, IEnumerable<Curve> guideCurves, IProgress<int> progress, System.Threading.CancellationToken cancelToken)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Quad remesh this Brep.",
        "since": "9.0",
        "parameters": [
          {
            "name": "brep",
            "type": "Brep",
            "summary": "Set Brep Face Mode by setting QuadRemeshParameters.PreserveMeshArrayEdgesMode"
          },
          {
            "name": "parameters",
            "type": "QuadRemeshParameters",
            "summary": ""
          },
          {
            "name": "guideCurves",
            "type": "IEnumerable<Curve>",
            "summary": ""
          },
          {
            "name": "progress",
            "type": "IProgress<int>",
            "summary": ""
          },
          {
            "name": "cancelToken",
            "type": "System.Threading.CancellationToken",
            "summary": ""
          }
        ]
      },
      {
        "signature": "Mesh QuadRemeshBrep(Brep brep, QuadRemeshParameters parameters, IEnumerable<Curve> guideCurves)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Create Quad Remesh from a Brep",
        "since": "7.0",
        "parameters": [
          {
            "name": "brep",
            "type": "Brep",
            "summary": "Set Brep Face Mode by setting QuadRemeshParameters.PreserveMeshArrayEdgesMode"
          },
          {
            "name": "parameters",
            "type": "QuadRemeshParameters",
            "summary": ""
          },
          {
            "name": "guideCurves",
            "type": "IEnumerable<Curve>",
            "summary": "A curve array used to influence mesh face layout The curves should touch the input mesh Set Guide Curve Influence by using QuadRemeshParameters.GuideCurveInfluence"
          }
        ]
      },
      {
        "signature": "Mesh QuadRemeshBrep(Brep brep, QuadRemeshParameters parameters)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Create QuadRemesh from a Brep Set Brep Face Mode by setting QuadRemeshParameters.PreserveMeshArrayEdgesMode",
        "since": "7.0"
      },
      {
        "signature": "Task<Mesh> QuadRemeshBrepAsync(Brep brep, QuadRemeshParameters parameters, IEnumerable<Curve> guideCurves, IProgress<int> progress, System.Threading.CancellationToken cancelToken)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Quad remesh this Brep asynchronously.",
        "since": "7.0",
        "parameters": [
          {
            "name": "brep",
            "type": "Brep",
            "summary": "Set Brep Face Mode by setting QuadRemeshParameters.PreserveMeshArrayEdgesMode"
          },
          {
            "name": "parameters",
            "type": "QuadRemeshParameters",
            "summary": ""
          },
          {
            "name": "guideCurves",
            "type": "IEnumerable<Curve>",
            "summary": "A curve array used to influence mesh face layout The curves should touch the input mesh Set Guide Curve Influence by using QuadRemeshParameters.GuideCurveInfluence"
          },
          {
            "name": "progress",
            "type": "IProgress<int>",
            "summary": ""
          },
          {
            "name": "cancelToken",
            "type": "System.Threading.CancellationToken",
            "summary": ""
          }
        ]
      },
      {
        "signature": "Task<Mesh> QuadRemeshBrepAsync(Brep brep, QuadRemeshParameters parameters, IProgress<int> progress, System.Threading.CancellationToken cancelToken)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Quad remesh this Brep asynchronously.",
        "since": "7.0",
        "parameters": [
          {
            "name": "brep",
            "type": "Brep",
            "summary": "Set Brep Face Mode by setting QuadRemeshParameters.PreserveMeshArrayEdgesMode"
          },
          {
            "name": "parameters",
            "type": "QuadRemeshParameters",
            "summary": ""
          },
          {
            "name": "progress",
            "type": "IProgress<int>",
            "summary": ""
          },
          {
            "name": "cancelToken",
            "type": "System.Threading.CancellationToken",
            "summary": ""
          }
        ]
      },
      {
        "signature": "Mesh RebuildMesh(Mesh mesh, System.Boolean preserveTextureCoordinates, System.Boolean preserveVertexColors)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Use this function to rebuild meshes that are not acting properly. Vertices and faces are kept. Face normals and vertex normals are recalculated. Surface curvatures, and surfaces parameters are not replaced.",
        "since": "8.23",
        "parameters": [
          {
            "name": "mesh",
            "type": "Mesh",
            "summary": "Mesh to be rebuilt."
          },
          {
            "name": "preserveTextureCoordinates",
            "type": "System.Boolean",
            "summary": "Retains mesh texture coordinates."
          },
          {
            "name": "preserveVertexColors",
            "type": "System.Boolean",
            "summary": "Retains mesh vertex colors."
          }
        ],
        "returns": "The rebuilt mesh if successful, None otherwise."
      },
      {
        "signature": "Mesh RebuildMesh(Mesh mesh)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Use this function to rebuild meshes that are not acting properly. Vertices and faces are kept. Face normals and vertex normals are recalculated. Texture coordinates, vertex colors, surface curvatures, and surfaces parameters are not replaced.",
        "since": "8.23",
        "parameters": [
          {
            "name": "mesh",
            "type": "Mesh",
            "summary": "Mesh to be rebuilt."
          }
        ],
        "returns": "The rebuilt mesh if successful, None otherwise."
      },
      {
        "signature": "System.Boolean RequireIterativeCleanup(IEnumerable<Mesh> meshes, System.Double tolerance)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Analyzes some meshes, and determines if a pass of CreateFromIterativeCleanup would change the array.  \nAll available cleanup steps are used. Currently available cleanup steps are:  \n- mending of single precision coincidence even though double precision vertices differ.  \n- union of nearly identical vertices, irrespectively of their origin.  \n- removal of t-joints along edges.",
        "since": "7.0",
    "remarks": "<b>Rhino.Geometry.Mesh.CreateFromIterativeCleanup</b>",
        "parameters": [
          {
            "name": "meshes",
            "type": "IEnumerable<Mesh>",
            "summary": "A list, and array or any enumerable of meshes."
          },
          {
            "name": "tolerance",
            "type": "System.Double",
            "summary": "A 3d distance. This is usually a value of about 10e-7 magnitude."
          }
        ],
        "returns": "True if meshes would be changed, otherwise false."
      },
      {
        "signature": "Mesh ShrinkWrap(IEnumerable<GeometryBase> geometryBases, ShrinkWrapParameters parameters, MeshingParameters meshingParameters, System.Threading.CancellationToken token)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Creates a unified ShrinkWrap mesh from a collection of GeometryBase objects. returns None or error on failure Supports cancellation during volumetric calculations. geometryBase mesh creation is not cancellable",
        "since": "8.21",
        "parameters": [
          {
            "name": "geometryBases",
            "type": "IEnumerable<GeometryBase>",
            "summary": ""
          },
          {
            "name": "parameters",
            "type": "ShrinkWrapParameters",
            "summary": "A ShrinkWrapParameters object that specifies the configuration settings for the ShrinkWrap process."
          },
          {
            "name": "meshingParameters",
            "type": "MeshingParameters",
            "summary": "GeometryBase objects are converted to meshes first using the MeshingParameters provided. Those meshes are then used in the ShrinkWrap process."
          },
          {
            "name": "token",
            "type": "System.Threading.CancellationToken",
            "summary": "Supports cancellation during volumetric calculations. geometryBase mesh creation is not cancellable"
          }
        ]
      },
      {
        "signature": "Mesh ShrinkWrap(IEnumerable<GeometryBase> geometryBases, ShrinkWrapParameters parameters, MeshingParameters meshingParameters)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Creates a unified ShrinkWrap mesh from a collection of GeometryBase objects. returns None or error on failure",
        "since": "8.3",
        "parameters": [
          {
            "name": "geometryBases",
            "type": "IEnumerable<GeometryBase>",
            "summary": ""
          },
          {
            "name": "parameters",
            "type": "ShrinkWrapParameters",
            "summary": "A ShrinkWrapParameters object that specifies the configuration settings for the ShrinkWrap process."
          },
          {
            "name": "meshingParameters",
            "type": "MeshingParameters",
            "summary": "GeometryBase objects are converted to meshes first using the MeshingParameters provided. Those meshes are then used in the ShrinkWrap process."
          }
        ]
      },
      {
        "signature": "Mesh ShrinkWrap(IEnumerable<Mesh> meshes, ShrinkWrapParameters parameters, System.Threading.CancellationToken token)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Creates a unified ShrinkWrap mesh from a collection of input meshes. Returns None on error or failure. Supports cancellation during volumetric calculations.",
        "since": "8.21",
        "parameters": [
          {
            "name": "meshes",
            "type": "IEnumerable<Mesh>",
            "summary": ""
          },
          {
            "name": "parameters",
            "type": "ShrinkWrapParameters",
            "summary": ""
          },
          {
            "name": "token",
            "type": "System.Threading.CancellationToken",
            "summary": "Supports cancellation during volumetric calculations."
          }
        ]
      },
      {
        "signature": "Mesh ShrinkWrap(IEnumerable<Mesh> meshes, ShrinkWrapParameters parameters)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Creates a unified ShrinkWrap mesh from a collection of input meshes. Returns None on error or failure.",
        "since": "8.0",
        "parameters": [
          {
            "name": "meshes",
            "type": "IEnumerable<Mesh>",
            "summary": ""
          },
          {
            "name": "parameters",
            "type": "ShrinkWrapParameters",
            "summary": "A ShrinkWrapParameters object that specifies the configuration settings for the ShrinkWrap process."
          }
        ]
      },
      {
        "signature": "Mesh ShrinkWrap(PointCloud pointCloud, ShrinkWrapParameters parameters, System.Threading.CancellationToken token)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Creates a unified ShrinkWrap mesh from a point cloud returns None on error or failure Supports cancellation during volumetric calculations.",
        "since": "8.21"
      },
      {
        "signature": "Mesh ShrinkWrap(PointCloud pointCloud, ShrinkWrapParameters parameters)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Creates a unified ShrinkWrap mesh from a point cloud returns None on error or failure",
        "since": "8.0"
      },
      {
        "signature": "Mesh[] SplitMesh(Mesh mesh, System.Int32 maxCount, System.Boolean countSum, System.Boolean countTriangles)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Some file formats and rendering engines are only able to process small batches of triangles. Use this function to split the mesh into subsets of vertices and faces that those file formats and rendering engines can handle.",
        "since": "8.25",
        "parameters": [
          {
            "name": "mesh",
            "type": "Mesh",
            "summary": "Mesh to split."
          },
          {
            "name": "maxCount",
            "type": "System.Int32",
            "summary": "Maximum count."
          },
          {
            "name": "countSum",
            "type": "System.Boolean",
            "summary": "If true, split if total vertices + faces is greater than maxCount. If false, split if either total vertices or faces is greater than maxCount."
          },
          {
            "name": "countTriangles",
            "type": "System.Boolean",
            "summary": "If true, count triangles. If false, count triangles and quads."
          }
        ],
        "returns": "An array of sub-meshes if successful, otherwise an empty array."
      },
      {
        "signature": "System.Void Append(IEnumerable<Mesh> meshes)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Append a list of meshes. This function is much more efficient than making repeated calls to Mesh.Append(Mesh) when lots of meshes are being joined into a single large mesh.",
        "since": "6.8",
        "parameters": [
          {
            "name": "meshes",
            "type": "IEnumerable<Mesh>",
            "summary": "Meshes to append to this one."
          }
        ]
      },
      {
        "signature": "System.Void Append(Mesh other)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Appends a copy of another mesh to this one and updates indices of appended mesh parts.",
        "since": "5.0",
        "parameters": [
          {
            "name": "other",
            "type": "Mesh",
            "summary": "Mesh to append to this one."
          }
        ]
      },
      {
        "signature": "System.Boolean Check(TextLog textLog, ref MeshCheckParameters parameters)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Examines the mesh and logs a description of what it finds right or wrong. The various properties the function checks for are described in MeshCheckParameters.",
        "since": "7.0",
        "parameters": [
          {
            "name": "textLog",
            "type": "TextLog",
            "summary": "The text log"
          },
          {
            "name": "parameters",
            "type": "MeshCheckParameters",
            "summary": "The mesh checking parameter and results."
          }
        ],
        "returns": "Returns True if the mesh is valid, False otherwise."
      },
      {
        "signature": "System.Void ClearSurfaceData()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Removes surface parameters, curvature parameters and surface statistics from the mesh.",
        "since": "6.0"
      },
      {
        "signature": "System.Void ClearTextureData()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Removes all texture coordinate information from this mesh.",
        "since": "5.0"
      },
      {
        "signature": "MeshPoint ClosestMeshPoint(Point3d testPoint, System.Double maximumDistance)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the point on the mesh that is closest to a given test point. Similar to the ClosestPoint function except this returns a MeshPoint class which includes extra information beyond just the location of the closest point.",
        "since": "5.0",
        "parameters": [
          {
            "name": "testPoint",
            "type": "Point3d",
            "summary": "The source of the search."
          },
          {
            "name": "maximumDistance",
            "type": "System.Double",
            "summary": "Optional upper bound on the distance from test point to the mesh. If you are only interested in finding a point Q on the mesh when testPoint.DistanceTo(Q) < maximumDistance, then set maximumDistance to that value. This parameter is ignored if you pass 0.0 for a maximumDistance."
          }
        ],
        "returns": "closest point information on success. None on failure."
      },
      {
        "signature": "System.Int32 ClosestPoint(Point3d testPoint, out Point3d pointOnMesh, out Vector3d normalAtPoint, System.Double maximumDistance)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the point on the mesh that is closest to a given test point.",
        "since": "5.0",
        "parameters": [
          {
            "name": "testPoint",
            "type": "Point3d",
            "summary": "Point to search for."
          },
          {
            "name": "pointOnMesh",
            "type": "Point3d",
            "summary": "Point on the mesh closest to testPoint."
          },
          {
            "name": "normalAtPoint",
            "type": "Vector3d",
            "summary": "The normal vector of the mesh at the closest point."
          },
          {
            "name": "maximumDistance",
            "type": "System.Double",
            "summary": "Optional upper bound on the distance from test point to the mesh. If you are only interested in finding a point Q on the mesh when testPoint.DistanceTo(Q) < maximumDistance, then set maximumDistance to that value. This parameter is ignored if you pass 0.0 for a maximumDistance."
          }
        ],
        "returns": "Index of face that the closest point lies on if successful. -1 if not successful; the value of pointOnMesh is undefined."
      },
      {
        "signature": "System.Int32 ClosestPoint(Point3d testPoint, out Point3d pointOnMesh, System.Double maximumDistance)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the point on the mesh that is closest to a given test point.",
        "since": "5.0",
        "parameters": [
          {
            "name": "testPoint",
            "type": "Point3d",
            "summary": "Point to search for."
          },
          {
            "name": "pointOnMesh",
            "type": "Point3d",
            "summary": "Point on the mesh closest to testPoint."
          },
          {
            "name": "maximumDistance",
            "type": "System.Double",
            "summary": "Optional upper bound on the distance from test point to the mesh. If you are only interested in finding a point Q on the mesh when testPoint.DistanceTo(Q) < maximumDistance, then set maximumDistance to that value. This parameter is ignored if you pass 0.0 for a maximumDistance."
          }
        ],
        "returns": "Index of face that the closest point lies on if successful. -1 if not successful; the value of pointOnMesh is undefined."
      },
      {
        "signature": "Point3d ClosestPoint(Point3d testPoint)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the point on the mesh that is closest to a given test point.",
        "since": "5.0",
        "parameters": [
          {
            "name": "testPoint",
            "type": "Point3d",
            "summary": "Point to search for."
          }
        ],
        "returns": "The point on the mesh closest to testPoint, or Point3d.Unset on failure."
      },
      {
        "signature": "System.Int32 CollapseFacesByArea(System.Double lessThanArea, System.Double greaterThanArea)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Collapses multiple mesh faces, with areas less than LessThanArea and greater than GreaterThanArea, based on the principles found in Stan Melax's mesh reduction PDF, see http://pomax.nihongoresources.com/downloads/PolygonReduction.pdf",
        "since": "6.0",
    "remarks": "This number may differ from the initial number of faces that meet the input criteria because the areas of some initial faces may be altered as other faces are collapsed. The face area must be both less than LessThanArea AND greater than GreaterThanArea in order to be considered. Use large numbers for lessThanArea or zero for greaterThanArea to simulate an OR.",
        "parameters": [
          {
            "name": "lessThanArea",
            "type": "System.Double",
            "summary": "Area in which faces are selected if their area is less than or equal to."
          },
          {
            "name": "greaterThanArea",
            "type": "System.Double",
            "summary": "Area in which faces are selected if their area is greater than or equal to."
          }
        ],
        "returns": "Number of faces that were collapsed in the process."
      },
      {
        "signature": "System.Int32 CollapseFacesByByAspectRatio(System.Double aspectRatio)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Collapses a multiple mesh faces, determined by face aspect ratio, based on criteria found in Stan Melax's polygon reduction, see http://pomax.nihongoresources.com/downloads/PolygonReduction.pdf",
        "since": "6.0",
    "remarks": "This number may differ from the initial number of faces that meet the input criteria because the aspect ratios of some initial faces may be altered as other faces are collapsed.",
        "parameters": [
          {
            "name": "aspectRatio",
            "type": "System.Double",
            "summary": "Faces with an aspect ratio less than aspectRatio are considered as candidates."
          }
        ],
        "returns": "Number of faces that were collapsed in the process."
      },
      {
        "signature": "System.Int32 CollapseFacesByEdgeLength(System.Boolean bGreaterThan, System.Double edgeLength)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Collapses multiple mesh faces, with greater/less than edge length, based on the principles found in Stan Melax's mesh reduction PDF, see http://pomax.nihongoresources.com/downloads/PolygonReduction.pdf",
        "since": "6.0",
    "remarks": "This number may differ from the initial number of edges that meet the input criteria because the lengths of some initial edges may be altered as other edges are collapsed.",
        "parameters": [
          {
            "name": "bGreaterThan",
            "type": "System.Boolean",
            "summary": "Determines whether edge with lengths greater than or less than edgeLength are collapsed."
          },
          {
            "name": "edgeLength",
            "type": "System.Double",
            "summary": "Length with which to compare to edge lengths."
          }
        ],
        "returns": "Number of edges (faces) that were collapsed, -1 for general failure (like bad topology or index out of range) or -2 if all of the edges would be collapsed and the resulting mesh would be invalid."
      },
      {
        "signature": "Color ColorAt(MeshPoint meshPoint)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Evaluate a mesh color at a set of barycentric coordinates.",
        "since": "5.0",
        "parameters": [
          {
            "name": "meshPoint",
            "type": "MeshPoint",
            "summary": "MeshPoint instance containing a valid Face Index and Barycentric coordinates."
          }
        ],
        "returns": "The interpolated vertex color on the mesh or Color.Transparent if the faceIndex is not valid, if the barycentric coordinates could not be evaluated, or if there are no colors defined on the mesh."
      },
      {
        "signature": "Color ColorAt(System.Int32 faceIndex, System.Double t0, System.Double t1, System.Double t2, System.Double t3)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Evaluate a mesh normal at a set of barycentric coordinates. Barycentric coordinates must be assigned in accordance with the rules as defined by <b>MeshPoint.T</b> .",
        "since": "5.0",
    "remarks": "Coordinate 0,0,0,0 is not a valid set of barycentric coordinates. The sum of t0 to t3 should be 1.",
        "parameters": [
          {
            "name": "faceIndex",
            "type": "System.Int32",
            "summary": "Index of triangle or quad to evaluate."
          },
          {
            "name": "t0",
            "type": "System.Double",
            "summary": "First barycentric coordinate."
          },
          {
            "name": "t1",
            "type": "System.Double",
            "summary": "Second barycentric coordinate."
          },
          {
            "name": "t2",
            "type": "System.Double",
            "summary": "Third barycentric coordinate."
          },
          {
            "name": "t3",
            "type": "System.Double",
            "summary": "Fourth barycentric coordinate. If the face is a triangle, this coordinate will be ignored."
          }
        ],
        "returns": "The interpolated vertex color on the mesh or Color.Transparent if the faceIndex is not valid, if the barycentric coordinates could not be evaluated, or if there are no colors defined on the mesh."
      },
      {
        "signature": "System.Boolean Compact()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Removes any unreferenced objects from arrays, re-indexes as needed and shrinks arrays to minimum required size.",
        "since": "5.0",
        "returns": "True on success, False on failure."
      },
      {
        "signature": "System.Byte[] ComputeAutoCreaseInformation()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Do not use this method. Length: top.Mesh.Vertices.Count",
        "since": "6.0",
        "returns": "An array that is bound to change."
      },
      {
        "signature": "System.Boolean ComputeCurvatureApproximation(System.Int32 type, out System.Double[] perVertexCurvatures)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Compute an approximation of the discrete curvatures of the mesh vertices, according to which type of curvature information is requested. This method will not yield meaningful values on nonmanifold vertices, and nan on naked vertices. For now, this method operates solely on the mesh topology (the fully welded mesh), but distribtes the result across all the ordinary vertices. This method is a const and thread-safe method and will leave the m_K array untouched.  An integer indicating which curvature is desired. gaussian_curvature = 1, mean_curvature = 2, minimum unsigned radius of curvature = 3, maximum unsigned radius of curvature = 4  Resulting curvature array on success, None on failure. On success, the length of the array is the number of vertices.",
        "since": "8.6",
        "parameters": [
          {
            "name": "type",
            "type": "System.Int32",
            "summary": "An integer indicating which curvature is desired. gaussian_curvature = 1, mean_curvature = 2, minimum unsigned radius of curvature = 3, maximum unsigned radius of curvature = 4"
          },
          {
            "name": "perVertexCurvatures",
            "type": "System.Double[]",
            "summary": "Resulting curvature array on success, None on failure. On success, the length of the array is the number of vertices."
          }
        ],
        "returns": "True on success and False on failure."
      },
      {
        "signature": "System.Void CopyFrom(Mesh other)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Copies mesh values into this mesh from another mesh.",
        "since": "5.0",
        "parameters": [
          {
            "name": "other",
            "type": "Mesh",
            "summary": "The other mesh to copy from."
          }
        ]
      },
      {
        "signature": "System.Boolean CreatePartitions(System.Int32 maximumVertexCount, System.Int32 maximumTriangleCount)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "In ancient times (or modern smart phone times), some rendering engines were only able to process small batches of triangles and the CreatePartitions() function was provided to partition the mesh into subsets of vertices and faces that those rendering engines could handle.",
        "since": "5.6",
        "returns": "True on success"
      },
      {
        "signature": "System.Boolean CreateVertexColorsFromBitmap(RhinoDoc doc, TextureMapping mapping, Transform xform, System.Drawing.Bitmap bitmap)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Populate the vertex colors from a bitmap image.",
        "since": "7.10",
        "parameters": [
          {
            "name": "doc",
            "type": "RhinoDoc",
            "summary": "The document associated with this operation for searching purposes."
          },
          {
            "name": "mapping",
            "type": "TextureMapping",
            "summary": "The texture mapping to be used on the mesh.  Surface parameter mapping is assumed if None - but surface parameters must be available on the mesh."
          },
          {
            "name": "xform",
            "type": "Transform",
            "summary": "Local mapping transform for the mesh mapping.  Use identity for surface parameter mapping."
          },
          {
            "name": "bitmap",
            "type": "System.Drawing.Bitmap",
            "summary": "The bitmap to use for the colors."
          }
        ]
      },
      {
        "signature": "System.Void DestroyPartition()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Destroys mesh partition.",
        "since": "6.0"
      },
      {
        "signature": "System.Void DestroyTopology()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Removes topology data, forcing all topology information to be recomputed.",
        "since": "6.0"
      },
      {
        "signature": "System.Void DestroyTree()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Destroys the mesh vertex access tree.",
        "since": "6.0"
      },
      {
        "signature": "GeometryBase Duplicate()",
        "modifiers": ["public", "override"],
        "protected": false,
        "virtual": false,
        "summary": "Constructs a copy of this mesh. This is the same as <b>DuplicateMesh</b> .",
        "since": "5.0",
        "returns": "A mesh."
      },
      {
        "signature": "Mesh DuplicateMesh()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Constructs a copy of this mesh. This is the same as <b>Duplicate</b> .",
        "since": "5.0"
      },
      {
        "signature": "System.Boolean EvaluateMeshGeometry(Surface surface)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "If the mesh has SurfaceParameters, the surface is evaluated at these parameters and the mesh geometry is updated.",
        "since": "5.0",
        "parameters": [
          {
            "name": "surface",
            "type": "Surface",
            "summary": "An input surface."
          }
        ],
        "returns": "True if the operation succeeded; False otherwise."
      },
      {
        "signature": "Mesh[] ExplodeAtUnweldedEdges()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Explode the mesh into sub-meshes where a sub-mesh is a collection of faces that are contained within a closed loop of \"unwelded\" edges. Unwelded edges are edges where the faces that share the edge have unique mesh vertices (not mesh topology vertices) at both ends of the edge.",
        "since": "5.0",
        "returns": "Array of sub-meshes on success; None on error. If the count in the returned array is 1, then nothing happened and the output is essentially a copy of the input."
      },
      {
        "signature": "System.Int32[] ExtendSelectionByEdgeRidge(System.Int32[] preselectedEdges, System.Int32 newEdge, System.Boolean iterative)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Suggests an extension of a selection set by using information related with topology and alignment.",
        "since": "6.0",
        "parameters": [
          {
            "name": "preselectedEdges",
            "type": "System.Int32[]",
            "summary": "An array of edges that were already selected."
          },
          {
            "name": "newEdge",
            "type": "System.Int32",
            "summary": "A new edge index."
          },
          {
            "name": "iterative",
            "type": "System.Boolean",
            "summary": ""
          }
        ],
        "returns": "An array of edges that are in a visual relationship with newEdge."
      },
      {
        "signature": "System.Int32[] ExtendSelectionByFaceLoop(System.Int32[] preselectedFaces, System.Int32 newFace, System.Boolean iterative)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Suggests an extension of a face selection set by using information related with topology and alignment.",
        "since": "6.0",
        "parameters": [
          {
            "name": "preselectedFaces",
            "type": "System.Int32[]",
            "summary": "An array of faces that were already selected."
          },
          {
            "name": "newFace",
            "type": "System.Int32",
            "summary": "A new face index. If this index is already part of the selection, no extension is suggested."
          },
          {
            "name": "iterative",
            "type": "System.Boolean",
            "summary": ""
          }
        ],
        "returns": "An array of faces that are in a visual relationship with newFace."
      },
      {
        "signature": "Mesh ExtractNonManifoldEdges(System.Boolean selective)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Extracts, or removes, non-manifold mesh edges.",
        "since": "6.0",
        "parameters": [
          {
            "name": "selective",
            "type": "System.Boolean",
            "summary": "If true, then extract hanging faces only."
          }
        ],
        "returns": "A mesh containing the extracted non-manifold parts if successful, None otherwise."
      },
      {
        "signature": "System.Boolean FileHole(System.Int32 topologyEdgeIndex)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "obsolete": "Use Mesh.FillHole"
      },
      {
        "signature": "System.Boolean FillHole(System.Int32 topologyEdgeIndex)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Given a starting \"naked\" edge index, this function attempts to determine a \"hole\" by chaining additional naked edges together until if returns to the start index. Then it triangulates the closed polygon and either adds the faces to the mesh.",
        "since": "6.0",
        "parameters": [
          {
            "name": "topologyEdgeIndex",
            "type": "System.Int32",
            "summary": "Starting naked edge index."
          }
        ],
        "returns": "True if successful, False otherwise."
      },
      {
        "signature": "System.Boolean FillHoles()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Attempts to determine \"holes\" in the mesh by chaining naked edges together. Then it triangulates the closed polygons adds the faces to the mesh.",
        "since": "6.0",
    "remarks": "This function does not differentiate between inner and outer naked edges. If you need that, it would be better to use Mesh.FillHole.",
        "returns": "True if successful, False otherwise."
      },
      {
        "signature": "System.Void Flip(System.Boolean vertexNormals, System.Boolean faceNormals, System.Boolean faceOrientation, System.Boolean ngonsBoundaryDirection)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Reverses the direction of the mesh.",
        "since": "7.0",
        "parameters": [
          {
            "name": "vertexNormals",
            "type": "System.Boolean",
            "summary": "If true, vertex normals will be reversed."
          },
          {
            "name": "faceNormals",
            "type": "System.Boolean",
            "summary": "If true, face normals will be reversed."
          },
          {
            "name": "faceOrientation",
            "type": "System.Boolean",
            "summary": "If true, face orientations will be reversed."
          },
          {
            "name": "ngonsBoundaryDirection",
            "type": "System.Boolean",
            "summary": "If true, ngon boundaries will be reversed"
          }
        ]
      },
      {
        "signature": "System.Void Flip(System.Boolean vertexNormals, System.Boolean faceNormals, System.Boolean faceOrientation)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Reverses the direction of the mesh.",
        "since": "5.0",
        "parameters": [
          {
            "name": "vertexNormals",
            "type": "System.Boolean",
            "summary": "If true, vertex normals will be reversed."
          },
          {
            "name": "faceNormals",
            "type": "System.Boolean",
            "summary": "If true, face normals will be reversed."
          },
          {
            "name": "faceOrientation",
            "type": "System.Boolean",
            "summary": "If true, face orientations will be reversed."
          }
        ]
      },
      {
        "signature": "CachedTextureCoordinates GetCachedTextureCoordinates(RhinoObject rhinoObject, Rhino.DocObjects.Texture texture)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns cached texture coordinate set based on the texture. Make sure to set up cached texture coordinates for all textures in the material first by calling SetCachedTextureCoordinatesFromMaterial(RhinoObject rhinoObject, Rhino.DocObjects.Material material)  If this function returns None then there are no texture coordinates available.",
        "since": "8.7",
        "parameters": [
          {
            "name": "rhinoObject",
            "type": "RhinoObject",
            "summary": "RhinoObject that defines texture mappings"
          },
          {
            "name": "texture",
            "type": "Rhino.DocObjects.Texture",
            "summary": "Texture that defines the mapping channel"
          }
        ],
        "returns": "Cached texture coordinates if available and otherwise null"
      },
      {
        "signature": "CachedTextureCoordinates GetCachedTextureCoordinates(System.Guid textureMappingId)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Call this method to get cached texture coordinates for a texture mapping with the specified Id.",
        "since": "5.10",
        "parameters": [
          {
            "name": "textureMappingId",
            "type": "System.Guid",
            "summary": "Texture mapping Id"
          }
        ],
        "returns": "Object which allows access to coordinates and other props."
      },
      {
        "signature": "System.Boolean[] GetNakedEdgePointStatus()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns an array of Boolean values equal in length to the number of vertices in this mesh. Each value corresponds to a mesh vertex and is set to True if the vertex is not completely surrounded by faces.",
        "since": "5.0",
        "returns": "An array of true/False flags that, at each index, reveals if the corresponding vertex is completely surrounded by faces."
      },
      {
        "signature": "Polyline[] GetNakedEdges()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns all edges of a mesh that are considered \"naked\" in the sense that the edge only has one face.",
        "since": "5.0",
        "returns": "An array of polylines, or None on error."
      },
      {
        "signature": "System.Int32 GetNgonAndFacesCount()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Retrieves the count of items that <b>GetNgonAndFacesEnumerable</b> will provide.",
        "since": "6.0",
        "returns": "The amount of faces that are not part of an ngon + the amount of ngons."
      },
      {
        "signature": "IEnumerable<MeshNgon> GetNgonAndFacesEnumerable()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Retrieves a complete enumerable, i.e., one that provides an iterator over every face that is present, no matter if defined as a triangle, a quad, or a strictly over-four-sided ngon.",
        "since": "6.0",
        "returns": "The enumerator capable of enumerating through <b>Mesh.Ngons</b> > Mesh.Ngons and Faces"
      },
      {
        "signature": "Polyline[] GetOutlines(Display.RhinoViewport viewport)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Constructs the outlines of a mesh. The projection information in the viewport is used to determine how the outlines are projected.",
        "since": "5.0",
        "parameters": [
          {
            "name": "viewport",
            "type": "Display.RhinoViewport",
            "summary": "A viewport to determine projection direction."
          }
        ],
        "returns": "An array of polylines, or None on error."
      },
      {
        "signature": "Polyline[] GetOutlines(Plane plane)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Constructs the outlines of a mesh projected against a plane.",
        "since": "5.0",
        "parameters": [
          {
            "name": "plane",
            "type": "Plane",
            "summary": "A plane to project against."
          }
        ],
        "returns": "An array of polylines, or None on error."
      },
      {
        "signature": "Polyline[] GetOutlines(ViewportInfo viewportInfo, Plane plane)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Constructs the outlines of a mesh.",
        "since": "6.0",
        "parameters": [
          {
            "name": "viewportInfo",
            "type": "ViewportInfo",
            "summary": "The viewport info that provides the outline direction."
          },
          {
            "name": "plane",
            "type": "Plane",
            "summary": "Usually the view's construction plane. If a parallel projection and view plane is parallel to this, then project the results to the plane."
          }
        ],
        "returns": "An array of polylines, or None on error."
      },
      {
        "signature": "MeshPart GetPartition(System.Int32 which)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Retrieves a partition. See <b>CreatePartitions</b> for details.",
        "since": "5.6",
        "parameters": [
          {
            "name": "which",
            "type": "System.Int32",
            "summary": "The partition index."
          }
        ]
      },
      {
        "signature": "System.Boolean GetSelfIntersections(System.Double tolerance, out Polyline[] perforations, System.Boolean overlapsPolylines, out Polyline[] overlapsPolylinesResult, System.Boolean overlapsMesh, out Mesh overlapsMeshResult, FileIO.TextLog textLog, System.Threading.CancellationToken cancel, IProgress<double> progress)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the intersections of this mesh with itself.",
        "since": "7.0",
        "parameters": [
          {
            "name": "tolerance",
            "type": "System.Double",
            "summary": "A tolerance value. If negative, the positive value will be used. WARNING! Good tolerance values are in the magnitude of 10^-7, or RhinoMath.SqrtEpsilon*10."
          },
          {
            "name": "perforations",
            "type": "Polyline[]",
            "summary": "The array of perforations."
          },
          {
            "name": "overlapsPolylines",
            "type": "System.Boolean",
            "summary": "If true, the next argument is computed."
          },
          {
            "name": "overlapsPolylinesResult",
            "type": "Polyline[]",
            "summary": "The array of overlaps, in terms of polylines."
          },
          {
            "name": "overlapsMesh",
            "type": "System.Boolean",
            "summary": "If true, the next argument is computed."
          },
          {
            "name": "overlapsMeshResult",
            "type": "Mesh",
            "summary": "A mesh that represents the overlaps in terms of surfaces."
          },
          {
            "name": "textLog",
            "type": "FileIO.TextLog",
            "summary": "A report of the outcome."
          },
          {
            "name": "cancel",
            "type": "System.Threading.CancellationToken",
            "summary": "A cancellation token."
          },
          {
            "name": "progress",
            "type": "IProgress<double>",
            "summary": "A progress reporter."
          }
        ],
        "returns": "An array of intersection and overlaps polylines."
      },
      {
        "signature": "MeshUnsafeLock GetUnsafeLock(System.Boolean writable)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Allows to obtain unsafe pointers to the underlying unmanaged data structures of the mesh.",
        "since": "6.0",
    "remarks": "The lock implements the IDisposable interface, and one call of its  <b>IDisposable.Dispose()</b> or <b>ReleaseUnsafeLock</b> will update the data structure as required. This can be achieved with a using statement (Using in Vb.Net).",
        "parameters": [
          {
            "name": "writable",
            "type": "System.Boolean",
            "summary": "True if user will need to write onto the structure. False otherwise."
          }
        ],
        "returns": "A lock that needs to be released."
      },
      {
        "signature": "System.Boolean HealNakedEdges(System.Double distance)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Attempts to \"heal\" naked edges in a mesh based on a given distance. First attempts to move vertices to neighboring vertices that are within that distance away. Then it finds edges that have a closest point to the vertex within the distance and splits the edge. When it finds one it splits the edge and makes two new edges using that point.",
        "since": "6.0",
        "parameters": [
          {
            "name": "distance",
            "type": "System.Double",
            "summary": "Distance to not exceed when modifying the mesh."
          }
        ],
        "returns": "True if successful, False otherwise."
      },
      {
        "signature": "System.Void InvalidateCachedTextureCoordinates(System.Boolean bOnlyInvalidateCachedSurfaceParameterMapping)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Invalidates all cached texture coordinates. Call this function when you have made changes that will affect the texture coordinates on the mesh.",
        "since": "8.0",
        "parameters": [
          {
            "name": "bOnlyInvalidateCachedSurfaceParameterMapping",
            "type": "System.Boolean",
            "summary": "If True then only cached surface parameter mapping texture coordinates will be invalidated. Use this after making changes to the m_S array."
          }
        ]
      },
      {
        "signature": "System.Boolean IsManifold()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns True if every mesh \"edge\" has at most two faces.",
        "since": "7.6",
        "returns": "True if the mesh is manifold, False otherwise."
      },
      {
        "signature": "System.Boolean IsManifold(System.Boolean topologicalTest, out System.Boolean isOriented, out System.Boolean hasBoundary)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets a value indicating whether or not the mesh is manifold. A manifold mesh does not have any edge that borders more than two faces.",
        "since": "5.0",
        "parameters": [
          {
            "name": "topologicalTest",
            "type": "System.Boolean",
            "summary": "If true, the query treats coincident vertices as the same."
          },
          {
            "name": "isOriented",
            "type": "System.Boolean",
            "summary": "isOriented will be set to True if the mesh is a manifold and adjacent faces have compatible face normals."
          },
          {
            "name": "hasBoundary",
            "type": "System.Boolean",
            "summary": "hasBoundary will be set to True if the mesh is a manifold and there is at least one \"edge\" with no more than one adjacent face."
          }
        ],
        "returns": "True if every mesh \"edge\" has at most two adjacent faces."
      },
      {
        "signature": "System.Boolean IsPointInside(Point3d point, System.Double tolerance, System.Boolean strictlyIn)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Determines if a point is inside a solid mesh.",
        "since": "5.0",
    "remarks": "The caller is responsible for making certain the mesh is valid, closed, and 2-manifold before calling this function. If the mesh is not, the behavior is undetermined.",
        "parameters": [
          {
            "name": "point",
            "type": "Point3d",
            "summary": "3d point to test."
          },
          {
            "name": "tolerance",
            "type": "System.Double",
            "summary": "(>=0) 3d distance tolerance used for ray-mesh intersection and determining strict inclusion. This is expected to be a tiny value."
          },
          {
            "name": "strictlyIn",
            "type": "System.Boolean",
            "summary": "If strictlyIn is true, then point must be inside mesh by at least tolerance in order for this function to return true. If strictlyIn is false, then this function will return True if point is inside or the distance from point to a mesh face is <= tolerance."
          }
        ],
        "returns": "True if point is inside the solid mesh, False if not."
      },
      {
        "signature": "System.Boolean MatchEdges(System.Double distance, System.Boolean rachet)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Moves face edges of an open mesh to meet adjacent face edges. The method will first try to match vertices, and then it will try to split edges to make the edges match.",
        "since": "7.4",
        "parameters": [
          {
            "name": "distance",
            "type": "System.Double",
            "summary": "The distance tolerance. Use larger tolerances only if you select specific edges to close."
          },
          {
            "name": "rachet",
            "type": "System.Boolean",
            "summary": "If true, matching the mesh takes place in four passes starting at a tolerance that is smaller than your specified tolerance and working up to the specified tolerance with successive passes. This matches small edges first and works up to larger edges. If false, then a single pass is made."
          }
        ],
        "returns": "True of edges were matched, False otherwise."
      },
      {
        "signature": "System.Boolean MergeAllCoplanarFaces(System.Double tolerance, System.Double angleTolerance)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Merges adjacent coplanar faces into single faces.",
        "since": "7.9",
        "parameters": [
          {
            "name": "tolerance",
            "type": "System.Double",
            "summary": "Tolerance for determining when edges are adjacent. When in doubt, use the document's ModelAbsoluteTolerance property."
          },
          {
            "name": "angleTolerance",
            "type": "System.Double",
            "summary": "Angle tolerance, in radians, for determining when faces are parallel. When in doubt, use the document's ModelAngleToleranceRadians property."
          }
        ],
        "returns": "True if faces were merged, False if no faces were merged."
      },
      {
        "signature": "System.Boolean MergeAllCoplanarFaces(System.Double tolerance)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Merges adjacent coplanar faces into single faces.",
        "since": "7.9",
        "parameters": [
          {
            "name": "tolerance",
            "type": "System.Double",
            "summary": "Tolerance for determining when edges are adjacent. When in doubt, use the document's ModelAbsoluteTolerance property."
          }
        ],
        "returns": "True if faces were merged, False if no faces were merged."
      },
      {
        "signature": "System.Void NonConstOperation()",
        "modifiers": ["protected", "override"],
        "protected": true,
        "virtual": false,
        "summary": "Clear local cache on non constant calls"
      },
      {
        "signature": "Vector3d NormalAt(MeshPoint meshPoint)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Evaluate a mesh normal at a set of barycentric coordinates.",
        "since": "5.0",
        "parameters": [
          {
            "name": "meshPoint",
            "type": "MeshPoint",
            "summary": "MeshPoint instance containing a valid Face Index and Barycentric coordinates."
          }
        ],
        "returns": "A Normal vector to the mesh or Vector3d.Unset if the faceIndex is not valid or if the barycentric coordinates could not be evaluated."
      },
      {
        "signature": "Vector3d NormalAt(System.Int32 faceIndex, System.Double t0, System.Double t1, System.Double t2, System.Double t3)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Evaluate a mesh normal at a set of barycentric coordinates. Barycentric coordinates must be assigned in accordance with the rules as defined by MeshPoint.T.",
        "since": "5.0",
        "parameters": [
          {
            "name": "faceIndex",
            "type": "System.Int32",
            "summary": "Index of triangle or quad to evaluate."
          },
          {
            "name": "t0",
            "type": "System.Double",
            "summary": "First barycentric coordinate."
          },
          {
            "name": "t1",
            "type": "System.Double",
            "summary": "Second barycentric coordinate."
          },
          {
            "name": "t2",
            "type": "System.Double",
            "summary": "Third barycentric coordinate."
          },
          {
            "name": "t3",
            "type": "System.Double",
            "summary": "Fourth barycentric coordinate. If the face is a triangle, this coordinate will be ignored."
          }
        ],
        "returns": "A Normal vector to the mesh or Vector3d.Unset if the faceIndex is not valid or if the barycentric coordinates could not be evaluated."
      },
      {
        "signature": "Mesh Offset(System.Double distance, System.Boolean solidify, Vector3d direction, out List<int> wallFacesOut)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Makes a new mesh with vertices offset a distance along the direction parameter. Optionally, based on the value of solidify, adds the input mesh and a ribbon of faces along any naked edges. If solidify is False it acts exactly as the Offset(distance) function. Returns list of wall faces, i.e. the faces that connect original and offset mesh when solidified.",
        "parameters": [
          {
            "name": "distance",
            "type": "System.Double",
            "summary": "A distance value."
          },
          {
            "name": "solidify",
            "type": "System.Boolean",
            "summary": "True if the mesh should be solidified."
          },
          {
            "name": "direction",
            "type": "Vector3d",
            "summary": "Direction of offset for all vertices."
          },
          {
            "name": "wallFacesOut",
            "type": "List<int>",
            "summary": "Returns list of wall faces."
          }
        ],
        "returns": "A new mesh on success, or None on failure."
      },
      {
        "signature": "Mesh Offset(System.Double distance, System.Boolean solidify, Vector3d direction)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Makes a new mesh with vertices offset a distance along the direction parameter. Optionally, based on the value of solidify, adds the input mesh and a ribbon of faces along any naked edges. If solidify is False it acts exactly as the Offset(distance) function.",
        "since": "6.2",
        "parameters": [
          {
            "name": "distance",
            "type": "System.Double",
            "summary": "A distance value."
          },
          {
            "name": "solidify",
            "type": "System.Boolean",
            "summary": "True if the mesh should be solidified."
          },
          {
            "name": "direction",
            "type": "Vector3d",
            "summary": "Direction of offset for all vertices."
          }
        ],
        "returns": "A new mesh on success, or None on failure."
      },
      {
        "signature": "Mesh Offset(System.Double distance, System.Boolean solidify)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Makes a new mesh with vertices offset a distance in the opposite direction of the existing vertex normals. Optionally, based on the value of solidify, adds the input mesh and a ribbon of faces along any naked edges. If solidify is False it acts exactly as the Offset(distance) function.",
        "since": "5.0",
        "parameters": [
          {
            "name": "distance",
            "type": "System.Double",
            "summary": "A distance value."
          },
          {
            "name": "solidify",
            "type": "System.Boolean",
            "summary": "True if the mesh should be solidified."
          }
        ],
        "returns": "A new mesh on success, or None on failure."
      },
      {
        "signature": "Mesh Offset(System.Double distance)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Makes a new mesh with vertices offset a distance in the opposite direction of the existing vertex normals. Same as Mesh.Offset(distance, false)",
        "since": "5.0",
        "parameters": [
          {
            "name": "distance",
            "type": "System.Double",
            "summary": "A distance value to use for offsetting."
          }
        ],
        "returns": "A new mesh on success, or None on failure."
      },
      {
        "signature": "System.Void OnSwitchToNonConst()",
        "modifiers": ["protected", "override"],
        "protected": true,
        "virtual": false,
        "summary": "Performs some memory cleanup if necessary"
      },
      {
        "signature": "System.Boolean PatchSingleFace(IEnumerable<ComponentIndex> components)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Creates a single mesh face from the given input. The new mesh will be apppended to this mesh.",
        "since": "8.0",
        "parameters": [
          {
            "name": "components",
            "type": "IEnumerable<ComponentIndex>",
            "summary": "An enumeration of component indexes from this mesh. This can be one following combinations: 1 vertex (MeshVertex or MeshTopologyVertex) and 1 edge (MeshTopologyEdge), 2 edges (MeshTopologyEdge), or 3 vertices (MeshVertex or MeshTopologyVertex)."
          }
        ],
        "returns": "True if successful, False otherwise."
      },
      {
        "signature": "Point3d PointAt(MeshPoint meshPoint)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Evaluate a mesh at a set of barycentric coordinates.",
        "since": "5.0",
        "parameters": [
          {
            "name": "meshPoint",
            "type": "MeshPoint",
            "summary": "MeshPoint instance containing a valid Face Index and Barycentric coordinates."
          }
        ],
        "returns": "A Point on the mesh or Point3d.Unset if the faceIndex is not valid or if the barycentric coordinates could not be evaluated."
      },
      {
        "signature": "Point3d PointAt(System.Int32 faceIndex, System.Double t0, System.Double t1, System.Double t2, System.Double t3)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Evaluates a mesh at a set of barycentric coordinates. Barycentric coordinates must be assigned in accordance with the rules as defined by MeshPoint.T.",
        "since": "5.0",
        "parameters": [
          {
            "name": "faceIndex",
            "type": "System.Int32",
            "summary": "Index of triangle or quad to evaluate."
          },
          {
            "name": "t0",
            "type": "System.Double",
            "summary": "First barycentric coordinate."
          },
          {
            "name": "t1",
            "type": "System.Double",
            "summary": "Second barycentric coordinate."
          },
          {
            "name": "t2",
            "type": "System.Double",
            "summary": "Third barycentric coordinate."
          },
          {
            "name": "t3",
            "type": "System.Double",
            "summary": "Fourth barycentric coordinate. If the face is a triangle, this coordinate will be ignored."
          }
        ],
        "returns": "A Point on the mesh or Point3d.Unset if the faceIndex is not valid or if the barycentric coordinates could not be evaluated."
      },
      {
        "signature": "PolylineCurve PullCurve(Curve curve, System.Double tolerance)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets a polyline approximation of the input curve and then moves its control points to the closest point on the mesh. Then it \"connects the points\" over edges so that a polyline on the mesh is formed.",
        "since": "7.0",
        "parameters": [
          {
            "name": "curve",
            "type": "Curve",
            "summary": "A curve to pull."
          },
          {
            "name": "tolerance",
            "type": "System.Double",
            "summary": "A tolerance value."
          }
        ],
        "returns": "A polyline curve, or None if none could be constructed."
      },
      {
        "signature": "Point3d[] PullPointsToMesh(IEnumerable<Point3d> points)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Pulls a collection of points to a mesh.",
        "since": "5.0",
        "parameters": [
          {
            "name": "points",
            "type": "IEnumerable<Point3d>",
            "summary": "An array, a list or any enumerable set of points."
          }
        ],
        "returns": "An array of points. This can be empty."
      },
      {
        "signature": "Mesh QuadRemesh(IEnumerable<int> faceBlocks, QuadRemeshParameters parameters, IEnumerable<Curve> guideCurves, IProgress<int> progress, System.Threading.CancellationToken cancelToken)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Quad remesh this mesh.",
        "since": "9.0",
        "parameters": [
          {
            "name": "faceBlocks",
            "type": "IEnumerable<int>",
            "summary": ""
          },
          {
            "name": "parameters",
            "type": "QuadRemeshParameters",
            "summary": ""
          },
          {
            "name": "guideCurves",
            "type": "IEnumerable<Curve>",
            "summary": "A curve array used to influence mesh face layout The curves should touch the input mesh Set Guide Curve Influence by using QuadRemeshParameters.GuideCurveInfluence"
          },
          {
            "name": "progress",
            "type": "IProgress<int>",
            "summary": ""
          },
          {
            "name": "cancelToken",
            "type": "System.Threading.CancellationToken",
            "summary": ""
          }
        ]
      },
      {
        "signature": "Mesh QuadRemesh(QuadRemeshParameters parameters, IEnumerable<Curve> guideCurves)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Quad remesh this mesh.",
        "since": "7.0",
        "parameters": [
          {
            "name": "parameters",
            "type": "QuadRemeshParameters",
            "summary": ""
          },
          {
            "name": "guideCurves",
            "type": "IEnumerable<Curve>",
            "summary": "A curve array used to influence mesh face layout The curves should touch the input mesh Set Guide Curve Influence by using QuadRemeshParameters.GuideCurveInfluence"
          }
        ]
      },
      {
        "signature": "Mesh QuadRemesh(QuadRemeshParameters parameters)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Quad remesh this mesh.",
        "since": "7.0"
      },
      {
        "signature": "Task<Mesh> QuadRemeshAsync(IEnumerable<int> faceBlocks, QuadRemeshParameters parameters, IEnumerable<Curve> guideCurves, IProgress<int> progress, System.Threading.CancellationToken cancelToken)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Quad remesh this mesh asynchronously.",
        "since": "7.0",
        "parameters": [
          {
            "name": "faceBlocks",
            "type": "IEnumerable<int>",
            "summary": ""
          },
          {
            "name": "parameters",
            "type": "QuadRemeshParameters",
            "summary": ""
          },
          {
            "name": "guideCurves",
            "type": "IEnumerable<Curve>",
            "summary": "A curve array used to influence mesh face layout The curves should touch the input mesh Set Guide Curve Influence by using QuadRemeshParameters.GuideCurveInfluence"
          },
          {
            "name": "progress",
            "type": "IProgress<int>",
            "summary": ""
          },
          {
            "name": "cancelToken",
            "type": "System.Threading.CancellationToken",
            "summary": ""
          }
        ]
      },
      {
        "signature": "Task<Mesh> QuadRemeshAsync(QuadRemeshParameters parameters, IEnumerable<Curve> guideCurves, IProgress<int> progress, System.Threading.CancellationToken cancelToken)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Quad remesh this mesh asynchronously.",
        "since": "7.0",
        "parameters": [
          {
            "name": "parameters",
            "type": "QuadRemeshParameters",
            "summary": ""
          },
          {
            "name": "guideCurves",
            "type": "IEnumerable<Curve>",
            "summary": "A curve array used to influence mesh face layout The curves should touch the input mesh Set Guide Curve Influence by using QuadRemeshParameters.GuideCurveInfluence"
          },
          {
            "name": "progress",
            "type": "IProgress<int>",
            "summary": ""
          },
          {
            "name": "cancelToken",
            "type": "System.Threading.CancellationToken",
            "summary": ""
          }
        ]
      },
      {
        "signature": "Task<Mesh> QuadRemeshAsync(QuadRemeshParameters parameters, IProgress<int> progress, System.Threading.CancellationToken cancelToken)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Quad remesh this mesh asynchronously.",
        "since": "7.0"
      },
      {
        "signature": "System.Void RebuildNormals()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Removes mesh normals and reconstructs the face and vertex normals based on the orientation of the faces.",
        "since": "6.0"
      },
      {
        "signature": "System.Boolean Reduce(ReduceMeshParameters parameters, System.Boolean threaded)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Reduce polygon count",
        "since": "6.15",
        "parameters": [
          {
            "name": "parameters",
            "type": "ReduceMeshParameters",
            "summary": "Parameters"
          },
          {
            "name": "threaded",
            "type": "System.Boolean",
            "summary": "If True then will run computation inside a worker thread and ignore any provided CancellationTokens and ProgressReporters. If False then will run on main thread."
          }
        ],
        "returns": "True if mesh is successfully reduced and False if mesh could not be reduced for some reason."
      },
      {
        "signature": "System.Boolean Reduce(ReduceMeshParameters parameters)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Reduce polygon count",
        "since": "6.0",
        "parameters": [
          {
            "name": "parameters",
            "type": "ReduceMeshParameters",
            "summary": "Parameters"
          }
        ],
        "returns": "True if mesh is successfully reduced and False if mesh could not be reduced for some reason."
      },
      {
        "signature": "System.Boolean Reduce(System.Int32 desiredPolygonCount, System.Boolean allowDistortion, System.Int32 accuracy, System.Boolean normalizeSize, System.Boolean threaded)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Reduce polygon count",
        "since": "6.15",
        "parameters": [
          {
            "name": "desiredPolygonCount",
            "type": "System.Int32",
            "summary": "desired or target number of faces"
          },
          {
            "name": "allowDistortion",
            "type": "System.Boolean",
            "summary": "If True mesh appearance is not changed even if the target polygon count is not reached"
          },
          {
            "name": "accuracy",
            "type": "System.Int32",
            "summary": "Integer from 1 to 10 telling how accurate reduction algorithm to use. Greater number gives more accurate results"
          },
          {
            "name": "normalizeSize",
            "type": "System.Boolean",
            "summary": "If True mesh is fitted to an axis aligned unit cube until reduction is complete"
          },
          {
            "name": "threaded",
            "type": "System.Boolean",
            "summary": "If True then will run computation inside a worker thread and ignore any provided CancellationTokens and ProgressReporters. If False then will run on main thread."
          }
        ],
        "returns": "True if mesh is successfully reduced and False if mesh could not be reduced for some reason."
      },
      {
        "signature": "System.Boolean Reduce(System.Int32 desiredPolygonCount, System.Boolean allowDistortion, System.Int32 accuracy, System.Boolean normalizeSize, System.Threading.CancellationToken cancelToken, IProgress<double> progress, out System.String problemDescription, System.Boolean threaded)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Reduce polygon count",
        "since": "6.15",
        "parameters": [
          {
            "name": "desiredPolygonCount",
            "type": "System.Int32",
            "summary": "desired or target number of faces"
          },
          {
            "name": "allowDistortion",
            "type": "System.Boolean",
            "summary": "If True mesh appearance is not changed even if the target polygon count is not reached"
          },
          {
            "name": "accuracy",
            "type": "System.Int32",
            "summary": "Integer from 1 to 10 telling how accurate reduction algorithm to use. Greater number gives more accurate results"
          },
          {
            "name": "normalizeSize",
            "type": "System.Boolean",
            "summary": "If True mesh is fitted to an axis aligned unit cube until reduction is complete"
          },
          {
            "name": "cancelToken",
            "type": "System.Threading.CancellationToken",
            "summary": ""
          },
          {
            "name": "progress",
            "type": "IProgress<double>",
            "summary": ""
          },
          {
            "name": "problemDescription",
            "type": "System.String",
            "summary": ""
          },
          {
            "name": "threaded",
            "type": "System.Boolean",
            "summary": "If True then will run computation inside a worker thread and ignore any provided CancellationTokens and ProgressReporters. If False then will run on main thread."
          }
        ],
        "returns": "True if mesh is successfully reduced and False if mesh could not be reduced for some reason."
      },
      {
        "signature": "System.Boolean Reduce(System.Int32 desiredPolygonCount, System.Boolean allowDistortion, System.Int32 accuracy, System.Boolean normalizeSize, System.Threading.CancellationToken cancelToken, IProgress<double> progress, out System.String problemDescription)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Reduce polygon count",
        "since": "6.0",
        "parameters": [
          {
            "name": "desiredPolygonCount",
            "type": "System.Int32",
            "summary": "desired or target number of faces"
          },
          {
            "name": "allowDistortion",
            "type": "System.Boolean",
            "summary": "If True mesh appearance is not changed even if the target polygon count is not reached"
          },
          {
            "name": "accuracy",
            "type": "System.Int32",
            "summary": "Integer from 1 to 10 telling how accurate reduction algorithm to use. Greater number gives more accurate results"
          },
          {
            "name": "normalizeSize",
            "type": "System.Boolean",
            "summary": "If True mesh is fitted to an axis aligned unit cube until reduction is complete"
          },
          {
            "name": "cancelToken",
            "type": "System.Threading.CancellationToken",
            "summary": ""
          },
          {
            "name": "progress",
            "type": "IProgress<double>",
            "summary": ""
          },
          {
            "name": "problemDescription",
            "type": "System.String",
            "summary": ""
          }
        ],
        "returns": "True if mesh is successfully reduced and False if mesh could not be reduced for some reason."
      },
      {
        "signature": "System.Boolean Reduce(System.Int32 desiredPolygonCount, System.Boolean allowDistortion, System.Int32 accuracy, System.Boolean normalizeSize)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Reduce polygon count",
        "since": "5.10",
        "parameters": [
          {
            "name": "desiredPolygonCount",
            "type": "System.Int32",
            "summary": "desired or target number of faces"
          },
          {
            "name": "allowDistortion",
            "type": "System.Boolean",
            "summary": "If True mesh appearance is not changed even if the target polygon count is not reached"
          },
          {
            "name": "accuracy",
            "type": "System.Int32",
            "summary": "Integer from 1 to 10 telling how accurate reduction algorithm to use. Greater number gives more accurate results"
          },
          {
            "name": "normalizeSize",
            "type": "System.Boolean",
            "summary": "If True mesh is fitted to an axis aligned unit cube until reduction is complete"
          }
        ],
        "returns": "True if mesh is successfully reduced and False if mesh could not be reduced for some reason."
      },
      {
        "signature": "System.Void ReleaseUnsafeLock(MeshUnsafeLock meshData)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Updates the Mesh data with the information that was stored via the <b>MeshUnsafeLock</b> .",
        "since": "6.0",
        "parameters": [
          {
            "name": "meshData",
            "type": "MeshUnsafeLock",
            "summary": "The data that will be unlocked."
          }
        ]
      },
      {
        "signature": "Mesh[] SelfSplit(System.Double tolerance, System.Boolean splitAtCoplanar, System.Boolean createNgons, TextLog textLog, System.Threading.CancellationToken cancel, IProgress<double> progress)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Split a mesh with itself.",
        "since": "9.0",
        "parameters": [
          {
            "name": "tolerance",
            "type": "System.Double",
            "summary": "A value for intersection tolerance.  \nWARNING! Correct values are typically in the (10e-8 - 10e-4) range.  \nAn option is to use the document tolerance diminished by a few orders or magnitude. <b>Intersect.Intersection.MeshIntersectionsTolerancesCoefficient</b>"
          },
          {
            "name": "splitAtCoplanar",
            "type": "System.Boolean",
            "summary": "If false, coplanar areas will not be separated."
          },
          {
            "name": "createNgons",
            "type": "System.Boolean",
            "summary": "If true, creates ngons along the split ridge."
          },
          {
            "name": "textLog",
            "type": "TextLog",
            "summary": "A text log to write onto."
          },
          {
            "name": "cancel",
            "type": "System.Threading.CancellationToken",
            "summary": "A cancellation token."
          },
          {
            "name": "progress",
            "type": "IProgress<double>",
            "summary": "A progress reporter item. This can be null."
          }
        ],
        "returns": "An array of mesh parts representing the split result, or null: when no mesh intersected, or if a cancel stopped the computation."
      },
      {
        "signature": "Mesh[] SelfSplit(System.Double tolerance)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Split a mesh with itself.",
        "since": "9.0",
        "parameters": [
          {
            "name": "tolerance",
            "type": "System.Double",
            "summary": "A value for intersection tolerance.  \nWARNING! Correct values are typically in the (10e-8 - 10e-4) range.  \nAn option is to use the document tolerance diminished by a few orders or magnitude. <b>Intersect.Intersection.MeshIntersectionsTolerancesCoefficient</b>"
          }
        ],
        "returns": "A new mesh array with the split result. This can be None if no result was found."
      },
      {
        "signature": "System.Void SetCachedTextureCoordinates(TextureMapping tm, ref Transform xf)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Set cached texture coordinates using the specified mapping.",
        "since": "5.10"
      },
      {
        "signature": "System.Void SetCachedTextureCoordinatesFromMaterial(RhinoObject rhinoObject, Rhino.DocObjects.Material material)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Sets up cached texture coordinate set for each texture in the material. Textures in the Material define which mapping channels are used and the RhinoObject defines what texture mapping is used for each mapping channel. After this method is called all necessary texture coordinate sets are cached and correct texture coordinates for each texture can be fetched using GetCachedTextureCoordinates(RhinoObject rhinoObject, Rhino.DocObjects.Texture texture)  If any texture coordinates are already cached they will not be re-computed.",
        "since": "8.7",
        "parameters": [
          {
            "name": "rhinoObject",
            "type": "RhinoObject",
            "summary": "RhinoObject that defines texture mappings"
          },
          {
            "name": "material",
            "type": "Rhino.DocObjects.Material",
            "summary": "Material with textures that define mapping channels"
          }
        ]
      },
      {
        "signature": "System.Boolean SetSurfaceParametersFromTextureCoordinates()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "If the mesh does not have surface evaluation parameters, has texture coordinates, and the surface parameters can be set in a way so the existing texture coordinates can be computed from the surface parameters, then this function sets the surface parameters. This is useful when meshes that have texture coordinates and do not have surface parameters want to set the surface parameters in a way so that the texture mapping of type TextureMappingType.SurfaceParameters will restore the texture coordinates.",
        "since": "8.0",
        "returns": "True - successful False - failure - no changes made to the mesh"
      },
      {
        "signature": "System.Void SetTextureCoordinates(TextureMapping tm, Transform xf, System.Boolean lazy, System.Boolean seamCheck)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Set texture coordinates using given mapping and applying given transform.  Set lazy to False to generate texture coordinates even if they already exist.",
        "since": "7.0",
        "parameters": [
          {
            "name": "tm",
            "type": "TextureMapping",
            "summary": "Texture mapping"
          },
          {
            "name": "xf",
            "type": "Transform",
            "summary": "Transform to apply to the texture mapping"
          },
          {
            "name": "lazy",
            "type": "System.Boolean",
            "summary": "When matching texture coordinates alreday exist controls whether to keep them (true) or recreate them (false)"
          },
          {
            "name": "seamCheck",
            "type": "System.Boolean",
            "summary": "If True then some mesh edges might be unwelded to better represent UV discontinuities in the texture mapping. This only happens for the following mappings: Box, Sphere, Cylinder"
          }
        ]
      },
      {
        "signature": "System.Void SetTextureCoordinates(TextureMapping tm, Transform xf, System.Boolean lazy)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Set texture coordinates using given mapping and applying given transform.  Set lazy to False to generate texture coordinates even if they already exist.",
        "since": "6.0",
        "parameters": [
          {
            "name": "tm",
            "type": "TextureMapping",
            "summary": "Texture mapping"
          },
          {
            "name": "xf",
            "type": "Transform",
            "summary": "Transform to apply to the texture mapping"
          },
          {
            "name": "lazy",
            "type": "System.Boolean",
            "summary": "When matching texture coordinates alreday exist controls whether to keep them (true) or recreate them (false)"
          }
        ]
      },
      {
        "signature": "Mesh ShrinkWrap(ShrinkWrapParameters parameters, System.Threading.CancellationToken token)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns a ShrinkWrapped mesh or None when a mesh was not created or error. Supports cancellation during volumetric calculations.",
        "since": "8.0",
        "parameters": [
          {
            "name": "parameters",
            "type": "ShrinkWrapParameters",
            "summary": "A ShrinkWrapParameters object that specifies the configuration settings for the ShrinkWrap process."
          },
          {
            "name": "token",
            "type": "System.Threading.CancellationToken",
            "summary": "Supports cancellation during volumetric calculations."
          }
        ]
      },
      {
        "signature": "Mesh ShrinkWrap(ShrinkWrapParameters parameters)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns a ShrinkWrapped mesh or None when a mesh was not created or error.",
        "since": "8.0",
        "parameters": [
          {
            "name": "parameters",
            "type": "ShrinkWrapParameters",
            "summary": "A ShrinkWrapParameters object that specifies the configuration settings for the ShrinkWrap process."
          }
        ]
      },
      {
        "signature": "System.Boolean Smooth(IEnumerable<int> vertexIndices, System.Double smoothFactor, System.Boolean bXSmooth, System.Boolean bYSmooth, System.Boolean bZSmooth, System.Boolean bFixBoundaries, SmoothingCoordinateSystem coordinateSystem, Plane plane)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Smooths part of a mesh by averaging the positions of mesh vertices in a specified region.",
        "since": "6.8",
        "parameters": [
          {
            "name": "vertexIndices",
            "type": "IEnumerable<int>",
            "summary": "The mesh vertex indices that specify the part of the mesh to smooth."
          },
          {
            "name": "smoothFactor",
            "type": "System.Double",
            "summary": "The smoothing factor, which controls how much vertices move towards the average of the neighboring vertices."
          },
          {
            "name": "bXSmooth",
            "type": "System.Boolean",
            "summary": "When True vertices move in X axis direction."
          },
          {
            "name": "bYSmooth",
            "type": "System.Boolean",
            "summary": "When True vertices move in Y axis direction."
          },
          {
            "name": "bZSmooth",
            "type": "System.Boolean",
            "summary": "When True vertices move in Z axis direction."
          },
          {
            "name": "bFixBoundaries",
            "type": "System.Boolean",
            "summary": "When True vertices along naked edges will not be modified."
          },
          {
            "name": "coordinateSystem",
            "type": "SmoothingCoordinateSystem",
            "summary": "The coordinates to determine the direction of the smoothing."
          },
          {
            "name": "plane",
            "type": "Plane",
            "summary": "If SmoothingCoordinateSystem.CPlane specified, then the construction plane."
          }
        ],
        "returns": "True if successful, False otherwise."
      },
      {
        "signature": "System.Boolean Smooth(IEnumerable<int> vertexIndices, System.Double smoothFactor, System.Int32 numSteps, System.Boolean bXSmooth, System.Boolean bYSmooth, System.Boolean bZSmooth, System.Boolean bFixBoundaries, SmoothingCoordinateSystem coordinateSystem, Plane plane)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Smooths part of a mesh by averaging the positions of mesh vertices in a specified region.",
        "since": "8.0",
        "parameters": [
          {
            "name": "vertexIndices",
            "type": "IEnumerable<int>",
            "summary": "The mesh vertex indices that specify the part of the mesh to smooth."
          },
          {
            "name": "smoothFactor",
            "type": "System.Double",
            "summary": "The smoothing factor, which controls how much vertices move towards the average of the neighboring vertices."
          },
          {
            "name": "numSteps",
            "type": "System.Int32",
            "summary": "The number of smoothing iterations."
          },
          {
            "name": "bXSmooth",
            "type": "System.Boolean",
            "summary": "When True vertices move in X axis direction."
          },
          {
            "name": "bYSmooth",
            "type": "System.Boolean",
            "summary": "When True vertices move in Y axis direction."
          },
          {
            "name": "bZSmooth",
            "type": "System.Boolean",
            "summary": "When True vertices move in Z axis direction."
          },
          {
            "name": "bFixBoundaries",
            "type": "System.Boolean",
            "summary": "When True vertices along naked edges will not be modified."
          },
          {
            "name": "coordinateSystem",
            "type": "SmoothingCoordinateSystem",
            "summary": "The coordinates to determine the direction of the smoothing."
          },
          {
            "name": "plane",
            "type": "Plane",
            "summary": "If SmoothingCoordinateSystem.CPlane specified, then the construction plane."
          }
        ],
        "returns": "True if successful, False otherwise."
      },
      {
        "signature": "System.Boolean Smooth(System.Double smoothFactor, System.Boolean bXSmooth, System.Boolean bYSmooth, System.Boolean bZSmooth, System.Boolean bFixBoundaries, SmoothingCoordinateSystem coordinateSystem, Plane plane)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Smooths a mesh by averaging the positions of mesh vertices in a specified region.",
        "since": "6.0",
        "parameters": [
          {
            "name": "smoothFactor",
            "type": "System.Double",
            "summary": "The smoothing factor, which controls how much vertices move towards the average of the neighboring vertices."
          },
          {
            "name": "bXSmooth",
            "type": "System.Boolean",
            "summary": "When True vertices move in X axis direction."
          },
          {
            "name": "bYSmooth",
            "type": "System.Boolean",
            "summary": "When True vertices move in Y axis direction."
          },
          {
            "name": "bZSmooth",
            "type": "System.Boolean",
            "summary": "When True vertices move in Z axis direction."
          },
          {
            "name": "bFixBoundaries",
            "type": "System.Boolean",
            "summary": "When True vertices along naked edges will not be modified."
          },
          {
            "name": "coordinateSystem",
            "type": "SmoothingCoordinateSystem",
            "summary": "The coordinates to determine the direction of the smoothing."
          },
          {
            "name": "plane",
            "type": "Plane",
            "summary": "If SmoothingCoordinateSystem.CPlane specified, then the construction plane."
          }
        ],
        "returns": "True if successful, False otherwise."
      },
      {
        "signature": "System.Boolean Smooth(System.Double smoothFactor, System.Boolean bXSmooth, System.Boolean bYSmooth, System.Boolean bZSmooth, System.Boolean bFixBoundaries, SmoothingCoordinateSystem coordinateSystem)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Smooths a mesh by averaging the positions of mesh vertices in a specified region.",
        "since": "6.0",
        "parameters": [
          {
            "name": "smoothFactor",
            "type": "System.Double",
            "summary": "The smoothing factor, which controls how much vertices move towards the average of the neighboring vertices."
          },
          {
            "name": "bXSmooth",
            "type": "System.Boolean",
            "summary": "When True vertices move in X axis direction."
          },
          {
            "name": "bYSmooth",
            "type": "System.Boolean",
            "summary": "When True vertices move in Y axis direction."
          },
          {
            "name": "bZSmooth",
            "type": "System.Boolean",
            "summary": "When True vertices move in Z axis direction."
          },
          {
            "name": "bFixBoundaries",
            "type": "System.Boolean",
            "summary": "When True vertices along naked edges will not be modified."
          },
          {
            "name": "coordinateSystem",
            "type": "SmoothingCoordinateSystem",
            "summary": "The coordinates to determine the direction of the smoothing."
          }
        ],
        "returns": "True if successful, False otherwise."
      },
      {
        "signature": "System.Boolean Smooth(System.Double smoothFactor, System.Int32 numSteps, System.Boolean bXSmooth, System.Boolean bYSmooth, System.Boolean bZSmooth, System.Boolean bFixBoundaries, SmoothingCoordinateSystem coordinateSystem, Plane plane)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Smooths a mesh by averaging the positions of mesh vertices in a specified region.",
        "since": "8.0",
        "parameters": [
          {
            "name": "smoothFactor",
            "type": "System.Double",
            "summary": "The smoothing factor, which controls how much vertices move towards the average of the neighboring vertices."
          },
          {
            "name": "numSteps",
            "type": "System.Int32",
            "summary": "The number of smoothing iterations."
          },
          {
            "name": "bXSmooth",
            "type": "System.Boolean",
            "summary": "When True vertices move in X axis direction."
          },
          {
            "name": "bYSmooth",
            "type": "System.Boolean",
            "summary": "When True vertices move in Y axis direction."
          },
          {
            "name": "bZSmooth",
            "type": "System.Boolean",
            "summary": "When True vertices move in Z axis direction."
          },
          {
            "name": "bFixBoundaries",
            "type": "System.Boolean",
            "summary": "When True vertices along naked edges will not be modified."
          },
          {
            "name": "coordinateSystem",
            "type": "SmoothingCoordinateSystem",
            "summary": "The coordinates to determine the direction of the smoothing."
          },
          {
            "name": "plane",
            "type": "Plane",
            "summary": "If SmoothingCoordinateSystem.CPlane specified, then the construction plane."
          }
        ],
        "returns": "True if successful, False otherwise."
      },
      {
        "signature": "System.Int32 SolidOrientation()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Determines orientation of a \"solid\" mesh.",
        "since": "5.0",
        "returns": "+1 = mesh is solid with outward facing normals.  \n-1 = mesh is solid with inward facing normals.  \n0 = mesh is not solid."
      },
      {
        "signature": "Mesh[] Split(IEnumerable<Mesh> meshes, System.Double tolerance, System.Boolean splitAtCoplanar, System.Boolean createNgons, TextLog textLog, System.Threading.CancellationToken cancel, IProgress<double> progress)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Split a mesh with a collection of meshes.",
        "since": "7.0",
        "parameters": [
          {
            "name": "meshes",
            "type": "IEnumerable<Mesh>",
            "summary": "Meshes to split with."
          },
          {
            "name": "tolerance",
            "type": "System.Double",
            "summary": "A value for intersection tolerance.  \nWARNING! Correct values are typically in the (10e-8 - 10e-4) range.  \nAn option is to use the document tolerance diminished by a few orders or magnitude. <b>Intersect.Intersection.MeshIntersectionsTolerancesCoefficient</b>"
          },
          {
            "name": "splitAtCoplanar",
            "type": "System.Boolean",
            "summary": "If false, coplanar areas will not be separated."
          },
          {
            "name": "createNgons",
            "type": "System.Boolean",
            "summary": "If true, creates ngons along the split ridge."
          },
          {
            "name": "textLog",
            "type": "TextLog",
            "summary": "A text log to write onto."
          },
          {
            "name": "cancel",
            "type": "System.Threading.CancellationToken",
            "summary": "A cancellation token."
          },
          {
            "name": "progress",
            "type": "IProgress<double>",
            "summary": "A progress reporter item. This can be null."
          }
        ],
        "returns": "An array of mesh parts representing the split result, or null: when no mesh intersected, or if a cancel stopped the computation."
      },
      {
        "signature": "Mesh[] Split(IEnumerable<Mesh> meshes, System.Double tolerance, System.Boolean splitAtCoplanar, TextLog textLog, System.Threading.CancellationToken cancel, IProgress<double> progress)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Split a mesh with a collection of meshes.",
        "since": "7.0",
        "parameters": [
          {
            "name": "meshes",
            "type": "IEnumerable<Mesh>",
            "summary": "Meshes to split with."
          },
          {
            "name": "tolerance",
            "type": "System.Double",
            "summary": "A value for intersection tolerance.  \nWARNING! Correct values are typically in the (10e-8 - 10e-4) range.  \nAn option is to use the document tolerance diminished by a few orders or magnitude. <b>Intersect.Intersection.MeshIntersectionsTolerancesCoefficient</b>"
          },
          {
            "name": "splitAtCoplanar",
            "type": "System.Boolean",
            "summary": "If false, coplanar areas will not be separated."
          },
          {
            "name": "textLog",
            "type": "TextLog",
            "summary": "A text log to write onto."
          },
          {
            "name": "cancel",
            "type": "System.Threading.CancellationToken",
            "summary": "A cancellation token."
          },
          {
            "name": "progress",
            "type": "IProgress<double>",
            "summary": "A progress reporter item. This can be null."
          }
        ],
        "returns": "An array of mesh parts representing the split result, or null: when no mesh intersected, or if a cancel stopped the computation."
      },
      {
        "signature": "Mesh[] Split(IEnumerable<Mesh> meshes)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Split a mesh with a collection of meshes. Suggestion: upgrade to overload with tolerance. Does not split at coplanar intersections.",
        "since": "5.0",
        "parameters": [
          {
            "name": "meshes",
            "type": "IEnumerable<Mesh>",
            "summary": "Meshes to split with."
          }
        ],
        "returns": "An array of mesh segments representing the split result."
      },
      {
        "signature": "Mesh[] Split(Mesh mesh)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Split a mesh with another mesh. Suggestion: upgrade to overload with tolerance.",
        "since": "5.0",
        "parameters": [
          {
            "name": "mesh",
            "type": "Mesh",
            "summary": "Mesh to split with."
          }
        ],
        "returns": "An array of mesh segments representing the split result."
      },
      {
        "signature": "Mesh[] Split(Plane plane)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Split a mesh by an infinite plane.",
        "since": "5.0",
        "parameters": [
          {
            "name": "plane",
            "type": "Plane",
            "summary": "The splitting plane."
          }
        ],
        "returns": "A new mesh array with the split result. This can be None if no result was found."
      },
      {
        "signature": "Mesh[] SplitDisjointPieces()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Splits up the mesh into its unconnected pieces.",
        "since": "5.0",
        "returns": "An array containing all the disjoint pieces that make up this Mesh."
      },
      {
        "signature": "Mesh[] SplitNon2Manifolds()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Split a mesh where at non-2 manifolds boundaries.",
        "since": "9.0",
        "returns": "An array of mesh parts representing the split result, or null: when no mesh split, or if a cancel stopped the computation."
      },
      {
        "signature": "Mesh[] SplitNon2Manifolds(TextLog textLog, System.Threading.CancellationToken cancel, IProgress<double> progress)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Split a mesh where at non-2 manifolds boundaries.",
        "since": "9.0",
        "parameters": [
          {
            "name": "textLog",
            "type": "TextLog",
            "summary": "A text log to write onto."
          },
          {
            "name": "cancel",
            "type": "System.Threading.CancellationToken",
            "summary": "A cancellation token."
          },
          {
            "name": "progress",
            "type": "IProgress<double>",
            "summary": "A progress reporter item. This can be null."
          }
        ],
        "returns": "An array of mesh parts representing the split result, or null: when no mesh split, or if a cancel stopped the computation."
      },
      {
        "signature": "Mesh[] SplitWithProjectedPolylines(IEnumerable<PolylineCurve> curves, System.Double tolerance, TextLog textLog, System.Threading.CancellationToken cancel, IProgress<double> progress)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Splits a mesh by adding edges in correspondence with input polylines, and divides the mesh at partitioned areas. Polyline segments that are measured not to be on the mesh will be ignored.",
        "since": "7.0",
        "parameters": [
          {
            "name": "curves",
            "type": "IEnumerable<PolylineCurve>",
            "summary": "An array, a list or any enumerable of polyline curves."
          },
          {
            "name": "tolerance",
            "type": "System.Double",
            "summary": "A tolerance value."
          },
          {
            "name": "textLog",
            "type": "TextLog",
            "summary": "A text log, or null."
          },
          {
            "name": "cancel",
            "type": "System.Threading.CancellationToken",
            "summary": "A cancellation token to stop the computation at a given point."
          },
          {
            "name": "progress",
            "type": "IProgress<double>",
            "summary": "A progress reporter to inform the user about progress. The reported value is indicative."
          }
        ],
        "returns": "An array of meshes, or None if no change would happen."
      },
      {
        "signature": "Mesh[] SplitWithProjectedPolylines(IEnumerable<PolylineCurve> curves, System.Double tolerance)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Splits a mesh by adding edges in correspondence with input polylines, and divides the mesh at partitioned areas. Polyline segments that are measured not to be on the mesh will be ignored.",
        "since": "7.0",
        "parameters": [
          {
            "name": "curves",
            "type": "IEnumerable<PolylineCurve>",
            "summary": "An array, a list or any enumerable of polyline curves."
          },
          {
            "name": "tolerance",
            "type": "System.Double",
            "summary": "A tolerance value."
          }
        ],
        "returns": "An array of meshes, or None if no change would happen."
      },
      {
        "signature": "System.Boolean Subdivide()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Subdivides the faces of the mesh.",
        "since": "8.0",
        "returns": "True if successful, False otherwise."
      },
      {
        "signature": "System.Boolean Subdivide(IEnumerable<int> faceIndices)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Subdivides specific faces of the mesh.",
        "since": "8.0",
        "parameters": [
          {
            "name": "faceIndices",
            "type": "IEnumerable<int>",
            "summary": "Indices of the faces to subdivide."
          }
        ],
        "returns": "True if successful, False otherwise."
      },
      {
        "signature": "System.Int32 UnifyNormals()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Attempts to fix inconsistencies in the directions of mesh faces in a mesh. This function does not modify mesh vertex normals, it rearranges the mesh face winding and face normals to make them all consistent. Note, you may want to call Mesh.Normals.ComputeNormals() to recompute vertex normals after calling this functions.",
        "since": "5.0",
        "returns": "number of faces that were modified."
      },
      {
        "signature": "System.Int32 UnifyNormals(System.Boolean countOnly)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Attempts to fix inconsistencies in the directions of mesh faces in a mesh. This function does not modify mesh vertex normals, it rearranges the mesh face winding and face normals to make them all consistent. Note, you may want to call Mesh.Normals.ComputeNormals() to recompute vertex normals after calling this functions.",
        "since": "6.0",
        "parameters": [
          {
            "name": "countOnly",
            "type": "System.Boolean",
            "summary": "If true, then only the number of faces that would be modified is determined."
          }
        ],
        "returns": "If countOnly=false, the number of faces that were modified. If countOnly=true, the number of faces that would be modified."
      },
      {
        "signature": "System.Void Unweld(System.Double angleToleranceRadians, System.Boolean modifyNormals)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Makes sure that faces sharing an edge and having a difference of normal greater than or equal to angleToleranceRadians have unique vertices along that edge, adding vertices if necessary.",
        "since": "5.0",
        "parameters": [
          {
            "name": "angleToleranceRadians",
            "type": "System.Double",
            "summary": "Angle at which to make unique vertices."
          },
          {
            "name": "modifyNormals",
            "type": "System.Boolean",
            "summary": "Determines whether new vertex normals will have the same vertex normal as the original (false) or vertex normals made from the corresponding face normals (true)"
          }
        ]
      },
      {
        "signature": "System.Boolean UnweldEdge(IEnumerable<int> edgeIndices, System.Boolean modifyNormals)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Adds creases to a smooth mesh by creating coincident vertices along selected edges.",
        "since": "6.3",
        "parameters": [
          {
            "name": "edgeIndices",
            "type": "IEnumerable<int>",
            "summary": "An array of mesh topology edge indices."
          },
          {
            "name": "modifyNormals",
            "type": "System.Boolean",
            "summary": "If true, the vertex normals on each side of the edge take the same value as the face to which they belong, giving the mesh a hard edge look. If false, each of the vertex normals on either side of the edge is assigned the same value as the original normal that the pair is replacing, keeping a smooth look."
          }
        ],
        "returns": "True if successful, False otherwise."
      },
      {
        "signature": "System.Boolean UnweldVertices(IEnumerable<int> topologyVertexIndices, System.Boolean modifyNormals)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Ensures that faces sharing a common topological vertex have unique indices into the <b>Collections.MeshVertexList</b> collection.",
        "since": "7.0",
        "parameters": [
          {
            "name": "topologyVertexIndices",
            "type": "IEnumerable<int>",
            "summary": "Topological vertex indices, from the <b>Collections.MeshTopologyVertexList</b> collection, to be unwelded. Use <b>Collections.MeshTopologyVertexList.TopologyVertexIndex</b> to convert from vertex indices to topological vertex indices."
          },
          {
            "name": "modifyNormals",
            "type": "System.Boolean",
            "summary": "If true, the new vertex normals will be calculated from the face normal."
          }
        ],
        "returns": "True if successful, False otherwise."
      },
      {
        "signature": "System.Double Volume()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Compute volume of the mesh.",
        "since": "6.0",
        "returns": "Volume of the mesh."
      },
      {
        "signature": "System.Void Weld(System.Double angleToleranceRadians, System.Boolean preserveSurfaceParameters)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Makes sure that faces sharing an edge and having a difference of normal less than or equal to angleToleranceRadians share vertices along that edge, vertex normals are averaged.",
        "since": "9.0",
        "parameters": [
          {
            "name": "angleToleranceRadians",
            "type": "System.Double",
            "summary": "Angle at which to weld vertices."
          },
          {
            "name": "preserveSurfaceParameters",
            "type": "System.Boolean",
            "summary": "If true, vertex copies whose surface parameters differ are never merged into a single vertex - the edge between them is left unwelded instead of averaging or discarding one side's parameters. Vertex copies whose surface parameters already match are still merged normally."
          }
        ]
      },
      {
        "signature": "System.Void Weld(System.Double angleToleranceRadians)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Makes sure that faces sharing an edge and having a difference of normal less than or equal to angleToleranceRadians share vertices along that edge, vertex normals are averaged.",
        "since": "5.0",
        "parameters": [
          {
            "name": "angleToleranceRadians",
            "type": "System.Double",
            "summary": "Angle at which to weld vertices."
          }
        ]
      },
      {
        "signature": "Mesh WithDisplacement(MeshDisplacementInfo displacement)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Constructs new mesh from the current one, with displacement applied to it.",
        "since": "6.0",
        "parameters": [
          {
            "name": "displacement",
            "type": "MeshDisplacementInfo",
            "summary": "Information on mesh displacement."
          }
        ],
        "returns": "A new mesh with shutlining."
      },
      {
        "signature": "Mesh WithEdgeSoftening(System.Double softeningRadius, System.Boolean chamfer, System.Boolean faceted, System.Boolean force, System.Double angleThreshold)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Constructs new mesh from the current one, with edge softening applied to it.",
        "since": "6.0",
        "parameters": [
          {
            "name": "softeningRadius",
            "type": "System.Double",
            "summary": "The softening radius."
          },
          {
            "name": "chamfer",
            "type": "System.Boolean",
            "summary": "Specifies whether to chamfer the edges."
          },
          {
            "name": "faceted",
            "type": "System.Boolean",
            "summary": "Specifies whether the edges are faceted."
          },
          {
            "name": "force",
            "type": "System.Boolean",
            "summary": "Specifies whether to soften edges despite too large a radius."
          },
          {
            "name": "angleThreshold",
            "type": "System.Double",
            "summary": "Threshold angle (in degrees) which controls whether an edge is softened or not. The angle refers to the angles between the adjacent faces of an edge."
          }
        ],
        "returns": "A new mesh with soft edges."
      },
      {
        "signature": "Mesh WithShutLining(System.Boolean faceted, System.Double tolerance, IEnumerable<ShutLiningCurveInfo> curves)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Constructs new mesh from the current one, with shut lining applied to it.",
        "since": "6.0",
        "parameters": [
          {
            "name": "faceted",
            "type": "System.Boolean",
            "summary": "Specifies whether the shutline is faceted."
          },
          {
            "name": "tolerance",
            "type": "System.Double",
            "summary": "The tolerance of the shutline."
          },
          {
            "name": "curves",
            "type": "IEnumerable<ShutLiningCurveInfo>",
            "summary": "A collection of curve arguments."
          }
        ],
        "returns": "A new mesh with shutlining. Null on failure."
      }
    ]
  },
  {
    "namespace": "Rhino.Geometry",
    "name": "MeshBooleanOptions",
    "dataType": "class",
    "summary": "Contains a set of data to pass to boolean options.",
    "constructors": [
      {
        "signature": "MeshBooleanOptions()",
        "summary": "Initializes a new instance of the MeshBooleanOptions class"
      }
    ],
    "properties": [
      {
        "signature": "CancellationToken CancellationToken",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "A token that allows to request the cancellation of the operation.",
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "IProgress<double> ProgressReporter",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the object that is responsible to keep track of calculation progression.",
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "TextLog TextLog",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets a text log to write computed operations into.",
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "double Tolerance",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets a tolerance value for intersections and overlaps.  <b>Intersect.Intersection.MeshIntersectionsTolerancesCoefficient</b>",
        "since": "8.0",
        "property": ["get", "set"]
      }
    ]
  },
  {
    "namespace": "Rhino.Geometry",
    "name": "MeshCheckParameters",
    "dataType": "struct",
    "summary": "Output of a mesh checking operations.",
    "properties": [
      {
        "signature": "bool CheckForBadNormals",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "If true, then look for vertex normals that are not unit vectors, are zero length or vary greatly from the general direction of the face normals.",
        "since": "7.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool CheckForDegenerateFaces",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "If true, then look for triangles and quads that have zero area and quads where one sub triangle has zero area.",
        "since": "7.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool CheckForDisjointMeshes",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "If true, then look for faces in the mesh that are totally isolated from other faces in the mesh. (i.e. an island of faces, or many islands, that have a boundary of naked edges)",
        "since": "7.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool CheckForDuplicateFaces",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "If true, then look for faces that have vertices (not necessarily vertex indexes) that are identical.",
        "since": "7.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool CheckForExtremelyShortEdges",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "If true, then look for topological edges where the distance between the endpoints is less than ExtremelyShortEdgeDistance.",
        "since": "7.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool CheckForInvalidNgons",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "If true, then look for ngons that have invalid information.",
        "since": "7.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool CheckForNakedEdges",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "If true, then look for topological edges in the mesh topology where the face count is 1. Note, this check is also made if CheckForDuplicateFaces is True but the output is not shown if CheckForNakedEdges is false.",
        "since": "7.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool CheckForNonManifoldEdges",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "If true, then look for topological edges in the mesh topology where the face count is greater than 2. Note, this check is also made if CheckForDuplicateFaces is True but the output is not shown if CheckForNonManifoldEdges is false.",
        "since": "7.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool CheckForRandomFaceNormals",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "If true, then look for adjacent faces that have the same edge orientation. This typically means that clockwise/counterclockwise orientation, and face normal are not in sync.",
        "since": "7.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool CheckForSelfIntersection",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "If true, then look for self intersections.",
        "since": "7.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool CheckForUnusedVertices",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "If true, then look for vertices that are not referenced by any face in the mesh.",
        "since": "7.0",
        "property": ["get", "set"]
      },
      {
        "signature": "int DegenerateFaceCount",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the total degenerate face count for all meshes.",
        "since": "7.0",
        "property": ["get"]
      },
      {
        "signature": "int DisjointMeshCount",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the total count of disjoint pieces for all meshes.",
        "since": "7.0",
        "property": ["get"]
      },
      {
        "signature": "int DuplicateFaceCount",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the total count of duplicate faces for all meshes.",
        "since": "7.0",
        "property": ["get"]
      },
      {
        "signature": "int ExtremelyShortEdgeCount",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the total number of extremely short edges for all meshes.",
        "since": "7.0",
        "property": ["get"]
      },
      {
        "signature": "int InvalidNgonCount",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the total number of invalid ngons for all meshes.",
        "since": "7.0",
        "property": ["get"]
      },
      {
        "signature": "int NakedEdgeCount",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the total number of naked edges for all meshes.",
        "since": "7.0",
        "property": ["get"]
      },
      {
        "signature": "int NonManifoldEdgeCount",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the total number of non-manifold edges for all meshes.",
        "since": "7.0",
        "property": ["get"]
      },
      {
        "signature": "int NonUnitVectorNormalCount",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Get the total count of normals that are not unit vectors for all meshes.",
        "since": "7.0",
        "property": ["get"]
      },
      {
        "signature": "int RandomFaceNormalCount",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the total count of random face normals for all meshes.",
        "since": "7.0",
        "property": ["get"]
      },
      {
        "signature": "int SelfIntersectingPairsCount",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the total count of self intersections for all meshes.",
        "since": "7.0",
        "property": ["get"]
      },
      {
        "signature": "int UnusedVertexCount",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the total count of unused vertices for all meshes.",
        "since": "7.0",
        "property": ["get"]
      },
      {
        "signature": "int VertexFaceNormalsDifferCount",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the total count of vertex normals that differ greatly from face normals for all meshes.",
        "since": "7.0",
        "property": ["get"]
      },
      {
        "signature": "int ZeroLengthNormalCount",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the total count of zero length normals for all meshes.",
        "since": "7.0",
        "property": ["get"]
      }
    ],
    "methods": [
      {
        "signature": "MeshCheckParameters Defaults()",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the default mesh check parameters.",
        "since": "7.0",
        "returns": "The default mesh check parameters."
      }
    ]
  },
  {
    "namespace": "Rhino.Geometry",
    "name": "MeshCurvatureStats",
    "dataType": "class",
    "summary": "Analysis mesh curvature statistics.",
    "interfaces": ["IDisposable"],
    "since": "9.0",
    "constructors": [
      {
        "signature": "MeshCurvatureStats()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Default constructor.",
        "since": "9.0"
      }
    ],
    "properties": [
      {
        "signature": "double Average",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Get the average of \"finite\" values.",
        "since": "9.0",
        "property": ["get"]
      },
      {
        "signature": "double AverageDeviation",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Get the average deviation of \"finite\" values.",
        "since": "9.0",
        "property": ["get"]
      },
      {
        "signature": "int Count",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the number of \"finite\" values.",
        "since": "9.0",
        "property": ["get"]
      },
      {
        "signature": "CurvatureStyle CurvatureStyle",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the curvature style of the curvature statistics.",
        "since": "9.0",
        "property": ["get"]
      },
      {
        "signature": "int InfiniteCount",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the number of \"infinite\" values.",
        "since": "9.0",
        "property": ["get"]
      },
      {
        "signature": "double Infinity",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Curvature values greater than or equal to this are considered infinite and not used to compute the average of \"finite\" values or the average deviation of \"finite\" values.",
        "since": "9.0",
        "property": ["get"]
      },
      {
        "signature": "double Mode",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Get the mode of \"finite\" values.",
        "since": "9.0",
        "property": ["get"]
      },
      {
        "signature": "Interval Range",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the minumum and maximum curvature based on the value of CurvatureStyle: If CurvatureStyle.GaussianCurvature, the min Gaussian curvature and the max Gaussian curvature. If CurvatureStyle.MeanCurvature, the min unsigned mean curvature and the max unsigned mean curvature. If CurvatureStyle.MinimumCurvature, the min maximum unsigned radius of curvature and the max maximum unsigned radius of curvature. If CurvatureStyle.MaximumCurvature, the min minimum unsigned radius of curvature and the the max minimum unsigned radius of curvature.",
        "since": "9.0",
        "property": ["get"]
      }
    ],
    "methods": [
      {
        "signature": "MeshCurvatureStats CreateFromMesh(Mesh analysisMesh, CurvatureStyle curvatureStyle)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Gets curvature statistics from analysis mesh.",
        "since": "9.0",
        "parameters": [
          {
            "name": "analysisMesh",
            "type": "Mesh",
            "summary": "The analysis mesh."
          },
          {
            "name": "curvatureStyle",
            "type": "CurvatureStyle",
            "summary": "The curvature style."
          }
        ],
        "returns": "The curvature statistics."
      },
      {
        "signature": "MeshCurvatureStats CreateFromMeshes(IEnumerable<Mesh> analysisMeshes, CurvatureStyle curvatureStyle)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Gets curvature statistics from analysis meshes, and calculate total statistics.",
        "since": "9.0",
        "parameters": [
          {
            "name": "analysisMeshes",
            "type": "IEnumerable<Mesh>",
            "summary": "An enumeration of analysis meshes."
          },
          {
            "name": "curvatureStyle",
            "type": "CurvatureStyle",
            "summary": "The curvature style."
          }
        ],
        "returns": "The curvature statistics."
      },
      {
        "signature": "System.Void Dispose()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Actively releases the unmanaged pointer.",
        "since": "9.0"
      }
    ]
  },
  {
    "namespace": "Rhino.Geometry",
    "name": "MeshDisplacementInfo",
    "dataType": "class",
    "summary": "Contains mesh displacement information.",
    "constructors": [
      {
        "signature": "MeshDisplacementInfo(RenderTexture texture, TextureMapping mapping)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Constructs a displacement information instance with default values. Users of this class should not rely on default values to stay constant across service releases.",
        "since": "6.0"
      }
    ],
    "properties": [
      {
        "signature": "double Black",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Value considered lowest point in the displacement.",
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "double BlackMove",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "The amount of displacement for the black color in the texture.",
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "int ChannelNumber",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Mapping channel number for the displacement mapping.",
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "int FaceLimit",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Runs a mesh reduction as a post process o simplify the result of displacement to meet the specified number of faces.",
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "int FairingAmount",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Straightens rough feature edges. The value specifies the number of passes.",
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "Transform InstanceTransform",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Instance transformation of the mesh.",
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "TextureMapping Mapping",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "The texture mapping of the mesh.",
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "Transform MappingTransform",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Texture mapping transform.",
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "int MemoryLimit",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Specifies how much memory can be allocated for use by the displacement mesh. Value in megabytes.",
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "double PostWeldAngle",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Specifies the maximum angle between face normals of adjacent faces that will get welded together.",
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "double RefineSensitivity",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Specifies how sensitive the divider for contrasts is on the     displacement texture.  \nSpecify 1 to split all mesh edges on each refine step.  \nSpecify 0.99 to make even slight contrasts on the displacement     texture cause edges to be split.  \nSpecifying 0.01 only splits edges where heavy contrast     exists.",
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "int RefineStepCount",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Specifies the number of refinement passes.",
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "double SweepPitch",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Specifies how densely the object is initially subdivided. The lower the value, the higher the resolution of the displaced mesh.",
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "RenderTexture Texture",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "The texture used as displacement.",
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "double White",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Value considered highest point of the displacement texture.",
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "double WhiteMove",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "The amount of displacement for the white color in the texture.",
        "since": "6.0",
        "property": ["get", "set"]
      }
    ]
  },
  {
    "namespace": "Rhino.Geometry",
    "name": "MeshExtruder",
    "dataType": "class",
    "summary": "Extrudes a mesh and provides preview",
    "interfaces": ["IDisposable"],
    "constructors": [
      {
        "signature": "MeshExtruder(Mesh inputMesh, IEnumerable<ComponentIndex> componentIndices)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Construct object to extrude given mesh faces, edges and ngons.",
        "since": "6.3",
        "parameters": [
          {
            "name": "inputMesh",
            "type": "Mesh",
            "summary": "Mesh to use as starting point. Will not be modified."
          },
          {
            "name": "componentIndices",
            "type": "IEnumerable<ComponentIndex>",
            "summary": "Mesh faces, edges and ngons to extrude."
          }
        ]
      }
    ],
    "properties": [
      {
        "signature": "bool EdgeBasedUVN",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Edge based UVN defines UVN directions according to boundary edge directions",
        "since": "6.4",
        "property": ["get", "set"]
      },
      {
        "signature": "MeshExtruderFaceDirectionMode FaceDirectionMode",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Face direction mode determines how faces are oriented",
        "since": "6.3",
        "property": ["get", "set"]
      },
      {
        "signature": "bool KeepOriginalFaces",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Whether or not to keep original faces.",
        "since": "6.3",
        "property": ["get", "set"]
      },
      {
        "signature": "Line[] PreviewLines",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets Line objects to preview extruded mesh.",
        "since": "6.3",
        "property": ["get"]
      },
      {
        "signature": "MeshExtruderParameterMode SurfaceParameterMode",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Mode for creating surface parameters for extruded areas",
        "since": "6.3",
        "property": ["get", "set"]
      },
      {
        "signature": "MeshExtruderParameterMode TextureCoordinateMode",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Mode for creating texture coordinates for extruded areas",
        "since": "6.3",
        "property": ["get", "set"]
      },
      {
        "signature": "Transform Transform",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Transform of extrusion",
        "since": "6.3",
        "property": ["get", "set"]
      },
      {
        "signature": "bool UVN",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Whether or not to perform extrude in UVN basis.",
        "since": "6.3",
        "property": ["get", "set"]
      }
    ],
    "methods": [
      {
        "signature": "System.Void Dispose()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Dispose of this object and any unmanaged memory associated with it.",
        "since": "6.3"
      },
      {
        "signature": "System.Boolean ExtrudedMesh(out Mesh extrudedMeshOut, out List<ComponentIndex> componentIndicesOut)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Creates new extruded mesh. Returns True if any edges or faces were extruded.",
        "parameters": [
          {
            "name": "extrudedMeshOut",
            "type": "Mesh",
            "summary": "Extruded mesh"
          },
          {
            "name": "componentIndicesOut",
            "type": "List<ComponentIndex>",
            "summary": "Component indices of extruded faces and vertices"
          }
        ]
      },
      {
        "signature": "System.Boolean ExtrudedMesh(out Mesh extrudedMeshOut)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Creates new extruded mesh. Returns True if any edges or faces were extruded.",
        "since": "6.3",
        "parameters": [
          {
            "name": "extrudedMeshOut",
            "type": "Mesh",
            "summary": "Extruded mesh"
          }
        ]
      },
      {
        "signature": "List<int> GetWallFaces()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Return list of faces that were added to connect transformed edges/faces to non-transformed edges/faces.",
        "since": "6.16",
        "returns": "List of wall faces"
      }
    ]
  },
  {
    "namespace": "Rhino.Geometry",
    "name": "MeshExtruderFaceDirectionMode",
    "dataType": "enum",
    "summary": "Defines how mesh extruder decides orients faces",
    "values": [
      {
        "signature": "Keep = 0",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Maintain all face directions"
      },
      {
        "signature": "OrientClosedFrontOut = 1",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Orient closed meshes front face out"
      }
    ]

  },
  {
    "namespace": "Rhino.Geometry",
    "name": "MeshExtruderParameterMode",
    "dataType": "enum",
    "summary": "Parameter mode for creating texture coordinates and surface parameters",
    "values": [
      {
        "signature": "CoverWalls = 0",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Stretch parameters slightly on extruded faces to cover walls"
      },
      {
        "signature": "KeepAndStretch = 1",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Keep parameters on extruded faces and stretch on walls"
      }
    ]

  },
  {
    "namespace": "Rhino.Geometry",
    "name": "MeshFace",
    "dataType": "struct",
    "summary": "Represents the values of the four indices of a mesh face quad.  \nIf the third and fourth values are the same, this face represents a   triangle.",
    "constructors": [
      {
        "signature": "MeshFace(int a, int b, int c, int d)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Constructs a new quadrangular Mesh face.",
        "since": "5.0",
        "parameters": [
          {
            "name": "a",
            "type": "System.Int32",
            "summary": "Index of first corner."
          },
          {
            "name": "b",
            "type": "System.Int32",
            "summary": "Index of second corner."
          },
          {
            "name": "c",
            "type": "System.Int32",
            "summary": "Index of third corner."
          },
          {
            "name": "d",
            "type": "System.Int32",
            "summary": "Index of fourth corner."
          }
        ]
      },
      {
        "signature": "MeshFace(int a, int b, int c)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Constructs a new triangular Mesh face.",
        "since": "5.0",
        "parameters": [
          {
            "name": "a",
            "type": "System.Int32",
            "summary": "Index of first corner."
          },
          {
            "name": "b",
            "type": "System.Int32",
            "summary": "Index of second corner."
          },
          {
            "name": "c",
            "type": "System.Int32",
            "summary": "Index of third corner."
          }
        ]
      }
    ],
    "properties": [
      {
        "signature": "MeshFace Unset",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Gets an Unset MeshFace. Unset faces have Int32.MinValue for all corner indices.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "int A",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the first corner index of the mesh face.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "int B",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the second corner index of the mesh face.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "int C",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the third corner index of the mesh face.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "int D",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the fourth corner index of the mesh face. If D equals C, the mesh face is considered to be a triangle rather than a quad.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool IsQuad",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets a value indicating whether or not this mesh face is a quad. A mesh face is considered to be a triangle when C does not equal D, thus it is possible for an Invalid mesh face to also be a quad.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "bool IsTriangle",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets a value indicating whether or not this mesh face is a triangle. A mesh face is considered to be a triangle when C equals D, thus it is possible for an Invalid mesh face to also be a triangle.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "int this[int index]",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the vertex index associated with an entry in this face."
      }
    ],
    "methods": [
      {
        "signature": "System.Int32 CompareTo(MeshFace other)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Compares this <b>MeshFace</b> with another <b>MeshFace</b>  and returns a value of 1, 0, or -1, referring to dictionary order.  \nIndex evaluation priority is first A, then B, then C, then D.",
        "since": "6.0",
        "parameters": [
          {
            "name": "other",
            "type": "MeshFace",
            "summary": "The other <b>MeshFace</b> to use in comparison."
          }
        ],
        "returns": "0: if this is identical to other  \n-1: if this < other. Priority is for index of corner A first, then B, then C, then D.  \n+1: otherwise."
      },
      {
        "signature": "System.Boolean Equals(MeshFace other)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns a value indicating whether the other mesh face has precisely the same value as the current one.",
        "since": "6.0",
        "parameters": [
          {
            "name": "other",
            "type": "MeshFace",
            "summary": "The other mesh face for comparison."
          }
        ],
        "returns": "True if the other face is, also orderly, equal to the present one; otherwise false."
      },
      {
        "signature": "System.Boolean Equals(System.Object obj)",
        "modifiers": ["public", "override"],
        "protected": false,
        "virtual": false,
        "summary": "Returns a value indicating whether the other object obj has precisely the same value as the current one.",
        "parameters": [
          {
            "name": "obj",
            "type": "System.Object",
            "summary": "Any object the represents the other mesh face for comparison."
          }
        ],
        "returns": "True if obj is a mesh face that, also orderly, equals to the present one; otherwise false."
      },
      {
        "signature": "MeshFace Flip()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Reverses the orientation of the face by swapping corners. The first corner is always maintained.",
        "since": "5.0"
      },
      {
        "signature": "System.Int32 GetHashCode()",
        "modifiers": ["public", "override"],
        "protected": false,
        "virtual": false,
        "summary": "Returns a runtime-stable hash code for the current mesh face. You are not allowed to rely on persistence of this hash code in serialization, but for each version of RhinoCommon, this hash code will be the same for each mesh face.",
        "returns": "A non-unique integer that represents this mesh face."
      },
      {
        "signature": "System.Boolean IsValid()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets a value indicating whether or not this mesh face is considered to be valid. Note that even valid mesh faces could potentially be invalid in the context of a specific Mesh, if one or more of the corner indices exceeds the number of vertices on the mesh. If you want to perform a complete validity check, use IsValid(int) instead.",
        "since": "5.0"
      },
      {
        "signature": "System.Boolean IsValid(Point3d[] points)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets a value indicating whether or not this mesh face is considered to be valid. Unlike the simple IsValid function, this function takes actual point locations into account.",
        "since": "6.0",
        "parameters": [
          {
            "name": "points",
            "type": "Point3d[]",
            "summary": "Array of vertices with which to validate the face."
          }
        ],
        "returns": "True if the face is considered valid, False if not."
      },
      {
        "signature": "System.Boolean IsValid(System.Int32 vertexCount)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets a value indicating whether or not this mesh face is considered to be valid. Unlike the simple IsValid function, this function takes upper bound indices into account.",
        "since": "5.0",
        "parameters": [
          {
            "name": "vertexCount",
            "type": "System.Int32",
            "summary": "Number of vertices in the mesh that this face is a part of."
          }
        ],
        "returns": "True if the face is considered valid, False if not."
      },
      {
        "signature": "System.Boolean IsValidEx(ref Point3d[] points)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets a value indicating whether or not this mesh face is considered to be valid. Unlike the simple IsValid function, this function takes actual point locations into account.",
        "since": "6.5",
        "parameters": [
          {
            "name": "points",
            "type": "Point3d[]",
            "summary": "Array of vertices with which to validate the face."
          }
        ],
        "returns": "True if the face is considered valid, False if not."
      },
      {
        "signature": "System.Boolean Repair(Point3d[] points)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Attempts to repair this mesh face by taking both face indexes and actual vertex locations into account.",
        "since": "6.0",
    "remarks": "This function assumes the face is invalid and attempts to repair unconditionally.  It is only worthwhile to call Repair on faces where IsValid returns false.",
        "parameters": [
          {
            "name": "points",
            "type": "Point3d[]",
            "summary": "Array of vertices with which to consider when repairing the face."
          }
        ],
        "returns": "True if the face was repaired, False if not."
      },
      {
        "signature": "System.Boolean RepairEx(ref Point3d[] points)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Attempts to repair this mesh face by taking both face indexes and actual vertex locations into account.",
        "since": "6.5",
    "remarks": "This function assumes the face is invalid and attempts to repair unconditionally.  It is only worthwhile to call Repair on faces where IsValid returns false.  This function is the analog of UnsafeNativeMethods.ON_MeshFace_Repair done completely here to avoid copying the point array.",
        "parameters": [
          {
            "name": "points",
            "type": "Point3d[]",
            "summary": "Array of vertices with which to consider when repairing the face."
          }
        ],
        "returns": "True if the face was repaired, False if not."
      },
      {
        "signature": "System.Void Set(System.Int32 a, System.Int32 b, System.Int32 c, System.Int32 d)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Sets all the corners for this face as a quad.",
        "since": "5.0",
        "parameters": [
          {
            "name": "a",
            "type": "System.Int32",
            "summary": "Index of first corner."
          },
          {
            "name": "b",
            "type": "System.Int32",
            "summary": "Index of second corner."
          },
          {
            "name": "c",
            "type": "System.Int32",
            "summary": "Index of third corner."
          },
          {
            "name": "d",
            "type": "System.Int32",
            "summary": "Index of fourth corner."
          }
        ]
      },
      {
        "signature": "System.Void Set(System.Int32 a, System.Int32 b, System.Int32 c)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Sets all the corners for this face as a triangle.",
        "since": "5.0",
        "parameters": [
          {
            "name": "a",
            "type": "System.Int32",
            "summary": "Index of first corner."
          },
          {
            "name": "b",
            "type": "System.Int32",
            "summary": "Index of second corner."
          },
          {
            "name": "c",
            "type": "System.Int32",
            "summary": "Index of third corner."
          }
        ]
      },
      {
        "signature": "System.String ToString()",
        "modifiers": ["public", "override"],
        "protected": false,
        "virtual": false,
        "summary": "Returns a string representation for this <b>MeshFace</b> . This is to provide a meaningful visualization of this structure and is subject to change in newer releases.",
        "returns": "The string representation."
      }
    ],
    "operators": [
      {
        "signature": "bool operator !=(MeshFace a, MeshFace b)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Determines whether two <b>MeshFace</b> structures have different values.",
        "since": "6.0",
        "parameters": [
          {
            "name": "a",
            "type": "MeshFace",
            "summary": "The first MeshFace."
          },
          {
            "name": "b",
            "type": "MeshFace",
            "summary": "The second MeshFace."
          }
        ]
      },
      {
        "signature": "bool operator ==(MeshFace a, MeshFace b)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Determines whether two <b>MeshFace</b> structures have equal values.",
        "since": "6.0",
        "parameters": [
          {
            "name": "a",
            "type": "MeshFace",
            "summary": "The first MeshFace."
          },
          {
            "name": "b",
            "type": "MeshFace",
            "summary": "The second MeshFace."
          }
        ]
      }
    ]

  },
  {
    "namespace": "Rhino.Geometry",
    "name": "MeshingParameters",
    "dataType": "class",
    "summary": "Represents settings used for creating a mesh representation of a brep or surface.",
    "interfaces": ["IDisposable", "ISerializable", "IEquatable<MeshingParameters>"],
    "constructors": [
      {
        "signature": "MeshingParameters()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Initializes a new instance with default values.  \nInitial values are same as .",
        "since": "5.0"
      },
      {
        "signature": "MeshingParameters(double density, double minimumEdgeLength)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Initializes a new instance with simple values, similar to that of Rhino's meshing slider interface.",
        "since": "6.0",
        "parameters": [
          {
            "name": "density",
            "type": "System.Double",
            "summary": "The density and number of mesh polygons, where 0.0 <= density <= 1.0, where 0 quickly creates coarse meshes, and 1 slowly creates dense meshes."
          },
          {
            "name": "minimumEdgeLength",
            "type": "System.Double",
            "summary": "The minimum allowed mesh edge length."
          }
        ]
      },
      {
        "signature": "MeshingParameters(double density)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Initializes a new instance with simple values, similar to that of Rhino's meshing slider interface.",
        "since": "6.0",
        "parameters": [
          {
            "name": "density",
            "type": "System.Double",
            "summary": "The density and number of mesh polygons, where 0.0 <= density <= 1.0, where 0 quickly creates coarse meshes, and 1 slowly creates dense meshes."
          }
        ]
      },
      {
        "signature": "MeshingParameters(MeshingParameters source)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Initializes a new instance copying values from source.  \nInitial values are same as .",
        "since": "8.0"
      },
      {
        "signature": "MeshingParameters(SerializationInfo info, StreamingContext context)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Called by BinaryFormatter.Deserialize to create a new MeshParamaters object.",
        "since": "8.0"
      }
    ],
    "properties": [
      {
        "signature": "MeshingParameters Coarse",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Gets mesh creation parameters for coarse meshing.  \nThis corresponds with the \"Jagged and Faster\" default in Rhino.",
        "since": "5.0",
        "obsolete": "Use MeshingParameters.FastRenderMesh",
        "property": ["get"]
      },
      {
        "signature": "MeshingParameters Default",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Gets mesh creation parameters to create the default render mesh. Only use this if you plan on specifying your own custom meshing parameters.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "MeshingParameters DefaultAnalysisMesh",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Gets mesh creation parameters to create the default analysis mesh.",
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "MeshingParameters FastRenderMesh",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Gets mesh creation parameters to create the a render mesh when meshing speed is preferred over mesh quality.",
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "MeshingParameters Minimal",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Gets minimal meshing parameters.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "MeshingParameters QualityRenderMesh",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Gets mesh creation parameters to create the a render mesh when mesh quality is preferred over meshing speed.",
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "MeshingParameters Smooth",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Gets mesh creation parameters for smooth meshing.  \nThis corresponds with the \"Smooth and Slower\" default in Rhino.",
        "since": "5.0",
        "obsolete": "Use MeshingParameters.QualityRenderMesh",
        "property": ["get"]
      },
      {
        "signature": "bool ClosedObjectPostProcess",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets a value indicating whether or not to post process non-closed meshes that should be closed. If the Brep being meshed is closed, JaggedSeams = false, and ClosedObjectPostProcess = true, and the resulting mesh is not closed, then a post meshing process is applied to find and close gaps in the mesh. Typically the resulting mesh is not closed because the input Brep has a geometric flaw, like loops in trimming curve.",
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool ComputeCurvature",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets a value indicating whether or not surface curvature data will be embedded in the mesh.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool DoublePrecision",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets a value indicating whether or not the mesh should have double precision vertices in addition to the floats.",
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "double GridAmplification",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the grid amplification factor. Values lower than 1.0 will decrease the number of initial quads, values higher than 1.0 will increase the number of initial quads.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "double GridAngle",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the maximum allowed angle difference (in radians) for a single sampling quad. The angle pertains to the surface normals.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "double GridAspectRatio",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the maximum allowed aspect ratio of sampling quads.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "int GridMaxCount",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the maximum number of grid quads in the initial sampling grid.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "int GridMinCount",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the minimum number of grid quads in the initial sampling grid.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool JaggedSeams",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets whether or not the mesh is allowed to have jagged seams. When this flag is set to true, meshes on either side of a Brep Edge will not match up.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "double MaximumEdgeLength",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the maximum allowed mesh edge length.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "double MinimumEdgeLength",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the minimum allowed mesh edge length.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "double MinimumTolerance",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the minimum tolerance.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "double RefineAngle",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the mesh parameter refine angle in radians.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "double RefineAngleInDegrees",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the mesh parameter refine angle in degrees.",
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool RefineGrid",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets a value indicating whether or not the sampling grid can be refined when certain tolerances are not met.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "double RelativeTolerance",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the relative tolerance.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool SimplePlanes",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets a value indicating whether or not planar areas are allowed to be meshed in a simplified manner.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "MeshingParameterTextureRange TextureRange",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets how and if textures will be packed.",
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "double Tolerance",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the maximum allowed edge deviation. This tolerance is measured between the center of the mesh edge and the surface.",
        "since": "5.0",
        "property": ["get", "set"]
      }
    ],
    "methods": [
      {
        "signature": "MeshingParameters DocumentCurrentSetting(RhinoDoc doc)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the MeshingParameters that are currently set for a document. These are the same settings that are shown in the DocumentProperties \"mesh settings\" user interface.",
        "since": "5.0",
        "parameters": [
          {
            "name": "doc",
            "type": "RhinoDoc",
            "summary": "A Rhino document to query."
          }
        ],
        "returns": "Meshing parameters of the document."
      },
      {
        "signature": "MeshingParameters FromEncodedString(System.String value)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Converts encoded serialized string into a MeshingParameters",
        "since": "8.0",
        "parameters": [
          {
            "name": "value",
            "type": "System.String",
            "summary": "Encoded string returned by MeshingParameters.ToString()"
          }
        ],
        "returns": "Returns a new MeshingParameters created by decoding and deserializing the string or None if value is invalid."
      },
      {
        "signature": "System.Void CopyFrom(MeshingParameters source)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Call this method to copy MeshingParameters from another instance.",
        "since": "8.0"
      },
      {
        "signature": "System.Void Dispose()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Actively reclaims unmanaged resources that this instance uses.",
        "since": "5.0"
      },
      {
        "signature": "System.Void Dispose(System.Boolean disposing)",
        "modifiers": ["protected", "virtual"],
        "protected": true,
        "virtual": true,
        "summary": "For derived class implementers.  \nThis method is called with argument True when class user calls Dispose(), while with argument False when     the Garbage Collector invokes the finalizer, or Finalize() method.  \nYou must reclaim all used unmanaged resources in both cases, and can use this chance to call Dispose on disposable fields if the argument is true.  \nAlso, you must call the base virtual method within your overriding method.",
        "parameters": [
          {
            "name": "disposing",
            "type": "System.Boolean",
            "summary": "True if the call comes from the Dispose() method; False if it comes from the Garbage Collector finalizer."
          }
        ]
      },
      {
        "signature": "System.Boolean Equals(MeshingParameters other)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Determines whether the specified MeshingParameters has the same values as the present MeshingParameters.",
        "since": "8.0",
        "parameters": [
          {
            "name": "other",
            "type": "MeshingParameters",
            "summary": "The specified MeshingParameters."
          }
        ],
        "returns": "True if MeshingParameters has the same values as this; otherwise false."
      },
      {
        "signature": "System.Boolean Equals(System.Object obj)",
        "modifiers": ["public", "override"],
        "protected": false,
        "virtual": false,
        "summary": "Determines whether the specified MeshingParameters has the same values as the present MeshingParameters.",
        "since": "8.0",
        "parameters": [
          {
            "name": "obj",
            "type": "System.Object",
            "summary": "The specified MeshingParameters."
          }
        ],
        "returns": "True if MeshingParameters has the same values as this; otherwise false."
      },
      {
        "signature": "System.Int32 GetHashCode()",
        "modifiers": ["public", "override"],
        "protected": false,
        "virtual": false,
        "summary": "Computes a hash number that represents the current MeshingParameters.",
        "returns": "A hash code for MeshingParameters."
      },
      {
        "signature": "System.Void GetObjectData(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "8.0"
      },
      {
        "signature": "System.Void SetSubDDisplayParameters(SubDDisplayParameters subDDisplayParameters)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Sets the SubD display parameters.",
        "since": "7.18",
        "parameters": [
          {
            "name": "subDDisplayParameters",
            "type": "SubDDisplayParameters",
            "summary": "The SubD display parameters."
          }
        ]
      },
      {
        "signature": "SubDDisplayParameters SubDDisplayParameters()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the SubD display parameters.",
        "since": "7.18",
        "returns": "The SubD display parameters."
      },
      {
        "signature": "System.String ToEncodedString()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns a encoded string that represents the MeshingParameters.",
        "since": "8.0",
        "returns": "A encoded string that represents the MeshingParameters."
      }
    ],
    "operators": [
      {
        "signature": "bool operator !=(MeshingParameters mp1, MeshingParameters mp2)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Determines whether the two MeshingParameters do not have equal values.",
        "since": "8.0",
        "parameters": [
          {
            "name": "mp1",
            "type": "MeshingParameters",
            "summary": "The first MeshingParameters."
          },
          {
            "name": "mp2",
            "type": "MeshingParameters",
            "summary": "The second MeshingParameters."
          }
        ]
      },
      {
        "signature": "bool operator ==(MeshingParameters mp1, MeshingParameters mp2)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Determines whether the two MeshingParameters have equal values.",
        "since": "8.0",
        "parameters": [
          {
            "name": "mp1",
            "type": "MeshingParameters",
            "summary": "The first MeshingParameters."
          },
          {
            "name": "mp2",
            "type": "MeshingParameters",
            "summary": "The second MeshingParameters."
          }
        ]
      }
    ]

  },
  {
    "namespace": "Rhino.Geometry",
    "name": "MeshingParameterStyle",
    "dataType": "enum",
    "summary": "Type of Mesh Parameters used by the RhinoDoc for meshing objects",
    "since": "5.1",
    "values": [
      {
        "signature": "None = 0",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "No style"
      },
      {
        "signature": "Fast = 1",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Quality = 2",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Custom = 9",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "PerObject = 10",
        "modifiers": [],
        "protected": false,
        "virtual": false
      }
    ]

  },
  {
    "namespace": "Rhino.Geometry",
    "name": "MeshingParameterTextureRange",
    "dataType": "enum",
    "summary": "Defines how to pack render/meshes textures.",
    "since": "6.0",
    "values": [
      {
        "signature": "Unset = 0",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "This value is not set."
      },
      {
        "signature": "UnpackedUnscaledNormalized = 1",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Each face has a normalized texture range [0,1]x[0,1]. The normalized coordinate is calculated using the entire surface domain.  For meshes of trimmed surfaces when the active area is a small subset of the entire surface, there will be large regions of unused texture space in [0,1]x[0,1].  When the 3d region being meshed is far from being square-ish, there will be a substantial amount of distortion mapping [0,1]x[0,1] texture space to the 3d mesh."
      },
      {
        "signature": "PackedScaledNormalized = 2",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Each face is assigned a texture range that is a sub-rectangle of [0,1]x[0,1].  The sub-rectangles are mutually disjoint and packed into [0,1]x[0,1] in a way that minimizes distortion and maximizes the coverage of [0,1]x[0,1]. When the surface or surfaces being meshed are trimmed, this option takes into account only the region of the base surface the mesh covers and uses as much of [0,1]x[0,1] as possible. (default)"
      }
    ]

  },
  {
    "namespace": "Rhino.Geometry",
    "name": "MeshNgon",
    "dataType": "class",
    "summary": "Represents a mesh ngon.  \nWhen retrieved from the Ngon property of a mesh,   this contains faces that have edge valence strictly higher than 4.  \nWhen retrieving Ngons from ,   this might contain also triangles and quads.",
    "interfaces": ["IEquatable<MeshNgon>", "IComparable<MeshNgon>", "IComparable"],
    "properties": [
      {
        "signature": "MeshNgon Empty",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Gets an empty MeshNgon.",
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "int BoundaryVertexCount",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Get the number of vertices in this ngon.  <b>MeshNgon</b> about length information.",
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "int FaceCount",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Get the number of faces in this ngon.",
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "int this[int index]",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Get a mesh vertex index from the ngon's vertex index list."
      }
    ],
    "methods": [
      {
        "signature": "MeshNgon Create(IList<int> meshVertexIndexList, IList<int> meshFaceIndexList)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Constructs an ngon from lists of mesh vertex and face indexes.",
        "since": "6.0",
        "parameters": [
          {
            "name": "meshVertexIndexList",
            "type": "IList<int>",
            "summary": "A list of mesh vertex indexes that define the outer boundary of the ngon. The mesh vertex indexes must be in the correct order."
          },
          {
            "name": "meshFaceIndexList",
            "type": "IList<int>",
            "summary": "A list of mesh face indexes that define the interior of the ngon. The mesh face indexes may be in any order."
          }
        ]
      },
      {
        "signature": "System.UInt32[] BoundaryVertexIndexList()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Get the outer boundary mesh vertex list of the ngon.  \nVertices are sorted counterclockwise with respect to the direction of the face,     although the degree by which vertex normals will respect this might vary.",
        "since": "6.0",
        "returns": "A list of mesh vertex indexes."
      },
      {
        "signature": "System.Int32 CompareTo(MeshNgon otherNgon)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Compares this <b>MeshNgon</b> with otherNgon and returns a value of 1, 0, or -1.  \nPriority is for vertex count, then face count,     then vertex index list values, then face index list values.",
        "since": "6.0",
        "parameters": [
          {
            "name": "otherNgon",
            "type": "MeshNgon",
            "summary": "The other <b>MeshNgon</b> to use in comparison."
          }
        ],
        "returns": "0: if this is identical to otherNgon  \n-1: if this < otherNgon.  \n+1: if this > otherNgon."
      },
      {
        "signature": "System.Boolean Equals(MeshNgon otherNgon)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Determines if this ngon and otherNgon are identical.",
        "since": "6.0",
        "parameters": [
          {
            "name": "otherNgon",
            "type": "MeshNgon",
            "summary": "The other ngon for comparison."
          }
        ],
        "returns": "True if otherNgon is identical to this ngon; otherwise false."
      },
      {
        "signature": "System.Boolean Equals(System.Object otherObj)",
        "modifiers": ["public", "override"],
        "protected": false,
        "virtual": false,
        "summary": "Determines if otherObj is a MeshNgon and is identical to this ngon.",
        "parameters": [
          {
            "name": "otherObj",
            "type": "System.Object",
            "summary": "Any object the represents the other mesh face for comparison."
          }
        ],
        "returns": "True if otherObj is a MeshNgon and is identical to this ngon; otherwise false."
      },
      {
        "signature": "System.UInt32[] FaceIndexList()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Get the ngon's mesh face index list.",
        "since": "6.0",
        "returns": "A list of mesh face indexes."
      },
      {
        "signature": "System.Int32 GetHashCode()",
        "modifiers": ["public", "override"],
        "protected": false,
        "virtual": false,
        "summary": "Returns a runtime-stable hash code for the current mesh ngon. You are not allowed to rely on persistence of this hash code in serialization, but for each instance of the application, this hash code will be the same for ngons with identical vertex and face lists.",
        "returns": "A non-unique integer that represents this mesh ngon."
      },
      {
        "signature": "System.Void Set(IList<int> meshVertexIndexList, IList<int> meshFaceIndexList)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Set the ngon vertex and face index lists.",
        "since": "6.0",
        "parameters": [
          {
            "name": "meshVertexIndexList",
            "type": "IList<int>",
            "summary": "A list of mesh vertex indexes that define the outer boundary of the ngon. The mesh vertex indexes must be in the correct order."
          },
          {
            "name": "meshFaceIndexList",
            "type": "IList<int>",
            "summary": "A list of mesh face indexes that define the interior of the ngon. The mesh face indexes may be in any order."
          }
        ]
      },
      {
        "signature": "System.String ToString()",
        "modifiers": ["public", "override"],
        "protected": false,
        "virtual": false,
        "summary": "Returns a string representation for this <b>MeshNgon</b> . This is to provide a meaningful visualization of this structure and is subject to change in newer releases.",
        "returns": "The string representation."
      }
    ],
    "operators": [
      {
        "signature": "bool operator !=(MeshNgon a, MeshNgon b)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Determines whether two <b>MeshNgon</b> structures have different values.",
        "since": "6.0",
        "parameters": [
          {
            "name": "a",
            "type": "MeshNgon",
            "summary": "The first MeshNgon."
          },
          {
            "name": "b",
            "type": "MeshNgon",
            "summary": "The second MeshNgon."
          }
        ]
      },
      {
        "signature": "bool operator ==(MeshNgon a, MeshNgon b)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Determines whether two <b>MeshNgon</b> structures have equal values.",
        "since": "6.0",
        "parameters": [
          {
            "name": "a",
            "type": "MeshNgon",
            "summary": "The first MeshNgon."
          },
          {
            "name": "b",
            "type": "MeshNgon",
            "summary": "The second MeshNgon."
          }
        ]
      }
    ]

  },
  {
    "namespace": "Rhino.Geometry",
    "name": "MeshPart",
    "dataType": "class",
    "summary": "Represents a portion of a mesh for partitioning",
    "properties": [
      {
        "signature": "int EndFaceIndex",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "End of subinterval of parent mesh face array",
        "since": "5.6",
        "property": ["get"]
      },
      {
        "signature": "int EndVertexIndex",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "End of subinterval of parent mesh vertex array",
        "since": "5.6",
        "property": ["get"]
      },
      {
        "signature": "int StartFaceIndex",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Start of subinterval of parent mesh face array",
        "since": "5.6",
        "property": ["get"]
      },
      {
        "signature": "int StartVertexIndex",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Start of subinterval of parent mesh vertex array",
        "since": "5.6",
        "property": ["get"]
      },
      {
        "signature": "int TriangleCount",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.6",
        "property": ["get"]
      },
      {
        "signature": "int VertexCount",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "EndVertexIndex - StartVertexIndex",
        "since": "5.6",
        "property": ["get"]
      }
    ]
  },
  {
    "namespace": "Rhino.Geometry",
    "name": "MeshPipeCapStyle",
    "dataType": "enum",
    "summary": "Enumerates methods to end a mesh pipe.",
    "values": [
      {
        "signature": "None = 0",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Capping is skipped. The resulting object will be simpler."
      },
      {
        "signature": "Flat = 1",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "A flat surface will cap the pipe."
      },
      {
        "signature": "Box = 2",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "A simple construction will cap the pipe."
      },
      {
        "signature": "Dome = 3",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "A meridians-and-parallels hemisphere construction will cap the pipe."
      }
    ]

  },
  {
    "namespace": "Rhino.Geometry",
    "name": "MeshPoint",
    "dataType": "class",
    "summary": "Represents a point that is found on a mesh.",
    "properties": [
      {
        "signature": "ComponentIndex ComponentIndex",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the component index of the intersecting element in the mesh.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "int EdgeIndex",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "When set, EdgeIndex is an index of an edge in the mesh's edge list.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "double EdgeParameter",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Edge parameter when found.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "int FaceIndex",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "FaceIndex is an index of a face in mesh.Faces. When ComponentIndex refers to a vertex, any face that uses the vertex may appear as FaceIndex.  When ComponenctIndex refers to an Edge or EdgeIndex is set, then any face that uses that edge may appear as FaceIndex.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "Mesh Mesh",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "The mesh that is related to this point.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "Point3d Point",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the location (position) of this point.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "double[] T",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Barycentric quad coordinates for the point on the mesh face mesh.Faces[FaceIndex].  If the face is a triangle disregard T[3] (it should be set to 0.0). If the face is a quad and is split between vertices 0 and 2, then T[3] will be 0.0 when point is on the triangle defined by vi[0], vi[1], vi[2], and T[1] will be 0.0 when point is on the triangle defined by vi[0], vi[2], vi[3]. If the face is a quad and is split between vertices 1 and 3, then T[2] will be 0.0 when point is on the triangle defined by vi[0], vi[1], vi[3], and m_t[0] will be 0.0 when point is on the triangle defined by vi[1], vi[2], vi[3].",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "char Triangle",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Face triangle where the intersection takes place:  \n0 is unset  \nA is 0,1,2  \nB is 0,2,3  \nC is 0,1,3  \nD is 1,2,3",
        "since": "5.0",
        "property": ["get"]
      }
    ],
    "methods": [
      {
        "signature": "System.Boolean GetTriangle(out System.Int32 a, out System.Int32 b, out System.Int32 c)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the mesh face indices of the triangle where the intersection is on the face takes into consideration the way the quad was split during the intersection.",
        "since": "5.0"
      }
    ]
  },
  {
    "namespace": "Rhino.Geometry.MeshRefinements",
    "name": "CreaseEdges",
    "dataType": "enum",
    "summary": "Defines the way naked edges are handled.",
    "since": "6.8",
    "values": [
      {
        "signature": "    NakedFixed",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Naked edges will not move or be modified."
      },
      {
        "signature": "    NakedSmooth",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "The naked edge will tend toward a spline."
      },
      {
        "signature": "    CornerFixedOtherCreased",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Corners (2-sided vertices) will be fixed, while other naked vertices will tend toward a spline."
      },
      {
        "signature": "    Auto = 3",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Unwelded vertices become creases, and welded are smooth."
      }
    ]

  },
  {
    "namespace": "Rhino.Geometry.MeshRefinements",
    "name": "LoopFormula",
    "dataType": "enum",
    "summary": "Enumerates the alternative Loop implementations.",
    "since": "6.0",
    "values": [
      {
        "signature": "Loop = 0",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "The original Loop formula."
      },
      {
        "signature": "Warren = 1",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Warren's improved formula."
      },
      {
        "signature": "WarrenWeimer = 2",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "The formula as explained by Weimer, improving over Warren's."
      }
    ]

  },
  {
    "namespace": "Rhino.Geometry.MeshRefinements",
    "name": "RefinementSettings",
    "dataType": "class",
    "summary": "Defines the way a mesh refinement modifier works.",
    "constructors": [
      {
        "signature": "RefinementSettings()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Creates a default operation settings object.",
        "since": "6.0"
      }
    ],
    "properties": [
      {
        "signature": "CancellationToken ContinueRequest",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "A token to request computation termination.",
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool HasPull",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets a value indicating whether this subdivision should create a result on a specific surface.",
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "int Level",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "The level of subdivision to achieve.",
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "CreaseEdges NakedEdgeMode",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Set this property to define how naked edges should be treated.",
        "since": "6.0",
        "property": ["get", "set"]
      }
    ]
  },
  {
    "namespace": "Rhino.Geometry",
    "name": "MeshThicknessMeasurement",
    "dataType": "struct",
    "summary": "Thickness measurement used in the mesh thickness solver.",
    "constructors": [
      {
        "signature": "MeshThicknessMeasurement(int meshIndex, int vertexIndex, double thickness, Point3d point, Point3d oppositePoint)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Create a new thickness measurement.",
        "since": "6.0",
        "parameters": [
          {
            "name": "meshIndex",
            "type": "System.Int32",
            "summary": "Index of mesh within collection of meshes."
          },
          {
            "name": "vertexIndex",
            "type": "System.Int32",
            "summary": "Index of mesh vertex."
          },
          {
            "name": "thickness",
            "type": "System.Double",
            "summary": "Thickness of mesh at vertex."
          },
          {
            "name": "point",
            "type": "Point3d",
            "summary": "Vertex location."
          },
          {
            "name": "oppositePoint",
            "type": "Point3d",
            "summary": "Opposite location."
          }
        ]
      }
    ],
    "properties": [
      {
        "signature": "int MeshIndex",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the index of the mesh associated with this thickness measurement.",
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "Point3d OppositePoint",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the point opposite to the measurement point.",
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "Point3d Point",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the location of the thickness measurement.",
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "double Thickness",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the local thickness of the mesh.",
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "int VertexIndex",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the index of the vertex associated with this thickness measurement.",
        "since": "6.0",
        "property": ["get"]
      }
    ]
  },
  {
    "namespace": "Rhino.Geometry",
    "name": "MeshType",
    "dataType": "enum",
    "summary": "Defines enumerated values for various mesh types.",
    "since": "5.0",
    "values": [
      {
        "signature": "Default = 0",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "The default mesh."
      },
      {
        "signature": "Render = 1",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "The render mesh."
      },
      {
        "signature": "Analysis = 2",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "The analysis mesh."
      },
      {
        "signature": "Preview = 3",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "The preview mesh."
      },
      {
        "signature": "Any = 4",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Any mesh that is available."
      }
    ]

  },
  {
    "namespace": "Rhino.Geometry",
    "name": "MeshUnsafeLock",
    "dataType": "class",
    "summary": "Permits access to the underlying mesh raw data structures in an unsafe way.",
    "remarks": "This lock object needs to be disposed before using the Mesh in other calculations and this can be achieved with the using keyword (Using in VB.Net).",
    "interfaces": ["IDisposable"],
    "methods": [
      {
        "signature": "Vector3f* FaceNormalsArray(out System.Int32 length)",
        "modifiers": ["public", "unsafe"],
        "protected": false,
        "virtual": false,
        "summary": "Retrieves a pointer to the raw mesh face normals array, which uses vectors defined with single precision floating point numbers, or throws an exception if none is available.",
        "since": "8.1",
        "parameters": [
          {
            "name": "length",
            "type": "System.Int32",
            "summary": "The length of the array. This value is returned by reference (out in C#)."
          }
        ],
        "returns": "The beginning of the vertex array. Item 0 is the first vertex, and item length-1 is the last valid one."
      },
      {
        "signature": "MeshFace* FacesArray(out System.Int32 length)",
        "modifiers": ["public", "unsafe"],
        "protected": false,
        "virtual": false,
        "summary": "Retrieves a pointer to the raw faces array, which uses 4 integers for each face.  <b>MeshFace</b> .",
        "since": "6.20",
        "parameters": [
          {
            "name": "length",
            "type": "System.Int32",
            "summary": "The length of the array. This value is returned by reference (out in C#)."
          }
        ],
        "returns": "The beginning of the vertex array. Item 0 is the first vertex, and item length-1 is the last valid one."
      },
      {
        "signature": "Vector3f* NormalVector3fArray(out System.Int32 length)",
        "modifiers": ["public", "unsafe"],
        "protected": false,
        "virtual": false,
        "summary": "Retrieves a pointer to the raw mesh vertex normal array, which uses vectors defined with single precision floating point numbers, or throws an exception if none is available.",
        "since": "6.20",
        "parameters": [
          {
            "name": "length",
            "type": "System.Int32",
            "summary": "The length of the array. This value is returned by reference (out in C#)."
          }
        ],
        "returns": "The beginning of the vertex array. Item 0 is the first vertex, and item length-1 is the last valid one."
      },
      {
        "signature": "System.Void Release()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Releases the lock and updates the underlying unmanaged data structures.",
        "since": "6.0"
      },
      {
        "signature": "int* VertexColorsArray(out System.Int32 length)",
        "modifiers": ["public", "unsafe"],
        "protected": false,
        "virtual": false,
        "summary": "Retrieves a pointer to the raw mesh vertex colors array, which uses RGBA integers or throws an exception if none is available.",
        "since": "8.1",
        "parameters": [
          {
            "name": "length",
            "type": "System.Int32",
            "summary": "The length of the array. This value is returned by reference (out in C#)."
          }
        ],
        "returns": "The beginning of the vertex array. Item 0 is the first vertex, and item length-1 is the last valid one."
      },
      {
        "signature": "Point3d* VertexPoint3dArray(out System.Int32 length)",
        "modifiers": ["public", "unsafe"],
        "protected": false,
        "virtual": false,
        "summary": "Retrieves a pointer to the raw mesh vertex array, which uses coordinates defined with double precision floating point numbers, or throws an exception if none is available.",
        "since": "6.20",
    "remarks": "When running this method for writing and if the mesh has also a single precision array, the array is synchronized if the pointer to the single precision array was not requested. Otherwise, it is up to the caller to ensure that the mesh vertices are kept synchronized, by setting both arrays to the required values.",
        "parameters": [
          {
            "name": "length",
            "type": "System.Int32",
            "summary": "The length of the array. This value is returned by reference (out in C#)."
          }
        ],
        "returns": "The beginning of the vertex array. Item 0 is the first vertex, and item length-1 is the last valid one. If no array is available, None is returned."
      },
      {
        "signature": "Point3f* VertexPoint3fArray(out System.Int32 length)",
        "modifiers": ["public", "unsafe"],
        "protected": false,
        "virtual": false,
        "summary": "Retrieves a pointer to the raw mesh vertex array, which uses coordinates defined with single precision floating point numbers, or None if none is available.",
        "since": "6.0",
    "remarks": "When running this method for writing, it is up to the caller to ensure that the mesh has no double precision array that needs to be synchronized. Otherwise, also the double precision array must be synchronized.",
        "parameters": [
          {
            "name": "length",
            "type": "System.Int32",
            "summary": "The length of the array. This value is returned by reference (out in C#). 0 is returned when there is no single precision array."
          }
        ],
        "returns": "The beginning of the vertex array. Item 0 is the first vertex, and item length-1 is the last valid one. If no array is available, None is returned."
      }
    ]
  },
  {
    "namespace": "Rhino.Geometry",
    "name": "MeshUnwrapMethod",
    "dataType": "enum",
    "summary": "Unwrapping method used",
    "values": [
      {
        "signature": "LSCM = 0",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Least squares conformal map, Rhino 7 standard method"
      },
      {
        "signature": "ABFPP = 1",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "ABF++, angle based flattening"
      },
      {
        "signature": "ARAP = 2",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "ARAP, as rigid as possible"
      }
    ]

  },
  {
    "namespace": "Rhino.Geometry",
    "name": "MeshUnwrapper",
    "dataType": "class",
    "summary": "Unwraps meshes and stores the result in their texture coordinates",
    "interfaces": ["IDisposable"],
    "constructors": [
      {
        "signature": "MeshUnwrapper(IEnumerable<Mesh> meshes)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Creates a mesh unwrapper for a set of meshes",
        "since": "7.14",
        "parameters": [
          {
            "name": "meshes",
            "type": "IEnumerable<Mesh>",
            "summary": "Meshes to unwrap"
          }
        ]
      },
      {
        "signature": "MeshUnwrapper(Mesh mesh)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Creates a mesh unwrapper for a single mesh",
        "since": "7.14",
        "parameters": [
          {
            "name": "mesh",
            "type": "Mesh",
            "summary": "Mesh to unwrap"
          }
        ]
      }
    ],
    "properties": [
      {
        "signature": "Plane SymmetryPlane",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Symmetry plane. Unwrapper tries to keep unwrap result symmetric to this plane.",
        "since": "7.14",
        "property": ["set"]
      }
    ],
    "methods": [
      {
        "signature": "System.Void Dispose()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Dispose of this object and any unmanaged memory associated with it.",
        "since": "7.14"
      },
      {
        "signature": "System.Boolean Unwrap(MeshUnwrapMethod method)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Unwraps the meshes passed in as constructor arguments and stores the results in texture coordinates.",
        "since": "7.14",
        "parameters": [
          {
            "name": "method",
            "type": "MeshUnwrapMethod",
            "summary": "Unwrap method to be used"
          }
        ],
        "returns": "True on success"
      }
    ]
  },
  {
    "namespace": "Rhino.Geometry",
    "name": "MorphControl",
    "dataType": "class",
    "summary": "Represents a geometry that is able to control the morphing behavior of some other geometry.",
    "baseclass": "Rhino.Geometry.GeometryBase",
    "constructors": [
      {
        "signature": "MorphControl(NurbsCurve originCurve, NurbsCurve targetCurve)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Constructs a MorphControl that allows for morphing between two curves.",
        "since": "5.0",
        "parameters": [
          {
            "name": "originCurve",
            "type": "NurbsCurve",
            "summary": "The origin curve for morphing."
          },
          {
            "name": "targetCurve",
            "type": "NurbsCurve",
            "summary": "The target curve for morphing."
          }
        ]
      },
      {
        "signature": "MorphControl(SerializationInfo info, StreamingContext context)",
        "modifiers": ["protected"],
        "protected": true,
        "virtual": false,
        "summary": "Protected constructor for internal use.",
        "parameters": [
          {
            "name": "info",
            "type": "System.Runtime.Serialization.SerializationInfo",
            "summary": "Serialization data."
          },
          {
            "name": "context",
            "type": "System.Runtime.Serialization.StreamingContext",
            "summary": "Serialization stream."
          }
        ]
      }
    ],
    "properties": [
      {
        "signature": "NurbsCurve Curve",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns the morph control's curve.  While this should never be null, the calling function should check.",
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "bool PreserveStructure",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "True if the morph should be done in a way that preserves the structure of the geometry.  In particular, for NURBS objects, True  means that only the control points are moved.  The PreserveStructure value does not affect the way meshes and points are morphed. The default is false.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool QuickPreview",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "True if the morph should be done as quickly as possible because the result is being used for some type of dynamic preview.  If QuickPreview is true, the tolerance may be ignored. The QuickPreview value does not affect the way meshes and points are morphed. The default is false.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "double SpaceMorphTolerance",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "The 3d fitting tolerance used when morphing surfaces and breps. The default is 0.0 and any value <= 0.0 is ignored by morphing functions. The value returned by Tolerance does not affect the way meshes and points are morphed.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "NurbsSurface Surface",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns the morph control's surface.  While this should never be null, the calling function should check.",
        "since": "6.0",
        "property": ["get"]
      }
    ],
    "methods": [
      {
        "signature": "System.Boolean Morph(GeometryBase geometry)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Applies the space morph to geometry.",
        "since": "5.0",
        "parameters": [
          {
            "name": "geometry",
            "type": "GeometryBase",
            "summary": "The geometry to be morphed."
          }
        ],
        "returns": "True on success, False on failure."
      }
    ]
  },
  {
    "namespace": "Rhino.Geometry.Morphs",
    "name": "BendSpaceMorph",
    "dataType": "class",
    "summary": "Deforms objects by bending along a spine arc.",
    "baseclass": "Rhino.Geometry.SpaceMorph",
    "interfaces": ["IDisposable"],
    "constructors": [
      {
        "signature": "BendSpaceMorph(Point3d start, Point3d end, Point3d point, bool straight, bool symmetric)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Constructs a bend space morph.",
        "since": "5.9",
        "parameters": [
          {
            "name": "start",
            "type": "Point3d",
            "summary": "Start of spine that represents the original orientation of the object."
          },
          {
            "name": "end",
            "type": "Point3d",
            "summary": "End of spine."
          },
          {
            "name": "point",
            "type": "Point3d",
            "summary": "Point to bend through."
          },
          {
            "name": "straight",
            "type": "System.Boolean",
            "summary": "If false, then point determines the region to bend. If true, only the spine region is bent."
          },
          {
            "name": "symmetric",
            "type": "System.Boolean",
            "summary": "If false, then only one end of the object bends. If true, then the object will bend symmetrically around the center if you start the spine in the middle of the object."
          }
        ]
      },
      {
        "signature": "BendSpaceMorph(Point3d start, Point3d end, Point3d point, double angle, bool straight, bool symmetric)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Constructs a bend space morph.",
        "since": "5.9",
        "parameters": [
          {
            "name": "start",
            "type": "Point3d",
            "summary": "Start of spine that represents the original orientation of the object."
          },
          {
            "name": "end",
            "type": "Point3d",
            "summary": "End of spine."
          },
          {
            "name": "point",
            "type": "Point3d",
            "summary": "Used for bend direction."
          },
          {
            "name": "angle",
            "type": "System.Double",
            "summary": "Bend angle in radians."
          },
          {
            "name": "straight",
            "type": "System.Boolean",
            "summary": "If false, then point determines the region to bend. If true, only the spine region is bent."
          },
          {
            "name": "symmetric",
            "type": "System.Boolean",
            "summary": "If false, then only one end of the object bends. If true, then the object will bend symmetrically around the center if you start the spine in the middle of the object."
          }
        ]
      }
    ],
    "properties": [
      {
        "signature": "bool IsValid",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns True if the space morph definition is valid, False otherwise.",
        "since": "5.9",
        "property": ["get"]
      }
    ],
    "methods": [
      {
        "signature": "System.Void Dispose()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Actively reclaims unmanaged resources that this instance uses.",
        "since": "5.9"
      },
      {
        "signature": "System.Void Dispose(System.Boolean disposing)",
        "modifiers": ["protected", "virtual"],
        "protected": true,
        "virtual": true,
        "summary": "For derived class implementers.  \nThis method is called with argument True when class user calls Dispose(), while with argument False when     the Garbage Collector invokes the finalizer, or Finalize() method.  \nYou must reclaim all used unmanaged resources in both cases, and can use this chance to call Dispose on disposable fields if the argument is true.  \nAlso, you must call the base virtual method within your overriding method.",
        "parameters": [
          {
            "name": "disposing",
            "type": "System.Boolean",
            "summary": "True if the call comes from the Dispose() method; False if it comes from the Garbage Collector finalizer."
          }
        ]
      },
      {
        "signature": "Point3d MorphPoint(Point3d point)",
        "modifiers": ["public", "override"],
        "protected": false,
        "virtual": false,
        "summary": "Morphs an Euclidean point.",
        "since": "5.9",
        "parameters": [
          {
            "name": "point",
            "type": "Point3d",
            "summary": "A point that will be morphed by this object."
          }
        ],
        "returns": "Resulting morphed point."
      }
    ]
  },
  {
    "namespace": "Rhino.Geometry.Morphs",
    "name": "FlowSpaceMorph",
    "dataType": "class",
    "summary": "Re-aligns objects from a base curve to a target curve.",
    "baseclass": "Rhino.Geometry.SpaceMorph",
    "interfaces": ["IDisposable"],
    "constructors": [
      {
        "signature": "FlowSpaceMorph(Curve curve0, Curve curve1, bool reverseCurve0, bool reverseCurve1, bool preventStretching)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Constructs a flow space morph.",
        "since": "5.9",
        "parameters": [
          {
            "name": "curve0",
            "type": "Curve",
            "summary": "Base curve."
          },
          {
            "name": "curve1",
            "type": "Curve",
            "summary": "Target curve."
          },
          {
            "name": "reverseCurve0",
            "type": "System.Boolean",
            "summary": "If true, then direction of curve0 is reversed."
          },
          {
            "name": "reverseCurve1",
            "type": "System.Boolean",
            "summary": "If true, then direction of curve1 is reversed."
          },
          {
            "name": "preventStretching",
            "type": "System.Boolean",
            "summary": "If true, the length of the objects along the curve directions are not changed. If false, objects are stretched or compressed in the curve direction so that the relationship to the target curve is the same as it is to the base curve."
          }
        ]
      },
      {
        "signature": "FlowSpaceMorph(Curve curve0, Curve curve1, bool preventStretching)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Constructs a flow space morph.",
        "since": "5.9",
        "parameters": [
          {
            "name": "curve0",
            "type": "Curve",
            "summary": "Base curve."
          },
          {
            "name": "curve1",
            "type": "Curve",
            "summary": "Target curve."
          },
          {
            "name": "preventStretching",
            "type": "System.Boolean",
            "summary": ""
          }
        ]
      }
    ],
    "properties": [
      {
        "signature": "bool IsValid",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns True if the space morph definition is valid, False otherwise.",
        "since": "5.9",
        "property": ["get"]
      }
    ],
    "methods": [
      {
        "signature": "System.Void Dispose()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Actively reclaims unmanaged resources that this instance uses.",
        "since": "5.9"
      },
      {
        "signature": "System.Void Dispose(System.Boolean disposing)",
        "modifiers": ["protected", "virtual"],
        "protected": true,
        "virtual": true,
        "summary": "For derived class implementers.  \nThis method is called with argument True when class user calls Dispose(), while with argument False when     the Garbage Collector invokes the finalizer, or Finalize() method.  \nYou must reclaim all used unmanaged resources in both cases, and can use this chance to call Dispose on disposable fields if the argument is true.  \nAlso, you must call the base virtual method within your overriding method.",
        "parameters": [
          {
            "name": "disposing",
            "type": "System.Boolean",
            "summary": "True if the call comes from the Dispose() method; False if it comes from the Garbage Collector finalizer."
          }
        ]
      },
      {
        "signature": "Point3d MorphPoint(Point3d point)",
        "modifiers": ["public", "override"],
        "protected": false,
        "virtual": false,
        "summary": "Morphs an Euclidean point.",
        "since": "5.9",
        "parameters": [
          {
            "name": "point",
            "type": "Point3d",
            "summary": "A point that will be morphed by this object."
          }
        ],
        "returns": "Resulting morphed point."
      }
    ]
  },
  {
    "namespace": "Rhino.Geometry.Morphs",
    "name": "MaelstromSpaceMorph",
    "dataType": "class",
    "summary": "Deforms objects in a spiral as if they were caught in a whirlpool.",
    "baseclass": "Rhino.Geometry.SpaceMorph",
    "interfaces": ["IDisposable"],
    "constructors": [
      {
        "signature": "MaelstromSpaceMorph(Plane plane, double radius0, double radius1, double angle)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Constructs a maelstrom space morph.",
        "since": "5.9",
    "remarks": "If radius0 = radius1 > 0, then the morph is a rotation where the angle of rotation is proportional to the radius.          If radius0 < radius1, then everything inside of the circle of radius radius0 if fixed, the rotation angle increases     smoothly from 0 at radius0 to m_a at radius1, and everything outside of the circle of radius radius1 is rotated by angle.          If radius0 > radius1, then everything outside of the circle of radius radius0 if fixed, the rotation angle increases     smoothly from 0 at radius0 to m_a at radius1, and everything inside of the circle of radius radius1 is rotated by angle.",
        "parameters": [
          {
            "name": "plane",
            "type": "Plane",
            "summary": "Plane on which the base circle will lie. Origin of the plane will be the center point of the circle."
          },
          {
            "name": "radius0",
            "type": "System.Double",
            "summary": "First radius."
          },
          {
            "name": "radius1",
            "type": "System.Double",
            "summary": "Second radius."
          },
          {
            "name": "angle",
            "type": "System.Double",
            "summary": "Coil angle in radians."
          }
        ]
      }
    ],
    "properties": [
      {
        "signature": "bool IsValid",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns True if the space morph definition is valid, False otherwise.",
        "since": "5.9",
        "property": ["get"]
      }
    ],
    "methods": [
      {
        "signature": "System.Void Dispose()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Actively reclaims unmanaged resources that this instance uses.",
        "since": "5.9"
      },
      {
        "signature": "System.Void Dispose(System.Boolean disposing)",
        "modifiers": ["protected", "virtual"],
        "protected": true,
        "virtual": true,
        "summary": "For derived class implementers.  \nThis method is called with argument True when class user calls Dispose(), while with argument False when     the Garbage Collector invokes the finalizer, or Finalize() method.  \nYou must reclaim all used unmanaged resources in both cases, and can use this chance to call Dispose on disposable fields if the argument is true.  \nAlso, you must call the base virtual method within your overriding method.",
        "parameters": [
          {
            "name": "disposing",
            "type": "System.Boolean",
            "summary": "True if the call comes from the Dispose() method; False if it comes from the Garbage Collector finalizer."
          }
        ]
      },
      {
        "signature": "Point3d MorphPoint(Point3d point)",
        "modifiers": ["public", "override"],
        "protected": false,
        "virtual": false,
        "summary": "Morphs an Euclidean point.",
        "since": "5.9",
        "parameters": [
          {
            "name": "point",
            "type": "Point3d",
            "summary": "A point that will be morphed by this object."
          }
        ],
        "returns": "Resulting morphed point."
      }
    ]
  },
  {
    "namespace": "Rhino.Geometry.Morphs",
    "name": "MeshCageMorph",
    "dataType": "class",
    "summary": "Morph used by MeshCageMorph command",
    "baseclass": "Rhino.Geometry.SpaceMorph",
    "interfaces": ["IDisposable"],
    "constructors": [
      {
        "signature": "MeshCageMorph(Mesh referenceMesh, Mesh targetMesh)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Constructs a mesh cage morph",
        "since": "9.0"
      }
    ],
    "properties": [
      {
        "signature": "bool IsValid",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns True if the space morph definition is valid, False otherwise.",
        "since": "9.0",
        "property": ["get"]
      }
    ],
    "methods": [
      {
        "signature": "System.Void Dispose()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Actively reclaims unmanaged resources that this instance uses",
        "since": "9.0"
      },
      {
        "signature": "System.Void Dispose(System.Boolean disposing)",
        "modifiers": ["protected", "virtual"],
        "protected": true,
        "virtual": true,
        "summary": "For derived class implementers.  \nThis method is called with argument True when class user calls Dispose(), while with argument False when     the Garbage Collector invokes the finalizer, or Finalize() method.  \nYou must reclaim all used unmanaged resources in both cases, and can use this chance to call Dispose on disposable fields if the argument is true.  \nAlso, you must call the base virtual method within your overriding method.",
        "parameters": [
          {
            "name": "disposing",
            "type": "System.Boolean",
            "summary": "True if the call comes from the Dispose() method; False if it comes from the Garbage Collector finalizer."
          }
        ]
      },
      {
        "signature": "Point3d MorphPoint(Point3d point)",
        "modifiers": ["public", "override"],
        "protected": false,
        "virtual": false,
        "summary": "Morphs an Euclidean point.",
        "since": "9.0",
        "parameters": [
          {
            "name": "point",
            "type": "Point3d",
            "summary": "A point that will be morphed by this object."
          }
        ],
        "returns": "Resulting morphed point."
      }
    ]
  },
  {
    "namespace": "Rhino.Geometry.Morphs",
    "name": "SplopSpaceMorph",
    "dataType": "class",
    "summary": "Rotates, scales, and wraps objects on a surface.",
    "baseclass": "Rhino.Geometry.SpaceMorph",
    "interfaces": ["IDisposable"],
    "constructors": [
      {
        "signature": "SplopSpaceMorph(Plane plane, Surface surface, Point2d surfaceParam, double scale, double angle)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Constructs a flow space morph.",
        "since": "5.9",
        "parameters": [
          {
            "name": "plane",
            "type": "Plane",
            "summary": "Source plane of deformation."
          },
          {
            "name": "surface",
            "type": "Surface",
            "summary": "Surface to wrap objects onto."
          },
          {
            "name": "surfaceParam",
            "type": "Point2d",
            "summary": "U,V parameter on surface used for orienting."
          },
          {
            "name": "scale",
            "type": "System.Double",
            "summary": "Scale factor. To ignore, use Rhino.RhinoMath.UnsetValue."
          },
          {
            "name": "angle",
            "type": "System.Double",
            "summary": "Rotation angle in radians. To ignore, use Rhino.RhinoMath.UnsetValue."
          }
        ]
      },
      {
        "signature": "SplopSpaceMorph(Plane plane, Surface surface, Point2d surfaceParam, double scale)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Constructs a flow space morph.",
        "since": "5.9",
        "parameters": [
          {
            "name": "plane",
            "type": "Plane",
            "summary": "Source plane of deformation."
          },
          {
            "name": "surface",
            "type": "Surface",
            "summary": "Surface to wrap objects onto."
          },
          {
            "name": "surfaceParam",
            "type": "Point2d",
            "summary": "U,V parameter on surface used for orienting."
          },
          {
            "name": "scale",
            "type": "System.Double",
            "summary": "Scale factor."
          }
        ]
      },
      {
        "signature": "SplopSpaceMorph(Plane plane, Surface surface, Point2d surfaceParam)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Constructs a flow space morph.",
        "since": "5.9",
        "parameters": [
          {
            "name": "plane",
            "type": "Plane",
            "summary": "Source plane of deformation."
          },
          {
            "name": "surface",
            "type": "Surface",
            "summary": "Surface to wrap objects onto."
          },
          {
            "name": "surfaceParam",
            "type": "Point2d",
            "summary": "U,V parameter on surface used for orienting."
          }
        ]
      }
    ],
    "properties": [
      {
        "signature": "bool IsValid",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns True if the space morph definition is valid, False otherwise.",
        "since": "5.9",
        "property": ["get"]
      }
    ],
    "methods": [
      {
        "signature": "System.Void Dispose()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Actively reclaims unmanaged resources that this instance uses.",
        "since": "5.9"
      },
      {
        "signature": "System.Void Dispose(System.Boolean disposing)",
        "modifiers": ["protected", "virtual"],
        "protected": true,
        "virtual": true,
        "summary": "For derived class implementers.  \nThis method is called with argument True when class user calls Dispose(), while with argument False when     the Garbage Collector invokes the finalizer, or Finalize() method.  \nYou must reclaim all used unmanaged resources in both cases, and can use this chance to call Dispose on disposable fields if the argument is true.  \nAlso, you must call the base virtual method within your overriding method.",
        "parameters": [
          {
            "name": "disposing",
            "type": "System.Boolean",
            "summary": "True if the call comes from the Dispose() method; False if it comes from the Garbage Collector finalizer."
          }
        ]
      },
      {
        "signature": "Point3d MorphPoint(Point3d point)",
        "modifiers": ["public", "override"],
        "protected": false,
        "virtual": false,
        "summary": "Morphs an Euclidean point.",
        "since": "5.9",
        "parameters": [
          {
            "name": "point",
            "type": "Point3d",
            "summary": "A point that will be morphed by this object."
          }
        ],
        "returns": "Resulting morphed point."
      }
    ]
  },
  {
    "namespace": "Rhino.Geometry.Morphs",
    "name": "SporphSpaceMorph",
    "dataType": "class",
    "summary": "Deforms an object from a source surface to a target surface.",
    "baseclass": "Rhino.Geometry.SpaceMorph",
    "interfaces": ["IDisposable"],
    "constructors": [
      {
        "signature": "SporphSpaceMorph(Surface surface0, Surface surface1, Point2d surface0Param, Point2d surface1Param)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Constructs a Sporph space morph.",
        "since": "5.9",
        "parameters": [
          {
            "name": "surface0",
            "type": "Surface",
            "summary": "Base surface."
          },
          {
            "name": "surface1",
            "type": "Surface",
            "summary": "Target surface."
          },
          {
            "name": "surface0Param",
            "type": "Point2d",
            "summary": "U,V parameter on surface0 used for orienting."
          },
          {
            "name": "surface1Param",
            "type": "Point2d",
            "summary": "U,V parameter on surface1 used for orienting."
          }
        ]
      },
      {
        "signature": "SporphSpaceMorph(Surface surface0, Surface surface1)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Constructs a Sporph space morph.",
        "since": "5.9",
        "parameters": [
          {
            "name": "surface0",
            "type": "Surface",
            "summary": "Base surface."
          },
          {
            "name": "surface1",
            "type": "Surface",
            "summary": "Target surface."
          }
        ]
      }
    ],
    "properties": [
      {
        "signature": "Vector3d ConstrainNormal",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Specifies how the normal direction of the base surface is mapped onto the target surface. To use the target surface normal, set to <b>Vector3d.Unset</b> .",
        "since": "7.12",
        "property": ["get", "set"]
      },
      {
        "signature": "bool IsValid",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns True if the space morph definition is valid, False otherwise.",
        "since": "5.9",
        "property": ["get"]
      }
    ],
    "methods": [
      {
        "signature": "System.Void Dispose()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Actively reclaims unmanaged resources that this instance uses.",
        "since": "5.9"
      },
      {
        "signature": "System.Void Dispose(System.Boolean disposing)",
        "modifiers": ["protected", "virtual"],
        "protected": true,
        "virtual": true,
        "summary": "For derived class implementers.  \nThis method is called with argument True when class user calls Dispose(), while with argument False when     the Garbage Collector invokes the finalizer, or Finalize() method.  \nYou must reclaim all used unmanaged resources in both cases, and can use this chance to call Dispose on disposable fields if the argument is true.  \nAlso, you must call the base virtual method within your overriding method.",
        "parameters": [
          {
            "name": "disposing",
            "type": "System.Boolean",
            "summary": "True if the call comes from the Dispose() method; False if it comes from the Garbage Collector finalizer."
          }
        ]
      },
      {
        "signature": "Point3d MorphPoint(Point3d point)",
        "modifiers": ["public", "override"],
        "protected": false,
        "virtual": false,
        "summary": "Morphs an Euclidean point.",
        "since": "5.9",
        "parameters": [
          {
            "name": "point",
            "type": "Point3d",
            "summary": "A point that will be morphed by this object."
          }
        ],
        "returns": "Resulting morphed point."
      }
    ]
  },
  {
    "namespace": "Rhino.Geometry.Morphs",
    "name": "StretchSpaceMorph",
    "dataType": "class",
    "summary": "Deforms objects toward or away from a specified axis.",
    "baseclass": "Rhino.Geometry.SpaceMorph",
    "interfaces": ["IDisposable"],
    "constructors": [
      {
        "signature": "StretchSpaceMorph(Point3d start, Point3d end, double length)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Constructs a stretch space morph.",
        "since": "5.9",
        "parameters": [
          {
            "name": "start",
            "type": "Point3d",
            "summary": "Start of stretch axis."
          },
          {
            "name": "end",
            "type": "Point3d",
            "summary": "End of stretch axis.>"
          },
          {
            "name": "length",
            "type": "System.Double",
            "summary": "Length of new stretch axis."
          }
        ]
      },
      {
        "signature": "StretchSpaceMorph(Point3d start, Point3d end, Point3d point)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Constructs a stretch space morph.",
        "since": "5.9",
        "parameters": [
          {
            "name": "start",
            "type": "Point3d",
            "summary": "Start of stretch axis."
          },
          {
            "name": "end",
            "type": "Point3d",
            "summary": "End of stretch axis.>"
          },
          {
            "name": "point",
            "type": "Point3d",
            "summary": "End of new stretch axis."
          }
        ]
      }
    ],
    "properties": [
      {
        "signature": "bool IsValid",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns True if the space morph definition is valid, False otherwise.",
        "since": "5.9",
        "property": ["get"]
      }
    ],
    "methods": [
      {
        "signature": "System.Void Dispose()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Actively reclaims unmanaged resources that this instance uses.",
        "since": "5.9"
      },
      {
        "signature": "System.Void Dispose(System.Boolean disposing)",
        "modifiers": ["protected", "virtual"],
        "protected": true,
        "virtual": true,
        "summary": "For derived class implementers.  \nThis method is called with argument True when class user calls Dispose(), while with argument False when     the Garbage Collector invokes the finalizer, or Finalize() method.  \nYou must reclaim all used unmanaged resources in both cases, and can use this chance to call Dispose on disposable fields if the argument is true.  \nAlso, you must call the base virtual method within your overriding method.",
        "parameters": [
          {
            "name": "disposing",
            "type": "System.Boolean",
            "summary": "True if the call comes from the Dispose() method; False if it comes from the Garbage Collector finalizer."
          }
        ]
      },
      {
        "signature": "Point3d MorphPoint(Point3d point)",
        "modifiers": ["public", "override"],
        "protected": false,
        "virtual": false,
        "summary": "Morphs an Euclidean point.",
        "since": "5.9",
        "parameters": [
          {
            "name": "point",
            "type": "Point3d",
            "summary": "A point that will be morphed by this object."
          }
        ],
        "returns": "Resulting morphed point."
      }
    ]
  },
  {
    "namespace": "Rhino.Geometry.Morphs",
    "name": "TaperSpaceMorph",
    "dataType": "class",
    "summary": "Deforms objects toward or away from a specified axis.",
    "baseclass": "Rhino.Geometry.SpaceMorph",
    "interfaces": ["IDisposable"],
    "constructors": [
      {
        "signature": "TaperSpaceMorph(Point3d start, Point3d end, double startRadius, double endRadius, bool bFlat, bool infiniteTaper)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Constructs a taper space morph.",
        "since": "5.9",
        "parameters": [
          {
            "name": "start",
            "type": "Point3d",
            "summary": "Start of the taper axis."
          },
          {
            "name": "end",
            "type": "Point3d",
            "summary": "End of the taper axis."
          },
          {
            "name": "startRadius",
            "type": "System.Double",
            "summary": "Radius at start point."
          },
          {
            "name": "endRadius",
            "type": "System.Double",
            "summary": "Radius at end point."
          },
          {
            "name": "bFlat",
            "type": "System.Boolean",
            "summary": "If true, then a one-directional, one-dimensional taper is created."
          },
          {
            "name": "infiniteTaper",
            "type": "System.Boolean",
            "summary": "If false, the deformation takes place only the length of the axis. If true, the deformation happens throughout the object, even if the axis is shorter."
          }
        ]
      }
    ],
    "properties": [
      {
        "signature": "bool IsValid",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns True if the space morph definition is valid, False otherwise.",
        "since": "5.9",
        "property": ["get"]
      }
    ],
    "methods": [
      {
        "signature": "System.Void Dispose()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Actively reclaims unmanaged resources that this instance uses.",
        "since": "5.9"
      },
      {
        "signature": "System.Void Dispose(System.Boolean disposing)",
        "modifiers": ["protected", "virtual"],
        "protected": true,
        "virtual": true,
        "summary": "For derived class implementers.  \nThis method is called with argument True when class user calls Dispose(), while with argument False when     the Garbage Collector invokes the finalizer, or Finalize() method.  \nYou must reclaim all used unmanaged resources in both cases, and can use this chance to call Dispose on disposable fields if the argument is true.  \nAlso, you must call the base virtual method within your overriding method.",
        "parameters": [
          {
            "name": "disposing",
            "type": "System.Boolean",
            "summary": "True if the call comes from the Dispose() method; False if it comes from the Garbage Collector finalizer."
          }
        ]
      },
      {
        "signature": "Point3d MorphPoint(Point3d point)",
        "modifiers": ["public", "override"],
        "protected": false,
        "virtual": false,
        "summary": "Morphs an Euclidean point.",
        "since": "5.9",
        "parameters": [
          {
            "name": "point",
            "type": "Point3d",
            "summary": "A point that will be morphed by this object."
          }
        ],
        "returns": "Resulting morphed point."
      }
    ]
  },
  {
    "namespace": "Rhino.Geometry.Morphs",
    "name": "TwistSpaceMorph",
    "dataType": "class",
    "summary": "Deforms objects by rotating them around an axis.",
    "baseclass": "Rhino.Geometry.SpaceMorph",
    "interfaces": ["IDisposable"],
    "constructors": [
      {
        "signature": "TwistSpaceMorph()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Constructs a twist space morph.",
        "since": "5.1"
      }
    ],
    "properties": [
      {
        "signature": "bool InfiniteTwist",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "If true, the deformation is constant throughout the object, even if the axis is shorter than the object. If false, the deformation takes place only the length of the axis.",
        "since": "5.1",
        "property": ["get", "set"]
      },
      {
        "signature": "double TwistAngleRadians",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Twist angle in radians.",
        "since": "5.1",
        "property": ["get", "set"]
      },
      {
        "signature": "Line TwistAxis",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Axis to rotate about.",
        "since": "5.1",
        "property": ["get", "set"]
      }
    ],
    "methods": [
      {
        "signature": "System.Void Dispose()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Actively reclaims unmanaged resources that this instance uses.",
        "since": "5.1"
      },
      {
        "signature": "System.Void Dispose(System.Boolean disposing)",
        "modifiers": ["protected", "virtual"],
        "protected": true,
        "virtual": true,
        "summary": "For derived class implementers.  \nThis method is called with argument True when class user calls Dispose(), while with argument False when     the Garbage Collector invokes the finalizer, or Finalize() method.  \nYou must reclaim all used unmanaged resources in both cases, and can use this chance to call Dispose on disposable fields if the argument is true.  \nAlso, you must call the base virtual method within your overriding method.",
        "parameters": [
          {
            "name": "disposing",
            "type": "System.Boolean",
            "summary": "True if the call comes from the Dispose() method; False if it comes from the Garbage Collector finalizer."
          }
        ]
      },
      {
        "signature": "Point3d MorphPoint(Point3d point)",
        "modifiers": ["public", "override"],
        "protected": false,
        "virtual": false,
        "summary": "Morphs an Euclidean point.  \nThis method is abstract.",
        "since": "5.1",
        "parameters": [
          {
            "name": "point",
            "type": "Point3d",
            "summary": "A point that will be morphed by this function."
          }
        ],
        "returns": "Resulting morphed point."
      }
    ]
  },
  {
    "namespace": "Rhino.Geometry",
    "name": "NurbsCurve",
    "dataType": "class",
    "summary": "Represents a Non Uniform Rational B-Splines (NURBS) curve.",
    "baseclass": "Rhino.Geometry.Curve",
    "interfaces": ["IEpsilonComparable<NurbsCurve>"],
    "constructors": [
      {
        "signature": "NurbsCurve(int dimension, bool rational, int order, int pointCount)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Constructs a new NURBS curve with knot and CV memory allocated.",
        "since": "5.0",
        "parameters": [
          {
            "name": "dimension",
            "type": "System.Int32",
            "summary": ">=1."
          },
          {
            "name": "rational",
            "type": "System.Boolean",
            "summary": "True to make a rational NURBS."
          },
          {
            "name": "order",
            "type": "System.Int32",
            "summary": "(>= 2) The order=degree+1."
          },
          {
            "name": "pointCount",
            "type": "System.Int32",
            "summary": "(>= order) number of control vertices."
          }
        ]
      },
      {
        "signature": "NurbsCurve(int degree, int pointCount)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Constructs a new NURBS curve with a specific degree and control point count.",
        "since": "5.0",
        "parameters": [
          {
            "name": "degree",
            "type": "System.Int32",
            "summary": "Degree of curve. Must be equal to or larger than 1 and smaller than or equal to 11."
          },
          {
            "name": "pointCount",
            "type": "System.Int32",
            "summary": "Number of control-points."
          }
        ]
      },
      {
        "signature": "NurbsCurve(NurbsCurve other)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Initializes a NURBS curve by copying its values from another NURBS curve.",
        "since": "5.0",
        "parameters": [
          {
            "name": "other",
            "type": "NurbsCurve",
            "summary": "The other curve. This value can be null."
          }
        ]
      },
      {
        "signature": "NurbsCurve(SerializationInfo info, StreamingContext context)",
        "modifiers": ["protected"],
        "protected": true,
        "virtual": false,
        "summary": "Protected constructor for internal use.",
        "parameters": [
          {
            "name": "info",
            "type": "System.Runtime.Serialization.SerializationInfo",
            "summary": "Serialization data."
          },
          {
            "name": "context",
            "type": "System.Runtime.Serialization.StreamingContext",
            "summary": "Serialization stream."
          }
        ]
      }
    ],
    "properties": [
      {
        "signature": "bool HasBezierSpans",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns True if the NURBS curve has Bezier spans (all distinct knots have multiplicity = degree)",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "bool IsRational",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets a value indicating whether or not the curve is rational. Rational curves have control-points with custom weights.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "NurbsCurveKnotList Knots",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets access to the knots (or \"knot vector\") of this NURBS curve.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "int Order",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the order of the curve. Order = Degree + 1.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "NurbsCurvePointList Points",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets access to the control points of this NURBS curve.",
        "since": "5.0",
        "property": ["get"]
      }
    ],
    "methods": [
      {
        "signature": "NurbsCurve Create(System.Boolean periodic, System.Int32 degree, IEnumerable<Point3d> points)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Constructs a 3D NURBS curve from a list of control points.",
        "since": "5.0",
        "parameters": [
          {
            "name": "periodic",
            "type": "System.Boolean",
            "summary": "If true, create a periodic uniform curve. If false, create a clamped uniform curve."
          },
          {
            "name": "degree",
            "type": "System.Int32",
            "summary": "(>=1) degree=order-1."
          },
          {
            "name": "points",
            "type": "System.Collections.Generic.IEnumerable<Point3d>",
            "summary": "control vertex locations."
          }
        ],
        "returns": "new NURBS curve on success None on error."
      },
      {
        "signature": "NurbsCurve CreateFromArc(Arc arc, System.Int32 degree, System.Int32 cvCount)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Create a uniform non-rational cubic NURBS approximation of an arc.",
        "since": "6.0",
        "parameters": [
          {
            "name": "arc",
            "type": "Arc",
            "summary": ""
          },
          {
            "name": "degree",
            "type": "System.Int32",
            "summary": ">=1"
          },
          {
            "name": "cvCount",
            "type": "System.Int32",
            "summary": "CV count >=5"
          }
        ],
        "returns": "NURBS curve approximation of an arc on success"
      },
      {
        "signature": "NurbsCurve CreateFromArc(Arc arc)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Gets a rational degree 2 NURBS curve representation of the arc. Note that the parameterization of NURBS curve does not match arc's transcendental parameterization.",
        "since": "5.0",
        "returns": "Curve on success, None on failure."
      },
      {
        "signature": "NurbsCurve CreateFromCircle(Circle circle, System.Int32 degree, System.Int32 cvCount)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Create a uniform non-rational cubic NURBS approximation of a circle.",
        "since": "6.0",
        "parameters": [
          {
            "name": "circle",
            "type": "Circle",
            "summary": ""
          },
          {
            "name": "degree",
            "type": "System.Int32",
            "summary": ">=1"
          },
          {
            "name": "cvCount",
            "type": "System.Int32",
            "summary": "CV count >=5"
          }
        ],
        "returns": "NURBS curve approximation of a circle on success"
      },
      {
        "signature": "NurbsCurve CreateFromCircle(Circle circle)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Gets a rational degree 2 NURBS curve representation of the circle. Note that the parameterization of NURBS curve does not match circle's transcendental parameterization. Use GetRadianFromNurbFormParameter() and GetParameterFromRadian() to convert between the NURBS curve parameter and the transcendental parameter.",
        "since": "5.0",
        "returns": "Curve on success, None on failure."
      },
      {
        "signature": "NurbsCurve CreateFromEllipse(Ellipse ellipse)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Gets a rational degree 2 NURBS curve representation of the ellipse.  \nNote that the parameterization of the NURBS curve does not match     with the transcendental parameterization of the ellipsis.",
        "since": "5.0",
        "returns": "A NURBS curve representation of this ellipse or None if no such representation could be made."
      },
      {
        "signature": "NurbsCurve CreateFromFitPoints(IEnumerable<Point3d> points, System.Double tolerance, System.Boolean periodic)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Fits a NURBS curve to a dense, ordered set of points.",
        "since": "8.0",
        "parameters": [
          {
            "name": "points",
            "type": "IEnumerable<Point3d>",
            "summary": "An enumeration of 3D points."
          },
          {
            "name": "tolerance",
            "type": "System.Double",
            "summary": "The fitting tolerance. When in doubt, use the document's model absolute tolerance."
          },
          {
            "name": "periodic",
            "type": "System.Boolean",
            "summary": "Set True to create a periodic curve."
          }
        ],
        "returns": "A NURBS curve if successful, or None on failure."
      },
      {
        "signature": "NurbsCurve CreateFromFitPoints(IEnumerable<Point3d> points, System.Double tolerance, System.Int32 degree, System.Boolean periodic, Vector3d startTangent, Vector3d endTangent)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Fits a NURBS curve to a dense, ordered set of points.",
        "since": "8.0",
        "parameters": [
          {
            "name": "points",
            "type": "IEnumerable<Point3d>",
            "summary": "An enumeration of 3D points."
          },
          {
            "name": "tolerance",
            "type": "System.Double",
            "summary": "The fitting tolerance. When in doubt, use the document's model absolute tolerance."
          },
          {
            "name": "degree",
            "type": "System.Int32",
            "summary": "The desired degree of the output curve."
          },
          {
            "name": "periodic",
            "type": "System.Boolean",
            "summary": "Set True to create a periodic curve."
          },
          {
            "name": "startTangent",
            "type": "Vector3d",
            "summary": "The tangent direction at the start of the curve. If unknown, set to <b>Vector3d.Unset</b> ."
          },
          {
            "name": "endTangent",
            "type": "Vector3d",
            "summary": "The tangent direction at the end of the curve. If unknown, set to <b>Vector3d.Unset</b> ."
          }
        ],
        "returns": "A NURBS curve if successful, or None on failure."
      },
      {
        "signature": "NurbsCurve CreateFromLine(Line line)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Gets a non-rational, degree 1 NURBS curve representation of the line.",
        "since": "5.0",
        "returns": "Curve on success, None on failure."
      },
      {
        "signature": "NurbsCurve CreateHSpline(IEnumerable<Point3d> points, Vector3d startTangent, Vector3d endTangent)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Construct an H-spline from a sequence of interpolation points and optional start and end derivative information",
        "since": "7.0",
        "parameters": [
          {
            "name": "points",
            "type": "IEnumerable<Point3d>",
            "summary": "Points to interpolate"
          },
          {
            "name": "startTangent",
            "type": "Vector3d",
            "summary": "Unit tangent vector or Unset"
          },
          {
            "name": "endTangent",
            "type": "Vector3d",
            "summary": "Unit tangent vector or Unset"
          }
        ],
        "returns": "NURBS curve approximation of an arc on success"
      },
      {
        "signature": "NurbsCurve CreateHSpline(IEnumerable<Point3d> points)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Construct an H-spline from a sequence of interpolation points",
        "since": "7.0",
        "parameters": [
          {
            "name": "points",
            "type": "IEnumerable<Point3d>",
            "summary": "Points to interpolate"
          }
        ]
      },
      {
        "signature": "NurbsCurve CreateNonRationalArcBezier(System.Int32 degree, Point3d center, Point3d start, Point3d end, System.Double radius, System.Double tanSlider, System.Double midSlider)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Creates a non-rational approximation of a rational arc as a single bezier segment",
        "since": "8.0",
        "parameters": [
          {
            "name": "degree",
            "type": "System.Int32",
            "summary": "The degree of the non-rational approximation, can be either 3, 4, or 5"
          },
          {
            "name": "center",
            "type": "Point3d",
            "summary": "The arc center"
          },
          {
            "name": "start",
            "type": "Point3d",
            "summary": "A point in the direction of the start point of the arc"
          },
          {
            "name": "end",
            "type": "Point3d",
            "summary": "A point in the direction of the end point of the arc"
          },
          {
            "name": "radius",
            "type": "System.Double",
            "summary": "The radius of the arc"
          },
          {
            "name": "tanSlider",
            "type": "System.Double",
            "summary": "a number between zero and one which moves the tangent control point toward the mid control point of an equivalent quadratic rational arc"
          },
          {
            "name": "midSlider",
            "type": "System.Double",
            "summary": "a number between zero and one which moves the mid control points toward the mid control point of an equivalent quadratic rational arc"
          }
        ],
        "returns": "The approximated arc."
      },
      {
        "signature": "NurbsCurve CreateParabolaFromFocus(Point3d focus, Point3d startPoint, Point3d endPoint)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Creates a parabola from focus and end points.",
        "since": "6.0",
        "parameters": [
          {
            "name": "focus",
            "type": "Point3d",
            "summary": "The focal point."
          },
          {
            "name": "startPoint",
            "type": "Point3d",
            "summary": "The start point."
          },
          {
            "name": "endPoint",
            "type": "Point3d",
            "summary": "The end point"
          }
        ],
        "returns": "A 2 degree NURBS curve if successful, False otherwise."
      },
      {
        "signature": "NurbsCurve CreateParabolaFromPoints(Point3d startPoint, Point3d innerPoint, Point3d endPoint)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Creates a parabola from three points.",
        "since": "8.0",
        "parameters": [
          {
            "name": "startPoint",
            "type": "Point3d",
            "summary": "The start point."
          },
          {
            "name": "innerPoint",
            "type": "Point3d",
            "summary": "A point on the curve."
          },
          {
            "name": "endPoint",
            "type": "Point3d",
            "summary": "The end point"
          }
        ],
        "returns": "A 2 degree NURBS curve if successful, False otherwise."
      },
      {
        "signature": "NurbsCurve CreateParabolaFromVertex(Point3d vertex, Point3d startPoint, Point3d endPoint)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Creates a parabola from vertex and end points.",
        "since": "6.0",
        "parameters": [
          {
            "name": "vertex",
            "type": "Point3d",
            "summary": "The vertex point."
          },
          {
            "name": "startPoint",
            "type": "Point3d",
            "summary": "The start point."
          },
          {
            "name": "endPoint",
            "type": "Point3d",
            "summary": "The end point"
          }
        ],
        "returns": "A 2 degree NURBS curve if successful, False otherwise."
      },
      {
        "signature": "NurbsCurve CreateSpiral(Curve railCurve, System.Double t0, System.Double t1, Point3d radiusPoint, System.Double pitch, System.Double turnCount, System.Double radius0, System.Double radius1, System.Int32 pointsPerTurn)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Create a C2 non-rational uniform cubic NURBS approximation of a swept helix or spiral.",
        "since": "5.2",
        "parameters": [
          {
            "name": "railCurve",
            "type": "Curve",
            "summary": "The rail curve."
          },
          {
            "name": "t0",
            "type": "System.Double",
            "summary": "Starting portion of rail curve's domain to sweep along."
          },
          {
            "name": "t1",
            "type": "System.Double",
            "summary": "Ending portion of rail curve's domain to sweep along."
          },
          {
            "name": "radiusPoint",
            "type": "Point3d",
            "summary": "Point used only to get a vector that is perpendicular to the axis. In particular, this vector must not be (anti)parallel to the axis vector."
          },
          {
            "name": "pitch",
            "type": "System.Double",
            "summary": "The pitch. Positive values produce counter-clockwise orientation, negative values produce clockwise orientation."
          },
          {
            "name": "turnCount",
            "type": "System.Double",
            "summary": "The turn count. If != 0, then the resulting helix will have this many turns. If = 0, then pitch must be != 0 and the approximate distance between turns will be set to pitch. Positive values produce counter-clockwise orientation, negative values produce clockwise orientation."
          },
          {
            "name": "radius0",
            "type": "System.Double",
            "summary": "The starting radius. At least one radii must be nonzero. Negative values are allowed."
          },
          {
            "name": "radius1",
            "type": "System.Double",
            "summary": "The ending radius. At least one radii must be nonzero. Negative values are allowed."
          },
          {
            "name": "pointsPerTurn",
            "type": "System.Int32",
            "summary": "Number of points to interpolate per turn. Must be greater than 4. When in doubt, use 12."
          }
        ],
        "returns": "NurbsCurve on success, None on failure."
      },
      {
        "signature": "NurbsCurve CreateSpiral(Point3d axisStart, Vector3d axisDir, Point3d radiusPoint, System.Double pitch, System.Double turnCount, System.Double radius0, System.Double radius1)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Creates a C1 cubic NURBS approximation of a helix or spiral. For a helix, you may have radius0 == radius1. For a spiral radius0 == radius1 produces a circle. Zero and negative radii are permissible.",
        "since": "5.2",
        "parameters": [
          {
            "name": "axisStart",
            "type": "Point3d",
            "summary": "Helix's axis starting point or center of spiral."
          },
          {
            "name": "axisDir",
            "type": "Vector3d",
            "summary": "Helix's axis vector or normal to spiral's plane."
          },
          {
            "name": "radiusPoint",
            "type": "Point3d",
            "summary": "Point used only to get a vector that is perpendicular to the axis. In particular, this vector must not be (anti)parallel to the axis vector."
          },
          {
            "name": "pitch",
            "type": "System.Double",
            "summary": "The pitch, where a spiral has a pitch = 0, and pitch > 0 is the distance between the helix's \"threads\"."
          },
          {
            "name": "turnCount",
            "type": "System.Double",
            "summary": "The number of turns in spiral or helix. Positive values produce counter-clockwise orientation, negative values produce clockwise orientation. Note, for a helix, turnCount * pitch = length of the helix's axis."
          },
          {
            "name": "radius0",
            "type": "System.Double",
            "summary": "The starting radius."
          },
          {
            "name": "radius1",
            "type": "System.Double",
            "summary": "The ending radius."
          }
        ],
        "returns": "NurbsCurve on success, None on failure."
      },
      {
        "signature": "NurbsCurve CreateSubDFriendly(Curve curve, System.Int32 pointCount, System.Boolean periodicClosedCurve)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Create a NURBS curve, that is suitable for calculations like lofting SubD objects, from an existing curve.",
        "since": "7.0",
        "parameters": [
          {
            "name": "curve",
            "type": "Curve",
            "summary": "Curve to rebuild as a SubD friendly curve."
          },
          {
            "name": "pointCount",
            "type": "System.Int32",
            "summary": "Desired number of control points. If periodicClosedCurve is true, the number must be >= 6, otherwise the number must be >= 4."
          },
          {
            "name": "periodicClosedCurve",
            "type": "System.Boolean",
            "summary": "True if the SubD friendly curve should be closed and periodic. False in all other cases."
          }
        ],
        "returns": "A SubD friendly NURBS curve is successful, None otherwise."
      },
      {
        "signature": "NurbsCurve CreateSubDFriendly(Curve curve)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Create a NURBS curve, that is suitable for calculations like lofting SubD objects, from an existing curve.",
        "since": "7.0",
        "parameters": [
          {
            "name": "curve",
            "type": "Curve",
            "summary": "Curve to rebuild as a SubD friendly curve."
          }
        ],
        "returns": "A SubD friendly NURBS curve is successful, None otherwise."
      },
      {
        "signature": "NurbsCurve CreateSubDFriendly(IEnumerable<Point3d> points, System.Boolean interpolatePoints, System.Boolean periodicClosedCurve)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Create a NURBS curve, that is suitable for calculations like lofting SubD objects, through a sequence of curves.",
        "since": "7.0",
        "parameters": [
          {
            "name": "points",
            "type": "IEnumerable<Point3d>",
            "summary": "An enumeration of points. Adjacent points must not be equal. If periodicClosedCurve is false, there must be at least two points. If periodicClosedCurve is true, there must be at least three points and it is not necessary to duplicate the first and last points. When periodicClosedCurve is True and the first and last points are equal, the duplicate last point is automatically ignored."
          },
          {
            "name": "interpolatePoints",
            "type": "System.Boolean",
            "summary": "True if the curve should interpolate the points. False if points specify control point locations. In either case, the curve will begin at the first point and end at the last point."
          },
          {
            "name": "periodicClosedCurve",
            "type": "System.Boolean",
            "summary": "True to create a periodic closed curve. Do not duplicate the start/end point in the point input."
          }
        ],
        "returns": "A SubD friendly NURBS curve is successful, None otherwise."
      },
      {
        "signature": "System.Boolean IsDuplicate(NurbsCurve curveA, NurbsCurve curveB, System.Boolean ignoreParameterization, System.Double tolerance)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Determines if two curves are similar.",
        "since": "5.0",
        "parameters": [
          {
            "name": "curveA",
            "type": "NurbsCurve",
            "summary": "First curve used in comparison."
          },
          {
            "name": "curveB",
            "type": "NurbsCurve",
            "summary": "Second curve used in comparison."
          },
          {
            "name": "ignoreParameterization",
            "type": "System.Boolean",
            "summary": "if true, parameterization and orientation are ignored."
          },
          {
            "name": "tolerance",
            "type": "System.Double",
            "summary": "tolerance to use when comparing control points."
          }
        ],
        "returns": "True if curves are similar within tolerance."
      },
      {
        "signature": "NurbsCurve[] MakeCompatible(IEnumerable<Curve> curves, Point3d startPt, Point3d endPt, System.Int32 simplifyMethod, System.Int32 numPoints, System.Double refitTolerance, System.Double angleTolerance)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "For expert use only. From the input curves, make an array of compatible NURBS curves.",
        "since": "6.0",
        "parameters": [
          {
            "name": "curves",
            "type": "IEnumerable<Curve>",
            "summary": "The input curves."
          },
          {
            "name": "startPt",
            "type": "Point3d",
            "summary": "The start point. To omit, specify Point3d.Unset."
          },
          {
            "name": "endPt",
            "type": "Point3d",
            "summary": "The end point. To omit, specify Point3d.Unset."
          },
          {
            "name": "simplifyMethod",
            "type": "System.Int32",
            "summary": "The simplify method."
          },
          {
            "name": "numPoints",
            "type": "System.Int32",
            "summary": "The number of rebuild points."
          },
          {
            "name": "refitTolerance",
            "type": "System.Double",
            "summary": "The refit tolerance."
          },
          {
            "name": "angleTolerance",
            "type": "System.Double",
            "summary": "The angle tolerance in radians."
          }
        ],
        "returns": "The output NURBS surfaces if successful."
      },
      {
        "signature": "System.Boolean Append(NurbsCurve nurbsCurve)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Appends a NURBS curve to this curve.",
        "since": "7.13",
        "parameters": [
          {
            "name": "nurbsCurve",
            "type": "NurbsCurve",
            "summary": "The NURBS curve to append."
          }
        ]
      },
      {
        "signature": "BezierCurve ConvertSpanToBezier(System.Int32 spanIndex)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Converts a span of the NURBS curve into a Bezier.",
        "since": "7.25",
        "parameters": [
          {
            "name": "spanIndex",
            "type": "System.Int32",
            "summary": "The span index, where (0 <= spanIndex <= Points.Count - Order)."
          }
        ],
        "returns": "Bezier curve if successful, None otherwise."
      },
      {
        "signature": "Plane[] CreatePlanarRailFrames(IEnumerable<double> parameters, Vector3d normal)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Computes planar rail sweep frames at specified parameters.",
        "since": "7.0",
        "parameters": [
          {
            "name": "parameters",
            "type": "IEnumerable<double>",
            "summary": "A collection of curve parameters."
          },
          {
            "name": "normal",
            "type": "Vector3d",
            "summary": "Unit normal to the plane."
          }
        ],
        "returns": "An array of planes if successful, or an empty array on failure."
      },
      {
        "signature": "Plane[] CreateRailFrames(IEnumerable<double> parameters)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Computes relatively parallel rail sweep frames at specified parameters.",
        "since": "7.0",
        "parameters": [
          {
            "name": "parameters",
            "type": "IEnumerable<double>",
            "summary": "A collection of curve parameters."
          }
        ],
        "returns": "An array of planes if successful, or an empty array on failure."
      },
      {
        "signature": "System.Boolean EpsilonEquals(NurbsCurve other, System.Double epsilon)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Check that all values in other are within epsilon of the values in this",
        "since": "5.4"
      },
      {
        "signature": "System.Double GrevilleParameter(System.Int32 index)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the greville (edit point) parameter that belongs to the control point at the specified index.",
        "since": "5.0",
        "parameters": [
          {
            "name": "index",
            "type": "System.Int32",
            "summary": "Index of Greville (Edit) point."
          }
        ]
      },
      {
        "signature": "System.Double[] GrevilleParameters()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets all Greville parameters for this curve.",
        "since": "5.0"
      },
      {
        "signature": "Point3d GrevillePoint(System.Int32 index)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the Greville parameter that belongs to the control point at the specified index.",
        "since": "5.0",
        "parameters": [
          {
            "name": "index",
            "type": "System.Int32",
            "summary": "Index of Greville point."
          }
        ]
      },
      {
        "signature": "Point3dList GrevillePoints()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets all Greville points for this curve.",
        "since": "5.0"
      },
      {
        "signature": "Point3dList GrevillePoints(System.Boolean all)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets Greville points for this curve.",
        "since": "6.18",
        "parameters": [
          {
            "name": "all",
            "type": "System.Boolean",
            "summary": "If true, then all Greville points are returns. If false, only edit points are returned."
          }
        ],
        "returns": "A list of points if successful, None otherwise."
      },
      {
        "signature": "System.Boolean IncreaseDegree(System.Int32 desiredDegree)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Increase the degree of this curve.",
        "since": "5.0",
        "parameters": [
          {
            "name": "desiredDegree",
            "type": "System.Int32",
            "summary": "The desired degree. Degrees should be number between and including 1 and 11."
          }
        ],
        "returns": "True on success, False on failure."
      },
      {
        "signature": "System.Boolean MakePiecewiseBezier(System.Boolean setEndWeightsToOne)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Clamps ends and adds knots so the NURBS curve has Bezier spans (all distinct knots have multiplicity = degree).",
        "since": "5.0",
        "parameters": [
          {
            "name": "setEndWeightsToOne",
            "type": "System.Boolean",
            "summary": "If True and the first or last weight is not one, then the first and last spans are re-parameterized so that the end weights are one."
          }
        ],
        "returns": "True on success, False on failure."
      },
      {
        "signature": "System.Boolean MakeUniform()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Changes a NURBS curve so each control point affects the curve exactly the same way. This make the knot vectors uniform without changing the control point locations. This will change the object shape slightly.",
        "since": "8.24",
        "returns": "True if successful, False otherwise."
      },
      {
        "signature": "NurbsCurve MatchToCurve(Curve targetCurve, System.Double maxEndDistance, System.Double maxInteriorDistance, System.Double matchTolerance, System.Int32 maxLevel)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Constructs a NURBS curve with the start and end matching the start and end of targetCurve, and Greville points on targetCurve.",
        "since": "8.0",
        "parameters": [
          {
            "name": "targetCurve",
            "type": "Curve",
            "summary": "The target curve."
          },
          {
            "name": "maxEndDistance",
            "type": "System.Double",
            "summary": "If maxEndDistance dist > 0, the curve's start must be within maxEndDistance of targetCurve start. If maxEndDistance dist > 0, the curve's end must be within maxEndDistance of targetCurve end."
          },
          {
            "name": "maxInteriorDistance",
            "type": "System.Double",
            "summary": "If maxInteriorDistance > 0, all interior Greville points of the curve must be within maxInteriorDistance of targetCurve."
          },
          {
            "name": "matchTolerance",
            "type": "System.Double",
            "summary": "The matching tolerance."
          },
          {
            "name": "maxLevel",
            "type": "System.Int32",
            "summary": "If maxLevel > 0, the result will be refined up to that many times, attempting to get the result within matchTolerance. If matchTolerance <= 0, no refinement will be done. In any case, the parameters closest points on targetCurve of the Greville points of the curve must be monotonic increasing."
          }
        ],
        "returns": "Curve on success, None on failure."
      },
      {
        "signature": "System.Boolean Reparameterize(System.Double c)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Use a linear fractional transformation to re-parameterize the NURBS curve. This does not change the curve's domain.",
        "since": "5.0",
    "remarks": "The CV and knot values are values are changed so that output_nurbs(t) = input_nurbs(lambda(t)).",
        "parameters": [
          {
            "name": "c",
            "type": "System.Double",
            "summary": "re-parameterization constant (generally speaking, c should be > 0). The control points and knots are adjusted so that output_nurbs(t) = input_nurbs(lambda(t)), where lambda(t) = c*t/( (c-1)*t + 1 ). Note that lambda(0) = 0, lambda(1) = 1, lambda'(t) > 0, lambda'(0) = c and lambda'(1) = 1/c."
          }
        ],
        "returns": "True if successful."
      },
      {
        "signature": "System.Boolean SetEndCondition(System.Boolean bSetEnd, NurbsCurveEndConditionType continuity, Point3d point, Vector3d tangent, Vector3d curvature)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Set end condition of a NURBS curve to point, tangent and curvature.",
        "since": "6.0",
        "parameters": [
          {
            "name": "bSetEnd",
            "type": "System.Boolean",
            "summary": "true: set end of curve, false: set start of curve"
          },
          {
            "name": "continuity",
            "type": "NurbsCurveEndConditionType",
            "summary": "Position: set start or end point, Tangency: set point and tangent, Curvature: set point, tangent and curvature"
          },
          {
            "name": "point",
            "type": "Point3d",
            "summary": "point to set"
          },
          {
            "name": "tangent",
            "type": "Vector3d",
            "summary": "tangent to set"
          },
          {
            "name": "curvature",
            "type": "Vector3d",
            "summary": "curvature to set"
          }
        ],
        "returns": "True on success, False on failure."
      },
      {
        "signature": "System.Boolean SetEndCondition(System.Boolean bSetEnd, NurbsCurveEndConditionType continuity, Point3d point, Vector3d tangent)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Set end condition of a NURBS curve to point, tangent and curvature.",
        "since": "6.0",
        "parameters": [
          {
            "name": "bSetEnd",
            "type": "System.Boolean",
            "summary": "true: set end of curve, false: set start of curve"
          },
          {
            "name": "continuity",
            "type": "NurbsCurveEndConditionType",
            "summary": "Position: set start or end point, Tangency: set point and tangent, Curvature: set point, tangent and curvature"
          },
          {
            "name": "point",
            "type": "Point3d",
            "summary": "point to set"
          },
          {
            "name": "tangent",
            "type": "Vector3d",
            "summary": "tangent to set"
          }
        ],
        "returns": "True on success, False on failure."
      },
      {
        "signature": "System.Boolean SetGrevillePoints(IEnumerable<Point3d> points)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Sets all Greville edit points for this curve.",
        "since": "6.4",
        "parameters": [
          {
            "name": "points",
            "type": "IEnumerable<Point3d>",
            "summary": "The new point locations. The number of points should match the number of point returned by NurbsCurve.GrevillePoints(false)."
          }
        ],
        "returns": "True if successful, False otherwise."
      },
      {
        "signature": "System.Boolean UVNDirectionsAt(System.Double t, out Vector3d uDir, out Vector3d vDir, out Vector3d nDir)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Calculates the u, V, and N directions of a NURBS curve at a parameter similar to the method used by Rhino's MoveUVN command.",
        "since": "7.0",
        "parameters": [
          {
            "name": "t",
            "type": "System.Double",
            "summary": "The evaluation parameter."
          },
          {
            "name": "uDir",
            "type": "Vector3d",
            "summary": "The U direction."
          },
          {
            "name": "vDir",
            "type": "Vector3d",
            "summary": "The V direction."
          },
          {
            "name": "nDir",
            "type": "Vector3d",
            "summary": "The N direction."
          }
        ],
        "returns": "True if successful, False otherwise."
      }
    ]
  },
  {
    "namespace": "Rhino.Geometry",
    "name": "NurbsCurve.NurbsCurveEndConditionType",
    "dataType": "enum",
    "summary": "What end conditions to set",
    "since": "6.0",
    "values": [
      {
        "signature": "Nothing = UnsafeNativeMethods.NurbsCurveEndConditionType.Nothing",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Set nothing"
      },
      {
        "signature": "Position = UnsafeNativeMethods.NurbsCurveEndConditionType.Position",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Set endpoint"
      },
      {
        "signature": "Tangency = UnsafeNativeMethods.NurbsCurveEndConditionType.Tangency",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Set tangent"
      },
      {
        "signature": "Curvature = UnsafeNativeMethods.NurbsCurveEndConditionType.Curvature",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Set curvature"
      }
    ]

  },
  {
    "namespace": "Rhino.Geometry",
    "name": "NurbsCurveFitParameters",
    "dataType": "class",
    "summary": "The NURBS curve fit tool creates a NURBS curve that approximates an existing curve. The NurbsCurveFitParameters class contains the paramters that determine NURBS curve properties (degree, point count, ...) and other fitting contstraints.",
    "interfaces": ["ICloneable", "IDisposable"],
    "constructors": [
      {
        "signature": "NurbsCurveFitParameters()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Initializes a new instance of the <b>NurbsCurveFitParameters</b> class.",
        "since": "5.0"
      },
      {
        "signature": "NurbsCurveFitParameters(NurbsCurveFitParameters other)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Creates a new instance of the <b>NurbsCurveFitParameters</b> class as a copy of an existing instance.",
        "parameters": [
          {
            "name": "other",
            "type": "NurbsCurveFitParameters",
            "summary": "The instance to copy"
          }
        ]
      }
    ],
    "properties": [
      {
        "signature": "int DefaultDegree",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "The default degree of the fit",
        "property": ["get"]
      },
      {
        "signature": "int DefaultSampleCount",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Default number of points to sample from input curves and pass to the fitter that creates the output NURBS curve.",
        "property": ["get"]
      },
      {
        "signature": "int MaximumDegree",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "The maximum degree of the fit",
        "property": ["get"]
      },
      {
        "signature": "int MaximumPointCount",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the maximum number of points supported for NURBS curve fitting operations.",
        "property": ["get"]
      },
      {
        "signature": "int MaximumSampleCount",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Maximum number of points to sample from input curves and pass to the fitter that creates the output NURBS curve.",
        "property": ["get"]
      },
      {
        "signature": "int MinimumClampedPointCount",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "The minimum clamped point count",
        "property": ["get"]
      },
      {
        "signature": "int MinimumClosedPointCount",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "The minimum closed point count",
        "property": ["get"]
      },
      {
        "signature": "int MinimumDegree",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "The minimum degree of the fit",
        "property": ["get"]
      },
      {
        "signature": "int MinimumSampleCount",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Minimum number of points to sample from input curves and pass to the fitter that creates the output NURBS curve.",
        "property": ["get"]
      },
      {
        "signature": "bool ApplyTangentMatchingAtKinks",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "If true, the TangentMatching setting is applied at kinks. Otherwise, TangentMatching applies only to the ends of curves.",
        "property": ["get", "set"]
      },
      {
        "signature": "int ClampedControlPointCount",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Number of control points if the NURBS curve will be clamped. Number of total control points if the NURBS curve will be periodic. This number is >= PointCount() Includes SubDFriendly constrained points and the duplicated point for a clamped closed curve.",
        "property": ["get"]
      },
      {
        "signature": "bool Closed",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Number of total control points if the NURBS curve will be periodic. This number is >= PointCount() and includes periodic duplicates.",
        "property": ["get", "set"]
      },
      {
        "signature": "int ConstrainedPointCount",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "If Closed() is true, the number of constrained points is (TangentMatchStart() || TangentMatchEnd() ? 1 : 0) + (TangentMatchStart()?1:0) + (TangentMatchEnd()?1:0). If Closed() is false, the number of constrained points is 2 + (SubDFriendly() ? 2 : 0) + (TangentMatchStart()?1:0) + (TangentMatchEnd()?1:0).",
        "property": ["get"]
      },
      {
        "signature": "double CurvatureBiasCoefficient",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "When CurvatureBiasIntensity == NurbsCurveFitParameters.Intensity::Custom, this value is used as the curvature bias parameter.",
        "property": ["get", "set"]
      },
      {
        "signature": "Intensity CurvatureBiasIntensity",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Curvature bias is used to make the fit curve stay close to regions of relatively high curvature. Use CurvatureBiasCoefficient() to convert this enum to the the value passed to the optimizer.",
        "property": ["get", "set"]
      },
      {
        "signature": "int Degree",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "The degree of the resulting curve",
        "property": ["get", "set"]
      },
      {
        "signature": "double KinkAngleDegrees",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "The angle, in degrees, used to determine if when an abrupt change in tangent or curvature vector direction is a kink.",
        "property": ["get", "set"]
      },
      {
        "signature": "double KinkAngleRadians",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "The angle, in radians, used to determine if when an abrupt change in tangent or curvature vector direction is a kink.",
        "property": ["get", "set"]
      },
      {
        "signature": "KinkSplit KinkSplitting",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the kink splitting behavior used when fitting a NURBS curve. See also <b>KinkSplit</b>",
    "remarks": "This property determines how the curve fitting algorithm handles kinks or sharp changes in direction. Adjusting this value can influence the smoothness and accuracy of the resulting curve. Choose an appropriate value based on whether preserving or smoothing out kinks is desired for your application.",
        "property": ["get", "set"]
      },
      {
        "signature": "bool OptimizeCurve",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "If OptimizeCurve = false, then all options below are ignored and the Greville interpolant is returned. Rhino 1 - Rhino 8 Rebuild command created a result similar to what's created when m_bOptimizeCurve = false.",
        "property": ["get", "set"]
      },
      {
        "signature": "int PeriodicControlPointCount",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Number of total control points if the NURBS curve will be periodic. This number is >= PointCount() and includes periodic duplicates.",
        "property": ["get"]
      },
      {
        "signature": "int PointCount",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Number of distinct control points in the NURBS curve fit. If a range of point counts is possible, this is the minimum number.",
        "property": ["get", "set"]
      },
      {
        "signature": "IndexPair PointCountRange",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets  the point count range as an IndexPair.",
        "property": ["get", "set"]
      },
      {
        "signature": "int PointCountRangeMaximum",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "property": ["get"]
      },
      {
        "signature": "int PointCountRangeMinimum",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "property": ["get"]
      },
      {
        "signature": "double PointCountRangeTolerance",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "When a range of point counts is permitted and PointCountRangeTolerance greater than 0, then searching for the NURBS curve fit terminates if the separation is less than or equal to PointCountRangeTolerance.",
        "property": ["get"]
      },
      {
        "signature": "int SampleCount",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "This is the number of points the NURBS curve is fit through. Is it common for these points to be sampled from an input curve.",
        "property": ["get"]
      },
      {
        "signature": "double SmoothingCoefficient",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "When SmoothingIntensity == NurbsCurveFitParameters.Intensity::Custom, this value is used as the smoothing parameter.",
        "property": ["get", "set"]
      },
      {
        "signature": "Intensity SmoothingIntensity",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Smoothing penalty used to make triples of consecutive control polygon points colinear. Use SmoothingCoefficient() to convert this enum to the the value passed to the optimizer.",
        "property": ["get", "set"]
      },
      {
        "signature": "bool SubDFriendly",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the SubDFriendly property. When true, the resulting curve will be more likely to have good subdivision surface properties, such as fewer kinks and more even parameterization. This is accomplished by using a more aggressive kink splitting strategy and by using the SmoothingCoefficient to bias the fit towards smoother curves.",
        "property": ["get", "set"]
      },
      {
        "signature": "TangentMatch TangentMatching",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets ot Sets the TangentMatching value",
        "property": ["get", "set"]
      },
      {
        "signature": "double UniformityCoefficient",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "When UniformityIntensity == NurbsCurveFitParameters.Intensity::Custom, this value is used as the uniformity parameter.",
        "property": ["get", "set"]
      },
      {
        "signature": "Intensity UniformityIntensity",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Uniformity penalty used to make the distance between control points more equal. Use UniformityCoefficient() to convert this enum to the the value passed to the optimizer.",
        "property": ["get", "set"]
      },
      {
        "signature": "int VariablePointCount",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "property": ["get"]
      }
    ],
    "methods": [
      {
        "signature": "System.Int32 MaximumPointCountForDegree(System.Int32 degree, System.Boolean bClosed, System.Boolean bSubDFriendly)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Given a point count and periodic setting, determine the maximum degree.",
        "parameters": [
          {
            "name": "degree",
            "type": "System.Int32",
            "summary": "Degree of output NURBS curve."
          },
          {
            "name": "bClosed",
            "type": "System.Boolean",
            "summary": "True if the output NURBS curve will be closed."
          },
          {
            "name": "bSubDFriendly",
            "type": "System.Boolean",
            "summary": "True if the output NURBS curve will be SubDFriendly."
          }
        ],
        "returns": "Maximum permitted degree."
      },
      {
        "signature": "System.Int32 MinimumPointCountForDegree(System.Int32 degree, System.Boolean bClosed, System.Boolean bSubDFriendly)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Give a degree and periodic setting, determine the minimum point count.",
        "parameters": [
          {
            "name": "degree",
            "type": "System.Int32",
            "summary": "Degree of output NURBS curve."
          },
          {
            "name": "bClosed",
            "type": "System.Boolean",
            "summary": "True if the output NURBS curve will be closed."
          },
          {
            "name": "bSubDFriendly",
            "type": "System.Boolean",
            "summary": "True if the output NURBS curve will be SubDFriendly."
          }
        ],
        "returns": "Minimum permitted point count."
      },
      {
        "signature": "System.Boolean ValidInput(System.Int64 sample_point_count, System.Int32 degree, System.Int32 control_point_count, System.Boolean bClosed, Interval curve_domain)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "returns True if the input values are within the acceptable ranges for NURBS curve fitting. If False is returned, the input values should be adjusted before calling the curve fitting function. See also MinimumPointCountForDegree() and MaximumPointCountForDegree()."
      },
      {
        "signature": "System.Object Clone()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Supports the ICloneable inteface and creates a new NurbsCurveFitParameters object with the same property values as this instance."
      },
      {
        "signature": "System.Void Dispose()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Actively reclaims unmanaged resources that this instance uses.",
        "since": "5.0"
      },
      {
        "signature": "System.Void Dispose(System.Boolean disposing)",
        "modifiers": ["protected", "virtual"],
        "protected": true,
        "virtual": true,
        "summary": "For derived class implementers.  \nThis method is called with argument True when class user calls Dispose(), while with argument False when     the Garbage Collector invokes the finalizer, or Finalize() method.  \nYou must reclaim all used unmanaged resources in both cases, and can use this chance to call Dispose on disposable fields if the argument is true.  \nAlso, you must call the base virtual method within your overriding method.",
        "parameters": [
          {
            "name": "disposing",
            "type": "System.Boolean",
            "summary": "True if the call comes from the Dispose() method; False if it comes from the Garbage Collector finalizer."
          }
        ]
      },
      {
        "signature": "System.Double GetCurvatureBiasCoefficientFromIntensity(Intensity intensity)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns the Curvature bias coefficient that corresponds to a given NurbsCurveFitParameters.Intensity value."
      },
      {
        "signature": "Intensity GetCurvatureBiasIntensityFromCoefficient(System.Double coefficient)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns the NurbsCurveFitParameters.Intensity value that corresponds to a given curvature bias coefficient."
      },
      {
        "signature": "System.Void GetPointCountRange(out System.Int32 minimum, out System.Int32 maximum, out System.Double tolerance)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Get the point count range and tolerance."
      },
      {
        "signature": "System.Double GetSmoothingCoefficientFromIntensity(Intensity intensity)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns the smoothing coefficient that corresponds to a given NurbsCurveFitParameters.Intensity value."
      },
      {
        "signature": "Intensity GetSmoothingIntensityFromCoefficient(System.Double coefficient)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns the NurbsCurveFitParameters.Intensity value that corresponds to a given smoothing coefficient."
      },
      {
        "signature": "System.Double GetUniformityCoefficientFromIntensity(Intensity intensity)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns the uniformity coefficient that corresponds to a given NurbsCurveFitParameters.Intensity value."
      },
      {
        "signature": "Intensity GetUniformityIntensityFromCoefficient(System.Double coefficient)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns the NurbsCurveFitParameters.Intensity value that corresponds to a given uniformity coefficient."
      },
      {
        "signature": "System.Void SetPointCountRange(System.Int32 minimum, System.Int32 maximum, System.Double tolerance)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Set the point count range and tolerance."
      },
      {
        "signature": "System.Void SetPointCountRange(System.Int32 minimum, System.Int32 maximum)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Set the point count range and tolerance."
      }
    ]
  },
  {
    "namespace": "Rhino.Geometry",
    "name": "NurbsCurveFitParameters.Intensity",
    "dataType": "enum",
    "summary": "The Intensity enum is used to select a predefined or a custom value for the smoothing, uniformity, and curvature bias coefficients.",
    "values": [
      {
        "signature": "None = 0",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Low = 1",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Moderate = 2",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Medium = 3",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "High = 4",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Extreme = 5",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Custom = 6",
        "modifiers": [],
        "protected": false,
        "virtual": false
      }
    ]

  },
  {
    "namespace": "Rhino.Geometry",
    "name": "NurbsCurveFitParameters.KinkSplit",
    "dataType": "enum",
    "summary": "The KinkSplit enum is used to determine how target curve kinks (abrupt changes in target or curvature) are handled during rebuilding.",
    "values": [
      {
        "signature": "None = 0",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "All target curve kinks are ignored and rebuilt curves will be G2."
      },
      {
        "signature": "AtG1Changes = 1",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "The rebuilt curve is permitted have a tangent change at locations where the target curve has tangent changes. Curvature changes in the target curve are ignored."
      },
      {
        "signature": "AtLargeG2Changes = 2",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "The rebuilt curve is permitted have a tangent or curvature changes at locations where the target curve has a tangent or large curvature changes."
      },
      {
        "signature": "AtMediumG2Changes = 3",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "The rebuilt curve is permitted have a tangent or curvature changes at locations where the target curve has a tangent or medium curvature changes."
      },
      {
        "signature": "AtSmallG2Changes = 4",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "The rebuilt curve is permitted have a tangent or curvature changes at locations where the target curve has a tangent or small curvature changes. This option is the most sensitive to splitting at any tangent or curvature kink."
      }
    ]

  },
  {
    "namespace": "Rhino.Geometry",
    "name": "NurbsCurveFitParameters.TangentMatch",
    "dataType": "enum",
    "summary": "The TangentMatch enum is used to constrain the tangents of the rebuilt curve to match those of the target curve.",
    "values": [
      {
        "signature": "None = 0",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Ignore target curve start and end tangent directions."
      },
      {
        "signature": "AtStart = 1",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Match the target curve start tangent direction."
      },
      {
        "signature": "AtEnd = 2",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Match the target curve end tangent direction."
      },
      {
        "signature": "AtStartAndEnd = 3",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Match the target curve start and end tangent direction."
      }
    ]

  },
  {
    "namespace": "Rhino.Geometry",
    "name": "NurbsMultiMatcher.EdgeContinuityOption",
    "dataType": "enum",
    "values": [
      {
        "signature": "Unset = 0",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Loose",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Position",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Tangency",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Curvature",
        "modifiers": [],
        "protected": false,
        "virtual": false
      }
    ]

  },
  {
    "namespace": "Rhino.Geometry",
    "name": "NurbsMultiMatcher.FreeEdgeMovementOption",
    "dataType": "enum",
    "values": [
      {
        "signature": "Unset = 0",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "None",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Rigid",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Smooth",
        "modifiers": [],
        "protected": false,
        "virtual": false
      }
    ]

  },
  {
    "namespace": "Rhino.Geometry",
    "name": "NurbsMultiMatcher.InteriorMovementOption",
    "dataType": "enum",
    "values": [
      {
        "signature": "Unset = 0",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "None",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Rigid",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Smooth",
        "modifiers": [],
        "protected": false,
        "virtual": false
      }
    ]

  },
  {
    "namespace": "Rhino.Geometry",
    "name": "NurbsMultiMatcher.SolverOption",
    "dataType": "enum",
    "values": [
      {
        "signature": "Unset = 0",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "SingularValueDecomposition",
        "modifiers": [],
        "protected": false,
        "virtual": false
      }
    ]

  },
  {
    "namespace": "Rhino.Geometry",
    "name": "NurbsSurface",
    "dataType": "class",
    "summary": "Represents a Non Uniform Rational B-Splines (NURBS) surface.",
    "baseclass": "Rhino.Geometry.Surface",
    "interfaces": ["IEpsilonComparable<NurbsSurface>"],
    "constructors": [
      {
        "signature": "NurbsSurface(NurbsSurface other)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Initializes a new NURBS surface by copying the values from another surface.",
        "since": "5.0",
        "parameters": [
          {
            "name": "other",
            "type": "NurbsSurface",
            "summary": "Another surface."
          }
        ]
      },
      {
        "signature": "NurbsSurface(SerializationInfo info, StreamingContext context)",
        "modifiers": ["protected"],
        "protected": true,
        "virtual": false,
        "summary": "Protected constructor for internal use.",
        "parameters": [
          {
            "name": "info",
            "type": "System.Runtime.Serialization.SerializationInfo",
            "summary": "Serialization data."
          },
          {
            "name": "context",
            "type": "System.Runtime.Serialization.StreamingContext",
            "summary": "Serialization stream."
          }
        ]
      }
    ],
    "properties": [
      {
        "signature": "bool IsRational",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets a value indicating whether or not the NURBS surface is rational.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "NurbsSurfaceKnotList KnotsU",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "The U direction knot vector.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "NurbsSurfaceKnotList KnotsV",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "The V direction knot vector.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "int OrderU",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the order in the U direction.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "int OrderV",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the order in the V direction.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "NurbsSurfacePointList Points",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets a collection of surface control points that form this surface.",
        "since": "5.0",
        "property": ["get"]
      }
    ],
    "methods": [
      {
        "signature": "NurbsSurface Create(System.Int32 dimension, System.Boolean isRational, System.Int32 order0, System.Int32 order1, System.Int32 controlPointCount0, System.Int32 controlPointCount1)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Constructs a new NURBS surface with internal uninitialized arrays.",
        "since": "5.0",
        "parameters": [
          {
            "name": "dimension",
            "type": "System.Int32",
            "summary": "The number of dimensions.  \n>= 1. This value is usually 3."
          },
          {
            "name": "isRational",
            "type": "System.Boolean",
            "summary": "True to make a rational NURBS."
          },
          {
            "name": "order0",
            "type": "System.Int32",
            "summary": "The order in U direction.  \n>= 2."
          },
          {
            "name": "order1",
            "type": "System.Int32",
            "summary": "The order in V direction.  \n>= 2."
          },
          {
            "name": "controlPointCount0",
            "type": "System.Int32",
            "summary": "Control point count in U direction.  \n>= order0."
          },
          {
            "name": "controlPointCount1",
            "type": "System.Int32",
            "summary": "Control point count in V direction.  \n>= order1."
          }
        ],
        "returns": "A new NURBS surface, or None on error."
      },
      {
        "signature": "NurbsCurve CreateCurveOnSurface(Surface surface, IEnumerable<Point2d> points, System.Double tolerance, System.Boolean periodic)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Fit a sequence of 2d points on a surface to make a curve on the surface.",
        "since": "6.3",
    "remarks": "To produce the input points, use Surface.CreateCurveOnSurfacePoints.",
        "parameters": [
          {
            "name": "surface",
            "type": "Surface",
            "summary": "Surface on which to construct curve."
          },
          {
            "name": "points",
            "type": "IEnumerable<Point2d>",
            "summary": "Parameter space coordinates of the points to interpolate."
          },
          {
            "name": "tolerance",
            "type": "System.Double",
            "summary": "Curve should be within tolerance of surface and points."
          },
          {
            "name": "periodic",
            "type": "System.Boolean",
            "summary": "When True make a periodic curve."
          }
        ],
        "returns": "A curve interpolating the points if successful, None on error."
      },
      {
        "signature": "Point2d[] CreateCurveOnSurfacePoints(Surface surface, IEnumerable<Point2d> fixedPoints, System.Double tolerance, System.Boolean periodic, System.Int32 initCount, System.Int32 levels)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Computes a discrete spline curve on the surface. In other words, computes a sequence of points on the surface, each with a corresponding parameter value.",
        "since": "6.3",
    "remarks": "To create a curve from the output points, use Surface.CreateCurveOnSurface.",
        "parameters": [
          {
            "name": "surface",
            "type": "Surface",
            "summary": "The surface on which the curve is constructed. The surface should be G1 continuous. If the surface is closed in the u or v direction and is G1 at the seam, the function will construct point sequences that cross over the seam."
          },
          {
            "name": "fixedPoints",
            "type": "IEnumerable<Point2d>",
            "summary": "Surface points to interpolate given by parameters. These must be distinct."
          },
          {
            "name": "tolerance",
            "type": "System.Double",
            "summary": "Relative tolerance used by the solver. When in doubt, use a tolerance of 0.0."
          },
          {
            "name": "periodic",
            "type": "System.Boolean",
            "summary": "When True constructs a smoothly closed curve."
          },
          {
            "name": "initCount",
            "type": "System.Int32",
            "summary": "Maximum number of points to insert between fixed points on the first level."
          },
          {
            "name": "levels",
            "type": "System.Int32",
            "summary": "The number of levels (between 1 and 3) to be used in multi-level solver. Use 1 for single level solve."
          }
        ],
        "returns": "A sequence of surface points, given by surface parameters, if successful. The number of output points is approximately: 2 ^ (level-1) * initCount * fixedPoints.Count."
      },
      {
        "signature": "NurbsSurface CreateFromCone(Cone cone)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Constructs a new NURBS surfaces from cone data.",
        "since": "5.0",
        "parameters": [
          {
            "name": "cone",
            "type": "Cone",
            "summary": "A cone value."
          }
        ],
        "returns": "A new NURBS surface, or None on error."
      },
      {
        "signature": "NurbsSurface CreateFromCorners(Point3d corner1, Point3d corner2, Point3d corner3, Point3d corner4, System.Double tolerance)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Makes a surface from 4 corner points.",
        "since": "5.0",
        "parameters": [
          {
            "name": "corner1",
            "type": "Point3d",
            "summary": "The first corner."
          },
          {
            "name": "corner2",
            "type": "Point3d",
            "summary": "The second corner."
          },
          {
            "name": "corner3",
            "type": "Point3d",
            "summary": "The third corner."
          },
          {
            "name": "corner4",
            "type": "Point3d",
            "summary": "The fourth corner."
          },
          {
            "name": "tolerance",
            "type": "System.Double",
            "summary": "Minimum edge length without collapsing to a singularity."
          }
        ],
        "returns": "The resulting surface or None on error."
      },
      {
        "signature": "NurbsSurface CreateFromCorners(Point3d corner1, Point3d corner2, Point3d corner3, Point3d corner4)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Makes a surface from 4 corner points.  \nThis is the same as calling  with tolerance 0.",
        "since": "5.0",
        "parameters": [
          {
            "name": "corner1",
            "type": "Point3d",
            "summary": "The first corner."
          },
          {
            "name": "corner2",
            "type": "Point3d",
            "summary": "The second corner."
          },
          {
            "name": "corner3",
            "type": "Point3d",
            "summary": "The third corner."
          },
          {
            "name": "corner4",
            "type": "Point3d",
            "summary": "The fourth corner."
          }
        ],
        "returns": "the resulting surface or None on error."
      },
      {
        "signature": "NurbsSurface CreateFromCorners(Point3d corner1, Point3d corner2, Point3d corner3)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Makes a surface from 3 corner points.",
        "since": "5.0",
        "parameters": [
          {
            "name": "corner1",
            "type": "Point3d",
            "summary": "The first corner."
          },
          {
            "name": "corner2",
            "type": "Point3d",
            "summary": "The second corner."
          },
          {
            "name": "corner3",
            "type": "Point3d",
            "summary": "The third corner."
          }
        ],
        "returns": "The resulting surface or None on error."
      },
      {
        "signature": "NurbsSurface CreateFromCylinder(Cylinder cylinder)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Constructs a new NURBS surfaces from cylinder data.",
        "since": "5.0",
        "parameters": [
          {
            "name": "cylinder",
            "type": "Cylinder",
            "summary": "A cylinder value."
          }
        ],
        "returns": "A new NURBS surface, or None on error."
      },
      {
        "signature": "NurbsSurface CreateFromPlane(Plane plane, Interval uInterval, Interval vInterval, System.Int32 uDegree, System.Int32 vDegree, System.Int32 uPointCount, System.Int32 vPointCount)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Creates a NURBS surface from a plane and additional parameters.",
        "since": "7.0",
        "parameters": [
          {
            "name": "plane",
            "type": "Plane",
            "summary": "The plane."
          },
          {
            "name": "uInterval",
            "type": "Interval",
            "summary": "The interval describing the extends of the output surface in the U direction."
          },
          {
            "name": "vInterval",
            "type": "Interval",
            "summary": "The interval describing the extends of the output surface in the V direction."
          },
          {
            "name": "uDegree",
            "type": "System.Int32",
            "summary": "The degree of the output surface in the U direction."
          },
          {
            "name": "vDegree",
            "type": "System.Int32",
            "summary": "The degree of the output surface in the V direction."
          },
          {
            "name": "uPointCount",
            "type": "System.Int32",
            "summary": "The number of control points of the output surface in the U direction."
          },
          {
            "name": "vPointCount",
            "type": "System.Int32",
            "summary": "The number of control points of the output surface in the V direction."
          }
        ],
        "returns": "A NURBS surface if successful, or None on failure."
      },
      {
        "signature": "NurbsSurface CreateFromPoints(IEnumerable<Point3d> points, System.Int32 uCount, System.Int32 vCount, System.Int32 uDegree, System.Int32 vDegree)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Constructs a NURBS surface from a 2D grid of control points.",
        "since": "5.0",
    "remarks": "uCount multiplied by vCount must equal the number of points supplied.",
        "parameters": [
          {
            "name": "points",
            "type": "IEnumerable<Point3d>",
            "summary": "Control point locations."
          },
          {
            "name": "uCount",
            "type": "System.Int32",
            "summary": "Number of points in U direction."
          },
          {
            "name": "vCount",
            "type": "System.Int32",
            "summary": "Number of points in V direction."
          },
          {
            "name": "uDegree",
            "type": "System.Int32",
            "summary": "Degree of surface in U direction."
          },
          {
            "name": "vDegree",
            "type": "System.Int32",
            "summary": "Degree of surface in V direction."
          }
        ],
        "returns": "A NurbsSurface on success or None on failure."
      },
      {
        "signature": "NurbsSurface CreateFromSphere(Sphere sphere)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Constructs a new NURBS surfaces from sphere data.",
        "since": "5.0",
        "parameters": [
          {
            "name": "sphere",
            "type": "Sphere",
            "summary": "A sphere value."
          }
        ],
        "returns": "A new NURBS surface, or None on error."
      },
      {
        "signature": "NurbsSurface CreateFromTorus(Torus torus)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Constructs a new NURBS surfaces from torus data.",
        "since": "5.0",
        "parameters": [
          {
            "name": "torus",
            "type": "Torus",
            "summary": "A torus value."
          }
        ],
        "returns": "A new NURBS surface, or None on error."
      },
      {
        "signature": "NurbsSurface CreateNetworkSurface(IEnumerable<Curve> curves, System.Int32 continuity, System.Double edgeTolerance, System.Double interiorTolerance, System.Double angleTolerance, out System.Int32 error)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Builds a surface from an auto-sorted network of curves/edges.",
        "since": "5.0",
        "parameters": [
          {
            "name": "curves",
            "type": "IEnumerable<Curve>",
            "summary": "An array, a list or any enumerable set of curves/edges, sorted automatically into U and V curves."
          },
          {
            "name": "continuity",
            "type": "System.Int32",
            "summary": "continuity along edges, 0 = loose, 1 = position, 2 = tan, 3 = curvature."
          },
          {
            "name": "edgeTolerance",
            "type": "System.Double",
            "summary": "tolerance to use along network surface edge."
          },
          {
            "name": "interiorTolerance",
            "type": "System.Double",
            "summary": "tolerance to use for the interior curves."
          },
          {
            "name": "angleTolerance",
            "type": "System.Double",
            "summary": "angle tolerance to use."
          },
          {
            "name": "error",
            "type": "System.Int32",
            "summary": "If the NurbsSurface could not be created, the error value describes where the failure occurred.  0 = success,  1 = curve sorter failed, 2 = network initializing failed, 3 = failed to build surface, 4 = network surface is not valid."
          }
        ],
        "returns": "A NurbsSurface or None on failure."
      },
      {
        "signature": "NurbsSurface CreateNetworkSurface(IEnumerable<Curve> uCurves, System.Int32 uContinuityStart, System.Int32 uContinuityEnd, IEnumerable<Curve> vCurves, System.Int32 vContinuityStart, System.Int32 vContinuityEnd, System.Double edgeTolerance, System.Double interiorTolerance, System.Double angleTolerance, out System.Int32 error)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Builds a surface from an ordered network of curves/edges.",
        "since": "5.0",
        "parameters": [
          {
            "name": "uCurves",
            "type": "IEnumerable<Curve>",
            "summary": "An array, a list or any enumerable set of U curves."
          },
          {
            "name": "uContinuityStart",
            "type": "System.Int32",
            "summary": "continuity at first U segment, 0 = loose, 1 = position, 2 = tan, 3 = curvature."
          },
          {
            "name": "uContinuityEnd",
            "type": "System.Int32",
            "summary": "continuity at last U segment, 0 = loose, 1 = position, 2 = tan, 3 = curvature."
          },
          {
            "name": "vCurves",
            "type": "IEnumerable<Curve>",
            "summary": "An array, a list or any enumerable set of V curves."
          },
          {
            "name": "vContinuityStart",
            "type": "System.Int32",
            "summary": "continuity at first V segment, 0 = loose, 1 = position, 2 = tan, 3 = curvature."
          },
          {
            "name": "vContinuityEnd",
            "type": "System.Int32",
            "summary": "continuity at last V segment, 0 = loose, 1 = position, 2 = tan, 3 = curvature."
          },
          {
            "name": "edgeTolerance",
            "type": "System.Double",
            "summary": "tolerance to use along network surface edge."
          },
          {
            "name": "interiorTolerance",
            "type": "System.Double",
            "summary": "tolerance to use for the interior curves."
          },
          {
            "name": "angleTolerance",
            "type": "System.Double",
            "summary": "angle tolerance to use."
          },
          {
            "name": "error",
            "type": "System.Int32",
            "summary": "If the NurbsSurface could not be created, the error value describes where the failure occurred.  0 = success,  1 = curve sorter failed, 2 = network initializing failed, 3 = failed to build surface, 4 = network surface is not valid."
          }
        ],
        "returns": "A NurbsSurface or None on failure."
      },
      {
        "signature": "NurbsSurface CreateRailRevolvedSurface(Curve profile, Curve rail, Line axis, System.Boolean scaleHeight)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Constructs a railed Surface-of-Revolution.",
        "since": "5.0",
        "parameters": [
          {
            "name": "profile",
            "type": "Curve",
            "summary": "Profile curve for revolution."
          },
          {
            "name": "rail",
            "type": "Curve",
            "summary": "Rail curve for revolution."
          },
          {
            "name": "axis",
            "type": "Line",
            "summary": "Axis of revolution."
          },
          {
            "name": "scaleHeight",
            "type": "System.Boolean",
            "summary": "If true, surface will be locally scaled."
          }
        ],
        "returns": "A NurbsSurface or None on failure."
      },
      {
        "signature": "NurbsSurface CreateRuledSurface(Curve curveA, Curve curveB)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Constructs a ruled surface between two curves. Curves must share the same knot-vector.",
        "since": "5.0",
        "parameters": [
          {
            "name": "curveA",
            "type": "Curve",
            "summary": "First curve."
          },
          {
            "name": "curveB",
            "type": "Curve",
            "summary": "Second curve."
          }
        ],
        "returns": "A ruled surface on success or None on failure."
      },
      {
        "signature": "NurbsSurface CreateSubDFriendly(Surface surface)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Create a bi-cubic SubD friendly surface from a surface.",
        "since": "7.0",
        "parameters": [
          {
            "name": "surface",
            "type": "Surface",
            "summary": ">Surface to rebuild as a SubD friendly surface."
          }
        ],
        "returns": "A SubD friendly NURBS surface is successful, None otherwise."
      },
      {
        "signature": "NurbsSurface CreateThroughPoints(IEnumerable<Point3d> points, System.Int32 uCount, System.Int32 vCount, System.Int32 uDegree, System.Int32 vDegree, System.Boolean uClosed, System.Boolean vClosed)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Constructs a NURBS surface from a 2D grid of points.",
        "since": "5.0",
    "remarks": "uCount multiplied by vCount must equal the number of points supplied.",
        "parameters": [
          {
            "name": "points",
            "type": "IEnumerable<Point3d>",
            "summary": "Control point locations."
          },
          {
            "name": "uCount",
            "type": "System.Int32",
            "summary": "Number of points in U direction."
          },
          {
            "name": "vCount",
            "type": "System.Int32",
            "summary": "Number of points in V direction."
          },
          {
            "name": "uDegree",
            "type": "System.Int32",
            "summary": "Degree of surface in U direction."
          },
          {
            "name": "vDegree",
            "type": "System.Int32",
            "summary": "Degree of surface in V direction."
          },
          {
            "name": "uClosed",
            "type": "System.Boolean",
            "summary": "True if the surface should be closed in the U direction."
          },
          {
            "name": "vClosed",
            "type": "System.Boolean",
            "summary": "True if the surface should be closed in the V direction."
          }
        ],
        "returns": "A NurbsSurface on success or None on failure."
      },
      {
        "signature": "System.Boolean MakeCompatible(Surface surface0, Surface surface1, out NurbsSurface nurb0, out NurbsSurface nurb1)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "For expert use only. Makes a pair of compatible NURBS surfaces based on two input surfaces.",
        "since": "6.0",
        "parameters": [
          {
            "name": "surface0",
            "type": "Surface",
            "summary": "The first surface."
          },
          {
            "name": "surface1",
            "type": "Surface",
            "summary": "The second surface."
          },
          {
            "name": "nurb0",
            "type": "NurbsSurface",
            "summary": "The first output NURBS surface."
          },
          {
            "name": "nurb1",
            "type": "NurbsSurface",
            "summary": "The second output NURBS surface."
          }
        ],
        "returns": "True if successful, False on failure."
      },
      {
        "signature": "BezierSurface ConvertSpanToBezier(System.Int32 spanIndex0, System.Int32 spanIndex1)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Convert a NURBS surface bispan into a Bezier surface.",
        "since": "7.1",
        "parameters": [
          {
            "name": "spanIndex0",
            "type": "System.Int32",
            "summary": "Specifies the \"u\" span"
          },
          {
            "name": "spanIndex1",
            "type": "System.Int32",
            "summary": "Specifies the \"v\" span"
          }
        ],
        "returns": "Bezier surface on success"
      },
      {
        "signature": "System.Void CopyFrom(NurbsSurface other)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Copies this NURBS surface from another NURBS surface.",
        "since": "5.0",
        "parameters": [
          {
            "name": "other",
            "type": "NurbsSurface",
            "summary": "The other NURBS surface to use as source."
          }
        ]
      },
      {
        "signature": "System.Boolean EpsilonEquals(NurbsSurface other, System.Double epsilon)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Check that all values in other are within epsilon of the values in this",
        "since": "5.4"
      },
      {
        "signature": "IsoStatus FindClosestIsoCurve(Point3d testPoint)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Find the closest isoparamentric curve, given a test point.",
        "since": "8.0",
        "parameters": [
          {
            "name": "testPoint",
            "type": "Point3d",
            "summary": "The test point."
          }
        ],
        "returns": "The enumeration."
      },
      {
        "signature": "System.Boolean IncreaseDegreeU(System.Int32 desiredDegree)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Increase the degree of this surface in U direction.",
        "since": "5.10",
        "parameters": [
          {
            "name": "desiredDegree",
            "type": "System.Int32",
            "summary": "The desired degree. Degrees should be number between and including 1 and 11."
          }
        ],
        "returns": "True on success, False on failure."
      },
      {
        "signature": "System.Boolean IncreaseDegreeV(System.Int32 desiredDegree)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Increase the degree of this surface in V direction.",
        "since": "5.10",
        "parameters": [
          {
            "name": "desiredDegree",
            "type": "System.Int32",
            "summary": "The desired degree. Degrees should be number between and including 1 and 11."
          }
        ],
        "returns": "True on success, False on failure."
      },
      {
        "signature": "System.Boolean MakeNonRational()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Makes this surface non-rational.",
        "since": "5.0",
        "returns": "True if the operation succeeded; otherwise, false."
      },
      {
        "signature": "System.Boolean MakeRational()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Makes this surface rational.",
        "since": "5.0",
        "returns": "True if the operation succeeded; otherwise, false."
      },
      {
        "signature": "System.Boolean MakeUniform(System.Int32 direction)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Changes a NURBS surface so each control point affects the surface exactly the same way. This make the knot vectors uniform without changing the control point locations. This will change the object shape slightly.",
        "since": "8.24",
        "parameters": [
          {
            "name": "direction",
            "type": "System.Int32",
            "summary": "Specify 0 for \"u\" direction, 1 for \"v\" direction, or 2 for both directions."
          }
        ],
        "returns": "True if successful, False otherwise."
      },
      {
        "signature": "NurbsSurface MatchToCurve(IsoStatus side, Curve targetCurve, System.Double maxEndDistance, System.Double maxInteriorDistance, System.Double matchTolerance, System.Int32 maxLevel)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Constructs a NURBS surface with start and end edge isocurve matching the start and end of targetCurve, and Greville points on targetCurve.",
        "since": "8.0",
        "parameters": [
          {
            "name": "side",
            "type": "IsoStatus",
            "summary": "The isoparamentric curve direction."
          },
          {
            "name": "targetCurve",
            "type": "Curve",
            "summary": "The target curve."
          },
          {
            "name": "maxEndDistance",
            "type": "System.Double",
            "summary": "If maxEndDistance dist > 0, the edge isocurve must be within maxEndDistance of targetCurve start. If maxEndDistance dist > 0, the edge isocurve must be within maxEndDistance of targetCurve end."
          },
          {
            "name": "maxInteriorDistance",
            "type": "System.Double",
            "summary": "If maxInteriorDistance > 0, all interior Greville points of the edge isocurve must be within maxInteriorDistance of targetCurve."
          },
          {
            "name": "matchTolerance",
            "type": "System.Double",
            "summary": "The matching tolerance."
          },
          {
            "name": "maxLevel",
            "type": "System.Int32",
            "summary": "If maxLevel > 0, the result will be refined up to that many times, attempting to get the result within matchTolerance. If matchTolerance <= 0, no refinement will be done. In any case, the parameters closest points on targetCurve of the Greville points of the edge isocurve must be monotonic increasing."
          }
        ],
        "returns": "Surface on success, None on failure."
      },
      {
        "signature": "System.Boolean UVNDirectionsAt(System.Double u, System.Double v, out Vector3d uDir, out Vector3d vDir, out Vector3d nDir)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Calculates the U, V, and N directions of a NURBS surface at a u,v parameter similar to the method used by Rhino's MoveUVN command.",
        "since": "7.0",
        "parameters": [
          {
            "name": "u",
            "type": "System.Double",
            "summary": "The u evaluation parameter."
          },
          {
            "name": "v",
            "type": "System.Double",
            "summary": "The v evaluation parameter."
          },
          {
            "name": "uDir",
            "type": "Vector3d",
            "summary": "The U direction."
          },
          {
            "name": "vDir",
            "type": "Vector3d",
            "summary": "The V direction."
          },
          {
            "name": "nDir",
            "type": "Vector3d",
            "summary": "The N direction."
          }
        ],
        "returns": "True if successful, False otherwise."
      }
    ]
  },
  {
    "namespace": "Rhino.Geometry",
    "name": "OrdinateDimension",
    "dataType": "class",
    "summary": "Represents an ordinate dimension",
    "baseclass": "Rhino.Geometry.Dimension",
    "constructors": [
      {
        "signature": "OrdinateDimension()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0"
      },
      {
        "signature": "OrdinateDimension(Plane plane, MeasuredDirection direction, Point3d basepoint, Point3d defpoint, Point3d leaderpoint, double kinkoffset1, double kinkoffset2)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Constructs an ordinate dimension from parameters.",
        "since": "8.0",
        "parameters": [
          {
            "name": "plane",
            "type": "Plane",
            "summary": "Dimension's plane"
          },
          {
            "name": "direction",
            "type": "MeasuredDirection",
            "summary": "MeasuredDirection.XAxis or MeasuredDirection.YAxis"
          },
          {
            "name": "basepoint",
            "type": "Point3d",
            "summary": "Dimension's base point"
          },
          {
            "name": "defpoint",
            "type": "Point3d",
            "summary": "Dimension's definition point"
          },
          {
            "name": "leaderpoint",
            "type": "Point3d",
            "summary": "Point at tail of leader"
          },
          {
            "name": "kinkoffset1",
            "type": "System.Double",
            "summary": "Distance to first jog"
          },
          {
            "name": "kinkoffset2",
            "type": "System.Double",
            "summary": "Distance to second jog"
          }
        ]
      },
      {
        "signature": "OrdinateDimension(SerializationInfo info, StreamingContext context)",
        "modifiers": ["protected"],
        "protected": true,
        "virtual": false,
        "summary": "Protected constructor used in serialization."
      }
    ],
    "properties": [
      {
        "signature": "Point2d DefPoint",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "MeasuredDirection Direction",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the measured direction.",
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "double KinkOffset1",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "double KinkOffset2",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "Point2d KinkPoint1",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "Point2d KinkPoint2",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "Point2d LeaderPoint",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get", "set"]
      }
    ],
    "methods": [
      {
        "signature": "OrdinateDimension Create(DimensionStyle dimStyle, Plane plane, MeasuredDirection direction, Point3d basepoint, Point3d defpoint, Point3d leaderpoint, System.Double kinkoffset1, System.Double kinkoffset2)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Initialize Dimension parameters",
        "since": "6.0",
        "parameters": [
          {
            "name": "dimStyle",
            "type": "DimensionStyle",
            "summary": "Dimension's AnnotationStyle"
          },
          {
            "name": "plane",
            "type": "Plane",
            "summary": "Dimension's plane"
          },
          {
            "name": "direction",
            "type": "MeasuredDirection",
            "summary": "MeasuredDirection.XAxis or MeasuredDirection.YAxis"
          },
          {
            "name": "basepoint",
            "type": "Point3d",
            "summary": "Dimension's base point"
          },
          {
            "name": "defpoint",
            "type": "Point3d",
            "summary": "Dimension's definition point"
          },
          {
            "name": "leaderpoint",
            "type": "Point3d",
            "summary": "Point at tail of leader"
          },
          {
            "name": "kinkoffset1",
            "type": "System.Double",
            "summary": "Distance to first jog"
          },
          {
            "name": "kinkoffset2",
            "type": "System.Double",
            "summary": "Distance to second jog"
          }
        ]
      },
      {
        "signature": "System.Boolean AdjustFromPoints(Plane plane, MeasuredDirection direction, Point3d basepoint, Point3d defpoint, Point3d leaderpoint, System.Double kinkoffset1, System.Double kinkoffset2)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Update Dimension geometry from point locations",
        "since": "6.0",
        "parameters": [
          {
            "name": "plane",
            "type": "Plane",
            "summary": "Dimension's plane"
          },
          {
            "name": "direction",
            "type": "MeasuredDirection",
            "summary": "MeasuredDirection.XAxis or MeasuredDirection.YAxisw"
          },
          {
            "name": "basepoint",
            "type": "Point3d",
            "summary": "Dimension's base point"
          },
          {
            "name": "defpoint",
            "type": "Point3d",
            "summary": "Dimension's definition point"
          },
          {
            "name": "leaderpoint",
            "type": "Point3d",
            "summary": "Point at tail of leader"
          },
          {
            "name": "kinkoffset1",
            "type": "System.Double",
            "summary": "Distance to first jog"
          },
          {
            "name": "kinkoffset2",
            "type": "System.Double",
            "summary": "Distance to second jog"
          }
        ]
      },
      {
        "signature": "System.Boolean Get3dPoints(out Point3d basepoint, out Point3d defpoint, out Point3d leaderpoint, out Point3d kinkpoint1, out Point3d kinkpoint2)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Get locations of dimension's 3d points",
        "since": "6.0",
        "parameters": [
          {
            "name": "basepoint",
            "type": "Point3d",
            "summary": "Dimension's base point"
          },
          {
            "name": "defpoint",
            "type": "Point3d",
            "summary": "Dimension's definition point"
          },
          {
            "name": "leaderpoint",
            "type": "Point3d",
            "summary": "Point at tail of leader"
          },
          {
            "name": "kinkpoint1",
            "type": "Point3d",
            "summary": "Point at first jog"
          },
          {
            "name": "kinkpoint2",
            "type": "Point3d",
            "summary": "Point at second jog"
          }
        ]
      },
      {
        "signature": "System.Boolean GetDisplayLines(DimensionStyle style, System.Double scale, out IEnumerable<Line> lines)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "System.String GetDistanceDisplayText(LengthUnit units, DimensionStyle style)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "9.0"
      },
      {
        "signature": "System.String GetDistanceDisplayText(UnitSystem unitsystem, DimensionStyle style)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "deprecated": "9.0",
        "obsolete": "Since 9.0"
      },
      {
        "signature": "System.Boolean GetTextRectangle(out Point3d[] corners)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0"
      }
    ]
  },
  {
    "namespace": "Rhino.Geometry",
    "name": "OrdinateDimension.MeasuredDirection",
    "dataType": "enum",
    "summary": "Ordinate dimension measures x or y direction",
    "values": [
      {
        "signature": "Unset = 0",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Xaxis = 1",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Measures horizontal distance"
      },
      {
        "signature": "Yaxis = 2",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Measures vertical distance"
      }
    ]

  },
  {
    "namespace": "Rhino.Geometry",
    "name": "Particle",
    "dataType": "class",
    "summary": "Represents a simple particle.  \nThis base class only defines position and display properties (size, color, bitmap id).   You will most likely create a class that derives from this particle class to perform some   sort of physical simulation (movement over time or frames).",
    "constructors": [
      {
        "signature": "Particle()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Initializes a new instance of the <b>Particle</b> class.",
        "since": "5.0"
      }
    ],
    "properties": [
      {
        "signature": "Color Color",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "int DisplayBitmapIndex",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "int Index",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Index in ParentSystem for this Particle. Can change when the particle system is modified.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "Point3d Location",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "3d Location of the Particle.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "ParticleSystem ParentSystem",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the parent particle system of this particle.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "float Size",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0",
        "property": ["get", "set"]
      }
    ],
    "methods": [
      {
        "signature": "System.Void Update()",
        "modifiers": ["public", "virtual"],
        "protected": false,
        "virtual": true,
        "summary": "Base class implementation does nothing.",
        "since": "5.0"
      }
    ]
  },
  {
    "namespace": "Rhino.Geometry",
    "name": "ParticleSystem",
    "dataType": "class",
    "interfaces": ["IEnumerable<Particle>"],
    "constructors": [
      {
        "signature": "ParticleSystem()",
        "summary": "Initializes a new instance of the ParticleSystem class"
      }
    ],
    "properties": [
      {
        "signature": "BoundingBox BoundingBox",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "bool DisplaySizesInWorldUnits",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool DrawRequiresDepthSorting",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0",
        "property": ["get", "set"]
      }
    ],
    "methods": [
      {
        "signature": "System.Boolean Add(Particle particle)",
        "modifiers": ["public", "virtual"],
        "protected": false,
        "virtual": true,
        "summary": "Adds a particle to this ParticleSystem. A Particle can only be in one system at a time.  If the Particle already exists in a different system, this function will return false. You should remove the particle from the other system first before adding it.",
        "since": "5.0",
        "parameters": [
          {
            "name": "particle",
            "type": "Particle",
            "summary": "A particle to be added."
          }
        ],
        "returns": "True if this particle was added to the system or if is already in the system. False if the particle already exists in a different system."
      },
      {
        "signature": "System.Void Clear()",
        "modifiers": ["public", "virtual"],
        "protected": false,
        "virtual": true,
        "summary": "Remove all Particles from this system.",
        "since": "5.0"
      },
      {
        "signature": "IEnumerator<Particle> GetEnumerator()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "System.Void Remove(Particle particle)",
        "modifiers": ["public", "virtual"],
        "protected": false,
        "virtual": true,
        "summary": "Removes a single particle from this system.",
        "since": "5.0",
        "parameters": [
          {
            "name": "particle",
            "type": "Particle",
            "summary": "The particle to be removed."
          }
        ]
      },
      {
        "signature": "System.Void Update()",
        "modifiers": ["public", "virtual"],
        "protected": false,
        "virtual": true,
        "summary": "Calls Update on every particle in the system.",
        "since": "5.0"
      }
    ]
  },
  {
    "namespace": "Rhino.Geometry",
    "name": "PipeCapMode",
    "dataType": "enum",
    "summary": "Styles used for creating Brep pipes.",
    "since": "5.0",
    "values": [
      {
        "signature": "None = 0",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "No cap."
      },
      {
        "signature": "Flat = 1",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Caps with planar surface."
      },
      {
        "signature": "Round = 2",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Caps with hemispherical surface."
      }
    ]

  },
  {
    "namespace": "Rhino.Geometry",
    "name": "Plane",
    "dataType": "struct",
    "summary": "Represents the value of a center point and two axes in a plane in three dimensions.",
    "constructors": [
      {
        "signature": "Plane(double a, double b, double c, double d)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Constructs a plane from an equation Ax+By+Cz+D=0.",
        "since": "5.0"
      },
      {
        "signature": "Plane(Plane other)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Copy constructor.",
        "since": "5.0",
        "parameters": [
          {
            "name": "other",
            "type": "Plane",
            "summary": "The source plane value."
          }
        ]
      },
      {
        "signature": "Plane(Point3d origin, Point3d xPoint, Point3d yPoint)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Initializes a plane from three non-collinear points.",
        "since": "5.0",
        "parameters": [
          {
            "name": "origin",
            "type": "Point3d",
            "summary": "Origin point of the plane."
          },
          {
            "name": "xPoint",
            "type": "Point3d",
            "summary": "Second point in the plane. The x-axis will be parallel to x_point-origin."
          },
          {
            "name": "yPoint",
            "type": "Point3d",
            "summary": "Third point on the plane that is not collinear with the first two points. taxis*(y_point-origin) will be > 0."
          }
        ]
      },
      {
        "signature": "Plane(Point3d origin, Vector3d xDirection, Vector3d yDirection)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Constructs a plane from a point and two vectors in the plane.",
        "since": "5.0",
        "parameters": [
          {
            "name": "origin",
            "type": "Point3d",
            "summary": "Origin point of the plane."
          },
          {
            "name": "xDirection",
            "type": "Vector3d",
            "summary": "Non-zero vector in the plane that determines the x-axis direction."
          },
          {
            "name": "yDirection",
            "type": "Vector3d",
            "summary": "Non-zero vector not parallel to x_dir that is used to determine the y-axis direction. y_dir does not need to be perpendicular to x_dir."
          }
        ]
      },
      {
        "signature": "Plane(Point3d origin, Vector3d normal)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Constructs a plane from a point and a normal vector.",
        "since": "5.0",
        "parameters": [
          {
            "name": "origin",
            "type": "Point3d",
            "summary": "Origin point of the plane."
          },
          {
            "name": "normal",
            "type": "Vector3d",
            "summary": "Non-zero normal to the plane."
          }
        ]
      }
    ],
    "properties": [
      {
        "signature": "Plane Unset",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Gets a plane that contains Unset origin and axis vectors.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "Plane WorldXY",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "plane coincident with the World XY plane.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "Plane WorldYZ",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "plane coincident with the World YZ plane.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "Plane WorldZX",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "plane coincident with the World ZX plane.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "bool IsValid",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets a value indicating whether or not this is a valid plane. A plane is considered to be valid when all fields contain reasonable information and the equation jibes with point and z-axis.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "Vector3d Normal",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the normal of this plane. This is essentially the ZAxis of the plane.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "Point3d Origin",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the origin point of this plane.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "double OriginX",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the X coordinate of the origin of this plane.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "double OriginY",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the Y coordinate of the origin of this plane.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "double OriginZ",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the Z coordinate of the origin of this plane.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "Vector3d XAxis",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the X axis vector of this plane.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "Vector3d YAxis",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the Y axis vector of this plane.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "Vector3d ZAxis",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the Z axis vector of this plane.",
        "since": "5.0",
        "property": ["get", "set"]
      }
    ],
    "methods": [
      {
        "signature": "Plane CreateFromFrame(Point3d origin, Vector3d xDirection, Vector3d yDirection)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Constructs a plane from a point, and two vectors in the plane.",
        "since": "8.0",
        "parameters": [
          {
            "name": "origin",
            "type": "Point3d",
            "summary": "Point on the plane."
          },
          {
            "name": "xDirection",
            "type": "Vector3d",
            "summary": "Non-zero vector in the plane that determines the XAxis direction."
          },
          {
            "name": "yDirection",
            "type": "Vector3d",
            "summary": "Non-zero vector not parallel to xDirection that is used to determine the YAxis direction. Note, yDirection does not have to be perpendicular to xDirection."
          }
        ],
        "returns": "A valid plane if successful, or Plane.Unset on failure."
      },
      {
        "signature": "Plane CreateFromNormal(Point3d origin, Vector3d normal)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Constructs a plane from a point and normal vector.",
        "since": "8.0",
        "parameters": [
          {
            "name": "origin",
            "type": "Point3d",
            "summary": "Point on the plane."
          },
          {
            "name": "normal",
            "type": "Vector3d",
            "summary": "Non-zero normal to the plane."
          }
        ],
        "returns": "A valid plane if successful, or Plane.Unset on failure."
      },
      {
        "signature": "Plane CreateFromNormalYup(Point3d origin, Vector3d normal, Vector3d yDirection)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Construct a plane from a point, a normal vector, and a vector that projects to the positive YAxis.",
        "since": "8.0",
        "parameters": [
          {
            "name": "origin",
            "type": "Point3d",
            "summary": "Point on the plane."
          },
          {
            "name": "normal",
            "type": "Vector3d",
            "summary": "Non-zero normal to the plane."
          },
          {
            "name": "yDirection",
            "type": "Vector3d",
            "summary": "Non-zero vector, linearly independent from normal, that projects to the positive YAxis of the plane."
          }
        ],
        "returns": "A valid plane if successful, or Plane.Unset on failure."
      },
      {
        "signature": "Plane CreateFromPoints(Point3d origin, Point3d xPoint, Point3d yPoint)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Construct a plane from three non-collinear points.",
        "since": "8.0",
        "parameters": [
          {
            "name": "origin",
            "type": "Point3d",
            "summary": "Point on the plane."
          },
          {
            "name": "xPoint",
            "type": "Point3d",
            "summary": "Second point in the plane. XAxis will be parallel to xPoint-origin."
          },
          {
            "name": "yPoint",
            "type": "Point3d",
            "summary": "Third point on the plane that is not collinear with the first two points, where YAxis*(yPoint-origin) will be > 0."
          }
        ],
        "returns": "A valid plane if successful, or Plane.Unset on failure."
      },
      {
        "signature": "PlaneFitResult FitPlaneToPoints(IEnumerable<Point3d> points, out Plane plane, out System.Double maximumDeviation)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Fit a plane through a collection of points.",
        "since": "5.0",
        "parameters": [
          {
            "name": "points",
            "type": "System.Collections.Generic.IEnumerable<Point3d>",
            "summary": "Points to fit to."
          },
          {
            "name": "plane",
            "type": "Plane",
            "summary": "Resulting plane."
          },
          {
            "name": "maximumDeviation",
            "type": "System.Double",
            "summary": "The distance from the furthest point to the plane."
          }
        ],
        "returns": "A value indicating the result of the operation."
      },
      {
        "signature": "PlaneFitResult FitPlaneToPoints(IEnumerable<Point3d> points, out Plane plane)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Fit a plane through a collection of points.",
        "since": "5.0",
        "parameters": [
          {
            "name": "points",
            "type": "System.Collections.Generic.IEnumerable<Point3d>",
            "summary": "Points to fit to."
          },
          {
            "name": "plane",
            "type": "Plane",
            "summary": "Resulting plane."
          }
        ],
        "returns": "A value indicating the result of the operation."
      },
      {
        "signature": "Plane Clone()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns a deep copy of this instance.",
        "since": "6.0",
        "returns": "A plane with the same values as this item."
      },
      {
        "signature": "System.Boolean ClosestParameter(Point3d testPoint, out System.Double s, out System.Double t)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the parameters of the point on the plane closest to a test point.",
        "since": "5.0",
        "parameters": [
          {
            "name": "testPoint",
            "type": "Point3d",
            "summary": "Point to get close to."
          },
          {
            "name": "s",
            "type": "System.Double",
            "summary": "Parameter along plane X-direction."
          },
          {
            "name": "t",
            "type": "System.Double",
            "summary": "Parameter along plane Y-direction."
          }
        ],
        "returns": "True if a parameter could be found, False if the point could not be projected successfully."
      },
      {
        "signature": "Point3d ClosestPoint(Point3d testPoint)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the point on the plane closest to a test point.",
        "since": "5.0",
        "parameters": [
          {
            "name": "testPoint",
            "type": "Point3d",
            "summary": "Point to get close to."
          }
        ],
        "returns": "The point on the plane that is closest to testPoint, or Point3d.Unset on failure."
      },
      {
        "signature": "System.Boolean DistanceTo(BoundingBox bbox, out System.Double min, out System.Double max)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns the signed minimum and maximum distances from bounding box to this plane.",
        "since": "6.0",
        "parameters": [
          {
            "name": "bbox",
            "type": "BoundingBox",
            "summary": "bounding box to get distances from"
          },
          {
            "name": "min",
            "type": "System.Double",
            "summary": "minimum signed distance from plane to box"
          },
          {
            "name": "max",
            "type": "System.Double",
            "summary": "maximum signed distance from plane to box"
          }
        ],
        "returns": "False if plane has zero length normal"
      },
      {
        "signature": "System.Double DistanceTo(Point3d testPoint)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns the signed distance from testPoint to its projection onto this plane. If the point is below the plane, a negative distance is returned.",
        "since": "5.0",
        "parameters": [
          {
            "name": "testPoint",
            "type": "Point3d",
            "summary": "Point to test."
          }
        ],
        "returns": "Signed distance from this plane to testPoint."
      },
      {
        "signature": "System.Boolean EpsilonEquals(Plane other, System.Double epsilon)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Check that all values in other are within epsilon of the values in this",
        "since": "5.4"
      },
      {
        "signature": "System.Boolean Equals(Plane plane)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Determines if another plane has the same components as this plane.",
        "since": "5.0",
        "parameters": [
          {
            "name": "plane",
            "type": "Plane",
            "summary": "A plane."
          }
        ],
        "returns": "True if plane has the same components as this plane; False otherwise."
      },
      {
        "signature": "System.Boolean Equals(System.Object obj)",
        "modifiers": ["public", "override"],
        "protected": false,
        "virtual": false,
        "summary": "Determines if an object is a plane and has the same components as this plane.",
        "parameters": [
          {
            "name": "obj",
            "type": "System.Object",
            "summary": "An object."
          }
        ],
        "returns": "True if obj is a plane and has the same components as this plane; False otherwise."
      },
      {
        "signature": "System.Boolean ExtendThroughBox(BoundingBox box, out Interval s, out Interval t)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Extends this plane through a bounding box.",
        "since": "5.0",
        "parameters": [
          {
            "name": "box",
            "type": "BoundingBox",
            "summary": "A box to use as minimal extension boundary."
          },
          {
            "name": "s",
            "type": "Interval",
            "summary": "If this function returns true, the s parameter returns the Interval on the plane along the X direction that will encompass the Box."
          },
          {
            "name": "t",
            "type": "Interval",
            "summary": "If this function returns true, the t parameter returns the Interval on the plane along the Y direction that will encompass the Box."
          }
        ],
        "returns": "True on success, False on failure."
      },
      {
        "signature": "System.Boolean ExtendThroughBox(Box box, out Interval s, out Interval t)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Extend this plane through a Box.",
        "since": "5.0",
        "parameters": [
          {
            "name": "box",
            "type": "Box",
            "summary": "A box to use for extension."
          },
          {
            "name": "s",
            "type": "Interval",
            "summary": "If this function returns true, the s parameter returns the Interval on the plane along the X direction that will encompass the Box."
          },
          {
            "name": "t",
            "type": "Interval",
            "summary": "If this function returns true, the t parameter returns the Interval on the plane along the Y direction that will encompass the Box."
          }
        ],
        "returns": "True on success, False on failure."
      },
      {
        "signature": "System.Void Flip()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Flip this plane by swapping out the X and Y axes and inverting the Z axis.",
        "since": "5.0"
      },
      {
        "signature": "System.Int32 GetHashCode()",
        "modifiers": ["public", "override"],
        "protected": false,
        "virtual": false,
        "summary": "Gets a non-unique hashing code for this entity.",
        "returns": "A particular number for a specific instance of plane."
      },
      {
        "signature": "System.Double[] GetPlaneEquation()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the plane equation for this plane in the format of Ax+By+Cz+D=0.",
        "since": "5.0",
        "returns": "Array of four values."
      },
      {
        "signature": "System.Boolean IsCoplanar(Plane plane, System.Double tolerance)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Test if this plane is co-planar with a another plane.",
        "since": "8.0",
        "parameters": [
          {
            "name": "plane",
            "type": "Plane",
            "summary": "The plane to test."
          },
          {
            "name": "tolerance",
            "type": "System.Double",
            "summary": "Testing tolerance."
          }
        ],
        "returns": "True if this plane is co-planar with the test plane, False otherwise."
      },
      {
        "signature": "System.Boolean IsCoplanar(Plane plane)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Test if this plane is co-planar with a another plane.",
        "since": "8.0",
        "parameters": [
          {
            "name": "plane",
            "type": "Plane",
            "summary": "The plane to test."
          }
        ],
        "returns": "True if this plane is co-planar with the test plane, False otherwise."
      },
      {
        "signature": "Point3d PointAt(System.Double u, System.Double v, System.Double w)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Evaluate a point on the plane.",
        "since": "5.0",
        "parameters": [
          {
            "name": "u",
            "type": "System.Double",
            "summary": "evaluation parameter."
          },
          {
            "name": "v",
            "type": "System.Double",
            "summary": "evaluation parameter."
          },
          {
            "name": "w",
            "type": "System.Double",
            "summary": "evaluation parameter."
          }
        ],
        "returns": "plane.origin + u*plane.xaxis + v*plane.yaxis + z*plane.zaxis."
      },
      {
        "signature": "Point3d PointAt(System.Double u, System.Double v)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Evaluate a point on the plane.",
        "since": "5.0",
        "parameters": [
          {
            "name": "u",
            "type": "System.Double",
            "summary": "evaluation parameter."
          },
          {
            "name": "v",
            "type": "System.Double",
            "summary": "evaluation parameter."
          }
        ],
        "returns": "plane.origin + u*plane.xaxis + v*plane.yaxis."
      },
      {
        "signature": "System.Boolean RemapToPlaneSpace(Point3d ptSample, out Point3d ptPlane)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Convert a point from World space coordinates into Plane space coordinates.",
        "since": "5.0",
    "remarks": "D stands for distance, not disease.",
        "parameters": [
          {
            "name": "ptSample",
            "type": "Point3d",
            "summary": "World point to remap."
          },
          {
            "name": "ptPlane",
            "type": "Point3d",
            "summary": "Point in plane (s,t,d) coordinates."
          }
        ],
        "returns": "True on success, False on failure."
      },
      {
        "signature": "System.Boolean Rotate(System.Double sinAngle, System.Double cosAngle, Vector3d axis, Point3d centerOfRotation)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Rotate the plane about a custom anchor point.",
        "since": "5.0",
        "parameters": [
          {
            "name": "sinAngle",
            "type": "System.Double",
            "summary": "Sin(angle)"
          },
          {
            "name": "cosAngle",
            "type": "System.Double",
            "summary": "Cos(angle)"
          },
          {
            "name": "axis",
            "type": "Vector3d",
            "summary": "Axis of rotation."
          },
          {
            "name": "centerOfRotation",
            "type": "Point3d",
            "summary": "Center of rotation."
          }
        ],
        "returns": "True on success, False on failure."
      },
      {
        "signature": "System.Boolean Rotate(System.Double sinAngle, System.Double cosAngle, Vector3d axis)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Rotate the plane about its origin point.",
        "since": "5.0",
        "parameters": [
          {
            "name": "sinAngle",
            "type": "System.Double",
            "summary": "Sin(angle)."
          },
          {
            "name": "cosAngle",
            "type": "System.Double",
            "summary": "Cos(angle)."
          },
          {
            "name": "axis",
            "type": "Vector3d",
            "summary": "Axis of rotation."
          }
        ],
        "returns": "True on success, False on failure."
      },
      {
        "signature": "System.Boolean Rotate(System.Double angle, Vector3d axis, Point3d centerOfRotation)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Rotate the plane about a custom anchor point.",
        "since": "5.0",
        "parameters": [
          {
            "name": "angle",
            "type": "System.Double",
            "summary": "Angle in radians."
          },
          {
            "name": "axis",
            "type": "Vector3d",
            "summary": "Axis of rotation."
          },
          {
            "name": "centerOfRotation",
            "type": "Point3d",
            "summary": "Center of rotation."
          }
        ],
        "returns": "True on success, False on failure."
      },
      {
        "signature": "System.Boolean Rotate(System.Double angle, Vector3d axis)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Rotate the plane about its origin point.",
        "since": "5.0",
        "parameters": [
          {
            "name": "angle",
            "type": "System.Double",
            "summary": "Angle in radians."
          },
          {
            "name": "axis",
            "type": "Vector3d",
            "summary": "Axis of rotation."
          }
        ],
        "returns": "True on success, False on failure."
      },
      {
        "signature": "System.String ToString()",
        "modifiers": ["public", "override"],
        "protected": false,
        "virtual": false,
        "summary": "Constructs the string representation of this plane.",
        "returns": "Text."
      },
      {
        "signature": "System.String ToString(System.String format, System.IFormatProvider formatProvider)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "7.0"
      },
      {
        "signature": "System.Boolean Transform(Transform xform)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Transform the plane with a Transformation matrix.",
        "since": "5.0",
        "parameters": [
          {
            "name": "xform",
            "type": "Transform",
            "summary": "Transformation to apply to plane."
          }
        ],
        "returns": "True on success, False on failure."
      },
      {
        "signature": "System.Boolean Translate(Vector3d delta)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Translate (move) the plane along a vector.",
        "since": "5.0",
        "parameters": [
          {
            "name": "delta",
            "type": "Vector3d",
            "summary": "Translation (motion) vector."
          }
        ],
        "returns": "True on success, False on failure."
      },
      {
        "signature": "System.Boolean UpdateEquation()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Update Equations",
        "since": "6.0",
        "returns": "bool"
      },
      {
        "signature": "System.Double ValueAt(Point3d p)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Get the value of the plane equation at the point.",
        "since": "5.7",
        "parameters": [
          {
            "name": "p",
            "type": "Point3d",
            "summary": "evaluation point."
          }
        ],
        "returns": "returns pe[0]*p.X + pe[1]*p.Y + pe[2]*p.Z + pe[3] where pe[0], pe[1], pe[2] and pe[3] are the coefficients of the plane equation."
      }
    ],
    "operators": [
      {
        "signature": "bool operator !=(Plane a, Plane b)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Determines if two planes are different.",
        "since": "5.0",
        "parameters": [
          {
            "name": "a",
            "type": "Plane",
            "summary": "A first plane."
          },
          {
            "name": "b",
            "type": "Plane",
            "summary": "A second plane."
          }
        ]
      },
      {
        "signature": "bool operator ==(Plane a, Plane b)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Determines if two planes are equal.",
        "since": "5.0",
        "parameters": [
          {
            "name": "a",
            "type": "Plane",
            "summary": "A first plane."
          },
          {
            "name": "b",
            "type": "Plane",
            "summary": "A second plane."
          }
        ]
      }
    ]

  },
  {
    "namespace": "Rhino.Geometry",
    "name": "PlaneFitResult",
    "dataType": "enum",
    "summary": "Enumerates all possible outcomes of a Least-Squares plane fitting operation.",
    "since": "5.0",
    "values": [
      {
        "signature": "Failure = -1",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "No plane could be found."
      },
      {
        "signature": "Success = 0",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "A plane was successfully fitted."
      },
      {
        "signature": "Inconclusive = 1",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "A valid plane was found, but it is an inconclusive result. This might happen with co-linear points for example."
      }
    ]

  },
  {
    "namespace": "Rhino.Geometry",
    "name": "PlaneSurface",
    "dataType": "class",
    "summary": "Represents a plane surface.",
    "baseclass": "Rhino.Geometry.Surface",
    "constructors": [
      {
        "signature": "PlaneSurface()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Constructs a new plane surface.",
        "since": "8.0"
      },
      {
        "signature": "PlaneSurface(Plane plane, Interval xExtents, Interval yExtents)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Constructs a plane surface with x and y extents.",
        "since": "5.0",
        "parameters": [
          {
            "name": "plane",
            "type": "Plane",
            "summary": "The plane."
          },
          {
            "name": "xExtents",
            "type": "Interval",
            "summary": "The increasing x interval of the plane that defines the rectangle. The corresponding evaluation interval domain is set so that it matches the extents interval."
          },
          {
            "name": "yExtents",
            "type": "Interval",
            "summary": "The increasing y interval of the plane that defines the rectangle. The corresponding evaluation interval domain is set so that it matches the extents interval."
          }
        ]
      },
      {
        "signature": "PlaneSurface(Plane plane)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Constructs a new plane surface.",
        "since": "8.1",
        "parameters": [
          {
            "name": "plane",
            "type": "Plane",
            "summary": "The plane."
          }
        ]
      },
      {
        "signature": "PlaneSurface(SerializationInfo info, StreamingContext context)",
        "modifiers": ["protected"],
        "protected": true,
        "virtual": false,
        "summary": "Protected constructor for internal use.",
        "parameters": [
          {
            "name": "info",
            "type": "System.Runtime.Serialization.SerializationInfo",
            "summary": "Serialization data."
          },
          {
            "name": "context",
            "type": "System.Runtime.Serialization.StreamingContext",
            "summary": "Serialization stream."
          }
        ]
      }
    ],
    "properties": [
      {
        "signature": "Plane Plane",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the plane surface's plane.",
        "since": "8.0",
        "property": ["get", "set"]
      }
    ],
    "methods": [
      {
        "signature": "PlaneSurface CreateThroughBox(Line lineInPlane, Vector3d vectorInPlane, BoundingBox box)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Create a plane that contains the intersection of a bounding box.",
        "since": "5.0",
        "parameters": [
          {
            "name": "lineInPlane",
            "type": "Line",
            "summary": "A line that will lie on the plane."
          },
          {
            "name": "vectorInPlane",
            "type": "Vector3d",
            "summary": "A vector the direction of which will be in plane."
          },
          {
            "name": "box",
            "type": "BoundingBox",
            "summary": "A box to cut through."
          }
        ],
        "returns": "A new plane surface on success, or None on error."
      },
      {
        "signature": "PlaneSurface CreateThroughBox(Plane plane, BoundingBox box)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Create a plane that contains the intersection of a bounding box.",
        "since": "5.0",
        "parameters": [
          {
            "name": "plane",
            "type": "Plane",
            "summary": "An original plane value."
          },
          {
            "name": "box",
            "type": "BoundingBox",
            "summary": "A box to use for extension boundary."
          }
        ],
        "returns": "A new plane surface on success, or None on error."
      },
      {
        "signature": "Interval GetExtents(System.Int32 direction)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the extents of the plane surface.",
        "since": "8.0",
        "parameters": [
          {
            "name": "direction",
            "type": "System.Int32",
            "summary": "The direction, where 0 gets plane surface's x coordinate extents and 1 gets plane surface's y coordinate extents."
          }
        ],
        "returns": "An increasing interval."
      },
      {
        "signature": "System.Void SetExtents(System.Int32 direction, Interval extents, System.Boolean syncDomain)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Sets the extents of the plane surface.",
        "since": "8.0",
        "parameters": [
          {
            "name": "direction",
            "type": "System.Int32",
            "summary": "The direction, where 0 sets plane surface's x coordinate extents and 1 sets plane surface's y coordinate extents."
          },
          {
            "name": "extents",
            "type": "Interval",
            "summary": "An increasing interval."
          },
          {
            "name": "syncDomain",
            "type": "System.Boolean",
            "summary": "If true, the corresponding evaluation interval domain is set so that it matches the extents interval. If false, the corresponding evaluation interval domain is not changed."
          }
        ]
      },
      {
        "signature": "Mesh ToMesh()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Computes a polygon mesh of the surface made of one quad.",
        "since": "8.0",
        "returns": "A polygon mesh of the surface."
      }
    ]
  },
  {
    "namespace": "Rhino.Geometry",
    "name": "Point",
    "dataType": "class",
    "summary": "Represents a geometric point.  \nThis is fundamentally a class that derives from    and contains a single  location.",
    "baseclass": "Rhino.Geometry.GeometryBase",
    "constructors": [
      {
        "signature": "Point(Point3d location)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Initializes a new point instance with a location.",
        "since": "5.0",
        "parameters": [
          {
            "name": "location",
            "type": "Point3d",
            "summary": "A position in 3D space."
          }
        ]
      },
      {
        "signature": "Point(SerializationInfo info, StreamingContext context)",
        "modifiers": ["protected"],
        "protected": true,
        "virtual": false,
        "summary": "Protected constructor for internal use.",
        "parameters": [
          {
            "name": "info",
            "type": "System.Runtime.Serialization.SerializationInfo",
            "summary": "Serialization data."
          },
          {
            "name": "context",
            "type": "System.Runtime.Serialization.StreamingContext",
            "summary": "Serialization stream."
          }
        ]
      }
    ],
    "properties": [
      {
        "signature": "Point3d Location",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the location (position) of this point.",
        "since": "5.0",
        "property": ["get", "set"]
      }
    ]
  },
  {
    "namespace": "Rhino.Geometry",
    "name": "Point2d",
    "dataType": "struct",
    "summary": "Represents the two coordinates of a point in two-dimensional space, using <b>double</b> -precision floating point numbers.",
    "constructors": [
      {
        "signature": "Point2d(double x, double y)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Initializes a new instance of <b>Point2d</b> from coordinates.",
        "since": "5.0",
        "parameters": [
          {
            "name": "x",
            "type": "System.Double",
            "summary": "The X (first) coordinate."
          },
          {
            "name": "y",
            "type": "System.Double",
            "summary": "The Y (second) coordinate."
          }
        ]
      },
      {
        "signature": "Point2d(Point2d point)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Initializes a new instance of <b>Point2d</b> by copying another <b>Point2d</b> .",
        "since": "5.0",
        "parameters": [
          {
            "name": "point",
            "type": "Point2d",
            "summary": "The point that will be copied."
          }
        ]
      },
      {
        "signature": "Point2d(Point3d point)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Initializes a new instance of <b>Point3d</b> by copying the first two coordinates of a <b>Point3d</b> .",
        "since": "5.0",
        "parameters": [
          {
            "name": "point",
            "type": "Point3d",
            "summary": "The point that will be used: the Z (third) coordinate is discarded."
          }
        ]
      },
      {
        "signature": "Point2d(Vector2d vector)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Initializes a new instance of <b>Point2d</b> by converting a vector.",
        "since": "5.0",
        "parameters": [
          {
            "name": "vector",
            "type": "Vector2d",
            "summary": "The vector that will be copied."
          }
        ]
      }
    ],
    "properties": [
      {
        "signature": "Point2d Origin",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Gets a point at 0,0.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "Point2d Unset",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Gets a point at RhinoMath.UnsetValue,RhinoMath.UnsetValue.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "bool IsValid",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "If any coordinate of a point is UnsetValue, then the point is not valid.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "double MaximumCoordinate",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the largest valid coordinate, or RhinoMath.UnsetValue if no coordinate is valid.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "double MinimumCoordinate",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the smallest (both positive and negative) valid coordinate, or RhinoMath.UnsetValue if no coordinate is valid.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "double X",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the X (first) coordinate of the point.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "double Y",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the Y (second) coordinate of the point.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "double this[int index]",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Accesses the coordinates of this point."
      }
    ],
    "methods": [
      {
        "signature": "Point2d Add(Point2d point1, Point2d point2)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Adds a point with a point.  \n(Provided for languages that do not support operator overloading. You can use the + operator otherwise)",
        "since": "5.0",
        "parameters": [
          {
            "name": "point1",
            "type": "Point2d",
            "summary": "A point."
          },
          {
            "name": "point2",
            "type": "Point2d",
            "summary": "A point."
          }
        ],
        "returns": "A new point that is coordinate-wise summed with the other point."
      },
      {
        "signature": "Point2d Add(Point2d point, Vector2d vector)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Adds a point with a vector.  \n(Provided for languages that do not support operator overloading. You can use the + operator otherwise)",
        "since": "5.0",
        "parameters": [
          {
            "name": "point",
            "type": "Point2d",
            "summary": "A point."
          },
          {
            "name": "vector",
            "type": "Vector2d",
            "summary": "A vector."
          }
        ],
        "returns": "A new point that is coordinate-wise summed with the vector."
      },
      {
        "signature": "Point2d Add(Vector2d vector, Point2d point)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Adds a vector with a point.  \n(Provided for languages that do not support operator overloading. You can use the + operator otherwise)",
        "since": "5.0",
        "parameters": [
          {
            "name": "vector",
            "type": "Vector2d",
            "summary": "A vector."
          },
          {
            "name": "point",
            "type": "Point2d",
            "summary": "A point."
          }
        ],
        "returns": "A new point that is coordinate-wise summed with the vector."
      },
      {
        "signature": "Point2d Divide(Point2d point, System.Double t)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Divides a <b>Point2d</b> by a number.  \n(Provided for languages that do not support operator overloading. You can use the / operator otherwise)",
        "since": "5.0",
        "parameters": [
          {
            "name": "point",
            "type": "Point2d",
            "summary": "A point."
          },
          {
            "name": "t",
            "type": "System.Double",
            "summary": "A number."
          }
        ],
        "returns": "A new point that is coordinate-wise divided by t."
      },
      {
        "signature": "Point2d Multiply(Point2d point, System.Double t)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Multiplies a <b>Point2d</b> by a number.  \n(Provided for languages that do not support operator overloading. You can use the * operator otherwise)",
        "since": "5.0",
        "parameters": [
          {
            "name": "point",
            "type": "Point2d",
            "summary": "A point."
          },
          {
            "name": "t",
            "type": "System.Double",
            "summary": "A number."
          }
        ],
        "returns": "A new point that is coordinate-wise multiplied by t."
      },
      {
        "signature": "Point2d Multiply(System.Double t, Point2d point)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Multiplies a <b>Point2d</b> by a number.  \n(Provided for languages that do not support operator overloading. You can use the * operator otherwise)",
        "since": "5.0",
        "parameters": [
          {
            "name": "t",
            "type": "System.Double",
            "summary": "A number."
          },
          {
            "name": "point",
            "type": "Point2d",
            "summary": "A point."
          }
        ],
        "returns": "A new point that is coordinate-wise multiplied by t."
      },
      {
        "signature": "Vector2d Subtract(Point2d point1, Point2d point2)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Subtracts the second point from the first point.  \n(Provided for languages that do not support operator overloading. You can use the - operator otherwise)",
        "since": "5.0",
        "parameters": [
          {
            "name": "point1",
            "type": "Point2d",
            "summary": "A point (minuend)."
          },
          {
            "name": "point2",
            "type": "Point2d",
            "summary": "A point (subtrahend)."
          }
        ],
        "returns": "A new vector that is point1 coordinate-wise subtracted by point2."
      },
      {
        "signature": "Point2d Subtract(Point2d point, Vector2d vector)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Subtracts a vector from a point.  \n(Provided for languages that do not support operator overloading. You can use the - operator otherwise)",
        "since": "5.0",
        "parameters": [
          {
            "name": "point",
            "type": "Point2d",
            "summary": "A point."
          },
          {
            "name": "vector",
            "type": "Vector2d",
            "summary": "A vector."
          }
        ],
        "returns": "A new point that is coordinate-wise subtracted by vector."
      },
      {
        "signature": "System.Int32 CompareTo(Point2d other)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Compares this <b>Point2d</b> with another <b>Point2d</b> .  \nCoordinates evaluation priority is first X, then Y.",
        "since": "5.0",
        "parameters": [
          {
            "name": "other",
            "type": "Point2d",
            "summary": "The other <b>Point2d</b> to use in comparison."
          }
        ],
        "returns": "0: if this is identical to other  \n-1: if this.X < other.X  \n-1: if this.X == other.X and this.Y < other.Y  \n+1: otherwise."
      },
      {
        "signature": "System.Double DistanceTo(Point2d other)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Computes the distance between two points.",
        "since": "5.0",
        "parameters": [
          {
            "name": "other",
            "type": "Point2d",
            "summary": "Another point."
          }
        ],
        "returns": "The length of the line between the two points, or 0 if either point is invalid."
      },
      {
        "signature": "System.Double DistanceToSquared(Point2d other)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Computes the square of the distance between two 2d points.  \nThis method is usually largely faster than DistanceTo().",
        "since": "8.4",
        "parameters": [
          {
            "name": "other",
            "type": "Point2d",
            "summary": "Other point for squared distance measurement."
          }
        ],
        "returns": "The squared length of the line between this and the other point; or 0 if any of the points is not valid."
      },
      {
        "signature": "System.Boolean EpsilonEquals(Point2d other, System.Double epsilon)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Check that all values in other are within epsilon of the values in this",
        "since": "5.4"
      },
      {
        "signature": "System.Boolean Equals(Point2d point)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Determines whether the specified Point2d has the same values as the present point.",
        "since": "5.0",
        "parameters": [
          {
            "name": "point",
            "type": "Point2d",
            "summary": "The specified point."
          }
        ],
        "returns": "True if point has the same coordinates as this; otherwise false."
      },
      {
        "signature": "System.Boolean Equals(System.Object obj)",
        "modifiers": ["public", "override"],
        "protected": false,
        "virtual": false,
        "summary": "Determines whether the specified System.Object is a Point2d and has the same values as the present point.",
        "parameters": [
          {
            "name": "obj",
            "type": "System.Object",
            "summary": "The specified object."
          }
        ],
        "returns": "True if obj is a Point2d and has the same coordinates as this; otherwise false."
      },
      {
        "signature": "System.Int32 GetHashCode()",
        "modifiers": ["public", "override"],
        "protected": false,
        "virtual": false,
        "summary": "Computes a hash number that represents the current point.",
        "returns": "A hash code that is not unique for each point."
      },
      {
        "signature": "System.String ToString()",
        "modifiers": ["public", "override"],
        "protected": false,
        "virtual": false,
        "summary": "Constructs the string representation for the current point.",
        "returns": "The point representation in the form X,Y."
      },
      {
        "signature": "System.String ToString(System.String format, System.IFormatProvider formatProvider)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "7.0"
      },
      {
        "signature": "System.Void Transform(Transform xform)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Transforms the present point in place. The transformation matrix acts on the left of the point. i.e.,  \nresult = transformation*point",
        "since": "5.1",
        "parameters": [
          {
            "name": "xform",
            "type": "Transform",
            "summary": "Transformation to apply."
          }
        ]
      }
    ],
    "operators": [
      {
        "signature": "bool operator !=(Point2d a, Point2d b)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Determines whether two <b>Point2d</b> have different values.",
        "since": "5.0",
        "parameters": [
          {
            "name": "a",
            "type": "Point2d",
            "summary": "The first point."
          },
          {
            "name": "b",
            "type": "Point2d",
            "summary": "The second point."
          }
        ]
      },
      {
        "signature": "bool operator <(Point2d a, Point2d b)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Determines whether the first specified point comes before (has inferior sorting value than) the second point.  \nCoordinates evaluation priority is first X, then Y.",
        "since": "5.0",
        "parameters": [
          {
            "name": "a",
            "type": "Point2d",
            "summary": "First point."
          },
          {
            "name": "b",
            "type": "Point2d",
            "summary": "Second point."
          }
        ]
      },
      {
        "signature": "bool operator <=(Point2d a, Point2d b)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Determines whether the first specified point comes before (has inferior sorting value than) the second point, or it is equal to it.  \nCoordinates evaluation priority is first X, then Y.",
        "since": "5.0",
        "parameters": [
          {
            "name": "a",
            "type": "Point2d",
            "summary": "First point."
          },
          {
            "name": "b",
            "type": "Point2d",
            "summary": "Second point."
          }
        ]
      },
      {
        "signature": "bool operator ==(Point2d a, Point2d b)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Determines whether two <b>Point2d</b> have equal values.",
        "since": "5.0",
        "parameters": [
          {
            "name": "a",
            "type": "Point2d",
            "summary": "The first point."
          },
          {
            "name": "b",
            "type": "Point2d",
            "summary": "The second point."
          }
        ]
      },
      {
        "signature": "bool operator >(Point2d a, Point2d b)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Determines whether the first specified <b>Point2d</b> comes after (has superior sorting value than) the second point.  \nCoordinates evaluation priority is first X, then Y.",
        "since": "5.0",
        "parameters": [
          {
            "name": "a",
            "type": "Point2d",
            "summary": "First point."
          },
          {
            "name": "b",
            "type": "Point2d",
            "summary": "Second point."
          }
        ]
      },
      {
        "signature": "bool operator >=(Point2d a, Point2d b)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Determines whether the first specified <b>Point2d</b> comes after (has superior sorting value than) the second point, or it is equal to it.  \nCoordinates evaluation priority is first X, then Y.",
        "since": "5.0",
        "parameters": [
          {
            "name": "a",
            "type": "Point2d",
            "summary": "First point."
          },
          {
            "name": "b",
            "type": "Point2d",
            "summary": "Second point."
          }
        ]
      },
      {
        "signature": "Point2d operator -(Point2d point, Vector2d vector)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Subtracts a vector from a point.",
        "since": "5.0",
        "parameters": [
          {
            "name": "point",
            "type": "Point2d",
            "summary": "A point."
          },
          {
            "name": "vector",
            "type": "Vector2d",
            "summary": "A vector."
          }
        ]
      },
      {
        "signature": "Point2d operator *(double t, Point2d point)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Multiplies a <b>Point2d</b> by a number.",
        "since": "5.0",
        "parameters": [
          {
            "name": "t",
            "type": "System.Double",
            "summary": "A number."
          },
          {
            "name": "point",
            "type": "Point2d",
            "summary": "A point."
          }
        ]
      },
      {
        "signature": "Point2d operator *(Point2d point, double t)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Multiplies a <b>Point2d</b> by a number.",
        "since": "5.0",
        "parameters": [
          {
            "name": "point",
            "type": "Point2d",
            "summary": "A point."
          },
          {
            "name": "t",
            "type": "System.Double",
            "summary": "A number."
          }
        ]
      },
      {
        "signature": "Point2d operator /(Point2d point, double t)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Divides a <b>Point2d</b> by a number.",
        "since": "5.0",
        "parameters": [
          {
            "name": "point",
            "type": "Point2d",
            "summary": "A point."
          },
          {
            "name": "t",
            "type": "System.Double",
            "summary": "A number."
          }
        ]
      },
      {
        "signature": "Point2d operator +(Point2d point, Vector2d vector)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Adds a point with a vector.",
        "parameters": [
          {
            "name": "point",
            "type": "Point2d",
            "summary": "A point."
          },
          {
            "name": "vector",
            "type": "Vector2d",
            "summary": "A vector."
          }
        ]
      },
      {
        "signature": "Point2d operator +(Point2d point1, Point2d point2)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Adds a point with a point.",
        "parameters": [
          {
            "name": "point1",
            "type": "Point2d",
            "summary": "A point."
          },
          {
            "name": "point2",
            "type": "Point2d",
            "summary": "A point."
          }
        ]
      },
      {
        "signature": "Point2d operator +(Vector2d vector, Point2d point)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Adds a vector with a point.",
        "parameters": [
          {
            "name": "vector",
            "type": "Vector2d",
            "summary": "A vector."
          },
          {
            "name": "point",
            "type": "Point2d",
            "summary": "A point."
          }
        ]
      },
      {
        "signature": "Vector2d operator -(Point2d point1, Point2d point2)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Subtracts point2 from point1.",
        "since": "5.0",
        "parameters": [
          {
            "name": "point1",
            "type": "Point2d",
            "summary": "A point (minuend)."
          },
          {
            "name": "point2",
            "type": "Point2d",
            "summary": "A point (subtrahend)."
          }
        ]
      }
    ]

  },
  {
    "namespace": "Rhino.Geometry",
    "name": "Point2f",
    "dataType": "struct",
    "summary": "Represents the two coordinates of a point in two-dimensional space, using <b>Single</b> -precision floating point numbers.",
    "constructors": [
      {
        "signature": "Point2f(double x, double y)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Initializes a new two-dimensional point from two double-precision floating point numbers as coordinates.  \nCoordinates will be internally converted to floating point numbers. This might cause precision loss.",
        "since": "5.0",
        "parameters": [
          {
            "name": "x",
            "type": "System.Double",
            "summary": "X component of vector."
          },
          {
            "name": "y",
            "type": "System.Double",
            "summary": "Y component of vector."
          }
        ]
      },
      {
        "signature": "Point2f(float x, float y)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Initializes a new two-dimensional point from two components.",
        "since": "5.0",
        "parameters": [
          {
            "name": "x",
            "type": "System.Single",
            "summary": "X component of vector."
          },
          {
            "name": "y",
            "type": "System.Single",
            "summary": "Y component of vector."
          }
        ]
      }
    ],
    "properties": [
      {
        "signature": "Point2f Unset",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the standard unset point.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "bool IsValid",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets a value indicating whether this point is considered valid.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "float X",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the X (first) component of the vector.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "float Y",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the Y (second) component of the vector.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "float this[int index]",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Accesses the coordinates of this point."
      }
    ],
    "methods": [
      {
        "signature": "System.Int32 CompareTo(Point2f other)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Compares this <b>Point2f</b> with another <b>Point2f</b> .  \nCoordinates evaluation priority is first X, then Y.",
        "since": "5.0",
        "parameters": [
          {
            "name": "other",
            "type": "Point2f",
            "summary": "The other <b>Point2f</b> to use in comparison."
          }
        ],
        "returns": "0: if this is identical to other  \n-1: if this.X < other.X  \n-1: if this.X == other.X and this.Y < other.Y  \n+1: otherwise."
      },
      {
        "signature": "System.Double DistanceTo(Point2f other)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Computes the distance between two points.",
        "parameters": [
          {
            "name": "other",
            "type": "Point2f",
            "summary": "Other point for distance measurement."
          }
        ],
        "returns": "The length of the line between this and the other point; or 0 if any of the points is not valid."
      },
      {
        "signature": "System.Double DistanceToSquared(Point2f other)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Computes the squared distance between two points.",
        "since": "7.14",
        "parameters": [
          {
            "name": "other",
            "type": "Point2f",
            "summary": "Other point for distance measurement."
          }
        ],
        "returns": "The squared length of the line between this and the other point; or 0 if any of the points is not valid."
      },
      {
        "signature": "System.Boolean EpsilonEquals(Point2f other, System.Single epsilon)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Check that all values in other are within epsilon of the values in this",
        "since": "5.4"
      },
      {
        "signature": "System.Boolean Equals(Point2f point)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Determines whether the specified <b>Point2f</b> has the same values as the present point.",
        "since": "5.0",
        "parameters": [
          {
            "name": "point",
            "type": "Point2f",
            "summary": "The specified point."
          }
        ],
        "returns": "True if point has the same coordinates as this; otherwise false."
      },
      {
        "signature": "System.Boolean Equals(System.Object obj)",
        "modifiers": ["public", "override"],
        "protected": false,
        "virtual": false,
        "summary": "Determines whether the specified System.Object is a <b>Point2f</b> and has the same values as the present point.",
        "parameters": [
          {
            "name": "obj",
            "type": "System.Object",
            "summary": "The specified object."
          }
        ],
        "returns": "True if obj is Point2f and has the same coordinates as this; otherwise false."
      },
      {
        "signature": "System.Int32 GetHashCode()",
        "modifiers": ["public", "override"],
        "protected": false,
        "virtual": false,
        "summary": "Computes a hash number that represents the current point.",
        "returns": "A hash code that is not unique for each point."
      },
      {
        "signature": "System.String ToString()",
        "modifiers": ["public", "override"],
        "protected": false,
        "virtual": false,
        "summary": "Constructs the string representation for the current point.",
        "returns": "The point representation in the form X,Y."
      },
      {
        "signature": "System.String ToString(System.String format, System.IFormatProvider formatProvider)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "7.0"
      }
    ],
    "operators": [
      {
        "signature": "bool operator !=(Point2f a, Point2f b)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Determines whether two <b>Point2f</b> have different values.",
        "since": "5.0",
        "parameters": [
          {
            "name": "a",
            "type": "Point2f",
            "summary": "The first point."
          },
          {
            "name": "b",
            "type": "Point2f",
            "summary": "The second point."
          }
        ]
      },
      {
        "signature": "bool operator <(Point2f a, Point2f b)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Determines whether the first specified <b>Point2f</b> comes before (has inferior sorting value than) the second point.  \nCoordinates evaluation priority is first X, then Y.",
        "since": "5.0",
        "parameters": [
          {
            "name": "a",
            "type": "Point2f",
            "summary": "First point."
          },
          {
            "name": "b",
            "type": "Point2f",
            "summary": "Second point."
          }
        ]
      },
      {
        "signature": "bool operator <=(Point2f a, Point2f b)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Determines whether the first specified <b>Point2f</b> comes before (has inferior sorting value than) the second point, or it is equal to it.  \nCoordinates evaluation priority is first X, then Y.",
        "since": "5.0",
        "parameters": [
          {
            "name": "a",
            "type": "Point2f",
            "summary": "First point."
          },
          {
            "name": "b",
            "type": "Point2f",
            "summary": "Second point."
          }
        ]
      },
      {
        "signature": "bool operator ==(Point2f a, Point2f b)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Determines whether two <b>Point2f</b> have equal values.",
        "since": "5.0",
        "parameters": [
          {
            "name": "a",
            "type": "Point2f",
            "summary": "The first point."
          },
          {
            "name": "b",
            "type": "Point2f",
            "summary": "The second point."
          }
        ]
      },
      {
        "signature": "bool operator >(Point2f a, Point2f b)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Determines whether the first specified <b>Point2f</b> comes after (has superior sorting value than) the second point.  \nCoordinates evaluation priority is first X, then Y.",
        "since": "5.0",
        "parameters": [
          {
            "name": "a",
            "type": "Point2f",
            "summary": "First point."
          },
          {
            "name": "b",
            "type": "Point2f",
            "summary": "Second point."
          }
        ]
      },
      {
        "signature": "bool operator >=(Point2f a, Point2f b)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Determines whether the first specified <b>Point2f</b> comes after (has superior sorting value than) the second point, or it is equal to it.  \nCoordinates evaluation priority is first X, then Y.",
        "since": "5.0",
        "parameters": [
          {
            "name": "a",
            "type": "Point2f",
            "summary": "First point."
          },
          {
            "name": "b",
            "type": "Point2f",
            "summary": "Second point."
          }
        ]
      },
      {
        "signature": "Point2f operator *(Point2f a, float b)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Multiplies a <b>Point2f</b> by a scalar.",
        "since": "6.0",
        "parameters": [
          {
            "name": "a",
            "type": "Point2f",
            "summary": "First point."
          },
          {
            "name": "b",
            "type": "System.Single",
            "summary": "Scalar."
          }
        ]
      },
      {
        "signature": "Point2f operator /(Point2f a, float b)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Divides a <b>Point2f</b> by a scalar.",
        "since": "6.0",
        "parameters": [
          {
            "name": "a",
            "type": "Point2f",
            "summary": "First point."
          },
          {
            "name": "b",
            "type": "System.Single",
            "summary": "Scalar."
          }
        ]
      },
      {
        "signature": "Vector2f operator -(Point2f a, Point2f b)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Subtracts two <b>Point2f</b> s.",
        "since": "6.0",
        "parameters": [
          {
            "name": "a",
            "type": "Point2f",
            "summary": "First point."
          },
          {
            "name": "b",
            "type": "Point2f",
            "summary": "Second point."
          }
        ]
      },
      {
        "signature": "Vector2f operator +(Point2f a, Point2f b)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Sums two <b>Point2f</b> s.",
        "parameters": [
          {
            "name": "a",
            "type": "Point2f",
            "summary": "First point."
          },
          {
            "name": "b",
            "type": "Point2f",
            "summary": "Second point."
          }
        ]
      }
    ]

  },
  {
    "namespace": "Rhino.Geometry",
    "name": "Point3d",
    "dataType": "struct",
    "summary": "Represents the three coordinates of a point in three-dimensional space, using <b>double</b> -precision floating point values.",
    "constructors": [
      {
        "signature": "Point3d(double x, double y, double z)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Initializes a new point by defining the X, Y and Z coordinates.",
        "since": "5.0",
        "parameters": [
          {
            "name": "x",
            "type": "System.Double",
            "summary": "The value of the X (first) coordinate."
          },
          {
            "name": "y",
            "type": "System.Double",
            "summary": "The value of the Y (second) coordinate."
          },
          {
            "name": "z",
            "type": "System.Double",
            "summary": "The value of the Z (third) coordinate."
          }
        ]
      },
      {
        "signature": "Point3d(Point3d point)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Initializes a new point by copying coordinates from another point.",
        "since": "5.0",
        "parameters": [
          {
            "name": "point",
            "type": "Point3d",
            "summary": "A point."
          }
        ]
      },
      {
        "signature": "Point3d(Point3f point)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Initializes a new point by copying coordinates from a single-precision point.",
        "since": "5.0",
        "parameters": [
          {
            "name": "point",
            "type": "Point3f",
            "summary": "A point."
          }
        ]
      },
      {
        "signature": "Point3d(Point4d point)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Initializes a new point by copying coordinates from a four-dimensional point. The first three coordinates are divided by the last one. If the W (fourth) dimension of the input point is zero, then it will be just discarded.",
        "since": "5.0",
        "parameters": [
          {
            "name": "point",
            "type": "Point4d",
            "summary": "A point."
          }
        ]
      },
      {
        "signature": "Point3d(Vector3d vector)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Initializes a new point by copying coordinates from the components of a vector.",
        "since": "5.0",
        "parameters": [
          {
            "name": "vector",
            "type": "Vector3d",
            "summary": "A vector."
          }
        ]
      }
    ],
    "properties": [
      {
        "signature": "Point3d Origin",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the value of a point at location 0,0,0.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "Point3d Unset",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the value of a point at location RhinoMath.UnsetValue,RhinoMath.UnsetValue,RhinoMath.UnsetValue.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "bool IsValid",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Each coordinate of the point must pass the <b>RhinoMath.IsValidDouble</b> test.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "double MaximumCoordinate",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the largest (both positive and negative) valid coordinate in this point, or RhinoMath.UnsetValue if no coordinate is valid, as an absolute value.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "double MinimumCoordinate",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the smallest (both positive and negative) coordinate value in this point.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "double X",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the X (first) coordinate of this point.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "double Y",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the Y (second) coordinate of this point.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "double Z",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the Z (third) coordinate of this point.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "double this[int index]",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets an indexed coordinate of this point."
      }
    ],
    "methods": [
      {
        "signature": "Point3d Add(Point3d point1, Point3d point2)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Sums two <b>Point3d</b> instances.  \n(Provided for languages that do not support operator overloading. You can use the + operator otherwise)",
        "since": "5.0",
        "parameters": [
          {
            "name": "point1",
            "type": "Point3d",
            "summary": "A point."
          },
          {
            "name": "point2",
            "type": "Point3d",
            "summary": "A point."
          }
        ],
        "returns": "A new point that results from the addition of point1 and point2."
      },
      {
        "signature": "Point3d Add(Point3d point, Vector3d vector)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Sums up a point and a vector, and returns a new point.  \n(Provided for languages that do not support operator overloading. You can use the + operator otherwise)",
        "since": "5.0",
        "parameters": [
          {
            "name": "point",
            "type": "Point3d",
            "summary": "A point."
          },
          {
            "name": "vector",
            "type": "Vector3d",
            "summary": "A vector."
          }
        ],
        "returns": "A new point that results from the addition of point and vector."
      },
      {
        "signature": "Point3d Add(Point3d point, Vector3f vector)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Sums up a point and a vector, and returns a new point.  \n(Provided for languages that do not support operator overloading. You can use the + operator otherwise)",
        "since": "5.0",
        "parameters": [
          {
            "name": "point",
            "type": "Point3d",
            "summary": "A point."
          },
          {
            "name": "vector",
            "type": "Vector3f",
            "summary": "A vector."
          }
        ],
        "returns": "A new point that results from the addition of point and vector."
      },
      {
        "signature": "Point3d Add(Vector3d vector, Point3d point)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Sums up a point and a vector, and returns a new point.  \n(Provided for languages that do not support operator overloading. You can use the + operator otherwise)",
        "since": "5.0",
        "parameters": [
          {
            "name": "vector",
            "type": "Vector3d",
            "summary": "A vector."
          },
          {
            "name": "point",
            "type": "Point3d",
            "summary": "A point."
          }
        ],
        "returns": "A new point that results from the addition of point and vector."
      },
      {
        "signature": "System.Boolean ArePointsCoplanar(IEnumerable<Point3d> points, System.Double tolerance)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Determines whether a set of points is coplanar within a given tolerance.",
        "since": "5.0",
        "parameters": [
          {
            "name": "points",
            "type": "System.Collections.Generic.IEnumerable<Point3d>",
            "summary": "A list, an array or any enumerable of <b>Point3d</b> ."
          },
          {
            "name": "tolerance",
            "type": "System.Double",
            "summary": "A tolerance value. A default might be RhinoMath.ZeroTolerance."
          }
        ],
        "returns": "True if points are on the same plane; False otherwise."
      },
      {
        "signature": "Point3d[] CreateNoiseDistribution2D(System.Int32 targetCount, System.Boolean useOrderedThreshold, System.Double xMin, System.Double yMin, System.Double xMax, System.Double yMax)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Generates an array of two-dimensional points distributed according to the specified blue noise type.",
    "remarks": "The distribution and characteristics of the generated points depend on the specified noise type.",
        "parameters": [
          {
            "name": "targetCount",
            "type": "System.Int32",
            "summary": "The number of points to generate. Must be a positive integer. The actual count may differ because the algorithm distributes points on a grid whose row and column counts are integers derived from the target count and the region's aspect ratio."
          },
          {
            "name": "useOrderedThreshold",
            "type": "System.Boolean",
            "summary": "Use the blue noise ordered threshold (true) or the blue noise step (false) spectra for the noise distribution."
          },
          {
            "name": "xMin",
            "type": "System.Double",
            "summary": "The minimum X coordinate of the bounding rectangle."
          },
          {
            "name": "yMin",
            "type": "System.Double",
            "summary": "The minimum Y coordinate of the bounding rectangle."
          },
          {
            "name": "xMax",
            "type": "System.Double",
            "summary": "The maximum X coordinate of the bounding rectangle."
          },
          {
            "name": "yMax",
            "type": "System.Double",
            "summary": "The maximum Y coordinate of the bounding rectangle."
          }
        ],
        "returns": "An array of Point3d values."
      },
      {
        "signature": "Point3d[] CreateNoiseDistribution3D(System.Int32 targetCount, System.Boolean useOrderedThreshold, System.Double xMin, System.Double yMin, System.Double zMin, System.Double xMax, System.Double yMax, System.Double zMax)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Generates an array of three-dimensional points distributed according to the specified blue noise type.",
    "remarks": "The distribution and characteristics of the generated points depend on the specified noise type.",
        "parameters": [
          {
            "name": "targetCount",
            "type": "System.Int32",
            "summary": "The number of points to generate. Must be a positive integer. The actual count may differ because the algorithm distributes points on a grid whose row and column counts are integers derived from the target count and the region's aspect ratio."
          },
          {
            "name": "useOrderedThreshold",
            "type": "System.Boolean",
            "summary": "Use the blue noise ordered threshold (true) or the blue noise step (false) spectra for the noise distribution."
          },
          {
            "name": "xMin",
            "type": "System.Double",
            "summary": "The minimum X coordinate of the bounding box."
          },
          {
            "name": "yMin",
            "type": "System.Double",
            "summary": "The minimum Y coordinate of the bounding box."
          },
          {
            "name": "zMin",
            "type": "System.Double",
            "summary": "The minimum Z coordinate of the bounding box."
          },
          {
            "name": "xMax",
            "type": "System.Double",
            "summary": "The maximum X coordinate of the bounding box."
          },
          {
            "name": "yMax",
            "type": "System.Double",
            "summary": "The maximum Y coordinate of the bounding box."
          },
          {
            "name": "zMax",
            "type": "System.Double",
            "summary": "The maximum Z coordinate of the bounding box."
          }
        ],
        "returns": "An array of Point3d values."
      },
      {
        "signature": "Point3d[] CullDuplicates(IEnumerable<Point3d> points, System.Double tolerance)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Removes duplicates in the supplied set of points.",
        "since": "5.0",
        "parameters": [
          {
            "name": "points",
            "type": "System.Collections.Generic.IEnumerable<Point3d>",
            "summary": "A list, an array or any enumerable of <b>Point3d</b> ."
          },
          {
            "name": "tolerance",
            "type": "System.Double",
            "summary": "The minimum distance between points.  \nPoints that fall within this tolerance will be discarded. ."
          }
        ],
        "returns": "An array of points without duplicates; or None on error."
      },
      {
        "signature": "Point3d Divide(Point3d point, System.Double t)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Divides a <b>Point3d</b> by a number.  \n(Provided for languages that do not support operator overloading. You can use the / operator otherwise)",
        "since": "5.0",
        "parameters": [
          {
            "name": "point",
            "type": "Point3d",
            "summary": "A point."
          },
          {
            "name": "t",
            "type": "System.Double",
            "summary": "A number."
          }
        ],
        "returns": "A new point that is coordinate-wise divided by t."
      },
      {
        "signature": "Point3d FromPoint3f(Point3f point)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Converts a single-precision point in a double-precision point.",
        "since": "6.0",
        "parameters": [
          {
            "name": "point",
            "type": "Point3f",
            "summary": "A point."
          }
        ],
        "returns": "The resulting point."
      },
      {
        "signature": "Point3d Multiply(Point3d point, System.Double t)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Multiplies a <b>Point3d</b> by a number.  \n(Provided for languages that do not support operator overloading. You can use the * operator otherwise)",
        "since": "5.0",
        "parameters": [
          {
            "name": "point",
            "type": "Point3d",
            "summary": "A point."
          },
          {
            "name": "t",
            "type": "System.Double",
            "summary": "A number."
          }
        ],
        "returns": "A new point that is coordinate-wise multiplied by t."
      },
      {
        "signature": "Point3d Multiply(System.Double t, Point3d point)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Multiplies a <b>Point3d</b> by a number.  \n(Provided for languages that do not support operator overloading. You can use the * operator otherwise)",
        "since": "5.0",
        "parameters": [
          {
            "name": "t",
            "type": "System.Double",
            "summary": "A number."
          },
          {
            "name": "point",
            "type": "Point3d",
            "summary": "A point."
          }
        ],
        "returns": "A new point that is coordinate-wise multiplied by t."
      },
      {
        "signature": "Point3d[] SortAndCullPointList(IEnumerable<Point3d> points, System.Double minimumDistance)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Orders a set of points so they will be connected in a \"reasonable polyline\" order.  \nAlso, removes points from the list if their common distance exceeds a specified threshold.",
        "since": "5.0",
        "parameters": [
          {
            "name": "points",
            "type": "System.Collections.Generic.IEnumerable<Point3d>",
            "summary": "A list, an array or any enumerable of <b>Point3d</b> ."
          },
          {
            "name": "minimumDistance",
            "type": "System.Double",
            "summary": "Minimum allowed distance among a pair of points. If points are closer than this, only one of them will be kept."
          }
        ],
        "returns": "The new array of sorted and culled points."
      },
      {
        "signature": "Vector3d Subtract(Point3d point1, Point3d point2)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Subtracts a point from another point.  \n(Provided for languages that do not support operator overloading. You can use the - operator otherwise)",
        "since": "5.0",
        "parameters": [
          {
            "name": "point1",
            "type": "Point3d",
            "summary": "A point."
          },
          {
            "name": "point2",
            "type": "Point3d",
            "summary": "Another point."
          }
        ],
        "returns": "A new vector that is the difference of point minus vector."
      },
      {
        "signature": "Point3d Subtract(Point3d point, Vector3d vector)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Subtracts a vector from a point.  \n(Provided for languages that do not support operator overloading. You can use the - operator otherwise)",
        "since": "5.0",
        "parameters": [
          {
            "name": "point",
            "type": "Point3d",
            "summary": "A point."
          },
          {
            "name": "vector",
            "type": "Vector3d",
            "summary": "A vector."
          }
        ],
        "returns": "A new point that is the difference of point minus vector."
      },
      {
        "signature": "System.Boolean TryParse(System.String input, out Point3d result)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Converts the string representation of a point to the equivalent Point3d structure.",
        "since": "6.12",
        "parameters": [
          {
            "name": "input",
            "type": "System.String",
            "summary": "The point to convert."
          },
          {
            "name": "result",
            "type": "Point3d",
            "summary": "The structure that will contain the parsed value."
          }
        ],
        "returns": "True if successful, False otherwise."
      },
      {
        "signature": "System.Int32 CompareTo(Point3d other)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Compares this <b>Point3d</b> with another <b>Point3d</b> .  \nComponent evaluation priority is first X, then Y, then Z.",
        "since": "5.0",
        "parameters": [
          {
            "name": "other",
            "type": "Point3d",
            "summary": "The other <b>Point3d</b> to use in comparison."
          }
        ],
        "returns": "0: if this is identical to other  \n-1: if this.X < other.X  \n-1: if this.X == other.X and this.Y < other.Y  \n-1: if this.X == other.X and this.Y == other.Y and this.Z < other.Z  \n+1: otherwise."
      },
      {
        "signature": "System.Double DistanceTo(Point3d other)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Computes the distance between two points.",
        "since": "5.0",
        "parameters": [
          {
            "name": "other",
            "type": "Point3d",
            "summary": "Other point for distance measurement."
          }
        ],
        "returns": "The length of the line between this and the other point; or 0 if any of the points is not valid."
      },
      {
        "signature": "System.Double DistanceToSquared(Point3d other)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Computes the square of the distance between two points.  \nThis method is usually largely faster than DistanceTo().",
        "since": "6.0",
        "parameters": [
          {
            "name": "other",
            "type": "Point3d",
            "summary": "Other point for squared distance measurement."
          }
        ],
        "returns": "The squared length of the line between this and the other point; or 0 if any of the points is not valid."
      },
      {
        "signature": "System.Boolean EpsilonEquals(Point3d other, System.Double epsilon)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Check that all values in other are within epsilon of the values in this",
        "since": "5.4"
      },
      {
        "signature": "System.Boolean Equals(Point3d point)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Determines whether the specified <b>Point3d</b> has the same values as the present point.",
        "since": "5.0",
        "parameters": [
          {
            "name": "point",
            "type": "Point3d",
            "summary": "The specified point."
          }
        ],
        "returns": "True if point has the same coordinates as this; otherwise false."
      },
      {
        "signature": "System.Boolean Equals(System.Object obj)",
        "modifiers": ["public", "override"],
        "protected": false,
        "virtual": false,
        "summary": "Determines whether the specified <b>object</b> is a <b>Point3d</b> and has the same values as the present point.",
        "parameters": [
          {
            "name": "obj",
            "type": "System.Object",
            "summary": "The specified object."
          }
        ],
        "returns": "True if obj is a Point3d and has the same coordinates as this; otherwise false."
      },
      {
        "signature": "System.Int32 GetHashCode()",
        "modifiers": ["public", "override"],
        "protected": false,
        "virtual": false,
        "summary": "Computes a hash code for the present point.",
        "returns": "A non-unique integer that represents this point."
      },
      {
        "signature": "System.Void Interpolate(Point3d pA, Point3d pB, System.Double t)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Interpolate between two points.",
        "since": "5.0",
        "parameters": [
          {
            "name": "pA",
            "type": "Point3d",
            "summary": "First point."
          },
          {
            "name": "pB",
            "type": "Point3d",
            "summary": "Second point."
          },
          {
            "name": "t",
            "type": "System.Double",
            "summary": "Interpolation parameter. If t=0 then this point is set to pA. If t=1 then this point is set to pB. Values of t in between 0.0 and 1.0 result in points between pA and pB."
          }
        ]
      },
      {
        "signature": "System.String ToString()",
        "modifiers": ["public", "override"],
        "protected": false,
        "virtual": false,
        "summary": "Constructs the string representation for the current point.",
        "returns": "The point representation in the form X,Y,Z."
      },
      {
        "signature": "System.String ToString(System.String format, System.IFormatProvider formatProvider)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "7.0"
      },
      {
        "signature": "System.Void Transform(Transform xform)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Transforms the present point in place. The transformation matrix acts on the left of the point. i.e.,  \nresult = transformation*point",
        "since": "5.0",
        "parameters": [
          {
            "name": "xform",
            "type": "Transform",
            "summary": "Transformation to apply."
          }
        ]
      }
    ],
    "operators": [
      {
        "signature": "bool operator !=(Point3d a, Point3d b)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Determines whether two Point3d have different values.",
        "since": "5.0",
        "parameters": [
          {
            "name": "a",
            "type": "Point3d",
            "summary": "The first point."
          },
          {
            "name": "b",
            "type": "Point3d",
            "summary": "The second point."
          }
        ]
      },
      {
        "signature": "bool operator <(Point3d a, Point3d b)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Determines whether the first specified point comes before (has inferior sorting value than) the second point.  \nCoordinates evaluation priority is first X, then Y, then Z.",
        "since": "5.0",
        "parameters": [
          {
            "name": "a",
            "type": "Point3d",
            "summary": "The first point."
          },
          {
            "name": "b",
            "type": "Point3d",
            "summary": "The second point."
          }
        ]
      },
      {
        "signature": "bool operator <=(Point3d a, Point3d b)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Determines whether the first specified point comes before (has inferior sorting value than) the second point, or it is equal to it.  \nCoordinates evaluation priority is first X, then Y, then Z.",
        "since": "5.0",
        "parameters": [
          {
            "name": "a",
            "type": "Point3d",
            "summary": "The first point."
          },
          {
            "name": "b",
            "type": "Point3d",
            "summary": "The second point."
          }
        ]
      },
      {
        "signature": "bool operator ==(Point3d a, Point3d b)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Determines whether two Point3d have equal values.",
        "since": "5.0",
        "parameters": [
          {
            "name": "a",
            "type": "Point3d",
            "summary": "The first point."
          },
          {
            "name": "b",
            "type": "Point3d",
            "summary": "The second point."
          }
        ]
      },
      {
        "signature": "bool operator >(Point3d a, Point3d b)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Determines whether the first specified point comes after (has superior sorting value than) the second point.  \nCoordinates evaluation priority is first X, then Y, then Z.",
        "since": "5.0",
        "parameters": [
          {
            "name": "a",
            "type": "Point3d",
            "summary": "The first point."
          },
          {
            "name": "b",
            "type": "Point3d",
            "summary": "The second point."
          }
        ]
      },
      {
        "signature": "bool operator >=(Point3d a, Point3d b)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Determines whether the first specified point comes after (has superior sorting value than) the second point, or it is equal to it.  \nCoordinates evaluation priority is first X, then Y, then Z.",
        "since": "5.0",
        "parameters": [
          {
            "name": "a",
            "type": "Point3d",
            "summary": "The first point."
          },
          {
            "name": "b",
            "type": "Point3d",
            "summary": "The second point."
          }
        ]
      },
      {
        "signature": "Point3d operator -(Point3d point, Vector3d vector)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Subtracts a vector from a point.",
        "since": "5.0",
        "parameters": [
          {
            "name": "point",
            "type": "Point3d",
            "summary": "A point."
          },
          {
            "name": "vector",
            "type": "Vector3d",
            "summary": "A vector."
          }
        ]
      },
      {
        "signature": "Point3d operator -(Point3d point)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Computes the additive inverse of all coordinates in the point, and returns the new point.",
        "since": "5.0",
        "parameters": [
          {
            "name": "point",
            "type": "Point3d",
            "summary": "A point."
          }
        ]
      },
      {
        "signature": "Point3d operator *(double t, Point3d point)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Multiplies a <b>Point3d</b> by a number.",
        "since": "5.0",
        "parameters": [
          {
            "name": "t",
            "type": "System.Double",
            "summary": "A number."
          },
          {
            "name": "point",
            "type": "Point3d",
            "summary": "A point."
          }
        ]
      },
      {
        "signature": "Point3d operator *(Point3d point, double t)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Multiplies a <b>Point3d</b> by a number.",
        "since": "5.0",
        "parameters": [
          {
            "name": "point",
            "type": "Point3d",
            "summary": "A point."
          },
          {
            "name": "t",
            "type": "System.Double",
            "summary": "A number."
          }
        ]
      },
      {
        "signature": "Point3d operator /(Point3d point, double t)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Divides a <b>Point3d</b> by a number.",
        "since": "5.0",
        "parameters": [
          {
            "name": "point",
            "type": "Point3d",
            "summary": "A point."
          },
          {
            "name": "t",
            "type": "System.Double",
            "summary": "A number."
          }
        ]
      },
      {
        "signature": "Point3d operator +(Point3d point, Vector3d vector)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Sums up a point and a vector, and returns a new point.",
        "parameters": [
          {
            "name": "point",
            "type": "Point3d",
            "summary": "A point."
          },
          {
            "name": "vector",
            "type": "Vector3d",
            "summary": "A vector."
          }
        ]
      },
      {
        "signature": "Point3d operator +(Point3d point, Vector3f vector)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Sums up a point and a vector, and returns a new point.",
        "parameters": [
          {
            "name": "point",
            "type": "Point3d",
            "summary": "A point."
          },
          {
            "name": "vector",
            "type": "Vector3f",
            "summary": "A vector."
          }
        ]
      },
      {
        "signature": "Point3d operator +(Point3d point1, Point3d point2)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Sums two <b>Point3d</b> instances.",
        "parameters": [
          {
            "name": "point1",
            "type": "Point3d",
            "summary": "A point."
          },
          {
            "name": "point2",
            "type": "Point3d",
            "summary": "A point."
          }
        ]
      },
      {
        "signature": "Point3d operator +(Vector3d vector, Point3d point)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Sums up a point and a vector, and returns a new point.",
        "parameters": [
          {
            "name": "vector",
            "type": "Vector3d",
            "summary": "A vector."
          },
          {
            "name": "point",
            "type": "Point3d",
            "summary": "A point."
          }
        ]
      },
      {
        "signature": "Vector3d operator -(Point3d point1, Point3d point2)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Subtracts a point from another point.",
        "since": "5.0",
        "parameters": [
          {
            "name": "point1",
            "type": "Point3d",
            "summary": "A point."
          },
          {
            "name": "point2",
            "type": "Point3d",
            "summary": "Another point."
          }
        ]
      }
    ]

  },
  {
    "namespace": "Rhino.Geometry",
    "name": "Point3dGrid",
    "dataType": "class",
    "summary": "Represents a rectangular grid of 3D points.",
    "baseclass": "Rhino.Geometry.GeometryBase",
    "constructors": [
      {
        "signature": "Point3dGrid()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Initializes a rectangular grid of points, with no points in it.",
        "since": "5.0"
      },
      {
        "signature": "Point3dGrid(int rows, int columns)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Initializes a rectangular grid of points with a given number of columns and rows.",
        "since": "5.0",
        "parameters": [
          {
            "name": "rows",
            "type": "System.Int32",
            "summary": "An amount of rows."
          },
          {
            "name": "columns",
            "type": "System.Int32",
            "summary": "An amount of columns."
          }
        ]
      },
      {
        "signature": "Point3dGrid(SerializationInfo info, StreamingContext context)",
        "modifiers": ["protected"],
        "protected": true,
        "virtual": false,
        "summary": "Protected constructor for internal use.",
        "parameters": [
          {
            "name": "info",
            "type": "System.Runtime.Serialization.SerializationInfo",
            "summary": "Serialization data."
          },
          {
            "name": "context",
            "type": "System.Runtime.Serialization.StreamingContext",
            "summary": "Serialization stream."
          }
        ]
      }
    ]
  },
  {
    "namespace": "Rhino.Geometry",
    "name": "Point3f",
    "dataType": "struct",
    "summary": "Represents the three coordinates of a point in three-dimensional space, using <b>Single</b> -precision floating point numbers.",
    "constructors": [
      {
        "signature": "Point3f(float x, float y, float z)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Initializes a new two-dimensional vector from two components.",
        "since": "5.0",
        "parameters": [
          {
            "name": "x",
            "type": "System.Single",
            "summary": "X component of vector."
          },
          {
            "name": "y",
            "type": "System.Single",
            "summary": "Y component of vector."
          },
          {
            "name": "z",
            "type": "System.Single",
            "summary": "Z component of vector."
          }
        ]
      }
    ],
    "properties": [
      {
        "signature": "Point3f Origin",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the value of a point at location 0,0,0.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "Point3f Unset",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the value of a point at location RhinoMath.UnsetValue,RhinoMath.UnsetValue,RhinoMath.UnsetValue.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "bool IsValid",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Each coordinate of the point must pass the <b>RhinoMath.IsValidSingle</b> test.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "float X",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the X (first) component of the vector.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "float Y",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the Y (second) component of the vector.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "float Z",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the Z (third) component of the vector.",
        "since": "5.0",
        "property": ["get", "set"]
      }
    ],
    "methods": [
      {
        "signature": "Vector3f Subtract(Point3f point1, Point3f point2)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Subtracts a point from another point.  \n(Provided for languages that do not support operator overloading. You can use the - operator otherwise)",
        "since": "5.0",
        "parameters": [
          {
            "name": "point1",
            "type": "Point3f",
            "summary": "A point."
          },
          {
            "name": "point2",
            "type": "Point3f",
            "summary": "Another point."
          }
        ],
        "returns": "A new vector that is the difference of point minus vector."
      },
      {
        "signature": "System.Int32 CompareTo(Point3f other)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Compares this <b>Point3f</b> with another <b>Point3f</b> .  \nComponent evaluation priority is first X, then Y, then Z.",
        "since": "5.0",
        "parameters": [
          {
            "name": "other",
            "type": "Point3f",
            "summary": "The other <b>Point3d</b> to use in comparison."
          }
        ],
        "returns": "0: if this is identical to other  \n-1: if this.X < other.X  \n-1: if this.X == other.X and this.Y < other.Y  \n-1: if this.X == other.X and this.Y == other.Y and this.Z < other.Z  \n+1: otherwise."
      },
      {
        "signature": "System.Double DistanceTo(Point3f other)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Computes the distance between two points.",
        "since": "5.0",
        "parameters": [
          {
            "name": "other",
            "type": "Point3f",
            "summary": "Other point for distance measurement."
          }
        ],
        "returns": "The length of the line between this and the other point; or 0 if any of the points is not valid."
      },
      {
        "signature": "System.Double DistanceToSquared(Point3f other)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Computes the squared distance between two points.",
        "since": "7.14",
        "parameters": [
          {
            "name": "other",
            "type": "Point3f",
            "summary": "Other point for distance measurement."
          }
        ],
        "returns": "The squared length of the line between this and the other point; or 0 if any of the points is not valid."
      },
      {
        "signature": "System.Boolean EpsilonEquals(Point3f other, System.Single epsilon)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Check that all values in other are within epsilon of the values in this",
        "since": "5.4"
      },
      {
        "signature": "System.Boolean Equals(Point3f point)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Determines whether the specified Point3f has the same values as the present point.",
        "since": "5.0",
        "parameters": [
          {
            "name": "point",
            "type": "Point3f",
            "summary": "The specified point."
          }
        ],
        "returns": "True if point has the same coordinates as this; otherwise false."
      },
      {
        "signature": "System.Boolean Equals(System.Object obj)",
        "modifiers": ["public", "override"],
        "protected": false,
        "virtual": false,
        "summary": "Determines whether the specified System.Object is a Point3f and has the same values as the present point.",
        "parameters": [
          {
            "name": "obj",
            "type": "System.Object",
            "summary": "The specified object."
          }
        ],
        "returns": "True if obj is Point3f and has the same coordinates as this; otherwise false."
      },
      {
        "signature": "System.Int32 GetHashCode()",
        "modifiers": ["public", "override"],
        "protected": false,
        "virtual": false,
        "summary": "Computes a hash code for the present point.",
        "returns": "A non-unique integer that represents this point."
      },
      {
        "signature": "System.String ToString()",
        "modifiers": ["public", "override"],
        "protected": false,
        "virtual": false,
        "summary": "Constructs the string representation for the current point.",
        "returns": "The point representation in the form X,Y,Z."
      },
      {
        "signature": "System.String ToString(System.String format, System.IFormatProvider formatProvider)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "7.0"
      },
      {
        "signature": "System.Void Transform(Transform xform)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Transforms the present point in place. The transformation matrix acts on the left of the point. i.e.,  \nresult = transformation*point",
        "since": "5.0",
        "parameters": [
          {
            "name": "xform",
            "type": "Transform",
            "summary": "Transformation to apply."
          }
        ]
      }
    ],
    "operators": [
      {
        "signature": "bool operator !=(Point3f a, Point3f b)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Determines whether two points have different values.",
        "since": "5.0",
        "parameters": [
          {
            "name": "a",
            "type": "Point3f",
            "summary": "The first point."
          },
          {
            "name": "b",
            "type": "Point3f",
            "summary": "The second point."
          }
        ]
      },
      {
        "signature": "bool operator <(Point3f a, Point3f b)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Determines whether the first specified point comes before (has inferior sorting value than) the second point.  \nCoordinates evaluation priority is first X, then Y, then Z.",
        "since": "5.0",
        "parameters": [
          {
            "name": "a",
            "type": "Point3f",
            "summary": "The first point."
          },
          {
            "name": "b",
            "type": "Point3f",
            "summary": "The second point."
          }
        ]
      },
      {
        "signature": "bool operator <=(Point3f a, Point3f b)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Determines whether the first specified point comes before (has inferior sorting value than) the second point, or it is equal to it.  \nCoordinates evaluation priority is first X, then Y, then Z.",
        "since": "5.0",
        "parameters": [
          {
            "name": "a",
            "type": "Point3f",
            "summary": "The first point."
          },
          {
            "name": "b",
            "type": "Point3f",
            "summary": "The second point."
          }
        ]
      },
      {
        "signature": "bool operator ==(Point3f a, Point3f b)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Determines whether two points have equal values.",
        "since": "5.0",
        "parameters": [
          {
            "name": "a",
            "type": "Point3f",
            "summary": "The first point."
          },
          {
            "name": "b",
            "type": "Point3f",
            "summary": "The second point."
          }
        ]
      },
      {
        "signature": "bool operator >(Point3f a, Point3f b)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Determines whether the first specified point comes after (has superior sorting value than) the second point.  \nCoordinates evaluation priority is first X, then Y, then Z.",
        "since": "5.0",
        "parameters": [
          {
            "name": "a",
            "type": "Point3f",
            "summary": "The first point."
          },
          {
            "name": "b",
            "type": "Point3f",
            "summary": "The second point."
          }
        ]
      },
      {
        "signature": "bool operator >=(Point3f a, Point3f b)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Determines whether the first specified point comes after (has superior sorting value than) the second point, or it is equal to it.  \nCoordinates evaluation priority is first X, then Y, then Z.",
        "since": "5.0",
        "parameters": [
          {
            "name": "a",
            "type": "Point3f",
            "summary": "The first point."
          },
          {
            "name": "b",
            "type": "Point3f",
            "summary": "The second point."
          }
        ]
      },
      {
        "signature": "Point3f operator *(float value, Point3f point)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Multiplies a point by a factor.",
        "since": "6.0",
        "parameters": [
          {
            "name": "value",
            "type": "System.Single",
            "summary": "A value."
          },
          {
            "name": "point",
            "type": "Point3f",
            "summary": "A point."
          }
        ]
      },
      {
        "signature": "Point3f operator *(Point3f point, float value)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Multiplies a point by a factor.",
        "since": "6.0",
        "parameters": [
          {
            "name": "point",
            "type": "Point3f",
            "summary": "A point."
          },
          {
            "name": "value",
            "type": "System.Single",
            "summary": "A value."
          }
        ]
      },
      {
        "signature": "Point3f operator +(Point3f point1, Point3f point2)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Adds a point to another point.",
        "parameters": [
          {
            "name": "point1",
            "type": "Point3f",
            "summary": "A point."
          },
          {
            "name": "point2",
            "type": "Point3f",
            "summary": "Another point."
          }
        ]
      },
      {
        "signature": "Vector3f operator -(Point3f point1, Point3f point2)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Subtracts a point from another point.",
        "since": "5.0",
        "parameters": [
          {
            "name": "point1",
            "type": "Point3f",
            "summary": "A point."
          },
          {
            "name": "point2",
            "type": "Point3f",
            "summary": "Another point."
          }
        ]
      }
    ]

  },
  {
    "namespace": "Rhino.Geometry",
    "name": "Point4d",
    "dataType": "struct",
    "summary": "Represents the four coordinates of a point in four-dimensional space.  \nThe W (fourth) dimension is often considered the weight of the point as seen in 3D space.",
    "constructors": [
      {
        "signature": "Point4d(double x, double y, double z, double w)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Initializes a new instance of the <b>Point4d</b> class based on coordinates.",
        "since": "5.0",
        "parameters": [
          {
            "name": "x",
            "type": "System.Double",
            "summary": "The X (first) dimension."
          },
          {
            "name": "y",
            "type": "System.Double",
            "summary": "The Y (second) dimension."
          },
          {
            "name": "z",
            "type": "System.Double",
            "summary": "The Z (third) dimension."
          },
          {
            "name": "w",
            "type": "System.Double",
            "summary": "The W (fourth) dimension, or weight."
          }
        ]
      },
      {
        "signature": "Point4d(Point3d point)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Initializes a new instance of the <b>Point4d</b> class from the coordinates of a point.",
        "since": "5.0",
        "parameters": [
          {
            "name": "point",
            "type": "Point3d",
            "summary": "."
          }
        ]
      },
      {
        "signature": "Point4d(Point4d point)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Initializes a new point by copying coordinates from another point.",
        "since": "6.0",
        "parameters": [
          {
            "name": "point",
            "type": "Point4d",
            "summary": "A point."
          }
        ]
      }
    ],
    "properties": [
      {
        "signature": "Point4d Unset",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the value of a point with all coordinates set as RhinoMath.UnsetValue.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "bool IsValid",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns an indication regarding the validity of this point.",
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "double W",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the W (fourth) coordinate -or weight- of this point.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "double X",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the X (first) coordinate of this point.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "double Y",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the Y (second) coordinate of this point.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "double Z",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the Z (third) coordinate of this point.",
        "since": "5.0",
        "property": ["get", "set"]
      }
    ],
    "methods": [
      {
        "signature": "Point4d Add(Point4d point1, Point4d point2)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Sums two <b>Point4d</b> together.  \n(Provided for languages that do not support operator overloading. You can use the + operator otherwise)",
        "since": "5.0",
        "parameters": [
          {
            "name": "point1",
            "type": "Point4d",
            "summary": "First point."
          },
          {
            "name": "point2",
            "type": "Point4d",
            "summary": "Second point."
          }
        ],
        "returns": "A new point that results from the weighted addition of point1 and point2."
      },
      {
        "signature": "Point4d Multiply(Point4d point, System.Double d)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Multiplies a point by a number.  \n(Provided for languages that do not support operator overloading. You can use the * operator otherwise)",
        "since": "5.0",
        "parameters": [
          {
            "name": "point",
            "type": "Point4d",
            "summary": "A point."
          },
          {
            "name": "d",
            "type": "System.Double",
            "summary": "A number."
          }
        ],
        "returns": "A new point that results from the coordinate-wise multiplication of point with d."
      },
      {
        "signature": "Point4d Subtract(Point4d point1, Point4d point2)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Subtracts the second point from the first point.  \n(Provided for languages that do not support operator overloading. You can use the - operator otherwise)",
        "since": "5.0",
        "parameters": [
          {
            "name": "point1",
            "type": "Point4d",
            "summary": "First point."
          },
          {
            "name": "point2",
            "type": "Point4d",
            "summary": "Second point."
          }
        ],
        "returns": "A new point that results from the weighted subtraction of point2 from point1."
      },
      {
        "signature": "System.Boolean EpsilonEquals(Point4d other, System.Double epsilon)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Check that all values in other are within epsilon of the values in this",
        "since": "5.4"
      },
      {
        "signature": "System.Boolean Equals(Point4d point)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Determines whether the specified point has same value as the present point.",
        "since": "5.0",
        "parameters": [
          {
            "name": "point",
            "type": "Point4d",
            "summary": "The specified point."
          }
        ],
        "returns": "True if point has the same value as this; otherwise false."
      },
      {
        "signature": "System.Boolean Equals(System.Object obj)",
        "modifiers": ["public", "override"],
        "protected": false,
        "virtual": false,
        "summary": "Determines whether the specified System.Object is Point4d and has same coordinates as the present point.",
        "parameters": [
          {
            "name": "obj",
            "type": "System.Object",
            "summary": "The specified object."
          }
        ],
        "returns": "True if obj is Point4d and has the same coordinates as this; otherwise false."
      },
      {
        "signature": "System.Int32 GetHashCode()",
        "modifiers": ["public", "override"],
        "protected": false,
        "virtual": false,
        "summary": "Computes the hash code for the present point.",
        "returns": "A non-unique hash code, which uses all coordinates of this object."
      },
      {
        "signature": "System.String ToString()",
        "modifiers": ["public", "override"],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "System.String ToString(System.String format, System.IFormatProvider formatProvider)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "7.0"
      },
      {
        "signature": "System.Void Transform(Transform xform)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Transforms the present point in place. The transformation matrix acts on the left of the point. i.e.,  \nresult = transformation*point",
        "since": "6.0",
        "parameters": [
          {
            "name": "xform",
            "type": "Transform",
            "summary": "Transformation to apply."
          }
        ]
      }
    ],
    "operators": [
      {
        "signature": "bool operator !=(Point4d a, Point4d b)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Determines whether two Point4d have different values.",
        "since": "5.0",
        "parameters": [
          {
            "name": "a",
            "type": "Point4d",
            "summary": "The first point."
          },
          {
            "name": "b",
            "type": "Point4d",
            "summary": "The second point."
          }
        ]
      },
      {
        "signature": "bool operator ==(Point4d a, Point4d b)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Determines whether two Point4d have equal values.",
        "since": "5.0",
        "parameters": [
          {
            "name": "a",
            "type": "Point4d",
            "summary": "The first point."
          },
          {
            "name": "b",
            "type": "Point4d",
            "summary": "The second point."
          }
        ]
      },
      {
        "signature": "double operator *(Point4d point1, Point4d point2)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Multiplies two <b>Point4d</b> together, returning the dot (internal) product of the two. This is not the cross product.",
        "since": "5.0",
        "parameters": [
          {
            "name": "point1",
            "type": "Point4d",
            "summary": "The first point."
          },
          {
            "name": "point2",
            "type": "Point4d",
            "summary": "The second point."
          }
        ]
      },
      {
        "signature": "Point4d operator -(Point4d point1, Point4d point2)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Subtracts the second point from the first point.",
        "since": "5.0",
        "parameters": [
          {
            "name": "point1",
            "type": "Point4d",
            "summary": "First point."
          },
          {
            "name": "point2",
            "type": "Point4d",
            "summary": "Second point."
          }
        ]
      },
      {
        "signature": "Point4d operator *(Point4d point, double d)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Multiplies a point by a number.",
        "since": "5.0",
        "parameters": [
          {
            "name": "point",
            "type": "Point4d",
            "summary": "A point."
          },
          {
            "name": "d",
            "type": "System.Double",
            "summary": "A number."
          }
        ]
      },
      {
        "signature": "Point4d operator +(Point4d point1, Point4d point2)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Sums two <b>Point4d</b> together.",
        "parameters": [
          {
            "name": "point1",
            "type": "Point4d",
            "summary": "First point."
          },
          {
            "name": "point2",
            "type": "Point4d",
            "summary": "Second point."
          }
        ]
      }
    ]

  },
  {
    "namespace": "Rhino.Geometry",
    "name": "PointCloud",
    "dataType": "class",
    "summary": "Represents a collection of coordinates with optional normal vectors and colors.",
    "baseclass": "Rhino.Geometry.GeometryBase",
    "interfaces": ["IEnumerable<PointCloudItem>"],
    "constructors": [
      {
        "signature": "PointCloud()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Initializes a new instance of the <b>PointCloud</b> class that is empty.",
        "since": "5.0"
      },
      {
        "signature": "PointCloud(IEnumerable<Point3d> points)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Initializes a new instance of the <b>PointCloud</b> class, copying the content from a set of points.",
        "since": "5.0",
        "parameters": [
          {
            "name": "points",
            "type": "IEnumerable<Point3d>",
            "summary": "A list or an array of Point3d, or any object that implements <b>IEnumerable{Point3d}</b> ."
          }
        ]
      },
      {
        "signature": "PointCloud(PointCloud other)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Initializes a new instance of the <b>PointCloud</b> class, copying (Merge) the content of another point cloud.",
        "since": "5.0"
      },
      {
        "signature": "PointCloud(SerializationInfo info, StreamingContext context)",
        "modifiers": ["protected"],
        "protected": true,
        "virtual": false,
        "summary": "Binds with the Rhino default serializer to support object persistence.",
        "parameters": [
          {
            "name": "info",
            "type": "System.Runtime.Serialization.SerializationInfo",
            "summary": "Some storage."
          },
          {
            "name": "context",
            "type": "System.Runtime.Serialization.StreamingContext",
            "summary": "The source and destination of the stream."
          }
        ]
      }
    ],
    "properties": [
      {
        "signature": "bool ContainsColors",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets a value indicating whether or not the points in this point cloud have colors assigned to them.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "bool ContainsHiddenFlags",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets a value indicating whether or not the points in this point cloud have hidden flags assigned to them.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "bool ContainsNormals",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets a value indicating whether or not the points in this point cloud have normals assigned to them.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "bool ContainsPointValues",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets a value indicating whether or not the points in this point cloud have extra values assigned to them. Extra values can be used to store a user-defined values, such as intensity.",
        "since": "7.5",
        "property": ["get"]
      },
      {
        "signature": "int Count",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the number of points in this point cloud.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "int HiddenPointCount",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the number of points that have their Hidden flag set.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "PointCloudItem this[int index]",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the item at the given index."
      }
    ],
    "methods": [
      {
        "signature": "PointCloud CreateFromMesh(Mesh mesh)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Creates a point cloud from a mesh.",
        "since": "8.29",
        "parameters": [
          {
            "name": "mesh",
            "type": "Mesh",
            "summary": "Mesh to copy vertices, vertex normals, and colors."
          }
        ],
        "returns": "A point cloud if successful, otherwise null."
      },
      {
        "signature": "System.Void Add(Point3d point, Color color)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Append a new point to the end of the list.",
        "since": "5.0",
        "parameters": [
          {
            "name": "point",
            "type": "Point3d",
            "summary": "Point to append."
          },
          {
            "name": "color",
            "type": "Color",
            "summary": "Color of new point."
          }
        ]
      },
      {
        "signature": "System.Void Add(Point3d point, Vector3d normal, Color color, System.Double value)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Append a new point to the end of the list.",
        "since": "7.5",
        "parameters": [
          {
            "name": "point",
            "type": "Point3d",
            "summary": "Point to append."
          },
          {
            "name": "normal",
            "type": "Vector3d",
            "summary": "Normal vector of new point."
          },
          {
            "name": "color",
            "type": "Color",
            "summary": "Color of new point."
          },
          {
            "name": "value",
            "type": "System.Double",
            "summary": "Extra value of new point. An extra value can be used to store a user-defined value, such as intensity."
          }
        ]
      },
      {
        "signature": "System.Void Add(Point3d point, Vector3d normal, Color color)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Append a new point to the end of the list.",
        "since": "5.0",
        "parameters": [
          {
            "name": "point",
            "type": "Point3d",
            "summary": "Point to append."
          },
          {
            "name": "normal",
            "type": "Vector3d",
            "summary": "Normal vector of new point."
          },
          {
            "name": "color",
            "type": "Color",
            "summary": "Color of new point."
          }
        ]
      },
      {
        "signature": "System.Void Add(Point3d point, Vector3d normal)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Append a new point to the end of the list.",
        "since": "5.0",
        "parameters": [
          {
            "name": "point",
            "type": "Point3d",
            "summary": "Point to append."
          },
          {
            "name": "normal",
            "type": "Vector3d",
            "summary": "Normal vector of new point."
          }
        ]
      },
      {
        "signature": "System.Void Add(Point3d point)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Append a new point to the end of the list.",
        "since": "5.0",
        "parameters": [
          {
            "name": "point",
            "type": "Point3d",
            "summary": "Point to append."
          }
        ]
      },
      {
        "signature": "System.Void AddRange(IEnumerable<Point3d> points, IEnumerable<Color> colors)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Appends a collection of points and normal vectors to this point cloud.",
        "since": "6.0",
        "parameters": [
          {
            "name": "points",
            "type": "IEnumerable<Point3d>",
            "summary": "Points to append."
          },
          {
            "name": "colors",
            "type": "IEnumerable<Color>",
            "summary": "Colors to append."
          }
        ]
      },
      {
        "signature": "System.Void AddRange(IEnumerable<Point3d> points, IEnumerable<Vector3d> normals, IEnumerable<Color> colors, IEnumerable<double> values)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Appends a collection of points, normal vectors, colors, and extra values to this point cloud.",
        "since": "7.5",
        "parameters": [
          {
            "name": "points",
            "type": "IEnumerable<Point3d>",
            "summary": "Points to append."
          },
          {
            "name": "normals",
            "type": "IEnumerable<Vector3d>",
            "summary": "Normal Vectors to append."
          },
          {
            "name": "colors",
            "type": "IEnumerable<Color>",
            "summary": "Colors to append."
          },
          {
            "name": "values",
            "type": "IEnumerable<double>",
            "summary": "Exta point values to append. Extra values can be used to store a user-defined values, such as intensity."
          }
        ]
      },
      {
        "signature": "System.Void AddRange(IEnumerable<Point3d> points, IEnumerable<Vector3d> normals, IEnumerable<Color> colors)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Appends a collection of points, normal vectors, and colors to this point cloud.",
        "since": "6.0",
        "parameters": [
          {
            "name": "points",
            "type": "IEnumerable<Point3d>",
            "summary": "Points to append."
          },
          {
            "name": "normals",
            "type": "IEnumerable<Vector3d>",
            "summary": "Normal Vectors to append."
          },
          {
            "name": "colors",
            "type": "IEnumerable<Color>",
            "summary": "Colors to append."
          }
        ]
      },
      {
        "signature": "System.Void AddRange(IEnumerable<Point3d> points, IEnumerable<Vector3d> normals)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Appends a collection of points and normal vectors to this point cloud.",
        "since": "6.0",
        "parameters": [
          {
            "name": "points",
            "type": "IEnumerable<Point3d>",
            "summary": "Points to append."
          },
          {
            "name": "normals",
            "type": "IEnumerable<Vector3d>",
            "summary": "Normal Vectors to append."
          }
        ]
      },
      {
        "signature": "System.Void AddRange(IEnumerable<Point3d> points)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Appends a collection of points to this point cloud.",
        "since": "5.0",
        "parameters": [
          {
            "name": "points",
            "type": "IEnumerable<Point3d>",
            "summary": "Points to append."
          }
        ]
      },
      {
        "signature": "PointCloudItem AppendNew()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Appends a new PointCloudItem to the end of this point cloud.",
        "since": "5.0",
        "returns": "The newly appended item."
      },
      {
        "signature": "IReadOnlyList<Point3d> AsReadOnlyListOfPoints()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns an enumerator and list indexer over point cloud locations.",
        "since": "6.0",
        "returns": "The read-only list. This is a reference to the present point cloud."
      },
      {
        "signature": "System.Void ClearColors()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Destroys the color information in this point cloud.",
        "since": "5.0"
      },
      {
        "signature": "System.Void ClearHiddenFlags()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Destroys the hidden flag information in this point cloud.",
        "since": "5.0"
      },
      {
        "signature": "System.Void ClearNormals()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Destroys the normal vector information in this point cloud.",
        "since": "5.0"
      },
      {
        "signature": "System.Void ClearPointValues()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Destroys the extra value information in this point cloud. Extra values can be used to store a user-defined values, such as intensity.",
        "since": "7.5"
      },
      {
        "signature": "System.Int32 ClosestPoint(Point3d testPoint)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns index of the closest point in the point cloud to a given test point.",
        "since": "5.0",
        "parameters": [
          {
            "name": "testPoint",
            "type": "Point3d",
            "summary": "."
          }
        ],
        "returns": "Index of point in the point cloud on success. -1 on failure."
      },
      {
        "signature": "Curve[] CreateContourCurves(Point3d startPoint, Point3d endPoint, System.Double interval, System.Double absoluteTolerance, System.Double maxDistance, System.Double minDistance, System.Boolean openCurves, System.Boolean createSpline, System.Boolean createPolyline, System.Double fitTolerance)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Creates a planar curves by intersecting a plane with a point cloud.",
        "since": "8.0",
        "parameters": [
          {
            "name": "startPoint",
            "type": "Point3d",
            "summary": "Start point for vector that is normal to contour plane."
          },
          {
            "name": "endPoint",
            "type": "Point3d",
            "summary": "End point for vector that is normal to contour plane."
          },
          {
            "name": "interval",
            "type": "System.Double",
            "summary": "he interval or distance between contours."
          },
          {
            "name": "absoluteTolerance",
            "type": "System.Double",
            "summary": "The document's model absolute tolerance"
          },
          {
            "name": "maxDistance",
            "type": "System.Double",
            "summary": "Maximum distance to plane. The thickness of the \"slab\" around the plane from which sample points are taken. Those sample points are projected to the section plane and a polyline is found that connects them. This distance depends on the size of the point cloud and the spacing of the points."
          },
          {
            "name": "minDistance",
            "type": "System.Double",
            "summary": "Minimum distance between points. A threshold for the minimum spacing between adjacent sample points. If there are points closer than that, some are not used."
          },
          {
            "name": "openCurves",
            "type": "System.Boolean",
            "summary": "True for open, False for closed."
          },
          {
            "name": "createSpline",
            "type": "System.Boolean",
            "summary": "Creates a smooth curve. You can create both a curve and a polyline."
          },
          {
            "name": "createPolyline",
            "type": "System.Boolean",
            "summary": "Creates a polyline. You can create both a curve and a polyline."
          },
          {
            "name": "fitTolerance",
            "type": "System.Double",
            "summary": "The tolerance used to fit the curve through the polyline."
          }
        ],
        "returns": "The intersection curves if successful, an empty array if unsuccessful."
      },
      {
        "signature": "Curve[] CreateContourCurves(Point3d contourStart, Point3d contourEnd, System.Double interval, System.Double absoluteTolerance)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Creates a planar curves by intersecting a plane with a point cloud.",
        "since": "8.0",
        "parameters": [
          {
            "name": "contourStart",
            "type": "Point3d",
            "summary": "Start point for vector that is normal to contour plane."
          },
          {
            "name": "contourEnd",
            "type": "Point3d",
            "summary": "End point for vector that is normal to contour plane."
          },
          {
            "name": "interval",
            "type": "System.Double",
            "summary": "he interval or distance between contours."
          },
          {
            "name": "absoluteTolerance",
            "type": "System.Double",
            "summary": "The document's model absolute tolerance"
          }
        ],
        "returns": "The intersection curves if successful, an empty array if unsuccessful."
      },
      {
        "signature": "Curve[] CreateSectionCurve(Plane plane, System.Double absoluteTolerance, System.Double maxDistance, System.Double minDistance, System.Boolean openCurves, System.Boolean createSpline, System.Boolean createPolyline, System.Double fitTolerance)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Creates a planar curve by intersecting a plane with a point cloud.",
        "since": "8.0",
        "parameters": [
          {
            "name": "plane",
            "type": "Plane",
            "summary": "The plane to intersect with"
          },
          {
            "name": "absoluteTolerance",
            "type": "System.Double",
            "summary": "The document's model absolute tolerance"
          },
          {
            "name": "maxDistance",
            "type": "System.Double",
            "summary": "Maximum distance to plane. The thickness of the \"slab\" around the plane from which sample points are taken. Those sample points are projected to the section plane and a polyline is found that connects them. This distance depends on the size of the point cloud and the spacing of the points."
          },
          {
            "name": "minDistance",
            "type": "System.Double",
            "summary": "Minimum distance between points. A threshold for the minimum spacing between adjacent sample points. If there are points closer than that, some are not used."
          },
          {
            "name": "openCurves",
            "type": "System.Boolean",
            "summary": "True for open, False for closed."
          },
          {
            "name": "createSpline",
            "type": "System.Boolean",
            "summary": "Creates a smooth curve. You can create both a curve and a polyline."
          },
          {
            "name": "createPolyline",
            "type": "System.Boolean",
            "summary": "Creates a polyline. You can create both a curve and a polyline."
          },
          {
            "name": "fitTolerance",
            "type": "System.Double",
            "summary": "The tolerance used to fit the curve through the polyline."
          }
        ],
        "returns": "The intersection curves if successful, an empty array if unsuccessful."
      },
      {
        "signature": "Curve[] CreateSectionCurve(Plane plane, System.Double absoluteTolerance)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Creates planar curves by intersecting a plane with a point cloud.",
        "since": "8.0",
        "parameters": [
          {
            "name": "plane",
            "type": "Plane",
            "summary": "The plane to intersect with"
          },
          {
            "name": "absoluteTolerance",
            "type": "System.Double",
            "summary": "The document's model absolute tolerance"
          }
        ],
        "returns": "The intersection curves if successful, an empty array if unsuccessful."
      },
      {
        "signature": "System.Boolean ExpertGetValues(System.Int32 index, out Point3d location, out Vector3d normal, out Color color, out System.Double extra, out System.Boolean hidden)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Expert tool to get all values of a point cloud item. This method minimizes the number of pInvoke function calls.",
        "since": "9.0",
        "parameters": [
          {
            "name": "index",
            "type": "System.Int32",
            "summary": "The index of the point cloud item."
          },
          {
            "name": "location",
            "type": "Point3d",
            "summary": "Output location of the point cloud item."
          },
          {
            "name": "normal",
            "type": "Vector3d",
            "summary": "Output normal vector of the point cloud item."
          },
          {
            "name": "color",
            "type": "Color",
            "summary": "Output color of the point cloud item."
          },
          {
            "name": "extra",
            "type": "System.Double",
            "summary": "Extra value of the point cloud item."
          },
          {
            "name": "hidden",
            "type": "System.Boolean",
            "summary": "Output hidden flag of the point cloud item."
          }
        ],
        "returns": "True on success."
      },
      {
        "signature": "Color[] GetColors()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Copy all the point colors in this point cloud to an array.",
        "since": "5.0",
        "returns": "An array containing all the colors in this point cloud."
      },
      {
        "signature": "IEnumerator<PointCloudItem> GetEnumerator()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets an enumerator that allows to modify each point cloud point.",
        "since": "5.0",
        "returns": "A instance of <b>IEnumerator{PointCloudItem}</b> ."
      },
      {
        "signature": "Vector3d[] GetNormals()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Copy all the normal vectors in this point cloud to an array.",
        "since": "5.0",
        "returns": "An array containing all the normals in this point cloud."
      },
      {
        "signature": "Point3d[] GetPoints()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Copy all the point coordinates in this point cloud to an array.",
        "since": "5.0",
        "returns": "An array containing all the points in this point cloud."
      },
      {
        "signature": "System.Double[] GetPointValues()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Copy all the extra point values in this point cloud to an array. Extra values can be used to store a user-defined value, such as intensity.",
        "since": "7.5",
        "returns": "An array containing all the extra point values in this point cloud."
      },
      {
        "signature": "PointCloud GetRandomSubsample(System.UInt32 numberOfPoints, System.Threading.CancellationToken cancelToken, IProgress<double> progress)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns a random subsample of a point cloud.",
        "since": "7.5",
        "parameters": [
          {
            "name": "numberOfPoints",
            "type": "System.UInt32",
            "summary": "The number of points the new point cloud should contain."
          },
          {
            "name": "cancelToken",
            "type": "System.Threading.CancellationToken",
            "summary": "The cancellation token."
          },
          {
            "name": "progress",
            "type": "IProgress<double>",
            "summary": "The provider for progress updates."
          }
        ],
        "returns": "A subsample of this point cloud if success, None otherwise."
      },
      {
        "signature": "PointCloud GetRandomSubsample(System.UInt32 numberOfPoints)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns a random subsample of a point cloud.",
        "since": "7.5",
        "parameters": [
          {
            "name": "numberOfPoints",
            "type": "System.UInt32",
            "summary": "The number of points the new point cloud should contain."
          }
        ],
        "returns": "A subsample of this point cloud if success, None otherwise."
      },
      {
        "signature": "PointCloudUnsafeLock GetUnsafeLock(System.Boolean writable)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Allows the developer to obtain unsafe pointers to the underlying unmanaged data structures of the PointCloud.",
        "since": "7.9",
    "remarks": "The lock implements the IDisposable interface, and one call of its  <b>IDisposable.Dispose()</b> or <b>ReleaseUnsafeLock</b> will update the data structure as required. This can be achieved with a using statement (Using in Vb.Net).",
        "parameters": [
          {
            "name": "writable",
            "type": "System.Boolean",
            "summary": "True if user will need to write onto the structure. False otherwise."
          }
        ],
        "returns": "A lock that needs to be released."
      },
      {
        "signature": "System.Void Insert(System.Int32 index, Point3d point, Color color)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Inserts a new point into the point list.",
        "since": "5.0",
        "parameters": [
          {
            "name": "index",
            "type": "System.Int32",
            "summary": "Insertion index."
          },
          {
            "name": "point",
            "type": "Point3d",
            "summary": "Point to append."
          },
          {
            "name": "color",
            "type": "Color",
            "summary": "Color of new point."
          }
        ]
      },
      {
        "signature": "System.Void Insert(System.Int32 index, Point3d point, Vector3d normal, Color color, System.Double value)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Inserts a new point into the point list.",
        "since": "7.5",
        "parameters": [
          {
            "name": "index",
            "type": "System.Int32",
            "summary": "Insertion index."
          },
          {
            "name": "point",
            "type": "Point3d",
            "summary": "Point to append."
          },
          {
            "name": "normal",
            "type": "Vector3d",
            "summary": "Normal vector of new point."
          },
          {
            "name": "color",
            "type": "Color",
            "summary": "Color of new point."
          },
          {
            "name": "value",
            "type": "System.Double",
            "summary": "An extra value of new point. An extra values can be used to store a user-defined value, such as intensity."
          }
        ]
      },
      {
        "signature": "System.Void Insert(System.Int32 index, Point3d point, Vector3d normal, Color color)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Inserts a new point into the point list.",
        "since": "5.0",
        "parameters": [
          {
            "name": "index",
            "type": "System.Int32",
            "summary": "Insertion index."
          },
          {
            "name": "point",
            "type": "Point3d",
            "summary": "Point to append."
          },
          {
            "name": "normal",
            "type": "Vector3d",
            "summary": "Normal vector of new point."
          },
          {
            "name": "color",
            "type": "Color",
            "summary": "Color of new point."
          }
        ]
      },
      {
        "signature": "System.Void Insert(System.Int32 index, Point3d point, Vector3d normal)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Inserts a new point into the point list.",
        "since": "5.0",
        "parameters": [
          {
            "name": "index",
            "type": "System.Int32",
            "summary": "Insertion index."
          },
          {
            "name": "point",
            "type": "Point3d",
            "summary": "Point to append."
          },
          {
            "name": "normal",
            "type": "Vector3d",
            "summary": "Normal vector of new point."
          }
        ]
      },
      {
        "signature": "System.Void Insert(System.Int32 index, Point3d point)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Inserts a new point into the point list.",
        "since": "5.0",
        "parameters": [
          {
            "name": "index",
            "type": "System.Int32",
            "summary": "Insertion index."
          },
          {
            "name": "point",
            "type": "Point3d",
            "summary": "Point to append."
          }
        ]
      },
      {
        "signature": "PointCloudItem InsertNew(System.Int32 index)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Inserts a new <b>PointCloudItem</b> at a specific position of the point cloud.",
        "since": "5.0",
        "parameters": [
          {
            "name": "index",
            "type": "System.Int32",
            "summary": "Index of new item."
          }
        ],
        "returns": "The newly inserted item."
      },
      {
        "signature": "System.Void InsertRange(System.Int32 index, IEnumerable<Point3d> points)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Append a collection of points to this point cloud.",
        "since": "5.0",
        "parameters": [
          {
            "name": "index",
            "type": "System.Int32",
            "summary": "Index at which to insert the new collection."
          },
          {
            "name": "points",
            "type": "IEnumerable<Point3d>",
            "summary": "Points to append."
          }
        ]
      },
      {
        "signature": "System.Void Merge(PointCloud other)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Merges, or appends, a specified point cloud into this one.",
        "since": "5.0",
        "parameters": [
          {
            "name": "other",
            "type": "PointCloud",
            "summary": "PointCloud to merge with this one."
          }
        ]
      },
      {
        "signature": "Point3d PointAt(System.Int32 index)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns the location of the point at a specific index.",
        "since": "6.0",
        "parameters": [
          {
            "name": "index",
            "type": "System.Int32",
            "summary": "The index."
          }
        ]
      },
      {
        "signature": "System.Void ReleaseUnsafeLock(PointCloudUnsafeLock pointCloudData)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Updates the PointCloud data with the information that was stored via the <b>PointCloudUnsafeLock</b> .",
        "since": "7.9",
        "parameters": [
          {
            "name": "pointCloudData",
            "type": "PointCloudUnsafeLock",
            "summary": "The data that will be unlocked."
          }
        ]
      },
      {
        "signature": "System.Void RemoveAt(System.Int32 index)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Remove the point at the given index.",
        "since": "5.0",
        "parameters": [
          {
            "name": "index",
            "type": "System.Int32",
            "summary": "Index of point to remove."
          }
        ]
      },
      {
        "signature": "System.Int32 RemoveRange(IEnumerable<int> indices)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Removes points at given indices.",
        "since": "7.5",
        "parameters": [
          {
            "name": "indices",
            "type": "IEnumerable<int>",
            "summary": "An array of indices of the points to remove."
          }
        ],
        "returns": "The number of points removed from the point cloud."
      },
      {
        "signature": "Mesh ShrinkWrap(ShrinkWrapParameters parameters)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns a ShrinkWrap mesh from this point cloud object.",
        "since": "8.0"
      },
      {
        "signature": "System.Boolean Split(Plane plane, out PointCloud above, out PointCloud below)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Split a point cloud into two parts using a plane, or returns False if the pointcloud is not partitioned by plane.",
        "since": "9.0",
        "parameters": [
          {
            "name": "plane",
            "type": "Plane",
            "summary": "The splitting plane"
          },
          {
            "name": "above",
            "type": "PointCloud",
            "summary": "The part of the point cloud that is above the plane"
          },
          {
            "name": "below",
            "type": "PointCloud",
            "summary": "The part of the point cloud that is below the plane"
          }
        ],
        "returns": "True on success, False if the plane does not partition the cloud, or on error."
      }
    ]
  },
  {
    "namespace": "Rhino.Geometry",
    "name": "PointCloudItem",
    "dataType": "class",
    "summary": "Represents a single item in a point cloud. A PointCloud item always has a location, but it has an optional normal vector and color.",
    "properties": [
      {
        "signature": "Color Color",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the color of this point cloud item. If this point cloud item does not have a color, System.Drawing.Color.Black is returned.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool Hidden",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the hidden flag of this point cloud item. If this point cloud item does not have a hidden flag, False is returned.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "int Index",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the index of this point cloud item.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "Point3d Location",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the location of this point cloud item.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "Vector3d Normal",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the normal vector for this point cloud item. If this point cloud item does not have a normal vector, Vector3d.Unset is returned.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "double PointValue",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or set the extra value of this point cloud item. The extra value can be used to store a user-defined value, such as intensity. If this point cloud item does not have an extra value, RhinoMath.UnsetValue is returned.",
        "since": "7.5",
        "property": ["get", "set"]
      },
      {
        "signature": "double X",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the X component of this point cloud item location.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "double Y",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the Y component of this point cloud item location.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "double Z",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the Z component of this point cloud item location.",
        "since": "5.0",
        "property": ["get", "set"]
      }
    ]
  },
  {
    "namespace": "Rhino.Geometry",
    "name": "PointCloudUnsafeLock",
    "dataType": "class",
    "summary": "Permits access to the underlying PointCloud raw data structures in an unsafe way.",
    "remarks": "This lock object needs to be disposed before using the PointCloud in other calculations and this can be achieved with the using keyword (Using in VB.Net).",
    "interfaces": ["IDisposable"],
    "methods": [
      {
        "signature": "int* ColorArray(out System.Int32 length)",
        "modifiers": ["public", "unsafe"],
        "protected": false,
        "virtual": false,
        "summary": "Retrieves a pointer to the raw array of colors, which are represented as 32-bit integers in ARGB format, or None if none is available.",
        "since": "7.9",
        "parameters": [
          {
            "name": "length",
            "type": "System.Int32",
            "summary": "The length of the array. This value is returned by reference (out in C#). 0 is returned when there is no single precision array."
          }
        ],
        "returns": "The beginning of the color array. Item 0 is the first vertex, and item length-1 is the last valid one. If no array is available, None is returned."
      },
      {
        "signature": "Vector3d* NormalArray(out System.Int32 length)",
        "modifiers": ["public", "unsafe"],
        "protected": false,
        "virtual": false,
        "summary": "Retrieves a pointer to the raw array of point normals, or None if none is available.",
        "since": "7.9",
        "parameters": [
          {
            "name": "length",
            "type": "System.Int32",
            "summary": "The length of the array. This value is returned by reference (out in C#). 0 is returned when there is no single precision array."
          }
        ],
        "returns": "The beginning of the vector array. Item 0 is the first vertex, and item length-1 is the last valid one. If no array is available, None is returned."
      },
      {
        "signature": "Point3d* PointArray(out System.Int32 length)",
        "modifiers": ["public", "unsafe"],
        "protected": false,
        "virtual": false,
        "summary": "Retrieves a pointer to the raw point array, which uses coordinates defined with double precision floating point numbers, or None if none is available.",
        "since": "7.9",
        "parameters": [
          {
            "name": "length",
            "type": "System.Int32",
            "summary": "The length of the array. This value is returned by reference (out in C#). 0 is returned when there is no single precision array."
          }
        ],
        "returns": "The beginning of the point array. Item 0 is the first vertex, and item length-1 is the last valid one. If no array is available, None is returned."
      },
      {
        "signature": "System.Void Release()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Releases the lock and updates the underlying unmanaged data structures.",
        "since": "6.0"
      },
      {
        "signature": "double* ValueArray(out System.Int32 length)",
        "modifiers": ["public", "unsafe"],
        "protected": false,
        "virtual": false,
        "summary": "Retrieves a pointer to the raw array of point values, or None if none is available.",
        "since": "7.9",
        "parameters": [
          {
            "name": "length",
            "type": "System.Int32",
            "summary": "The length of the array. This value is returned by reference (out in C#). 0 is returned when there is no single precision array."
          }
        ],
        "returns": "The beginning of the value array. Item 0 is the first vertex, and item length-1 is the last valid one. If no array is available, None is returned."
      }
    ]
  },
  {
    "namespace": "Rhino.Geometry",
    "name": "PointContainment",
    "dataType": "enum",
    "summary": "Defines enumerated values for closed curve/point spatial relationships.",
    "since": "5.0",
    "values": [
      {
        "signature": "Unset",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Relation is meaningless."
      },
      {
        "signature": "Inside",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Point is on the interior of the region implied by the closed curve."
      },
      {
        "signature": "Outside",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Point is on the exterior of the region implied by the closed curve."
      },
      {
        "signature": "Coincident",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Point is coincident with the curve and therefore neither inside not outside."
      }
    ]

  },
  {
    "namespace": "Rhino.Geometry",
    "name": "PointFaceRelation",
    "dataType": "enum",
    "summary": "Enumerates the possible point/BrepFace spatial relationships.",
    "since": "5.0",
    "values": [
      {
        "signature": "Exterior = 0",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Point is on the exterior (the trimmed part) of the face."
      },
      {
        "signature": "Interior = 1",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Point is on the interior (the existing part) of the face."
      },
      {
        "signature": "Boundary = 2",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Point is in limbo."
      }
    ]

  },
  {
    "namespace": "Rhino.Geometry",
    "name": "PolyCurve",
    "dataType": "class",
    "summary": "Represents a curve that is the result of joining several (possibly different) types of curves.",
    "baseclass": "Rhino.Geometry.Curve",
    "constructors": [
      {
        "signature": "PolyCurve()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Initializes a new, empty polycurve.",
        "since": "5.0"
      },
      {
        "signature": "PolyCurve(SerializationInfo info, StreamingContext context)",
        "modifiers": ["protected"],
        "protected": true,
        "virtual": false,
        "summary": "Protected constructor for internal use.",
        "parameters": [
          {
            "name": "info",
            "type": "System.Runtime.Serialization.SerializationInfo",
            "summary": "Serialization data."
          },
          {
            "name": "context",
            "type": "System.Runtime.Serialization.StreamingContext",
            "summary": "Serialization stream."
          }
        ]
      }
    ],
    "properties": [
      {
        "signature": "bool HasGap",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "This is a quick way to see if the curve has gaps between the sub curve segments.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "bool IsNested",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets a value indicating whether or not a PolyCurve contains nested PolyCurves.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "int SegmentCount",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the number of segments that make up this Polycurve.",
        "since": "5.0",
        "property": ["get"]
      }
    ],
    "methods": [
      {
        "signature": "System.Boolean Append(Arc arc)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Appends and matches the start of the arc to the end of polycurve. This function will fail if the polycurve is closed or if SegmentCount > 0 and the arc is closed.",
        "since": "5.0",
        "parameters": [
          {
            "name": "arc",
            "type": "Arc",
            "summary": "Arc segment to append."
          }
        ],
        "returns": "True on success, False on failure."
      },
      {
        "signature": "System.Boolean Append(Curve curve)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Appends and matches the start of the curve to the end of polycurve. This function will fail if the PolyCurve is closed or if SegmentCount > 0 and the new segment is closed.",
        "since": "5.0",
        "parameters": [
          {
            "name": "curve",
            "type": "Curve",
            "summary": "Segment to append."
          }
        ],
        "returns": "True on success, False on failure."
      },
      {
        "signature": "System.Boolean Append(Line line)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Appends and matches the start of the line to the end of polycurve. This function will fail if the polycurve is closed.",
        "since": "5.0",
        "parameters": [
          {
            "name": "line",
            "type": "Line",
            "summary": "Line segment to append."
          }
        ],
        "returns": "True on success, False on failure."
      },
      {
        "signature": "System.Boolean AppendSegment(Curve curve)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Appends the curve to the polycurve without changing the new segment's geometry. This function will fail if the PolyCurve is closed or if SegmentCount > 0 and the new segment is closed.",
        "since": "6.0",
        "parameters": [
          {
            "name": "curve",
            "type": "Curve",
            "summary": "Segment to append."
          }
        ],
        "returns": "True on success, False on failure."
      },
      {
        "signature": "Curve CleanUp()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Removes any nesting of polycurves. If this polycurve has just a single segment, the segment is returned. If, after nest removal, there are adjacent segments which are polylines, they are combined into a single polyline. The new curve may have a different domain from this polycurve. If the start and end segments of a closed input are polylines, the result may have a different seam location since the start and end segments will be combined.",
        "since": "7.0",
        "returns": "A new curve that is not necessarily a polycurve if successful, None otherwise."
      },
      {
        "signature": "GeometryBase Duplicate()",
        "modifiers": ["public", "override"],
        "protected": false,
        "virtual": false,
        "summary": "Duplicates this polycurve.  \nWhen not overridden in a derived class, this calls .",
        "since": "5.0",
        "returns": "An exact duplicate of this curve."
      },
      {
        "signature": "PolyCurve DuplicatePolyCurve()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Duplicates this polycurve.  \nThis is the same as .",
        "since": "5.0",
        "returns": "An exact duplicate of this curve."
      },
      {
        "signature": "Curve[] Explode()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Explodes this PolyCurve into a list of Curve segments. This willnot explodenested polycurves. Call <b>RemoveNesting</b> first if you need all individual segments.",
        "since": "5.0",
        "returns": "An array of polycurve segments."
      },
      {
        "signature": "System.Double PolyCurveParameter(System.Int32 segmentIndex, System.Double segmentCurveParameter)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Converts a segment curve parameter to a polycurve parameter.",
        "since": "5.0",
        "parameters": [
          {
            "name": "segmentIndex",
            "type": "System.Int32",
            "summary": "Index of segment."
          },
          {
            "name": "segmentCurveParameter",
            "type": "System.Double",
            "summary": "Parameter on segment."
          }
        ],
        "returns": "Polycurve evaluation parameter or UnsetValue if the polycurve curve parameter could not be computed."
      },
      {
        "signature": "System.Boolean RemoveNesting()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Explodes nested polycurve segments and reconstructs this curve from the shattered remains. The result will have not have any PolyCurves as segments but it will have identical locus and parameterization.",
        "since": "5.0",
        "returns": "True if any nested PolyCurve was found and absorbed, False if no PolyCurve segments could be found."
      },
      {
        "signature": "Curve SegmentCurve(System.Int32 index)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the segment curve at the given index.",
        "since": "5.0",
        "parameters": [
          {
            "name": "index",
            "type": "System.Int32",
            "summary": "Index of segment to retrieve."
          }
        ],
        "returns": "The segment at the given index or None on failure."
      },
      {
        "signature": "System.Double SegmentCurveParameter(System.Double polycurveParameter)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Converts a polycurve parameter to a segment curve parameter.",
        "since": "5.0",
        "parameters": [
          {
            "name": "polycurveParameter",
            "type": "System.Double",
            "summary": "Parameter on PolyCurve to convert."
          }
        ],
        "returns": "Segment curve evaluation parameter or UnsetValue if the segment curve parameter could not be computed."
      },
      {
        "signature": "Interval SegmentDomain(System.Int32 segmentIndex)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns the polycurve sub-domain assigned to a segment curve.",
        "since": "5.0",
        "parameters": [
          {
            "name": "segmentIndex",
            "type": "System.Int32",
            "summary": "Index of segment."
          }
        ],
        "returns": "The polycurve sub-domain assigned to a segment curve. Returns Interval.Unset if segment_index < 0 or segment_index >= Count()."
      },
      {
        "signature": "System.Int32 SegmentIndex(System.Double polycurveParameter)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Finds the segment used for evaluation at polycurve_parameter.",
        "since": "5.0",
        "parameters": [
          {
            "name": "polycurveParameter",
            "type": "System.Double",
            "summary": "Parameter on polycurve for segment lookup."
          }
        ],
        "returns": "Index of the segment used for evaluation at polycurve_parameter. If polycurve_parameter < Domain.Min(), then 0 is returned. If polycurve_parameter > Domain.Max(), then Count()-1 is returned."
      },
      {
        "signature": "System.Int32 SegmentIndexes(Interval subdomain, out System.Int32 segmentIndex0, out System.Int32 segmentIndex1)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Finds the segments that overlap the Polycurve sub domain.",
        "since": "5.0",
        "parameters": [
          {
            "name": "subdomain",
            "type": "Interval",
            "summary": "Domain on this PolyCurve."
          },
          {
            "name": "segmentIndex0",
            "type": "System.Int32",
            "summary": "Index of first segment that overlaps the sub-domain."
          },
          {
            "name": "segmentIndex1",
            "type": "System.Int32",
            "summary": "Index of last segment that overlaps the sub-domain. Note that segmentIndex0 <= i < segmentIndex1."
          }
        ],
        "returns": "Number of segments that overlap the sub-domain."
      }
    ]
  },
  {
    "namespace": "Rhino.Geometry",
    "name": "Polyline",
    "dataType": "class",
    "summary": "Represents an ordered set of points connected by linear segments.  \nPolylines are closed if start and end points coincide.",
    "baseclass": "Rhino.Collections.Point3dList",
    "interfaces": ["ICloneable"],
    "constructors": [
      {
        "signature": "Polyline()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Initializes a new empty polyline.",
        "since": "5.0"
      },
      {
        "signature": "Polyline(IEnumerable<Point3d> collection)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Initializes a new polyline from a collection of points.",
        "since": "5.0",
        "parameters": [
          {
            "name": "collection",
            "type": "IEnumerable<Point3d>",
            "summary": "Points to copy into the local vertex array."
          }
        ]
      },
      {
        "signature": "Polyline(int initialCapacity)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Initializes a new empty polyline with an initial capacity.",
        "since": "5.0",
        "parameters": [
          {
            "name": "initialCapacity",
            "type": "System.Int32",
            "summary": "Number of vertices this polyline can contain without resizing."
          }
        ]
      }
    ],
    "properties": [
      {
        "signature": "bool IsClosed",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Test a polyline to see if it is closed.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "bool IsValid",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets a value that indicates whether this polyline is valid.  \nValid polylines have at least one segment, no Invalid points and no zero length segments.  \nClosed polylines with only two segments are also not considered valid.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "double Length",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the total length of the polyline.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "int SegmentCount",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the number of segments for this polyline.",
        "since": "5.0",
        "property": ["get"]
      }
    ],
    "methods": [
      {
        "signature": "Polyline[] CreateByJoiningLines(IEnumerable<Line> lines, System.Double tolerance, System.Boolean splitAtIntersections)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Creates polylines by joining lines.",
        "since": "8.0",
        "parameters": [
          {
            "name": "lines",
            "type": "IEnumerable<Line>",
            "summary": "An array, a list or any enumerable of lines."
          },
          {
            "name": "tolerance",
            "type": "System.Double",
            "summary": "The threshold distance for joining lines."
          },
          {
            "name": "splitAtIntersections",
            "type": "System.Boolean",
            "summary": "If true, splits lines at intersections."
          }
        ]
      },
      {
        "signature": "Polyline CreateCircumscribedPolygon(Circle circle, System.Int32 sideCount)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Create a regular polygon circumscribe about a circle. The midpoints of the polygon's edges will be tangent to the circle.",
        "since": "6.10",
        "parameters": [
          {
            "name": "circle",
            "type": "Circle",
            "summary": "The circle."
          },
          {
            "name": "sideCount",
            "type": "System.Int32",
            "summary": "The number of sides"
          }
        ],
        "returns": "A closed polyline if successful, None otherwise."
      },
      {
        "signature": "Polyline CreateInscribedPolygon(Circle circle, System.Int32 sideCount)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Create a regular polygon inscribed in a circle. The vertices of the polygon will be on the circle.",
        "since": "6.10",
        "parameters": [
          {
            "name": "circle",
            "type": "Circle",
            "summary": "The circle."
          },
          {
            "name": "sideCount",
            "type": "System.Int32",
            "summary": "The number of sides"
          }
        ],
        "returns": "A closed polyline if successful, None otherwise."
      },
      {
        "signature": "Polyline CreateStarPolygon(Circle circle, System.Double radius, System.Int32 cornerCount)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Create a regular star polygon. The star begins at circle.PointAt(0) and the vertices alternate between being on circle and begin on a concentric circle of other_radius.",
        "since": "6.10",
        "parameters": [
          {
            "name": "circle",
            "type": "Circle",
            "summary": "The circle."
          },
          {
            "name": "radius",
            "type": "System.Double",
            "summary": "The radius of other circle."
          },
          {
            "name": "cornerCount",
            "type": "System.Int32",
            "summary": "The number of corners on the circle. There will be 2*cornerCount sides and 2*cornerCount vertices."
          }
        ],
        "returns": "A closed polyline if successful, None otherwise."
      },
      {
        "signature": "Polyline[] BreakAtAngles(System.Double angle)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Breaks this polyline into sections at sharp kinks. Closed polylines will also be broken at the first and last vertex.",
        "since": "5.0",
        "parameters": [
          {
            "name": "angle",
            "type": "System.Double",
            "summary": "Angle (in radians) between adjacent segments for a break to occur."
          }
        ],
        "returns": "An array of polyline segments, or None on error."
      },
      {
        "signature": "Point3d CenterPoint()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Compute the center point of the polyline as the weighted average of all segments.",
        "since": "5.0",
        "returns": "The weighted average of all segments."
      },
      {
        "signature": "System.Double ClosestParameter(Point3d testPoint)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the parameter along the polyline which is closest to a test-point.",
        "since": "5.0",
        "parameters": [
          {
            "name": "testPoint",
            "type": "Point3d",
            "summary": "Point to approximate."
          }
        ],
        "returns": "The parameter along the polyline closest to testPoint."
      },
      {
        "signature": "Point3d ClosestPoint(Point3d testPoint)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the point on the polyline which is closest to a test-point.",
        "since": "5.0",
        "parameters": [
          {
            "name": "testPoint",
            "type": "Point3d",
            "summary": "Point to approximate."
          }
        ],
        "returns": "The point on the polyline closest to testPoint."
      },
      {
        "signature": "System.Int32 CollapseShortSegments(System.Double tolerance)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Collapses all segments until none are shorter than tolerance. This function is significantly slower than DeleteShortSegments, since it recursively operates on the shortest segment. When a segment is collapsed the end-points are placed in the center of the segment.",
        "since": "5.0",
        "parameters": [
          {
            "name": "tolerance",
            "type": "System.Double",
            "summary": "Tolerance to use during collapsing."
          }
        ],
        "returns": "The number of segments that were collapsed."
      },
      {
        "signature": "System.Int32 DeleteShortSegments(System.Double tolerance)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Removes all points that are closer than tolerance to the previous point.  \nStart and end points are left intact.",
        "since": "5.0",
        "parameters": [
          {
            "name": "tolerance",
            "type": "System.Double",
            "summary": "Vertices closer together than tolerance will be removed."
          }
        ],
        "returns": "Number of points (and segments) removed."
      },
      {
        "signature": "Polyline Duplicate()",
        "modifiers": ["public", "new"],
        "protected": false,
        "virtual": false,
        "summary": "Returns a deep copy of this polyline instance.",
        "since": "6.0",
        "returns": "The duplicated polyline."
      },
      {
        "signature": "Line[] GetSegments()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Constructs an array of line segments that make up the entire polyline.",
        "since": "5.0",
        "returns": "An array of line segments or None if the polyline contains fewer than 2 points."
      },
      {
        "signature": "System.Boolean IsClosedWithinTolerance(System.Double tolerance)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Test a polyline to see if it is closed.",
        "since": "5.0",
        "parameters": [
          {
            "name": "tolerance",
            "type": "System.Double",
            "summary": "The tolerance."
          }
        ],
        "returns": "Returns True if polyline has 4 or more points, the distance between the start and end points is <= tolerance, and there is a point in the polyline whose distance from the start and end points is > tolerance."
      },
      {
        "signature": "System.Boolean IsConvexLoop(System.Boolean strictlyConvex)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Determines if a polyline is convex.",
        "since": "8.28",
        "parameters": [
          {
            "name": "strictlyConvex",
            "type": "System.Boolean",
            "summary": "If false, collinear segments are considered convex."
          }
        ],
        "returns": "True if the polyline is a closed, convex loop."
      },
      {
        "signature": "System.Int32 MergeColinearSegments(System.Double angleTolerance, System.Boolean includeSeam)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Merge co-linear consecutive segments in a polyline. This method will automatically remove any zero-length segments as well.",
        "since": "6.3",
        "parameters": [
          {
            "name": "angleTolerance",
            "type": "System.Double",
            "summary": "The angle tolerance between adjacent segments for collinearity test."
          },
          {
            "name": "includeSeam",
            "type": "System.Boolean",
            "summary": "If true, the seam point of a closed polyline will be moved forwards if it is collinear too."
          }
        ],
        "returns": "Number of segments removed from the entire polyline."
      },
      {
        "signature": "Point3d PointAt(System.Double t)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the point on the polyline at the given parameter. The integer part of the parameter indicates the index of the segment.",
        "since": "5.0",
        "parameters": [
          {
            "name": "t",
            "type": "System.Double",
            "summary": "Polyline parameter."
          }
        ],
        "returns": "The point on the polyline at t."
      },
      {
        "signature": "System.Int32 ReduceSegments(System.Double tolerance)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Constructs a reduction of this polyline by recursively removing the least significant segments.",
        "since": "5.0",
        "parameters": [
          {
            "name": "tolerance",
            "type": "System.Double",
            "summary": "Tolerance for reduction. Whenever a vertex of the polyline is more significant than tolerance, it will be included in the reduction."
          }
        ],
        "returns": "The number of vertices that disappeared due to reduction."
      },
      {
        "signature": "System.Void RemoveNearlyEqualSubsequentPoints(System.Double tolerance)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Removes one copy of a point that is equal to the previous or later point, by an absolute tolerance factor.",
        "since": "7.1"
      },
      {
        "signature": "Line SegmentAt(System.Int32 index)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the line segment at the given index.",
        "since": "5.0",
        "parameters": [
          {
            "name": "index",
            "type": "System.Int32",
            "summary": "Index of segment to retrieve."
          }
        ],
        "returns": "Line segment at index or Line.Unset on failure."
      },
      {
        "signature": "System.Boolean Smooth(System.Double amount)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Smoothen the polyline segments by averaging adjacent vertices. Smoothing requires a polyline with exclusively valid vertices.",
        "since": "5.0",
        "parameters": [
          {
            "name": "amount",
            "type": "System.Double",
            "summary": "Amount to smooth. Zero equals no smoothing, one equals complete smoothing."
          }
        ],
        "returns": "True on success, False on failure."
      },
      {
        "signature": "Vector3d TangentAt(System.Double t)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the unit tangent vector along the polyline at the given parameter. The integer part of the parameter indicates the index of the segment.",
        "since": "5.0",
        "parameters": [
          {
            "name": "t",
            "type": "System.Double",
            "summary": "Polyline parameter."
          }
        ],
        "returns": "The tangent along the polyline at t."
      },
      {
        "signature": "NurbsCurve ToNurbsCurve()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Constructs a nurbs curve representation of this polyline.",
        "since": "5.0",
        "returns": "A Nurbs curve shaped like this polyline or None on failure."
      },
      {
        "signature": "PolylineCurve ToPolylineCurve()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Constructs a polyline curve representation of this polyline.",
        "since": "6.0",
        "returns": "A curve shaped like this polyline or None on failure."
      },
      {
        "signature": "MeshFace[] TriangulateClosedPolyline()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Attempts to create a list of triangles which represent a triangulation of a closed polyline",
        "since": "5.0"
      },
      {
        "signature": "Polyline Trim(Interval domain)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Constructs a polyline out of a parameter sub-domain in this curve.",
        "since": "5.0",
        "parameters": [
          {
            "name": "domain",
            "type": "Interval",
            "summary": "The sub-domain of the polyline. The integer part of the domain parameters indicate the index of the segment."
          }
        ],
        "returns": "The polyline as defined by the sub-domain, or None on failure."
      }
    ]
  },
  {
    "namespace": "Rhino.Geometry",
    "name": "PolylineCurve",
    "dataType": "class",
    "summary": "Represents the geometry of a set of linked line segments.  \nThis is fundamentally a class that derives from    and internally contains a .",
    "baseclass": "Rhino.Geometry.Curve",
    "constructors": [
      {
        "signature": "PolylineCurve()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Initializes a new empty polyline curve.",
        "since": "5.0"
      },
      {
        "signature": "PolylineCurve(IEnumerable<Point3d> points)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Initializes a new polyline curve by copying its content from another set of points.",
        "since": "5.0",
        "parameters": [
          {
            "name": "points",
            "type": "System.Collections.Generic.IEnumerable<Point3d>",
            "summary": "A list, an array or any enumerable set of points to copy from. This includes a <b>Polyline</b> object."
          }
        ]
      },
      {
        "signature": "PolylineCurve(PolylineCurve other)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Initializes a new polyline curve by copying its content from another polyline curve.",
        "since": "5.0",
        "parameters": [
          {
            "name": "other",
            "type": "PolylineCurve",
            "summary": "Another polyline curve."
          }
        ]
      },
      {
        "signature": "PolylineCurve(SerializationInfo info, StreamingContext context)",
        "modifiers": ["protected"],
        "protected": true,
        "virtual": false,
        "summary": "Protected constructor for internal use.",
        "parameters": [
          {
            "name": "info",
            "type": "System.Runtime.Serialization.SerializationInfo",
            "summary": "Serialization data."
          },
          {
            "name": "context",
            "type": "System.Runtime.Serialization.StreamingContext",
            "summary": "Serialization stream."
          }
        ]
      }
    ],
    "properties": [
      {
        "signature": "int PointCount",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the number of points in this polyline.",
        "since": "5.0",
        "property": ["get"]
      }
    ],
    "methods": [
      {
        "signature": "PolylineCurve CreateConvexHull2d(Point2d[] points, out System.Int32[] hullIndices)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Attempts to create a closed PolylineCurve that is the anti-clockwise planar convex hull of the input points. In addition, the indices of the extremal points among the input points are returned in correct order. Possible duplicates among the input points are taken care of. The input pointsThe indices into the input points such that points[hullIndices[i]] = result[i]. Since the result is a closed polyline if successful, the start/end index is repeated at the beginning and end of the hullIndices.  The closed PolylineCurve encompassing the input points, or None if the input points were either too few, or were found to be collinear.",
        "since": "8.6",
        "parameters": [
          {
            "name": "points",
            "type": "Point2d[]",
            "summary": "The input points"
          },
          {
            "name": "hullIndices",
            "type": "System.Int32[]",
            "summary": "The indices into the input points such that points[hullIndices[i]] = result[i]. Since the result is a closed polyline if successful, the start/end index is repeated at the beginning and end of the hullIndices."
          }
        ],
        "returns": "The closed PolylineCurve encompassing the input points, or None if the input points were either too few, or were found to be collinear."
      },
      {
        "signature": "System.Double Parameter(System.Int32 index)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets a parameter at a specified index in the polyline curve.",
        "since": "6.0",
        "parameters": [
          {
            "name": "index",
            "type": "System.Int32",
            "summary": "An index."
          }
        ],
        "returns": "A parameter."
      },
      {
        "signature": "Point3d Point(System.Int32 index)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets a point at a specified index in the polyline curve.",
        "since": "5.0",
        "parameters": [
          {
            "name": "index",
            "type": "System.Int32",
            "summary": "An index."
          }
        ],
        "returns": "A point."
      },
      {
        "signature": "System.Void SetArcLengthParameterization(System.Double tolerance)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Sets the polyline curve to use arc length parameterization for higher quality geometry.",
        "since": "8.0",
        "parameters": [
          {
            "name": "tolerance",
            "type": "System.Double",
            "summary": "Minimum distance tolerance."
          }
        ]
      },
      {
        "signature": "System.Void SetParameter(System.Int32 index, System.Double parameter)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Sets a parameter at a specified index in the polyline curve.",
        "since": "6.0",
        "parameters": [
          {
            "name": "index",
            "type": "System.Int32",
            "summary": "An index."
          },
          {
            "name": "parameter",
            "type": "System.Double",
            "summary": "A parameter to set."
          }
        ]
      },
      {
        "signature": "System.Void SetPoint(System.Int32 index, Point3d point)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Sets a point at a specified index in the polyline curve.",
        "since": "5.0",
        "parameters": [
          {
            "name": "index",
            "type": "System.Int32",
            "summary": "An index."
          },
          {
            "name": "point",
            "type": "Point3d",
            "summary": "A point location to set."
          }
        ]
      },
      {
        "signature": "Point3d[] ToArray()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns the underlying Polyline points as an array.",
        "since": "8.9",
        "returns": "An array of 3d points."
      },
      {
        "signature": "Polyline ToPolyline()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns the underlying Polyline, or points.",
        "since": "6.0",
        "returns": "The Polyline if successful, None of the curve has no points."
      }
    ]
  },
  {
    "namespace": "Rhino.Geometry",
    "name": "PreserveEnd",
    "dataType": "enum",
    "summary": "Preserves, or maintains, the shape of the opposite the one being edited.",
    "since": "7.6",
    "values": [
      {
        "signature": "None = 0",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "No constraint."
      },
      {
        "signature": "Position = 1",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Location only."
      },
      {
        "signature": "Tangency = 2",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Position and curve direction."
      },
      {
        "signature": "Curvature = 3",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Position, direction, and radius of curvature."
      }
    ]

  },
  {
    "namespace": "Rhino.Geometry",
    "name": "PreserveIsoCurveMethod",
    "dataType": "enum",
    "summary": "The way the surface iso-lines align with the target",
    "since": "8.21",
    "values": [
      {
        "signature": "Automatic = 0",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "If the trim is on an iso direction use <b>MatchTarget</b> , else use <b>Perpendicular</b>"
      },
      {
        "signature": "MatchTarget = 1",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "The surface tangent will be parallel to the surface derivative in U- or V-direction"
      },
      {
        "signature": "Perpendicular = 2",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "The surface tangent will be perpendicular to the target edge"
      },
      {
        "signature": "Preserve = 3",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "The surface tangent will not change"
      }
    ]

  },
  {
    "namespace": "Rhino.Geometry",
    "name": "QuadRemeshParameters",
    "dataType": "class",
    "summary": "Parameters for QuadRemesh method",
    "constructors": [
      {
        "signature": "QuadRemeshParameters()",
        "summary": "Initializes a new instance of the QuadRemeshParameters class"
      }
    ],
    "properties": [
      {
        "signature": "bool AdaptiveQuadCount",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Respect the original Target Quad Count value as much as possible. True returns more quads than TargetQuadCount depending on amount of high-curvature areas. Note: this value is ignored when TargetEdgeLength > 0",
        "since": "7.0",
        "property": ["get", "set"]
      },
      {
        "signature": "double AdaptiveSize",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Larger values results in for quad sizes that adjust to match input curvature. Smaller values results in more uniform quad sizes at the risk of less feature preservation. Range [0 - 100] Note: this value is ignored when TargetEdgeLength > 0",
        "since": "7.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool DetectHardEdges",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "When enabled the hard edges in models will be retained.",
        "since": "7.0",
        "property": ["get", "set"]
      },
      {
        "signature": "int GuideCurveInfluence",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "0 = Approximate 1 = Interpolate Edge Ring 2 = Interpolate Edge Loop This value is ignored if Guide Curves are not supplied",
        "since": "7.0",
        "property": ["get", "set"]
      },
      {
        "signature": "int PreserveMeshArrayEdgesMode",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "0=off, 1=On(Smart), 2=On(Strict) : Mesh array's created from Breps will have their brep face edge boundaries retained. Smart - Small or insignificant input faces are ignored. Strict - All input faces are factored in re-meshed result.",
        "since": "7.0",
        "property": ["get", "set"]
      },
      {
        "signature": "QuadRemeshSymmetryAxis SymmetryAxis",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Symmetry axis to use for symmetric re-meshing",
        "since": "7.0",
        "property": ["get", "set"]
      },
      {
        "signature": "double TargetEdgeLength",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "When TargetEdgeLength is greater than 0 TargetQuadCount will be re-computed with the target goal of an approximated edge length based on the area of the input mesh e.g TargetQuadCount = Input mesh Area * sqr(TargetEdgeLength) AdaptiveSize as well as AdaptiveQuadCount will also be ignored;",
        "since": "7.8",
        "property": ["get", "set"]
      },
      {
        "signature": "int TargetQuadCount",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "The number of quads to try to achieve in the final re-meshed object Note: This value is overridden if TargetEdgeLength > 0",
        "since": "7.0",
        "property": ["get", "set"]
      }
    ]
  },
  {
    "namespace": "Rhino.Geometry",
    "name": "QuadRemeshSymmetryAxis",
    "dataType": "enum",
    "summary": "Symmetrical meshing axis",
    "since": "7.0",
    "values": [
      {
        "signature": "None = 0",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "No symmetric re-meshing"
      },
      {
        "signature": "X = 1",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Symmetry across X axis"
      },
      {
        "signature": "Y = 2",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Symmetry across Y axis"
      },
      {
        "signature": "Z = 4",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Symmetry across Z axis"
      }
    ]

  },
  {
    "namespace": "Rhino.Geometry",
    "name": "Quaternion",
    "dataType": "struct",
    "summary": "Represents the four coefficient values in a quaternion.  \nThe first value a is the real part,   while the rest multiplies i, j and k, that are imaginary.  \nquaternion = a + bi + cj + dk",
    "constructors": [
      {
        "signature": "Quaternion(double a, double b, double c, double d)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Initializes a new quaternion with the provided coefficients.",
        "since": "5.0",
        "parameters": [
          {
            "name": "a",
            "type": "System.Double",
            "summary": "A number. This is the real part."
          },
          {
            "name": "b",
            "type": "System.Double",
            "summary": "Another number. This is the first coefficient of the imaginary part."
          },
          {
            "name": "c",
            "type": "System.Double",
            "summary": "Another number. This is the second coefficient of the imaginary part."
          },
          {
            "name": "d",
            "type": "System.Double",
            "summary": "Another number. This is the third coefficient of the imaginary part."
          }
        ]
      }
    ],
    "properties": [
      {
        "signature": "Quaternion I",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Returns the (0,1,0,0) quaternion.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "Quaternion Identity",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Returns the (1,0,0,0) quaternion.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "Quaternion J",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Returns the (0,0,1,0) quaternion.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "Quaternion K",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Returns the (0,0,0,1) quaternion.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "Quaternion Zero",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Returns the default quaternion, where all coefficients are 0.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "double A",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the real part of the quaternion.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "double B",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the first imaginary coefficient of the quaternion.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "double C",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the second imaginary coefficient of the quaternion.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "Quaternion Conjugate",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets a new quaternion that is the conjugate of this quaternion.  \nThis is (a,-b,-c,-d)",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "double D",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the third imaginary coefficient of the quaternion.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "Quaternion Inverse",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Computes a new inverted quaternion,  \n(a/L2, -b/L2, -c/L2, -d/L2),  \nwhere L2 = length squared = (a*a + b*b + c*c + d*d). This is the multiplicative inverse, i.e., (a,b,c,d)*(a/L2, -b/L2, -c/L2, -d/L2) = (1,0,0,0). If this is the zero quaternion, then the zero quaternion is returned.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "bool IsScalar",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "True if b, c, and d are all zero.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "bool IsValid",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Determines if the four coefficients are valid numbers within RhinoCommon.  \nSee .",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "bool IsVector",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "True if a = 0 and at least one of b, c, or d is not zero.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "bool IsZero",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "True if a, b, c, and d are all zero.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "double Length",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns the length or norm of the quaternion.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "double LengthSquared",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the result of (a^2 + b^2 + c^2 + d^2).",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "double Scalar",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "The real (scalar) part of the quaternion  \nThis is .",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "Vector3d Vector",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "The imaginary part of the quaternion  \n(B,C,D)",
        "since": "5.0",
        "property": ["get"]
      }
    ],
    "methods": [
      {
        "signature": "Quaternion CreateFromRotationZYX(System.Double yaw, System.Double pitch, System.Double roll)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Constructs a quaternion defined by Tait-Byran angles, also loosely known as Euler angles.",
        "since": "8.0",
    "remarks": "CreateFromRotationZYX(yaw, pitch, roll) = R_z(yaw) * R_y(pitch) * R_x(roll), where R_*(angle) is rotation of angle radians about the corresponding world coordinate axis.",
        "parameters": [
          {
            "name": "yaw",
            "type": "System.Double",
            "summary": "Angle, in radians, to rotate about the ZAxis."
          },
          {
            "name": "pitch",
            "type": "System.Double",
            "summary": "Angle, in radians, to rotate about the YAxis."
          },
          {
            "name": "roll",
            "type": "System.Double",
            "summary": "Angle, in radians, to rotate about the XAxis."
          }
        ],
        "returns": "The quaternion."
      },
      {
        "signature": "Quaternion CreateFromRotationZYZ(System.Double alpha, System.Double beta, System.Double gamma)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Constructs a quaternion defined by Euler angles.",
        "since": "8.0",
    "remarks": "CreateFromRotationZYZ(alpha, beta, gamma) = R_z(alpha) * R_y(beta) * R_z(gamma), where R_*(angle) is rotation of angle radians about the corresponding *-world coordinate axis.",
        "parameters": [
          {
            "name": "alpha",
            "type": "System.Double",
            "summary": "Angle, in radians, to rotate about the ZAxis."
          },
          {
            "name": "beta",
            "type": "System.Double",
            "summary": "Angle, in radians, to rotate about the YAxis."
          },
          {
            "name": "gamma",
            "type": "System.Double",
            "summary": "Angle, in radians, to rotate about the ZAxis."
          }
        ],
        "returns": "The quaternion."
      },
      {
        "signature": "Quaternion CrossProduct(Quaternion p, Quaternion q)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Computes the vector cross product of p and q = (0,x,y,z),  \nwhere (x,y,z) = CrossProduct(p.Vector,q.Vector).  \nThis is not the same as the quaternion product p*q.",
        "since": "5.0",
        "parameters": [
          {
            "name": "p",
            "type": "Quaternion",
            "summary": "A quaternion."
          },
          {
            "name": "q",
            "type": "Quaternion",
            "summary": "Another quaternion."
          }
        ],
        "returns": "A new quaternion."
      },
      {
        "signature": "System.Double Distance(Quaternion p, Quaternion q)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Returns the distance or norm of the difference between two quaternions.",
        "since": "5.0",
        "parameters": [
          {
            "name": "p",
            "type": "Quaternion",
            "summary": "A quaternion."
          },
          {
            "name": "q",
            "type": "Quaternion",
            "summary": "Another quaternion."
          }
        ],
        "returns": "(p - q).Length()"
      },
      {
        "signature": "Quaternion Lerp(Quaternion a, Quaternion b, System.Double t)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Interpolates between two quaternions, using linear interpolation.",
        "since": "8.0",
        "parameters": [
          {
            "name": "a",
            "type": "Quaternion",
            "summary": "The first quaternion."
          },
          {
            "name": "b",
            "type": "Quaternion",
            "summary": "The second quaternion."
          },
          {
            "name": "t",
            "type": "System.Double",
            "summary": "The parameter in the range [0, 1]."
          }
        ],
        "returns": "The interpolated quaternion."
      },
      {
        "signature": "Quaternion Product(Quaternion p, Quaternion q)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "The quaternion product of p and q.  This is the same value as p*q.",
        "since": "5.0",
        "parameters": [
          {
            "name": "p",
            "type": "Quaternion",
            "summary": "The first transform."
          },
          {
            "name": "q",
            "type": "Quaternion",
            "summary": "The second transform."
          }
        ],
        "returns": "A transform value."
      },
      {
        "signature": "Quaternion RotateTowards(Quaternion a, Quaternion b, System.Double maxRadians)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Returns the quaternion obtained by rotating a towards b, limiting the rotation by MaxRadians.",
        "since": "8.0",
        "parameters": [
          {
            "name": "a",
            "type": "Quaternion",
            "summary": "The first quaternion."
          },
          {
            "name": "b",
            "type": "Quaternion",
            "summary": "The second quaternion."
          },
          {
            "name": "maxRadians",
            "type": "System.Double",
            "summary": "The maximum rotation in radians."
          }
        ],
        "returns": "The rotated quaternion."
      },
      {
        "signature": "Quaternion Rotation(Plane plane0, Plane plane1)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Returns the unit quaternion that represents the rotation that maps plane0.xaxis to plane1.xaxis, plane0.yaxis to plane1.yaxis, and plane0.zaxis to plane1.zaxis.",
        "since": "5.0",
    "remarks": "The plane origins are ignored",
        "parameters": [
          {
            "name": "plane0",
            "type": "Plane",
            "summary": "The first plane."
          },
          {
            "name": "plane1",
            "type": "Plane",
            "summary": "The second plane."
          }
        ],
        "returns": "A quaternion value."
      },
      {
        "signature": "Quaternion Rotation(System.Double angle, Vector3d axisOfRotation)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Returns the unit quaternion cos(angle/2), sin(angle/2)*x, sin(angle/2)*y, sin(angle/2)*z where (x,y,z) is the unit vector parallel to axis.  This is the unit quaternion that represents the rotation of angle about axis.",
        "since": "5.0",
        "parameters": [
          {
            "name": "angle",
            "type": "System.Double",
            "summary": "An angle in radians."
          },
          {
            "name": "axisOfRotation",
            "type": "Vector3d",
            "summary": "The axis of rotation."
          }
        ],
        "returns": "A new quaternion."
      },
      {
        "signature": "Quaternion Slerp(Quaternion a, Quaternion b, System.Double t)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Interpolates between two quaternions, using spherical linear interpolation.",
        "since": "8.0",
        "parameters": [
          {
            "name": "a",
            "type": "Quaternion",
            "summary": "The first quaternion."
          },
          {
            "name": "b",
            "type": "Quaternion",
            "summary": "The second quaternion."
          },
          {
            "name": "t",
            "type": "System.Double",
            "summary": "The parameter in the range [0, 1]."
          }
        ],
        "returns": "The interpolated quaternion."
      },
      {
        "signature": "System.Double DistanceTo(Quaternion q)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Computes the distance or norm of the difference between this and another quaternion.",
        "since": "5.0",
        "parameters": [
          {
            "name": "q",
            "type": "Quaternion",
            "summary": "Another quaternion."
          }
        ],
        "returns": "(this - q).Length."
      },
      {
        "signature": "System.Boolean EpsilonEquals(Quaternion other, System.Double epsilon)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Check that all values in other are within epsilon of the values in this",
        "since": "5.4"
      },
      {
        "signature": "System.Boolean Equals(Quaternion other)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Determines whether this quaternion has the same value of another quaternion.",
        "since": "5.0",
        "parameters": [
          {
            "name": "other",
            "type": "Quaternion",
            "summary": "Another quaternion to compare."
          }
        ],
        "returns": "True if the quaternions have exactly equal coefficients; otherwise false."
      },
      {
        "signature": "System.Boolean Equals(System.Object obj)",
        "modifiers": ["public", "override"],
        "protected": false,
        "virtual": false,
        "summary": "Determines whether an object is a quaternion and has the same value of this quaternion.",
        "parameters": [
          {
            "name": "obj",
            "type": "System.Object",
            "summary": "Another object to compare."
          }
        ],
        "returns": "True if obj is a quaternion and has exactly equal coefficients; otherwise false."
      },
      {
        "signature": "System.Boolean GetEulerZYZ(out System.Double alpha, out System.Double beta, out System.Double gamma)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Find the Euler angles for a rotation transformation.",
        "since": "8.0",
    "remarks": "When true, this = RotationZYZ(alpha, beta, gamma) = R_z(alpha) * R_y(beta) * R_z(gamma), where R_*(angle) is rotation of angle radians about the corresponding *-world coordinate axis. alpha and gamma are in the range (-pi, pi], while beta in the range [0, pi].",
        "parameters": [
          {
            "name": "alpha",
            "type": "System.Double",
            "summary": "Angle, in radians, to rotate about the ZAxis."
          },
          {
            "name": "beta",
            "type": "System.Double",
            "summary": "Angle, in radians, to rotate about the YAxis."
          },
          {
            "name": "gamma",
            "type": "System.Double",
            "summary": "Angle, in radians, to rotate about the ZAxis."
          }
        ],
        "returns": "True if successful, or False if this is not a rotation."
      },
      {
        "signature": "System.Int32 GetHashCode()",
        "modifiers": ["public", "override"],
        "protected": false,
        "virtual": false,
        "summary": "Gets a non-unique but repeatable hashing code for this quaternion.",
        "returns": "A signed number."
      },
      {
        "signature": "System.Boolean GetRotation(out Plane plane)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns the frame created by applying the quaternion's rotation to the canonical world frame (1,0,0),(0,1,0),(0,0,1).",
        "since": "5.0",
        "parameters": [
          {
            "name": "plane",
            "type": "Plane",
            "summary": "A plane. This out value will be assigned during this call."
          }
        ],
        "returns": "True if the operation succeeded; otherwise, false."
      },
      {
        "signature": "System.Boolean GetRotation(out System.Double angle, out Vector3d axis)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns the rotation defined by the quaternion.",
        "since": "5.0",
    "remarks": "If the quaternion is not unitized, the rotation of its unitized form is returned.",
        "parameters": [
          {
            "name": "angle",
            "type": "System.Double",
            "summary": "An angle in radians."
          },
          {
            "name": "axis",
            "type": "Vector3d",
            "summary": "unit axis of rotation of 0 if (b,c,d) is the zero vector."
          }
        ],
        "returns": "True if the operation succeeded; otherwise, false."
      },
      {
        "signature": "System.Boolean GetRotation(out Transform xform)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns a transformation matrix that performs the rotation defined by the quaternion. The transformation returned by this method has the property that xform * V = q.Rotate(V). If the quaternion is not unitized, the rotation of its unitized form is returned.",
        "since": "7.12",
    "remarks": "Do not confuse the result of this method the transformation matrix returned by <b>MatrixForm</b> .",
        "returns": "True if successful, False otherwise."
      },
      {
        "signature": "System.Boolean GetYawPitchRoll(out System.Double yaw, out System.Double pitch, out System.Double roll)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Find sthe Tait-Byran angles, also loosely called Euler angles, for this quaternion.",
        "since": "8.0",
    "remarks": "When true, this = RotationZYX(yaw, pitch, roll) = R_z(yaw) * R_y(pitch) * R_x(roll), where R_*(angle) is rotation of angle radians about the corresponding world coordinate axis. roll and yaw are in the range (-pi, pi], and pitch is in [-pi/2, pi/2].",
        "parameters": [
          {
            "name": "yaw",
            "type": "System.Double",
            "summary": "Angle, in radians, to rotate about the ZAxis."
          },
          {
            "name": "pitch",
            "type": "System.Double",
            "summary": "Angle, in radians, to rotate about the YAxis."
          },
          {
            "name": "roll",
            "type": "System.Double",
            "summary": "Angle, in radians, to rotate about the XAxis."
          }
        ],
        "returns": "True if successful, or False if this is not a rotation."
      },
      {
        "signature": "System.Boolean Invert()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Modifies this quaternion to become  \n(a/L2, -b/L2, -c/L2, -d/L2),  \nwhere L2 = length squared = (a*a + b*b + c*c + d*d).  \nThis is the multiplicative inverse, i.e.,     (a,b,c,d)*(a/L2, -b/L2, -c/L2, -d/L2) = (1,0,0,0).",
        "since": "5.0",
        "returns": "True if successful. False if the quaternion is zero and cannot be inverted."
      },
      {
        "signature": "Transform MatrixForm()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns 4x4 real valued matrix form of the quaternion a  b  c  d -b  a -d  c -c  d  a -b -d -c  b  a which has the same arithmetic properties as the quaternion.",
        "since": "5.0",
    "remarks": "Do not confuse this with the rotation defined by the quaternion. This function will only be interesting to math nerds and is not useful in rendering or animation applications.",
        "returns": "A transform value."
      },
      {
        "signature": "Vector3d Rotate(Vector3d v)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Rotates a 3d vector. This operation is also called conjugation, because the result is the same as (q.Conjugate()*(0,x,y,x)*q/q.LengthSquared).Vector.",
        "since": "5.0",
    "remarks": "If you need to rotate more than a dozen or so vectors, it will be more efficient to calculate the rotation matrix once and use it repeatedly.",
        "parameters": [
          {
            "name": "v",
            "type": "Vector3d",
            "summary": "The vector to be rotated."
          }
        ],
        "returns": "R*v, where R is the rotation defined by the unit quaternion. This is mathematically the same as the values (Inverse(q)*(0,x,y,z)*q).Vector and (q.Conjugate()*(0,x,y,x)*q/q.LengthSquared).Vector."
      },
      {
        "signature": "System.Void Set(System.Double a, System.Double b, System.Double c, System.Double d)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Sets all coefficients of the quaternion.",
        "since": "5.0"
      },
      {
        "signature": "System.Void SetRotation(Plane plane0, Plane plane1)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Sets the quaternion to the unit quaternion which rotates plane0.xaxis to plane1.xaxis, plane0.yaxis to plane1.yaxis, and plane0.zaxis to plane1.zaxis.",
        "since": "5.0",
    "remarks": "The plane origins are ignored",
        "parameters": [
          {
            "name": "plane0",
            "type": "Plane",
            "summary": "The \"from\" rotation plane. Origin point is ignored."
          },
          {
            "name": "plane1",
            "type": "Plane",
            "summary": "The \"to\" rotation plane. Origin point is ignored."
          }
        ]
      },
      {
        "signature": "System.Void SetRotation(System.Double angle, Vector3d axisOfRotation)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Sets the quaternion to cos(angle/2), sin(angle/2)*x, sin(angle/2)*y, sin(angle/2)*z where (x,y,z) is the unit vector parallel to axis.  This is the unit quaternion that represents the rotation of angle about axis.",
        "since": "5.0",
        "parameters": [
          {
            "name": "angle",
            "type": "System.Double",
            "summary": "in radians."
          },
          {
            "name": "axisOfRotation",
            "type": "Vector3d",
            "summary": "The direction of the axis of rotation."
          }
        ]
      },
      {
        "signature": "System.String ToString()",
        "modifiers": ["public", "override"],
        "protected": false,
        "virtual": false,
        "summary": "Returns a string representation of this Quaternion.",
        "since": "7.12",
        "returns": "A textual representation."
      },
      {
        "signature": "System.Boolean Unitize()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Scales the quaternion's coordinates so that a*a + b*b + c*c + d*d = 1.",
        "since": "5.0",
        "returns": "True if successful.  False if the quaternion is zero and cannot be unitized."
      }
    ],
    "operators": [
      {
        "signature": "bool operator !=(Quaternion a, Quaternion b)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Determines whether two quaternions have different values.",
        "since": "5.0",
        "parameters": [
          {
            "name": "a",
            "type": "Quaternion",
            "summary": "A quaternion."
          },
          {
            "name": "b",
            "type": "Quaternion",
            "summary": "Another quaternion."
          }
        ]
      },
      {
        "signature": "bool operator ==(Quaternion a, Quaternion b)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Determines whether two quaternions have the same value.",
        "since": "5.0",
        "parameters": [
          {
            "name": "a",
            "type": "Quaternion",
            "summary": "A quaternion."
          },
          {
            "name": "b",
            "type": "Quaternion",
            "summary": "Another quaternion."
          }
        ]
      },
      {
        "signature": "Quaternion operator-(Quaternion a, Quaternion b)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Subtracts a quaternion from another one.  \nThis computes the difference of each quaternion coefficient with its     correspondent and returns a new result quaternion.",
        "since": "5.0",
        "parameters": [
          {
            "name": "a",
            "type": "Quaternion",
            "summary": "A quaternion."
          },
          {
            "name": "b",
            "type": "Quaternion",
            "summary": "Another quaternion."
          }
        ]
      },
      {
        "signature": "Quaternion operator*(Quaternion a, Quaternion b)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Multiplies a quaternion with another one.  \nQuaternion multiplication (Hamilton product) is not commutative.",
        "since": "5.0",
        "parameters": [
          {
            "name": "a",
            "type": "Quaternion",
            "summary": "The first term."
          },
          {
            "name": "b",
            "type": "Quaternion",
            "summary": "The second term."
          }
        ]
      },
      {
        "signature": "Quaternion operator*(Quaternion q, double x)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Multiplies (scales) all quaternion coefficients by a factor and returns a new quaternion with the result.",
        "since": "5.0",
        "parameters": [
          {
            "name": "q",
            "type": "Quaternion",
            "summary": "A quaternion."
          },
          {
            "name": "x",
            "type": "System.Double",
            "summary": "A number."
          }
        ]
      },
      {
        "signature": "Quaternion operator*(Quaternion q, float x)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Multiplies (scales) all quaternion coefficients by a factor and returns a new quaternion with the result.",
        "since": "5.0",
        "parameters": [
          {
            "name": "q",
            "type": "Quaternion",
            "summary": "A quaternion."
          },
          {
            "name": "x",
            "type": "System.Single",
            "summary": "A number."
          }
        ]
      },
      {
        "signature": "Quaternion operator*(Quaternion q, int x)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Multiplies (scales) all quaternion coefficients by a factor and returns a new quaternion with the result.",
        "since": "5.0",
        "parameters": [
          {
            "name": "q",
            "type": "Quaternion",
            "summary": "A quaternion."
          },
          {
            "name": "x",
            "type": "System.Int32",
            "summary": "A number."
          }
        ]
      },
      {
        "signature": "Quaternion operator/(Quaternion q, double y)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Divides all quaternion coefficients by a factor and returns a new quaternion with the result.",
        "since": "5.0",
        "parameters": [
          {
            "name": "q",
            "type": "Quaternion",
            "summary": "A quaternion."
          },
          {
            "name": "y",
            "type": "System.Double",
            "summary": "A number."
          }
        ]
      },
      {
        "signature": "Quaternion operator+(Quaternion a, Quaternion b)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Adds two quaternions.  \nThis sums each quaternion coefficient with its correspondent and returns     a new result quaternion.",
        "parameters": [
          {
            "name": "a",
            "type": "Quaternion",
            "summary": "A quaternion."
          },
          {
            "name": "b",
            "type": "Quaternion",
            "summary": "Another quaternion."
          }
        ]
      }
    ]

  },
  {
    "namespace": "Rhino.Geometry",
    "name": "RadialDimension",
    "dataType": "class",
    "summary": "Represents a dimension of a circular entity that can be measured with radius or diameter.",
    "baseclass": "Rhino.Geometry.Dimension",
    "constructors": [
      {
        "signature": "RadialDimension()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Constructs a radial dimension.",
        "since": "6.0"
      },
      {
        "signature": "RadialDimension(AnnotationType dimtype, Plane plane, Point3d centerpoint, Point3d radiuspoint, Point3d dimlinepoint)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Constructs a radial dimension from parameters.",
        "since": "8.0",
        "parameters": [
          {
            "name": "dimtype",
            "type": "AnnotationType",
            "summary": "AnnotationType.Diameter or AnnotationType.Radius"
          },
          {
            "name": "plane",
            "type": "Plane",
            "summary": "Dimension's plane"
          },
          {
            "name": "centerpoint",
            "type": "Point3d",
            "summary": "Dimension's center point"
          },
          {
            "name": "radiuspoint",
            "type": "Point3d",
            "summary": "Point on dimension radius"
          },
          {
            "name": "dimlinepoint",
            "type": "Point3d",
            "summary": "Point on dimension line"
          }
        ]
      },
      {
        "signature": "RadialDimension(SerializationInfo info, StreamingContext context)",
        "modifiers": ["protected"],
        "protected": true,
        "virtual": false,
        "summary": "Protected constructor used in serialization."
      }
    ],
    "properties": [
      {
        "signature": "AnnotationType AnnotationType",
        "modifiers": ["public", "new"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "Point2d CenterPoint",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "Point2d DimlinePoint",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool IsDiameterDimension",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets a value indicating whether the value refers to the diameter, rather than the radius.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "Point2d KneePoint",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "Guid LeaderArrowBlockId",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "double LeaderArrowSize",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "ArrowType LeaderArrowType",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "LeaderCurveStyle LeaderCurveStyle",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "TextHorizontalAlignment LeaderTextHorizontalAlignment",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the horizontal alignment of the radial dimension's text",
        "since": "6.9",
        "property": ["get", "set"]
      },
      {
        "signature": "Point2d RadiusPoint",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "LeaderContentAngleStyle TextAngleType",
        "modifiers": ["public", "override"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "TextLocation TextLocation",
        "modifiers": ["public", "override"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "TextOrientation TextOrientation",
        "modifiers": ["public", "override"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get", "set"]
      }
    ],
    "methods": [
      {
        "signature": "RadialDimension Create(DimensionStyle dimStyle, AnnotationType dimtype, Plane plane, Point3d centerpoint, Point3d radiuspoint, Point3d dimlinepoint)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Initialize Dimension parameters",
        "since": "6.0",
        "parameters": [
          {
            "name": "dimStyle",
            "type": "DimensionStyle",
            "summary": "Dimension's dimstyle"
          },
          {
            "name": "dimtype",
            "type": "AnnotationType",
            "summary": "AnnotationType.Diameter or AnnotationType.Radius"
          },
          {
            "name": "plane",
            "type": "Plane",
            "summary": "Dimension's plane"
          },
          {
            "name": "centerpoint",
            "type": "Point3d",
            "summary": "Dimension's center point"
          },
          {
            "name": "radiuspoint",
            "type": "Point3d",
            "summary": "Point on dimension radius"
          },
          {
            "name": "dimlinepoint",
            "type": "Point3d",
            "summary": "Point on dimension line"
          }
        ]
      },
      {
        "signature": "System.Boolean AdjustFromPoints(Plane plane, Point3d centerpoint, Point3d radiuspoint, Point3d dimlinepoint, System.Double rotationInPlane)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Update Dimension geometry from point locations",
        "since": "6.0",
        "parameters": [
          {
            "name": "plane",
            "type": "Plane",
            "summary": "Dimension's plane"
          },
          {
            "name": "centerpoint",
            "type": "Point3d",
            "summary": "Dimension's center point"
          },
          {
            "name": "radiuspoint",
            "type": "Point3d",
            "summary": "Point on dimension radius"
          },
          {
            "name": "dimlinepoint",
            "type": "Point3d",
            "summary": "Point on dimension line"
          },
          {
            "name": "rotationInPlane",
            "type": "System.Double",
            "summary": "This parameter is currently ignored"
          }
        ]
      },
      {
        "signature": "System.Boolean Get3dPoints(out Point3d centerpoint, out Point3d radiuspoint, out Point3d dimlinepoint, out Point3d kneepoint)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Get locations of dimension's 3d points",
        "since": "6.0",
        "parameters": [
          {
            "name": "centerpoint",
            "type": "Point3d",
            "summary": "Dimension's center point"
          },
          {
            "name": "radiuspoint",
            "type": "Point3d",
            "summary": "Point on dimension's radius"
          },
          {
            "name": "dimlinepoint",
            "type": "Point3d",
            "summary": "Point on dimension line"
          },
          {
            "name": "kneepoint",
            "type": "Point3d",
            "summary": "Point where dimension line jogs"
          }
        ]
      },
      {
        "signature": "System.Boolean GetDisplayLines(DimensionStyle style, System.Double scale, out IEnumerable<Line> lines)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "System.String GetDistanceDisplayText(LengthUnit units, DimensionStyle style)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "9.0"
      },
      {
        "signature": "System.String GetDistanceDisplayText(UnitSystem unitsystem, DimensionStyle style)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "deprecated": "9.0",
        "obsolete": "Since 9.0"
      },
      {
        "signature": "System.Boolean GetTextRectangle(out Point3d[] corners)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0"
      }
    ]
  },
  {
    "namespace": "Rhino.Geometry",
    "name": "RailType",
    "dataType": "enum",
    "summary": "Rail types used for creating filleted Brep edges",
    "since": "6.0",
    "values": [
      {
        "signature": "DistanceFromEdge = 0",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "The distance from the edge curves determines the intersection."
      },
      {
        "signature": "RollingBall = 1",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "The radius of a rolling ball determines the intersection."
      },
      {
        "signature": "DistanceBetweenRails = 2",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "The distance between the edge rails determines the intersection."
      }
    ]

  },
  {
    "namespace": "Rhino.Geometry",
    "name": "Ray3d",
    "dataType": "struct",
    "summary": "Represents an immutable ray in three dimensions, using position and direction.",
    "constructors": [
      {
        "signature": "Ray3d(Point3d position, Vector3d direction)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Initializes a new Ray3d instance.",
        "since": "5.0",
        "parameters": [
          {
            "name": "position",
            "type": "Point3d",
            "summary": "The position."
          },
          {
            "name": "direction",
            "type": "Vector3d",
            "summary": "The direction."
          }
        ]
      }
    ],
    "properties": [
      {
        "signature": "Vector3d Direction",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the direction vector of this ray.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "Point3d Position",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the starting position of this ray.",
        "since": "5.0",
        "property": ["get"]
      }
    ],
    "methods": [
      {
        "signature": "System.Boolean EpsilonEquals(Ray3d other, System.Double epsilon)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Check that all values in other are within epsilon of the values in this",
        "since": "5.4"
      },
      {
        "signature": "System.Boolean Equals(Ray3d ray)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Determines whether the specified Ray3d has the same value as the present ray.",
        "since": "5.0",
        "parameters": [
          {
            "name": "ray",
            "type": "Ray3d",
            "summary": "The specified ray."
          }
        ],
        "returns": "True if ray has the same position and direction as this; otherwise false."
      },
      {
        "signature": "System.Boolean Equals(System.Object obj)",
        "modifiers": ["public", "override"],
        "protected": false,
        "virtual": false,
        "summary": "Determines whether the specified System.Object is a Ray3d and has the same values as the present ray.",
        "parameters": [
          {
            "name": "obj",
            "type": "System.Object",
            "summary": "The specified object."
          }
        ],
        "returns": "True if obj is a Ray3d and has the same position and direction as this; otherwise false."
      },
      {
        "signature": "System.Int32 GetHashCode()",
        "modifiers": ["public", "override"],
        "protected": false,
        "virtual": false,
        "summary": "Computes a hashing number that represents the current ray.",
        "returns": "A signed integer that represents both position and direction, but is not unique."
      },
      {
        "signature": "Point3d PointAt(System.Double t)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Evaluates a point along the ray.",
        "since": "5.0",
        "parameters": [
          {
            "name": "t",
            "type": "System.Double",
            "summary": "The t parameter."
          }
        ],
        "returns": "A point at (Direction*t + Position)."
      }
    ],
    "operators": [
      {
        "signature": "bool operator !=(Ray3d a, Ray3d b)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Determines whether two <b>Ray3d</b> have different values.",
        "since": "5.0",
        "parameters": [
          {
            "name": "a",
            "type": "Ray3d",
            "summary": "The first <b>Ray3d</b> ."
          },
          {
            "name": "b",
            "type": "Ray3d",
            "summary": "The second <b>Ray3d</b> ."
          }
        ]
      },
      {
        "signature": "bool operator ==(Ray3d a, Ray3d b)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Determines whether two <b>Ray3d</b> have equal values.",
        "since": "5.0",
        "parameters": [
          {
            "name": "a",
            "type": "Ray3d",
            "summary": "The first <b>Ray3d</b> ."
          },
          {
            "name": "b",
            "type": "Ray3d",
            "summary": "The second <b>Ray3d</b> ."
          }
        ]
      }
    ]

  },
  {
    "namespace": "Rhino.Geometry",
    "name": "RebuildCurveIntensity",
    "dataType": "enum",
    "summary": "RebuildCurveIntensity used used to specify rebuild smoothing and uniformity intensities.",
    "values": [
      {
        "signature": "None = 0",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Low = 1",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Moderate = 2",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Medium = 3",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "High = 4",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Extreme = 5",
        "modifiers": [],
        "protected": false,
        "virtual": false
      }
    ]

  },
  {
    "namespace": "Rhino.Geometry",
    "name": "RebuildCurveKinkSplitting",
    "dataType": "enum",
    "values": [
      {
        "signature": "None = 0",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "AtG1Changes = 1",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "AtLargeG2Changes = 2",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "AtMediumG2Changes = 3",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "AtSmallG2Changes = 4",
        "modifiers": [],
        "protected": false,
        "virtual": false
      }
    ]

  },
  {
    "namespace": "Rhino.Geometry",
    "name": "RebuildCurveOptions",
    "dataType": "class",
    "summary": "Options used for curve rebuilding",
    "interfaces": ["IDisposable"],
    "constructors": [
      {
        "signature": "RebuildCurveOptions()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false
      }
    ],
    "properties": [
      {
        "signature": "double CurrentOutputMaximumDeviation",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "The maximum deviation between a target curve and the corresponding rebuilt curve calculated using the current properties.",
        "property": ["get"]
      },
      {
        "signature": "IndexPair CurrentOutputPointCountRange",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "The range of point counts in the rebuilt curves calculated using the current properties. When multiple target curves are being rebuilt with variable point counts or kink splittings, the resulting rebuilt curves can have a range of point counts. CurrentOutputPointCountRange.I = minimum point count. CurrentOutputPointCountRange.J = maximum point count.",
        "property": ["get"]
      },
      {
        "signature": "IndexPair CurrentOutputSpanCountRange",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "The range of span counts in the rebuilt curves calculated using the current properties. When multiple target curves are being rebuilt with variable point counts or kink splittings, the resulting rebuilt curves can have a range of span counts. CurrentOutputSpanCountRange.I = minimum span count. CurrentOutputSpanCountRange.J = maximum span count. NOTE WELL: Do not confuse span counts with point counts. The span count is always <= PointCount - Degree and is the number of spans in the rebuilt NURBS curves.",
        "property": ["get"]
      },
      {
        "signature": "int Degree",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "The degree the rebuit curves will have. Changing the degree can change other options. After changing the degre, user interface code must update all displayed values.",
        "property": ["get", "set"]
      },
      {
        "signature": "bool DeleteInputCurves",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "True if input target curves should be deleted when possible.",
        "property": ["get", "set"]
      },
      {
        "signature": "int InputCurveCount",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "The number of input curves.",
        "property": ["get"]
      },
      {
        "signature": "IndexPair InputDegreeRange",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "The range of degrees in the input curves. InputDegreeRange.I = minimum input curve degree. InputDegreeRange.J = maximum input curve degree.",
        "property": ["get"]
      },
      {
        "signature": "IndexPair InputPointCountRange",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "The range of point counts in the input curves. InputPointCountRange.I = minimum input curve point count. InputPointCountRange.J = maximum input curve point count.",
        "property": ["get"]
      },
      {
        "signature": "IndexPair InputSpanCountRange",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "The range of span counts in the input curves. InputDegreeRange.I = minimum input curve span count. InputDegreeRange.J = maximum input curve span count.",
        "property": ["get"]
      },
      {
        "signature": "double KinkAngleDegrees",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "If the KinkSplitting is on, then KinkAngleDegrees is the angle in degrees used to detect discontinuous changes in target curve tangents and curvature directions.",
        "property": ["get", "set"]
      },
      {
        "signature": "RebuildCurveKinkSplitting KinkSplitting",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "property": ["get", "set"]
      },
      {
        "signature": "bool KinkSplittingPermitted",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "True if the user interface is permitted to show the kink splitting options",
        "property": ["get", "set"]
      },
      {
        "signature": "int MaximumDegreeLimit",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "The maximum value a user interface may specify as a degree value.",
        "property": ["get"]
      },
      {
        "signature": "int MaximumPointCount",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "The maximum point count. If the context permits ranges of point counts, then it is possible that MinimumPointCount < MaximumPointCount. Otherwise MinimumPointCount = MaximumPointCount = PointCount.",
        "property": ["get"]
      },
      {
        "signature": "int MaximumPointCountLimit",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "The maximum value a user interface may specify as a point count value.",
        "property": ["get"]
      },
      {
        "signature": "int MinimumDegreeLimit",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "The mimimum value a user interface may specify as a degree value.",
        "property": ["get"]
      },
      {
        "signature": "int MinimumPointCount",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "The minimum point count. If the context permits ranges of point counts, then it is possible that MinimumPointCount < MaximumPointCount. Otherwise MinimumPointCount = MaximumPointCount = PointCount.",
        "property": ["get"]
      },
      {
        "signature": "int MinimumPointCountLimit",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "The mimimum value a user interface may specify as a point count value.",
        "property": ["get"]
      },
      {
        "signature": "bool OutputToCurrentLayer",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "True if output rebuilt curves should be on the current layer. False if output rebuild curves should be on the target curve's layer.",
        "property": ["get", "set"]
      },
      {
        "signature": "int PointCount",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Always sets the number of control points in the rebuilt curve. If PointCountRangePermitted is True or the minimum and maximum point counts are equal, that value is returned. Otherwise 0 is returned and you must use MinimumPointCount and MaximumPointCount to get the point count range. Put another way, when 0 is returned, a range of point counts has been specified and you must use MinimumPointCount and MaximumPointCount to get the point count range.",
        "property": ["get", "set"]
      },
      {
        "signature": "bool PointCountRangePermitted",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "If user interface is permitted to set a range of point counts, then PointCountRangePermitted = true and SetPointCountRange() may be used to set the range. Otherwise point count ranges are not permitted\\ and user interface must use PointCount to set a single value.",
        "property": ["get"]
      },
      {
        "signature": "double PointCountRangeTolerance",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "When PointCountRangePermitted is True and MinimumPointCount < MaximumPointCount, PointCountRangeTolerance specifies the desired maximum deviation between the target and rebuilt curves. If there is a rebuilt curve in the point count range with deviation <= PointCountRangeTolerance, then the rebuilt curve with the smallest point count whose deviation <= tolerance is returned. Otherwise the curve with the smallest deviation is returned. Use SetPointCountRange(min,max,tol) to set PointCountRangeTolerance.",
        "property": ["get"]
      },
      {
        "signature": "int RhinoDocumentSerialNumber",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Serial number of the Rhino document containing the target curves.",
        "property": ["get"]
      },
      {
        "signature": "bool ShowControlPoints",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "True if the control points of the rebuilt curves are displayed during the dynamic preview.",
        "property": ["get", "set"]
      },
      {
        "signature": "RebuildCurveIntensity SmoothingIntensity",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "When SmoothingPermitted is true, SmoothingIntensity sets and gets the intensity of forcing the 2nd point of contiguous triples of control points to be halfway between the 1st and 3rd point.",
        "property": ["get", "set"]
      },
      {
        "signature": "bool SmoothingPermitted",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "True if the user interface is permitted to show the smoothing intensity option",
        "property": ["get"]
      },
      {
        "signature": "bool SubDFriendly",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "When SubDFriendly is true, the degree is set to 3 and the ends of rebuilt open curves have zero 2nd derivative. These types of curves are useful for lofting into SubDs.",
        "property": ["get", "set"]
      },
      {
        "signature": "RebuildCurveTangentMatching TangentMatching",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "When TangentMatchPermitted is true, TangentMatch is the active tangent mathing option. When TangentMatchPermitted is false, the user interface should not offer tangent matching.",
        "property": ["get", "set"]
      },
      {
        "signature": "bool TangentMatchingPermitted",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns True if the user interface may offer tangent matching as an option.",
        "property": ["get"]
      },
      {
        "signature": "RebuildCurveIntensity UniformityIntensity",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "When UniformityPermitted is true, UniformityIntensity sets and gets the intensity of forcing the the distance between control points to be equal.",
        "property": ["get", "set"]
      },
      {
        "signature": "bool UniformityPermitted",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "True if the user interface is permitted to show the uniformity intensity option",
        "property": ["get"]
      }
    ],
    "methods": [
      {
        "signature": "System.Void Dispose()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Actively reclaims unmanaged resources that this instance uses."
      },
      {
        "signature": "System.Int32 IntensityToInt(Rhino.Geometry.RebuildCurveIntensity intensity)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Rhino.Geometry.RebuildCurveIntensity IntToIntensity(System.Int32 intensity_as_int)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Rhino.Geometry.RebuildCurveKinkSplitting IntToKinkSplitting(System.Int32 kink_splitting_at_as_int)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "System.Int32 KinkSplittingToInt(Rhino.Geometry.RebuildCurveKinkSplitting kink_splitting)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "System.Void SetPointCountRange(System.Int32 minimum_point_count, System.Int32 maximum_point_count, System.Double tolerance)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "If PointCountRangePermitted is true, then the user interface may use SetPointCountRange(min,max,tolerance) to specify a range of acceptable point counts. Otherwise using PointCount to specify a single point count value.",
        "parameters": [
          {
            "name": "minimum_point_count",
            "type": "System.Int32",
            "summary": ""
          },
          {
            "name": "maximum_point_count",
            "type": "System.Int32",
            "summary": ""
          },
          {
            "name": "tolerance",
            "type": "System.Double",
            "summary": "If tolerance > 0 and there is a rebuilt curve in the point range with deviation <= tolerance, the the curve with the smallest point count whose deviation <= tolerance will be returned. Otherwise the curve with the smallest deviation is returned."
          }
        ]
      }
    ]
  },
  {
    "namespace": "Rhino.Geometry",
    "name": "RebuildCurveTangentMatching",
    "dataType": "enum",
    "summary": "RebuildCurveTangentMatch used used to specify tangent matching options.",
    "values": [
      {
        "signature": "None = 0",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "AtStart = 1",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "AtEnd = 2",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "AtStartAndEnd = 3",
        "modifiers": [],
        "protected": false,
        "virtual": false
      }
    ]

  },
  {
    "namespace": "Rhino.Geometry",
    "name": "Rectangle3d",
    "dataType": "struct",
    "summary": "Represents the values of a plane and two intervals that form an oriented rectangle in three dimensions.",
    "constructors": [
      {
        "signature": "Rectangle3d(Plane plane, double width, double height)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Initializes a new rectangle from width and height.",
        "since": "5.0",
        "parameters": [
          {
            "name": "plane",
            "type": "Plane",
            "summary": "Base plane for Rectangle."
          },
          {
            "name": "width",
            "type": "System.Double",
            "summary": "Width (as measured along the base plane x-axis) of rectangle."
          },
          {
            "name": "height",
            "type": "System.Double",
            "summary": "Height (as measured along the base plane y-axis) of rectangle."
          }
        ]
      },
      {
        "signature": "Rectangle3d(Plane plane, Interval width, Interval height)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Initializes a new rectangle from dimensions.",
        "since": "5.0",
        "parameters": [
          {
            "name": "plane",
            "type": "Plane",
            "summary": "Base plane for Rectangle."
          },
          {
            "name": "width",
            "type": "Interval",
            "summary": "Dimension of rectangle along the base plane x-axis."
          },
          {
            "name": "height",
            "type": "Interval",
            "summary": "Dimension of rectangle along the base plane y-axis."
          }
        ]
      },
      {
        "signature": "Rectangle3d(Plane plane, Point3d cornerA, Point3d cornerB)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Initializes a new rectangle from a base plane and two corner points.",
        "since": "5.0",
        "parameters": [
          {
            "name": "plane",
            "type": "Plane",
            "summary": "Base plane for Rectangle."
          },
          {
            "name": "cornerA",
            "type": "Point3d",
            "summary": "First corner of Rectangle (will be projected onto plane)."
          },
          {
            "name": "cornerB",
            "type": "Point3d",
            "summary": "Second corner of Rectangle (will be projected onto plane)."
          }
        ]
      }
    ],
    "properties": [
      {
        "signature": "Rectangle3d Unset",
        "modifiers": ["static", "public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets a rectangle with Unset components.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "double Area",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the unsigned Area of the rectangle.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "BoundingBox BoundingBox",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the world aligned bounding box for this rectangle.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "Point3d Center",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the point in the center of the rectangle.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "double Circumference",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the circumference of the rectangle.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "double Height",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the signed height of the rectangle. If the Y dimension is decreasing, the height will be negative.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "bool IsValid",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets a value indicating whether or not this is a valid rectangle. A rectangle is considered to be valid when the base plane and both dimensions are valid.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "Plane Plane",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the base plane of the rectangle.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "double Width",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the signed width of the rectangle. If the X dimension is decreasing, the width will be negative.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "Interval X",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the dimensions of the rectangle along the base plane X-Axis (i.e. the width).",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "Interval Y",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the dimensions of the rectangle along the base plane Y-Axis (i.e. the height).",
        "since": "5.0",
        "property": ["get", "set"]
      }
    ],
    "methods": [
      {
        "signature": "Rectangle3d CreateFromPolyline(IEnumerable<Point3d> polyline, out System.Double deviation, out System.Double angleDeviation)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Attempts to create a rectangle from a polyline. This method only works well for polylines that already closely resemble rectangles. If the polyline contains more than four vertices, the least significant ones will be ignored. If the polylines is non-orthogonal, the discrepancies will be averaged away. This method should not be used as a Rectangle fitter.",
        "since": "5.0",
        "parameters": [
          {
            "name": "polyline",
            "type": "IEnumerable<Point3d>",
            "summary": "Polyline to parse."
          },
          {
            "name": "deviation",
            "type": "System.Double",
            "summary": "On success, the deviation will contain the largest deviation between the polyline and the rectangle."
          },
          {
            "name": "angleDeviation",
            "type": "System.Double",
            "summary": "On success, the angleDeviation will contain the largest deviation (in radians) between the polyline edges and the rectangle edges."
          }
        ],
        "returns": "A rectangle that is shaped similarly to the polyline or Rectangle3d.Unset if the polyline does not represent a rectangle."
      },
      {
        "signature": "Rectangle3d CreateFromPolyline(IEnumerable<Point3d> polyline)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Attempts to create a rectangle from a polyline. This method only works well for polylines that already closely resemble rectangles. If the polyline contains more than four vertices, the least significant ones will be ignored. If the polylines is non-orthogonal, the discrepancies will be averaged away. This method should not be used as a Rectangle fitter.",
        "since": "5.0",
        "parameters": [
          {
            "name": "polyline",
            "type": "IEnumerable<Point3d>",
            "summary": "Polyline to parse."
          }
        ],
        "returns": "A rectangle that is shaped similarly to the polyline or Rectangle3d.Unset if the polyline does not represent a rectangle."
      },
      {
        "signature": "Point3d ClosestPoint(Point3d point, System.Boolean includeInterior)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the point on the rectangle that is closest to a test-point.",
        "since": "5.0",
        "parameters": [
          {
            "name": "point",
            "type": "Point3d",
            "summary": "Point to project."
          },
          {
            "name": "includeInterior",
            "type": "System.Boolean",
            "summary": "If false, the point is projected onto the boundary edge only, otherwise the interior of the rectangle is also taken into consideration."
          }
        ],
        "returns": "The point on the rectangle closest to the test point or Point3d.Unset on failure."
      },
      {
        "signature": "Point3d ClosestPoint(Point3d point)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the point on the rectangle that is closest to a test-point.",
        "since": "5.0",
        "parameters": [
          {
            "name": "point",
            "type": "Point3d",
            "summary": "Point to project."
          }
        ],
        "returns": "The point on or in the rectangle closest to the test point or Point3d.Unset on failure."
      },
      {
        "signature": "PointContainment Contains(Point3d pt)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Determines if a point is included in this rectangle.",
        "since": "5.0",
        "parameters": [
          {
            "name": "pt",
            "type": "Point3d",
            "summary": "Point to test. The point will be projected onto the Rectangle plane before inclusion is determined."
          }
        ],
        "returns": "Point Rectangle relationship."
      },
      {
        "signature": "PointContainment Contains(System.Double x, System.Double y)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Determines if two plane parameters are included in this rectangle.",
        "since": "5.0",
        "parameters": [
          {
            "name": "x",
            "type": "System.Double",
            "summary": "Parameter along base plane X direction."
          },
          {
            "name": "y",
            "type": "System.Double",
            "summary": "Parameter along base plane Y direction."
          }
        ],
        "returns": "Parameter Rectangle relationship."
      },
      {
        "signature": "Point3d Corner(System.Int32 index)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the corner at the given index.",
        "since": "5.0",
        "parameters": [
          {
            "name": "index",
            "type": "System.Int32",
            "summary": "Index of corner, valid values are:  \n0 = lower left (min-x, min-y)  \n1 = lower right (max-x, min-y)  \n2 = upper right (max-x, max-y)  \n3 = upper left (min-x, max-y)"
          }
        ],
        "returns": "The point at the given corner index."
      },
      {
        "signature": "System.Boolean EpsilonEquals(Rectangle3d other, System.Double epsilon)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Check that all values in other are within epsilon of the values in this",
        "since": "5.4"
      },
      {
        "signature": "System.Void MakeIncreasing()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Ensures the X and Y dimensions are increasing or singleton intervals.",
        "since": "5.0"
      },
      {
        "signature": "Point3d PointAt(System.Double x, System.Double y)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets a point in Rectangle space.",
        "since": "5.0",
        "parameters": [
          {
            "name": "x",
            "type": "System.Double",
            "summary": "Normalized parameter along Rectangle width."
          },
          {
            "name": "y",
            "type": "System.Double",
            "summary": "Normalized parameter along Rectangle height."
          }
        ],
        "returns": "The point at the given x,y parameter."
      },
      {
        "signature": "Point3d PointAt(System.Double t)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets a point along the rectangle boundary.",
        "since": "5.0",
        "parameters": [
          {
            "name": "t",
            "type": "System.Double",
            "summary": "Parameter along rectangle boundary. Valid values range from 0.0 to 4.0, where each integer domain represents a single boundary edge."
          }
        ],
        "returns": "The point at the given boundary parameter."
      },
      {
        "signature": "System.Void RecenterPlane(Point3d origin)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Re-centers the base plane on a new origin.",
        "since": "5.0",
        "parameters": [
          {
            "name": "origin",
            "type": "Point3d",
            "summary": "New origin for plane."
          }
        ]
      },
      {
        "signature": "System.Void RecenterPlane(System.Int32 index)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Re-centers the base plane on one of the corners.",
        "since": "5.0",
        "parameters": [
          {
            "name": "index",
            "type": "System.Int32",
            "summary": "Index of corner, valid values are:  \n0 = lower left (min-x, min-y)  \n1 = lower right (max-x, min-y)  \n2 = upper right (max-x, max-y)  \n3 = upper left (min-x, max-y)"
          }
        ]
      },
      {
        "signature": "NurbsCurve ToNurbsCurve()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Constructs a nurbs curve representation of this rectangle.",
        "since": "5.0",
        "returns": "A nurbs curve with the same shape as this rectangle."
      },
      {
        "signature": "Polyline ToPolyline()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Constructs a polyline from this rectangle.",
        "since": "5.0",
        "returns": "A polyline with the same shape as this rectangle."
      },
      {
        "signature": "System.Boolean Transform(Transform xform)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Transforms this rectangle. Note that rectangles cannot be skewed or tapered.",
        "since": "5.0",
        "parameters": [
          {
            "name": "xform",
            "type": "Transform",
            "summary": "Transformation to apply."
          }
        ]
      }
    ]
  },
  {
    "namespace": "Rhino.Geometry",
    "name": "ReduceMeshParameters",
    "dataType": "class",
    "summary": "Parameters for Reduce method",
    "constructors": [
      {
        "signature": "ReduceMeshParameters()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Constructs a polygon reduction parameter object with default values. Users of this class should not rely on default values to stay constant across service releases.",
        "since": "6.0"
      }
    ],
    "properties": [
      {
        "signature": "int Accuracy",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Integer from 1 to 10 telling how accurate reduction algorithm to use. Greater number gives more accurate results",
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool AllowDistortion",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "If True mesh appearance is not changed even if the target polygon count is not reached",
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "CancellationToken CancelToken",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "int DesiredPolygonCount",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Desired or target number of faces",
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "string Error",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "int[] FaceTags",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "ComponentIndex[] LockedComponents",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "List of topological mesh vertices and mesh vertices that will not be moved or deleted in reduction process. Each mesh vertex will lock the corresponding topological mesh vertex. In other words it is not possible to have a locked and non-locked mesh vertex at the same location.",
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool NormalizeMeshSize",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "If True mesh is fitted to an axis aligned unit cube until reduction is complete",
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "IProgress<double> ProgressReporter",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get", "set"]
      }
    ]
  },
  {
    "namespace": "Rhino.Geometry",
    "name": "RefitTrimKnotMode",
    "dataType": "enum",
    "summary": "The mode for adding kinots to the surface for fitting",
    "values": [
      {
        "signature": "None = 0",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "No knots are added"
      },
      {
        "signature": "UniformEntireSurface = 1",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "The entire surface is fit using uniform spacing with the specified number of knots"
      },
      {
        "signature": "UniformPerSpan = 2",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Each existing span is uniformly spaced with the specified number of knots"
      },
      {
        "signature": "Custom = 3",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "The provided knot vector will be used"
      }
    ]

  },
  {
    "namespace": "Rhino.Geometry",
    "name": "RefitTrimSectionMode",
    "dataType": "enum",
    "summary": "The mode for dividing the surface into sections",
    "values": [
      {
        "signature": "NoSections = 0",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "just output one \"upper\" and one \"lower\" surface"
      },
      {
        "signature": "DivideAtInputKnots = 1",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "divide into sections at each of the input surface's existing knots"
      },
      {
        "signature": "DivideAtAddedKnots = 2",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Yes, divide into sections at each of the \"nKnot\" added knot values"
      },
      {
        "signature": "DivideAtAllKnots = 3",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Yes, divide into sections at ALL knot values (i.e. both 1 and 2)"
      }
    ]

  },
  {
    "namespace": "Rhino.Geometry",
    "name": "RegionContainment",
    "dataType": "enum",
    "summary": "Defines enumerated values for closed curve/closed curve relationships.",
    "since": "5.0",
    "values": [
      {
        "signature": "Disjoint = 0",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "There is no common area between the two regions."
      },
      {
        "signature": "MutualIntersection = 1",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "The two curves intersect. There is therefore no full containment relationship either way."
      },
      {
        "signature": "AInsideB = 2",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Region bounded by curveA (first curve) is inside of curveB (second curve)."
      },
      {
        "signature": "BInsideA = 3",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Region bounded by curveB (second curve) is inside of curveA (first curve)."
      }
    ]

  },
  {
    "namespace": "Rhino.Geometry",
    "name": "RevSurface",
    "dataType": "class",
    "summary": "Represents a surface of revolution.  \nRevolutions can be incomplete (they can form arcs).",
    "baseclass": "Rhino.Geometry.Surface",
    "constructors": [
      {
        "signature": "RevSurface(SerializationInfo info, StreamingContext context)",
        "modifiers": ["protected"],
        "protected": true,
        "virtual": false,
        "summary": "Protected constructor for internal use.",
        "parameters": [
          {
            "name": "info",
            "type": "System.Runtime.Serialization.SerializationInfo",
            "summary": "Serialization data."
          },
          {
            "name": "context",
            "type": "System.Runtime.Serialization.StreamingContext",
            "summary": "Serialization stream."
          }
        ]
      }
    ],
    "properties": [
      {
        "signature": "Interval Angle",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the start and end angles of revolution in radians. The interval angle must be increasing and satisfy RhinoMath.ZeroTolerance < Angle.Length<= 2.0 * System.Math.PI.",
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "Line Axis",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the axis of revolution.",
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "Curve Curve",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the revolute curve.",
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "Interval Interval",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Interval specifies the parameterization for the angular parameter. Interval must be an increasing interval. The parameter Interval[0] corresponds to Angle[0] and the parameter Interval[1] corresponds to Angle[1].",
        "since": "8.4",
        "property": ["get"]
      },
      {
        "signature": "bool IsTransposed",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "If false, the \"u\" parameter is the angle parameter and the \"v\" parameter is the curve parameter. If true, the \"u\" parameter is the curve parameter and the \"v\" parameter is the angle parameter.",
        "since": "8.4",
        "property": ["get"]
      }
    ],
    "methods": [
      {
        "signature": "RevSurface Create(Curve revoluteCurve, Line axisOfRevolution, System.Double startAngleRadians, System.Double endAngleRadians)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Constructs a new surface of revolution from a generatrix curve and an axis.  \nThis overload accepts a slice start and end angles.",
        "since": "5.0",
        "parameters": [
          {
            "name": "revoluteCurve",
            "type": "Curve",
            "summary": "A generatrix."
          },
          {
            "name": "axisOfRevolution",
            "type": "Line",
            "summary": "An axis."
          },
          {
            "name": "startAngleRadians",
            "type": "System.Double",
            "summary": "An angle in radians for the start."
          },
          {
            "name": "endAngleRadians",
            "type": "System.Double",
            "summary": "An angle in radians for the end."
          }
        ],
        "returns": "A new surface of revolution, or None if any of the inputs is invalid or on error."
      },
      {
        "signature": "RevSurface Create(Curve revoluteCurve, Line axisOfRevolution)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Constructs a new surface of revolution from a generatrix curve and an axis.",
        "since": "5.0",
        "parameters": [
          {
            "name": "revoluteCurve",
            "type": "Curve",
            "summary": "A generatrix."
          },
          {
            "name": "axisOfRevolution",
            "type": "Line",
            "summary": "An axis."
          }
        ],
        "returns": "A new surface of revolution, or None if any of the inputs is invalid or on error."
      },
      {
        "signature": "RevSurface Create(Line revoluteLine, Line axisOfRevolution, System.Double startAngleRadians, System.Double endAngleRadians)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Constructs a new surface of revolution from a generatrix line and an axis.  \nThis overload accepts a slice start and end angles.  \nResults can be (truncated) cones, cylinders and circular hyperboloids, or can fail.",
        "since": "5.0",
        "parameters": [
          {
            "name": "revoluteLine",
            "type": "Line",
            "summary": "A generatrix."
          },
          {
            "name": "axisOfRevolution",
            "type": "Line",
            "summary": "An axis."
          },
          {
            "name": "startAngleRadians",
            "type": "System.Double",
            "summary": "An angle in radians for the start."
          },
          {
            "name": "endAngleRadians",
            "type": "System.Double",
            "summary": "An angle in radians for the end."
          }
        ],
        "returns": "A new surface of revolution, or None if any of the inputs is invalid or on error."
      },
      {
        "signature": "RevSurface Create(Line revoluteLine, Line axisOfRevolution)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Constructs a new surface of revolution from a generatrix line and an axis.  \nIf the operation succeeds, results can be (truncated) cones, cylinders and circular hyperboloids.",
        "since": "5.0",
        "parameters": [
          {
            "name": "revoluteLine",
            "type": "Line",
            "summary": "A generatrix."
          },
          {
            "name": "axisOfRevolution",
            "type": "Line",
            "summary": "An axis."
          }
        ],
        "returns": "A new surface of revolution, or None if any of the inputs is invalid or on error."
      },
      {
        "signature": "RevSurface Create(Polyline revolutePolyline, Line axisOfRevolution, System.Double startAngleRadians, System.Double endAngleRadians)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Constructs a new surface of revolution from a generatrix polyline and an axis.  \nThis overload accepts a slice start and end angles.",
        "since": "5.0",
        "parameters": [
          {
            "name": "revolutePolyline",
            "type": "Polyline",
            "summary": "A generatrix."
          },
          {
            "name": "axisOfRevolution",
            "type": "Line",
            "summary": "An axis."
          },
          {
            "name": "startAngleRadians",
            "type": "System.Double",
            "summary": "An angle in radians for the start."
          },
          {
            "name": "endAngleRadians",
            "type": "System.Double",
            "summary": "An angle in radians for the end."
          }
        ],
        "returns": "A new surface of revolution, or None if any of the inputs is invalid or on error."
      },
      {
        "signature": "RevSurface Create(Polyline revolutePolyline, Line axisOfRevolution)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Constructs a new surface of revolution from a generatrix polyline and an axis.",
        "since": "5.0",
        "parameters": [
          {
            "name": "revolutePolyline",
            "type": "Polyline",
            "summary": "A generatrix."
          },
          {
            "name": "axisOfRevolution",
            "type": "Line",
            "summary": "An axis."
          }
        ],
        "returns": "A new surface of revolution, or None if any of the inputs is invalid or on error."
      },
      {
        "signature": "RevSurface CreateFromCone(Cone cone)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Constructs a new surface of revolution from the values of a cone.",
        "since": "5.0",
        "parameters": [
          {
            "name": "cone",
            "type": "Cone",
            "summary": "A cone."
          }
        ],
        "returns": "A new surface of revolution, or None if any of the inputs is invalid or on error."
      },
      {
        "signature": "RevSurface CreateFromCylinder(Cylinder cylinder)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Constructs a new surface of revolution from the values of a cylinder.",
        "since": "5.0",
        "parameters": [
          {
            "name": "cylinder",
            "type": "Cylinder",
            "summary": "A cylinder."
          }
        ],
        "returns": "A new surface of revolution, or None if any of the inputs is invalid or on error."
      },
      {
        "signature": "RevSurface CreateFromSphere(Sphere sphere)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Constructs a new surface of revolution from the values of a sphere.",
        "since": "5.0",
        "parameters": [
          {
            "name": "sphere",
            "type": "Sphere",
            "summary": "A sphere."
          }
        ],
        "returns": "A new surface of revolution, or None if any of the inputs is invalid or on error."
      },
      {
        "signature": "RevSurface CreateFromTorus(Torus torus)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Constructs a new surface of revolution from the values of a torus.",
        "since": "5.0",
        "parameters": [
          {
            "name": "torus",
            "type": "Torus",
            "summary": "A torus."
          }
        ],
        "returns": "A new surface of revolution, or None if any of the inputs is invalid or on error."
      },
      {
        "signature": "System.Boolean AxisAndCurveCoplanar()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Detemines if the axis of revolution and the curve are co-planar.",
        "since": "9.0",
        "returns": "True if the axis of revolution and the curve are co-planar, False otherwise."
      }
    ]
  },
  {
    "namespace": "Rhino.Geometry",
    "name": "RhinoVariationalDomain",
    "dataType": "enum",
    "summary": "The type of trimming domain",
    "values": [
      {
        "signature": "Projected = 0",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Project the input curves to a least-squares plane"
      },
      {
        "signature": "Molded = 1",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Project the input curves to a least-squares plane, then iteratively mold the surface to the constraints."
      },
      {
        "signature": "Untrimmed = 2",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Do not use a trimming domain"
      },
      {
        "signature": "MultiBlend = 3",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Create a multi-blend"
      }
    ]

  },
  {
    "namespace": "Rhino.Geometry",
    "name": "RibbonOffsetParameters",
    "dataType": "class",
    "summary": "Advanced parameters for RibbonOffset Parameters mimic the RibbonOffset Command.",
    "constructors": [
      {
        "signature": "RibbonOffsetParameters()",
        "summary": "Initializes a new instance of the RibbonOffsetParameters class"
      }
    ],
    "properties": [
      {
        "signature": "bool AlignCrossSections",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "When false: cross section slashes between input and output curve are located at the ends of ruled spans. When true: cross section slashes between input and output curve are located at the mid points of ruled spans and blends.",
        "since": "8.9",
        "property": ["get", "set"]
      },
      {
        "signature": "double BlendRadius",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Positive, typically the same as distance. When the offset results in a self-intersection that gets trimmed off at a kink, the kink will be blended out using this radius.",
        "since": "8.9",
        "property": ["get", "set"]
      },
      {
        "signature": "double OffsetDistance",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Offset curve distance from input curve.",
        "since": "8.9",
        "property": ["get", "set"]
      },
      {
        "signature": "Point3d OffsetLocation",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Inside or Outside point location",
        "since": "8.9",
        "property": ["get", "set"]
      },
      {
        "signature": "Vector3d OffsetPlaneVector3d",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "A vector that indicates the normal of the plane in which the offset will occur. This vector is typically similar to a logical extrude direction for the closed input curve.",
        "since": "8.9",
        "property": ["get", "set"]
      },
      {
        "signature": "double OffsetTolerance",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Used to determine self-intersections of offset curve, not offset error.",
        "since": "8.9",
        "property": ["get", "set"]
      },
      {
        "signature": "int RebuildPointCount",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Rebuild offset curve with defined number of control points 0 for disabled",
        "since": "8.9",
        "property": ["get", "set"]
      },
      {
        "signature": "double RefitTolerance",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Refit the offset curve to a specified tolerance 0 for disabled",
        "since": "8.9",
        "property": ["get", "set"]
      },
      {
        "signature": "RibbonOffsetSurfaceMethod RibbonSurfaceGenerationMethod",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "0 - no surfaces will be created, curves only 1 - Simple Sweep 2 2 - Sweep 2 mixed with NetworkSrf corners",
        "since": "8.9",
        "property": ["get", "set"]
      }
    ]
  },
  {
    "namespace": "Rhino.Geometry",
    "name": "RibbonOffsetSurfaceMethod",
    "dataType": "enum",
    "summary": "Enum for RibbonOffset surface generation",
    "since": "8.9",
    "values": [
      {
        "signature": "None = 0",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "No Surfaces will be created"
      },
      {
        "signature": "Sweep2 = 1",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Creates surfaces based off of Sweep 2 Rails"
      },
      {
        "signature": "Sweep2NetworkSrf = 2",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Creates a mix of sweeps and network surfaces. NetworkSrf will be applied in corners with 3 sides"
      }
    ]

  },
  {
    "namespace": "Rhino.Geometry",
    "name": "RTree",
    "dataType": "class",
    "summary": "Represents a spatial search structure based on implementations of the R-tree algorithm by Toni Gutman.",
    "remarks": "The opennurbs rtree code is a modified version of the free and unrestricted R-tree implementation obtained from http://www.superliminal.com/sources/sources.htm .",
    "interfaces": ["IDisposable"],
    "constructors": [
      {
        "signature": "RTree()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Initializes a new, empty instance of the tree.",
        "since": "5.0"
      }
    ],
    "properties": [
      {
        "signature": "int Count",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the number of items in this tree.",
        "since": "5.0",
        "property": ["get"]
      }
    ],
    "methods": [
      {
        "signature": "RTree CreateFromPointArray(IEnumerable<Point3d> points)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Constructs a new tree with an element for each point cloud point.",
        "since": "6.0",
        "parameters": [
          {
            "name": "points",
            "type": "IEnumerable<Point3d>",
            "summary": "Points."
          }
        ],
        "returns": "A new tree, or None on error."
      },
      {
        "signature": "RTree CreateMeshFaceTree(Mesh mesh)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Constructs a new tree with an element for each face in the mesh. The element id is set to the index of the face.",
        "since": "5.0",
        "parameters": [
          {
            "name": "mesh",
            "type": "Mesh",
            "summary": "A mesh."
          }
        ],
        "returns": "A new tree, or None on error."
      },
      {
        "signature": "RTree CreatePointCloudTree(PointCloud cloud)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Constructs a new tree with an element for each point cloud point.",
        "since": "5.0",
        "parameters": [
          {
            "name": "cloud",
            "type": "PointCloud",
            "summary": "A point cloud."
          }
        ],
        "returns": "A new tree, or None on error."
      },
      {
        "signature": "IEnumerable<int[]> Point3dClosestPoints(IEnumerable<Point3d> hayPoints, IEnumerable<Point3d> needlePts, System.Double limitDistance)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Finds the point in a list of 3D points that is closest to a test point.",
        "since": "6.0",
        "parameters": [
          {
            "name": "hayPoints",
            "type": "IEnumerable<Point3d>",
            "summary": "A series of points."
          },
          {
            "name": "needlePts",
            "type": "IEnumerable<Point3d>",
            "summary": "Points to search for."
          },
          {
            "name": "limitDistance",
            "type": "System.Double",
            "summary": "The maximum allowed distance."
          }
        ],
        "returns": "An enumerable of arrays of indices; each array contains the indices for each of the needlePts."
      },
      {
        "signature": "IEnumerable<int[]> Point3dKNeighbors(IEnumerable<Point3d> hayPoints, IEnumerable<Point3d> needlePts, System.Int32 amount)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Finds a certain amount of points in a list of 3D points that are the k-closest to a test point.",
        "since": "6.0",
        "parameters": [
          {
            "name": "hayPoints",
            "type": "IEnumerable<Point3d>",
            "summary": "A series of points."
          },
          {
            "name": "needlePts",
            "type": "IEnumerable<Point3d>",
            "summary": "Points to search for."
          },
          {
            "name": "amount",
            "type": "System.Int32",
            "summary": "The required amount of closest neighbors to find."
          }
        ],
        "returns": "An enumerable of arrays of indices; each array contains the indices for each of the needlePts."
      },
      {
        "signature": "IEnumerable<int[]> PointCloudClosestPoints(PointCloud pointcloud, IEnumerable<Point3d> needlePts, System.Double limitDistance)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Finds the point in a list of 3D points that is closest to a test point.",
        "since": "6.0",
        "parameters": [
          {
            "name": "pointcloud",
            "type": "PointCloud",
            "summary": "A point cloud to be searched."
          },
          {
            "name": "needlePts",
            "type": "IEnumerable<Point3d>",
            "summary": "Points to search for."
          },
          {
            "name": "limitDistance",
            "type": "System.Double",
            "summary": "The maximum allowed distance."
          }
        ],
        "returns": "An enumerable of arrays of indices; each array contains the indices for each of the needlePts."
      },
      {
        "signature": "IEnumerable<int[]> PointCloudKNeighbors(PointCloud pointcloud, IEnumerable<Point3d> needlePts, System.Int32 amount)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Finds a certain amount of points in a list of 3D points that are the k-closest to a test point.",
        "since": "6.0",
        "parameters": [
          {
            "name": "pointcloud",
            "type": "PointCloud",
            "summary": "A point cloud to be searched."
          },
          {
            "name": "needlePts",
            "type": "IEnumerable<Point3d>",
            "summary": "Points to search for."
          },
          {
            "name": "amount",
            "type": "System.Int32",
            "summary": "The required amount of closest neighbors to find."
          }
        ],
        "returns": "An enumerable of arrays of indices; each array contains the indices for each of the needlePts."
      },
      {
        "signature": "System.Boolean SearchOverlaps(RTree treeA, RTree treeB, System.Double tolerance, EventHandler<RTreeEventArgs> callback)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Searches two R-trees for all pairs elements whose bounding boxes overlap.",
        "since": "5.0",
    "remarks": "Do not modify the tree while a Search() is in progress. Doing so can have unintended consequences, including corruption and crashes.If you need to modify the tree, collect the results during the search and modify the tree once the search is completed.",
        "parameters": [
          {
            "name": "treeA",
            "type": "RTree",
            "summary": "A first tree."
          },
          {
            "name": "treeB",
            "type": "RTree",
            "summary": "A second tree."
          },
          {
            "name": "tolerance",
            "type": "System.Double",
            "summary": "If the distance between a pair of bounding boxes is less than tolerance, then callback is called."
          },
          {
            "name": "callback",
            "type": "EventHandler<RTreeEventArgs>",
            "summary": "A callback event handler."
          }
        ],
        "returns": "True if entire tree was searched.  It is possible no results were found."
      },
      {
        "signature": "System.Void Clear()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Removes all elements.",
        "since": "5.0"
      },
      {
        "signature": "System.Void Dispose()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Actively reclaims unmanaged resources that this instance uses.",
        "since": "5.0"
      },
      {
        "signature": "System.Void Dispose(System.Boolean disposing)",
        "modifiers": ["protected", "virtual"],
        "protected": true,
        "virtual": true,
        "summary": "For derived class implementers.  \nThis method is called with argument True when class user calls Dispose(), while with argument False when     the Garbage Collector invokes the finalizer, or Finalize() method.  \nYou must reclaim all used unmanaged resources in both cases, and can use this chance to call Dispose on disposable fields if the argument is true.  \nAlso, you must call the base virtual method within your overriding method.",
        "parameters": [
          {
            "name": "disposing",
            "type": "System.Boolean",
            "summary": "True if the call comes from the Dispose() method; False if it comes from the Garbage Collector finalizer."
          }
        ]
      },
      {
        "signature": "System.Boolean Insert(BoundingBox box, System.Int32 elementId)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Inserts an element into the tree.",
        "since": "5.0",
        "parameters": [
          {
            "name": "box",
            "type": "BoundingBox",
            "summary": "A bounding box."
          },
          {
            "name": "elementId",
            "type": "System.Int32",
            "summary": "A number."
          }
        ],
        "returns": "True if element was successfully inserted."
      },
      {
        "signature": "System.Boolean Insert(BoundingBox box, System.IntPtr elementId)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Inserts an element into the tree.",
        "since": "5.0",
        "parameters": [
          {
            "name": "box",
            "type": "BoundingBox",
            "summary": "A bounding box."
          },
          {
            "name": "elementId",
            "type": "System.IntPtr",
            "summary": "A pointer."
          }
        ],
        "returns": "True if element was successfully inserted."
      },
      {
        "signature": "System.Boolean Insert(Point2d point, System.Int32 elementId)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Inserts an element into the tree.",
        "since": "5.0",
        "parameters": [
          {
            "name": "point",
            "type": "Point2d",
            "summary": "A point."
          },
          {
            "name": "elementId",
            "type": "System.Int32",
            "summary": "A number."
          }
        ],
        "returns": "True if element was successfully inserted."
      },
      {
        "signature": "System.Boolean Insert(Point2d point, System.IntPtr elementId)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Inserts an element into the tree.",
        "since": "5.0",
        "parameters": [
          {
            "name": "point",
            "type": "Point2d",
            "summary": "A point."
          },
          {
            "name": "elementId",
            "type": "System.IntPtr",
            "summary": "A pointer."
          }
        ],
        "returns": "True if element was successfully inserted."
      },
      {
        "signature": "System.Boolean Insert(Point3d point, System.Int32 elementId)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Inserts an element into the tree.",
        "since": "5.0",
        "parameters": [
          {
            "name": "point",
            "type": "Point3d",
            "summary": "A point."
          },
          {
            "name": "elementId",
            "type": "System.Int32",
            "summary": "A number."
          }
        ],
        "returns": "True if element was successfully inserted."
      },
      {
        "signature": "System.Boolean Insert(Point3d point, System.IntPtr elementId)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Inserts an element into the tree.",
        "since": "5.0",
        "parameters": [
          {
            "name": "point",
            "type": "Point3d",
            "summary": "A point."
          },
          {
            "name": "elementId",
            "type": "System.IntPtr",
            "summary": "A pointer."
          }
        ],
        "returns": "True if element was successfully inserted."
      },
      {
        "signature": "System.Boolean Remove(BoundingBox box, System.Int32 elementId)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Removes an element from the tree.",
        "since": "5.0",
        "parameters": [
          {
            "name": "box",
            "type": "BoundingBox",
            "summary": "A bounding box."
          },
          {
            "name": "elementId",
            "type": "System.Int32",
            "summary": "A number."
          }
        ],
        "returns": "True if element was successfully removed."
      },
      {
        "signature": "System.Boolean Remove(BoundingBox box, System.IntPtr elementId)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Removes an element from the tree.",
        "since": "5.0",
        "parameters": [
          {
            "name": "box",
            "type": "BoundingBox",
            "summary": "A bounding box."
          },
          {
            "name": "elementId",
            "type": "System.IntPtr",
            "summary": "A pointer."
          }
        ],
        "returns": "True if element was successfully removed."
      },
      {
        "signature": "System.Boolean Remove(Point2d point, System.Int32 elementId)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Removes an element from the tree.",
        "since": "5.0",
        "parameters": [
          {
            "name": "point",
            "type": "Point2d",
            "summary": "A point."
          },
          {
            "name": "elementId",
            "type": "System.Int32",
            "summary": "A number."
          }
        ],
        "returns": "True if element was successfully removed."
      },
      {
        "signature": "System.Boolean Remove(Point3d point, System.Int32 elementId)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Removes an element from the tree.",
        "since": "5.0",
        "parameters": [
          {
            "name": "point",
            "type": "Point3d",
            "summary": "A point."
          },
          {
            "name": "elementId",
            "type": "System.Int32",
            "summary": "A number."
          }
        ],
        "returns": "True if element was successfully removed."
      },
      {
        "signature": "System.Boolean Remove(Point3d point, System.IntPtr elementId)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Removes an element from the tree.",
        "since": "5.0",
        "parameters": [
          {
            "name": "point",
            "type": "Point3d",
            "summary": "A point."
          },
          {
            "name": "elementId",
            "type": "System.IntPtr",
            "summary": "A pointer."
          }
        ],
        "returns": "True if element was successfully removed."
      },
      {
        "signature": "System.Boolean Search(BoundingBox box, EventHandler<RTreeEventArgs> callback, System.Object tag)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Searches for items in a bounding box.  \nThe bounding box can be singular and contain exactly one single point.",
        "since": "5.0",
    "remarks": "Do not modify the tree while a Search() is in progress. Doing so can have unintended consequences, including corruption and crashes.If you need to modify the tree, collect the results during the search and modify the tree once the search is completed.",
        "parameters": [
          {
            "name": "box",
            "type": "BoundingBox",
            "summary": "A bounding box."
          },
          {
            "name": "callback",
            "type": "EventHandler<RTreeEventArgs>",
            "summary": "An event handler to be raised when items are found."
          },
          {
            "name": "tag",
            "type": "System.Object",
            "summary": "State to be passed inside the <b>RTreeEventArgs</b> Tag property."
          }
        ],
        "returns": "True if entire tree was searched. It is possible no results were found."
      },
      {
        "signature": "System.Boolean Search(BoundingBox box, EventHandler<RTreeEventArgs> callback)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Searches for items in a bounding box.  \nThe bounding box can be singular and contain exactly one single point.",
        "since": "5.0",
    "remarks": "Do not modify the tree while a Search() is in progress. Doing so can have unintended consequences, including corruption and crashes.If you need to modify the tree, collect the results during the search and modify the tree once the search is completed.",
        "parameters": [
          {
            "name": "box",
            "type": "BoundingBox",
            "summary": "A bounding box."
          },
          {
            "name": "callback",
            "type": "EventHandler<RTreeEventArgs>",
            "summary": "An event handler to be raised when items are found."
          }
        ],
        "returns": "True if entire tree was searched. It is possible no results were found."
      },
      {
        "signature": "System.Boolean Search(Sphere sphere, EventHandler<RTreeEventArgs> callback, System.Object tag)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Searches for items in a sphere.",
        "since": "5.0",
    "remarks": "Do not modify the tree while a Search() is in progress. Doing so can have unintended consequences, including corruption and crashes.If you need to modify the tree, collect the results during the search and modify the tree once the search is completed.",
        "parameters": [
          {
            "name": "sphere",
            "type": "Sphere",
            "summary": "bounds used for searching."
          },
          {
            "name": "callback",
            "type": "EventHandler<RTreeEventArgs>",
            "summary": "An event handler to be raised when items are found."
          },
          {
            "name": "tag",
            "type": "System.Object",
            "summary": "State to be passed inside the <b>RTreeEventArgs</b> Tag property."
          }
        ],
        "returns": "True if entire tree was searched. It is possible no results were found."
      },
      {
        "signature": "System.Boolean Search(Sphere sphere, EventHandler<RTreeEventArgs> callback)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Searches for items in a sphere.",
        "since": "5.0",
    "remarks": "Do not modify the tree while a Search() is in progress. Doing so can have unintended consequences, including corruption and crashes.If you need to modify the tree, collect the results during the search and modify the tree once the search is completed.",
        "parameters": [
          {
            "name": "sphere",
            "type": "Sphere",
            "summary": "bounds used for searching."
          },
          {
            "name": "callback",
            "type": "EventHandler<RTreeEventArgs>",
            "summary": "An event handler to be raised when items are found."
          }
        ],
        "returns": "True if entire tree was searched. It is possible no results were found."
      },
      {
        "signature": "System.Boolean SearchOverlaps(System.Double tolerance, EventHandler<RTreeEventArgs> callback, System.Object tag)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Searches for pairs of bounding boxes that overlap.",
        "since": "9.0",
    "remarks": "Do not modify the tree while a Search() is in progress. Doing so can have unintended consequences, including corruption and crashes.If you need to modify the tree, collect the results during the search and modify the tree once the search is completed.",
        "parameters": [
          {
            "name": "tolerance",
            "type": "System.Double",
            "summary": "bounds used for searching."
          },
          {
            "name": "callback",
            "type": "EventHandler<RTreeEventArgs>",
            "summary": "An event handler to be raised when items are found."
          },
          {
            "name": "tag",
            "type": "System.Object",
            "summary": "State to be passed inside the <b>RTreeEventArgs</b> Tag property."
          }
        ],
        "returns": "True if entire tree was searched. It is possible no results were found."
      }
    ]
  },
  {
    "namespace": "Rhino.Geometry",
    "name": "RTreeEventArgs",
    "dataType": "class",
    "summary": "Represents event data that is passed when an item that meets certain criteria is found and the passed RTree event is raised.",
    "baseclass": "EventArgs",
    "properties": [
      {
        "signature": "bool Cancel",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets a value that determines if the search should be conducted farther.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "int Id",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the identifier of the found item.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "int IdB",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "If search is using two r-trees, IdB is element b in the search.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "IntPtr IdBPtr",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "If search is using two r-trees, IdB is the element b pointer in the search.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "IntPtr IdPtr",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the identifier pointer of the found item.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "BoundingBox SearchBoundingBox",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Bounding box bounds used during a search. You may modify the box in a search callback to help reduce the bounds to search.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "Sphere SearchSphere",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Sphere bounds used during a search. You can modify the sphere in a search callback to help reduce the bounds to search.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "object Tag",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets an arbitrary object that can be attached to this event args. This object will \"stick\" through a single search and can represent user-defined state.",
        "since": "5.0",
        "property": ["get", "set"]
      }
    ]
  },
  {
    "namespace": "Rhino.Geometry",
    "name": "ShrinkWrapParameters",
    "dataType": "class",
    "summary": "Parameters for ShrinkWrap method",
    "since": "8.0",
    "constructors": [
      {
        "signature": "ShrinkWrapParameters()",
        "summary": "Initializes a new instance of the ShrinkWrapParameters class"
      }
    ],
    "properties": [
      {
        "signature": "bool FillHolesInInputObjects",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Any input meshes will have \"Fill Holes\" applied to them before volume creation This value is ignored when input objects are Point Clouds",
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool InflateVerticesAndPoints",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Inflate mesh vertices, points and point clouds Mesh vertices will be inflated as though the mesh were a point cloud",
        "since": "8.3",
        "property": ["get", "set"]
      },
      {
        "signature": "double Offset",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Distance to offset outward or inward",
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "int PolygonOptimization",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "0 - 100 the percentage of optimization desired. Polygons will be reduced in areas of lower curvature Lower values result in better feature preservation at the cost of more polygons",
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool PreserveColors",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Transfers mesh vertex and or point cloud colors to the shrinkwrapped results.",
        "property": ["get", "set"]
      },
      {
        "signature": "int SmoothingIterations",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Number of times to apply smoothing",
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "double TargetEdgeLength",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "The desired target edge length in document units Smaller values equal more mesh resolution at the expense of larger mesh sizes",
        "since": "8.0",
        "property": ["get", "set"]
      }
    ]
  },
  {
    "namespace": "Rhino.Geometry",
    "name": "ShutLiningCurveInfo",
    "dataType": "class",
    "summary": "Contains shutlining curve information. This is used in <b>Mesh.WithShutLining</b> .",
    "constructors": [
      {
        "signature": "ShutLiningCurveInfo(Curve curve, double radius, int profile, bool pull, bool isBump, IEnumerable<Interval> curveIntervals, bool enabled)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Creates a new instance of the ShutLining curve information class.",
        "since": "6.0",
        "parameters": [
          {
            "name": "curve",
            "type": "Curve",
            "summary": "The profile curve."
          },
          {
            "name": "radius",
            "type": "System.Double",
            "summary": "The profile radius."
          },
          {
            "name": "profile",
            "type": "System.Int32",
            "summary": "The profile type."
          },
          {
            "name": "pull",
            "type": "System.Boolean",
            "summary": "True if the curve should be pulled."
          },
          {
            "name": "isBump",
            "type": "System.Boolean",
            "summary": "True if profile constitutes a bump. See Rhino's Help for more information."
          },
          {
            "name": "curveIntervals",
            "type": "IEnumerable<Interval>",
            "summary": "The parts of the curve to use as profiles."
          },
          {
            "name": "enabled",
            "type": "System.Boolean",
            "summary": "If true, this curve is active."
          }
        ]
      }
    ],
    "properties": [
      {
        "signature": "Curve Curve",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "The profile curve.",
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "ReadOnlyCollection<Interval> CurveIntervals",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "The parts of the curve to use as profiles.",
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "bool Enabled",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "If true, this curve is active.",
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "bool IsBump",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "True if profile constitutes a bump. See Rhino's Help for more information.",
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "int Profile",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": ">The profile type.",
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "bool Pull",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "True if the curve should be pulled.",
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "double Radius",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "The profile radius.",
        "since": "6.0",
        "property": ["get"]
      }
    ]
  },
  {
    "namespace": "Rhino.Geometry",
    "name": "Silhouette",
    "dataType": "class",
    "summary": "Information about silhouette curves that are generated from geometry (surfaces, brep faces, meshes)",
    "constructors": [
      {
        "signature": "Silhouette()",
        "summary": "Initializes a new instance of the Silhouette class"
      }
    ],
    "properties": [
      {
        "signature": "Curve Curve",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "3D curve representing the shape of the silhouette.",
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "ComponentIndex GeometryComponentIndex",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the component index corresponding with this silhouette curve. This field is only set when the entire silhouette curve is part of some geometry component.",
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "SilhouetteType SilhouetteType",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the type of this silhouette curve.",
        "since": "6.0",
        "property": ["get", "set"]
      }
    ],
    "methods": [
      {
        "signature": "Silhouette[] Compute(GeometryBase geometry, SilhouetteType silhouetteType, Point3d perspectiveCameraLocation, System.Double tolerance, System.Double angleToleranceRadians, IEnumerable<Plane> clippingPlanes, System.Threading.CancellationToken cancelToken)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Compute silhouettes of a shape for a perspective projection.",
        "since": "6.0",
        "parameters": [
          {
            "name": "geometry",
            "type": "GeometryBase",
            "summary": "Geometry whose silhouettes need to be computed. Can be Brep, BrepFace, Mesh, or Extrusion."
          },
          {
            "name": "silhouetteType",
            "type": "SilhouetteType",
            "summary": "Types of silhouette to compute."
          },
          {
            "name": "perspectiveCameraLocation",
            "type": "Point3d",
            "summary": "Location of perspective camera."
          },
          {
            "name": "tolerance",
            "type": "System.Double",
            "summary": "Tolerance to use for determining projecting relationships. Surfaces and curves that are closer than tolerance, may be treated as projecting. When in doubt use RhinoDoc.ModelAbsoluteTolerance."
          },
          {
            "name": "angleToleranceRadians",
            "type": "System.Double",
            "summary": "Angular tolerance to use for determining projecting relationships. A surface normal N that satisfies N o cameraDirection < Sin(angleToleranceRadians) may be considered projecting. When in doubt use RhinoDoc.ModelAngleToleranceRadians."
          },
          {
            "name": "clippingPlanes",
            "type": "IEnumerable<Plane>",
            "summary": "Optional collection of clipping planes."
          },
          {
            "name": "cancelToken",
            "type": "System.Threading.CancellationToken",
            "summary": "Computation cancellation token."
          }
        ],
        "returns": "Array of silhouette curves."
      },
      {
        "signature": "Silhouette[] Compute(GeometryBase geometry, SilhouetteType silhouetteType, Point3d perspectiveCameraLocation, System.Double tolerance, System.Double angleToleranceRadians)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Compute silhouettes of a shape for a perspective projection.",
        "since": "6.0",
        "parameters": [
          {
            "name": "geometry",
            "type": "GeometryBase",
            "summary": "Geometry whose silhouettes need to be computed. Can be Brep, BrepFace, Mesh, or Extrusion."
          },
          {
            "name": "silhouetteType",
            "type": "SilhouetteType",
            "summary": "Types of silhouette to compute."
          },
          {
            "name": "perspectiveCameraLocation",
            "type": "Point3d",
            "summary": "Location of perspective camera."
          },
          {
            "name": "tolerance",
            "type": "System.Double",
            "summary": "Tolerance to use for determining projecting relationships. Surfaces and curves that are closer than tolerance, may be treated as projecting. When in doubt use RhinoDoc.ModelAbsoluteTolerance."
          },
          {
            "name": "angleToleranceRadians",
            "type": "System.Double",
            "summary": "Angular tolerance to use for determining projecting relationships. A surface normal N that satisfies N o cameraDirection < Sin(angleToleranceRadians) may be considered projecting. When in doubt use RhinoDoc.ModelAngleToleranceRadians."
          }
        ],
        "returns": "Array of silhouette curves."
      },
      {
        "signature": "Silhouette[] Compute(GeometryBase geometry, SilhouetteType silhouetteType, Vector3d parallelCameraDirection, System.Double tolerance, System.Double angleToleranceRadians, IEnumerable<Plane> clippingPlanes, System.Threading.CancellationToken cancelToken)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Compute silhouettes of a shape for a parallel projection.",
        "since": "6.0",
        "parameters": [
          {
            "name": "geometry",
            "type": "GeometryBase",
            "summary": "Geometry whose silhouettes need to be computed. Can be Brep, BrepFace, Mesh, or Extrusion."
          },
          {
            "name": "silhouetteType",
            "type": "SilhouetteType",
            "summary": "Types of silhouette to compute."
          },
          {
            "name": "parallelCameraDirection",
            "type": "Vector3d",
            "summary": "Direction of parallel camera."
          },
          {
            "name": "tolerance",
            "type": "System.Double",
            "summary": "Tolerance to use for determining projecting relationships. Surfaces and curves that are closer than tolerance, may be treated as projecting. When in doubt use RhinoDoc.ModelAbsoluteTolerance."
          },
          {
            "name": "angleToleranceRadians",
            "type": "System.Double",
            "summary": "Angular tolerance to use for determining projecting relationships. A surface normal N that satisfies N o cameraDirection < Sin(angleToleranceRadians) may be considered projecting. When in doubt use RhinoDoc.ModelAngleToleranceRadians."
          },
          {
            "name": "clippingPlanes",
            "type": "IEnumerable<Plane>",
            "summary": "Optional collection of clipping planes."
          },
          {
            "name": "cancelToken",
            "type": "System.Threading.CancellationToken",
            "summary": "Computation cancellation token."
          }
        ],
        "returns": "Array of silhouette curves."
      },
      {
        "signature": "Silhouette[] Compute(GeometryBase geometry, SilhouetteType silhouetteType, Vector3d parallelCameraDirection, System.Double tolerance, System.Double angleToleranceRadians)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Compute silhouettes of a shape for a parallel projection.",
        "since": "6.0",
        "parameters": [
          {
            "name": "geometry",
            "type": "GeometryBase",
            "summary": "Geometry whose silhouettes need to be computed. Can be Brep, BrepFace, Mesh, or Extrusion."
          },
          {
            "name": "silhouetteType",
            "type": "SilhouetteType",
            "summary": "Types of silhouette to compute."
          },
          {
            "name": "parallelCameraDirection",
            "type": "Vector3d",
            "summary": "Direction of parallel camera."
          },
          {
            "name": "tolerance",
            "type": "System.Double",
            "summary": "Tolerance to use for determining projecting relationships. Surfaces and curves that are closer than tolerance, may be treated as projecting. When in doubt use RhinoDoc.ModelAbsoluteTolerance."
          },
          {
            "name": "angleToleranceRadians",
            "type": "System.Double",
            "summary": "Angular tolerance to use for determining projecting relationships. A surface normal N that satisfies N o cameraDirection < Sin(angleToleranceRadians) may be considered projecting. When in doubt use RhinoDoc.ModelAngleToleranceRadians."
          }
        ],
        "returns": "Array of silhouette curves."
      },
      {
        "signature": "Silhouette[] Compute(GeometryBase geometry, SilhouetteType silhouetteType, ViewportInfo viewport, System.Double tolerance, System.Double angleToleranceRadians, IEnumerable<Plane> clippingPlanes, System.Threading.CancellationToken cancelToken)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Compute silhouettes of a shape for a specified projection.",
        "since": "6.0",
        "parameters": [
          {
            "name": "geometry",
            "type": "GeometryBase",
            "summary": "Geometry whose silhouettes need to be computed. Can be Brep, BrepFace, Mesh, or Extrusion."
          },
          {
            "name": "silhouetteType",
            "type": "SilhouetteType",
            "summary": "Types of silhouette to compute."
          },
          {
            "name": "viewport",
            "type": "ViewportInfo",
            "summary": "Projection."
          },
          {
            "name": "tolerance",
            "type": "System.Double",
            "summary": "Tolerance to use for determining projecting relationships. Surfaces and curves that are closer than tolerance, may be treated as projecting. When in doubt use RhinoDoc.ModelAbsoluteTolerance."
          },
          {
            "name": "angleToleranceRadians",
            "type": "System.Double",
            "summary": "Angular tolerance to use for determining projecting relationships. A surface normal N that satisfies N o cameraDirection < Sin(angleToleranceRadians) may be considered projecting. When in doubt use RhinoDoc.ModelAngleToleranceRadians."
          },
          {
            "name": "clippingPlanes",
            "type": "IEnumerable<Plane>",
            "summary": "Optional collection of clipping planes."
          },
          {
            "name": "cancelToken",
            "type": "System.Threading.CancellationToken",
            "summary": "Computation cancellation token."
          }
        ],
        "returns": "Array of silhouette curves."
      },
      {
        "signature": "Silhouette[] Compute(GeometryBase geometry, SilhouetteType silhouetteType, ViewportInfo viewport, System.Double tolerance, System.Double angleToleranceRadians)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Compute silhouettes of a shape for a specified projection.",
        "since": "6.0",
        "parameters": [
          {
            "name": "geometry",
            "type": "GeometryBase",
            "summary": "Geometry whose silhouettes need to be computed. Can be Brep, BrepFace, Mesh, or Extrusion."
          },
          {
            "name": "silhouetteType",
            "type": "SilhouetteType",
            "summary": "Types of silhouette to compute."
          },
          {
            "name": "viewport",
            "type": "ViewportInfo",
            "summary": "Projection."
          },
          {
            "name": "tolerance",
            "type": "System.Double",
            "summary": "Tolerance to use for determining projecting relationships. Surfaces and curves that are closer than tolerance, may be treated as projecting. When in doubt use RhinoDoc.ModelAbsoluteTolerance."
          },
          {
            "name": "angleToleranceRadians",
            "type": "System.Double",
            "summary": "Angular tolerance to use for determining projecting relationships. A surface normal N that satisfies N o cameraDirection < Sin(angleToleranceRadians) may be considered projecting. When in doubt use RhinoDoc.ModelAngleToleranceRadians."
          }
        ],
        "returns": "Array of silhouette curves."
      },
      {
        "signature": "Silhouette[] ComputeDraftCurve(GeometryBase geometry, System.Double draftAngle, Vector3d pullDirection, System.Double tolerance, System.Double angleToleranceRadians, System.Threading.CancellationToken cancelToken)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Computes draft curve silhouettes of a shape.",
        "since": "7.0",
        "parameters": [
          {
            "name": "geometry",
            "type": "GeometryBase",
            "summary": "Geometry whose silhouettes need to be computed. Can be Brep, BrepFace, Mesh, or Extrusion."
          },
          {
            "name": "draftAngle",
            "type": "System.Double",
            "summary": "The draft angle in radians. Draft angle can be a positive or negative value."
          },
          {
            "name": "pullDirection",
            "type": "Vector3d",
            "summary": "3d direction for the mold to be pulled in, directed away from the object."
          },
          {
            "name": "tolerance",
            "type": "System.Double",
            "summary": "Tolerance to use for determining projecting relationships. Surfaces and curves that are closer than tolerance, may be treated as projecting. When in doubt use RhinoDoc.ModelAbsoluteTolerance."
          },
          {
            "name": "angleToleranceRadians",
            "type": "System.Double",
            "summary": "Angular tolerance to use for determining projecting relationships. A surface normal N that satisfies N o cameraDirection < Sin(angleToleranceRadians) may be considered projecting. When in doubt use RhinoDoc.ModelAngleToleranceRadians."
          },
          {
            "name": "cancelToken",
            "type": "System.Threading.CancellationToken",
            "summary": "Computation cancellation token."
          }
        ],
        "returns": "Array of silhouette curves."
      },
      {
        "signature": "Silhouette[] ComputeDraftCurve(GeometryBase geometry, System.Double draftAngle, Vector3d pullDirection, System.Double tolerance, System.Double angleToleranceRadians)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Computes draft curve silhouettes of a shape.",
        "since": "7.0",
        "parameters": [
          {
            "name": "geometry",
            "type": "GeometryBase",
            "summary": "Geometry whose silhouettes need to be computed. Can be Brep, BrepFace, Mesh, or Extrusion."
          },
          {
            "name": "draftAngle",
            "type": "System.Double",
            "summary": "The draft angle in radians. Draft angle can be a positive or negative value."
          },
          {
            "name": "pullDirection",
            "type": "Vector3d",
            "summary": "3d direction for the mold to be pulled in, directed away from the object."
          },
          {
            "name": "tolerance",
            "type": "System.Double",
            "summary": "Tolerance to use for determining projecting relationships. Surfaces and curves that are closer than tolerance, may be treated as projecting. When in doubt use RhinoDoc.ModelAbsoluteTolerance."
          },
          {
            "name": "angleToleranceRadians",
            "type": "System.Double",
            "summary": "Angular tolerance to use for determining projecting relationships. A surface normal N that satisfies N o cameraDirection < Sin(angleToleranceRadians) may be considered projecting. When in doubt use RhinoDoc.ModelAngleToleranceRadians."
          }
        ],
        "returns": "Array of silhouette curves."
      }
    ]
  },
  {
    "namespace": "Rhino.Geometry",
    "name": "SilhouetteType",
    "dataType": "enum",
    "summary": "Enumerates the different types of silhouettes and their origins.",
    "since": "6.0",
    "values": [
      {
        "signature": "None = UnsafeNativeMethods.SilEventType.None",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "None."
      },
      {
        "signature": "Projecting = UnsafeNativeMethods.SilEventType.Projecting",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Boundary of a region that projects to a curve. The view direction is tangent to the surface over the entire region."
      },
      {
        "signature": "TangentProjects = UnsafeNativeMethods.SilEventType.TanProjects",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Tangent silhouette curve where the curve projects to a point (within tolerance). In this case side_fill[i] is meaningless so it's left unset."
      },
      {
        "signature": "Tangent = UnsafeNativeMethods.SilEventType.Tangent",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Tangent silhouette curve. The view direction is tangent to the surface along the curve."
      },
      {
        "signature": "Crease = UnsafeNativeMethods.SilEventType.Crease",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Crease on geometry that is a silhouette."
      },
      {
        "signature": "Boundary = UnsafeNativeMethods.SilEventType.Boundary",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Boundary of geometry is always a silhouette."
      },
      {
        "signature": "NonSilhouetteCrease = UnsafeNativeMethods.SilEventType.NonSilCrease",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "A non-silhouette crease, meaning both sides are visible."
      },
      {
        "signature": "NonSilhouetteTangent = UnsafeNativeMethods.SilEventType.NonSilTangent",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "A non-silhouette tangent edge that is not a crease."
      },
      {
        "signature": "NonSilhouetteSeam = UnsafeNativeMethods.SilEventType.NonSilSeam",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "A non-silhouette surface seam."
      },
      {
        "signature": "SectionCut = UnsafeNativeMethods.SilEventType.SectionCut",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Intersection with a clipping plane."
      },
      {
        "signature": "MiscellaneousFeature = UnsafeNativeMethods.SilEventType.MiscFeature",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Miscellaneous curve feature."
      },
      {
        "signature": "DraftCurve = UnsafeNativeMethods.SilEventType.DraftCurve",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Draft curve is a curve of constant draft angle."
      }
    ]

  },
  {
    "namespace": "Rhino.Geometry",
    "name": "SmoothingCoordinateSystem",
    "dataType": "enum",
    "summary": "The direction of the smoothing used by Curve, Surface, and Mesh Smooth.",
    "since": "6.0",
    "values": [
      {
        "signature": "World = 0",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "World coordinates"
      },
      {
        "signature": "CPlane = 1",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Construction plane coordinates"
      },
      {
        "signature": "Object = 2",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Object u, v, and n coordinates"
      }
    ]

  },
  {
    "namespace": "Rhino.Geometry",
    "name": "SpaceMorph",
    "dataType": "class",
    "summary": "Represents a spacial, Euclidean morph.",
    "constructors": [
      {
        "signature": "SpaceMorph()",
        "summary": "Initializes a new instance of the SpaceMorph class"
      }
    ],
    "properties": [
      {
        "signature": "bool PreserveStructure",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "True if the morph should be done in a way that preserves the structure of the geometry. In particular, for NURBS objects, True means that only the control points are moved. The PreserveStructure value does not affect the way meshes and points are morphed. The default is false.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool QuickPreview",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "True if the morph should be done as quickly as possible because the result is being used for some type of dynamic preview. If QuickPreview is true, the tolerance may be ignored. The QuickPreview value does not affect the way meshes and points are morphed. The default is false.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "double Tolerance",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "The desired accuracy of the morph. This value is primarily used for deforming surfaces and breps. The default is 0.0 and any value <= 0.0 is ignored by morphing functions. The Tolerance value does not affect the way meshes and points are morphed.",
        "since": "5.0",
        "property": ["get", "set"]
      }
    ],
    "methods": [
      {
        "signature": "System.Boolean IsMorphable(GeometryBase geometry)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "True if the geometry can be morphed by calling SpaceMorph.Morph(geometry)",
        "since": "5.0"
      },
      {
        "signature": "System.Boolean Morph(GeometryBase geometry)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Apply the space morph to geometry.",
        "since": "5.0",
        "parameters": [
          {
            "name": "geometry",
            "type": "GeometryBase",
            "summary": "Geometry to morph."
          }
        ],
        "returns": "True on success, False on failure."
      },
      {
        "signature": "System.Boolean Morph(ref Plane plane)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Apply the space morph to a plane.",
        "since": "6.0",
        "parameters": [
          {
            "name": "plane",
            "type": "Plane",
            "summary": "Plane to morph."
          }
        ],
        "returns": "True on success, False on failure."
      },
      {
        "signature": "Point3d MorphPoint(Point3d point)",
        "modifiers": ["public", "abstract"],
        "protected": false,
        "virtual": false,
        "summary": "Morphs an Euclidean point.  \nThis method is abstract.",
        "since": "5.0",
        "parameters": [
          {
            "name": "point",
            "type": "Point3d",
            "summary": "A point that will be morphed by this function."
          }
        ],
        "returns": "Resulting morphed point."
      }
    ]
  },
  {
    "namespace": "Rhino.Geometry",
    "name": "Sphere",
    "dataType": "struct",
    "summary": "Represents the plane and radius values of a sphere.",
    "constructors": [
      {
        "signature": "Sphere(Plane equatorialPlane, double radius)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Initializes a new sphere given the plane of the equator circle and radius.",
        "since": "5.0",
        "parameters": [
          {
            "name": "equatorialPlane",
            "type": "Plane",
            "summary": "A plane that will be intersecting the sphere at the same distance from both poles (parameterization singularities)."
          },
          {
            "name": "radius",
            "type": "System.Double",
            "summary": "A radius value."
          }
        ]
      },
      {
        "signature": "Sphere(Point3d center, double radius)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Initializes a new sphere given center point and radius.",
        "since": "5.0",
        "parameters": [
          {
            "name": "center",
            "type": "Point3d",
            "summary": "A center point."
          },
          {
            "name": "radius",
            "type": "System.Double",
            "summary": "A radius value."
          }
        ]
      }
    ],
    "properties": [
      {
        "signature": "Sphere Unset",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Gets a sphere with invalid members.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "BoundingBox BoundingBox",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the world aligned bounding box for this Sphere. If the Sphere is Invalid, an empty box is returned.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "Point3d Center",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the center point of the sphere.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "double Diameter",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the diameter for this sphere.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "Plane EquatorialPlane",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the Equatorial plane for this sphere.",
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "Plane EquitorialPlane",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the Equatorial plane for this sphere.",
        "since": "5.0",
        "obsolete": "This property has been replaced by Equ*A*torialPlane.",
        "property": ["get", "set"]
      },
      {
        "signature": "bool IsValid",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets a value that indicates whether the sphere is valid.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "Point3d NorthPole",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the point at the North Pole of the sphere.  \nThis is the parameterization singularity that can be obtained,     at V value +Math.Pi/2.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "double Radius",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the Radius for this sphere.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "Point3d SouthPole",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the point at the South Pole of the sphere.  \nThis is the parameterization singularity that can be obtained,     at V value -Math.Pi/2.",
        "since": "5.0",
        "property": ["get"]
      }
    ],
    "methods": [
      {
        "signature": "Sphere FitSphereToPoints(IEnumerable<Point3d> points)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Attempts to fit a sphere to a collection of points.",
        "since": "5.0",
        "parameters": [
          {
            "name": "points",
            "type": "System.Collections.Generic.IEnumerable<Point3d>",
            "summary": "Points to fit. The collection must contain at least three points."
          }
        ],
        "returns": "The Sphere that best approximates the points or Sphere.Unset on failure."
      },
      {
        "signature": "System.Boolean ClosestParameter(Point3d testPoint, out System.Double longitudeRadians, out System.Double latitudeRadians)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Finds the angle parameters on this sphere that are closest to a test point.",
        "since": "5.0",
        "parameters": [
          {
            "name": "testPoint",
            "type": "Point3d",
            "summary": "Point to project onto the sphere."
          },
          {
            "name": "longitudeRadians",
            "type": "System.Double",
            "summary": "The longitudinal angle (in radians; 0.0 to 2pi) where the sphere approaches testPoint best."
          },
          {
            "name": "latitudeRadians",
            "type": "System.Double",
            "summary": "The latitudinal angle (in radians; -0.5pi to +0.5pi) where the sphere approaches testPoint best."
          }
        ],
        "returns": "True on success, False on failure. This function will fail if the point it coincident with the sphere center."
      },
      {
        "signature": "Point3d ClosestPoint(Point3d testPoint)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns point on sphere that is closest to given point.",
        "since": "5.0",
        "parameters": [
          {
            "name": "testPoint",
            "type": "Point3d",
            "summary": "Point to project onto Sphere."
          }
        ],
        "returns": "Point on sphere surface closest to testPoint."
      },
      {
        "signature": "System.Boolean EpsilonEquals(Sphere other, System.Double epsilon)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Check that all values in other are within epsilon of the values in this",
        "since": "5.4"
      },
      {
        "signature": "Circle LatitudeDegrees(System.Double degrees)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Computes the parallel at a specific latitude angle.  \nThe angle is specified in degrees.",
        "since": "5.0",
        "parameters": [
          {
            "name": "degrees",
            "type": "System.Double",
            "summary": "An angle in degrees for the meridian."
          }
        ],
        "returns": "A circle."
      },
      {
        "signature": "Circle LatitudeRadians(System.Double radians)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Computes the parallel at a specific latitude angle.  \nThe angle is specified in radians.",
        "since": "5.0",
        "parameters": [
          {
            "name": "radians",
            "type": "System.Double",
            "summary": "An angle in radians for the parallel."
          }
        ],
        "returns": "A circle."
      },
      {
        "signature": "Circle LongitudeDegrees(System.Double degrees)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Computes the meridian at a specific longitude angle.  \nThe angle is specified in degrees.",
        "since": "5.0",
        "parameters": [
          {
            "name": "degrees",
            "type": "System.Double",
            "summary": "An angle in degrees."
          }
        ],
        "returns": "A circle."
      },
      {
        "signature": "Circle LongitudeRadians(System.Double radians)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Computes the meridian at a specific longitude angle.  \nThe angle is specified in radians.",
        "since": "5.0",
        "parameters": [
          {
            "name": "radians",
            "type": "System.Double",
            "summary": "An angle in radians."
          }
        ],
        "returns": "A circle."
      },
      {
        "signature": "Vector3d NormalAt(System.Double longitudeRadians, System.Double latitudeRadians)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Computes the normal at a specific angular location on the sphere.",
        "since": "5.0",
        "parameters": [
          {
            "name": "longitudeRadians",
            "type": "System.Double",
            "summary": "A number within the interval [0, 2pi]."
          },
          {
            "name": "latitudeRadians",
            "type": "System.Double",
            "summary": "A number within the interval [-pi/2, pi/2]."
          }
        ],
        "returns": "A vector."
      },
      {
        "signature": "Point3d PointAt(System.Double longitudeRadians, System.Double latitudeRadians)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Evaluates the sphere at specific longitude and latitude angles.",
        "since": "5.0",
        "parameters": [
          {
            "name": "longitudeRadians",
            "type": "System.Double",
            "summary": "A number within the interval [0, 2pi]."
          },
          {
            "name": "latitudeRadians",
            "type": "System.Double",
            "summary": "A number within the interval [-pi/2,pi/2]."
          }
        ],
        "returns": "A point value."
      },
      {
        "signature": "System.Boolean Rotate(System.Double sinAngle, System.Double cosAngle, Vector3d axisOfRotation, Point3d centerOfRotation)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Rotates this sphere about a point and an axis.",
        "since": "5.0",
        "parameters": [
          {
            "name": "sinAngle",
            "type": "System.Double",
            "summary": "sin(angle)"
          },
          {
            "name": "cosAngle",
            "type": "System.Double",
            "summary": "cod(angle)"
          },
          {
            "name": "axisOfRotation",
            "type": "Vector3d",
            "summary": "Axis of rotation."
          },
          {
            "name": "centerOfRotation",
            "type": "Point3d",
            "summary": "Center of rotation."
          }
        ],
        "returns": "True on success; False on failure."
      },
      {
        "signature": "System.Boolean Rotate(System.Double sinAngle, System.Double cosAngle, Vector3d axisOfRotation)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Rotates this sphere about the center point.",
        "since": "5.0",
        "parameters": [
          {
            "name": "sinAngle",
            "type": "System.Double",
            "summary": "sin(angle)"
          },
          {
            "name": "cosAngle",
            "type": "System.Double",
            "summary": "cos(angle)"
          },
          {
            "name": "axisOfRotation",
            "type": "Vector3d",
            "summary": "The direction of the axis of rotation."
          }
        ],
        "returns": "True on success; False on failure."
      },
      {
        "signature": "System.Boolean Rotate(System.Double angleRadians, Vector3d axisOfRotation, Point3d centerOfRotation)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Rotates this sphere about a point and an axis.",
        "since": "5.0",
        "parameters": [
          {
            "name": "angleRadians",
            "type": "System.Double",
            "summary": "Rotation angle (in Radians)"
          },
          {
            "name": "axisOfRotation",
            "type": "Vector3d",
            "summary": "Axis of rotation."
          },
          {
            "name": "centerOfRotation",
            "type": "Point3d",
            "summary": "Center of rotation."
          }
        ],
        "returns": "True on success; False on failure."
      },
      {
        "signature": "System.Boolean Rotate(System.Double angleRadians, Vector3d axisOfRotation)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Rotates the sphere about the center point.",
        "since": "5.0",
        "parameters": [
          {
            "name": "angleRadians",
            "type": "System.Double",
            "summary": "Angle of rotation (in radians)"
          },
          {
            "name": "axisOfRotation",
            "type": "Vector3d",
            "summary": "Rotation axis."
          }
        ],
        "returns": "True on success; False on failure."
      },
      {
        "signature": "Brep ToBrep()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Converts this sphere is it Brep representation",
        "since": "5.0"
      },
      {
        "signature": "NurbsSurface ToNurbsSurface()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Converts this sphere to its NurbsSurface representation. This is synonymous with calling NurbsSurface.CreateFromSphere().",
        "since": "5.0",
        "returns": "A nurbs surface representation of this sphere or null."
      },
      {
        "signature": "RevSurface ToRevSurface()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Converts this Sphere to a RevSurface representation. This is synonymous with calling RevSurface.CreateFromSphere().",
        "since": "5.0",
        "returns": "A surface of revolution representation of this sphere or null."
      },
      {
        "signature": "System.Boolean Transform(Transform xform)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Transforms this sphere. Note that non-similarity preserving transformations cannot be applied to a sphere as that would result in an ellipsoid.",
        "since": "5.0",
        "parameters": [
          {
            "name": "xform",
            "type": "Transform",
            "summary": "Transformation matrix to apply."
          }
        ],
        "returns": "True on success, False on failure."
      },
      {
        "signature": "System.Boolean Translate(Vector3d delta)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Moves this sphere along a motion vector.",
        "since": "5.0",
        "parameters": [
          {
            "name": "delta",
            "type": "Vector3d",
            "summary": "Motion vector."
          }
        ],
        "returns": "True on success; False on failure."
      }
    ]
  },
  {
    "namespace": "Rhino.Geometry",
    "name": "SquishDeformation",
    "dataType": "enum",
    "summary": "The types of deformation allowed in the squish process",
    "values": [
      {
        "signature": "Free = 0",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "No preference for compression or stretching."
      },
      {
        "signature": "StretchMostly = 1",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Strong bias for expansion when the pattern is deformed into the 3-D shape."
      },
      {
        "signature": "StretchOnly = 2",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Absolutely no compression when the pattern is deformed into the 3-D shape."
      },
      {
        "signature": "CompressMostly = 3",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Strong bias for compression when the pattern is deformed into the 3-D shape."
      },
      {
        "signature": "CompressOnly = 4",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Absolutely no expansion when the pattern is deformed into the 3-D shape."
      },
      {
        "signature": "Custom=5",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "The Custom option lets you set the parameters used by the custom deformations. There are four parameters you can set: BndStretch, BndCompress, InteriorStretch, InteriorCompress The default value for these parameters is 1 and they can be set to any positive number. A larger value reduces the amount of the specified deformation compared to what happens when all four parameters are equal. For example, if you want to severely limit interior expansion, you could do something like: BndStretch = 1 BndCompress = 1 InteriorStretch = 1 InteriorCompress = 100 If you want to preserve boundary lengths you could use the settings: BndStretch = 10 BndCompress = 10 InteriorStretch = 1 InteriorCompress = 1"
      }
    ]

  },
  {
    "namespace": "Rhino.Geometry",
    "name": "Squisher",
    "dataType": "class",
    "summary": "class used to wrap Squish functions",
    "interfaces": ["IDisposable"],
    "constructors": [
      {
        "signature": "Squisher()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "constructs a squisher with default parameters",
        "since": "7.9"
      }
    ],
    "methods": [
      {
        "signature": "System.Boolean Is2dPatternSquished(GeometryBase geometry)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Returns True if the input geometry was the result of a squish operation",
        "since": "7.9"
      },
      {
        "signature": "IEnumerable<GeometryBase> SquishBack2dMarks(GeometryBase squishedGeometry, IEnumerable<GeometryBase> marks)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Maps 2D geometry from the squished surface or mesh back to the original 3D surface or mesh",
        "since": "7.9",
        "parameters": [
          {
            "name": "squishedGeometry",
            "type": "GeometryBase",
            "summary": "The squished surface or mesh"
          },
          {
            "name": "marks",
            "type": "IEnumerable<GeometryBase>",
            "summary": "The input 2D geometry"
          }
        ],
        "returns": "An enumeratd list of squished marks. Individual marks that fail to squish are None in this list. Returns None on complete failure."
      },
      {
        "signature": "System.Void Dispose()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Actively reclaims unmanaged resources that this instance uses.",
        "since": "7.9"
      },
      {
        "signature": "System.Void Dispose(System.Boolean disposing)",
        "modifiers": ["protected", "virtual"],
        "protected": true,
        "virtual": true,
        "summary": "For derived class implementers.  \nThis method is called with argument True when class user calls Dispose(), while with argument False when     the Garbage Collector invokes the finalizer, or Finalize() method.  \nYou must reclaim all used unmanaged resources in both cases, and can use this chance to call Dispose on disposable fields if the argument is true.  \nAlso, you must call the base virtual method within your overriding method.",
        "parameters": [
          {
            "name": "disposing",
            "type": "System.Boolean",
            "summary": "True if the call comes from the Dispose() method; False if it comes from the Garbage Collector finalizer."
          }
        ]
      },
      {
        "signature": "Mesh Get2dMesh()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Get the 2d mesh that results from the squish operation",
        "since": "7.9",
        "returns": "Returns the squished 2d mesh"
      },
      {
        "signature": "Mesh Get3dMesh()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Get the 3d mesh that was used for squish operation",
        "since": "7.9",
        "returns": "Returns the squished 2d mesh"
      },
      {
        "signature": "MeshFace[] GetAreaConstrainedTrianglesIndices()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets mesh vertex indices for the triangular faces that were constrained during the squish. Indices can be used in both the 2d and 3d mesh vertices arrays.",
        "since": "8.0",
        "returns": "An array of mesh faces"
      },
      {
        "signature": "Line[] GetLengthConstrained2dLines()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets lines at the position of the mesh edges and diagonals that were constrained during the squish, in the 2d mesh. The line at any index here corresponds to the same line in GetLengthConstrained3dLines.",
        "since": "8.0",
        "returns": "An array of lines representing the length constraints"
      },
      {
        "signature": "Line[] GetLengthConstrained3dLines()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets lines at the position of the mesh edges and diagonals that were constrained during the squish, in the 3d mesh. The line at any index here corresponds to the same line in GetLengthConstrained2dLines.",
        "since": "8.0",
        "returns": "An array of lines representing the length constraints"
      },
      {
        "signature": "Line[] GetMesh2dEdges()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets lines at the position of the mesh edges and diagonals that were constrained during the squish, in the 2d mesh. The line at any index here corresponds to the same line in GetLengthConstrained3dLines.",
        "since": "7.9",
        "deprecated": "8.0",
    "remarks": "Renamed to GetLengthConstrained2dLines.",
        "returns": "An array of lines representing the length constraints"
      },
      {
        "signature": "Line[] GetMesh3dEdges()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets lines at the position of the mesh edges and diagonals that were constrained during the squish, in the 3d mesh. The line at any index here corresponds to the same line in GetLengthConstrained2dLines.",
        "since": "7.9",
        "deprecated": "8.0",
    "remarks": "Renamed to GetLengthConstrained3dLines.",
        "returns": "An array of lines representing the length constraints"
      },
      {
        "signature": "PolylineCurve SquishCurve(Curve curve)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Maps a curve on or near a previously squished 3d surface to the resulting 2d surface",
        "since": "7.9",
        "parameters": [
          {
            "name": "curve",
            "type": "Curve",
            "summary": "The curve to squish"
          }
        ],
        "returns": "The squished curve"
      },
      {
        "signature": "Mesh SquishMesh(SquishParameters sp, Mesh mesh3d, IEnumerable<GeometryBase> marks, List<GeometryBase> squished_marks_out)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Squish the given mesh into a flat mesh",
        "since": "7.9",
        "parameters": [
          {
            "name": "sp",
            "type": "SquishParameters",
            "summary": "The parameters for the squish operation"
          },
          {
            "name": "mesh3d",
            "type": "Mesh",
            "summary": "The mesh to squish"
          },
          {
            "name": "marks",
            "type": "IEnumerable<GeometryBase>",
            "summary": "Points, Curves, PoiuntClouds, and TextDots to squish. Can be null."
          },
          {
            "name": "squished_marks_out",
            "type": "List<GeometryBase>",
            "summary": "The squished marks. If a mark fails to squish, it will have a None entry in the list."
          }
        ],
        "returns": "A flattened mesh"
      },
      {
        "signature": "Mesh SquishMesh(SquishParameters sp, Mesh mesh3d)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Squish the given mesh into a flat mesh",
        "since": "7.9",
        "parameters": [
          {
            "name": "sp",
            "type": "SquishParameters",
            "summary": "The parameters for the squish operation"
          },
          {
            "name": "mesh3d",
            "type": "Mesh",
            "summary": "The mesh to squish"
          }
        ],
        "returns": "A flattened mesh"
      },
      {
        "signature": "System.Boolean SquishPoint(Point3d point, out Point3d squishedPoint)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Maps a point on or near the previously squished 3d surface to the flattened surface",
        "since": "7.9",
        "parameters": [
          {
            "name": "point",
            "type": "Point3d",
            "summary": "The point to squish"
          },
          {
            "name": "squishedPoint",
            "type": "Point3d",
            "summary": "The squished point"
          }
        ],
        "returns": "True if successful"
      },
      {
        "signature": "Brep SquishSurface(SquishParameters sp, Surface surface, IEnumerable<GeometryBase> marks, List<GeometryBase> squished_marks_out)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Squish the surface into a flat brep",
        "since": "7.9",
    "remarks": "NB: If you are using this function from Grasshopper, which does not have a type that can hold a trimmed surface, you will need to pass a Brep to your component and get the face of interest from this Brep into this function. Otherwise you will lose all trimming information. Example: `brep_out = SquishSurface(sp, brep.Faces[0], marks_in, marks_out)`",
        "parameters": [
          {
            "name": "sp",
            "type": "SquishParameters",
            "summary": "The parameters for the squish operation"
          },
          {
            "name": "surface",
            "type": "Surface",
            "summary": "The surface to be squished"
          },
          {
            "name": "marks",
            "type": "IEnumerable<GeometryBase>",
            "summary": "Point, PountCloud, TextDot, and Curve objects to squish. Can be null."
          },
          {
            "name": "squished_marks_out",
            "type": "List<GeometryBase>",
            "summary": "A list of the squished marks, with None entries for marks that fail to squish. Can be null."
          }
        ],
        "returns": "A brep representing the flattened surface"
      },
      {
        "signature": "Brep SquishSurface(SquishParameters sp, Surface surface)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Squish the surface into a flat brep",
        "since": "7.9",
    "remarks": "NB: If you are using this function from Grasshopper, which does not have a type that can hold a trimmed surface, you will need to pass a Brep to your component and get the face of interest from this Brep into this function. Otherwise you will lose all trimming information. Example: `brep_out = SquishSurface(sp, brep.Faces[0])`",
        "parameters": [
          {
            "name": "sp",
            "type": "SquishParameters",
            "summary": "The parameters for the squish operation"
          },
          {
            "name": "surface",
            "type": "Surface",
            "summary": "The surface to be squished"
          }
        ],
        "returns": "A brep representing the flattened surface"
      },
      {
        "signature": "TextDot SquishTextDot(TextDot textDot)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Maps a TextDot on or near a previously squished 3d surface to the resulting 2d surface",
        "since": "7.9",
        "parameters": [
          {
            "name": "textDot",
            "type": "TextDot",
            "summary": "The text dot to squish"
          }
        ],
        "returns": "The resulting textDot"
      }
    ]
  },
  {
    "namespace": "Rhino.Geometry",
    "name": "SquishFlatteningAlgorithm",
    "dataType": "enum",
    "summary": "Represents the type of flattening to use",
    "values": [
      {
        "signature": "Geometric = 0",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "geometric flattening algorithm: (scale independent)the \"spring\" constant is proportional to 1/L^2 and the result is independent of scale."
      },
      {
        "signature": "PhysicalStress = 1",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "physical stress flattening algorithm: (scale dependent) the \"spring\" constant is proportional to 1/L."
      }
    ]

  },
  {
    "namespace": "Rhino.Geometry",
    "name": "SquishParameters",
    "dataType": "class",
    "summary": "Parameters used by the 'Squish' command flattening algorithm",
    "interfaces": ["IDisposable"],
    "constructors": [
      {
        "signature": "SquishParameters()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Initializes a new instance with default values. Initial values are same as Default.",
        "since": "5.0"
      }
    ],
    "properties": [
      {
        "signature": "SquishParameters Default",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the default Squishing parameters",
        "since": "7.9",
        "property": ["get"]
      },
      {
        "signature": "double AbsoluteLimit",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "If -1.0 <= AnsoluteLimit < 0.0, then an absolute compression limit is applied so that (2d length)/(3d length) >= abs(AbsoluteLimit). In particular, Absolute = -1.0, then no compression is permitted(2d length) >= (3d length). If 0.0 < m_absolute_limit <= 1.0 then an absolute stretching limit is applied so that (2d length)/(3d length) <= 1/abs(AbsoluteLimit). Examples: AbsoluteLimit 1.0: no stretching, (2d length) <= 1.0*(3d length) 0.5: cap on stretching, 0.5*(2d length) <= (3d length) -0.5: cap on compression, (2d length) >= 0.5*(3d length) -1.0: no compression, (2d length) >= 1.0*(3d length)",
        "since": "7.9",
        "property": ["get", "set"]
      },
      {
        "signature": "SquishFlatteningAlgorithm Algorithm",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "The flattening algorithm to use: Geometric: (scale independent)the \"spring\" constant is proportional to 1/L^2 and the result is independent of scale. PhysicalStress: (scale dependent) the \"spring\" constant is proportional to 1/L.",
        "since": "7.9",
        "property": ["get", "set"]
      },
      {
        "signature": "double BoundaryCompressConstant",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Spring constant for compressed boundary edges times the rest length",
        "since": "7.9",
        "property": ["get", "set"]
      },
      {
        "signature": "double BoundaryStretchConstant",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Spring constant for stretched boundary edges",
        "since": "7.9",
        "property": ["get", "set"]
      },
      {
        "signature": "double InteriorCompressConstant",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Spring constant for compressed interior edges times the rest length",
        "since": "7.9",
        "property": ["get", "set"]
      },
      {
        "signature": "double InteriorStretchConstant",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Spring constant for stretched boundary edges times the rest length",
        "since": "7.9",
        "property": ["get", "set"]
      },
      {
        "signature": "bool PreserveTopology",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "the mesh has coincident vertices and PreserveTopology is true, then the flattening is based on the mesh's topology and coincident vertices will remain coincident. Otherwise coincident vertices are free to move apart.",
        "since": "7.9",
        "property": ["get", "set"]
      },
      {
        "signature": "bool SaveMapping",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "If SaveMapping is true, then ON_SquishMesh() will save extra information on the squished mesh so 3d points and curves near the input mesh can be mapped to the squished mesh and 2d points and curves on the squished mesh can be mapped back to the 3d mesh.",
        "since": "7.9",
        "property": ["get", "set"]
      }
    ],
    "methods": [
      {
        "signature": "System.Void Dispose()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Actively reclaims unmanaged resources that this instance uses.",
        "since": "7.9"
      },
      {
        "signature": "System.Void Dispose(System.Boolean disposing)",
        "modifiers": ["protected", "virtual"],
        "protected": true,
        "virtual": true,
        "summary": "For derived class implementers.  \nThis method is called with argument True when class user calls Dispose(), while with argument False when     the Garbage Collector invokes the finalizer, or Finalize() method.  \nYou must reclaim all used unmanaged resources in both cases, and can use this chance to call Dispose on disposable fields if the argument is true.  \nAlso, you must call the base virtual method within your overriding method.",
        "parameters": [
          {
            "name": "disposing",
            "type": "System.Boolean",
            "summary": "True if the call comes from the Dispose() method; False if it comes from the Garbage Collector finalizer."
          }
        ]
      },
      {
        "signature": "System.Boolean GetSpringConstants(out System.Double boundaryBias, out System.Double deformationBias)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "See if the spring constants could have been set with SetSpringConstants().",
        "since": "7.9",
        "parameters": [
          {
            "name": "boundaryBias",
            "type": "System.Double",
            "summary": "boundary_bias: 0.0 to 1.0 0.0: boundary and interior treated the same 1.0: strongest bias to preserving boundary lengths at the expense of interior distortion."
          },
          {
            "name": "deformationBias",
            "type": "System.Double",
            "summary": "deformation_bias: -1.0 to 1.0 -1.0: strongest bias in favor of compression. 0.0: no preference between compression and stretching 1.0: strongest bias in favor of stretching"
          }
        ],
        "returns": "If the spring constants have values that could be set by calling SetSpringConstants(), then boundary_bias and deformation_bias are set to those values and this function returns true.  Otherwise, boundaryBias and deformationBias are set to 0.0 and False is returned."
      },
      {
        "signature": "System.Void SetDeformation(SquishDeformation deformation, System.Boolean bPreserveBoundary, System.Double boundaryStretchConstant, System.Double boundaryCompressConstant, System.Double interiorStretchConstant, System.Double interiorCompressConstant)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Sets the squish deformation characteristics",
        "since": "7.9"
      },
      {
        "signature": "System.Void SetSpringConstants(System.Double boundaryBias, System.Double deformationBias)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "A simplified interface for setting the Stretch and Compression spring constants",
        "since": "7.9",
        "parameters": [
          {
            "name": "boundaryBias",
            "type": "System.Double",
            "summary": "boundary_bias: 0.0 to 1.0 0.0: boundary and interior treated the same 1.0: strongest bias to preserving boundary lengths at the expense of interior distortion."
          },
          {
            "name": "deformationBias",
            "type": "System.Double",
            "summary": "deformation_bias: -1.0 to 1.0 -1.0: strongest bias in favor of compression. 0.0: no preference between compression and stretching 1.0: strongest bias in favor of stretching"
          }
        ]
      }
    ]
  },
  {
    "namespace": "Rhino.Geometry",
    "name": "SubD",
    "dataType": "class",
    "summary": "Subdivision surface",
    "baseclass": "Rhino.Geometry.GeometryBase",
    "constructors": [
      {
        "signature": "SubD()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Create a new instance of SubD geometry",
        "since": "7.0"
      },
      {
        "signature": "SubD(SerializationInfo info, StreamingContext context)",
        "modifiers": ["protected"],
        "protected": true,
        "virtual": false,
        "summary": "Protected constructor used in serialization."
      }
    ],
    "properties": [
      {
        "signature": "SubD Empty",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Get a new, empty SubD object.",
        "since": "7.18",
        "property": ["get"]
      },
      {
        "signature": "SubDEdgeList Edges",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "All edges in this SubD",
        "since": "7.0",
        "property": ["get"]
      },
      {
        "signature": "SubDFaceList Faces",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "All faces in this SubD",
        "since": "7.0",
        "property": ["get"]
      },
      {
        "signature": "bool IsSolid",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Test SubD to see if the active level is a solid. A \"solid\" is a closed oriented manifold, or a closed oriented manifold.",
        "since": "7.0",
        "property": ["get"]
      },
      {
        "signature": "SubDTextureCoordinateType TextureCoordinateType",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the texture cordinate type.",
        "since": "8.28",
        "property": ["get"]
      },
      {
        "signature": "SubDVertexList Vertices",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "All vertices in this SubD",
        "since": "7.0",
        "property": ["get"]
      }
    ],
    "methods": [
      {
        "signature": "SubD CreateFromCylinder(Cylinder cylinder, System.UInt32 circumferenceFaceCount, System.UInt32 heightFaceCount, SubDEndCapStyle endCapStyle, SubDEdgeTag endCapEdgeTag, SubDComponentLocation radiusLocation)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Creates a SubD form of a cylinder.",
        "since": "7.6",
        "parameters": [
          {
            "name": "cylinder",
            "type": "Cylinder",
            "summary": "The defining cylinder."
          },
          {
            "name": "circumferenceFaceCount",
            "type": "System.UInt32",
            "summary": "Number of faces around the cylinder."
          },
          {
            "name": "heightFaceCount",
            "type": "System.UInt32",
            "summary": "Number of faces in the top-to-bottom direction."
          },
          {
            "name": "endCapStyle",
            "type": "SubDEndCapStyle",
            "summary": "The end cap style."
          },
          {
            "name": "endCapEdgeTag",
            "type": "SubDEdgeTag",
            "summary": "The end cap edge tag."
          },
          {
            "name": "radiusLocation",
            "type": "SubDComponentLocation",
            "summary": "The SubD component location."
          }
        ],
        "returns": "A new SubD if successful, or None on failure."
      },
      {
        "signature": "SubD CreateFromLoft(IEnumerable<NurbsCurve> curves, System.Boolean closed, System.Boolean addCorners, System.Boolean addCreases, System.Int32 divisions)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Creates a SubD lofted through shape curves.",
        "since": "7.0",
    "remarks": "Shape curves must be in the proper order and orientation and have point counts for the desired surface. Shape curves must be either all open or all closed.",
        "parameters": [
          {
            "name": "curves",
            "type": "IEnumerable<NurbsCurve>",
            "summary": "An enumeration of SubD-friendly NURBS curves to loft through."
          },
          {
            "name": "closed",
            "type": "System.Boolean",
            "summary": "Creates a SubD that is closed in the lofting direction. Must have three or more shape curves."
          },
          {
            "name": "addCorners",
            "type": "System.Boolean",
            "summary": "With open curves, adds creased vertices to the SubD at both ends of the first and last curves."
          },
          {
            "name": "addCreases",
            "type": "System.Boolean",
            "summary": "With kinked curves, adds creased edges to the SubD along the kinks."
          },
          {
            "name": "divisions",
            "type": "System.Int32",
            "summary": "The segment number between adjacent input curves."
          }
        ],
        "returns": "A new SubD if successful, or None on failure."
      },
      {
        "signature": "SubD CreateFromMesh(Mesh mesh, SubDCreationOptions options)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Create a new SubD from a mesh.",
        "since": "7.0",
        "parameters": [
          {
            "name": "mesh",
            "type": "Mesh",
            "summary": "The input mesh."
          },
          {
            "name": "options",
            "type": "SubDCreationOptions",
            "summary": "The SubD creation options."
          }
        ],
        "returns": "A new SubD if successful, or None on failure."
      },
      {
        "signature": "SubD CreateFromMesh(Mesh mesh)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Create a new SubD from a mesh.",
        "since": "7.0",
        "parameters": [
          {
            "name": "mesh",
            "type": "Mesh",
            "summary": "The input mesh."
          }
        ],
        "returns": "A new SubD if successful, or None on failure."
      },
      {
        "signature": "SubD CreateFromSurface(Surface surface, SubDFromSurfaceMethods method, System.Boolean corners)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Create a SubD that approximates the surface. If the surface is a SubD friendly NURBS surface and withCorners is true, then the SubD and input surface will have the same geometry.",
        "since": "7.9",
        "parameters": [
          {
            "name": "surface",
            "type": "Surface",
            "summary": ""
          },
          {
            "name": "method",
            "type": "SubDFromSurfaceMethods",
            "summary": "Selects the method used to calculate the SubD."
          },
          {
            "name": "corners",
            "type": "System.Boolean",
            "summary": "If the surface is open, then the corner vertices with be tagged as VertexTagCorner. This makes the resulting SubD have sharp corners to match the appearance of the input surface."
          }
        ]
      },
      {
        "signature": "SubD CreateFromSweep(NurbsCurve rail1, IEnumerable<NurbsCurve> shapes, System.Boolean closed, System.Boolean addCorners, System.Boolean roadlikeFrame, Vector3d roadlikeNormal)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Fits a SubD through a series of profile curves that define the SubD cross-sections and one curve that defines a SubD edge.",
        "since": "7.0",
    "remarks": "Shape curves must be in the proper order and orientation. Shape curves must have the same point counts and rail curves must have the same point counts. Shape curves will relocated to the nearest pair of Greville points on the rails. Shape curves will be made at each pair of rail edit points where there isn't an input shape.",
        "parameters": [
          {
            "name": "rail1",
            "type": "NurbsCurve",
            "summary": "A SubD-friendly NURBS curve to sweep along."
          },
          {
            "name": "shapes",
            "type": "IEnumerable<NurbsCurve>",
            "summary": "An enumeration of SubD-friendly NURBS curves to sweep through."
          },
          {
            "name": "closed",
            "type": "System.Boolean",
            "summary": "Creates a SubD that is closed in the rail curve direction."
          },
          {
            "name": "addCorners",
            "type": "System.Boolean",
            "summary": "With open curves, adds creased vertices to the SubD at both ends of the first and last curves."
          },
          {
            "name": "roadlikeFrame",
            "type": "System.Boolean",
            "summary": "Determines how sweep frame rotations are calculated. If False (Freeform), frame are propagated based on a reference direction taken from the rail curve curvature direction. If True (Roadlike), frame rotations are calculated based on a vector supplied in \"roadlikeNormal\" and the world coordinate system."
          },
          {
            "name": "roadlikeNormal",
            "type": "Vector3d",
            "summary": "If roadlikeFrame = true, provide 3D vector used to calculate the frame rotations for sweep shapes. If roadlikeFrame = false, then pass <b> Vector3d.Unset</b> ."
          }
        ],
        "returns": "A new SubD if successful, or None on failure."
      },
      {
        "signature": "SubD CreateFromSweep(NurbsCurve rail1, NurbsCurve rail2, IEnumerable<NurbsCurve> shapes, System.Boolean closed, System.Boolean addCorners)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Fits a SubD through a series of profile curves that define the SubD cross-sections and two curves that defines SubD edges.",
        "since": "7.0",
    "remarks": "Shape curves must be in the proper order and orientation. Shape curves must have the same point counts and rail curves must have the same point counts. Shape curves will relocated to the nearest pair of Greville points on the rails. Shape curves will be made at each pair of rail edit points where there isn't an input shape.",
        "parameters": [
          {
            "name": "rail1",
            "type": "NurbsCurve",
            "summary": "The first SubD-friendly NURBS curve to sweep along."
          },
          {
            "name": "rail2",
            "type": "NurbsCurve",
            "summary": "The second SubD-friendly NURBS curve to sweep along."
          },
          {
            "name": "shapes",
            "type": "IEnumerable<NurbsCurve>",
            "summary": "An enumeration of SubD-friendly NURBS curves to sweep through."
          },
          {
            "name": "closed",
            "type": "System.Boolean",
            "summary": "Creates a SubD that is closed in the rail curve direction."
          },
          {
            "name": "addCorners",
            "type": "System.Boolean",
            "summary": "With open curves, adds creased vertices to the SubD at both ends of the first and last curves."
          }
        ],
        "returns": "A new SubD if successful, or None on failure."
      },
      {
        "signature": "SubD CreateGlobeSphere(Sphere sphere, SubDComponentLocation vertexLocation, System.UInt32 axialFaceCount, System.UInt32 equatorialFaceCount)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Creates a SubD sphere made from polar triangle fans and bands of quads. The result resembles a globe with triangle fans at the poles and the edges forming latitude parallels and longitude meridians.",
        "since": "8.4",
        "parameters": [
          {
            "name": "sphere",
            "type": "Sphere",
            "summary": "Location, size and orientation of the sphere."
          },
          {
            "name": "vertexLocation",
            "type": "SubDComponentLocation",
            "summary": "If vertexLocation = SubDComponentLocation::ControlNet, then the control net points will be on the surface of the sphere. Otherwise the limit surface points will be on the sphere."
          },
          {
            "name": "axialFaceCount",
            "type": "System.UInt32",
            "summary": "Number of faces along the sphere's meridians. (axialFaceCount >= 2) For example, if you wanted each face to span 30 degrees of latitude, you would pass 6 (=180 degrees/30 degrees) for axialFaceCount."
          },
          {
            "name": "equatorialFaceCount",
            "type": "System.UInt32",
            "summary": "Number of faces around the sphere's parallels. (equatorialFaceCount >= 3) For example, if you wanted each face to span 30 degrees of longitude, you would pass 12 (=360 degrees/30 degrees) for equatorialFaceCount."
          }
        ],
        "returns": "If the input parameters are valid, a SubD globe sphere is returned. Otherwise None is returned."
      },
      {
        "signature": "SubD CreateIcosahedron(Sphere sphere, SubDComponentLocation vertexLocation)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Creates a SubD sphere based on an icosohedron (20 triangular faces and 5 valent vertices). This is a goofy topology for a Catmull-Clark subdivision surface (all triangles, all vertices have 5 edges). You may want to consider using the much behaved result from CreateSubDQuadSphere(sphere, vertexLocation, 1) or even the result from CreateSubDGlobeSphere().",
        "since": "8.4",
        "parameters": [
          {
            "name": "sphere",
            "type": "Sphere",
            "summary": "Location, size and orientation of the sphere."
          },
          {
            "name": "vertexLocation",
            "type": "SubDComponentLocation",
            "summary": "If vertexLocation = SubDComponentLocation::ControlNet, then the control net points will be on the surface of the sphere. Otherwise the limit surface points will be on the sphere."
          }
        ],
        "returns": "If the input parameters are valid, a SubD icosahedron is returned. Otherwise None is returned."
      },
      {
        "signature": "SubD CreateQuadSphere(Sphere sphere, SubDComponentLocation vertexLocation, System.UInt32 quadSubdivisionLevel)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Creates a SubD sphere made from quad faces.",
        "since": "8.4",
        "parameters": [
          {
            "name": "sphere",
            "type": "Sphere",
            "summary": "Location, size and orientation of the sphere."
          },
          {
            "name": "vertexLocation",
            "type": "SubDComponentLocation",
            "summary": "If vertexLocation = SubDComponentLocation::ControlNet, then the control net points will be on the surface of the sphere. Otherwise the limit surface points will be on the sphere."
          },
          {
            "name": "quadSubdivisionLevel",
            "type": "System.UInt32",
            "summary": "The resulting sphere will have 6*4^subdivision level quads. (0 for 6 quads, 1 for 24 quads, 2 for 96 quads, ...)."
          }
        ],
        "returns": "If the input parameters are valid, a SubD quad sphere is returned. Otherwise None is returned."
      },
      {
        "signature": "SubD CreateTriSphere(Sphere sphere, SubDComponentLocation vertexLocation, System.UInt32 triSubdivisionLevel)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Creates a SubD sphere made from triangular faces. This is a goofy topology for a Catmull-Clark subdivision surface (all triangles and all vertices have 5 or 6 edges). You may want to consider using the much behaved result from CreateSubDQuadSphere() or even the result from CreateSubDGlobeSphere().",
        "since": "8.4",
        "parameters": [
          {
            "name": "sphere",
            "type": "Sphere",
            "summary": "Location, size and orientation of the sphere."
          },
          {
            "name": "vertexLocation",
            "type": "SubDComponentLocation",
            "summary": "If vertexLocation = SubDComponentLocation::ControlNet, then the control net points will be on the surface of the sphere. Otherwise the limit surface points will be on the sphere."
          },
          {
            "name": "triSubdivisionLevel",
            "type": "System.UInt32",
            "summary": "The resulting sphere will have 20*4^subdivision level triangles. (0 for 20 triangles, 1 for 80 triangles, 2 for 320 triangles, ...)."
          }
        ],
        "returns": "If the input parameters are valid, a SubD tri sphere is returned. Otherwise None is returned."
      },
      {
        "signature": "SubD[] JoinSubDs(IEnumerable<SubD> subdsToJoin, System.Double tolerance, System.Boolean joinedEdgesAreCreases, System.Boolean preserveSymmetry)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Joins an enumeration of SubDs to form as few as possible resulting SubDs. There may be more than one SubD in the result array.",
        "since": "7.16",
    "remarks": "NOTE: All of the input SubDs are copied and added to the result array in one form or another.",
        "parameters": [
          {
            "name": "subdsToJoin",
            "type": "IEnumerable<SubD>",
            "summary": "An enumeration of SubDs to join."
          },
          {
            "name": "tolerance",
            "type": "System.Double",
            "summary": "The join tolerance."
          },
          {
            "name": "joinedEdgesAreCreases",
            "type": "System.Boolean",
            "summary": "If true, merged boundary edges will be creases. If false, merged boundary edges will be smooth."
          },
          {
            "name": "preserveSymmetry",
            "type": "System.Boolean",
            "summary": "If true, and if all inputs share the same symmetry, the output will also be symmetrical wrt. that symmetry. If false, or True but no common symmetry exists, symmetry information is removed from all newly joined SubDs."
          }
        ]
      },
      {
        "signature": "SubD[] JoinSubDs(IEnumerable<SubD> subdsToJoin, System.Double tolerance, System.Boolean joinedEdgesAreCreases)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Joins an enumeration of SubDs to form as few as possible resulting SubDs. There may be more than one SubD in the result array.",
        "since": "7.14",
    "remarks": "NOTE: All of the input SubDs are copied and added to the result array in one form or another. NOTE: Symmetry information is removed from newly joined SubDs.See also comments in SubD.JoinSubDs with the bPreserveSymmetry parameter.",
        "parameters": [
          {
            "name": "subdsToJoin",
            "type": "IEnumerable<SubD>",
            "summary": "An enumeration of SubDs to join."
          },
          {
            "name": "tolerance",
            "type": "System.Double",
            "summary": "The join tolerance."
          },
          {
            "name": "joinedEdgesAreCreases",
            "type": "System.Boolean",
            "summary": "If true, merged boundary edges will be creases. If false, merged boundary edges will be smooth."
          }
        ]
      },
      {
        "signature": "System.Void ClearEvaluationCache()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Clear all cached evaluation information (meshes, surface points, bounding boxes, ...) that depends on edge tags, vertex tags, and the location of vertex control points.",
        "since": "7.0"
      },
      {
        "signature": "SubDComponent ComponentFromComponentIndex(ComponentIndex componentIndex)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns a SubDComponent, either a SubDEdge, SubDFace, or SubDVertex, from a component index.",
        "since": "7.6",
        "parameters": [
          {
            "name": "componentIndex",
            "type": "ComponentIndex",
            "summary": "The component index."
          }
        ],
        "returns": "The SubDComponent if successful, None otherwise."
      },
      {
        "signature": "System.Boolean CopyEvaluationCache(in SubD src)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Expert function that copies cached evaluations of component subdivision points and limit surface information from src to this. Typically this is done for performance critical situations like control point editing: - Copy a SubD to be modified (this does not copy the evaluation cache) - Copy the evaluation cache from the unmodified SubD - Modify the SubD copy - Update the surface mesh cache so that only the modified parts are recalculated - Display, meshing, bounding boxes on the modified SubD are now available",
        "since": "8.8",
        "parameters": [
          {
            "name": "src",
            "type": "SubD",
            "summary": "The SubD from which to copy cached evaluations"
          }
        ],
        "returns": "True if the cache was fully copied, False otherwise"
      },
      {
        "signature": "System.Void Dispose(System.Boolean disposing)",
        "modifiers": ["protected", "override"],
        "protected": true,
        "virtual": false,
        "summary": "Deletes the underlying native pointer during a Dispose call or GC collection"
      },
      {
        "signature": "Curve[] DuplicateEdgeCurves()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets Nurbs form of all edges in this SubD, with clamped knots. NB: Does not update the SubD evaluation cache before getting the edges.",
        "since": "8.7",
        "returns": "An array of edge curves."
      },
      {
        "signature": "Curve[] DuplicateEdgeCurves(System.Boolean boundaryOnly, System.Boolean interiorOnly, System.Boolean smoothOnly, System.Boolean sharpOnly, System.Boolean creaseOnly, System.Boolean clampEnds)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets Nurbs form of edges in this SubD. NB: Does not update the SubD evaluation cache before getting the edges.",
        "since": "8.7",
        "parameters": [
          {
            "name": "boundaryOnly",
            "type": "System.Boolean",
            "summary": "If true, then only the boundary edges are duplicated. If false, then all edges are duplicated. If both boundaryOnly and interiorOnly are true, an empty array is returned."
          },
          {
            "name": "interiorOnly",
            "type": "System.Boolean",
            "summary": "If true, then only the interior edges are duplicated. If false, then all edges are duplicated. Note: interior edges with faces of different orientations are also returned. If both boundaryOnly and interiorOnly are true, an empty array is returned."
          },
          {
            "name": "smoothOnly",
            "type": "System.Boolean",
            "summary": "If true, then only the smooth (and not sharp) edges are duplicated. If false, then all edges are duplicated. If both smoothOnly and sharpOnly and creaseOnly are true, an empty array is returned."
          },
          {
            "name": "sharpOnly",
            "type": "System.Boolean",
            "summary": "If true, then only the sharp edges are duplicated. If false, then all edges are duplicated. If both smoothOnly and sharpOnly and creaseOnly are true, an empty array is returned."
          },
          {
            "name": "creaseOnly",
            "type": "System.Boolean",
            "summary": "If true, then only the creased edges are duplicated. If false, then all edges are duplicated. If both smoothOnly and sharpOnly and creaseOnly are true, an empty array is returned."
          },
          {
            "name": "clampEnds",
            "type": "System.Boolean",
            "summary": "If true, the end knots are clamped. Otherwise the end knots are(-2,-1,0,...., k1, k1+1, k1+2)."
          }
        ],
        "returns": "Array of edge curves on success."
      },
      {
        "signature": "System.Boolean Flip()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Reverses the orientation of all SubD normals.",
        "since": "8.7",
        "returns": "True if successful."
      },
      {
        "signature": "System.Boolean InterpolateSurfacePoints(Point3d[] surfacePoints)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Modifies the SubD so that the SubD vertex limit surface points are equal to surface_points[]",
        "since": "7.1",
        "parameters": [
          {
            "name": "surfacePoints",
            "type": "Point3d[]",
            "summary": "Points for limit surface to interpolate. surface_points[i] is the location for the i-th vertex returned by SubVertexIterator vit(this)"
          }
        ],
        "returns": "True on success"
      },
      {
        "signature": "System.Boolean InterpolateSurfacePoints(System.UInt32[] vertexIndices, Point3d[] surfacePoints)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Modifies the SubD so that the SubD vertex limit surface points of the listed vertices are equal to surface_points[].",
        "since": "8.0",
        "parameters": [
          {
            "name": "vertexIndices",
            "type": "System.UInt32[]",
            "summary": "Ids of the vertices to interpolate. Other vertices remain fixed."
          },
          {
            "name": "surfacePoints",
            "type": "Point3d[]",
            "summary": "Points for limit surface to interpolate. surface_points[i] is the location for the vertex returned by this.Vertices.Find(vertexIndices[i])."
          }
        ],
        "returns": "True on success"
      },
      {
        "signature": "System.Boolean MergeAllCoplanarFaces(System.Double tolerance, System.Double angleTolerance)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Merges adjacent coplanar faces into single faces.",
        "since": "7.9",
        "parameters": [
          {
            "name": "tolerance",
            "type": "System.Double",
            "summary": "Tolerance for determining when edges are adjacent. When in doubt, use the document's ModelAbsoluteTolerance property."
          },
          {
            "name": "angleTolerance",
            "type": "System.Double",
            "summary": "Angle tolerance, in radians, for determining when faces are parallel. When in doubt, use the document's ModelAngleToleranceRadians property."
          }
        ],
        "returns": "True if faces were merged, False if no faces were merged."
      },
      {
        "signature": "System.Boolean MergeAllCoplanarFaces(System.Double tolerance)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Merges adjacent coplanar faces into single faces.",
        "since": "7.9",
        "parameters": [
          {
            "name": "tolerance",
            "type": "System.Double",
            "summary": "Tolerance for determining when edges are adjacent. When in doubt, use the document's ModelAbsoluteTolerance property."
          }
        ],
        "returns": "True if faces were merged, False if no faces were merged."
      },
      {
        "signature": "System.Void NonConstOperation()",
        "modifiers": ["protected", "override"],
        "protected": true,
        "virtual": false,
        "summary": "Destroy cache handle"
      },
      {
        "signature": "SubD Offset(System.Double distance, System.Boolean solidify)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Makes a new SubD with vertices offset at distance in the direction of the control net vertex normals. Optionally, based on the value of solidify, adds the input SubD and a ribbon of faces along any naked edges.",
        "since": "7.0",
        "parameters": [
          {
            "name": "distance",
            "type": "System.Double",
            "summary": "The distance to offset."
          },
          {
            "name": "solidify",
            "type": "System.Boolean",
            "summary": "True if the output SubD should be turned into a closed SubD."
          }
        ],
        "returns": "A new SubD if successful, or None on failure."
      },
      {
        "signature": "System.Void OnSwitchToNonConst()",
        "modifiers": ["protected", "override"],
        "protected": true,
        "virtual": false,
        "summary": "Called when this object switches from being considered \"owned by the document\" to being an independent instance."
      },
      {
        "signature": "System.UInt32 PackFaces()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Resets the SubD to the default face packing if adding creases or deleting faces breaks the quad grids. It does not change the topology or geometry of the SubD. SubD face packs always stop at creases.",
        "since": "7.23",
        "returns": "The number of face packs."
      },
      {
        "signature": "System.Boolean SetVertexSurfacePoint(System.UInt32 vertexIndex, Point3d surfacePoint)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Set the location of a single vertex surface point. This function is not suitable for setting the locations of multiple vertex surface points that are topologically near to each other.",
        "since": "8.0",
        "parameters": [
          {
            "name": "vertexIndex",
            "type": "System.UInt32",
            "summary": "Index of the vertex to modify"
          },
          {
            "name": "surfacePoint",
            "type": "Point3d",
            "summary": "New surface point location for that vertex"
          }
        ],
        "returns": "True if a vertex was modified, False otherwise."
      },
      {
        "signature": "System.Boolean Subdivide()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Apply the Catmull-Clark subdivision algorithm and save the results in this SubD.",
        "since": "8.0",
        "returns": "True on success"
      },
      {
        "signature": "System.Boolean Subdivide(IEnumerable<int> faceIndices)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Apply the Catmull-Clark subdivision algorithm and save the results in this SubD.",
        "since": "8.0",
        "parameters": [
          {
            "name": "faceIndices",
            "type": "IEnumerable<int>",
            "summary": "Indices of the faces to subdivide."
          }
        ],
        "returns": "True on success"
      },
      {
        "signature": "System.Boolean Subdivide(System.Int32 count)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Apply the Catmull-Clark subdivision algorithm and save the results in this SubD.",
        "since": "7.0",
        "parameters": [
          {
            "name": "count",
            "type": "System.Int32",
            "summary": "Number of times to subdivide (must be greater than 0)"
          }
        ],
        "returns": "True on success"
      },
      {
        "signature": "System.Boolean SurfaceMeshCacheExists(System.Boolean bTextureCoordinatesExist, System.Boolean bCurvaturesExist, System.Boolean bColorsExist)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Checks that a surface mesh evaluation cache exists, and that it has the required options. This cache is used by - <b>SubDVertex.SurfacePoint()</b> , - <b>SubDEdge.ToNurbsCurve(bool)</b> , and - <b>Mesh.CreateFromSubD(SubD, int)</b> .",
        "since": "8.9",
    "remarks": "This does not check that the cache is up to date, <b>SubD.UpdateSurfaceMeshCache(bool)</b> .",
        "parameters": [
          {
            "name": "bTextureCoordinatesExist",
            "type": "System.Boolean",
            "summary": "If True, the cache must contain texture coordinates information."
          },
          {
            "name": "bCurvaturesExist",
            "type": "System.Boolean",
            "summary": "If True, the cache must contain curvature information."
          },
          {
            "name": "bColorsExist",
            "type": "System.Boolean",
            "summary": "If True, the cache must contain color information."
          }
        ],
        "returns": "True if the cache exists on all face fragments and has the required options."
      },
      {
        "signature": "Brep ToBrep()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Create a Brep based on this SubD geometry, based on SubDToBrepOptions.Default options.",
        "since": "7.6",
        "returns": "A new Brep if successful, or None on failure."
      },
      {
        "signature": "Brep ToBrep(SubDToBrepOptions options)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Create a Brep based on this SubD geometry.",
        "since": "7.0",
        "parameters": [
          {
            "name": "options",
            "type": "SubDToBrepOptions",
            "summary": "The SubD to Brep conversion options. Use SubDToBrepOptions.Default for sensible defaults. Currently, these return unpacked faces and locally-G1 vertices in the output Brep."
          }
        ],
        "returns": "A new Brep if successful, or None on failure."
      },
      {
        "signature": "System.UInt32 TransformComponents(IEnumerable<ComponentIndex> components, Transform xform, SubDComponentLocation componentLocation)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Transforms an enumerable of SubD components.",
        "since": "8.12",
    "remarks": "This method does not clear the evaluation cache.",
        "parameters": [
          {
            "name": "components",
            "type": "IEnumerable<ComponentIndex>",
            "summary": "The SubD components to transform."
          },
          {
            "name": "xform",
            "type": "Transform",
            "summary": "The transformation to apply."
          },
          {
            "name": "componentLocation",
            "type": "SubDComponentLocation",
            "summary": "Select between applying the transform to the control net (faster) or the surface points (slower)."
          }
        ],
        "returns": "The number of vertex locations that changed."
      },
      {
        "signature": "System.UInt32 UpdateAllTagsAndSectorCoefficients()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Updates vertex tag, edge tag, and edge coefficient values on the active level. After completing custom editing operations that modify the topology of the SubD control net or changing values of vertex or edge tags, the tag and sector coefficients information on nearby components in the edited areas need to be updated.",
        "since": "7.0",
        "returns": "Number of vertices and edges that were changed during the update."
      },
      {
        "signature": "System.UInt32 UpdateSurfaceMeshCache(System.Boolean lazyUpdate)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Updates limit surface information returned by - <b>SubDVertex.SurfacePoint()</b> , - <b>SubDEdge.ToNurbsCurve(bool)</b> , and - <b>Mesh.CreateFromSubD(SubD, int)</b> . The density of the mesh cache is <b>SubDDisplayParameters.Default</b> .",
        "since": "8.7",
        "parameters": [
          {
            "name": "lazyUpdate",
            "type": "System.Boolean",
            "summary": "If false, all information is updated. If true, only missing information is updated. If a relatively small subset of a SubD has been modified and care was taken to mark cached subdivision information as stale, then passing True can substantially improve performance."
          }
        ],
        "returns": "The number of elements that were updated."
      }
    ]
  },
  {
    "namespace": "Rhino.Geometry",
    "name": "SubD.NurbsSurfaceType",
    "dataType": "enum",
    "summary": "ON_SubD::NurbsSurfaceType specifies what type of NURBS surfaces are returned by ON_SubD.GetSurfaceNurbsFragments()",
    "values": [
      {
        "signature": "Unset = 0",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Not a valid type. Used to indicate the type has not been set and to encourage developers to explicitly specify a type. When in doubt, specify NurbsSurfaceType::Large."
      },
      {
        "signature": "Large = 1",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Onee NURBS surface will be generated for each SubD quad. N NURBS surfaces will be generated for each SubD N-gon (N = 3, 5 or more). ON_Brepface may cover multiple Near extraordinary vertices, the surfaces may have lots of knots."
      },
      {
        "signature": "Medium = 2",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "NURBS surfaces will be as large as possible without the addition of extra knots. Near extraordinary vertices, the surfaces may have lots of knots. This option is preferred when a user wants larger NURBS surfaces but not at the cost of additional NURBS control points."
      },
      {
        "signature": "Small = 3",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "NURBS surfaces will not be merged and will have clamped knots."
      },
      {
        "signature": "Unprocessed = 4",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "NURBS surfaces will not be merged and will have unclamped uniform knots. This is useful as a starting point for customized merging and modifying continuity at extraordinary vertices."
      }
    ]

  },
  {
    "namespace": "Rhino.Geometry",
    "name": "SubDAutomaticMeshToSubDContext",
    "dataType": "enum",
    "summary": "ON_SubD::AutomaticMeshToSubDContext identifies a context where meshes can automatically be converted to subds.",
    "values": [
      {
        "signature": "Unset = 0",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Indicates the context has not been initialized."
      },
      {
        "signature": "Rhino5BoxModeTSpline = 1",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "A mesh in a Rhino 5 3dm file that is a representation of a box mode T-spline. By default, these meshes are automatically converted to subds."
      },
      {
        "signature": "FBXMeshWithDivisionLevels = 2",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "A mesh in an FBX file that has nonzero values for either preview division levels or render division levels. Some FBX files created by Maya save subdivision objects as meshes with nonzero division level values. By default, FBX division levels are ignored."
      }
    ]

  },
  {
    "namespace": "Rhino.Geometry",
    "name": "SubDChainType",
    "dataType": "enum",
    "summary": "SubD::ChainType specifies what edge and vertex tag tests are used when creating edge chains.",
    "values": [
      {
        "signature": "Unset = 0",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Unset."
      },
      {
        "signature": "MixedTag = 1",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "All types of edges and vertices can be in the chain."
      },
      {
        "signature": "EqualEdgeTag = 2",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Every edge in an edge chain has the same smooth/crease property."
      },
      {
        "signature": "EqualEdgeAndVertexTag = 3",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Every edge in an edge chain has the same smooth/crease edge tag and interior vertices have the corresponding smooth/crease vertex tag."
      },
      {
        "signature": "EqualEdgeTagAndOrdinary = 4",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Every edge in an edge chain has the same smooth/crease property and every edge has the same number of faces. If the edges have 1 face, then interior vertices have valence = 3. If the edges have 2 faces, then interior vertices have valence = 4."
      },
      {
        "signature": "EqualEdgeAndVertexTagAndOrdinary = 5",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Every edge in an edge chain has the same smooth/crease edge tag, every edge has the same number of faces, and interior vertices have the corresponding smooth/crease vertex tag. If the edges have 1 face, then interior vertices have valence = 3. If the edges have 2 faces, then interior vertices have valence = 4."
      }
    ]

  },
  {
    "namespace": "Rhino.Geometry",
    "name": "SubDComponent",
    "dataType": "class",
    "summary": "A part of SubD geometry. Common base class for vertices, faces, and edges",
    "properties": [
      {
        "signature": "uint Id",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Unique id within the parent SubD for this item",
        "since": "7.0",
        "property": ["get"]
      },
      {
        "signature": "bool IsDamaged",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns True if the SubD component is damaged.",
        "since": "7.6",
        "property": ["get"]
      },
      {
        "signature": "bool IsDeleted",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns True if the SubD component is deleted.",
        "since": "7.6",
        "property": ["get"]
      },
      {
        "signature": "bool IsHidden",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns True if the SubD component is hidden.",
        "since": "7.6",
        "property": ["get"]
      },
      {
        "signature": "bool IsHighlighted",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns True if the SubD component is highlighted.",
        "since": "7.6",
        "property": ["get"]
      },
      {
        "signature": "bool IsLocked",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns True if the SubD component is locked.",
        "since": "7.6",
        "property": ["get"]
      },
      {
        "signature": "bool IsSelected",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns True if the SubD component is selected.",
        "since": "7.6",
        "property": ["get"]
      },
      {
        "signature": "SubD ParentSubD",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "SubD that this component belongs to",
        "since": "7.0",
        "property": ["get"]
      }
    ]
  },
  {
    "namespace": "Rhino.Geometry",
    "name": "SubDComponentLocation",
    "dataType": "enum",
    "summary": "The ON_SubDComponentLocation enum is used when an ON_SubD component is referenced and it is important to distinguish between the component's location in the SubD control net and its location in the SubD limit surface.",
    "values": [
      {
        "signature": "Unset = 0",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Not a valid component location and used to indicate the value is not initialized. Note well: This value is saved in 3dm archives and cannot be changed."
      },
      {
        "signature": "ControlNet = 1",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "The component's location in the SubD control net. Note well: This value is saved in 3dm archives and cannot be changed."
      },
      {
        "signature": "Surface = 2",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "The component's location in the SubD limit surface. Note well: This value is saved in 3dm archives and cannot be changed."
      }
    ]

  },
  {
    "namespace": "Rhino.Geometry",
    "name": "SubDCreationOptions",
    "dataType": "class",
    "summary": "Options used for creating a SubD",
    "interfaces": ["IDisposable"],
    "constructors": [
      {
        "signature": "SubDCreationOptions()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Create default options",
        "since": "7.0"
      }
    ],
    "properties": [
      {
        "signature": "SubDCreationOptions ConvexAndConcaveCornersAndInteriorCreases",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Look for convex corners at sub-D vertices with 2 edges or fewer that have an included angle ≤ 120 degrees. Look for concave corners at sub-D vertices with 3 edges or more that have an included angle ≥ 240 degrees.",
        "since": "8.0",
        "property": ["get"]
      },
      {
        "signature": "SubDCreationOptions ConvexCornersAndInteriorCreases",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Look for convex corners at sub-D vertices with 2 edges or fewer that have an included angle ≤ 120 degrees.",
        "since": "7.0",
        "property": ["get"]
      },
      {
        "signature": "SubDCreationOptions InteriorCreases",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Create an interior sub-D crease along all input mesh double edges",
        "since": "7.0",
        "property": ["get"]
      },
      {
        "signature": "SubDCreationOptions Smooth",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "No interior creases and no corners.",
        "since": "7.0",
        "property": ["get"]
      },
      {
        "signature": "ConcaveCornerOption ConcaveCornerTest",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Get or sets the concave corner test option.",
        "since": "7.0",
        "property": ["get", "set"]
      },
      {
        "signature": "ConvexCornerOption ConvexCornerTest",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Get or sets the convex corner test option.",
        "since": "7.0",
        "property": ["get", "set"]
      },
      {
        "signature": "InteriorCreaseOption InteriorCreaseTest",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Get or sets the interior crease test option.",
        "since": "7.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool InterpolateMeshVertices",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "If false, input mesh vertex locations will be used to set SubD vertex control net locations. If true, input mesh vertex locations will be used to set SubD vertex limit surface locations.",
        "since": "7.0",
        "property": ["get", "set"]
      },
      {
        "signature": "double MaximumConvexCornerAngleRadians",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "If ConvexCornerTest == ConvexCornerOption.AtMeshCorner, then an input mesh boundary vertex becomes a SubD corner when the number of edges that end at the vertex is <= MaximumConvexCornerEdgeCount edges and the corner angle is <= MaximumConvexCornerAngleRadians.",
        "since": "7.0",
        "property": ["get", "set"]
      },
      {
        "signature": "uint MaximumConvexCornerEdgeCount",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "If ConvexCornerTest == ConvexCornerOption.AtMeshCorner, then an input mesh boundary vertex becomes a SubD corner when the number of edges that end at the vertex is <= MaximumConvexCornerEdgeCount edges and the corner angle is <= MaximumConvexCornerAngleRadians.",
        "since": "7.0",
        "property": ["get", "set"]
      },
      {
        "signature": "double MinimumConcaveCornerAngleRadians",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "If ConcaveCornerTest == ConcaveCornerOption.AtMeshCorner, then an input mesh boundary vertex becomes a SubD corner when the number of edges that end at the vertex is >= MinimumConcaveCornerEdgeCount edges and the corner angle is >= MinimumConcaveCornerAngleRadians.",
        "since": "7.0",
        "property": ["get", "set"]
      },
      {
        "signature": "uint MinimumConcaveCornerEdgeCount",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "If ConcaveCornerTest == ConcaveCornerOption.AtMeshCorner, then an input mesh boundary vertex becomes a SubD corner when the number of edges that end at the vertex is >= MinimumConcaveCornerEdgeCount edges and the corner angle is >= MinimumConcaveCornerAngleRadians.",
        "since": "7.0",
        "property": ["get", "set"]
      },
      {
        "signature": "TextureCoordinateOption TextureCoordinateTest",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the texture coordinate test option.",
        "since": "8.28",
        "property": ["get", "set"]
      }
    ],
    "methods": [
      {
        "signature": "System.Void Dispose()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Delete unmanaged pointer for this",
        "since": "7.0"
      }
    ]
  },
  {
    "namespace": "Rhino.Geometry",
    "name": "SubDCreationOptions.ConcaveCornerOption",
    "dataType": "enum",
    "summary": "Defines how concave corners are treated.",
    "values": [
      {
        "signature": "Unset = 0",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "The option is not set."
      },
      {
        "signature": "None = 1",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "No concave corners. In general, this is the best choice."
      },
      {
        "signature": "AtMeshCorner = 2",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "A concave subd corner will appear at input mesh boundary vertices where the corner angle >= MinimumConcaveCornerAngleRadians() and the number of edges the end at the vertex is >= MinimumConcaveCornerEdgeCount()."
      }
    ]

  },
  {
    "namespace": "Rhino.Geometry",
    "name": "SubDCreationOptions.ConvexCornerOption",
    "dataType": "enum",
    "summary": "Defines how convex corners are treated.",
    "values": [
      {
        "signature": "Unset = 0",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "The option is not set."
      },
      {
        "signature": "None = 1",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "No convex corners. In general,this is the best choice."
      },
      {
        "signature": "AtMeshCorner = 2",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "A convex subd corner will appear at input mesh boundary vertices where the corner angle <= MaximumConvexCornerAngleRadians() and the number of edges the end at the vertex is <= MaximumConvexCornerEdgeCount()."
      }
    ]

  },
  {
    "namespace": "Rhino.Geometry",
    "name": "SubDCreationOptions.InteriorCreaseOption",
    "dataType": "enum",
    "summary": "Specifies the test used to determine when an interior mesh edge generates an interior SubD creased edge.",
    "values": [
      {
        "signature": "Unset = 0",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "The interior crease test is not defined."
      },
      {
        "signature": "None = 1",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "No interior creases."
      },
      {
        "signature": "AtMeshDoubleEdge = 2",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "An interior mesh double edge will create an interior SubD creased edge. An interior mesh double edge occurs when the sides of two mesh faces have have distinct vertex indices and identical vertex locations."
      }
    ]

  },
  {
    "namespace": "Rhino.Geometry",
    "name": "SubDCreationOptions.TextureCoordinateOption",
    "dataType": "enum",
    "summary": "Specifies how texture coordinate information is transferred from the mesh to the SubD.",
    "values": [
      {
        "signature": "Unset = 0",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "The option is not set."
      },
      {
        "signature": "None = 1",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "No texture coordianate information is transferred from the mesh."
      },
      {
        "signature": "Automatic = 2",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "If the mesh has a mapping, then TextureCoordinatesOption::CopyMapping is used. Otherwise if the mesh has texture coordinates, then TextureCoordinatesOption::CopyCoordinates is used. Otherwise TextureCoordinatesOption::Packed is used."
      },
      {
        "signature": "Packed = 3",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "No texture coordianate information is transferred from the mesh. The SubD faces are packed."
      },
      {
        "signature": "CopyMapping = 4",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Texture coordinates mapping information is copied from the mesh. Generally this is the best choice because common mappings, like planar, will appear as most people expect on the SubD."
      },
      {
        "signature": "CopyCoordinates = 5",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "If a mesh has custom texture coordinates, the custom texture coordinates are transferred to the SubD. This requires more memory resources, slows subdivision evaluation, often produces unattractive results on n-gons, and distorts the texture when comes from a common mapping technique, like planar. This option may be useful when the mesh contains only triangles and quads and the custom texture coordinates are of high quality."
      }
    ]

  },
  {
    "namespace": "Rhino.Geometry",
    "name": "SubDDisplayParameters",
    "dataType": "class",
    "summary": "A collection of parameters that are passed to functions that calculate a various representations of SubD objects.",
    "interfaces": ["IDisposable", "ISerializable"],
    "since": "7.18",
    "constructors": [
      {
        "signature": "SubDDisplayParameters()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Initializes a new instance with default values.",
        "since": "7.18"
      },
      {
        "signature": "SubDDisplayParameters(SerializationInfo info, StreamingContext context)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Called by BinaryFormatter.Deserialize to create a new MeshParamaters object.",
        "since": "8.0"
      }
    ],
    "properties": [
      {
        "signature": "uint AdaptiveDisplayMeshQuadMaximum",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "When the SubD display density is adaptive (default), AdaptiveMeshQuadMaximum specifies the approximate number of display mesh quads to permit before reducing the SubD display mesh density.",
        "since": "7.18",
        "property": ["get"]
      },
      {
        "signature": "bool DisplayDensityIsAbsolute",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "True if the SubD display density setting is absolute.",
        "since": "7.18",
        "property": ["get"]
      },
      {
        "signature": "bool DisplayDensityIsAdaptive",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "True if the SubD display density setting is adaptive and approximate display mesh quad count is capped at SubDDisplayParameters::AdaptiveDisplayMeshQuadMaximum.",
        "since": "7.18",
        "property": ["get"]
      },
      {
        "signature": "SubDComponentLocation MeshLocation",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "The MeshLocation property determines if the mesh is on the SubD's control net or the SubD's surface.",
        "since": "7.18",
        "property": ["get", "set"]
      }
    ],
    "methods": [
      {
        "signature": "System.UInt32 AbsoluteDisplayDensityFromSubD(System.UInt32 adaptiveSubDDisplayDensity, SubD subd)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Gets absolute SubD display density for subd.",
        "since": "7.18",
        "parameters": [
          {
            "name": "adaptiveSubDDisplayDensity",
            "type": "System.UInt32",
            "summary": "A value <= SubDDisplayParameters.Density.MaximumDensity. When in doubt, pass SubDDisplayParameters.Density.DefaultDensity."
          },
          {
            "name": "subd",
            "type": "SubD",
            "summary": "In the cases when the SubD in question is not available, like user interface code that applies in general and to unknown SubDs, pass SubD.Empty."
          }
        ],
        "returns": "The absolute SubD display density is <= adaptiveSubDDisplayDensity and <= SubDDisplayParameters.Density.MaximumDensity."
      },
      {
        "signature": "System.UInt32 AbsoluteDisplayDensityFromSubDFaceCount(System.UInt32 adaptiveSubDDisplayDensity, System.UInt32 subDFaceCount)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the absolute SubD display density for SubD with subdFaceCount faces.",
        "since": "7.18",
        "deprecated": "9.0",
        "obsolete": "Use AbsoluteDisplayDensityFromSubD",
        "parameters": [
          {
            "name": "adaptiveSubDDisplayDensity",
            "type": "System.UInt32",
            "summary": "A value <= SubDDisplayParameters.Density.MaximumDensity. When in doubt, pass SubDDisplayParameters.Density.DefaultDensity."
          },
          {
            "name": "subDFaceCount",
            "type": "System.UInt32",
            "summary": "Number of SubD faces."
          }
        ],
        "returns": "The absolute SubD display density is <= adaptiveSubDDisplayDensity and <= SubDDisplayParameters.Density.MaximumDensity."
      },
      {
        "signature": "System.UInt32 ClampDisplayDensity(System.UInt32 displayDensity)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Limits display density to a value useful in user interface code.",
        "since": "7.18",
        "returns": "The clamped value."
      },
      {
        "signature": "SubDDisplayParameters Coarse()",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Parameters for a course limit surface display mesh. SubD display density = adaptive SubDDisplayParameters.Density.CoarseDensity.",
        "since": "7.18",
        "returns": "The SubD display parameters."
      },
      {
        "signature": "SubDDisplayParameters CreateFromAbsoluteDisplayDensity(System.UInt32 absoluteSubDDisplayDensity)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Use of absolute display density is strongly discouraged. SubDs can have a single face or millions of faces. Adaptive display meshing produces more desirable results in almost all cases.",
        "since": "7.18",
        "parameters": [
          {
            "name": "absoluteSubDDisplayDensity",
            "type": "System.UInt32",
            "summary": "A value <= SubDDisplayParameters.Density.MaximumDensity. When in doubt, pass SubDDisplayParameters.Density.DefaultDensity."
          }
        ],
        "returns": "The SubD display parameters."
      },
      {
        "signature": "SubDDisplayParameters CreateFromDisplayDensity(System.UInt32 adaptiveSubDDisplayDensity)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "In most applications, the caller sets the mesh density and leaves the other parameters set to the default values.",
        "since": "7.18",
        "parameters": [
          {
            "name": "adaptiveSubDDisplayDensity",
            "type": "System.UInt32",
            "summary": "A value <= SubDDisplayParameters.Density.MaximumDensity. When in doubt, pass SubDDisplayParameters.Density.DefaultDensity. Values < SubDDisplayParameters.Density.MinimumAdaptiveDensity are treated as SubDDisplayParameters.Density.MinimumAdaptiveDensity. All other invalid input values are treated as SubDDisplayParameters.Density.DefaultDensity."
          }
        ],
        "returns": "The SubD display parameters."
      },
      {
        "signature": "SubDDisplayParameters CreateFromMeshDensity(System.Double normalizedMeshDensity)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "This function creates SubDDisplayParameters from a user interface \"slider\" like Rhino's simple mesh controls.",
        "since": "7.18",
        "parameters": [
          {
            "name": "normalizedMeshDensity",
            "type": "System.Double",
            "summary": "A double between 0.0 and 1.0."
          }
        ],
        "returns": "A valid ON_SubDDisplayParameters with the specified subd display density."
      },
      {
        "signature": "SubDDisplayParameters Default()",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Parameters for the default limit surface display mesh. SubD display density = adaptive SubDDisplayParameters.Density.DefaultDensity.",
        "since": "7.18",
        "returns": "The SubD display parameters."
      },
      {
        "signature": "SubDDisplayParameters Empty()",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Get an empty SubDDisplayParameters.",
        "since": "7.18",
        "returns": "The SubD display parameters."
      },
      {
        "signature": "SubDDisplayParameters ExtraCoarse()",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Parameters for an extra course limit surface display mesh. SubD display density = adaptive SubDDisplayParameters.Density.ExtraCoarseDensity.",
        "since": "7.18",
        "returns": "The SubD display parameters."
      },
      {
        "signature": "SubDDisplayParameters ExtraFine()",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Parameters for an extra fine limit surface display mesh. SubD display density = adaptive SubDDisplayParameters.Density.ExtraFineDensity.",
        "since": "7.18",
        "returns": "The SubD display parameters."
      },
      {
        "signature": "SubDDisplayParameters Fine()",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Parameters for a fine limit surface display mesh. SubD display density = adaptive SubDDisplayParameters.Density.FineDensity.",
        "since": "7.18",
        "returns": "The SubD display parameters."
      },
      {
        "signature": "SubDDisplayParameters FromEncodedString(System.String value)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Converts encoded serialized string into a MeshingParameters",
        "since": "8.0",
        "parameters": [
          {
            "name": "value",
            "type": "System.String",
            "summary": "Encoded string returned by MeshingParameters.ToString()"
          }
        ],
        "returns": "Returns a new MeshingParameters created by decoding and deserializing the string or None if value is invalid."
      },
      {
        "signature": "SubDDisplayParameters Medium()",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Parameters for a medium limit surface display mesh. SubD display density = adaptive SubDDisplayParameters.Density.MediumDensity.",
        "since": "7.18",
        "returns": "The SubD display parameters."
      },
      {
        "signature": "System.UInt32 DisplayDensity(SubD subd)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the absolute display density to use when creating display meshes for SubD. When adaptive reduction is enabled, subd.Faces.Count is used to determine the appropriate display density.",
        "since": "7.18",
        "parameters": [
          {
            "name": "subd",
            "type": "SubD",
            "summary": "The SubD object."
          }
        ],
        "returns": "The display density."
      },
      {
        "signature": "System.Void Dispose()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Actively reclaims unmanaged resources that this instance uses.",
        "since": "7.18"
      },
      {
        "signature": "System.Void Dispose(System.Boolean disposing)",
        "modifiers": ["protected", "virtual"],
        "protected": true,
        "virtual": true,
        "summary": "For derived class implementers.  \nThis method is called with argument True when class user calls Dispose(), while with argument False when     the Garbage Collector invokes the finalizer, or Finalize() method.  \nYou must reclaim all used unmanaged resources in both cases, and can use this chance to call Dispose on disposable fields if the argument is true.  \nAlso, you must call the base virtual method within your overriding method.",
        "parameters": [
          {
            "name": "disposing",
            "type": "System.Boolean",
            "summary": "True if the call comes from the Dispose() method; False if it comes from the Garbage Collector finalizer."
          }
        ]
      },
      {
        "signature": "System.Void GetObjectData(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "8.0"
      },
      {
        "signature": "System.Void SetAbsoluteDisplayDensity(System.UInt32 absoluteDisplayDensity)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "In almast all cases, you are better off using SetAdaptiveDisplayDensity().",
        "since": "7.18",
        "parameters": [
          {
            "name": "absoluteDisplayDensity",
            "type": "System.UInt32",
            "summary": "absoluteDisplayDensity <= SubDDisplayParameters.Density.MaximumDensity."
          }
        ]
      },
      {
        "signature": "System.Void SetAdaptiveDisplayDensity(System.UInt32 adaptiveDisplayDensity)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Set an adaptive SubD display density that caps display mesh quad count at SubDDisplayParameters.AdaptiveDisplayMeshQuadMaximum.",
        "since": "7.18",
        "parameters": [
          {
            "name": "adaptiveDisplayDensity",
            "type": "System.UInt32",
            "summary": "adaptiveDisplayDensity <= SubDDisplayParameters.Density.MaximumDensity. Values <= SubDDisplayParameters.Density.MinimumAdaptiveDensity will never be adaptively reduced during display mesh creation."
          }
        ]
      },
      {
        "signature": "System.String ToEncodedString()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns a encoded string that represents the MeshingParameters.",
        "since": "8.0",
        "returns": "A encoded string that represents the MeshingParameters."
      }
    ]
  },
  {
    "namespace": "Rhino.Geometry",
    "name": "SubDDisplayParameters.Density",
    "dataType": "enum",
    "summary": "Density enumeration",
    "since": "7.18",
    "values": [
      {
        "signature": "UnsetDensity = 0",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Indicates the SubD display mesh density has not be set."
      },
      {
        "signature": "MinimumUserInterfaceDensity = 1",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "The minimum SubD display density that can be se in Rhino user interface is ExtraCoarseDensity (1)."
      },
      {
        "signature": "MaximumUserInterfaceDensity = 5",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "The maximum SubD display density that can be se in Rhino user interface is ExtraFineDensity (5)."
      },
      {
        "signature": "MinimumAdaptiveDensity = 1",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "SubD display density values <= MinimumAdaptiveDensity will never be adaptively reduced. SubD display density values > MinimumAdaptiveDensity may be adaptively reduced to a value >= MinimumAdaptiveDensity."
      },
      {
        "signature": "MinimumDensity = 0",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Each SubD quad will generate 1 display mesh quads in a 1x1 grid. This density can only be used with SubDs where every face is a quad. User interface code never returns this density."
      },
      {
        "signature": "ExtraCoarseDensity = 1",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "When interpreted as an absolute SubD display density, each SubD quad will generate 4 display mesh quads in a 2x2 grid and each SubD N-gon will generate N display mesh quads. Adaptive reductions do not apply to this density. This is the minimum SubD display density."
      },
      {
        "signature": "CoarseDensity = 2",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "When interpreted as an absolute SubD display density, each SubD quad will generate 16 display mesh quads in a 4x4 grid and each SubD N-gon will generate N*4 display mesh quads. Adaptive reductions do not apply to this density."
      },
      {
        "signature": "MediumDensity = 3",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "When interpreted as an absolute SubD display density, each SubD quad will generate 64 display mesh quads in an 8x8 grid and each SubD N-gon will generate N*8 display mesh quads. When a SubD has more than 8000 faces, adaptive MediumDensity is reduced to CoarseDensity."
      },
      {
        "signature": "FineDensity = 4",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "When interpreted as an absolute SubD display density, each SubD quad will generate 256 display mesh quads in a 16x16 grid and each SubD N-gon will generate N*16 display mesh quads. When a SubD has more than 2000 faces, adaptive FineDensity is reduced to adaptive MediumDensity."
      },
      {
        "signature": "DefaultDensity = 4",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "When interpreted as an absolute SubD display density, each SubD quad will generate 256 display mesh quads in a 16x16 grid and each SubD N-gon will generate N*16 display mesh quads. When a SubD has more than 2000 faces, adaptive DefaultDensity is reduced to adaptive MediumDensity. This is the default value for creating mesh approximations of SubD surface. When treadted as an adaptive setting, it produces acceptable results for most SubDs."
      },
      {
        "signature": "ExtraFineDensity = 5",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "When interpreted as an absolute SubD display density, each SubD quad will generate 1024 display mesh quads in a 32x32 grid and each SubD N-gon will generate N*32 display mesh quads. When a SubD has more than 500 faces, adaptive ExtraFineDensity is reduced to adaptive FineDensity."
      },
      {
        "signature": "MaximumDensity = 6",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "When interpreted as an absolute SubD display density, each SubD quad will generate 4096 display mesh quads in a 64x64 grid and each SubD N-gon will generate N*64 display mesh quads. SubDDisplayParameters.AdaptiveDensity() determines if the subd display density is treated adaptively or absolutely. This value creates ridiculously dense display meshes and should generally be avoided. No Rhino user interface will create this value."
      }
    ]

  },
  {
    "namespace": "Rhino.Geometry",
    "name": "SubDEdge",
    "dataType": "class",
    "summary": "Single edge of a SubD",
    "baseclass": "Rhino.Geometry.SubDComponent",
    "properties": [
      {
        "signature": "Line ControlNetLine",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Line representing the control net end points.",
        "since": "7.0",
        "property": ["get"]
      },
      {
        "signature": "int FaceCount",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Number of faces for this edge.",
        "since": "7.0",
        "property": ["get"]
      },
      {
        "signature": "SubDEdgeTag Tag",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "identifies the type of subdivision edge.",
        "since": "7.0",
        "property": ["get", "set"]
      },
      {
        "signature": "SubDVertex VertexFrom",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Start vertex for this edge.",
        "since": "7.0",
        "property": ["get"]
      },
      {
        "signature": "SubDVertex VertexTo",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "End vertex for this edge.",
        "since": "7.0",
        "property": ["get"]
      }
    ],
    "methods": [
      {
        "signature": "ComponentIndex ComponentIndex()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the component index of this edge.",
        "since": "8.12",
        "returns": "The component index."
      },
      {
        "signature": "SubDFace FaceAt(System.Int32 index)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Retrieve a SubDFace from this edge.",
        "since": "7.0"
      },
      {
        "signature": "NurbsCurve ToNurbsCurve(System.Boolean clampEnds)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Get a cubic, uniform, non-rational, NURBS curve that is on the edge's limit curve.",
        "since": "7.0",
    "remarks": "If some edges in your SubD are not able to be converted to NURBS, you might need to run <b>SubD.UpdateSurfaceMeshCache(bool)</b> .",
        "parameters": [
          {
            "name": "clampEnds",
            "type": "System.Boolean",
            "summary": "If true, the end knots are clamped. Otherwise the end knots are(-2,-1,0,...., k1, k1+1, k1+2)."
          }
        ],
        "returns": "The Nurbs form of this edge."
      }
    ]
  },
  {
    "namespace": "Rhino.Geometry",
    "name": "SubDEdgeTag",
    "dataType": "enum",
    "summary": "ON_SubDEdgeTag identifies the type of subdivision edge.  Different tags use different subdivision algorithms to calculate the subdivision point.",
    "values": [
      {
        "signature": "Unset = 0",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Not a valid edge tag and the default value for ON_SubDEdge.m_edge_tag. This encourages developers to thoughtfully initialize ON_SubDEdge.m_edge_tag. or use ON_SubD.UpdateAllTagsAndSectorCoefficients() to automatically set the m_edge_tag values at an appropriate time."
      },
      {
        "signature": "Smooth = 1",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "At least one the edge's vertices must be tagged as ON_SubDVertexTag::Smooth. The edge must have exactly two faces. The edge's subdivision point is (A1 + A2 + S(f1) + S(f2))/4, where Ai = ON_SubDEdge.Vertex(i)->ControlNetPoint() and S(fi) = ON_SubDEdge.Face(i)->SubdivisionPoint()."
      },
      {
        "signature": "Crease = 2",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Both of the edge's vertices must be tagged as ON_SubDVertexTag::Dart, ON_SubDVertexTag::Crease, or ON_SubDVertexTag::Corner. (The vertex tags can be different.) The edge can have any number of faces. The edge's subdivision point is (A1+A2)/2 where Ai = ON_SubDEdge.Vertex(i)->ControlNetPoint()."
      },
      {
        "signature": "SmoothX = 4",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "This tag appears only on level 0 edges that have exactly two neighboring faces and both of the edge's vertices are tagged as ON_SubDVertexTag::Dart, ON_SubDVertexTag::Crease, or ON_SubDVertexTag::Corner. The level 1 subdivision point for a level 0 edge tagged as ON_SubDEdgeTag::SmoothX is the standard smooth edge subdivision point. When subdivided, the new subdivision vertex will be tagged as ON_SubDVertexTag::Smooth and the subdivided edges will be tagged as ON_SubDEdgeTag::Smooth. The tag ON_SubDEdgeTag::SmoothX can only appear on a level 0 edge. This tag exists because the ON_SubD subdivision algorithm requires any edge with both end vertices tagged as not smooth must be subdivided at its midpoint. Sector iterators treat \"SmoothX\" edges as smooth. Both edge m_sector_coefficient[] values must be set so the smooth subdivided edges will be valid."
      }
    ]

  },
  {
    "namespace": "Rhino.Geometry",
    "name": "SubDEdgeType",
    "dataType": "enum",
    "summary": "ON_SubDEdgeType describes a subdivision edge. ON_SubDEdgeType is typically used when generating text descriptions or filtering edges during selection processes. Do not confuse ON_SubDEdgeType and ON_SubDEdgeTag. The unique types are single bits and suitable for use in bitwise logic.",
    "values": [
      {
        "signature": "Unset = 0",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Type is unset or the edge is not valid."
      },
      {
        "signature": "Wire = 1",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "The edge has zero faces and the tag is ON_SubDEdgeTag::Crease."
      },
      {
        "signature": "Boundary = 2",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "The edge has one face and the tag is ON_SubDEdgeTag::Crease."
      },
      {
        "signature": "InteriorSmooth = 4",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "The edge has two faces, the tag is ON_SubDEdgeTag::Smooth or ON_SubDEdgeTag::SmoothX, and the edge sharpness is zero. Note that ON_SubEdge::IsSmoothNotSharp() returns True if and only if ON_SubEdge::EdgeType() is InteriorSmooth."
      },
      {
        "signature": "InteriorSharp = 8",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "The edge has two faces, the tag is ON_SubDEdgeTag::Smooth or ON_SubDEdgeTag::SmoothX, and the edge sharpness is nonzero. Note that ON_SubEdge::IsSharp() returns True if and only if ON_SubEdge::EdgeType() is InteriorSharp."
      },
      {
        "signature": "InteriorCrease = 16",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "The edge has two faces and the tag is ON_SubDEdgeTag::Crease."
      },
      {
        "signature": "Nonmanifold = 32",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "The edge has three or more faces and the tag is ON_SubDEdgeTag::Crease."
      },
      {
        "signature": "Invalid = 64",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "The edge has an invalid combination of face count, tag, and sharpness properties."
      },
      {
        "signature": "InteriorMask = 28",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "A mask for all interior edge types. Interior edges have 2 faces."
      },
      {
        "signature": "ValidTypesMask = 63",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "A mask for all valid edge types."
      }
    ]

  },
  {
    "namespace": "Rhino.Geometry",
    "name": "SubDEndCapStyle",
    "dataType": "enum",
    "summary": "ON_SubDEndCapStyle enumerates the type of end caps functions like ON_SubD::CreateCylinder will create. Use ON_SubDEndCapStyleFromUnsigned(integer value) to convert integer values to an ON_SubDEndCapStyle. Use ON_SubDEndCapStyleToString(end_cap_style) to convert ON_SubDEndCapStyle values to string descriptions.",
    "values": [
      {
        "signature": "Unset = 0",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Used to indicate the end cap style is not set."
      },
      {
        "signature": "None = 1",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Ends are not capped."
      },
      {
        "signature": "Triangles = 2",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Ends are capped with triangles."
      },
      {
        "signature": "Quads = 3",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "When the end has an even number of edges, is will be capped with quads. Otherwise it will be capped with triangles."
      },
      {
        "signature": "Ngon = 4",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Ends are capped with a n-gon. This is a poor choice when there are a large number of edges in the end boundary."
      }
    ]

  },
  {
    "namespace": "Rhino.Geometry",
    "name": "SubDFace",
    "dataType": "class",
    "summary": "Single face of a SubD",
    "baseclass": "Rhino.Geometry.SubDComponent",
    "properties": [
      {
        "signature": "Plane ControlNetCenterFrame",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "The face's control net center frame is a plane with normal equal to ControlNetCenterNormal and origin equal to ControlNetCenterPoint. The x and y axes of the frame have no predictable relationship to the face or SubD control net topology.",
        "since": "8.0",
        "property": ["get"]
      },
      {
        "signature": "Vector3d ControlNetCenterNormal",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "When the face's control net polygon is planar, the face's control net normal is a unit vector perpendicular to the plane that points outwards. If the control net polygon is not planar, the control net normal is control net normal is a unit vector that is the average of the control polygon's corner normals.",
        "since": "8.0",
        "property": ["get"]
      },
      {
        "signature": "Point3d ControlNetCenterPoint",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "The face's control net center point is the average of the face's vertex control net points. This is the same point as the face's subdivision point.",
        "since": "8.0",
        "property": ["get"]
      },
      {
        "signature": "int EdgeCount",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Number of edges for this face. Note that EdgeCount is always the same as VertexCount. Two properties are provided simply for clarity.",
        "since": "7.0",
        "property": ["get"]
      },
      {
        "signature": "Point3d LimitSurfaceCenterPoint",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Get the limit surface point location at the center of the face",
        "since": "7.0",
        "property": ["get"]
      },
      {
        "signature": "Color PerFaceColor",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "If per-face color is \"Empty\", then this face does not have a custom color",
        "since": "7.0",
        "property": ["get", "set"]
      },
      {
        "signature": "Plane SurfaceCenterFrame",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Get the limit surface tangent plane at the center of the face. The plane's origin is the point on the limit surface at the center of the face. The plane's z axis is the limit surface normal vector at the center of the face.",
        "since": "8.0",
        "property": ["get"]
      },
      {
        "signature": "Vector3d SurfaceCenterNormal",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Get the limit surface normal vector at the center of the face.",
        "since": "8.0",
        "property": ["get"]
      },
      {
        "signature": "int VertexCount",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Number of vertices for this face. Note that EdgeCount is always the same as VertexCount. Two properties are provided simply for clarity.",
        "since": "7.0",
        "property": ["get"]
      }
    ],
    "methods": [
      {
        "signature": "ComponentIndex ComponentIndex()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the component index of this face.",
        "since": "7.9",
        "returns": "The component index."
      },
      {
        "signature": "SubDEdge EdgeAt(System.Int32 index)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Get an edge at a given index",
        "since": "7.0"
      },
      {
        "signature": "System.Boolean EdgeDirectionMatchesFaceOrientation(System.Int32 index)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Check if a given edge in this face has the same direction as the face orientation",
        "since": "7.0"
      },
      {
        "signature": "SubDVertex VertexAt(System.Int32 index)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Get a vertex that this face uses by index",
        "since": "7.0"
      }
    ]
  },
  {
    "namespace": "Rhino.Geometry",
    "name": "SubDFriendlyKnotType",
    "dataType": "enum",
    "summary": "ON_SubD::SubDFriendlyKnotType identifies the types of subd friendly NURBS knot vectors. SubD friendly NURBS curves and surfacaes are always cubic and nonrational. Any time there is a multiple knot, the 2nd derivative is zero at the corresponding parameter. SubD friendly NURBS curves are either periodic or have zero 2nd derivative at the ends.",
    "values": [
      {
        "signature": "Unset = 0",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Not a valid type. Used to indicate the type has not been set and to encourage developers to explicitly specify a type."
      },
      {
        "signature": "UnclampedUniform = 1",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "NURBS knot vector is an unclamped uniform cubic knot vector. Every knot interval has the same length. Every knot has multiplicity 1."
      },
      {
        "signature": "ClampedUniform = 2",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "NURBS knot vector is a clamped uniform cubic knot vector. Every interior knot interval has the same length. End knots have multiplicity 3 and interior knots have multiplicity 1."
      },
      {
        "signature": "ClampedPiecewiseUniform = 4",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "NURBS knot vector is a clamped piecewise uniform cubic knot vector. All nonzero knot intervals have the same length. End knots have multiplicity 3 and interior knots have multiplicity 1 or 3. Interior knots with multiplicity 3 correspond to interior SubD creases."
      },
      {
        "signature": "Unfriendly = 127",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "NURBS knot vector is not subd friendly."
      }
    ]

  },
  {
    "namespace": "Rhino.Geometry",
    "name": "SubDFromSurfaceMethods",
    "dataType": "enum",
    "summary": "ON_SubDFromSurfaceParameters::Method are ways to create a SubD from a surface.",
    "values": [
      {
        "signature": "Unset = 0",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Used to indicate the method is not set."
      },
      {
        "signature": "SubDFriendlyFit = 1",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "The surface is approximated with a SubD friendly NURBS surface and the SubD is created to match the subd friendly nurbs surface. If the input surface is a subd friendly NURBS surface, the subd and surface have the same geometry."
      },
      {
        "signature": "FromNurbsControlNet = 2",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "The surface is converted to a NURBS surface and then a subd with one face per NURBS bispan is created by using an appropriate subset of the NURBS surface control net. If the input surface is a subd friendly NURBS surface, the subd and surface have the same geometry."
      }
    ]

  },
  {
    "namespace": "Rhino.Geometry",
    "name": "SubDHashType",
    "dataType": "enum",
    "summary": "ON_SubDHashType used used to specify what type of SubD information is hashed (topology or geometry).",
    "values": [
      {
        "signature": "Unset = 0",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Unset indicates the hash type still needs to be selected. It is not a valid type for calculating a hash."
      },
      {
        "signature": "Topology = 3",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "The Topology hash includes component ids, and all topological relationships between vertices, edges, and faces. If two SubDs have the same topology hash, then the have identical labeled control net topology."
      },
      {
        "signature": "TopologyAndEdgeCreases = 1",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "The TopologyAndEdgeCreases includes all information in a Topology hash. The TopologyAndEdgeCreases adds edge crease/smooth attributes. Many contexts, including face packing and exploding, take edge creases into account when partitioning a SubD into regions."
      },
      {
        "signature": "Geometry = 2",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "A geometry hash includes all information in a TopologyAndEdgeCreases hash. The Geometry hash adds vertex tags, vertex control net points, and nonzero subdivision displacements on vertices, edges, and faces. If two SubDs have the same geometry hash, then they have identical surface geometry."
      }
    ]

  },
  {
    "namespace": "Rhino.Geometry",
    "name": "SubDPatchStyle",
    "dataType": "enum",
    "summary": "SubD::PatchStyle identifies the style of patch used to fill holes.",
    "values": [
      {
        "signature": "Unset = 0",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Not a valid style. This encourages developers to thoughtfully select a patch style and can be used to indicate a UI control is not initialized."
      },
      {
        "signature": "Automatic = 1",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Automatically choose a patch style that will generally create a good looking result. If a hole boundary is not convex, it is triangulated. Otherwise: If a hole has 3 edges, a single triangle face is used. If a hole has 4 edges, a single quad face is used. If a hole has 5 or more edges and an odd number of edges, a triangle fan is used. If a hole has 6 or more edges and an even number of edges, a quad fan is used."
      },
      {
        "signature": "SingleFace = 2",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "A single face is used under all conditions."
      },
      {
        "signature": "TriangleFan = 3",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "A triangle fan used under all conditions. The center of the fan is the average of the hole boundary vertex control net points."
      },
      {
        "signature": "QuadOrTriangleFan = 4",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "If the hole boundary has an even number of edges, a quad fan is used. Otherwise a triangle fan is used. The center of the fan is the average of the hole boundary vertex control net points."
      },
      {
        "signature": "Triangulated = 5",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "The hole boundary is triangluated. Typically this style is selected when a boundary not convex and the other styles produce faces with overlapping regions."
      }
    ]

  },
  {
    "namespace": "Rhino.Geometry",
    "name": "SubDSurfaceInterpolator",
    "dataType": "class",
    "summary": "Interpolate some or all of the vertices limit surface positions in a SubD to specified locations. NB: It is recommended not to use these methods to interpolate more than 1000 vertices.  <b>SubD.SetVertexSurfacePoint(uint, Point3d)</b>  <b>SubD.InterpolateSurfacePoints(Point3d[])</b>  <b>SubD.InterpolateSurfacePoints(uint[], Point3d[])</b>  <b>SubDVertex.SurfacePoint()</b>",
    "interfaces": ["IDisposable"],
    "constructors": [
      {
        "signature": "SubDSurfaceInterpolator()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Initialize an empty SubDSurfaceInterpolator.",
        "since": "8.0"
      }
    ],
    "properties": [
      {
        "signature": "uint MaximumRecommendedInterpolatedVertexCount",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Interpolation requires building a solver. We estimate that this solver will work in reasonnable time if the number of interplolated vertices is smaller than MaximumInterpolatedVertexCount. However, given sufficient time, memory, and CPU resources, the code will work with any value. In version 8.0, this value is 1000.",
        "since": "8.0",
        "property": ["get"]
      },
      {
        "signature": "Guid ContextId",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "The context assigned id. This id is provided for applications using ON_SubDSurfaceInterpolator. It is not inspected or used in any part of the interpolation setup or calculations.",
        "since": "8.0",
    "remarks": "In Rhino, when an interpolator is being used to modify a CRhinoSubDObject, this id is often the Rhino object id.",
        "property": ["get", "set"]
      }
    ],
    "methods": [
      {
        "signature": "SubDSurfaceInterpolator CreateFromMarkedVertices(SubD subd, System.Boolean interpolatedVerticesMark, out System.UInt32 freeVertexCount)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Create an interpolator where all the marked vertices (unmarked if interpolatedVerticesMark is false) in the SubD are free vertices in the linear system used for interpolation, and the unmarked (marked if interpolatedVerticesMark is false) are fixed to their initial positions. Free vertices are can move as a result of the interpolation, and can receive an interpolation target location.",
        "since": "8.0",
    "remarks": "Sets <b>ContextId</b> to the Guid of the Rhino SubD object for subd.",
        "parameters": [
          {
            "name": "subd",
            "type": "SubD",
            "summary": "The SubD to use for interpolation"
          },
          {
            "name": "interpolatedVerticesMark",
            "type": "System.Boolean",
            "summary": "If True, marked vertices will be considered free, and unmarked vertices will be fixed."
          },
          {
            "name": "freeVertexCount",
            "type": "System.UInt32",
            "summary": "The number of free vertices in the system"
          }
        ],
        "returns": "A new SubDSurfaceInterpolator"
      },
      {
        "signature": "SubDSurfaceInterpolator CreateFromSelectedVertices(SubD subd, out System.UInt32 freeVertexCount)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Create an interpolator where all the selected vertices in the SubD are free vertices in the linear system used for interpolation, and the unselected are fixed to their initial positions. Free vertices are can move as a result of the interpolation, and can receive an interpolation target location.",
        "since": "8.0",
    "remarks": "Sets <b>ContextId</b> to the Guid of the Rhino SubD object for subd.",
        "parameters": [
          {
            "name": "subd",
            "type": "SubD",
            "summary": "The SubD to use for interpolation"
          },
          {
            "name": "freeVertexCount",
            "type": "System.UInt32",
            "summary": "The number of free vertices in the system"
          }
        ],
        "returns": "A new SubDSurfaceInterpolator"
      },
      {
        "signature": "SubDSurfaceInterpolator CreateFromSubD(SubD subd, out System.UInt32 freeVertexCount)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Create an interpolator where all the vertices in the SubD are free vertices in the linear system used for interpolation (i.e. can move as a result of the interpolation, and can receive an interpolation target location).",
        "since": "8.0",
    "remarks": "Sets <b>ContextId</b> to the Guid of the Rhino SubD object for subd.",
        "parameters": [
          {
            "name": "subd",
            "type": "SubD",
            "summary": "The SubD to use for interpolation"
          },
          {
            "name": "freeVertexCount",
            "type": "System.UInt32",
            "summary": "The number of free vertices in the system"
          }
        ],
        "returns": "A new SubDSurfaceInterpolator"
      },
      {
        "signature": "SubDSurfaceInterpolator CreateFromVertexIdList(SubD subd, IEnumerable<uint> vertexIndices, out System.UInt32 freeVertexCount)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Create an interpolator where all the listed vertices in the SubD are free vertices in the linear system used for interpolation, and the unselected are fixed to their initial positions. Free vertices are can move as a result of the interpolation, and can receive an interpolation target location.",
        "since": "8.0",
    "remarks": "Sets <b>ContextId</b> to the Guid of the Rhino SubD object for subd.",
        "parameters": [
          {
            "name": "subd",
            "type": "SubD",
            "summary": "The SubD to use for interpolation"
          },
          {
            "name": "vertexIndices",
            "type": "IEnumerable<uint>",
            "summary": "Indices of the vertices to be interpolated"
          },
          {
            "name": "freeVertexCount",
            "type": "System.UInt32",
            "summary": "The number of free vertices in the system"
          }
        ],
        "returns": "A new SubDSurfaceInterpolator"
      },
      {
        "signature": "System.Void Clear()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Destroys the information needed to solve the interpolation.",
        "since": "8.0"
      },
      {
        "signature": "System.Void Dispose()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Actively reclaims unmanaged resources that this instance uses.",
        "since": "8.0"
      },
      {
        "signature": "System.Void Dispose(System.Boolean disposing)",
        "modifiers": ["protected", "virtual"],
        "protected": true,
        "virtual": true,
        "summary": "For derived class implementers.  \nThis method is called with argument True when class user calls Dispose(), while with argument False when     the Garbage Collector invokes the finalizer, or Finalize() method.  \nYou must reclaim all used unmanaged resources in both cases, and can use this chance to call Dispose on disposable fields if the argument is true.  \nAlso, you must call the base virtual method within your overriding method.",
        "since": "8.0",
        "parameters": [
          {
            "name": "disposing",
            "type": "System.Boolean",
            "summary": "True if the call comes from the Dispose() method; False if it comes from the Garbage Collector finalizer."
          }
        ]
      },
      {
        "signature": "System.UInt32 FixedVertexCount()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "8.0",
        "returns": "Number of vertices with fixed surface points."
      },
      {
        "signature": "System.UInt32 InterpolatedVertexCount()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "8.0",
        "returns": "Number of vertices with interpolated surface points."
      },
      {
        "signature": "System.UInt32 InterpolatedVertexIndex(System.UInt32 vertexId)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "8.0",
        "returns": "If vertex is an interpolated vertex, returns the index of the vertex in the array returned by <b>VertexIdList()</b> . Otherwise, returns ON_UNSET_UINT_INDEX."
      },
      {
        "signature": "System.Boolean IsInterpolatedVertex(SubDVertex vertex)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "8.0",
        "returns": "True if the vertex surface point is being interpolated."
      },
      {
        "signature": "System.Boolean IsInterpolatedVertex(System.UInt32 vertexId)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "8.0",
        "returns": "True if the vertex surface point is being interpolated."
      },
      {
        "signature": "System.Boolean Solve(Point3d[] surfacePoints)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Solve the interpolation system, given target interpolation locations for the free vertices in the system. Updates the subd referenced by this system so the corresponding surface points are at the locations given by surfacePoints.",
        "since": "8.0",
        "parameters": [
          {
            "name": "surfacePoints",
            "type": "Point3d[]",
            "summary": "The limit surface locations for the interpolated vertices. The number of desired locations needs to match the <b>InterpolatedVertexCount()</b> ."
          }
        ],
        "returns": "True if a solution was found."
      },
      {
        "signature": "System.Void Transform(Transform transform)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Apply an arbitrary transformation to the target interpolation points.",
        "since": "8.0",
        "parameters": [
          {
            "name": "transform",
            "type": "Transform",
            "summary": "The transformation to apply."
          }
        ]
      },
      {
        "signature": "System.UInt32[] VertexIdList()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "8.0",
        "returns": "List of indices of the vertices with interpolated surface points. Vertices that are not in this vertex list have unchanged control net points."
      }
    ]
  },
  {
    "namespace": "Rhino.Geometry",
    "name": "SubDSurfaceInterpolator.MaximumCounts",
    "dataType": "enum",
    "summary": "Stores maximum count values for the solver to work in reasonable time.",
    "values": [
      {
        "signature": "MaximumRecommendedInterpolatedVertexCount = 1000U",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Interpolation requires building a solver. If the number of interpolated vertices is greater than MaximumInterpolatedVertexCount, the solver construction time can be too long for some users' comfort. Given sufficient time, memory, and CPU resources, the code will work with any value"
      }
    ]

  },
  {
    "namespace": "Rhino.Geometry",
    "name": "SubDTextureCoordinateType",
    "dataType": "enum",
    "summary": "ON_SubDTextureCoordinateType identifies the way ON_SubDMeshFragment texture coordinates are set from an ON_SubDFace.",
    "values": [
      {
        "signature": "Unset = 0",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Texture domains are not set."
      },
      {
        "signature": "Unpacked = 1",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Each SubDFace uses the unit square in texture space."
      },
      {
        "signature": "Packed = 2",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "The face's pack rect is used to set fragment texture coordinates. When possible, adjacent quads with the same ON_SubDFace::PackId() value are assigned adjacent rectangles in texture space."
      },
      {
        "signature": "Zero = 3",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "All ON_SubDMeshFragment texture coordinate values are zero."
      },
      {
        "signature": "Nan = 4",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "All ON_SubDMeshFragment texture coordinate values are ON_DBL_QNAN."
      },
      {
        "signature": "FromFaceTexturePoints = 6",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "All ON_SubDMeshFragment texture coordinate values are set by barycentric interpolation of ON_SubDFace.TexturePoint() values."
      },
      {
        "signature": "FromMapping = 7",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Texture coordinates are set from an ON_TextureMapping and transformation specified by ON_SubD::TextureMappingTag(). In all other cases, ON_SubD::TextureMappingTag() can be set, but is ignored."
      }
    ]

  },
  {
    "namespace": "Rhino.Geometry",
    "name": "SubDToBrepOptions",
    "dataType": "class",
    "summary": "Options used for converting a SubD to a Brep",
    "interfaces": ["IDisposable"],
    "constructors": [
      {
        "signature": "SubDToBrepOptions()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Create default options",
        "since": "7.0"
      },
      {
        "signature": "SubDToBrepOptions(bool packFaces, ExtraordinaryVertexProcessOption vertexProcess)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Create options from the given packFaces and vertexProcess values.",
        "since": "7.1",
        "parameters": [
          {
            "name": "packFaces",
            "type": "System.Boolean",
            "summary": "Sets the pack faces options."
          },
          {
            "name": "vertexProcess",
            "type": "ExtraordinaryVertexProcessOption",
            "summary": "Sets the extraordinary vertex process option."
          }
        ]
      }
    ],
    "properties": [
      {
        "signature": "SubDToBrepOptions Default",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Default SubDToBrepOptions settings. Currently selects the same options as DefaultUnpacked: Locally-G1 smoothing of extraordinary vertices, unpacked faces.",
        "since": "7.0",
    "remarks": "These are the settings used by ON_SubD::BrepForm()",
        "property": ["get"]
      },
      {
        "signature": "SubDToBrepOptions DefaultPacked",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Default ON_SubDToBrepParameters settings for creating a packed brep. Locally-G1 smoothing of extraordinary vertices, packed faces.",
        "since": "7.0",
        "property": ["get"]
      },
      {
        "signature": "SubDToBrepOptions DefaultUnpacked",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Default ON_SubDToBrepParameters settings for creating an unpacked brep. Locally-G1 smoothing of extraordinary vertices, unpacked faces.",
        "since": "7.0",
        "property": ["get"]
      },
      {
        "signature": "ExtraordinaryVertexProcessOption ExtraordinaryVertexProcess",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Get or sets the extraordinary vertex process option.",
        "since": "7.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool PackFaces",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Get or sets the pack faces option.",
        "since": "7.0",
        "property": ["get", "set"]
      }
    ],
    "methods": [
      {
        "signature": "System.Void Dispose()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Actively reclaims unmanaged resources that this instance uses.",
        "since": "7.0"
      },
      {
        "signature": "System.Void Dispose(System.Boolean disposing)",
        "modifiers": ["protected", "virtual"],
        "protected": true,
        "virtual": true,
        "summary": "For derived class implementers.  \nThis method is called with argument True when class user calls Dispose(), while with argument False when     the Garbage Collector invokes the finalizer, or Finalize() method.  \nYou must reclaim all used unmanaged resources in both cases, and can use this chance to call Dispose on disposable fields if the argument is true.  \nAlso, you must call the base virtual method within your overriding method.",
        "parameters": [
          {
            "name": "disposing",
            "type": "System.Boolean",
            "summary": "True if the call comes from the Dispose() method; False if it comes from the Garbage Collector finalizer."
          }
        ]
      }
    ]
  },
  {
    "namespace": "Rhino.Geometry",
    "name": "SubDToBrepOptions.ExtraordinaryVertexProcessOption",
    "dataType": "enum",
    "summary": "ON_SubDToBrepParameters::Vertex identifies the options for post processing extraorindary vertices.",
    "values": [
      {
        "signature": "None = 0",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "The NURBS patches are used as is. At extraordinary vertices, the brep vertex may not be G1. Typically the deviation bewtween the brep and SubD surface is smallest with this option."
      },
      {
        "signature": "LocalG1 = 1",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "At extraordinary vertices, the NURBS patches are modified so they are G1 at the extraordinary vertex. Typically the deviation bewtween the brep and SubD surface is larger than None and smaller than LocalG1x and LocalG2."
      },
      {
        "signature": "LocalG2 = 2",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "At extraordinary vertices, the NURBS patches are modified so they are G2 at the extraordinary vertex. Typically the deviation bewtween the brep and SubD surface is larger than LocalG1 and LocalG1x."
      },
      {
        "signature": "LocalG1x = 3",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "At extraordinary vertices, the NURBS patches are modified so they are G1 at the extraordinary vertex and tend to be closer to G1 along edges near the extraordinary vertex. Typically the deviation bewtween the brep and SubD surface is larger than LocalG1 and smaller than LocalG2."
      },
      {
        "signature": "LocalG1xx = 4",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "At extraordinary vertices, the NURBS patches are modified so they are G1 at the extraordinary vertex and G1 along edges near the extraordinary vertex. The patches will have one double knot near the extraordinary vertex."
      }
    ]

  },
  {
    "namespace": "Rhino.Geometry",
    "name": "SubDVertex",
    "dataType": "class",
    "summary": "Single vertex of a SubD",
    "baseclass": "Rhino.Geometry.SubDComponent",
    "properties": [
      {
        "signature": "Point3d ControlNetPoint",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Location of the \"control net\" point that this SubDVertex represents",
        "since": "7.0",
    "remarks": "The setter of this property will refresh the neighborhood cache around the vertex everytime it is called. This is not efficient if you have multiple vertices to modify. In that case, call vertex.SetControlNetPoint(position, false) for all the vertices you want to modify, then call subd.ClearEvaluationCache()",
        "property": ["get", "set"]
      },
      {
        "signature": "int EdgeCount",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Number of edges for this vertex",
        "since": "7.0",
        "property": ["get"]
      },
      {
        "signature": "IEnumerable<SubDEdge> Edges",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "All edges that this vertex is part of",
        "since": "7.0",
        "property": ["get"]
      },
      {
        "signature": "int FaceCount",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Number of faces for this vertex",
        "since": "7.0",
        "property": ["get"]
      },
      {
        "signature": "SubDVertex Next",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Next vertex in linked list of vertices on this level",
        "since": "7.0",
        "property": ["get"]
      },
      {
        "signature": "SubDVertex Previous",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Previous vertex in linked list of vertices on this level",
        "since": "7.0",
        "property": ["get"]
      },
      {
        "signature": "SubDVertexTag Tag",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "identifies the type of subdivision vertex",
        "since": "7.5",
        "property": ["get", "set"]
      }
    ],
    "methods": [
      {
        "signature": "ComponentIndex ComponentIndex()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the component index of this vertex.",
        "returns": "The component index."
      },
      {
        "signature": "SubDEdge EdgeAt(System.Int32 index)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Retrieve a SubDEdge from this vertex",
        "since": "7.0"
      },
      {
        "signature": "SubDFace FaceAt(System.Int32 index)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Retrieve a SubDFace from this vertex",
        "since": "7.7"
      },
      {
        "signature": "System.Boolean SetControlNetPoint(Point3d position, System.Boolean bClearNeighborhoodCache)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Change the location of the \"control net\" point that this SubDVertex represents",
        "since": "8.0",
    "remarks": "This method is provided to be able to set multiple control vertices, without clearing the neighborhood cache everytime as the ControlNetPoint property setter does. When you are done modifying your SubD, call subd.UpdateEvaluationCache() to refresh all caches.",
        "parameters": [
          {
            "name": "position",
            "type": "Point3d",
            "summary": "New position for the vertex' control net point."
          },
          {
            "name": "bClearNeighborhoodCache",
            "type": "System.Boolean",
            "summary": "If true, clear the evaluation cache in the faces around the modified vertex."
          }
        ],
        "returns": "True if the vertex' control net point was modified."
      },
      {
        "signature": "Point3d SurfacePoint()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "The SubD surface point",
        "since": "7.1"
      }
    ]
  },
  {
    "namespace": "Rhino.Geometry",
    "name": "SubDVertexFacetType",
    "dataType": "enum",
    "summary": "Summarizes the number of edges in faces in the whole object.",
    "values": [
      {
        "signature": "Unset = 0",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Not a valid vertex face type."
      },
      {
        "signature": "Tri = 3",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "All faces are triangular."
      },
      {
        "signature": "Quad = 4",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "All faces are quads."
      },
      {
        "signature": "Ngon = 5",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Edge count of faces is constant and > 4."
      },
      {
        "signature": "Mixed = 0xFF",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Edge count of faces is not constant."
      }
    ]

  },
  {
    "namespace": "Rhino.Geometry",
    "name": "SubDVertexTag",
    "dataType": "enum",
    "summary": "ON_SubDVertexTag identifies the type of subdivision vertex.  Different tags use different subdivision algorithms to determine where the subdivision point and limit point are located.  There are topological constraints that restrict which tags can be assigned.",
    "values": [
      {
        "signature": "Unset = 0",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Not a valid vertex tag and the default value for ON_SubDVertex.m_vertex_tag. This encourages developers to thoughtfully initialize ON_SubDVertex.m_vertex_tag or use ON_SubD.UpdateAllTagsAndSectorCoefficients() to automatically set the m_vertex_tag values at an appropriate time."
      },
      {
        "signature": "Smooth = 1",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Must be an interior vertex. All edges attached to a smooth vertex must be tagged as ON_SubDEdgeTag::Smooth and must have 2 faces."
      },
      {
        "signature": "Crease = 2",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Can be an interior or a boundary vertex. Exactly two edges ending at a crease vertex must be tagged as ON_SubDEdgeTag::Crease and may have 1 or 2 faces. All other edges ending at a crease must be tagged as tagON_SubD::EdgeTag::Smooth and have 2 faces. Below P = ON_SubDVertex.ControlNetPoint() and Ai = ON_SubDVertex.Edge(i)->OtherEndVertex()->ControlNetPoint(). A crease vertex subdivision point is (6*P + A1 + A2)/8. A crease vertex limit surface point is (4*P + A1 + A2)/6."
      },
      {
        "signature": "Corner = 3",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Can be an interior, boundary, nonmanifold, or isolated vertex. The location of a corner vertex is fixed. The all subdivision points and the limit point are at the initial vertex location. The edges ending at a corner vertex can be smooth or crease edges. A corner vertex subdivision point is P where P = ON_SubDVertex.ControlNetPoint(). A corner vertex limit surface point is P where P = ON_SubDVertex.ControlNetPoint()."
      },
      {
        "signature": "Dart = 4",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Must be an interior vertex. Every edge attached to a dart vertex must have 2 faces. Exactly one edge attached to a dart vertex must be tagged as ON_SubDEdgeTag::Crease and every other attached edge must be tagged as ON_SubDEdgeTag::smooth."
      }
    ]

  },
  {
    "namespace": "Rhino.Geometry",
    "name": "SumSurface",
    "dataType": "class",
    "summary": "Represents a sum surface, or an extrusion of a curve along a curved path.",
    "baseclass": "Rhino.Geometry.Surface",
    "constructors": [
      {
        "signature": "SumSurface(SerializationInfo info, StreamingContext context)",
        "modifiers": ["protected"],
        "protected": true,
        "virtual": false,
        "summary": "Protected constructor for internal use.",
        "parameters": [
          {
            "name": "info",
            "type": "System.Runtime.Serialization.SerializationInfo",
            "summary": "Serialization data."
          },
          {
            "name": "context",
            "type": "System.Runtime.Serialization.StreamingContext",
            "summary": "Serialization stream."
          }
        ]
      }
    ],
    "methods": [
      {
        "signature": "SumSurface Create(Curve curveA, Curve curveB)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Constructs a new sum surface by extruding a curve A along a path B.",
        "since": "5.0",
        "parameters": [
          {
            "name": "curveA",
            "type": "Curve",
            "summary": "The curve used as extrusion profile."
          },
          {
            "name": "curveB",
            "type": "Curve",
            "summary": "The curve used as path."
          }
        ],
        "returns": "A new sum surface on success; None on failure."
      },
      {
        "signature": "SumSurface Create(Curve curve, Vector3d extrusionDirection)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Constructs a new sum surface by extruding a curve in a specified direction.",
        "since": "7.18",
        "parameters": [
          {
            "name": "curve",
            "type": "Curve",
            "summary": "The curve used as extrusion profile."
          },
          {
            "name": "extrusionDirection",
            "type": "Vector3d",
            "summary": "The extrusion vector (must be non-zero)."
          }
        ],
        "returns": "A new sum surface on success; None on failure."
      }
    ]
  },
  {
    "namespace": "Rhino.Geometry",
    "name": "Surface",
    "dataType": "class",
    "summary": "Represents a base class that is common to most RhinoCommon surface types.  \nA surface represents an entity that can be all visited by providing   two independent parameters, usually called (u, v), or sometimes (s, t).",
    "baseclass": "Rhino.Geometry.GeometryBase",
    "constructors": [
      {
        "signature": "Surface()",
        "modifiers": ["protected"],
        "protected": true,
        "virtual": false,
        "summary": "Protected constructor for internal use."
      },
      {
        "signature": "Surface(SerializationInfo info, StreamingContext context)",
        "modifiers": ["protected"],
        "protected": true,
        "virtual": false,
        "summary": "Protected constructor for internal use.",
        "parameters": [
          {
            "name": "info",
            "type": "System.Runtime.Serialization.SerializationInfo",
            "summary": "Serialization data."
          },
          {
            "name": "context",
            "type": "System.Runtime.Serialization.StreamingContext",
            "summary": "Serialization stream."
          }
        ]
      }
    ],
    "properties": [
      {
        "signature": "bool IsSolid",
        "modifiers": ["public", "virtual"],
        "protected": false,
        "virtual": true,
        "summary": "Gets a values indicating whether a surface is solid.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "bool IsSubDFriendly",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns True if the surface is a non-rational, uniform, natural or periodic, cubic NURBS surface. Otherwise, False is returned.",
        "since": "7.0",
        "property": ["get"]
      }
    ],
    "methods": [
      {
        "signature": "Surface CreateExtrusion(Curve profile, Vector3d direction)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Constructs a surface by extruding a curve along a vector.",
        "since": "5.0",
        "parameters": [
          {
            "name": "profile",
            "type": "Curve",
            "summary": "Profile curve to extrude."
          },
          {
            "name": "direction",
            "type": "Vector3d",
            "summary": "Direction and length of extrusion."
          }
        ],
        "returns": "A surface on success or None on failure."
      },
      {
        "signature": "Surface CreateExtrusionToPoint(Curve profile, Point3d apexPoint)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Constructs a surface by extruding a curve to a point.",
        "since": "5.0",
        "parameters": [
          {
            "name": "profile",
            "type": "Curve",
            "summary": "Profile curve to extrude."
          },
          {
            "name": "apexPoint",
            "type": "Point3d",
            "summary": "Apex point of extrusion."
          }
        ],
        "returns": "A Surface on success or None on failure."
      },
      {
        "signature": "Surface CreatePeriodicSurface(Surface surface, System.Int32 direction, System.Boolean bSmooth)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Constructs a periodic surface from a base surface and a direction.",
        "since": "6.0",
        "parameters": [
          {
            "name": "surface",
            "type": "Surface",
            "summary": "The surface to make periodic."
          },
          {
            "name": "direction",
            "type": "System.Int32",
            "summary": "The direction to make periodic, either 0 = U, or 1 = V."
          },
          {
            "name": "bSmooth",
            "type": "System.Boolean",
            "summary": "Controls kink removal. If true, smooths any kinks in the surface and moves control points to make a smooth surface. If false, control point locations are not changed or changed minimally (only one point may move) and only the knot vector is altered."
          }
        ],
        "returns": "A periodic surface if successful, None on failure."
      },
      {
        "signature": "Surface CreatePeriodicSurface(Surface surface, System.Int32 direction)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Constructs a periodic surface from a base surface and a direction.",
        "since": "5.0",
        "parameters": [
          {
            "name": "surface",
            "type": "Surface",
            "summary": "The surface to make periodic."
          },
          {
            "name": "direction",
            "type": "System.Int32",
            "summary": "The direction to make periodic, either 0 = U, or 1 = V."
          }
        ],
        "returns": "A Surface on success or None on failure."
      },
      {
        "signature": "Surface[] CreateRollingBallFillet(Surface surfaceA, Point2d uvA, Surface surfaceB, Point2d uvB, System.Double radius, System.Double tolerance)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Constructs a rolling ball fillet between two surfaces.",
        "since": "5.0",
        "parameters": [
          {
            "name": "surfaceA",
            "type": "Surface",
            "summary": "A first surface."
          },
          {
            "name": "uvA",
            "type": "Point2d",
            "summary": "A point in the parameter space of FaceA near where the fillet is expected to hit the surface."
          },
          {
            "name": "surfaceB",
            "type": "Surface",
            "summary": "A second surface."
          },
          {
            "name": "uvB",
            "type": "Point2d",
            "summary": "A point in the parameter space of FaceB near where the fillet is expected to hit the surface."
          },
          {
            "name": "radius",
            "type": "System.Double",
            "summary": "A radius value."
          },
          {
            "name": "tolerance",
            "type": "System.Double",
            "summary": "A tolerance value used for approximating and intersecting offset surfaces."
          }
        ],
        "returns": "A new array of rolling ball fillet surfaces; this array can be empty on failure."
      },
      {
        "signature": "Surface[] CreateRollingBallFillet(Surface surfaceA, Surface surfaceB, System.Double radius, System.Double tolerance)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Constructs a rolling ball fillet between two surfaces.",
        "since": "5.0",
        "parameters": [
          {
            "name": "surfaceA",
            "type": "Surface",
            "summary": "A first surface."
          },
          {
            "name": "surfaceB",
            "type": "Surface",
            "summary": "A second surface."
          },
          {
            "name": "radius",
            "type": "System.Double",
            "summary": "A radius value."
          },
          {
            "name": "tolerance",
            "type": "System.Double",
            "summary": "A tolerance value."
          }
        ],
        "returns": "A new array of rolling ball fillet surfaces; this array can be empty on failure."
      },
      {
        "signature": "Surface[] CreateRollingBallFillet(Surface surfaceA, System.Boolean flipA, Surface surfaceB, System.Boolean flipB, System.Double radius, System.Double tolerance)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Constructs a rolling ball fillet between two surfaces.",
        "since": "5.0",
        "parameters": [
          {
            "name": "surfaceA",
            "type": "Surface",
            "summary": "A first surface."
          },
          {
            "name": "flipA",
            "type": "System.Boolean",
            "summary": "A value that indicates whether A should be used in flipped mode."
          },
          {
            "name": "surfaceB",
            "type": "Surface",
            "summary": "A second surface."
          },
          {
            "name": "flipB",
            "type": "System.Boolean",
            "summary": "A value that indicates whether B should be used in flipped mode."
          },
          {
            "name": "radius",
            "type": "System.Double",
            "summary": "A radius value."
          },
          {
            "name": "tolerance",
            "type": "System.Double",
            "summary": "A tolerance value."
          }
        ],
        "returns": "A new array of rolling ball fillet surfaces; this array can be empty on failure."
      },
      {
        "signature": "Surface CreateSoftEditSurface(Surface surface, Point2d uv, Vector3d delta, System.Double uLength, System.Double vLength, System.Double tolerance, System.Boolean fixEnds)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Creates a soft edited surface from an existing surface using a smooth field of influence.",
        "since": "6.0",
        "parameters": [
          {
            "name": "surface",
            "type": "Surface",
            "summary": "The surface to soft edit."
          },
          {
            "name": "uv",
            "type": "Point2d",
            "summary": "A point in the parameter space to move from. This location on the surface is moved, and the move is smoothly tapered off with increasing distance along the surface from this parameter."
          },
          {
            "name": "delta",
            "type": "Vector3d",
            "summary": "The direction and magnitude, or maximum distance, of the move."
          },
          {
            "name": "uLength",
            "type": "System.Double",
            "summary": "The distance along the surface's u-direction from the editing point over which the strength of the editing falls off smoothly."
          },
          {
            "name": "vLength",
            "type": "System.Double",
            "summary": "The distance along the surface's v-direction from the editing point over which the strength of the editing falls off smoothly."
          },
          {
            "name": "tolerance",
            "type": "System.Double",
            "summary": "The active document's model absolute tolerance."
          },
          {
            "name": "fixEnds",
            "type": "System.Boolean",
            "summary": "Keeps edge locations fixed."
          }
        ],
        "returns": "The soft edited surface if successful. None on failure."
      },
      {
        "signature": "Surface[] CreateTweenSurfacesWithSampling(Surface surface0, Surface surface1, System.Int32 numSurfaces, System.Int32 numSamples, System.Double tolerance)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Create tween surfaces that gradually transition between two bounding surfaces using point sampling.",
        "since": "8.14",
        "parameters": [
          {
            "name": "surface0",
            "type": "Surface",
            "summary": "The first, or starting, surface."
          },
          {
            "name": "surface1",
            "type": "Surface",
            "summary": "The second, or ending, curve."
          },
          {
            "name": "numSurfaces",
            "type": "System.Int32",
            "summary": "Number of tween surfaces to create."
          },
          {
            "name": "numSamples",
            "type": "System.Int32",
            "summary": "Number of sample points along input surfaces."
          },
          {
            "name": "tolerance",
            "type": "System.Double",
            "summary": "The tolerance. When in doubt, use the document's model absolute tolerance."
          }
        ],
        "returns": ">An array of tween surfaces if successful, an empty array on error."
      },
      {
        "signature": "System.Boolean ClosestPoint(Point3d testPoint, out System.Double u, out System.Double v)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Input the parameters of the point on the surface that is closest to testPoint.",
        "since": "5.0",
        "parameters": [
          {
            "name": "testPoint",
            "type": "Point3d",
            "summary": "A point to test against."
          },
          {
            "name": "u",
            "type": "System.Double",
            "summary": "U parameter of the surface that is closest to testPoint."
          },
          {
            "name": "v",
            "type": "System.Double",
            "summary": "V parameter of the surface that is closest to testPoint."
          }
        ],
        "returns": "True on success, False on failure."
      },
      {
        "signature": "IsoStatus ClosestSide(System.Double u, System.Double v)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the side that is closest, in terms of 3D-distance, to a U and V parameter.",
        "since": "5.0",
        "parameters": [
          {
            "name": "u",
            "type": "System.Double",
            "summary": "A u parameter."
          },
          {
            "name": "v",
            "type": "System.Double",
            "summary": "A v parameter."
          }
        ],
        "returns": "A side."
      },
      {
        "signature": "SurfaceCurvature CurvatureAt(System.Double u, System.Double v)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Computes the curvature at the given UV coordinate.",
        "since": "5.0",
        "parameters": [
          {
            "name": "u",
            "type": "System.Double",
            "summary": "U parameter for evaluation."
          },
          {
            "name": "v",
            "type": "System.Double",
            "summary": "V parameter for evaluation."
          }
        ],
        "returns": "Surface Curvature data for the point at UV or None on failure."
      },
      {
        "signature": "System.Int32 Degree(System.Int32 direction)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns the maximum algebraic degree of any span (or a good estimate if curve spans are not algebraic).",
        "since": "5.0",
        "parameters": [
          {
            "name": "direction",
            "type": "System.Int32",
            "summary": "0 gets first parameter's domain, 1 gets second parameter's domain."
          }
        ],
        "returns": "The maximum degree."
      },
      {
        "signature": "Interval Domain(System.Int32 direction)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the domain in a direction.",
        "since": "5.0",
        "parameters": [
          {
            "name": "direction",
            "type": "System.Int32",
            "summary": "0 gets first parameter, 1 gets second parameter."
          }
        ],
        "returns": "An interval value."
      },
      {
        "signature": "System.Boolean Evaluate(System.Double u, System.Double v, System.Int32 numberDerivatives, out Point3d point, out Vector3d[] derivatives)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Evaluates a surface mathematically.",
        "since": "5.0",
    "remarks": "The partial derivatives will be in the order {Su, Sv} for numberDerivatives = 1, {Su, Sv, Suu, Suv, Svv} for 2, {Su, Sv, Suu, Suv, Svv, Suuu, Suuv, Suvv, Svvv} for 3, and similar for higher counts.",
        "parameters": [
          {
            "name": "u",
            "type": "System.Double",
            "summary": "A U parameter."
          },
          {
            "name": "v",
            "type": "System.Double",
            "summary": "A V parameter."
          },
          {
            "name": "numberDerivatives",
            "type": "System.Int32",
            "summary": "The number of derivatives."
          },
          {
            "name": "point",
            "type": "Point3d",
            "summary": "A point. This out parameter will be assigned during this call."
          },
          {
            "name": "derivatives",
            "type": "Vector3d[]",
            "summary": "A vector array. This out parameter will be assigned during this call. This can be null."
          }
        ],
        "returns": "True if the operation succeeded; False otherwise."
      },
      {
        "signature": "Surface Extend(IsoStatus edge, System.Double extensionLength, System.Boolean smooth)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Extends an untrimmed surface along one edge.",
        "since": "5.0",
        "parameters": [
          {
            "name": "edge",
            "type": "IsoStatus",
            "summary": "Edge to extend.  Must be North, South, East, or West."
          },
          {
            "name": "extensionLength",
            "type": "System.Double",
            "summary": "distance to extend."
          },
          {
            "name": "smooth",
            "type": "System.Boolean",
            "summary": "True for smooth (C-infinity) extension. False for a C1- ruled extension."
          }
        ],
        "returns": "New extended surface on success."
      },
      {
        "signature": "System.Boolean Extend(System.Int32 direction, Interval interval)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Analytically extends the surface to include the interval.",
        "since": "7.4",
        "parameters": [
          {
            "name": "direction",
            "type": "System.Int32",
            "summary": "If 0, Surface.Domain(0) will include the interval. (the first surface parameter). If 1, Surface.Domain(1) will include the interval. (the second surface parameter)."
          },
          {
            "name": "interval",
            "type": "Interval",
            "summary": "If the interval is not included in surface domain, the surface will be extended so that its domain includes the interval. Note, this method will fail if the surface is closed in the specified direction."
          }
        ],
        "returns": "True if successful, False otherwise."
      },
      {
        "signature": "Surface Fit(System.Int32 uDegree, System.Int32 vDegree, System.Double fitTolerance)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Fits a new surface through an existing surface.",
        "since": "5.0",
        "parameters": [
          {
            "name": "uDegree",
            "type": "System.Int32",
            "summary": "the output surface U degree. Must be bigger than 1."
          },
          {
            "name": "vDegree",
            "type": "System.Int32",
            "summary": "the output surface V degree. Must be bigger than 1."
          },
          {
            "name": "fitTolerance",
            "type": "System.Double",
            "summary": "The fitting tolerance."
          }
        ],
        "returns": "A surface, or None on error."
      },
      {
        "signature": "Curve[] FitCurveToSurface(Curve trimCurve3d, Vector3d trimProjectionDir, System.Double tolerance, IEnumerable<double> Knots, System.Boolean divideIntoSections, ref Curve trimCurveOnSurface, ref Curve splitCurve)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "8.0",
        "parameters": [
          {
            "name": "trimCurve3d",
            "type": "Curve",
            "summary": "curve that will trim from one edge to the opposite"
          },
          {
            "name": "trimProjectionDir",
            "type": "Vector3d",
            "summary": "Vector for projection, or zero vector for no projection"
          },
          {
            "name": "tolerance",
            "type": "System.Double",
            "summary": "3d tolerance for projection, splitting, fitting..."
          },
          {
            "name": "Knots",
            "type": "IEnumerable<double>",
            "summary": "For TrimParamKnots=3, the custom knots to add"
          },
          {
            "name": "divideIntoSections",
            "type": "System.Boolean",
            "summary": "If true, the surface is divided at each knot"
          },
          {
            "name": "trimCurveOnSurface",
            "type": "Curve",
            "summary": "the actual trim curve as it is projected on or pulled to the surface"
          },
          {
            "name": "splitCurve",
            "type": "Curve",
            "summary": "the actual fit curve the split the surface"
          }
        ]
      },
      {
        "signature": "System.Boolean FrameAt(System.Double u, System.Double v, out Plane frame)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Computes the orient plane on a surface given a U and V parameter.  \nThis is the simple evaluation call with no error handling.",
        "since": "5.0",
        "parameters": [
          {
            "name": "u",
            "type": "System.Double",
            "summary": "A first parameter."
          },
          {
            "name": "v",
            "type": "System.Double",
            "summary": "A second parameter."
          },
          {
            "name": "frame",
            "type": "Plane",
            "summary": "A frame plane that will be computed during this call."
          }
        ],
        "returns": "True if this operation succeeded; otherwise false."
      },
      {
        "signature": "System.Boolean GetNextDiscontinuity(System.Int32 direction, Continuity continuityType, System.Double t0, System.Double t1, out System.Double t)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Searches for a derivative, tangent, or curvature discontinuity.",
        "since": "5.0",
        "parameters": [
          {
            "name": "direction",
            "type": "System.Int32",
            "summary": "If 0, then \"u\" parameter is checked. If 1, then the \"v\" parameter is checked."
          },
          {
            "name": "continuityType",
            "type": "Continuity",
            "summary": "The desired continuity."
          },
          {
            "name": "t0",
            "type": "System.Double",
            "summary": "Search begins at t0. If there is a discontinuity at t0, it will be ignored. This makes it possible to repeatedly call GetNextDiscontinuity and step through the discontinuities."
          },
          {
            "name": "t1",
            "type": "System.Double",
            "summary": "(t0 != t1) If there is a discontinuity at t1 is will be ignored unless c is a locus discontinuity type and t1 is at the start or end of the curve."
          },
          {
            "name": "t",
            "type": "System.Double",
            "summary": "if a discontinuity is found, then t reports the parameter at the discontinuity."
          }
        ],
        "returns": "Parametric continuity tests c = (C0_continuous, ..., G2_continuous): TRUE if a parametric discontinuity was found strictly between t0 and t1. Note well that all curves are parametrically continuous at the ends of their domains.  Locus continuity tests c = (C0_locus_continuous, ...,G2_locus_continuous): TRUE if a locus discontinuity was found strictly between t0 and t1 or at t1 is the at the end of a curve. Note well that all open curves (IsClosed()=false) are locus discontinuous at the ends of their domains.  All closed curves (IsClosed()=true) are at least C0_locus_continuous at the ends of their domains."
      },
      {
        "signature": "System.Boolean GetNextDiscontinuity(System.Int32 direction, Continuity continuityType, System.Double t0, System.Double t1, System.Double cosAngleTolerance, System.Double curvatureTolerance, out System.Double t)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Searches for a derivative, tangent, or curvature discontinuity.",
        "since": "7.4",
        "parameters": [
          {
            "name": "direction",
            "type": "System.Int32",
            "summary": "If 0, then \"u\" parameter is checked. If 1, then the \"v\" parameter is checked."
          },
          {
            "name": "continuityType",
            "type": "Continuity",
            "summary": "The desired continuity."
          },
          {
            "name": "t0",
            "type": "System.Double",
            "summary": "Search begins at t0. If there is a discontinuity at t0, it will be ignored. This makes it possible to repeatedly call GetNextDiscontinuity and step through the discontinuities."
          },
          {
            "name": "t1",
            "type": "System.Double",
            "summary": "(t0 != t1) If there is a discontinuity at t1 is will be ignored unless c is a locus discontinuity type and t1 is at the start or end of the curve."
          },
          {
            "name": "cosAngleTolerance",
            "type": "System.Double",
            "summary": "default = cos(1 degree) Used only  when continuityType is G1_continuous or G2_continuous. If the cosine of the angle between two tangent vectors is <= cos_angle_tolerance, then a G1 discontinuity is reported."
          },
          {
            "name": "curvatureTolerance",
            "type": "System.Double",
            "summary": "(default = ON_SQRT_EPSILON) Used only when continuityType is G2_continuous. If K0 and K1 are curvatures evaluated from above and below and |K0 - K1| > curvature_tolerance, then a curvature discontinuity is reported."
          },
          {
            "name": "t",
            "type": "System.Double",
            "summary": "if a discontinuity is found, then t reports the parameter at the discontinuity."
          }
        ],
        "returns": "Parametric continuity tests c = (C0_continuous, ..., G2_continuous): TRUE if a parametric discontinuity was found strictly between t0 and t1. Note well that all curves are parametrically continuous at the ends of their domains.  Locus continuity tests c = (C0_locus_continuous, ...,G2_locus_continuous): TRUE if a locus discontinuity was found strictly between t0 and t1 or at t1 is the at the end of a curve. Note well that all open curves (IsClosed()=false) are locus discontinuous at the ends of their domains.  All closed curves (IsClosed()=true) are at least C0_locus_continuous at the ends of their domains."
      },
      {
        "signature": "System.Boolean GetNurbsFormParameterFromSurfaceParameter(System.Double surfaceS, System.Double surfaceT, out System.Double nurbsS, out System.Double nurbsT)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Translates a parameter from the current surface to the parameter space of the surface returned by <b>ToNurbsSurface()</b> .",
        "since": "6.0",
        "parameters": [
          {
            "name": "surfaceS",
            "type": "System.Double",
            "summary": "The parameter in the S, or sometimes U, direction, of this surface."
          },
          {
            "name": "surfaceT",
            "type": "System.Double",
            "summary": "The parameter in the T, or sometimes V, direction of this surface."
          },
          {
            "name": "nurbsS",
            "type": "System.Double",
            "summary": "S on the NURBS form."
          },
          {
            "name": "nurbsT",
            "type": "System.Double",
            "summary": "T on the NURBS form."
          }
        ],
        "returns": "True if the operation succeeded; otherwise, false."
      },
      {
        "signature": "System.Double[] GetSpanVector(System.Int32 direction)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets array of span \"knots\".",
        "since": "5.0",
        "parameters": [
          {
            "name": "direction",
            "type": "System.Int32",
            "summary": "0 gets first parameter's domain, 1 gets second parameter's domain."
          }
        ],
        "returns": "An array with span vectors; or None on error."
      },
      {
        "signature": "System.Boolean GetSurfaceParameterFromNurbsFormParameter(System.Double nurbsS, System.Double nurbsT, out System.Double surfaceS, out System.Double surfaceT)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Translates a parameter from a value on the surface returned by <b>ToNurbsSurface()</b> to the current surface.",
        "since": "6.0",
        "parameters": [
          {
            "name": "nurbsS",
            "type": "System.Double",
            "summary": "The parameter in the S, or sometimes U, direction of the NURBS form surface."
          },
          {
            "name": "nurbsT",
            "type": "System.Double",
            "summary": "The parameter in the T, or sometimes V, direction of the NURBS form surface."
          },
          {
            "name": "surfaceS",
            "type": "System.Double",
            "summary": "S on this surface."
          },
          {
            "name": "surfaceT",
            "type": "System.Double",
            "summary": "T o n this surface."
          }
        ],
        "returns": "True if the operation succeeded; otherwise, false."
      },
      {
        "signature": "System.Boolean GetSurfaceSize(out System.Double width, out System.Double height)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets an estimate of the size of the rectangle that would be created if the 3d surface where flattened into a rectangle.",
        "since": "5.0",
        "parameters": [
          {
            "name": "width",
            "type": "System.Double",
            "summary": "corresponds to the first surface parameter."
          },
          {
            "name": "height",
            "type": "System.Double",
            "summary": "corresponds to the second surface parameter."
          }
        ],
        "returns": "True if successful."
      },
      {
        "signature": "System.Int32 HasNurbsForm()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Is there a NURBS surface representation of this surface.",
        "since": "5.0",
        "returns": "0 unable to create NURBS representation with desired accuracy. 1 success - NURBS parameterization matches the surface's 2 success - NURBS point locus matches the surface's and the domain of the NURBS surface is correct. However, This surface's parameterization and the NURBS surface parameterization may not match.  This situation happens when getting NURBS representations of surfaces that have a transcendental parameterization like spheres, cylinders, and cones."
      },
      {
        "signature": "NurbsCurve InterpolatedCurveOnSurface(IEnumerable<Point3d> points, System.Double tolerance)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Constructs an interpolated curve on a surface, using 3D points.",
        "since": "5.0",
        "parameters": [
          {
            "name": "points",
            "type": "System.Collections.Generic.IEnumerable<Point3d>",
            "summary": "A list, an array or any enumerable set of points."
          },
          {
            "name": "tolerance",
            "type": "System.Double",
            "summary": "A tolerance value."
          }
        ],
        "returns": "A new NURBS curve, or None on error."
      },
      {
        "signature": "NurbsCurve InterpolatedCurveOnSurfaceUV(IEnumerable<Point2d> points, System.Double tolerance, System.Boolean closed, System.Int32 closedSurfaceHandling)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns a curve that interpolates points on a surface. The interpolant lies on the surface.",
        "since": "6.18",
        "parameters": [
          {
            "name": "points",
            "type": "System.Collections.Generic.IEnumerable<Point2d>",
            "summary": "List of at least two UV parameter locations on the surface."
          },
          {
            "name": "tolerance",
            "type": "System.Double",
            "summary": "Tolerance used for the fit of the push-up curve. Generally, the resulting interpolating curve will be within tolerance of the surface."
          },
          {
            "name": "closed",
            "type": "System.Boolean",
            "summary": "If false, the interpolating curve is not closed. If true, the interpolating curve is closed, and the last point and first point should generally not be equal."
          },
          {
            "name": "closedSurfaceHandling",
            "type": "System.Int32",
            "summary": "If 0, all points must be in the rectangular domain of the surface. If the surface is closed in some direction, then this routine will interpret each point and place it at an appropriate location in the covering space. This is the simplest option and should give good results. If 1, then more options for more control of handling curves going across seams are available. If the surface is closed in some direction, then the points are taken as points in the covering space. Example, if srf.IsClosed(0)=True and srf.IsClosed(1)=False and srf.Domain(0)=srf.Domain(1)=Interval(0,1) then if closedSurfaceHandling=1 a point(u, v) in points can have any value for the u coordinate, but must have 0<=v<=1. In particular, if points = { (0.0,0.5), (2.0,0.5) } then the interpolating curve will wrap around the surface two times in the closed direction before ending at start of the curve. If closed=True the last point should equal the first point plus an integer multiple of the period on a closed direction."
          }
        ],
        "returns": "A new NURBS curve if successful, or None on error."
      },
      {
        "signature": "NurbsCurve InterpolatedCurveOnSurfaceUV(IEnumerable<Point2d> points, System.Double tolerance)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns a curve that interpolates points on a surface. The interpolant lies on the surface.",
        "since": "5.0",
        "parameters": [
          {
            "name": "points",
            "type": "System.Collections.Generic.IEnumerable<Point2d>",
            "summary": "List of at least two UV parameter locations on the surface."
          },
          {
            "name": "tolerance",
            "type": "System.Double",
            "summary": "Tolerance used for the fit of the push-up curve. Generally, the resulting interpolating curve will be within tolerance of the surface."
          }
        ],
        "returns": "A new NURBS curve if successful, or None on error."
      },
      {
        "signature": "System.Int32 IsAtSeam(System.Double u, System.Double v)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Tests if a surface parameter value is at a seam.",
        "since": "5.0",
        "parameters": [
          {
            "name": "u",
            "type": "System.Double",
            "summary": "Surface u parameter to test."
          },
          {
            "name": "v",
            "type": "System.Double",
            "summary": "Surface v parameter to test."
          }
        ],
        "returns": "0 if not a seam, 1 if u == Domain(0)[i] and srf(u, v) == srf(Domain(0)[1-i], v) 2 if v == Domain(1)[i] and srf(u, v) == srf(u, Domain(1)[1-i]) 3 if 1 and 2 are true."
      },
      {
        "signature": "System.Boolean IsAtSingularity(System.Double u, System.Double v, System.Boolean exact)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Tests if a surface parameter value is at a singularity.",
        "since": "5.0",
        "parameters": [
          {
            "name": "u",
            "type": "System.Double",
            "summary": "Surface u parameter to test."
          },
          {
            "name": "v",
            "type": "System.Double",
            "summary": "Surface v parameter to test."
          },
          {
            "name": "exact",
            "type": "System.Boolean",
            "summary": "If true, test if (u,v) is exactly at a singularity. If false, test if close enough to cause numerical problems."
          }
        ],
        "returns": "True if surface is singular at (s,t)"
      },
      {
        "signature": "System.Boolean IsClosed(System.Int32 direction)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets a value indicating if the surface is closed in a direction.",
        "since": "5.0",
        "parameters": [
          {
            "name": "direction",
            "type": "System.Int32",
            "summary": "0 = U, 1 = V."
          }
        ],
        "returns": "The indicating boolean value."
      },
      {
        "signature": "System.Boolean IsCone()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Determines if the surface is a portion of a cone within RhinoMath.ZeroTolerance.",
        "since": "5.0",
        "returns": "True if the surface is a portion of a cone."
      },
      {
        "signature": "System.Boolean IsCone(System.Double tolerance)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Determines if the surface is a portion of a cone within a given tolerance.",
        "since": "5.0",
        "parameters": [
          {
            "name": "tolerance",
            "type": "System.Double",
            "summary": "tolerance to use when checking."
          }
        ],
        "returns": "True if the surface is a portion of a cone."
      },
      {
        "signature": "System.Boolean IsContinuous(Continuity continuityType, System.Double u, System.Double v)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Tests continuity at a surface parameter value.",
        "since": "5.0",
        "parameters": [
          {
            "name": "continuityType",
            "type": "Continuity",
            "summary": "The continuity type to sample."
          },
          {
            "name": "u",
            "type": "System.Double",
            "summary": "Surface u parameter to test."
          },
          {
            "name": "v",
            "type": "System.Double",
            "summary": "Surface v parameter to test."
          }
        ],
        "returns": "True if the surface has at least the specified continuity at the (u,v) parameter."
      },
      {
        "signature": "System.Boolean IsCylinder()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Determines if the surface is a portion of a cylinder within RhinoMath.ZeroTolerance.",
        "since": "5.0",
        "returns": "True if the surface is a portion of a cylinder."
      },
      {
        "signature": "System.Boolean IsCylinder(System.Double tolerance)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Determines if the surface is a portion of a cylinder within a given tolerance.",
        "since": "5.0",
        "parameters": [
          {
            "name": "tolerance",
            "type": "System.Double",
            "summary": "tolerance to use when checking."
          }
        ],
        "returns": "True if the surface is a portion of a cylinder."
      },
      {
        "signature": "System.Boolean IsExtrusion()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Determines if the surface is a portion of an extrusion within RhinoMath.ZeroTolerance.",
        "since": "9.0",
        "returns": "True if the surface is an extrusion."
      },
      {
        "signature": "System.Boolean IsExtrusion(System.Double tolerance)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Determines if the surface is a portion of an extrusion within a given tolerance.",
        "since": "9.0",
        "parameters": [
          {
            "name": "tolerance",
            "type": "System.Double",
            "summary": "tolerance to use when checking."
          }
        ],
        "returns": "True if the surface is an extrusion."
      },
      {
        "signature": "IsoStatus IsIsoparametric(BoundingBox bbox)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Determines if a 2d bounding box is isoparametric in the parameter space of this surface.",
        "since": "5.0",
        "parameters": [
          {
            "name": "bbox",
            "type": "BoundingBox",
            "summary": "Bounding box to test."
          }
        ],
        "returns": "IsoStatus flag describing the iso-parametric relationship between the surface and the bounding box."
      },
      {
        "signature": "IsoStatus IsIsoparametric(Curve curve, Interval curveDomain)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Determines if a 2D curve is isoparametric in the parameter space of this surface.",
        "since": "5.0",
        "parameters": [
          {
            "name": "curve",
            "type": "Curve",
            "summary": "Curve to test."
          },
          {
            "name": "curveDomain",
            "type": "Interval",
            "summary": "Sub domain of the curve."
          }
        ],
        "returns": "IsoStatus flag describing the iso-parametric relationship between the surface and the curve."
      },
      {
        "signature": "IsoStatus IsIsoparametric(Curve curve)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Determines if a 2d curve is isoparametric in the parameter space of this surface.",
        "since": "5.0",
        "parameters": [
          {
            "name": "curve",
            "type": "Curve",
            "summary": "Curve to test."
          }
        ],
        "returns": "IsoStatus flag describing the iso-parametric relationship between the surface and the curve."
      },
      {
        "signature": "Curve IsoCurve(IsoStatus iso, System.Double t)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets isoparametric curve. <b>IsoStatus.None</b> is not supported, and <b>IsoStatus.X</b> and <b>IsoStatus.Y</b> need valid t-values in the U- or V-domain respectively.",
        "since": "9.0",
        "parameters": [
          {
            "name": "iso",
            "type": "IsoStatus",
            "summary": "<b>IsoStatus.North</b> returns the curve where U varies and V is V_max (paramter t is ignored)  <b>IsoStatus.East</b> returns the curve where V varies and U is U_max (paramter t is ignored)  <b>IsoStatus.South</b> returns the curve where U varies and V is V_min (paramter t is ignored)  <b>IsoStatus.West</b> returns the curve where V varies and U is U_min (paramter t is ignored)  <b>IsoStatus.X</b> returns the curve where V varies and U is t (if t is inside the U-domain)  <b>IsoStatus.Y</b> returns the curve where U varies and V is t (if t is inside the V-domain)"
          },
          {
            "name": "t",
            "type": "System.Double",
            "summary": "the parameter used if iso is X or Y."
          }
        ],
        "returns": "An isoparametric curve or None on error."
      },
      {
        "signature": "Curve IsoCurve(IsoStatus iso)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets isoparametric curve that corresponds to one of the four surface edges. Other <b>IsoStatus</b> values are not supported.",
        "since": "9.0",
        "parameters": [
          {
            "name": "iso",
            "type": "IsoStatus",
            "summary": "<b>IsoStatus.North</b> returns the curve where U varies and V is V_max  <b>IsoStatus.East</b> returns the curve where V varies and U is U_max  <b>IsoStatus.South</b> returns the curve where U varies and V is V_min  <b>IsoStatus.West</b> returns the curve where V varies and U is U_min"
          }
        ],
        "returns": "An isoparametric curve or None on error."
      },
      {
        "signature": "Curve IsoCurve(System.Int32 direction, System.Double constantParameter)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets isoparametric curve.",
        "since": "5.0",
    "remarks": "In this function \"direction\" indicates which direction the resulting curve runs. 0: horizontal, 1: vertical In the other Surface functions that take a \"direction\" argument, \"direction\" indicates if \"constantParameter\" is a \"u\" or \"v\" parameter.",
        "parameters": [
          {
            "name": "direction",
            "type": "System.Int32",
            "summary": "0 first parameter varies and second parameter is constant e.g., point on IsoCurve(0,c) at t is srf(t,c) This is a horizontal line from left to right  1 first parameter is constant and second parameter varies e.g., point on IsoCurve(1,c) at t is srf(c,t This is a vertical line from bottom to top."
          },
          {
            "name": "constantParameter",
            "type": "System.Double",
            "summary": "The parameter that was constant on the original surface."
          }
        ],
        "returns": "An isoparametric curve or None on error."
      },
      {
        "signature": "System.Boolean IsPeriodic(System.Int32 direction)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets a value indicating if the surface is periodic in a direction (default is false).",
        "since": "5.0",
        "parameters": [
          {
            "name": "direction",
            "type": "System.Int32",
            "summary": "0 = U, 1 = V."
          }
        ],
        "returns": "The indicating boolean value."
      },
      {
        "signature": "System.Boolean IsPlanar()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Tests a surface to see if it is planar to zero tolerance.",
        "since": "5.0",
        "returns": "True if the surface is planar (flat) to within RhinoMath.ZeroTolerance units (1e-12)."
      },
      {
        "signature": "System.Boolean IsPlanar(System.Double tolerance)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Tests a surface to see if it is planar to a given tolerance.",
        "since": "5.0",
        "parameters": [
          {
            "name": "tolerance",
            "type": "System.Double",
            "summary": "tolerance to use when checking."
          }
        ],
        "returns": "True if there is a plane such that the maximum distance from the surface to the plane is <= tolerance."
      },
      {
        "signature": "System.Boolean IsSingular(System.Int32 side)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "True if surface side is collapsed to a point.",
        "since": "5.0",
        "parameters": [
          {
            "name": "side",
            "type": "System.Int32",
            "summary": "side of parameter space to test 0 = south, 1 = east, 2 = north, 3 = west."
          }
        ],
        "returns": "True if this specific side of the surface is singular; otherwise, false."
      },
      {
        "signature": "System.Boolean IsSphere()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Determines if the surface is a portion of a sphere within RhinoMath.ZeroTolerance.",
        "since": "5.0",
        "returns": "True if the surface is a portion of a sphere."
      },
      {
        "signature": "System.Boolean IsSphere(System.Double tolerance)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Determines if the surface is a portion of a sphere within a given tolerance.",
        "since": "5.0",
        "parameters": [
          {
            "name": "tolerance",
            "type": "System.Double",
            "summary": "tolerance to use when checking."
          }
        ],
        "returns": "True if the surface is a portion of a sphere."
      },
      {
        "signature": "System.Boolean IsTorus()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Determines if the surface is a portion of a torus within RhinoMath.ZeroTolerance.",
        "since": "5.0",
        "returns": "True if the surface is a portion of a torus."
      },
      {
        "signature": "System.Boolean IsTorus(System.Double tolerance)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Determines if the surface is a portion of a torus within a given tolerance.",
        "since": "5.0",
        "parameters": [
          {
            "name": "tolerance",
            "type": "System.Double",
            "summary": "tolerance to use when checking."
          }
        ],
        "returns": "True if the surface is a portion of a torus."
      },
      {
        "signature": "System.Boolean LocalClosestPoint(Point3d testPoint, System.Double seedU, System.Double seedV, out System.Double u, out System.Double v)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Find parameters of the point on a surface that is locally closest to the testPoint. The search for a local close point starts at seed parameters.",
        "since": "6.3",
        "parameters": [
          {
            "name": "testPoint",
            "type": "Point3d",
            "summary": "A point to test against."
          },
          {
            "name": "seedU",
            "type": "System.Double",
            "summary": "The seed parameter in the U direction."
          },
          {
            "name": "seedV",
            "type": "System.Double",
            "summary": "The seed parameter in the V direction."
          },
          {
            "name": "u",
            "type": "System.Double",
            "summary": "U parameter of the surface that is closest to testPoint."
          },
          {
            "name": "v",
            "type": "System.Double",
            "summary": "V parameter of the surface that is closest to testPoint."
          }
        ],
        "returns": "True if the search is successful, False if the search fails."
      },
      {
        "signature": "Vector3d NormalAt(System.Double u, System.Double v)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Computes the surface normal at a point.  \nThis is the simple evaluation call - it does not support error handling.",
        "since": "5.0",
        "parameters": [
          {
            "name": "u",
            "type": "System.Double",
            "summary": "A U parameter."
          },
          {
            "name": "v",
            "type": "System.Double",
            "summary": "A V parameter."
          }
        ],
        "returns": "The normal."
      },
      {
        "signature": "Surface Offset(System.Double distance, System.Double tolerance)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Constructs a new surface which is offset from the current surface.",
        "since": "5.0",
        "parameters": [
          {
            "name": "distance",
            "type": "System.Double",
            "summary": "Distance (along surface normal) to offset."
          },
          {
            "name": "tolerance",
            "type": "System.Double",
            "summary": "Offset accuracy."
          }
        ],
        "returns": "The offset surface or None on failure."
      },
      {
        "signature": "Point3d PointAt(System.Double u, System.Double v)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Evaluates a point at a given parameter.",
        "since": "5.0",
        "parameters": [
          {
            "name": "u",
            "type": "System.Double",
            "summary": "evaluation parameters."
          },
          {
            "name": "v",
            "type": "System.Double",
            "summary": "evaluation parameters."
          }
        ],
        "returns": "Point3d.Unset on failure."
      },
      {
        "signature": "Curve Pullback(Curve curve3d, System.Double tolerance, Interval curve3dSubdomain)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Pulls a 3d curve back to the surface's parameter space.",
        "since": "5.0",
        "parameters": [
          {
            "name": "curve3d",
            "type": "Curve",
            "summary": "A curve."
          },
          {
            "name": "tolerance",
            "type": "System.Double",
            "summary": "the maximum acceptable 3d distance between from surface(curve_2d(t)) to the locus of points on the surface that are closest to curve_3d."
          },
          {
            "name": "curve3dSubdomain",
            "type": "Interval",
            "summary": "A sub-domain of the curve to sample."
          }
        ],
        "returns": "2d curve."
      },
      {
        "signature": "Curve Pullback(Curve curve3d, System.Double tolerance)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Pulls a 3d curve back to the surface's parameter space.",
        "since": "5.0",
        "parameters": [
          {
            "name": "curve3d",
            "type": "Curve",
            "summary": "The curve to pull."
          },
          {
            "name": "tolerance",
            "type": "System.Double",
            "summary": "the maximum acceptable 3d distance between from surface(curve_2d(t)) to the locus of points on the surface that are closest to curve_3d."
          }
        ],
        "returns": "2d curve."
      },
      {
        "signature": "Curve Pushup(Curve curve2d, System.Double tolerance, Interval curve2dSubdomain)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Computes a 3d curve that is the composite of a 2d curve and the surface map.",
        "since": "5.0",
        "parameters": [
          {
            "name": "curve2d",
            "type": "Curve",
            "summary": "a 2d curve whose image is in the surface's domain."
          },
          {
            "name": "tolerance",
            "type": "System.Double",
            "summary": "the maximum acceptable distance from the returned 3d curve to the image of curve_2d on the surface."
          },
          {
            "name": "curve2dSubdomain",
            "type": "Interval",
            "summary": "The curve interval (a sub-domain of the original curve) to use."
          }
        ],
        "returns": "3d curve."
      },
      {
        "signature": "Curve Pushup(Curve curve2d, System.Double tolerance)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Computes a 3d curve that is the composite of a 2d curve and the surface map.",
        "since": "5.0",
        "parameters": [
          {
            "name": "curve2d",
            "type": "Curve",
            "summary": "a 2d curve whose image is in the surface's domain."
          },
          {
            "name": "tolerance",
            "type": "System.Double",
            "summary": "the maximum acceptable distance from the returned 3d curve to the image of curve_2d on the surface."
          }
        ],
        "returns": "3d curve."
      },
      {
        "signature": "NurbsSurface Rebuild(System.Int32 uDegree, System.Int32 vDegree, System.Int32 uPointCount, System.Int32 vPointCount)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Rebuilds an existing surface to a given degree and point count.",
        "since": "5.0",
        "parameters": [
          {
            "name": "uDegree",
            "type": "System.Int32",
            "summary": "the output surface u degree."
          },
          {
            "name": "vDegree",
            "type": "System.Int32",
            "summary": "the output surface u degree."
          },
          {
            "name": "uPointCount",
            "type": "System.Int32",
            "summary": "The number of points in the output surface u direction. Must be bigger than uDegree (maximum value is 1000)"
          },
          {
            "name": "vPointCount",
            "type": "System.Int32",
            "summary": "The number of points in the output surface v direction. Must be bigger than vDegree (maximum value is 1000)"
          }
        ],
        "returns": "new rebuilt surface on success. None on failure."
      },
      {
        "signature": "NurbsSurface RebuildOneDirection(System.Int32 direction, System.Int32 pointCount, LoftType loftType, System.Double refitTolerance)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Rebuilds an existing surface with a new surface to a given point count in either the u or v directions independently.",
        "since": "6.7",
        "parameters": [
          {
            "name": "direction",
            "type": "System.Int32",
            "summary": "The direction (0 = U, 1 = V)."
          },
          {
            "name": "pointCount",
            "type": "System.Int32",
            "summary": "The number of points in the output surface in the \"direction\" direction."
          },
          {
            "name": "loftType",
            "type": "LoftType",
            "summary": "The loft type"
          },
          {
            "name": "refitTolerance",
            "type": "System.Double",
            "summary": "The refit tolerance. When in doubt, use the document's model absolute tolerance."
          }
        ],
        "returns": "new rebuilt surface on success. None on failure."
      },
      {
        "signature": "System.Boolean RefitSimplySplitSurface(Curve trimCurve3d, Vector3d trimProjectionDir, System.Double tolerance, RefitTrimKnotMode knotAdditionMode, System.Int32 numInsertKnots, IEnumerable<double> Knots, RefitTrimSectionMode sectionMode, System.Int32 numNonTrimSpans, System.Boolean meetCurve, System.Boolean oneSided, Point3d PtActive, System.Boolean outputSurface, System.Boolean outputCurve, ref System.Int32 numSections, List<Surface> lowerSurface, List<Surface> upperSurface, List<Curve> edgeCurve, ref System.Double FitMeasurement, ref Curve trimCurveOnSurface, ref Curve splitCurve)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "This routine accepts a 3-d trim curve (trimCrv3d). The trim curve is assumed to run from one surface edge to the opposite edge; this is referred to as a \"simple\" trim curve, roughly parallel to one of the srf directions (either u or v).  We refer to that parameter as the \"trim parameter\".  The routine splits the surface via the trim curve, and then refits either side (\"upper\" = \"above the trim\", and \"lower\" = \"below the trim\") as a set of untrimmed Nurbs surfaces.  The idea is to retain, as much as possible, the Nurbs structure of srf, especially in the trim parameter.",
        "since": "8.0",
        "parameters": [
          {
            "name": "trimCurve3d",
            "type": "Curve",
            "summary": "curve that will trim from one edge to the opposite"
          },
          {
            "name": "trimProjectionDir",
            "type": "Vector3d",
            "summary": "Vector for projection, or zero vector for no projection"
          },
          {
            "name": "tolerance",
            "type": "System.Double",
            "summary": "3d tolerance for projection, splitting, fitting..."
          },
          {
            "name": "knotAdditionMode",
            "type": "RefitTrimKnotMode",
            "summary": "0: no, don't add any 1: Yes, add nKnots knots, spaced regularly over the entire surface 2: Yes, add nKnots knots, spaced regularly PER EXISTING SPAN 3: Yes, add nKnots knots, as provided in the array Knots"
          },
          {
            "name": "numInsertKnots",
            "type": "System.Int32",
            "summary": "FOr TrimParamKnots != 3, the number of knots to add"
          },
          {
            "name": "Knots",
            "type": "IEnumerable<double>",
            "summary": "For TrimParamKnots=3, the custom knots to add"
          },
          {
            "name": "sectionMode",
            "type": "RefitTrimSectionMode",
            "summary": "0: no sections, just output one \"upper\" and one \"lower\" surface 1: Yes, divide into sections at each of the input surface's existing knots 2: Yes, divide into sections at each of the \"nKnot\" added knot values 3: Yes, divide into sections at ALL knot values (i.e. both 1 and 2)"
          },
          {
            "name": "numNonTrimSpans",
            "type": "System.Int32",
            "summary": "number of spans in the non-trim parameter"
          },
          {
            "name": "meetCurve",
            "type": "System.Boolean",
            "summary": "Drag the refit surfaces out to meet the original trim curve"
          },
          {
            "name": "oneSided",
            "type": "System.Boolean",
            "summary": "Inputting an \"active\" point means you only want one side of the \"split\" to be refit - In other words, you want a \"trim refit\".  Results will be returned in \"srfLower\""
          },
          {
            "name": "PtActive",
            "type": "Point3d",
            "summary": "Active point"
          },
          {
            "name": "outputSurface",
            "type": "System.Boolean",
            "summary": "if true, output fit surfaces: srfLower and, if !bActivePt, srfUpper"
          },
          {
            "name": "outputCurve",
            "type": "System.Boolean",
            "summary": "if true, output fit curve:  crvEdge"
          },
          {
            "name": "numSections",
            "type": "System.Int32",
            "summary": ""
          },
          {
            "name": "lowerSurface",
            "type": "List<Surface>",
            "summary": "Surfaces (# = nSections) below trim curve in srf's (u,v) domain"
          },
          {
            "name": "upperSurface",
            "type": "List<Surface>",
            "summary": "Surfaces (# = nSections) above trim curve in srf's (u,v) domain"
          },
          {
            "name": "edgeCurve",
            "type": "List<Curve>",
            "summary": "Curves (# = nSections) fit to trim curve with srf's u/v parameter"
          },
          {
            "name": "FitMeasurement",
            "type": "System.Double",
            "summary": "Calculated based on trimParamSections"
          },
          {
            "name": "trimCurveOnSurface",
            "type": "Curve",
            "summary": "the actual trim curve as it is projected on or pulled to the surface"
          },
          {
            "name": "splitCurve",
            "type": "Curve",
            "summary": "the actual fit curve the split the surface"
          }
        ],
        "returns": "True for zuccess, False for failure"
      },
      {
        "signature": "System.Int32 RefitSplit(Curve curve, Vector3d trimProjectionDir, System.Double tolerance, IEnumerable<double> Knots, System.Boolean bMeetCurve, System.Boolean divideIntoSections, List<Surface> srfLower, List<Surface> srfUpper, List<Curve> edgeCurve, ref Curve trimCurveOnSurface, ref Curve splitCurve)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Splits the surface into two and refits the split edge",
        "since": "8.0",
        "parameters": [
          {
            "name": "curve",
            "type": "Curve",
            "summary": "The curve used to split the surface. It must be a simple division, from one edge of the parametric space to the opposite edge."
          },
          {
            "name": "trimProjectionDir",
            "type": "Vector3d",
            "summary": "Vector for projection, or zero vector for no projection"
          },
          {
            "name": "tolerance",
            "type": "System.Double",
            "summary": "3d tolerance for projection, splitting, fitting..."
          },
          {
            "name": "Knots",
            "type": "IEnumerable<double>",
            "summary": ""
          },
          {
            "name": "bMeetCurve",
            "type": "System.Boolean",
            "summary": ""
          },
          {
            "name": "divideIntoSections",
            "type": "System.Boolean",
            "summary": "If true, the surface is divided at each knot"
          },
          {
            "name": "srfLower",
            "type": "List<Surface>",
            "summary": "Surfaces below trim curve in srf's (u,v) domain"
          },
          {
            "name": "srfUpper",
            "type": "List<Surface>",
            "summary": "Surfaces below trim curve in srf's (u,v) domain"
          },
          {
            "name": "edgeCurve",
            "type": "List<Curve>",
            "summary": "Curves (# = nSections) fit to trim curve with srf's u/v parameter"
          },
          {
            "name": "trimCurveOnSurface",
            "type": "Curve",
            "summary": "the actual trim curve as it is projected on or pulled to the surface"
          },
          {
            "name": "splitCurve",
            "type": "Curve",
            "summary": "the actual fit curve the split the surface"
          }
        ]
      },
      {
        "signature": "Surface Reverse(System.Int32 direction, System.Boolean inPlace)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Same as Reverse, but if inPlace is set to True this Surface is modified instead of a new copy being created.",
        "since": "5.8",
        "parameters": [
          {
            "name": "direction",
            "type": "System.Int32",
            "summary": "0 for first parameter's domain, 1 for second parameter's domain."
          },
          {
            "name": "inPlace",
            "type": "System.Boolean",
            "summary": ""
          }
        ],
        "returns": "If inPlace is False, a new reversed surface on success. If inPlace is true, this surface instance is returned on success."
      },
      {
        "signature": "Surface Reverse(System.Int32 direction)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Reverses parameterization Domain changes from [a,b] to [-b,-a]",
        "since": "5.0",
        "parameters": [
          {
            "name": "direction",
            "type": "System.Int32",
            "summary": "0 for first parameter's domain, 1 for second parameter's domain."
          }
        ],
        "returns": "a new reversed surface on success."
      },
      {
        "signature": "System.Boolean SetDomain(System.Int32 direction, Interval domain)",
        "modifiers": ["public", "virtual"],
        "protected": false,
        "virtual": true,
        "summary": "Sets the domain in a direction.",
        "since": "5.0",
        "parameters": [
          {
            "name": "direction",
            "type": "System.Int32",
            "summary": "0 sets first parameter's domain, 1 sets second parameter's domain."
          },
          {
            "name": "domain",
            "type": "Interval",
            "summary": "A new domain to be assigned."
          }
        ],
        "returns": "True if setting succeeded, otherwise false."
      },
      {
        "signature": "Curve ShortPath(Point2d start, Point2d end, System.Double tolerance)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Constructs a geodesic between 2 points, used by ShortPath command in Rhino.",
        "since": "5.0",
        "parameters": [
          {
            "name": "start",
            "type": "Point2d",
            "summary": "start point of curve in parameter space. Points must be distinct in the domain of the surface."
          },
          {
            "name": "end",
            "type": "Point2d",
            "summary": "end point of curve in parameter space. Points must be distinct in the domain of the surface."
          },
          {
            "name": "tolerance",
            "type": "System.Double",
            "summary": "tolerance used in fitting discrete solution."
          }
        ],
        "returns": "a geodesic curve on the surface on success. None on failure."
      },
      {
        "signature": "Surface Smooth(System.Double smoothFactor, System.Boolean bXSmooth, System.Boolean bYSmooth, System.Boolean bZSmooth, System.Boolean bFixBoundaries, SmoothingCoordinateSystem coordinateSystem, Plane plane)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Smooths a surface by averaging the positions of control points in a specified region.",
        "since": "6.0",
        "parameters": [
          {
            "name": "smoothFactor",
            "type": "System.Double",
            "summary": "The smoothing factor, which controls how much control points move towards the average of the neighboring control points."
          },
          {
            "name": "bXSmooth",
            "type": "System.Boolean",
            "summary": "When True control points move in X axis direction."
          },
          {
            "name": "bYSmooth",
            "type": "System.Boolean",
            "summary": "When True control points move in Y axis direction."
          },
          {
            "name": "bZSmooth",
            "type": "System.Boolean",
            "summary": "When True control points move in Z axis direction."
          },
          {
            "name": "bFixBoundaries",
            "type": "System.Boolean",
            "summary": "When True the surface edges don't move."
          },
          {
            "name": "coordinateSystem",
            "type": "SmoothingCoordinateSystem",
            "summary": "The coordinates to determine the direction of the smoothing."
          },
          {
            "name": "plane",
            "type": "Plane",
            "summary": "If SmoothingCoordinateSystem.CPlane specified, then the construction plane."
          }
        ],
        "returns": "The smoothed surface if successful, None otherwise."
      },
      {
        "signature": "Surface Smooth(System.Double smoothFactor, System.Boolean bXSmooth, System.Boolean bYSmooth, System.Boolean bZSmooth, System.Boolean bFixBoundaries, SmoothingCoordinateSystem coordinateSystem)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Smooths a surface by averaging the positions of control points in a specified region.",
        "since": "6.0",
        "parameters": [
          {
            "name": "smoothFactor",
            "type": "System.Double",
            "summary": "The smoothing factor, which controls how much control points move towards the average of the neighboring control points."
          },
          {
            "name": "bXSmooth",
            "type": "System.Boolean",
            "summary": "When True control points move in X axis direction."
          },
          {
            "name": "bYSmooth",
            "type": "System.Boolean",
            "summary": "When True control points move in Y axis direction."
          },
          {
            "name": "bZSmooth",
            "type": "System.Boolean",
            "summary": "When True control points move in Z axis direction."
          },
          {
            "name": "bFixBoundaries",
            "type": "System.Boolean",
            "summary": "When True the surface edges don't move."
          },
          {
            "name": "coordinateSystem",
            "type": "SmoothingCoordinateSystem",
            "summary": "The coordinates to determine the direction of the smoothing."
          }
        ],
        "returns": "The smoothed surface if successful, None otherwise."
      },
      {
        "signature": "System.Int32 SpanCount(System.Int32 direction)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets number of smooth nonempty spans in the parameter direction.",
        "since": "5.0",
        "parameters": [
          {
            "name": "direction",
            "type": "System.Int32",
            "summary": "0 gets first parameter's domain, 1 gets second parameter's domain."
          }
        ],
        "returns": "The span count."
      },
      {
        "signature": "Surface[] Split(System.Int32 direction, System.Double parameter)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Splits (divides) the surface into two parts at the specified parameter",
        "since": "5.0",
        "parameters": [
          {
            "name": "direction",
            "type": "System.Int32",
            "summary": "0 = The surface is split vertically. The \"west\" side is returned as the first surface in the array and the \"east\" side is returned as the second surface in the array. 1 = The surface is split horizontally. The \"south\" side is returned as the first surface in the array and the \"north\" side is returned as the second surface in the array"
          },
          {
            "name": "parameter",
            "type": "System.Double",
            "summary": "value of constant parameter in interval returned by Domain(direction)"
          }
        ],
        "returns": "Array of two surfaces on success"
      },
      {
        "signature": "Brep ToBrep()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Converts the surface into a Brep.",
        "since": "5.0",
        "returns": "A Brep with a similar shape like this surface or null."
      },
      {
        "signature": "NurbsSurface ToNurbsSurface()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets a NURBS surface representation of this surface. Default tolerance of 0.0 is used.",
        "since": "5.0",
        "returns": "NurbsSurface on success, None on failure."
      },
      {
        "signature": "NurbsSurface ToNurbsSurface(System.Double tolerance, out System.Int32 accuracy)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets a NURBS surface representation of this surface.",
        "since": "5.0",
        "parameters": [
          {
            "name": "tolerance",
            "type": "System.Double",
            "summary": "tolerance to use when creating NURBS representation."
          },
          {
            "name": "accuracy",
            "type": "System.Int32",
            "summary": "0 = unable to create NURBS representation with desired accuracy.  \n1 = success - returned NURBS parameterization matches the surface's     to the desired accuracy.  \n2 = success - returned NURBS point locus matches the surface's to the     desired accuracy and the domain of the NURBS surface is correct.      However, this surface's parameterization and the NURBS surface     parameterization may not match to the desired accuracy. This      situation happens when getting NURBS representations of surfaces     that have a transcendental parameterization like spheres, cylinders,     and cones."
          }
        ],
        "returns": "NurbsSurface on success, None on failure."
      },
      {
        "signature": "Surface Transpose()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Transposes surface parameterization (swap U and V)",
        "since": "5.0",
        "returns": "New transposed surface on success, None on failure."
      },
      {
        "signature": "Surface Transpose(System.Boolean inPlace)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Transposes surface parameterization (swap U and V)",
        "since": "5.8",
        "returns": "New transposed surface on success, None on failure."
      },
      {
        "signature": "Surface Trim(Interval u, Interval v)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Constructs a sub-surface that covers the specified UV trimming domain.",
        "since": "5.0",
        "parameters": [
          {
            "name": "u",
            "type": "Interval",
            "summary": "Domain of surface along U direction to include in the subsurface."
          },
          {
            "name": "v",
            "type": "Interval",
            "summary": "Domain of surface along V direction to include in the subsurface."
          }
        ],
        "returns": "SubSurface on success, None on failure."
      },
      {
        "signature": "System.Boolean TryGetCone(out Cone cone, System.Double tolerance)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Tests a surface to see if it is a portion of a cone and returns the cone.",
        "since": "5.0",
        "parameters": [
          {
            "name": "cone",
            "type": "Cone",
            "summary": "On success, the cone parameters are filled in."
          },
          {
            "name": "tolerance",
            "type": "System.Double",
            "summary": "tolerance to use when checking."
          }
        ],
        "returns": "True if the surface is a portion of a cone."
      },
      {
        "signature": "System.Boolean TryGetCone(out Cone cone)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Tests a surface to see if it is a portion of a cone within RhinoMath.ZeroTolerance and return the cone.",
        "since": "5.0",
        "parameters": [
          {
            "name": "cone",
            "type": "Cone",
            "summary": "On success, the cone parameters are filled in."
          }
        ],
        "returns": "True if the surface is a portion of a cone."
      },
      {
        "signature": "System.Boolean TryGetCylinder(out Cylinder cylinder, System.Double tolerance)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Tests a surface to see if it is a portion of a cylinder and return the infinite cylinder.",
        "since": "5.0",
    "remarks": "If successful, an infinite cylinder is returned. When a surface has a cylindrical shape, even if its ends are not circles on the cylinder, it returns the axis and radius. You can detect infinite cylinders using Cylinder.IsFinite.",
        "parameters": [
          {
            "name": "cylinder",
            "type": "Cylinder",
            "summary": "On success, the cylinder parameters are filled in."
          },
          {
            "name": "tolerance",
            "type": "System.Double",
            "summary": "tolerance to use when checking."
          }
        ],
        "returns": "True if the surface is a portion of a cylinder."
      },
      {
        "signature": "System.Boolean TryGetCylinder(out Cylinder cylinder)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Tests a surface to see if it is a portion of a cylinder within RhinoMath.ZeroTolerance and return the cylinder.",
        "since": "5.0",
    "remarks": "If successful, an infinite cylinder is returned. When a surface has a cylindrical shape, even if its ends are not circles on the cylinder, it returns the axis and radius. You can detect infinite cylinders using Cylinder.IsFinite.",
        "parameters": [
          {
            "name": "cylinder",
            "type": "Cylinder",
            "summary": "On success, the cylinder parameters are filled in."
          }
        ],
        "returns": "True if the surface is a portion of a cylinder."
      },
      {
        "signature": "System.Boolean TryGetExtrusion(out Extrusion extrusion, System.Double tolerance)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Tests a surface to see if it is an extrusion and returns the extrusion.",
        "since": "9.0",
        "parameters": [
          {
            "name": "extrusion",
            "type": "Extrusion",
            "summary": "On success, the extrusion parameters are filled in."
          },
          {
            "name": "tolerance",
            "type": "System.Double",
            "summary": "tolerance to use when checking."
          }
        ],
        "returns": "True if the surface is a portion of an extrusion."
      },
      {
        "signature": "System.Boolean TryGetExtrusion(out Extrusion extrusion)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Tests a surface to see if it is an extrusion within RhinoMath.ZeroTolerance and returns the extrusion.",
        "since": "9.0",
        "parameters": [
          {
            "name": "extrusion",
            "type": "Extrusion",
            "summary": "On success, the extrusion parameters are filled in."
          }
        ],
        "returns": "True if the surface is an extrusion."
      },
      {
        "signature": "System.Boolean TryGetFiniteCylinder(out Cylinder cylinder, System.Double tolerance)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Tests a surface with the assumption that it might be a right circular cylinder and returns this geometry.",
        "since": "6.0",
    "remarks": "If successful, a finite cylinder is returned.",
        "parameters": [
          {
            "name": "cylinder",
            "type": "Cylinder",
            "summary": "On success, the cylinder parameters are filled in."
          },
          {
            "name": "tolerance",
            "type": "System.Double",
            "summary": "tolerance to use when checking."
          }
        ],
        "returns": "True if the surface is a portion of a cylinder."
      },
      {
        "signature": "System.Boolean TryGetPlane(out Plane plane, System.Double tolerance)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Tests a surface for planarity and return the plane.",
        "since": "5.0",
        "parameters": [
          {
            "name": "plane",
            "type": "Plane",
            "summary": "On success, the plane parameters are filled in."
          },
          {
            "name": "tolerance",
            "type": "System.Double",
            "summary": "tolerance to use when checking."
          }
        ],
        "returns": "True if there is a plane such that the maximum distance from the surface to the plane is <= tolerance."
      },
      {
        "signature": "System.Boolean TryGetPlane(out Plane plane)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Tests a surface for planarity and return the plane.",
        "since": "5.0",
        "parameters": [
          {
            "name": "plane",
            "type": "Plane",
            "summary": "On success, the plane parameters are filled in."
          }
        ],
        "returns": "True if there is a plane such that the maximum distance from the surface to the plane is <= RhinoMath.ZeroTolerance."
      },
      {
        "signature": "System.Boolean TryGetSphere(out Sphere sphere, System.Double tolerance)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Test a surface to see if it is a portion of a sphere and return the sphere.",
        "since": "5.0",
        "parameters": [
          {
            "name": "sphere",
            "type": "Sphere",
            "summary": "On success, the sphere parameters are filled in."
          },
          {
            "name": "tolerance",
            "type": "System.Double",
            "summary": "tolerance to use when checking."
          }
        ],
        "returns": "True if the surface is a portion of a sphere."
      },
      {
        "signature": "System.Boolean TryGetSphere(out Sphere sphere)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Test a surface to see if it is a portion of a sphere and return the sphere.",
        "since": "5.0",
        "parameters": [
          {
            "name": "sphere",
            "type": "Sphere",
            "summary": "On success, the sphere parameters are filled in."
          }
        ],
        "returns": "True if the surface is a portion of a sphere."
      },
      {
        "signature": "System.Boolean TryGetTorus(out Torus torus, System.Double tolerance)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Tests a surface to see if it is a portion of a torus and returns the torus.",
        "since": "5.0",
        "parameters": [
          {
            "name": "torus",
            "type": "Torus",
            "summary": "On success, the torus parameters are filled in."
          },
          {
            "name": "tolerance",
            "type": "System.Double",
            "summary": "tolerance to use when checking."
          }
        ],
        "returns": "True if the surface is a portion of a torus."
      },
      {
        "signature": "System.Boolean TryGetTorus(out Torus torus)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Tests a surface to see if it is a portion of a torus within RhinoMath.ZeroTolerance and returns the torus.",
        "since": "5.0",
        "parameters": [
          {
            "name": "torus",
            "type": "Torus",
            "summary": "On success, the torus parameters are filled in."
          }
        ],
        "returns": "True if the surface is a portion of a torus."
      },
      {
        "signature": "Surface VariableOffset(System.Double uMinvMin, System.Double uMinvMax, System.Double uMaxvMin, System.Double uMaxvMax, IEnumerable<Point2d> interiorParameters, IEnumerable<double> interiorDistances, System.Double tolerance)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Copies a surface so that all locations at the corners, and from specified interior locations, of the copied surface are specified distances from the original surface.",
        "since": "6.13",
        "parameters": [
          {
            "name": "uMinvMin",
            "type": "System.Double",
            "summary": "Offset distance at Domain(0).Min, Domain(1).Min."
          },
          {
            "name": "uMinvMax",
            "type": "System.Double",
            "summary": "Offset distance at Domain(0).Min, Domain(1).Max."
          },
          {
            "name": "uMaxvMin",
            "type": "System.Double",
            "summary": "Offset distance at Domain(0).Max, Domain(1).Min."
          },
          {
            "name": "uMaxvMax",
            "type": "System.Double",
            "summary": "Offset distance at Domain(0).Max, Domain(1).Max."
          },
          {
            "name": "interiorParameters",
            "type": "IEnumerable<Point2d>",
            "summary": "An array of interior UV parameters to offset from."
          },
          {
            "name": "interiorDistances",
            "type": "IEnumerable<double>",
            "summary": ">An array of offset distances at the interior UV parameters."
          },
          {
            "name": "tolerance",
            "type": "System.Double",
            "summary": "The offset tolerance."
          }
        ],
        "returns": "The offset surface if successful, None otherwise."
      },
      {
        "signature": "Surface VariableOffset(System.Double uMinvMin, System.Double uMinvMax, System.Double uMaxvMin, System.Double uMaxvMax, System.Double tolerance)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Copies a surface so that all locations at the corners of the copied surface are specified distances from the original surface.",
        "since": "6.13",
        "parameters": [
          {
            "name": "uMinvMin",
            "type": "System.Double",
            "summary": "Offset distance at Domain(0).Min, Domain(1).Min."
          },
          {
            "name": "uMinvMax",
            "type": "System.Double",
            "summary": "Offset distance at Domain(0).Min, Domain(1).Max."
          },
          {
            "name": "uMaxvMin",
            "type": "System.Double",
            "summary": "Offset distance at Domain(0).Max, Domain(1).Min."
          },
          {
            "name": "uMaxvMax",
            "type": "System.Double",
            "summary": "Offset distance at Domain(0).Max, Domain(1).Max."
          },
          {
            "name": "tolerance",
            "type": "System.Double",
            "summary": "The offset tolerance."
          }
        ],
        "returns": "The offset surface if successful, None otherwise."
      }
    ]
  },
  {
    "namespace": "Rhino.Geometry",
    "name": "SurfaceCurvature",
    "dataType": "class",
    "summary": "Maintains computed information for principal surface curvature evaluation.",
    "interfaces": ["IDisposable", "IEquatable<SurfaceCurvature>", "IComparable<SurfaceCurvature>"],
    "constructors": [
      {
        "signature": "SurfaceCurvature()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Default constructs a new surface curvature object. Both kappa1 and kappa2 are zero."
      }
    ],
    "properties": [
      {
        "signature": "double Gaussian",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "The Gaussian curvature is kappa1*kappa2.",
        "since": "5.0",
    "remarks": "If this is set, the Gausian curvature is returned. Otherwise, the quiet NaN is returned.",
        "property": ["get"]
      },
      {
        "signature": "bool IsNaN",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "True if either of kappa1 or kappa2 is NaN.",
        "since": "9.0",
        "property": ["get"]
      },
      {
        "signature": "bool IsSet",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "True if kappa1 and kappa2 are both valid finite values.",
        "since": "9.0",
        "property": ["get"]
      },
      {
        "signature": "bool IsUnset",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "True if either of kappa1 or kappa2 is not a valid finite value.",
        "since": "9.0",
        "property": ["get"]
      },
      {
        "signature": "bool IsZero",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "True if both kappa1 and kappa2 are zero.",
        "since": "9.0",
        "property": ["get"]
      },
      {
        "signature": "double MaximumPrincipalCurvature",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "If set, the maximum of kapp1 and kappa2 returned. Otherwise, the quiet NaN is returned.",
        "since": "9.0",
        "property": ["get"]
      },
      {
        "signature": "double MaximumRadius",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "If a principal curvature value is zero or the principal curvatures have opposite signs, then the maximum radius of curvature is infinite RhinoMath.InfiniteRadius is returned. Otherwise the maximum radius of curvature is 1/min(fabs(kappa1),fabs(kappa2)).",
        "property": ["get"]
      },
      {
        "signature": "double Mean",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "The mean curvature is (kappa1+kappa2)/2.",
        "since": "5.0",
    "remarks": "If this is set, the signed mean curvature is returned. Otherwise, the quiet NaN is returned.",
        "property": ["get"]
      },
      {
        "signature": "double MinimumPrincipalCurvature",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "If set, the minimum of kappa1 and kappa2 returned. Otherwise, the quiet NaN is returned.",
        "since": "9.0",
        "property": ["get"]
      },
      {
        "signature": "double MinimumRadius",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "The minimum radius of curvature is 1/max(fabs(kappa1),fabs(kappa2)). Infinite radius values are returned as RhinoMath.InfiniteRadius.",
        "since": "9.0",
        "property": ["get"]
      },
      {
        "signature": "Vector3d Normal",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the normal direction of the surface at the u,v parameter where the surface curvature was evaluated.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "Point3d Point",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the point at the u,v parameter where the surface curvature was evaluated.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "Point2d UVPoint",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the u,v parameter where the surface curvature was evaluated.",
        "since": "5.0",
        "property": ["get"]
      }
    ],
    "methods": [
      {
        "signature": "SurfaceCurvature Create(System.Double kappa1, System.Double kappa2, Point2d uv, Plane frame)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Create a SurfaceCurvature from explicit principal curvatures and the geometric frame at the evaluation point. Use this when you have already computed curvature data from a non-RhinoCommon surface representation (planes, spheres, cylinders, cones, etc.).",
        "since": "9.0",
        "parameters": [
          {
            "name": "kappa1",
            "type": "System.Double",
            "summary": "Principal curvature with maximum absolute value. Must be a finite number."
          },
          {
            "name": "kappa2",
            "type": "System.Double",
            "summary": "Principal curvature with minimum absolute value. Must be a finite number."
          },
          {
            "name": "uv",
            "type": "Point2d",
            "summary": "The (u,v) parameter where the curvature was evaluated."
          },
          {
            "name": "frame",
            "type": "Plane",
            "summary": "Orthonormal frame at the evaluation point. The origin is the surface point, the X axis is the principal direction associated with, the Y axis is the principal direction associated with, and the Z axis is the surface normal."
          }
        ],
        "returns": "A SurfaceCurvature instance."
      },
      {
        "signature": "SurfaceCurvature CreateFromGaussianAndMeanCurvatures(System.Double gaussianCurvature, System.Double meanCurvature)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Create a SurfaceCurvature from a gaussian and mean curvature values using the relationship between the principal curvatures, gaussian and mean: kappa1 = mean + sqrt(mean*mean - gaussian) kappa2 = mean - sqrt(mean*mean - gaussian) If the radicand is negative, we assume we're dealing with a bit of numerical noise or estimates and set the principal curvatures: kappa1 = kappa2 = sign(mean)*sqrt(gaussian)",
        "since": "9.0",
        "parameters": [
          {
            "name": "gaussianCurvature",
            "type": "System.Double",
            "summary": "Gaussian curvature = kappa1*kappa2 (product of principal curvatures)."
          },
          {
            "name": "meanCurvature",
            "type": "System.Double",
            "summary": "Mean curvature = (kappa1+kappa2)/2 (average of principal curvatures)."
          }
        ],
        "returns": "A SurfaceCurvature if successful, None otherwise."
      },
      {
        "signature": "SurfaceCurvature CreateFromPrincipalCurvatures(System.Double kappa1, System.Double kappa2)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Create a SurfaceCurvature from the principal curvature values. The principal curvature values are the most fundamental curvature properties of a surface. Other curvatures are calculated from them.",
        "since": "9.0",
        "returns": "A SurfaceCurvature if successful, None otherwise."
      },
      {
        "signature": "SurfaceCurvature CreateFromSurface(Surface surface, System.Double u, System.Double v)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Create a SurfaceCurvature from by evaluating surface and a u,v parameter.",
        "since": "9.0",
        "parameters": [
          {
            "name": "surface",
            "type": "Surface",
            "summary": "The surface to evaluate."
          },
          {
            "name": "u",
            "type": "System.Double",
            "summary": "A U parameter."
          },
          {
            "name": "v",
            "type": "System.Double",
            "summary": "A V parameter."
          }
        ],
        "returns": "A SurfaceCurvature if successful, None otherwise."
      },
      {
        "signature": "System.Int32 CompareTo(SurfaceCurvature other)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Compares the current instance with another object of the same type and returns an integer that indicates whether the current instance precedes, follows, or occurs in the same position in the sort order as the other object.",
        "since": "9.0",
        "parameters": [
          {
            "name": "other",
            "type": "SurfaceCurvature",
            "summary": "An object to compare with this instance."
          }
        ],
        "returns": "A value that indicates the relative order of the objects being compared. The return value has these meanings: Less than zero - this instance precedes other in the sort order. Zero - this instance occurs in the same position in the sort order as other. Greater than zero - this instance follows other in the sort order."
      },
      {
        "signature": "Vector3d Direction(System.Int32 direction)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the principal curvature direction vector at the u,v parameter where the surface curvature was evaluated..",
        "since": "5.0",
        "parameters": [
          {
            "name": "direction",
            "type": "System.Int32",
            "summary": "Direction index, valid values are 0 and 1."
          }
        ],
        "returns": "The specified direction vector."
      },
      {
        "signature": "System.Void Dispose()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Actively releases the unmanaged pointer.",
        "since": "9.0"
      },
      {
        "signature": "System.Boolean Equals(SurfaceCurvature other)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Indicates whether the current object is equal to another object of the same type.",
        "since": "9.0",
        "parameters": [
          {
            "name": "other",
            "type": "SurfaceCurvature",
            "summary": "An object to compare with this object."
          }
        ],
        "returns": "True if the current object is equal to the other parameter; otherwise, false."
      },
      {
        "signature": "System.Boolean Equals(System.Object other)",
        "modifiers": ["public", "override"],
        "protected": false,
        "virtual": false,
        "summary": "Indicates whether the current object is equal to another object of the same type.",
        "since": "9.0",
        "parameters": [
          {
            "name": "other",
            "type": "System.Object",
            "summary": "An object to compare with this object."
          }
        ],
        "returns": "True if the current object is equal to the other parameter; otherwise, false."
      },
      {
        "signature": "System.Int32 GetHashCode()",
        "modifiers": ["public", "override"],
        "protected": false,
        "virtual": false,
        "summary": "Returns a runtime-stable hash code for this object.",
        "returns": "A non-unique integer that represents this SurfaceCurvature."
      },
      {
        "signature": "System.Double Kappa(System.Int32 direction)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the principal curvature values: kappa1 - Principal curvature with maximum absolute value. kappa2 - Principal curvature with minimum absolute value.",
        "since": "5.0",
        "parameters": [
          {
            "name": "direction",
            "type": "System.Int32",
            "summary": "Kappa index, valid values are 0 (kappa1) and 1 (kappa2)."
          }
        ]
      },
      {
        "signature": "System.Double KappaValue(CurvatureStyle curvatureStyle)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Calculate one of the four typical curvature values associated with the two principal curvatures and frequently used in False color curvature analysis.",
        "since": "9.0",
        "parameters": [
          {
            "name": "curvatureStyle",
            "type": "CurvatureStyle",
            "summary": "Specifies which type curvature value to calculate from the principal curvatures. The Gausian curvature can be positive or negative. The other curvatures are unsigned."
          }
        ],
        "returns": "If curvature style and the principal curvatures are valid, the specified type of curvature value is returned. Infinite radii are returned as RhinoMath.InfiniteRadius. Otherwise, the quiet NaN is returned."
      },
      {
        "signature": "Circle OsculatingCircle(System.Int32 direction)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Computes the osculating circle along the given direction.",
        "since": "5.0",
        "parameters": [
          {
            "name": "direction",
            "type": "System.Int32",
            "summary": "Direction index, valid values are 0 and 1."
          }
        ],
        "returns": "The osculating circle in the given direction or Circle.Unset on failure."
      }
    ]
  },
  {
    "namespace": "Rhino.Geometry",
    "name": "SurfaceDirectionIndicators",
    "dataType": "class",
    "summary": "Surface direction indicators can be drawn by a display pipeline.",
    "interfaces": ["IDisposable"],
    "constructors": [
      {
        "signature": "SurfaceDirectionIndicators(BrepFace face)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Construct for a Brep face."
      },
      {
        "signature": "SurfaceDirectionIndicators(NurbsSurface surface, Point2d origin)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Construct for a Nurbs surface.",
        "parameters": [
          {
            "name": "surface",
            "type": "NurbsSurface",
            "summary": ""
          },
          {
            "name": "origin",
            "type": "Point2d",
            "summary": "Use <b>Point2d.Unset</b> to place the arrows at the default location."
          }
        ]
      },
      {
        "signature": "SurfaceDirectionIndicators(Surface surface)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Construct for a surface."
      }
    ],
    "properties": [
      {
        "signature": "bool IsValid",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns True if this instance is valid. The geometry that was used to create may not have been garbage collected.",
        "property": ["get"]
      }
    ],
    "methods": [
      {
        "signature": "System.Void Dispose()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Actively reclaims unmanaged resources that this instance uses."
      },
      {
        "signature": "System.Void Dispose(System.Boolean disposing)",
        "modifiers": ["protected", "virtual"],
        "protected": true,
        "virtual": true,
        "summary": "For derived class implementers.  \nThis method is called with argument True when class user calls Dispose(), while with argument False when     the Garbage Collector invokes the finalizer, or Finalize() method.  \nYou must reclaim all used unmanaged resources in both cases, and can use this chance to call Dispose on disposable fields if the argument is true.  \nAlso, you must call the base virtual method within your overriding method.",
        "parameters": [
          {
            "name": "disposing",
            "type": "System.Boolean",
            "summary": "True if the call comes from the Dispose() method; False if it comes from the Garbage Collector finalizer."
          }
        ]
      },
      {
        "signature": "System.Boolean Draw(Rhino.Display.DisplayPipeline dp)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Draw the surface directions."
      }
    ]
  },
  {
    "namespace": "Rhino.Geometry",
    "name": "SurfaceFilletBase",
    "dataType": "class",
    "summary": "New interactive FilletSrf",
    "interfaces": ["IDisposable"],
    "constructors": [
      {
        "signature": "SurfaceFilletBase(BrepFace RailFace, Curve Rail3d, BrepFace Face, Point2d uv, double tolerance)",
        "modifiers": ["protected"],
        "protected": true,
        "virtual": false
      },
      {
        "signature": "SurfaceFilletBase(BrepFace FaceA, Point2d uvA, BrepFace FaceB, Point2d uvB, double radius, bool allowExtend, double tolerance)",
        "modifiers": ["protected"],
        "protected": true,
        "virtual": false
      },
      {
        "signature": "SurfaceFilletBase(BrepFace FaceA, Point2d uvA, BrepFace FaceB, Point2d uvB, double radius0, double radius1, bool allowExtend, double tolerance)",
        "modifiers": ["protected"],
        "protected": true,
        "virtual": false
      },
      {
        "signature": "SurfaceFilletBase(BrepFace FaceA, Point2d uvA, BrepFace FaceB, Point2d uvB, double radius, double tolerance)",
        "modifiers": ["protected"],
        "protected": true,
        "virtual": false
      },
      {
        "signature": "SurfaceFilletBase(BrepFace face, Point2d uv, Curve rail3d, double u, double radius, double tolerance)",
        "modifiers": ["protected"],
        "protected": true,
        "virtual": false
      }
    ],
    "methods": [
      {
        "signature": "System.Boolean CreateG2ChordalQuinticFilletSrf(BrepFace faceA, Point2d uvA, BrepFace faceB, Point2d uvB, System.Double radius, System.Double tolerance, List<Brep> trimmedBrepsA, List<Brep> trimmedBrepsB, System.Int32 rail_degree, System.Boolean bTrim, System.Boolean bExtend, List<Brep> Fillets)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Creates a surface fillet using G2 chordal Quintic arc approximations as sections",
        "since": "8.0",
        "parameters": [
          {
            "name": "faceA",
            "type": "BrepFace",
            "summary": "the first face to use constructing the fillet"
          },
          {
            "name": "uvA",
            "type": "Point2d",
            "summary": "The parametric u,v selection point on FaceA close to the edge to fillet"
          },
          {
            "name": "faceB",
            "type": "BrepFace",
            "summary": "the second face to use constructing the fillet"
          },
          {
            "name": "uvB",
            "type": "Point2d",
            "summary": "The parametric u,v selection point on FaceB close to the edge to fillet"
          },
          {
            "name": "radius",
            "type": "System.Double",
            "summary": "The radius of the fillet"
          },
          {
            "name": "tolerance",
            "type": "System.Double",
            "summary": "Tolerance to use in fitting a solution"
          },
          {
            "name": "trimmedBrepsA",
            "type": "List<Brep>",
            "summary": "if bTrim = true, returns the remains of FaceA trimmed to the fillet"
          },
          {
            "name": "trimmedBrepsB",
            "type": "List<Brep>",
            "summary": "if bTrim = true, the remains of FaceB trimmed to the fillet"
          },
          {
            "name": "rail_degree",
            "type": "System.Int32",
            "summary": "the degree of the rail curve"
          },
          {
            "name": "bTrim",
            "type": "System.Boolean",
            "summary": "if True, trim the faces and retuen those results in resultsA and resultsB"
          },
          {
            "name": "bExtend",
            "type": "System.Boolean",
            "summary": "if True and if one input surface is longer than the other, the fillet surface is extended to the input surface edges"
          },
          {
            "name": "Fillets",
            "type": "List<Brep>",
            "summary": "the resulting fillet surfaces"
          }
        ],
        "returns": "True if successful."
      },
      {
        "signature": "System.Boolean CreateNonRationalCubicArcsFilletSrf(BrepFace faceA, Point2d uvA, BrepFace faceB, Point2d uvB, System.Double radius, System.Double tolerance, List<Brep> trimmedBrepsA, List<Brep> trimmedBrepsB, System.Int32 rail_degree, System.Boolean bTrim, System.Boolean bExtend, List<Brep> Fillets)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Creates a surface fillet using Non-rational Cubic arc approximations as sections",
        "since": "8.0",
        "parameters": [
          {
            "name": "faceA",
            "type": "BrepFace",
            "summary": "the first face to use constructing the fillet"
          },
          {
            "name": "uvA",
            "type": "Point2d",
            "summary": "The parametric u,v selection point on FaceA close to the edge to fillet"
          },
          {
            "name": "faceB",
            "type": "BrepFace",
            "summary": "the second face to use constructing the fillet"
          },
          {
            "name": "uvB",
            "type": "Point2d",
            "summary": "The parametric u,v selection point on FaceB close to the edge to fillet"
          },
          {
            "name": "radius",
            "type": "System.Double",
            "summary": "The radius of the fillet"
          },
          {
            "name": "tolerance",
            "type": "System.Double",
            "summary": "Tolerance to use in fitting a solution"
          },
          {
            "name": "trimmedBrepsA",
            "type": "List<Brep>",
            "summary": "if bTrim = true, returns the remains of FaceA trimmed to the fillet"
          },
          {
            "name": "trimmedBrepsB",
            "type": "List<Brep>",
            "summary": "if bTrim = true, the remains of FaceB trimmed to the fillet"
          },
          {
            "name": "rail_degree",
            "type": "System.Int32",
            "summary": "the degree of the rail curve"
          },
          {
            "name": "bTrim",
            "type": "System.Boolean",
            "summary": "if True, trim the faces and retuen those results in resultsA and resultsB"
          },
          {
            "name": "bExtend",
            "type": "System.Boolean",
            "summary": "if True and if one input surface is longer than the other, the fillet surface is extended to the input surface edges"
          },
          {
            "name": "Fillets",
            "type": "List<Brep>",
            "summary": "the resulting fillet surfaces"
          }
        ],
        "returns": "True if successful."
      },
      {
        "signature": "System.Boolean CreateNonRationalCubicFilletSrf(BrepFace faceA, Point2d uvA, BrepFace faceB, Point2d uvB, System.Double radius, System.Double tolerance, List<Brep> trimmedBrepsA, List<Brep> trimmedBrepsB, System.Int32 rail_degree, System.Double TanSlider, System.Boolean bTrim, System.Boolean bExtend, List<Brep> Fillets)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Creates a fillet using non-rational Cubic sections with a tangent slider",
        "since": "8.0",
        "parameters": [
          {
            "name": "faceA",
            "type": "BrepFace",
            "summary": "the first face to use constructing the fillet"
          },
          {
            "name": "uvA",
            "type": "Point2d",
            "summary": "The parametric u,v selection point on FaceA close to the edge to fillet"
          },
          {
            "name": "faceB",
            "type": "BrepFace",
            "summary": "the second face to use constructing the fillet"
          },
          {
            "name": "uvB",
            "type": "Point2d",
            "summary": "The parametric u,v selection point on FaceB close to the edge to fillet"
          },
          {
            "name": "radius",
            "type": "System.Double",
            "summary": "The radius of the fillet"
          },
          {
            "name": "tolerance",
            "type": "System.Double",
            "summary": "Tolerance to use in fitting a solution"
          },
          {
            "name": "trimmedBrepsA",
            "type": "List<Brep>",
            "summary": "if bTrim = true, returns the remains of FaceA trimmed to the fillet"
          },
          {
            "name": "trimmedBrepsB",
            "type": "List<Brep>",
            "summary": "if bTrim = true, the remains of FaceB trimmed to the fillet"
          },
          {
            "name": "rail_degree",
            "type": "System.Int32",
            "summary": "the degree of the rail curve"
          },
          {
            "name": "TanSlider",
            "type": "System.Double",
            "summary": "A number between -0.95 and 0.95 indicating how far to push the tangent control points toward or away from the theoretical quadratic middle control point"
          },
          {
            "name": "bTrim",
            "type": "System.Boolean",
            "summary": "if True, trim the faces and retuen those results in resultsA and resultsB"
          },
          {
            "name": "bExtend",
            "type": "System.Boolean",
            "summary": "if True and if one input surface is longer than the other, the fillet surface is extended to the input surface edges"
          },
          {
            "name": "Fillets",
            "type": "List<Brep>",
            "summary": "the resulting fillet surfaces"
          }
        ]
      },
      {
        "signature": "System.Boolean CreateNonRationalQuarticArcsFilletSrf(BrepFace faceA, Point2d uvA, BrepFace faceB, Point2d uvB, System.Double radius, System.Double tolerance, List<Brep> trimmedBrepsA, List<Brep> trimmedBrepsB, System.Int32 rail_degree, System.Boolean bTrim, System.Boolean bExtend, List<Brep> Fillets)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Creates a surface fillet using Non-rational Quartic arc approximations as sections",
        "since": "8.0",
        "parameters": [
          {
            "name": "faceA",
            "type": "BrepFace",
            "summary": "the first face to use constructing the fillet"
          },
          {
            "name": "uvA",
            "type": "Point2d",
            "summary": "The parametric u,v selection point on FaceA close to the edge to fillet"
          },
          {
            "name": "faceB",
            "type": "BrepFace",
            "summary": "the second face to use constructing the fillet"
          },
          {
            "name": "uvB",
            "type": "Point2d",
            "summary": "The parametric u,v selection point on FaceB close to the edge to fillet"
          },
          {
            "name": "radius",
            "type": "System.Double",
            "summary": "The radius of the fillet"
          },
          {
            "name": "tolerance",
            "type": "System.Double",
            "summary": "Tolerance to use in fitting a solution"
          },
          {
            "name": "trimmedBrepsA",
            "type": "List<Brep>",
            "summary": "if bTrim = true, returns the remains of FaceA trimmed to the fillet"
          },
          {
            "name": "trimmedBrepsB",
            "type": "List<Brep>",
            "summary": "if bTrim = true, the remains of FaceB trimmed to the fillet"
          },
          {
            "name": "rail_degree",
            "type": "System.Int32",
            "summary": "the degree of the rail curve"
          },
          {
            "name": "bTrim",
            "type": "System.Boolean",
            "summary": "if True, trim the faces and retuen those results in resultsA and resultsB"
          },
          {
            "name": "bExtend",
            "type": "System.Boolean",
            "summary": "if True and if one input surface is longer than the other, the fillet surface is extended to the input surface edges"
          },
          {
            "name": "Fillets",
            "type": "List<Brep>",
            "summary": "the resulting fillet surfaces"
          }
        ],
        "returns": "True if successful."
      },
      {
        "signature": "System.Boolean CreateNonRationalQuarticFilletSrf(BrepFace faceA, Point2d uvA, BrepFace faceB, Point2d uvB, System.Double radius, System.Double tolerance, List<Brep> trimmedBrepsA, List<Brep> trimmedBrepsB, System.Int32 rail_degree, System.Double TanSlider, System.Double InnerSlider, System.Boolean bTrim, System.Boolean bExtend, List<Brep> Fillets)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Creates a fillet using non-rational Quartic sections with a tangent and inner slider",
        "since": "8.0",
        "parameters": [
          {
            "name": "faceA",
            "type": "BrepFace",
            "summary": "the first face to use constructing the fillet"
          },
          {
            "name": "uvA",
            "type": "Point2d",
            "summary": "The parametric u,v selection point on FaceA close to the edge to fillet"
          },
          {
            "name": "faceB",
            "type": "BrepFace",
            "summary": "the second face to use constructing the fillet"
          },
          {
            "name": "uvB",
            "type": "Point2d",
            "summary": "The parametric u,v selection point on FaceB close to the edge to fillet"
          },
          {
            "name": "radius",
            "type": "System.Double",
            "summary": "The radius of the fillet"
          },
          {
            "name": "tolerance",
            "type": "System.Double",
            "summary": "Tolerance to use in fitting a solution"
          },
          {
            "name": "trimmedBrepsA",
            "type": "List<Brep>",
            "summary": "if bTrim = true, returns the remains of FaceA trimmed to the fillet"
          },
          {
            "name": "trimmedBrepsB",
            "type": "List<Brep>",
            "summary": "if bTrim = true, the remains of FaceB trimmed to the fillet"
          },
          {
            "name": "rail_degree",
            "type": "System.Int32",
            "summary": "the degree of the rail curve"
          },
          {
            "name": "TanSlider",
            "type": "System.Double",
            "summary": "A number between -0.95 and 0.95 indicating how far to push the tangent control points toward or away from the theoretical quadratic middle control point"
          },
          {
            "name": "InnerSlider",
            "type": "System.Double",
            "summary": "A number between -0.95 and 0.95 indicating how far to push the inner control point toward or away from the theoretical quadratic middle control point"
          },
          {
            "name": "bTrim",
            "type": "System.Boolean",
            "summary": "if True, trim the faces and retuen those results in resultsA and resultsB"
          },
          {
            "name": "bExtend",
            "type": "System.Boolean",
            "summary": "if True and if one input surface is longer than the other, the fillet surface is extended to the input surface edges"
          },
          {
            "name": "Fillets",
            "type": "List<Brep>",
            "summary": "the resulting fillet surfaces"
          }
        ]
      },
      {
        "signature": "System.Boolean CreateNonRationalQuinticArcsFilletSrf(BrepFace faceA, Point2d uvA, BrepFace faceB, Point2d uvB, System.Double radius, System.Double tolerance, List<Brep> trimmedBrepsA, List<Brep> trimmedBrepsB, System.Int32 rail_degree, System.Boolean bTrim, System.Boolean bExtend, List<Brep> Fillets)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Creates a surface fillet using Non-rational Quintic arc approximations as sections",
        "since": "8.0",
        "parameters": [
          {
            "name": "faceA",
            "type": "BrepFace",
            "summary": "the first face to use constructing the fillet"
          },
          {
            "name": "uvA",
            "type": "Point2d",
            "summary": "The parametric u,v selection point on FaceA close to the edge to fillet"
          },
          {
            "name": "faceB",
            "type": "BrepFace",
            "summary": "the second face to use constructing the fillet"
          },
          {
            "name": "uvB",
            "type": "Point2d",
            "summary": "The parametric u,v selection point on FaceB close to the edge to fillet"
          },
          {
            "name": "radius",
            "type": "System.Double",
            "summary": "The radius of the fillet"
          },
          {
            "name": "tolerance",
            "type": "System.Double",
            "summary": "Tolerance to use in fitting a solution"
          },
          {
            "name": "trimmedBrepsA",
            "type": "List<Brep>",
            "summary": "if bTrim = true, returns the remains of FaceA trimmed to the fillet"
          },
          {
            "name": "trimmedBrepsB",
            "type": "List<Brep>",
            "summary": "if bTrim = true, the remains of FaceB trimmed to the fillet"
          },
          {
            "name": "rail_degree",
            "type": "System.Int32",
            "summary": "the degree of the rail curve"
          },
          {
            "name": "bTrim",
            "type": "System.Boolean",
            "summary": "if True, trim the faces and retuen those results in resultsA and resultsB"
          },
          {
            "name": "bExtend",
            "type": "System.Boolean",
            "summary": "if True and if one input surface is longer than the other, the fillet surface is extended to the input surface edges"
          },
          {
            "name": "Fillets",
            "type": "List<Brep>",
            "summary": "the resulting fillet surfaces"
          }
        ],
        "returns": "True if successful."
      },
      {
        "signature": "System.Boolean CreateNonRationalQuinticFilletSrf(BrepFace faceA, Point2d uvA, BrepFace faceB, Point2d uvB, System.Double radius, System.Double tolerance, List<Brep> trimmedBrepsA, List<Brep> trimmedBrepsB, System.Int32 rail_degree, System.Double TanSlider, System.Double InnerSlider, System.Boolean bTrim, System.Boolean bExtend, List<Brep> Fillets)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Creates a fillet using non-rational Quintic sections with a tangent and inner slider",
        "since": "8.0",
        "parameters": [
          {
            "name": "faceA",
            "type": "BrepFace",
            "summary": "the first face to use constructing the fillet"
          },
          {
            "name": "uvA",
            "type": "Point2d",
            "summary": "The parametric u,v selection point on FaceA close to the edge to fillet"
          },
          {
            "name": "faceB",
            "type": "BrepFace",
            "summary": "the second face to use constructing the fillet"
          },
          {
            "name": "uvB",
            "type": "Point2d",
            "summary": "The parametric u,v selection point on FaceB close to the edge to fillet"
          },
          {
            "name": "radius",
            "type": "System.Double",
            "summary": "The radius of the fillet"
          },
          {
            "name": "tolerance",
            "type": "System.Double",
            "summary": "Tolerance to use in fitting a solution"
          },
          {
            "name": "trimmedBrepsA",
            "type": "List<Brep>",
            "summary": "if bTrim = true, returns the remains of FaceA trimmed to the fillet"
          },
          {
            "name": "trimmedBrepsB",
            "type": "List<Brep>",
            "summary": "if bTrim = true, the remains of FaceB trimmed to the fillet"
          },
          {
            "name": "rail_degree",
            "type": "System.Int32",
            "summary": "the degree of the rail curve"
          },
          {
            "name": "TanSlider",
            "type": "System.Double",
            "summary": "A number between -0.95 and 0.95 indicating how far to push the tangent control points toward or away from the theoretical quadratic middle control point"
          },
          {
            "name": "InnerSlider",
            "type": "System.Double",
            "summary": "A number between -0.95 and 0.95 indicating how far to push the inner control points toward or away from the theoretical quadratic middle control point"
          },
          {
            "name": "bTrim",
            "type": "System.Boolean",
            "summary": "if True, trim the faces and retuen those results in resultsA and resultsB"
          },
          {
            "name": "bExtend",
            "type": "System.Boolean",
            "summary": "if True and if one input surface is longer than the other, the fillet surface is extended to the input surface edges"
          },
          {
            "name": "Fillets",
            "type": "List<Brep>",
            "summary": "the resulting fillet surfaces"
          }
        ],
        "returns": "True if successful."
      },
      {
        "signature": "System.Boolean CreateRationalArcsFilletSrf(BrepFace faceA, Point2d uvA, BrepFace faceB, Point2d uvB, System.Double radius, System.Double tolerance, List<Brep> trimmedBrepsA, List<Brep> trimmedBrepsB, System.Int32 rail_degree, System.Boolean bTrim, System.Boolean bExtend, List<Brep> Fillets)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Creates a standard surface fillet using rational arc sections",
        "since": "8.0",
        "parameters": [
          {
            "name": "faceA",
            "type": "BrepFace",
            "summary": "the first face to use constructing the fillet"
          },
          {
            "name": "uvA",
            "type": "Point2d",
            "summary": "The parametric u,v selection point on FaceA close to the edge to fillet"
          },
          {
            "name": "faceB",
            "type": "BrepFace",
            "summary": "the second face to use constructing the fillet"
          },
          {
            "name": "uvB",
            "type": "Point2d",
            "summary": "The parametric u,v selection point on FaceB close to the edge to fillet"
          },
          {
            "name": "radius",
            "type": "System.Double",
            "summary": "The radius of the fillet"
          },
          {
            "name": "tolerance",
            "type": "System.Double",
            "summary": "Tolerance to use in fitting a solution"
          },
          {
            "name": "trimmedBrepsA",
            "type": "List<Brep>",
            "summary": "if bTrim = true, returns the remains of FaceA trimmed to the fillet"
          },
          {
            "name": "trimmedBrepsB",
            "type": "List<Brep>",
            "summary": "if bTrim = true, the remains of FaceB trimmed to the fillet"
          },
          {
            "name": "rail_degree",
            "type": "System.Int32",
            "summary": "the degree of the rail curve"
          },
          {
            "name": "bTrim",
            "type": "System.Boolean",
            "summary": "if True, trim the faces and retuen those results in resultsA and resultsB"
          },
          {
            "name": "bExtend",
            "type": "System.Boolean",
            "summary": "if True and if one input surface is longer than the other, the fillet surface is extended to the input surface edges"
          },
          {
            "name": "Fillets",
            "type": "List<Brep>",
            "summary": "the resulting fillet surfaces"
          }
        ],
        "returns": "True if successful."
      },
      {
        "signature": "System.Boolean ChangeFilletRadius(System.Double radius)",
        "modifiers": ["protected"],
        "protected": true,
        "virtual": false,
        "summary": "This will clear out the existing rails and fillet surfaces, and redo the offset intersections, etc.",
        "parameters": [
          {
            "name": "radius",
            "type": "System.Double",
            "summary": "The new radius"
          }
        ],
        "returns": "True if successful"
      },
      {
        "signature": "System.Void Dispose()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Actively reclaims unmanaged resources that this instance uses.",
        "since": "7.9"
      },
      {
        "signature": "System.Void Dispose(System.Boolean disposing)",
        "modifiers": ["protected", "virtual"],
        "protected": true,
        "virtual": true,
        "summary": "For derived class implementers.  \nThis method is called with argument True when class user calls Dispose(), while with argument False when     the Garbage Collector invokes the finalizer, or Finalize() method.  \nYou must reclaim all used unmanaged resources in both cases, and can use this chance to call Dispose on disposable fields if the argument is true.  \nAlso, you must call the base virtual method within your overriding method.",
        "parameters": [
          {
            "name": "disposing",
            "type": "System.Boolean",
            "summary": "True if the call comes from the Dispose() method; False if it comes from the Garbage Collector finalizer."
          }
        ]
      },
      {
        "signature": "System.Boolean G2ChordalQuintic(System.Int32 railDegree, System.Boolean bExtend, List<Brep> Fillets)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "make fillet surfaces and hack them up to active pieces. Adjusts cross sections",
        "since": "8.0",
        "parameters": [
          {
            "name": "railDegree",
            "type": "System.Int32",
            "summary": "The degree of the rail"
          },
          {
            "name": "bExtend",
            "type": "System.Boolean",
            "summary": "If true, when one input surface is longer than the other, the fillet surface is extended to the input surface edges."
          },
          {
            "name": "Fillets",
            "type": "List<Brep>",
            "summary": "the fillet8s that were created"
          }
        ],
        "returns": "True if successful"
      },
      {
        "signature": "System.Boolean IsInitialized()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Check to see if the fillet is properly initialized. If it is not, then the selected curves, surfaces, and/or radius must be adjusted in some way before creating the fillet",
        "since": "8.0"
      },
      {
        "signature": "System.Boolean Lines(System.Int32 railDegree, System.Boolean bExtend, List<Brep> Fillets)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "make chamfer surfaces and hack them up to active pieces. Adjusts cross sections",
        "since": "9.0",
        "parameters": [
          {
            "name": "railDegree",
            "type": "System.Int32",
            "summary": "The degree of the rail"
          },
          {
            "name": "bExtend",
            "type": "System.Boolean",
            "summary": "If true, when one input surface is longer than the other, the fillet surface is extended to the input surface edges."
          },
          {
            "name": "Fillets",
            "type": "List<Brep>",
            "summary": "the fillet8s that were created"
          }
        ],
        "returns": "True if successful"
      },
      {
        "signature": "System.Boolean NonRationalCubic(System.Int32 railDegree, System.Double TanSlider, System.Boolean bExtend, List<Brep> Fillets)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "make fillet surfaces and hack them up to active pieces. Adjusts cross sections",
        "since": "8.0",
        "parameters": [
          {
            "name": "railDegree",
            "type": "System.Int32",
            "summary": "The degree of the rail"
          },
          {
            "name": "TanSlider",
            "type": "System.Double",
            "summary": "A number from -1 to 1 indicating how far towards the theoretical rational midpoint to adjust the tangent control points."
          },
          {
            "name": "bExtend",
            "type": "System.Boolean",
            "summary": "If true, when one input surface is longer than the other, the fillet surface is extended to the input surface edges."
          },
          {
            "name": "Fillets",
            "type": "List<Brep>",
            "summary": "the fillet8s that were created"
          }
        ],
        "returns": "True if successful"
      },
      {
        "signature": "System.Boolean NonRationalCubicArcs(System.Int32 railDegree, System.Boolean bExtend, List<Brep> Fillets)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "make fillet surfaces and hack them up to active pieces. Adjusts cross sections",
        "since": "8.0",
        "parameters": [
          {
            "name": "railDegree",
            "type": "System.Int32",
            "summary": "The degree of the rail"
          },
          {
            "name": "bExtend",
            "type": "System.Boolean",
            "summary": "If true, when one input surface is longer than the other, the fillet surface is extended to the input surface edges."
          },
          {
            "name": "Fillets",
            "type": "List<Brep>",
            "summary": "the fillet8s that were created"
          }
        ],
        "returns": "True if successful"
      },
      {
        "signature": "System.Boolean NonRationalQuartic(System.Int32 railDegree, System.Double TanSlider, System.Double InnerSlider, System.Boolean bExtend, List<Brep> Fillets)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "make fillet surfaces and hack them up to active pieces. Adjusts cross sections",
        "since": "8.0",
        "parameters": [
          {
            "name": "railDegree",
            "type": "System.Int32",
            "summary": "The degree of the rail"
          },
          {
            "name": "TanSlider",
            "type": "System.Double",
            "summary": "A number from -1 to 1 indicating how far towards the theoretical rational midpoint to adjust the tangent control points."
          },
          {
            "name": "InnerSlider",
            "type": "System.Double",
            "summary": "A number from -1 to 1 indicating how far towards the theoretical rational midpoint to adjust the inner control points."
          },
          {
            "name": "bExtend",
            "type": "System.Boolean",
            "summary": "If true, when one input surface is longer than the other, the fillet surface is extended to the input surface edges."
          },
          {
            "name": "Fillets",
            "type": "List<Brep>",
            "summary": "the fillet8s that were created"
          }
        ],
        "returns": "True if successful"
      },
      {
        "signature": "System.Boolean NonRationalQuarticArcs(System.Int32 railDegree, System.Boolean bExtend, List<Brep> Fillets)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "make fillet surfaces and hack them up to active pieces. Adjusts cross sections",
        "since": "8.0",
        "parameters": [
          {
            "name": "railDegree",
            "type": "System.Int32",
            "summary": "The degree of the rail"
          },
          {
            "name": "bExtend",
            "type": "System.Boolean",
            "summary": "If true, when one input surface is longer than the other, the fillet surface is extended to the input surface edges."
          },
          {
            "name": "Fillets",
            "type": "List<Brep>",
            "summary": "the fillet8s that were created"
          }
        ],
        "returns": "True if successful"
      },
      {
        "signature": "System.Boolean NonRationalQuintic(System.Int32 railDegree, System.Double TanSlider, System.Double InnerSlider, System.Boolean bExtend, List<Brep> Fillets)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "make fillet surfaces and hack them up to active pieces. Adjusts cross sections",
        "since": "8.0",
        "parameters": [
          {
            "name": "railDegree",
            "type": "System.Int32",
            "summary": "The degree of the rail"
          },
          {
            "name": "TanSlider",
            "type": "System.Double",
            "summary": "A number from -1 to 1 indicating how far towards the theoretical rational midpoint to adjust the tangent control points."
          },
          {
            "name": "InnerSlider",
            "type": "System.Double",
            "summary": "A number from -1 to 1 indicating how far towards the theoretical rational midpoint to adjust the inner control points."
          },
          {
            "name": "bExtend",
            "type": "System.Boolean",
            "summary": "If true, when one input surface is longer than the other, the fillet surface is extended to the input surface edges."
          },
          {
            "name": "Fillets",
            "type": "List<Brep>",
            "summary": "the fillet8s that were created"
          }
        ],
        "returns": "True if successful"
      },
      {
        "signature": "System.Boolean NonRationalQuinticArcs(System.Int32 railDegree, System.Boolean bExtend, List<Brep> Fillets)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "make fillet surfaces and hack them up to active pieces. Adjusts cross sections",
        "since": "8.0",
        "parameters": [
          {
            "name": "railDegree",
            "type": "System.Int32",
            "summary": "The degree of the rail"
          },
          {
            "name": "bExtend",
            "type": "System.Boolean",
            "summary": "If true, when one input surface is longer than the other, the fillet surface is extended to the input surface edges."
          },
          {
            "name": "Fillets",
            "type": "List<Brep>",
            "summary": "the fillet8s that were created"
          }
        ],
        "returns": "True if successful"
      },
      {
        "signature": "System.Boolean RationalArcs(System.Int32 railDegree, System.Boolean bExtend, List<Brep> Fillets)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "make fillet surfaces and hack them up to active pieces. Adjusts cross sections",
        "since": "8.0",
        "parameters": [
          {
            "name": "railDegree",
            "type": "System.Int32",
            "summary": "The degree of the rail"
          },
          {
            "name": "bExtend",
            "type": "System.Boolean",
            "summary": "If true, when one input surface is longer than the other, the fillet surface is extended to the input surface edges."
          },
          {
            "name": "Fillets",
            "type": "List<Brep>",
            "summary": "the fillet8s that were created"
          }
        ],
        "returns": "True if successful"
      },
      {
        "signature": "System.Boolean TrimBreps(System.Boolean bExtend, List<Brep> TrimmedBreps0, List<Brep> TrimmedBreps1)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "If the two input breps are the same, TrimmedBreps[1] will be empty. The constructor idoes everything necessary for this to be called. Calles to the various fillet creation members will not change the result.",
        "since": "8.0"
      }
    ]
  },
  {
    "namespace": "Rhino.Geometry",
    "name": "SurfaceProxy",
    "dataType": "class",
    "summary": "Provides a base class to brep faces and other surface proxies.",
    "baseclass": "Rhino.Geometry.Surface",
    "constructors": [
      {
        "signature": "SurfaceProxy()",
        "modifiers": ["protected"],
        "protected": true,
        "virtual": false,
        "summary": "Protected constructor for internal use."
      }
    ]
  },
  {
    "namespace": "Rhino.Geometry",
    "name": "SweepBlend",
    "dataType": "enum",
    "summary": "Blend types for creating swept surfaces",
    "since": "7.0",
    "values": [
      {
        "signature": "Local = 0",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "The sweep stays constant at the ends and changes more rapidly in the middle."
      },
      {
        "signature": "Global = 1",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "The sweep is linearly blended from one end to the other, creating sweeps that taper from one cross-section curve to the other."
      }
    ]

  },
  {
    "namespace": "Rhino.Geometry",
    "name": "SweepFrame",
    "dataType": "enum",
    "summary": "Frame types for creating swept surfaces",
    "since": "7.0",
    "values": [
      {
        "signature": "Freeform = 0",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "The cross-section curve rotates to maintain its angle to the rail throughout the sweep."
      },
      {
        "signature": "Roadlike = 1",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Specify an axis for calculating the 3-D rotation of the cross-section."
      }
    ]

  },
  {
    "namespace": "Rhino.Geometry",
    "name": "SweepMiter",
    "dataType": "enum",
    "summary": "Miter types for creating swept surfaces",
    "since": "7.0",
    "values": [
      {
        "signature": "None = 0",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "No mitering"
      },
      {
        "signature": "Trimmed = 1",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "If the sweep creates a polysurface with kinks, the component surfaces will be trimmed."
      },
      {
        "signature": "Untrimmed = 2",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "If the sweep creates a polysurface with kinks, the component surfaces will be untrimmed."
      }
    ]

  },
  {
    "namespace": "Rhino.Geometry",
    "name": "SweepOneRail",
    "dataType": "class",
    "summary": "Utility class for generating Breps by sweeping cross section curves over a single rail curve. Note, this class has been superseded by the Rhino.Geometry.Brep.CreateFromSweep static functions.",
    "constructors": [
      {
        "signature": "SweepOneRail()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      }
    ],
    "properties": [
      {
        "signature": "double AngleToleranceRadians",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool ClosedSweep",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "If the input rail is closed, ClosedSweep determines if the swept breps will also be closed.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool GlobalShapeBlending",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "If true, the sweep is linearly blended from one end to the other, creating sweeps that taper from one cross-section curve to the other. If false, the sweep stays constant at the ends and changes more rapidly in the middle.",
        "since": "5.1",
        "property": ["get", "set"]
      },
      {
        "signature": "bool IsFreeform",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "bool IsRoadlike",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "bool IsRoadlikeFront",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "bool IsRoadlikeTop",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "bool IsRoadlineRight",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "int MiterType",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "0: don't miter,  1: intersect surfaces and trim sweeps,  2: rotate shapes at kinks and don't trim.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "double SweepTolerance",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0",
        "property": ["get", "set"]
      }
    ],
    "methods": [
      {
        "signature": "Brep[] PerformSweep(Curve rail, Curve crossSection, System.Double crossSectionParameter)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "Brep[] PerformSweep(Curve rail, Curve crossSection)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "Brep[] PerformSweep(Curve rail, IEnumerable<Curve> crossSections, IEnumerable<double> crossSectionParameters)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "Brep[] PerformSweep(Curve rail, IEnumerable<Curve> crossSections)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "Brep[] PerformSweepRebuild(Curve rail, Curve crossSection, System.Double crossSectionParameter, System.Int32 rebuildCount)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "Brep[] PerformSweepRebuild(Curve rail, Curve crossSection, System.Int32 rebuildCount)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "Brep[] PerformSweepRebuild(Curve rail, IEnumerable<Curve> crossSections, IEnumerable<double> crossSectionParameters, System.Int32 rebuildCount)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "Brep[] PerformSweepRebuild(Curve rail, IEnumerable<Curve> crossSections, System.Int32 rebuildCount)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "Brep[] PerformSweepRefit(Curve rail, Curve crossSection, System.Double crossSectionParameter, System.Double refitTolerance)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "Brep[] PerformSweepRefit(Curve rail, Curve crossSection, System.Double refitTolerance)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "Brep[] PerformSweepRefit(Curve rail, IEnumerable<Curve> crossSections, IEnumerable<double> crossSectionParameters, System.Double refitTolerance)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "Brep[] PerformSweepRefit(Curve rail, IEnumerable<Curve> crossSections, System.Double refitTolerance)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "System.Void SetRoadlikeUpDirection(Vector3d up)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "System.Void SetToRoadlikeFront()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "System.Void SetToRoadlikeRight()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "System.Void SetToRoadlikeTop()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      }
    ]
  },
  {
    "namespace": "Rhino.Geometry",
    "name": "SweepRebuild",
    "dataType": "enum",
    "summary": "Rebuild types for creating swept surfaces",
    "since": "6.16",
    "values": [
      {
        "signature": "None = 0",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Do not simplify cross section curves."
      },
      {
        "signature": "Rebuild = 1",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Rebuild cross section curves through points."
      },
      {
        "signature": "Refit = 2",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Refit cross section curves to tolerance."
      }
    ]

  },
  {
    "namespace": "Rhino.Geometry",
    "name": "SweepTwoRail",
    "dataType": "class",
    "summary": "Utility class for generating Breps by sweeping cross section curves over two rail curves. Note, this class has been superseded by the Rhino.Geometry.Brep.CreateFromSweep static functions.",
    "constructors": [
      {
        "signature": "SweepTwoRail()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      }
    ],
    "properties": [
      {
        "signature": "double AngleToleranceRadians",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the angle tolerance in radians.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool AutoAdjust",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Set to True to have shape curves adjusted, sorted, and matched automatically. This will produce results comparable to Rhino's Sweep2 command. Set to False to not have shape curves adjusted, sorted, and matched automatically.",
        "since": "7.19",
        "property": ["get", "set"]
      },
      {
        "signature": "bool ClosedSweep",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "If the input rails are closed, ClosedSweep determines if the swept Breps will also be closed.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool MaintainHeight",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Removes the association between the height scaling from the width scaling.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "double SweepTolerance",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the sweeping tolerance.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool UseLegacySweeper",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Set to True if you want to use the legacy, low-level sweeper found in earlier versions of Rhino.",
        "since": "8.8",
        "property": ["get", "set"]
      }
    ],
    "methods": [
      {
        "signature": "Brep[] PerformSweep(Curve rail1, Curve rail2, Curve crossSection, System.Double crossSectionParameterRail1, System.Double crossSectionParameterRail2)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Sweep2 function that fits a surface through profile curves that define the surface cross-sections and two curves that defines a surface edge.",
        "since": "5.0",
        "parameters": [
          {
            "name": "rail1",
            "type": "Curve",
            "summary": "Rail to sweep shapes along."
          },
          {
            "name": "rail2",
            "type": "Curve",
            "summary": "Rail to sweep shapes along."
          },
          {
            "name": "crossSection",
            "type": "Curve",
            "summary": "Shape curve."
          },
          {
            "name": "crossSectionParameterRail1",
            "type": "System.Double",
            "summary": "Curve parameter on first rail curve. Unused if <b>UseLegacySweeper</b> is true."
          },
          {
            "name": "crossSectionParameterRail2",
            "type": "System.Double",
            "summary": "Curve parameter on second rail curve. Unused if <b>UseLegacySweeper</b> is true."
          }
        ],
        "returns": "Array of Brep sweep results."
      },
      {
        "signature": "Brep[] PerformSweep(Curve rail1, Curve rail2, Curve crossSection)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Sweep2 function that fits a surface through profile curves that define the surface cross-sections and two curves that defines a surface edge.",
        "since": "5.0",
        "parameters": [
          {
            "name": "rail1",
            "type": "Curve",
            "summary": "Rail to sweep shapes along."
          },
          {
            "name": "rail2",
            "type": "Curve",
            "summary": "Rail to sweep shapes along."
          },
          {
            "name": "crossSection",
            "type": "Curve",
            "summary": "Shape curve."
          }
        ],
        "returns": "Array of Brep sweep results."
      },
      {
        "signature": "Brep[] PerformSweep(Curve rail1, Curve rail2, IEnumerable<Curve> crossSections, IEnumerable<double> crossSectionParameters1, IEnumerable<double> crossSectionParameters2)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Sweep2 function that fits a surface through profile curves that define the surface cross-sections and two curves that defines a surface edge.",
        "since": "5.0",
        "parameters": [
          {
            "name": "rail1",
            "type": "Curve",
            "summary": "Rail to sweep shapes along."
          },
          {
            "name": "rail2",
            "type": "Curve",
            "summary": "Rail to sweep shapes along."
          },
          {
            "name": "crossSections",
            "type": "IEnumerable<Curve>",
            "summary": "Cross section curves."
          },
          {
            "name": "crossSectionParameters1",
            "type": "IEnumerable<double>",
            "summary": "Curve parameters on first rail curve. Unused if <b>UseLegacySweeper</b> is true."
          },
          {
            "name": "crossSectionParameters2",
            "type": "IEnumerable<double>",
            "summary": "Curve parameters on second rail curve. Unused if <b>UseLegacySweeper</b> is true."
          }
        ],
        "returns": "Array of Brep sweep results."
      },
      {
        "signature": "Brep[] PerformSweep(Curve rail1, Curve rail2, IEnumerable<Curve> crossSections)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Sweep2 function that fits a surface through profile curves that define the surface cross-sections and two curves that defines a surface edge.",
        "since": "5.0",
        "parameters": [
          {
            "name": "rail1",
            "type": "Curve",
            "summary": "Rail to sweep shapes along."
          },
          {
            "name": "rail2",
            "type": "Curve",
            "summary": "Rail to sweep shapes along."
          },
          {
            "name": "crossSections",
            "type": "IEnumerable<Curve>",
            "summary": "Shape curves."
          }
        ],
        "returns": "Array of Brep sweep results."
      },
      {
        "signature": "Brep[] PerformSweepRebuild(Curve rail1, Curve rail2, Curve crossSection, System.Double crossSectionParameterRail1, System.Double crossSectionParameterRail2, System.Int32 rebuildCount)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Sweep2 function that fits a surface through profile curves that define the surface cross-sections and two curves that defines a surface edge.",
        "since": "5.0",
        "parameters": [
          {
            "name": "rail1",
            "type": "Curve",
            "summary": "Rail to sweep shapes along."
          },
          {
            "name": "rail2",
            "type": "Curve",
            "summary": "Rail to sweep shapes along."
          },
          {
            "name": "crossSection",
            "type": "Curve",
            "summary": "Shape curve."
          },
          {
            "name": "crossSectionParameterRail1",
            "type": "System.Double",
            "summary": "Curve parameter on first rail curve. Unused if <b>UseLegacySweeper</b> is true."
          },
          {
            "name": "crossSectionParameterRail2",
            "type": "System.Double",
            "summary": "Curve parameter on second rail curve. Unused if <b>UseLegacySweeper</b> is true."
          },
          {
            "name": "rebuildCount",
            "type": "System.Int32",
            "summary": "Rebuild point count."
          }
        ],
        "returns": "Array of Brep sweep results."
      },
      {
        "signature": "Brep[] PerformSweepRebuild(Curve rail1, Curve rail2, Curve crossSection, System.Int32 rebuildCount)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Sweep2 function that fits a surface through profile curves that define the surface cross-sections and two curves that defines a surface edge.",
        "since": "5.0",
        "parameters": [
          {
            "name": "rail1",
            "type": "Curve",
            "summary": "Rail to sweep shapes along."
          },
          {
            "name": "rail2",
            "type": "Curve",
            "summary": "Rail to sweep shapes along."
          },
          {
            "name": "crossSection",
            "type": "Curve",
            "summary": "Shape curve."
          },
          {
            "name": "rebuildCount",
            "type": "System.Int32",
            "summary": "Rebuild point count."
          }
        ],
        "returns": "Array of Brep sweep results."
      },
      {
        "signature": "Brep[] PerformSweepRebuild(Curve rail1, Curve rail2, IEnumerable<Curve> crossSections, IEnumerable<double> crossSectionParametersRail1, IEnumerable<double> crossSectionParametersRail2, System.Int32 rebuildCount)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Sweep2 function that fits a surface through profile curves that define the surface cross-sections and two curves that defines a surface edge.",
        "since": "5.0",
        "parameters": [
          {
            "name": "rail1",
            "type": "Curve",
            "summary": "Rail to sweep shapes along."
          },
          {
            "name": "rail2",
            "type": "Curve",
            "summary": "Rail to sweep shapes along."
          },
          {
            "name": "crossSections",
            "type": "IEnumerable<Curve>",
            "summary": "Shape curves."
          },
          {
            "name": "crossSectionParametersRail1",
            "type": "IEnumerable<double>",
            "summary": "Curve parameters on first rail curve. Unused if <b>UseLegacySweeper</b> is true."
          },
          {
            "name": "crossSectionParametersRail2",
            "type": "IEnumerable<double>",
            "summary": "Curve parameters on second rail curve. Unused if <b>UseLegacySweeper</b> is true."
          },
          {
            "name": "rebuildCount",
            "type": "System.Int32",
            "summary": "Rebuild point count."
          }
        ],
        "returns": "Array of Brep sweep results."
      },
      {
        "signature": "Brep[] PerformSweepRebuild(Curve rail1, Curve rail2, IEnumerable<Curve> crossSections, System.Int32 rebuildCount)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Sweep2 function that fits a surface through profile curves that define the surface cross-sections and two curves that defines a surface edge.",
        "since": "5.0",
        "parameters": [
          {
            "name": "rail1",
            "type": "Curve",
            "summary": "Rail to sweep shapes along."
          },
          {
            "name": "rail2",
            "type": "Curve",
            "summary": "Rail to sweep shapes along."
          },
          {
            "name": "crossSections",
            "type": "IEnumerable<Curve>",
            "summary": "Shape curves."
          },
          {
            "name": "rebuildCount",
            "type": "System.Int32",
            "summary": "Rebuild point count."
          }
        ],
        "returns": "Array of Brep sweep results."
      },
      {
        "signature": "Brep[] PerformSweepRefit(Curve rail1, Curve rail2, Curve crossSection, System.Double crossSectionParameterRail1, System.Double crossSectionParameterRail2, System.Double refitTolerance)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Sweep2 function that fits a surface through profile curves that define the surface cross-sections and two curves that defines a surface edge.",
        "since": "5.0",
        "parameters": [
          {
            "name": "rail1",
            "type": "Curve",
            "summary": "Rail to sweep shapes along."
          },
          {
            "name": "rail2",
            "type": "Curve",
            "summary": "Rail to sweep shapes along."
          },
          {
            "name": "crossSection",
            "type": "Curve",
            "summary": "Shape curve."
          },
          {
            "name": "crossSectionParameterRail1",
            "type": "System.Double",
            "summary": "Curve parameter on first rail curve. Unused if <b>UseLegacySweeper</b> is true."
          },
          {
            "name": "crossSectionParameterRail2",
            "type": "System.Double",
            "summary": "Curve parameter on second rail curve. Unused if <b>UseLegacySweeper</b> is true."
          },
          {
            "name": "refitTolerance",
            "type": "System.Double",
            "summary": "Refit tolerance."
          }
        ],
        "returns": "Array of Brep sweep results."
      },
      {
        "signature": "Brep[] PerformSweepRefit(Curve rail1, Curve rail2, Curve crossSection, System.Double refitTolerance)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Sweep2 function that fits a surface through profile curves that define the surface cross-sections and two curves that defines a surface edge.",
        "since": "5.0",
        "parameters": [
          {
            "name": "rail1",
            "type": "Curve",
            "summary": "Rail to sweep shapes along."
          },
          {
            "name": "rail2",
            "type": "Curve",
            "summary": "Rail to sweep shapes along."
          },
          {
            "name": "crossSection",
            "type": "Curve",
            "summary": "Shape curve."
          },
          {
            "name": "refitTolerance",
            "type": "System.Double",
            "summary": "Refit tolerance."
          }
        ],
        "returns": "Array of Brep sweep results."
      },
      {
        "signature": "Brep[] PerformSweepRefit(Curve rail1, Curve rail2, IEnumerable<Curve> crossSections, IEnumerable<double> crossSectionParametersRail1, IEnumerable<double> crossSectionParametersRail2, System.Double refitTolerance)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Sweep2 function that fits a surface through profile curves that define the surface cross-sections and two curves that defines a surface edge.",
        "since": "5.0",
        "parameters": [
          {
            "name": "rail1",
            "type": "Curve",
            "summary": "Rail to sweep shapes along."
          },
          {
            "name": "rail2",
            "type": "Curve",
            "summary": "Rail to sweep shapes along."
          },
          {
            "name": "crossSections",
            "type": "IEnumerable<Curve>",
            "summary": "Shape curves."
          },
          {
            "name": "crossSectionParametersRail1",
            "type": "IEnumerable<double>",
            "summary": "Curve parameters on first rail curve. Unused if <b>UseLegacySweeper</b> is true."
          },
          {
            "name": "crossSectionParametersRail2",
            "type": "IEnumerable<double>",
            "summary": "Curve parameters on second rail curve. Unused if <b>UseLegacySweeper</b> is true."
          },
          {
            "name": "refitTolerance",
            "type": "System.Double",
            "summary": "Refit tolerance."
          }
        ],
        "returns": "Array of Brep sweep results."
      },
      {
        "signature": "Brep[] PerformSweepRefit(Curve rail1, Curve rail2, IEnumerable<Curve> crossSections, System.Double refitTolerance)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Sweep2 function that fits a surface through profile curves that define the surface cross-sections and two curves that defines a surface edge.",
        "since": "5.0",
        "parameters": [
          {
            "name": "rail1",
            "type": "Curve",
            "summary": "Rail to sweep shapes along."
          },
          {
            "name": "rail2",
            "type": "Curve",
            "summary": "Rail to sweep shapes along."
          },
          {
            "name": "crossSections",
            "type": "IEnumerable<Curve>",
            "summary": "Shape curves."
          },
          {
            "name": "refitTolerance",
            "type": "System.Double",
            "summary": "Refit tolerance."
          }
        ],
        "returns": "Array of Brep sweep results."
      }
    ]
  },
  {
    "namespace": "Rhino.Geometry",
    "name": "TextDot",
    "dataType": "class",
    "summary": "Represents a text dot, or an annotation entity with text that always faces the camera and always has the same size.  \nThis class refers to the geometric element that is independent from the document.",
    "baseclass": "Rhino.Geometry.GeometryBase",
    "constructors": [
      {
        "signature": "TextDot(SerializationInfo info, StreamingContext context)",
        "modifiers": ["protected"],
        "protected": true,
        "virtual": false,
        "summary": "Protected constructor used in serialization."
      },
      {
        "signature": "TextDot(string text, Point3d location)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Initializes a new text dot based on the text and the location.",
        "since": "5.0",
        "parameters": [
          {
            "name": "text",
            "type": "System.String",
            "summary": "Text."
          },
          {
            "name": "location",
            "type": "Point3d",
            "summary": "A position."
          }
        ]
      }
    ],
    "properties": [
      {
        "signature": "string FontFace",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Font face used for displaying the dot",
        "since": "5.2",
        "property": ["get", "set"]
      },
      {
        "signature": "int FontHeight",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Height of font used for displaying the dot",
        "since": "5.2",
        "property": ["get", "set"]
      },
      {
        "signature": "Point3d Point",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the position of the text dot.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "string SecondaryText",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the secondary text of the text dot.",
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "string Text",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the primary text of the text dot.",
        "since": "5.0",
        "property": ["get", "set"]
      }
    ]
  },
  {
    "namespace": "Rhino.Geometry",
    "name": "TextEntity",
    "dataType": "class",
    "baseclass": "Rhino.Geometry.AnnotationBase",
    "constructors": [
      {
        "signature": "TextEntity()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Initializes a new instance of the <b>TextEntity</b> class.",
        "since": "5.0"
      },
      {
        "signature": "TextEntity(SerializationInfo info, StreamingContext context)",
        "modifiers": ["protected"],
        "protected": true,
        "virtual": false,
        "summary": "Protected constructor used in serialization",
        "parameters": [
          {
            "name": "info",
            "type": "System.Runtime.Serialization.SerializationInfo",
            "summary": "Serialization data"
          },
          {
            "name": "context",
            "type": "System.Runtime.Serialization.StreamingContext",
            "summary": "Serialization stream"
          }
        ]
      }
    ],
    "properties": [
      {
        "signature": "TextJustification Justification",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the justification of text in relation to its base point.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "TextHorizontalAlignment TextHorizontalAlignment",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "TextOrientation TextOrientation",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "TextVerticalAlignment TextVerticalAlignment",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get", "set"]
      }
    ],
    "methods": [
      {
        "signature": "TextEntity Create(System.String text, Plane plane, DimensionStyle style, System.Boolean wrapped, System.Double rectWidth, System.Double rotationRadians)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Create Text geometry or None if input is invalid",
        "since": "6.0"
      },
      {
        "signature": "TextEntity CreateWithRichText(System.String richTextString, Plane plane, DimensionStyle style, System.Boolean wrapped, System.Double rectWidth, System.Double rotationRadians)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Create RichText geometry or None if input is invalid",
        "since": "6.0"
      },
      {
        "signature": "Curve[] CreateCurves(DimensionStyle dimstyle, System.Boolean allowOpen, System.Boolean makeSmallCaps, System.Double smallCapsScale, System.Double spacing)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns the outline curves.",
        "since": "9.0",
        "parameters": [
          {
            "name": "dimstyle",
            "type": "DimensionStyle",
            "summary": ""
          },
          {
            "name": "allowOpen",
            "type": "System.Boolean",
            "summary": "Set to True to prevent forced closing of open curves retrieved from glyphs."
          },
          {
            "name": "makeSmallCaps",
            "type": "System.Boolean",
            "summary": "Set to create small caps out of lower case letters."
          },
          {
            "name": "smallCapsScale",
            "type": "System.Double",
            "summary": "If makeSmallCaps is true, this will be the scale factor for small caps."
          },
          {
            "name": "spacing",
            "type": "System.Double",
            "summary": "Set to add additional spacing between glyph output."
          }
        ],
        "returns": "An array of curves that forms the outline or content of this text entity."
      },
      {
        "signature": "Curve[] CreateCurves(DimensionStyle dimstyle, System.Boolean allowOpen, System.Double smallCapsScale, System.Double spacing)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns the outline curves.",
        "since": "6.0",
        "parameters": [
          {
            "name": "dimstyle",
            "type": "DimensionStyle",
            "summary": ""
          },
          {
            "name": "allowOpen",
            "type": "System.Boolean",
            "summary": "Set to True to prevent forced closing of open curves retrieved from glyphs."
          },
          {
            "name": "smallCapsScale",
            "type": "System.Double",
            "summary": "Set to create small caps out of lower case letters."
          },
          {
            "name": "spacing",
            "type": "System.Double",
            "summary": "Set to add additional spacing between glyph output."
          }
        ],
        "returns": "An array of curves that forms the outline or content of this text entity."
      },
      {
        "signature": "System.Collections.Generic.List<Curve[]> CreateCurvesGrouped(DimensionStyle dimstyle, System.Boolean allowOpen, System.Boolean makeSmallCaps, System.Double smallCapsScale, System.Double spacing)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Creates planar curve from text outline curves. Curves are grouped such that each element in the list being returned represents a single character.",
        "since": "9.0",
        "parameters": [
          {
            "name": "dimstyle",
            "type": "DimensionStyle",
            "summary": ""
          },
          {
            "name": "allowOpen",
            "type": "System.Boolean",
            "summary": "Set to True to prevent forced closing of open curves retrieved from glyphs."
          },
          {
            "name": "makeSmallCaps",
            "type": "System.Boolean",
            "summary": ""
          },
          {
            "name": "smallCapsScale",
            "type": "System.Double",
            "summary": ""
          },
          {
            "name": "spacing",
            "type": "System.Double",
            "summary": ""
          }
        ]
      },
      {
        "signature": "System.Collections.Generic.List<Curve[]> CreateCurvesGrouped(DimensionStyle dimstyle, System.Boolean allowOpen, System.Double smallCapsScale, System.Double spacing)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Creates planar curve from text outline curves. Curves are grouped such that each element in the list being returned represents a single character.",
        "since": "8.0",
        "parameters": [
          {
            "name": "dimstyle",
            "type": "DimensionStyle",
            "summary": ""
          },
          {
            "name": "allowOpen",
            "type": "System.Boolean",
            "summary": "Set to True to prevent forced closing of open curves retrieved from glyphs."
          },
          {
            "name": "smallCapsScale",
            "type": "System.Double",
            "summary": ""
          },
          {
            "name": "spacing",
            "type": "System.Double",
            "summary": ""
          }
        ]
      },
      {
        "signature": "Extrusion[] CreateExtrusions(DimensionStyle dimstyle, System.Double height, System.Boolean makeSmallCaps, System.Double smallCapsScale, System.Double spacing)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Creates extrusions from the outline curves with specified height.",
        "since": "9.0",
        "parameters": [
          {
            "name": "dimstyle",
            "type": "DimensionStyle",
            "summary": ""
          },
          {
            "name": "height",
            "type": "System.Double",
            "summary": "Height in direction perpendicular to plane of text."
          },
          {
            "name": "makeSmallCaps",
            "type": "System.Boolean",
            "summary": "Set to True to create small caps out of lower case letters."
          },
          {
            "name": "smallCapsScale",
            "type": "System.Double",
            "summary": "Set to create small caps out of lower case letters."
          },
          {
            "name": "spacing",
            "type": "System.Double",
            "summary": "Set to add additional spacing between glyph output."
          }
        ],
        "returns": "An array of planar breps."
      },
      {
        "signature": "Extrusion[] CreateExtrusions(DimensionStyle dimstyle, System.Double height, System.Double smallCapsScale, System.Double spacing)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Creates extrusions from the outline curves with specified height.",
        "since": "6.0",
        "parameters": [
          {
            "name": "dimstyle",
            "type": "DimensionStyle",
            "summary": ""
          },
          {
            "name": "height",
            "type": "System.Double",
            "summary": "Height in direction perpendicular to plane of text."
          },
          {
            "name": "smallCapsScale",
            "type": "System.Double",
            "summary": "Set to create small caps out of lower case letters."
          },
          {
            "name": "spacing",
            "type": "System.Double",
            "summary": "Set to add additional spacing between glyph output."
          }
        ],
        "returns": "An array of planar breps."
      },
      {
        "signature": "System.Collections.Generic.List<Extrusion[]> CreateExtrusionsGrouped(DimensionStyle dimstyle, System.Boolean makeSmallCaps, System.Double smallCapsScale, System.Double height, System.Double spacing)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Creates 3d Breps from text outline curves. Breps are grouped such that each element in the list being returned represents a single character.",
        "since": "9.0"
      },
      {
        "signature": "System.Collections.Generic.List<Extrusion[]> CreateExtrusionsGrouped(DimensionStyle dimstyle, System.Double smallCapsScale, System.Double height, System.Double spacing)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Creates 3d Breps from text outline curves. Breps are grouped such that each element in the list being returned represents a single character.",
        "since": "8.0"
      },
      {
        "signature": "Brep[] CreatePolySurfaces(DimensionStyle dimstyle, System.Double height, System.Boolean makeSmallCaps, System.Double smallCapsScale, System.Double spacing)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Creates breps from the outline curves with specified height.",
        "since": "9.0",
        "parameters": [
          {
            "name": "dimstyle",
            "type": "DimensionStyle",
            "summary": ""
          },
          {
            "name": "height",
            "type": "System.Double",
            "summary": "Height in direction perpendicular to plane of text."
          },
          {
            "name": "makeSmallCaps",
            "type": "System.Boolean",
            "summary": "Set to True to create small caps out of lower case letters."
          },
          {
            "name": "smallCapsScale",
            "type": "System.Double",
            "summary": "Set to create small caps out of lower case letters."
          },
          {
            "name": "spacing",
            "type": "System.Double",
            "summary": "Set to add additional spacing between glyph output."
          }
        ],
        "returns": "An array of planar breps."
      },
      {
        "signature": "Brep[] CreatePolySurfaces(DimensionStyle dimstyle, System.Double height, System.Double smallCapsScale, System.Double spacing)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Creates breps from the outline curves with specified height.",
        "since": "6.0",
        "parameters": [
          {
            "name": "dimstyle",
            "type": "DimensionStyle",
            "summary": ""
          },
          {
            "name": "height",
            "type": "System.Double",
            "summary": "Height in direction perpendicular to plane of text."
          },
          {
            "name": "smallCapsScale",
            "type": "System.Double",
            "summary": "Set to create small caps out of lower case letters."
          },
          {
            "name": "spacing",
            "type": "System.Double",
            "summary": "Set to add additional spacing between glyph output."
          }
        ],
        "returns": "An array of planar breps."
      },
      {
        "signature": "System.Collections.Generic.List<Brep[]> CreatePolysurfacesGrouped(DimensionStyle dimstyle, System.Boolean makeSmallCaps, System.Double smallCapsScale, System.Double height, System.Double spacing)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Creates 3d Breps from text outline curves. Breps are grouped such that each element in the list being returned represents a single character.",
        "since": "9.0"
      },
      {
        "signature": "System.Collections.Generic.List<Brep[]> CreatePolysurfacesGrouped(DimensionStyle dimstyle, System.Double smallCapsScale, System.Double height, System.Double spacing)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Creates 3d Breps from text outline curves. Breps are grouped such that each element in the list being returned represents a single character.",
        "since": "8.0"
      },
      {
        "signature": "Brep[] CreateSurfaces(DimensionStyle dimstyle, System.Boolean makeSmallCaps, System.Double smallCapsScale, System.Double spacing)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Creates planar breps from the outline curves.",
        "since": "9.0",
        "parameters": [
          {
            "name": "dimstyle",
            "type": "DimensionStyle",
            "summary": ""
          },
          {
            "name": "makeSmallCaps",
            "type": "System.Boolean",
            "summary": "Set to True to create small caps out of lower case letters."
          },
          {
            "name": "smallCapsScale",
            "type": "System.Double",
            "summary": "Set to create small caps out of lower case letters."
          },
          {
            "name": "spacing",
            "type": "System.Double",
            "summary": "Set to add additional spacing between glyph output."
          }
        ],
        "returns": "An array of planar breps."
      },
      {
        "signature": "Brep[] CreateSurfaces(DimensionStyle dimstyle, System.Double smallCapsScale, System.Double spacing)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Creates planar breps from the outline curves.",
        "since": "6.0",
        "parameters": [
          {
            "name": "dimstyle",
            "type": "DimensionStyle",
            "summary": ""
          },
          {
            "name": "smallCapsScale",
            "type": "System.Double",
            "summary": "Set to create small caps out of lower case letters."
          },
          {
            "name": "spacing",
            "type": "System.Double",
            "summary": "Set to add additional spacing between glyph output."
          }
        ],
        "returns": "An array of planar breps."
      },
      {
        "signature": "System.Collections.Generic.List<Brep[]> CreateSurfacesGrouped(DimensionStyle dimstyle, System.Boolean makeSmallCaps, System.Double smallCapsScale, System.Double spacing)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Creates planar Breps from text outline curves. Breps are grouped such that each element in the list being returned represents a single character.",
        "since": "9.0"
      },
      {
        "signature": "System.Collections.Generic.List<Brep[]> CreateSurfacesGrouped(DimensionStyle dimstyle, System.Double smallCapsScale, System.Double spacing)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Creates planar Breps from text outline curves. Breps are grouped such that each element in the list being returned represents a single character.",
        "since": "8.0"
      },
      {
        "signature": "Curve[] Explode()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Explodes this text entity into an array of curves.",
        "since": "5.0",
        "returns": "An array of curves that forms the outline or content of this text entity."
      },
      {
        "signature": "Transform GetTextTransform(System.Double textscale, DimensionStyle dimstyle)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Get the transform for this text object's text geometry",
        "since": "6.0"
      },
      {
        "signature": "System.Boolean Transform(Transform transform, DimensionStyle style)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Transform the object by a 4x4 transform matrix and change text height override to accommodate scaling in the transform if necessary",
        "since": "6.0",
        "parameters": [
          {
            "name": "transform",
            "type": "Transform",
            "summary": "An Transform with the transformation information"
          },
          {
            "name": "style",
            "type": "DimensionStyle",
            "summary": ""
          }
        ],
        "returns": "Returns True on success otherwise returns false."
      }
    ]
  },
  {
    "namespace": "Rhino.Geometry",
    "name": "TextJustification",
    "dataType": "enum",
    "summary": "Specifies enumerated constants used to indicate the internal alignment and justification of text.",
    "since": "5.0",
    "values": [
      {
        "signature": "None = 0",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "The default justification."
      },
      {
        "signature": "Left = 1 << 0",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Left justification."
      },
      {
        "signature": "Center = 1 << 1",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Center justification."
      },
      {
        "signature": "Right = 1 << 2",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Right justification."
      },
      {
        "signature": "Bottom = 1 << 16",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Bottom inner alignment."
      },
      {
        "signature": "Middle = 1 << 17",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Middle inner alignment."
      },
      {
        "signature": "Top = 1 << 18",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Top inner alignment."
      },
      {
        "signature": "BottomLeft = Bottom | Left",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Combination of left justification and bottom alignment."
      },
      {
        "signature": "BottomCenter = Bottom | Center",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Combination of center justification and bottom alignment."
      },
      {
        "signature": "BottomRight = Bottom | Right",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Combination of right justification and bottom alignment."
      },
      {
        "signature": "MiddleLeft = Middle | Left",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Combination of left justification and middle alignment."
      },
      {
        "signature": "MiddleCenter = Middle | Center",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Combination of center justification and middle alignment."
      },
      {
        "signature": "MiddleRight = Middle | Right",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Combination of right justification and middle alignment."
      },
      {
        "signature": "TopLeft = Top | Left",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Combination of left justification and top alignment."
      },
      {
        "signature": "TopCenter = Top | Center",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Combination of center justification and top alignment."
      },
      {
        "signature": "TopRight = Top | Right",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Combination of right justification and top alignment."
      }
    ]

  },
  {
    "namespace": "Rhino.Geometry",
    "name": "TextRunType",
    "dataType": "enum",
    "since": "6.0",
    "values": [
      {
        "signature": "None = UnsafeNativeMethods.TextRunTypeConsts.None",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Text = UnsafeNativeMethods.TextRunTypeConsts.Text",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Newline = UnsafeNativeMethods.TextRunTypeConsts.Newline",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Paragraph = UnsafeNativeMethods.TextRunTypeConsts.Paragraph",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Column = UnsafeNativeMethods.TextRunTypeConsts.Column",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Field = UnsafeNativeMethods.TextRunTypeConsts.Field",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Fontdef = UnsafeNativeMethods.TextRunTypeConsts.Fontdef",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Header = UnsafeNativeMethods.TextRunTypeConsts.Header",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Softreturn = UnsafeNativeMethods.TextRunTypeConsts.Softreturn",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "FieldValue = UnsafeNativeMethods.TextRunTypeConsts.FieldValue",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "FontTable = UnsafeNativeMethods.TextRunTypeConsts.Fonttbl",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "ColorTable = UnsafeNativeMethods.TextRunTypeConsts.Colortbl",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Tab = UnsafeNativeMethods.TextRunTypeConsts.Tab",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "ListBegin = UnsafeNativeMethods.TextRunTypeConsts.ListBegin",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "ListEnd = UnsafeNativeMethods.TextRunTypeConsts.ListEnd",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "ListItemBegin = UnsafeNativeMethods.TextRunTypeConsts.ListItemBegin",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "ListItemEnd = UnsafeNativeMethods.TextRunTypeConsts.ListItemEnd",
        "modifiers": [],
        "protected": false,
        "virtual": false
      }
    ]

  },
  {
    "namespace": "Rhino.Geometry",
    "name": "Torus",
    "dataType": "struct",
    "summary": "Represents the value of a plane and two radii in a torus that is oriented in three-dimensional space.",
    "constructors": [
      {
        "signature": "Torus(Plane basePlane, double majorRadius, double minorRadius)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Initializes a new Torus from base pane and two radii.",
        "since": "5.0",
        "parameters": [
          {
            "name": "basePlane",
            "type": "Plane",
            "summary": "Base plane for major radius circle."
          },
          {
            "name": "majorRadius",
            "type": "System.Double",
            "summary": "Radius of circle that lies at the heart of the torus."
          },
          {
            "name": "minorRadius",
            "type": "System.Double",
            "summary": "Radius of torus section."
          }
        ]
      }
    ],
    "properties": [
      {
        "signature": "Torus Unset",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Gets an invalid Torus.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "bool IsValid",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets a value indicating whether this torus is valid.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "double MajorRadius",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the radius of the circle that lies at the heart of the torus.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "double MinorRadius",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the radius of the torus section.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "Plane Plane",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the plane for the torus large circle.",
        "since": "5.0",
        "property": ["get", "set"]
      }
    ],
    "methods": [
      {
        "signature": "System.Boolean EpsilonEquals(Torus other, System.Double epsilon)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Check that all values in other are within epsilon of the values in this",
        "since": "5.4"
      },
      {
        "signature": "Brep ToBrep()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Converts this torus to a Brep. This is synonymous with calling <b>Brep.CreateFromTorus</b> .",
        "since": "8.1",
        "returns": "A Brep representation of this torus, or None on error."
      },
      {
        "signature": "NurbsSurface ToNurbsSurface()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Converts this torus to its NURBS surface representation. This is synonymous with calling <b>NurbsSurface.CreateFromTorus</b> .",
        "since": "5.0",
        "returns": "A NURBS surface representation of this torus, or None on error."
      },
      {
        "signature": "RevSurface ToRevSurface()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Converts this torus to a surface of revolution representation. This is synonymous with calling <b>RevSurface.CreateFromTorus</b> .",
        "since": "5.0",
        "returns": "A surface of revolution representation of this torus, or None on error."
      }
    ]
  },
  {
    "namespace": "Rhino.Geometry",
    "name": "Transform",
    "dataType": "struct",
    "summary": "Represents the values in a 4x4 transform matrix.  \nThis is parallel to C++ ON_Xform.",
    "constructors": [
      {
        "signature": "Transform(double diagonalValue)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Initializes a new transform matrix with a specified value along the diagonal.",
        "since": "5.0",
        "parameters": [
          {
            "name": "diagonalValue",
            "type": "System.Double",
            "summary": "Value to assign to all diagonal cells except M33 which is set to 1.0."
          }
        ]
      },
      {
        "signature": "Transform(Transform value)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Initializes a new transform matrix with a specified value.",
        "since": "6.0",
        "parameters": [
          {
            "name": "value",
            "type": "Transform",
            "summary": "Value to assign to all cells."
          }
        ]
      }
    ],
    "properties": [
      {
        "signature": "Transform Identity",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Gets a new identity transform matrix. An identity matrix defines no transformation.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "Transform Unset",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Gets an XForm filled with RhinoMath.UnsetValue.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "Transform ZeroTransformation",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "ZeroTransformation diagonal = (0,0,0,1)",
        "since": "6.1",
        "property": ["get"]
      },
      {
        "signature": "double Determinant",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "The determinant of this 4x4 matrix.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "bool IsAffine",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Tests for an affine transformation. A transformation is affine if it is valid and its last row is [0, 0, 0, 1]. An affine transformation can be broken into a linear transformation and a translation.",
        "since": "6.12",
        "property": ["get"]
      },
      {
        "signature": "bool IsIdentity",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Return True if this Transform is the identity transform",
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "bool IsLinear",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Tests for a linear transformation. A transformation is affine if it is valid and its last row is [0, 0, 0, 1]. If in addition its last column is ( 0, 0, 0, 1)^T then it is linear. An affine transformation can be broken into a linear transformation and a translation.",
        "since": "6.12",
        "property": ["get"]
      },
      {
        "signature": "bool IsRotation",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns True if this is a proper rotation.",
        "since": "6.12",
        "property": ["get"]
      },
      {
        "signature": "bool IsValid",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets a value indicating whether or not this Transform is a valid matrix. A valid transform matrix is not allowed to have any invalid numbers.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "bool IsZero",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "True if matrix is Zero4x4, ZeroTransformation, or some other type of zero. The value xform[3][3] can be anything.",
        "since": "6.1",
        "property": ["get"]
      },
      {
        "signature": "bool IsZero4x4",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "True if all values are 0",
        "since": "6.1",
        "property": ["get"]
      },
      {
        "signature": "bool IsZeroTransformation",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "True if all values are 0, except for M33 which is 1.",
        "since": "6.1",
        "property": ["get"]
      },
      {
        "signature": "double M00",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets this[0,0].",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "double M01",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets this[0,1].",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "double M02",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets this[0,2].",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "double M03",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets this[0,3].",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "double M10",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets this[1,0].",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "double M11",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets this[1,1].",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "double M12",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets this[1,2].",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "double M13",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets this[1,3].",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "double M20",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets this[2,0].",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "double M21",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets this[2,1].",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "double M22",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets this[2,2].",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "double M23",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets this[2,3].",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "double M30",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets this[3,0].",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "double M31",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets this[3,1].",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "double M32",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets this[3,2].",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "double M33",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets this[3,3].",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "TransformRigidType RigidType",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets a value indicating whether or not the Transform is rigid. A rigid transformation can be broken into  a proper rotation and a translation, while an isometry transformation could also include a reflection.",
        "since": "6.12",
        "property": ["get"]
      },
      {
        "signature": "TransformSimilarityType SimilarityType",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets a value indicating whether or not the Transform maintains similarity. The easiest way to think of Similarity is that any circle, when transformed, remains a circle. Whereas a non-similarity Transform deforms circles into ellipses.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "double this[int row]",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the matrix value at the given row and column indices."
      }
    ],
    "methods": [
      {
        "signature": "Transform ChangeBasis(Plane plane0, Plane plane1)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Gets a change of basis transformation. The change of basis transformation is not the same as the rotation transformation that rotates one orthonormal frame to another. If you have geometry defined with respect to planes, this method takes two planes and computes the transformation to change coordinates from one plane to another.",
        "since": "5.0",
    "remarks": "Change of basis transformations and rotation transformations are often confused. This is a change of basis transformation. If Q = P0 + a0*X0 + b0*Y0 + c0*Z0 = P1 + a1*X1 + b1*Y1 + c1*Z1, then this transform will map the coordinates (a0,b0,c0) to (a1,b1,c1).",
        "parameters": [
          {
            "name": "plane0",
            "type": "Plane",
            "summary": "Coordinate system in which the geometry is currently described."
          },
          {
            "name": "plane1",
            "type": "Plane",
            "summary": "Target coordinate system in which we want the geometry to be described."
          }
        ],
        "returns": "A change of basis transformation if success, <b>Transform.Unset</b> on failure."
      },
      {
        "signature": "Transform ChangeBasis(Point3d P0, Vector3d X0, Vector3d Y0, Vector3d Z0, Point3d P1, Vector3d X1, Vector3d Y1, Vector3d Z1)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Gets a change of basis transformation. The change of basis transformation is not the same as the rotation transformation that rotates one orthonormal frame to another.",
        "since": "8.17",
    "remarks": "Change of basis transformations and rotation transformations are often confused. This is a change of basis transformation. If Q = P0 + a0*X0 + b0*Y0 + c0*Z0 = P1 + a1*X1 + b1*Y1 + c1*Z1, then this transform will map the point (a0,b0,c0) to (a1,b1,c1).",
        "parameters": [
          {
            "name": "P0",
            "type": "Point3d",
            "summary": "Initial center."
          },
          {
            "name": "X0",
            "type": "Vector3d",
            "summary": "Initial basis X (can be any 3d basis)."
          },
          {
            "name": "Y0",
            "type": "Vector3d",
            "summary": "Initial basis Y (can be any 3d basis)."
          },
          {
            "name": "Z0",
            "type": "Vector3d",
            "summary": "Initial basis Z (can be any 3d basis)."
          },
          {
            "name": "P1",
            "type": "Point3d",
            "summary": "Final center."
          },
          {
            "name": "X1",
            "type": "Vector3d",
            "summary": "Final basis X (can be any 3d basis)."
          },
          {
            "name": "Y1",
            "type": "Vector3d",
            "summary": "Final basis Y (can be any 3d basis)."
          },
          {
            "name": "Z1",
            "type": "Vector3d",
            "summary": "Final basis Z (can be any 3d basis)."
          }
        ],
        "returns": "A change of basis transformation if success, <b>Transform.Unset</b> on failure."
      },
      {
        "signature": "Transform ChangeBasis(Vector3d X0, Vector3d Y0, Vector3d Z0, Vector3d X1, Vector3d Y1, Vector3d Z1)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Gets a change of basis transformation. The change of basis transformation is not the same as the rotation transformation that rotates one orthonormal frame to another.",
        "since": "5.0",
    "remarks": "Change of basis transformations and rotation transformations are often confused. This is a change of basis transformation. If Q = a0*X0 + b0*Y0 + c0*Z0 = a1*X1 + b1*Y1 + c1*Z1, then this transform will map the point (a0,b0,c0) to (a1,b1,c1).",
        "parameters": [
          {
            "name": "X0",
            "type": "Vector3d",
            "summary": "Initial basis X (can be any 3d basis)."
          },
          {
            "name": "Y0",
            "type": "Vector3d",
            "summary": "Initial basis Y (can be any 3d basis)."
          },
          {
            "name": "Z0",
            "type": "Vector3d",
            "summary": "Initial basis Z (can be any 3d basis)."
          },
          {
            "name": "X1",
            "type": "Vector3d",
            "summary": "Final basis X (can be any 3d basis)."
          },
          {
            "name": "Y1",
            "type": "Vector3d",
            "summary": "Final basis Y (can be any 3d basis)."
          },
          {
            "name": "Z1",
            "type": "Vector3d",
            "summary": "Final basis Z (can be any 3d basis)."
          }
        ],
        "returns": "A change of basis transformation if success, <b>Transform.Unset</b> on failure."
      },
      {
        "signature": "Transform Diagonal(System.Double d0, System.Double d1, System.Double d2)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Constructs a new transformation with diagonal (d0,d1,d2,1.0).",
        "since": "6.12",
        "parameters": [
          {
            "name": "d0",
            "type": "System.Double",
            "summary": "Transform.M00 value."
          },
          {
            "name": "d1",
            "type": "System.Double",
            "summary": "Transform.M11 value."
          },
          {
            "name": "d2",
            "type": "System.Double",
            "summary": "Transform.M22 value."
          }
        ],
        "returns": "A transformation with diagonal (d0,d1,d2,1.0)."
      },
      {
        "signature": "Transform Diagonal(Vector3d diagonal)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Constructs a new transformation with diagonal (d0,d1,d2,1.0).",
        "since": "6.12",
        "parameters": [
          {
            "name": "diagonal",
            "type": "Vector3d",
            "summary": "The diagonal values."
          }
        ],
        "returns": "A transformation with diagonal (d0,d1,d2,1.0)."
      },
      {
        "signature": "Transform Mirror(Plane mirrorPlane)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Constructs a new Mirror transformation.",
        "since": "5.0",
        "parameters": [
          {
            "name": "mirrorPlane",
            "type": "Plane",
            "summary": "Plane that defines the mirror orientation and position."
          }
        ],
        "returns": "A transformation matrix which mirrors geometry in a specified plane."
      },
      {
        "signature": "Transform Mirror(Point3d pointOnMirrorPlane, Vector3d normalToMirrorPlane)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Create mirror transformation matrix The mirror transform maps a point Q to Q - (2*(Q-P)oN)*N, where P = pointOnMirrorPlane and N = normalToMirrorPlane.",
        "since": "5.0",
        "parameters": [
          {
            "name": "pointOnMirrorPlane",
            "type": "Point3d",
            "summary": "Point on the mirror plane."
          },
          {
            "name": "normalToMirrorPlane",
            "type": "Vector3d",
            "summary": "Normal vector to the mirror plane."
          }
        ],
        "returns": "A transformation matrix which mirrors geometry in a specified plane."
      },
      {
        "signature": "Transform Multiply(Transform a, Transform b)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Multiplies (combines) two transformations.  \nThis is the same as the * operator between two transformations.",
        "since": "5.0",
        "parameters": [
          {
            "name": "a",
            "type": "Transform",
            "summary": "First transformation."
          },
          {
            "name": "b",
            "type": "Transform",
            "summary": "Second transformation."
          }
        ],
        "returns": "A transformation matrix that combines the effect of both input transformations. The resulting Transform gives the same result as though you'd first apply B then A."
      },
      {
        "signature": "Transform PlanarProjection(Plane plane)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Constructs a projection transformation.",
        "since": "5.0",
        "parameters": [
          {
            "name": "plane",
            "type": "Plane",
            "summary": "Plane onto which everything will be perpendicularly projected."
          }
        ],
        "returns": "A transformation matrix which projects geometry onto a specified plane."
      },
      {
        "signature": "Transform PlaneToPlane(Plane plane0, Plane plane1)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Create a rotation transformation that orients plane0 to plane1. If you want to orient objects from one plane to another, use this form of transformation.",
        "since": "5.0",
        "parameters": [
          {
            "name": "plane0",
            "type": "Plane",
            "summary": "The plane to orient from."
          },
          {
            "name": "plane1",
            "type": "Plane",
            "summary": "the plane to orient to."
          }
        ],
        "returns": "The translation transformation if successful, Transform.Unset on failure."
      },
      {
        "signature": "Transform ProjectAlong(Plane plane, Vector3d direction)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Construct a projection onto a plane along a specific direction.",
        "since": "6.0",
        "parameters": [
          {
            "name": "plane",
            "type": "Plane",
            "summary": "Plane to project onto."
          },
          {
            "name": "direction",
            "type": "Vector3d",
            "summary": "Projection direction, must not be parallel to the plane."
          }
        ],
        "returns": "Projection transformation or identity transformation if projection could not be calculated."
      },
      {
        "signature": "Transform Rotation(System.Double angleRadians, Point3d rotationCenter)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Constructs a new rotation transformation with specified angle and rotation center. The axis of rotation is <b>Vector3d.ZAxis</b> .",
        "since": "5.0",
        "parameters": [
          {
            "name": "angleRadians",
            "type": "System.Double",
            "summary": "Rotation angle in radians."
          },
          {
            "name": "rotationCenter",
            "type": "Point3d",
            "summary": "3D center of rotation."
          }
        ],
        "returns": "A rotation transformation matrix."
      },
      {
        "signature": "Transform Rotation(System.Double sinAngle, System.Double cosAngle, Vector3d rotationAxis, Point3d rotationCenter)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Constructs a new rotation transformation with specified angle, rotation center and rotation axis.",
        "since": "5.0",
        "parameters": [
          {
            "name": "sinAngle",
            "type": "System.Double",
            "summary": "Sine of the rotation angle."
          },
          {
            "name": "cosAngle",
            "type": "System.Double",
            "summary": "Cosine of the rotation angle."
          },
          {
            "name": "rotationAxis",
            "type": "Vector3d",
            "summary": "3D unit axis of rotation."
          },
          {
            "name": "rotationCenter",
            "type": "Point3d",
            "summary": "3D center of rotation."
          }
        ],
        "returns": "A rotation transformation matrix."
      },
      {
        "signature": "Transform Rotation(System.Double angleRadians, Vector3d rotationAxis, Point3d rotationCenter)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Constructs a new rotation transformation with specified angle, rotation center and rotation axis.",
        "since": "5.0",
        "parameters": [
          {
            "name": "angleRadians",
            "type": "System.Double",
            "summary": "Rotation angle in radians."
          },
          {
            "name": "rotationAxis",
            "type": "Vector3d",
            "summary": "3D unit axis of rotation."
          },
          {
            "name": "rotationCenter",
            "type": "Point3d",
            "summary": "3D center of rotation."
          }
        ],
        "returns": "A rotation transformation matrix."
      },
      {
        "signature": "Transform Rotation(Vector3d startDirection, Vector3d endDirection, Point3d rotationCenter)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Constructs a new rotation transformation with start and end directions and rotation center.",
        "since": "5.0",
        "parameters": [
          {
            "name": "startDirection",
            "type": "Vector3d",
            "summary": "A start direction."
          },
          {
            "name": "endDirection",
            "type": "Vector3d",
            "summary": "An end direction."
          },
          {
            "name": "rotationCenter",
            "type": "Point3d",
            "summary": "3D center of rotation."
          }
        ],
        "returns": "A rotation transformation matrix."
      },
      {
        "signature": "Transform Rotation(Vector3d x0, Vector3d y0, Vector3d z0, Vector3d x1, Vector3d y1, Vector3d z1)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Constructs a transformation that maps X0 to X1, Y0 to Y1, Z0 to Z1. The frames should be right hand orthonormal frames (unit vectors with Z = X x Y). The resulting rotation fixes the origin (0,0,0), maps initial X to final X, initial Y to final Y, and initial Z to final Z.",
        "since": "5.0",
        "parameters": [
          {
            "name": "x0",
            "type": "Vector3d",
            "summary": "Initial frame X."
          },
          {
            "name": "y0",
            "type": "Vector3d",
            "summary": "Initial frame Y."
          },
          {
            "name": "z0",
            "type": "Vector3d",
            "summary": "Initial frame Z."
          },
          {
            "name": "x1",
            "type": "Vector3d",
            "summary": "Final frame X."
          },
          {
            "name": "y1",
            "type": "Vector3d",
            "summary": "Final frame Y."
          },
          {
            "name": "z1",
            "type": "Vector3d",
            "summary": "Final frame Z."
          }
        ],
        "returns": "A rotation transformation matrix."
      },
      {
        "signature": "Transform RotationZYX(System.Double yaw, System.Double pitch, System.Double roll)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Create rotation transformation From Tait-Byran angles (also loosely known as Euler angles).",
        "since": "6.11",
    "remarks": "RotationZYX(yaw, pitch, roll) = R_z(yaw) * R_y(pitch) * R_x(roll) where R_*(angle) is rotation of angle radians about the corresponding world coordinate axis.",
        "parameters": [
          {
            "name": "yaw",
            "type": "System.Double",
            "summary": "Angle, in radians, to rotate about the Z axis."
          },
          {
            "name": "pitch",
            "type": "System.Double",
            "summary": "Angle, in radians, to rotate about the Y axis."
          },
          {
            "name": "roll",
            "type": "System.Double",
            "summary": "Angle, in radians, to rotate about the X axis."
          }
        ],
        "returns": "A transform matrix from Tait-Byran angles."
      },
      {
        "signature": "Transform RotationZYZ(System.Double alpha, System.Double beta, System.Double gamma)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Create rotation transformation From Euler angles.",
        "since": "6.11",
    "remarks": "RotationZYZ(alpha, beta, gamma) = R_z(alpha) * R_y(beta) * R_z(gamma) where R_*(angle) is rotation of angle radians about the corresponding *-world coordinate axis. Note, alpha and gamma are in the range (-pi, pi] while beta in the range [0, pi]",
        "parameters": [
          {
            "name": "alpha",
            "type": "System.Double",
            "summary": "Angle, in radians, to rotate about the Z axis."
          },
          {
            "name": "beta",
            "type": "System.Double",
            "summary": "Angle, in radians, to rotate about the Y axis."
          },
          {
            "name": "gamma",
            "type": "System.Double",
            "summary": "Angle, in radians, to rotate about the X axis."
          }
        ],
        "returns": "A transform matrix from Euler angles."
      },
      {
        "signature": "Transform Scale(Plane plane, System.Double xScaleFactor, System.Double yScaleFactor, System.Double zScaleFactor)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Constructs a new non-uniform scaling transformation with a specified scaling anchor point.",
        "since": "5.0",
        "parameters": [
          {
            "name": "plane",
            "type": "Plane",
            "summary": "Defines the center and orientation of the scaling operation."
          },
          {
            "name": "xScaleFactor",
            "type": "System.Double",
            "summary": "Scaling factor along the anchor plane X-Axis direction."
          },
          {
            "name": "yScaleFactor",
            "type": "System.Double",
            "summary": "Scaling factor along the anchor plane Y-Axis direction."
          },
          {
            "name": "zScaleFactor",
            "type": "System.Double",
            "summary": "Scaling factor along the anchor plane Z-Axis direction."
          }
        ],
        "returns": "A transformation matrix which scales geometry non-uniformly."
      },
      {
        "signature": "Transform Scale(Point3d anchor, System.Double scaleFactor)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Constructs a new uniform scaling transformation with a specified scaling anchor point.",
        "since": "5.0",
        "parameters": [
          {
            "name": "anchor",
            "type": "Point3d",
            "summary": "Defines the anchor point of the scaling operation."
          },
          {
            "name": "scaleFactor",
            "type": "System.Double",
            "summary": "Scaling factor in all directions."
          }
        ],
        "returns": "A transform matrix which scales geometry uniformly around the anchor point."
      },
      {
        "signature": "Transform Shear(Plane plane, Vector3d x, Vector3d y, Vector3d z)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Constructs a Shear transformation.",
        "since": "5.0",
        "parameters": [
          {
            "name": "plane",
            "type": "Plane",
            "summary": "Base plane for shear."
          },
          {
            "name": "x",
            "type": "Vector3d",
            "summary": "Shearing vector along plane x-axis."
          },
          {
            "name": "y",
            "type": "Vector3d",
            "summary": "Shearing vector along plane y-axis."
          },
          {
            "name": "z",
            "type": "Vector3d",
            "summary": "Shearing vector along plane z-axis."
          }
        ],
        "returns": "A transformation matrix which shear geometry."
      },
      {
        "signature": "Transform TextureMapping(Vector3d offset, Vector3d repeat, Vector3d rotation)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Construct a UVW Transform from components.",
        "since": "8.0"
      },
      {
        "signature": "Transform Translation(System.Double dx, System.Double dy, System.Double dz)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Constructs a new translation (move) transformation. Right column is (dx, dy, dz, 1.0).",
        "since": "5.0",
        "parameters": [
          {
            "name": "dx",
            "type": "System.Double",
            "summary": "Distance to translate (move) geometry along the world X axis."
          },
          {
            "name": "dy",
            "type": "System.Double",
            "summary": "Distance to translate (move) geometry along the world Y axis."
          },
          {
            "name": "dz",
            "type": "System.Double",
            "summary": "Distance to translate (move) geometry along the world Z axis."
          }
        ],
        "returns": "A transform matrix which moves geometry with the specified distances."
      },
      {
        "signature": "Transform Translation(Vector3d motion)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Constructs a new translation (move) transformation.",
        "since": "5.0",
        "parameters": [
          {
            "name": "motion",
            "type": "Vector3d",
            "summary": "Translation (motion) vector."
          }
        ],
        "returns": "A transform matrix which moves geometry along the motion vector."
      },
      {
        "signature": "System.Void Affineize()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Replaces the last row with (0 0 0 1), discarding any perspective part of this transform",
        "since": "6.12"
      },
      {
        "signature": "Transform Clone()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns a deep copy of the transform. For languages that treat structures as value types, this can be accomplished by a simple assignment.",
        "since": "6.0",
        "returns": "A deep copy of this data structure."
      },
      {
        "signature": "System.Int32 CompareTo(Transform other)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Compares this transform with another transform.  \nM33 has highest value, then M32, etc..",
        "since": "5.0",
        "parameters": [
          {
            "name": "other",
            "type": "Transform",
            "summary": "Another transform."
          }
        ],
        "returns": "-1 if this < other; 0 if both are equal; 1 otherwise."
      },
      {
        "signature": "System.Boolean DecomposeAffine(out Transform linear, out Vector3d translation)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Decomposes an affine transformation. A transformation is affine if it is valid and its last row is [0, 0, 0, 1]. An affine transformation can be broken into a linear transformation and a translation. Note, a perspective transformation is not affine.",
        "since": "6.12",
    "remarks": "If X.DecomposeAffine(L, T) is True then X == L* Translation(T). DecomposeAffine(L, T) may fail for affine transformations if L is not invertible, and is more computationally expensive then X.DecomposeAffine(T, L).",
        "parameters": [
          {
            "name": "linear",
            "type": "Transform",
            "summary": "Linear transformation."
          },
          {
            "name": "translation",
            "type": "Vector3d",
            "summary": "Translation vector."
          }
        ],
        "returns": "True if successful decomposition."
      },
      {
        "signature": "System.Boolean DecomposeAffine(out Vector3d translation, out Transform rotation, out Transform orthogonal, out Vector3d diagonal)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "An affine transformation can be decomposed into a Symmetric, Rotation and Translation. Then the Symmetric component may be further decomposed as non-uniform scale in an orthonormal coordinate system.",
        "since": "6.12",
        "parameters": [
          {
            "name": "translation",
            "type": "Vector3d",
            "summary": "Translation vector."
          },
          {
            "name": "rotation",
            "type": "Transform",
            "summary": "Proper rotation transformation."
          },
          {
            "name": "orthogonal",
            "type": "Transform",
            "summary": "Orthogonal basis."
          },
          {
            "name": "diagonal",
            "type": "Vector3d",
            "summary": "Diagonal elements of a Diagonal transformation."
          }
        ],
        "returns": "True if successful decomposition."
      },
      {
        "signature": "System.Boolean DecomposeAffine(out Vector3d translation, out Transform linear)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Decomposes an affine transformation. A transformation is affine if it is valid and its last row is [0, 0, 0, 1]. An affine transformation can be broken into a linear transformation and a translation. Note, a perspective transformation is not affine.",
        "since": "6.12",
    "remarks": "If X.DecomposeAffine(T, L) is True then X == Translation(T)*L. DecomposeAffine(T,L) succeeds for all affine transformations and is a simple copying of values.",
        "parameters": [
          {
            "name": "translation",
            "type": "Vector3d",
            "summary": "Translation vector."
          },
          {
            "name": "linear",
            "type": "Transform",
            "summary": "Linear transformation."
          }
        ],
        "returns": "True if successful decomposition."
      },
      {
        "signature": "TransformRigidType DecomposeRigid(out Vector3d translation, out Transform rotation, System.Double tolerance)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Decomposes a rigid transformation. The transformation must be affine.",
        "since": "6.12",
    "remarks": "If X.DecomposeRigid(T, R) is 1, then X ~ Translation(T)*R. If X.DecomposeRigid(T, R) is -1, then X ~ Transform(-1) * Translation(T)*R. DecomposeRigid will find the closest rotation to the linear part of this transformation.",
        "parameters": [
          {
            "name": "translation",
            "type": "Vector3d",
            "summary": "Translation vector."
          },
          {
            "name": "rotation",
            "type": "Transform",
            "summary": "Proper rotation transformation, where R*Transpose(R)=I and det(R)=1."
          },
          {
            "name": "tolerance",
            "type": "System.Double",
            "summary": "The evaluation tolerance."
          }
        ],
        "returns": "The rigid type."
      },
      {
        "signature": "TransformSimilarityType DecomposeSimilarity(out Vector3d translation, out System.Double dilation, out Transform rotation, System.Double tolerance)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Decomposes a similarity transformation. The transformation must be affine. A similarity transformation can be broken into a sequence of a dilation, translation, rotation, and a reflection.",
        "since": "6.12",
    "remarks": "If X.DecomposeSimilarity(T, d, R, tol) !=0 then X ~ Translation(T)*Diagonal(d)*R note when d gt;0 the transformation is orientation preserving. If dilation lt; 0 then Diagonal(dilation) is actually a reflection combined with a True dilation, or Diagonal(dilation) = Diagonal(-1) * Diagonal(|diagonal|).",
        "parameters": [
          {
            "name": "translation",
            "type": "Vector3d",
            "summary": "Translation vector."
          },
          {
            "name": "dilation",
            "type": "System.Double",
            "summary": "Dilation, where dilation lt; 0 if this is an orientation reversing similarity."
          },
          {
            "name": "rotation",
            "type": "Transform",
            "summary": "A proper rotation transformation, where R*Transpose(R)=I and Determinant(R)=1."
          },
          {
            "name": "tolerance",
            "type": "System.Double",
            "summary": "The evaluation tolerance."
          }
        ],
        "returns": "The similarity type."
      },
      {
        "signature": "System.Boolean DecomposeSymmetric(out Transform matrix, out Vector3d diagonal)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "A Symmetric linear transformation can be decomposed A = Q * Diag * Q ^ T, where Diag is a diagonal transformation. Diag[i][i] is an eigenvalue of A and the i-th column of Q is a corresponding unit length eigenvector. Note, this transformation must be Linear and Symmetric.",
        "since": "6.12",
    "remarks": "If success, this== Q*Diagonal(diagonal) * QT, where QT == Q.Transpose(). If L.IsLinear and LT==L.Transpose then LT*L is symmetric and is a common source of symmetric transformations.",
        "parameters": [
          {
            "name": "matrix",
            "type": "Transform",
            "summary": "An orthonormal matrix of eigenvectors (Q)."
          },
          {
            "name": "diagonal",
            "type": "Vector3d",
            "summary": "A vector of eigenvalues."
          }
        ],
        "returns": "True if successful, False otherwise."
      },
      {
        "signature": "System.Void DecomposeTextureMapping(out Vector3d offset, out Vector3d repeat, out Vector3d rotation)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Decomposition of a uvw transform into components",
        "since": "8.0",
        "parameters": [
          {
            "name": "offset",
            "type": "Vector3d",
            "summary": "Offset"
          },
          {
            "name": "repeat",
            "type": "Vector3d",
            "summary": "Repear"
          },
          {
            "name": "rotation",
            "type": "Vector3d",
            "summary": "Rotation"
          }
        ]
      },
      {
        "signature": "System.Boolean Equals(System.Object obj)",
        "modifiers": ["public", "override"],
        "protected": false,
        "virtual": false,
        "summary": "Determines if another object is a transform and its value equals this transform value.",
        "parameters": [
          {
            "name": "obj",
            "type": "System.Object",
            "summary": "Another object."
          }
        ],
        "returns": "True if obj is a transform and has the same value as this transform; otherwise, false."
      },
      {
        "signature": "System.Boolean Equals(Transform other)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Determines if another transform equals this transform value.",
        "since": "5.0",
        "parameters": [
          {
            "name": "other",
            "type": "Transform",
            "summary": "Another transform."
          }
        ],
        "returns": "True if other has the same value as this transform; otherwise, false."
      },
      {
        "signature": "System.Boolean GetEulerZYZ(out System.Double alpha, out System.Double beta, out System.Double gamma)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Find the Euler angles for a rotation transformation.",
        "since": "6.11",
    "remarks": "Note, alpha and gamma are in the range (-pi, pi] while beta in the range [0, pi]",
        "parameters": [
          {
            "name": "alpha",
            "type": "System.Double",
            "summary": "Angle of rotation, in radians, about the Z axis."
          },
          {
            "name": "beta",
            "type": "System.Double",
            "summary": "Angle of rotation, in radians, about the Y axis."
          },
          {
            "name": "gamma",
            "type": "System.Double",
            "summary": "Angle of rotation, in radians, about the Z axis."
          }
        ],
        "returns": "If true, then this = RotationZYZ(alpha, beta, gamma) = R_z(alpha) * R_y(beta) * R_z(gamma) where R_*(angle) is rotation of angle radians about the corresponding *-world coordinate axis. If false, then this is not a rotation."
      },
      {
        "signature": "System.Int32 GetHashCode()",
        "modifiers": ["public", "override"],
        "protected": false,
        "virtual": false,
        "summary": "Gets a non-unique hashing code for this transform.",
        "returns": "A number that can be used to hash this transform in a dictionary."
      },
      {
        "signature": "System.Boolean GetQuaternion(out Quaternion quaternion)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "If this transform is a proper rotation, then find the equivalent quaternion.",
        "since": "7.12",
        "parameters": [
          {
            "name": "quaternion",
            "type": "Quaternion",
            "summary": "Quaternion that represents this rotation transformation."
          }
        ],
        "returns": "True if this transform is a proper rotation, False otherwise."
      },
      {
        "signature": "System.Boolean GetYawPitchRoll(out System.Double yaw, out System.Double pitch, out System.Double roll)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Find the Tait-Byran angles (also loosely called Euler angles) for a rotation transformation.",
        "since": "6.11",
        "parameters": [
          {
            "name": "yaw",
            "type": "System.Double",
            "summary": "Angle of rotation, in radians, about the Z axis."
          },
          {
            "name": "pitch",
            "type": "System.Double",
            "summary": "Angle of rotation, in radians, about the Y axis."
          },
          {
            "name": "roll",
            "type": "System.Double",
            "summary": "Angle of rotation, in radians, about the X axis."
          }
        ],
        "returns": "If true, then this = RotationZYX(yaw, pitch, roll) = R_z(yaw) * R_y(pitch) * R_x(roll) where R_*(angle) is rotation of angle radians about the corresponding world coordinate axis. If false, then this is not a rotation."
      },
      {
        "signature": "TransformRigidType IsRigid(System.Double tolerance)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets a value indicating whether or not the Transform is rigid. A rigid transformation can be broken into  a proper rotation and a translation, while an isometry transformation could also include a reflection.",
        "since": "6.12",
        "parameters": [
          {
            "name": "tolerance",
            "type": "System.Double",
            "summary": "The evaluation tolerance."
          }
        ],
        "returns": "The rigid type."
      },
      {
        "signature": "TransformSimilarityType IsSimilarity(System.Double tolerance)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets a value indicating whether or not the Transform maintains similarity. A similarity transformation can be broken into a sequence of a dilation, translation, rotation, and a reflection.",
        "since": "6.12",
        "parameters": [
          {
            "name": "tolerance",
            "type": "System.Double",
            "summary": "The evaluation tolerance."
          }
        ],
        "returns": "The similarity type."
      },
      {
        "signature": "System.Boolean IsUniformlyScaled()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Determines if this transform is uniformly scaled.",
        "since": "9.0",
        "returns": "True if uniformly scaled, False otherwise."
      },
      {
        "signature": "System.Boolean IsZeroTransformationWithTolerance(System.Double zeroTolerance)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "True if all values are 0 within tolerance, except for M33 which is exactly 1.",
        "since": "7.1",
        "parameters": [
          {
            "name": "zeroTolerance",
            "type": "System.Double",
            "summary": "The tolerance for 0 elements."
          }
        ],
        "returns": "True if the transformation matrix is ON_Xform::ZeroTransformation, with xform[3][3] equal to 1: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1  An element x of the matrix is \"zero\" if fabs(x) ≤ zeroTolerance. IsZeroTransformation is the same as IsZeroTransformationWithTolerance(0.0)"
      },
      {
        "signature": "System.Boolean IsZeroTransformaton(System.Double zeroTolerance)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "True if all values are 0 within tolerance, except for M33 which is exactly 1.",
        "since": "6.12",
        "deprecated": "7.1",
        "obsolete": "This method remains with a typo in its name for backwards compatibility. Use IsZeroTransformationWithTolerance instead.",
        "parameters": [
          {
            "name": "zeroTolerance",
            "type": "System.Double",
            "summary": "The zero tolerance."
          }
        ],
        "returns": "Returns True if all values are 0 within tolerance, except for M33 which is exactly 1."
      },
      {
        "signature": "System.Void Linearize()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Affinitize() and replaces the last column with (0 0 0 1)^T, discarding any translation part of this transform.",
        "since": "6.12"
      },
      {
        "signature": "System.Boolean Orthogonalize(System.Double tolerance)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Force the linear part of this transformation to be a rotation (or a rotation with reflection). Use DecomposeRigid(T,R) to find the nearest rotation.",
        "since": "6.12",
        "parameters": [
          {
            "name": "tolerance",
            "type": "System.Double",
            "summary": "The evaluation tolerance"
          }
        ],
        "returns": "True if successful, False otherwise."
      },
      {
        "signature": "System.Double[] ToDoubleArray(System.Boolean rowDominant)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Return the matrix as a linear array of 16 double values.",
        "since": "8.0",
        "parameters": [
          {
            "name": "rowDominant",
            "type": "System.Boolean",
            "summary": "If true, returns { M00, M01, M02...}. If false, returns { M00, M10, M20...}."
          }
        ],
        "returns": "An array of 16 doubles."
      },
      {
        "signature": "System.Single[] ToFloatArray(System.Boolean rowDominant)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Return the matrix as a linear array of 16 float values.",
        "since": "5.9",
        "parameters": [
          {
            "name": "rowDominant",
            "type": "System.Boolean",
            "summary": "If true, returns { M00, M01, M02...}. If false, returns { M00, M10, M20...}."
          }
        ],
        "returns": "An array of 16 floats."
      },
      {
        "signature": "System.String ToString()",
        "modifiers": ["public", "override"],
        "protected": false,
        "virtual": false,
        "summary": "Returns a string representation of this transform.",
        "returns": "A textual representation."
      },
      {
        "signature": "BoundingBox TransformBoundingBox(BoundingBox bbox)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Computes a new bounding box that is the smallest axis aligned bounding box that contains the transformed result of its 8 original corner points.",
        "since": "5.0",
        "returns": "A new bounding box."
      },
      {
        "signature": "Point3d[] TransformList(IEnumerable<Point3d> points)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Given a list, an array or any enumerable set of points, computes a new array of transformed points.",
        "since": "5.0",
        "parameters": [
          {
            "name": "points",
            "type": "System.Collections.Generic.IEnumerable<Point3d>",
            "summary": "A list, an array or any enumerable set of points to be left untouched and copied."
          }
        ],
        "returns": "A new array."
      },
      {
        "signature": "Transform Transpose()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Flip row/column values",
        "since": "5.9"
      },
      {
        "signature": "System.Boolean TryGetInverse(out Transform inverseTransform)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Attempts to get the inverse transform of this transform.",
        "since": "5.0",
        "parameters": [
          {
            "name": "inverseTransform",
            "type": "Transform",
            "summary": "The inverse transform. This out reference will be assigned during this call."
          }
        ],
        "returns": "True on success. If False is returned and this Transform is Invalid, inserveTransform will be set to this Transform. If False is returned and this Transform is Valid, inverseTransform will be set to a pseudo inverse."
      }
    ],
    "operators": [
      {
        "signature": "bool operator !=(Transform a, Transform b)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Determines if two transformations are different in value.",
        "since": "5.0",
        "parameters": [
          {
            "name": "a",
            "type": "Transform",
            "summary": "A transform."
          },
          {
            "name": "b",
            "type": "Transform",
            "summary": "Another transform."
          }
        ]
      },
      {
        "signature": "bool operator ==(Transform a, Transform b)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Determines if two transformations are equal in value.",
        "since": "5.0",
        "parameters": [
          {
            "name": "a",
            "type": "Transform",
            "summary": "A transform."
          },
          {
            "name": "b",
            "type": "Transform",
            "summary": "Another transform."
          }
        ]
      },
      {
        "signature": "Point3d operator *(Transform m, Point3d p)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Multiplies a transformation by a point and gets a new point.",
        "since": "5.0",
    "remarks": "Note well: The right hand column and bottom row have an important effect when transforming a Euclidean point and have no effect when transforming a vector. Be sure you understand the differences between vectors and points when applying a 4x4 transformation.",
        "parameters": [
          {
            "name": "m",
            "type": "Transform",
            "summary": "A transformation."
          },
          {
            "name": "p",
            "type": "Point3d",
            "summary": "A point."
          }
        ]
      },
      {
        "signature": "Transform operator *(Transform a, Transform b)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Multiplies (combines) two transformations.",
        "since": "5.0",
        "parameters": [
          {
            "name": "a",
            "type": "Transform",
            "summary": "First transformation."
          },
          {
            "name": "b",
            "type": "Transform",
            "summary": "Second transformation."
          }
        ]
      },
      {
        "signature": "Vector3d operator *(Transform m, Vector3d v)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Multiplies a transformation by a vector and gets a new vector.",
        "since": "5.0",
    "remarks": "Note well: The right hand column and bottom row have an important effect when transforming a Euclidean point and have no effect when transforming a vector. Be sure you understand the differences between vectors and points when applying a 4x4 transformation.",
        "parameters": [
          {
            "name": "m",
            "type": "Transform",
            "summary": "A transformation."
          },
          {
            "name": "v",
            "type": "Vector3d",
            "summary": "A vector."
          }
        ]
      }
    ]

  },
  {
    "namespace": "Rhino.Geometry",
    "name": "TransformRigidType",
    "dataType": "enum",
    "summary": "Lists all possible outcomes for rigid transformation.",
    "since": "6.12",
    "values": [
      {
        "signature": "RigidReversing = -1",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Transformation is an orientation reversing isometry."
      },
      {
        "signature": "NotRigid = 0",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Transformation is not an orthogonal transformation."
      },
      {
        "signature": "Rigid = 1",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Transformation is an rigid transformation."
      }
    ]

  },
  {
    "namespace": "Rhino.Geometry",
    "name": "TransformSimilarityType",
    "dataType": "enum",
    "summary": "Lists all possible outcomes for transform similarity.",
    "since": "5.0",
    "values": [
      {
        "signature": "OrientationReversing = -1",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Similarity is preserved, but orientation is flipped."
      },
      {
        "signature": "NotSimilarity = 0",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Similarity is not preserved. Geometry needs to be deformable for this Transform to operate correctly."
      },
      {
        "signature": "OrientationPreserving = 1",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Similarity and orientation are preserved."
      }
    ]

  },
  {
    "namespace": "Rhino.Geometry",
    "name": "Triangle3d",
    "dataType": "struct",
    "summary": "Represents a triangle, modeled using double three points that use double-precision floating point numbers.",
    "constructors": [
      {
        "signature": "Triangle3d(Point3d a, Point3d b, Point3d c)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Instantiates a new triangle.",
        "since": "7.1",
        "parameters": [
          {
            "name": "a",
            "type": "Point3d",
            "summary": "First point."
          },
          {
            "name": "b",
            "type": "Point3d",
            "summary": "Second point."
          },
          {
            "name": "c",
            "type": "Point3d",
            "summary": "Third point."
          }
        ]
      }
    ],
    "properties": [
      {
        "signature": "Point3d A",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the first triangle corner.",
        "since": "7.1",
        "property": ["get"]
      },
      {
        "signature": "Line AB",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the triangle edge connecting the A and B corners.",
        "since": "7.1",
        "property": ["get"]
      },
      {
        "signature": "Line AltitudeA",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the altitude line starting at corner A.",
        "since": "7.1",
        "property": ["get"]
      },
      {
        "signature": "Line AltitudeB",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the altitude line starting at corner B.",
        "since": "7.1",
        "property": ["get"]
      },
      {
        "signature": "Line AltitudeC",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the altitude line starting at corner C.",
        "since": "7.1",
        "property": ["get"]
      },
      {
        "signature": "double AngleA",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the angle at the A corner.",
        "since": "7.1",
        "property": ["get"]
      },
      {
        "signature": "double AngleB",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the angle at the B corner.",
        "since": "7.1",
        "property": ["get"]
      },
      {
        "signature": "double AngleC",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the angle at the C corner.",
        "since": "7.1",
        "property": ["get"]
      },
      {
        "signature": "double Area",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the area inside this triangle.",
        "since": "7.1",
        "property": ["get"]
      },
      {
        "signature": "Point3d AreaCenter",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the triangle area centroid.",
        "since": "7.1",
        "property": ["get"]
      },
      {
        "signature": "Point3d B",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the second triangle corner.",
        "since": "7.1",
        "property": ["get"]
      },
      {
        "signature": "Line BC",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the triangle edge connecting the B and C corners.",
        "since": "7.1",
        "property": ["get"]
      },
      {
        "signature": "BoundingBox BoundingBox",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the bounding box of this triangle.",
        "since": "7.1",
        "property": ["get"]
      },
      {
        "signature": "Point3d C",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the third triangle corner.",
        "since": "7.1",
        "property": ["get"]
      },
      {
        "signature": "Line CA",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the triangle edge connecting the C and A corners.",
        "since": "7.1",
        "property": ["get"]
      },
      {
        "signature": "Point3d Circumcenter",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the triangle circumcenter.",
        "since": "7.1",
        "property": ["get"]
      },
      {
        "signature": "Circle Circumcircle",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the circumcircle of this triangle.",
        "since": "7.1",
        "property": ["get"]
      },
      {
        "signature": "Line MedianA",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the median line starting at corner A.",
        "since": "7.1",
        "property": ["get"]
      },
      {
        "signature": "Line MedianB",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the median line starting at corner B.",
        "since": "7.1",
        "property": ["get"]
      },
      {
        "signature": "Line MedianC",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the median line starting at corner C.",
        "since": "7.1",
        "property": ["get"]
      },
      {
        "signature": "Point3d Orthocenter",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the triangle orthocenter.",
        "since": "7.1",
        "property": ["get"]
      },
      {
        "signature": "double Perimeter",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the perimeter of this triangle. This is the sum of the lengths of all edges.",
        "since": "7.1",
        "property": ["get"]
      },
      {
        "signature": "Line PerpendicularAB",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the perpendicular bisector for edge AB.",
        "since": "7.1",
        "property": ["get"]
      },
      {
        "signature": "Line PerpendicularBC",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the perpendicular bisector for edge BC.",
        "since": "7.1",
        "property": ["get"]
      },
      {
        "signature": "Line PerpendicularCA",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the perpendicular bisector for edge CA.",
        "since": "7.1",
        "property": ["get"]
      }
    ],
    "methods": [
      {
        "signature": "System.Boolean TrySmallestEnclosingTriangle(IEnumerable<Point2d> points, System.Double tolerance, out Triangle3d triangle)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Attempt to create the smallest triangle containing a set of planar points.",
        "since": "8.4",
        "parameters": [
          {
            "name": "points",
            "type": "IEnumerable<Point2d>",
            "summary": "The points to enclose."
          },
          {
            "name": "tolerance",
            "type": "System.Double",
            "summary": "The tolerance to use"
          },
          {
            "name": "triangle",
            "type": "Triangle3d",
            "summary": "The resulting triangle on success."
          }
        ],
        "returns": "True on success, False on failure."
      },
      {
        "signature": "Point2d BarycentricCoordsAt(Point3d point, out System.Double signedHeight)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the projection of a point onto the barycentric coordinates.",
        "since": "7.1",
        "parameters": [
          {
            "name": "point",
            "type": "Point3d",
            "summary": "Point to project."
          },
          {
            "name": "signedHeight",
            "type": "System.Double",
            "summary": "A value indicating the height of the intersection in world units, negative if the point is situated under the triangle."
          }
        ],
        "returns": "The computed barycentric mass values relating to B and C for point."
      },
      {
        "signature": "System.Double ClosestParameterOnBoundary(Point3d point)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the parameter on the triangle boundary closest to a test point.",
        "since": "7.1"
      },
      {
        "signature": "Point3d ClosestPointOnBoundary(Point3d point)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the point on the triangle boundary closest to a test point.",
        "since": "7.1"
      },
      {
        "signature": "Point3d PointAlongBoundary(System.Double t)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the point along the boundary of the triangle. The triangle boundary has a domain [0, 3] where each subsequent unit domain maps to a different edge.",
        "since": "7.1",
        "parameters": [
          {
            "name": "t",
            "type": "System.Double",
            "summary": "Parameter along boundary."
          }
        ]
      },
      {
        "signature": "Point3d PointAtBarycentricCoords(Point2d coords)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets a point within this triangle using barycentric coordinates.",
        "since": "7.1",
        "parameters": [
          {
            "name": "coords",
            "type": "Point2d",
            "summary": "Barycentric mass for vertex B and C. A is valued as (1 - B - C)."
          }
        ],
        "returns": "Point at barycentric mass."
      },
      {
        "signature": "Point3d PointOnInterior(System.Double u, System.Double v)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the point on the triangle using the AB and AC primary axes.",
        "since": "7.1",
        "parameters": [
          {
            "name": "u",
            "type": "System.Double",
            "summary": "Parameter along the AB edge."
          },
          {
            "name": "v",
            "type": "System.Double",
            "summary": "Parameter along the AC edge."
          }
        ],
        "returns": "Point at parameter."
      },
      {
        "signature": "Mesh ToMesh()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Create a mesh from this triangle.",
        "since": "7.1"
      },
      {
        "signature": "Polyline ToPolyline()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Create a polyline from this triangle.",
        "since": "7.1"
      },
      {
        "signature": "Triangle3d Transform(Transform transform)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Transform this triangle.",
        "since": "7.1"
      },
      {
        "signature": "Triangle3d WithA(Point3d a)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Replace the A corner.",
        "since": "7.1"
      },
      {
        "signature": "Triangle3d WithB(Point3d b)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Replace the B corner.",
        "since": "7.1"
      },
      {
        "signature": "Triangle3d WithC(Point3d c)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Replace the C corner.",
        "since": "7.1"
      }
    ]
  },
  {
    "namespace": "Rhino.Geometry",
    "name": "Unroller",
    "dataType": "class",
    "summary": "Represents the operation of unrolling a single surface.",
    "constructors": [
      {
        "signature": "Unroller(Brep brep)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Initializes a new instance of the <b>Unroller</b> class with a brep.",
        "since": "5.0",
        "parameters": [
          {
            "name": "brep",
            "type": "Brep",
            "summary": "A brep to be unrolled."
          }
        ]
      },
      {
        "signature": "Unroller(Surface surface)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Initializes a new instance of the <b>Unroller</b> class with surface.",
        "since": "5.0",
        "parameters": [
          {
            "name": "surface",
            "type": "Surface",
            "summary": "A surface to be unrolled."
          }
        ]
      }
    ],
    "properties": [
      {
        "signature": "double AbsoluteTolerance",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the absolute tolerance for the unrolling operation.  \nAbsolute tolerance is used in the evaluation of new entities,     such as intersections, re-projections and splits.  \nIn the current implementation, absolute tolerance is used      in tessellating rails, fitting curves and pulling back trims.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool ExplodeOutput",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets a value determining whether geometry should be exploded.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "double ExplodeSpacing",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets a value determining whether spacing should be exploded.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "double RelativeTolerance",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the relative tolerance for the unrolling operation.  \nRelative tolerance is used in the evaluation of intrinsic properties,     such as computations \"along\" the surface or brep.  \nIn the current implementation, relative tolerance is used to decide     if a surface is flat enough to try to unroll. That helps ease the scale dependency.     The surface has to be linear in one direction within (length * RelativeTolerance)     to be considered linear for that purpose. Otherwise smash will ignore that tolerance and     unroll anything.",
        "since": "5.0",
        "property": ["get", "set"]
      }
    ],
    "methods": [
      {
        "signature": "System.Void AddFollowingGeometry(Curve curve)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Adds a curve that should be unrolled along with the surface/brep.",
        "since": "5.0",
        "parameters": [
          {
            "name": "curve",
            "type": "Curve",
            "summary": "The curve."
          }
        ]
      },
      {
        "signature": "System.Void AddFollowingGeometry(IEnumerable<Curve> curves)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Adds curves that should be unrolled along with the surface/brep.",
        "since": "5.0",
        "parameters": [
          {
            "name": "curves",
            "type": "IEnumerable<Curve>",
            "summary": "An array, a list or any enumerable set of curves."
          }
        ]
      },
      {
        "signature": "System.Void AddFollowingGeometry(IEnumerable<Point3d> dotLocations, IEnumerable<string> dotText)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Adds text dots that should be unrolled along with the surface/brep.",
        "since": "5.0",
        "parameters": [
          {
            "name": "dotLocations",
            "type": "IEnumerable<Point3d>",
            "summary": "An array, a list, or any enumerable set of dot locations."
          },
          {
            "name": "dotText",
            "type": "IEnumerable<string>",
            "summary": "An array, a list, or any enumerable set of dot strings."
          }
        ]
      },
      {
        "signature": "System.Void AddFollowingGeometry(IEnumerable<Point3d> points)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Adds points that should be unrolled along with the surface/brep.",
        "since": "5.0",
        "parameters": [
          {
            "name": "points",
            "type": "IEnumerable<Point3d>",
            "summary": "An array, a list or any enumerable set of points."
          }
        ]
      },
      {
        "signature": "System.Void AddFollowingGeometry(IEnumerable<TextDot> dots)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Adds text dots that should be unrolled along with the surface/brep.",
        "since": "5.0",
        "parameters": [
          {
            "name": "dots",
            "type": "IEnumerable<TextDot>",
            "summary": "An array, a list or any enumerable set of text dots."
          }
        ]
      },
      {
        "signature": "System.Void AddFollowingGeometry(Point point)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Adds a point that should be unrolled along with the surface/brep.",
        "since": "5.0",
        "parameters": [
          {
            "name": "point",
            "type": "Point",
            "summary": "A point."
          }
        ]
      },
      {
        "signature": "System.Void AddFollowingGeometry(Point3d dotLocation, System.String dotText)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Adds a text dot that should be unrolled along with the surface/brep.",
        "since": "5.0",
        "parameters": [
          {
            "name": "dotLocation",
            "type": "Point3d",
            "summary": "A dot point."
          },
          {
            "name": "dotText",
            "type": "System.String",
            "summary": "A dot text."
          }
        ]
      },
      {
        "signature": "System.Void AddFollowingGeometry(Point3d point)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Adds a point that should be unrolled along with the surface/brep.",
        "since": "5.0",
        "parameters": [
          {
            "name": "point",
            "type": "Point3d",
            "summary": "A point."
          }
        ]
      },
      {
        "signature": "System.Void AddFollowingGeometry(TextDot dot)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Adds a text dot that should be unrolled along with the surface/brep.",
        "since": "5.0",
        "parameters": [
          {
            "name": "dot",
            "type": "TextDot",
            "summary": "A text dot."
          }
        ]
      },
      {
        "signature": "System.Int32 FollowingGeometryIndex(Curve curve)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Given an unrolled curve, returns the index of the source, or following curve.",
        "since": "6.0",
        "parameters": [
          {
            "name": "curve",
            "type": "Curve",
            "summary": "An unrolled curve returned by Unroller.PerformUnroll."
          }
        ],
        "returns": "The index of the curve added by Unroller.AddFollowingGeometry if successful, otherwise -1."
      },
      {
        "signature": "System.Int32 FollowingGeometryIndex(TextDot dot)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Given an unrolled text dot, returns the index of the source, or following text dot.",
        "since": "6.0",
        "parameters": [
          {
            "name": "dot",
            "type": "TextDot",
            "summary": "An unrolled text dot returned by Unroller.PerformUnroll."
          }
        ],
        "returns": "The index of the text dot added by Unroller.AddFollowingGeometry if successful, otherwise -1."
      },
      {
        "signature": "System.Int32 PerformUnroll(List<Brep> flatbreps)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Executes unrolling operations.",
        "since": "6.0",
        "parameters": [
          {
            "name": "flatbreps",
            "type": "List<Brep>",
            "summary": "List of breps containing flattened results."
          }
        ],
        "returns": "Number of breps in result"
      },
      {
        "signature": "Brep[] PerformUnroll(out Curve[] unrolledCurves, out Point3d[] unrolledPoints, out TextDot[] unrolledDots)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Executes unrolling operations.",
        "since": "5.0",
        "parameters": [
          {
            "name": "unrolledCurves",
            "type": "Curve[]",
            "summary": "An array of unrolled curves is assigned during the call in this out parameter."
          },
          {
            "name": "unrolledPoints",
            "type": "Point3d[]",
            "summary": "An array of unrolled points is assigned during the call in this out parameter."
          },
          {
            "name": "unrolledDots",
            "type": "TextDot[]",
            "summary": "An array of unrolled text dots is assigned during the call in this out parameter."
          }
        ],
        "returns": "An array of breps. This array can be empty."
      }
    ]
  },
  {
    "namespace": "Rhino.Geometry",
    "name": "Vector2d",
    "dataType": "struct",
    "summary": "Represents the two components of a vector in two-dimensional space, using <b>double</b> -precision floating point numbers.",
    "constructors": [
      {
        "signature": "Vector2d(double x, double y)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Initializes a new instance of the vector based on two, X and Y, components.",
        "since": "5.0",
        "parameters": [
          {
            "name": "x",
            "type": "System.Double",
            "summary": "The X (first) component."
          },
          {
            "name": "y",
            "type": "System.Double",
            "summary": "The Y (second) component."
          }
        ]
      }
    ],
    "properties": [
      {
        "signature": "Vector2d Unset",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the value of the vector with components set as RhinoMath.UnsetValue,RhinoMath.UnsetValue.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "Vector2d Zero",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the value of the vector with components 0,0.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "bool IsValid",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets a value indicating whether this vector is valid. A valid vector must be formed of valid component values for x, y and z.",
        "since": "5.7",
        "property": ["get"]
      },
      {
        "signature": "double Length",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Computes the length (or magnitude, or size) of this vector. This is an application of Pythagoras' theorem.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "double SquareLength",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns the square of the length of the vector.",
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "double X",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the X (first) component of this vector.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "double Y",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the Y (second) component of this vector.",
        "since": "5.0",
        "property": ["get", "set"]
      }
    ],
    "methods": [
      {
        "signature": "Vector2d Add(Vector2d vector1, Vector2d vector2)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Sums up two vectors.  \n(Provided for languages that do not support operator overloading. You can use the + operator otherwise)",
        "since": "6.0",
        "parameters": [
          {
            "name": "vector1",
            "type": "Vector2d",
            "summary": "A vector."
          },
          {
            "name": "vector2",
            "type": "Vector2d",
            "summary": "A second vector."
          }
        ],
        "returns": "A new vector that results from the component-wise addition of the two vectors."
      },
      {
        "signature": "Vector2d Divide(Vector2d vector, System.Double t)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Divides a <b>Vector2d</b> by a number, having the effect of shrinking it.  \n(Provided for languages that do not support operator overloading. You can use the / operator otherwise)",
        "since": "6.0",
        "parameters": [
          {
            "name": "vector",
            "type": "Vector2d",
            "summary": "A vector."
          },
          {
            "name": "t",
            "type": "System.Double",
            "summary": "A number."
          }
        ],
        "returns": "A new vector that is component-wise divided by t."
      },
      {
        "signature": "Vector2d Multiply(System.Double t, Vector2d vector)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Multiplies a vector by a number, having the effect of scaling it.  \n(Provided for languages that do not support operator overloading. You can use the * operator otherwise)",
        "since": "6.0",
        "parameters": [
          {
            "name": "t",
            "type": "System.Double",
            "summary": "A number."
          },
          {
            "name": "vector",
            "type": "Vector2d",
            "summary": "A vector."
          }
        ],
        "returns": "A new vector that is the original vector coordinate-wise multiplied by t."
      },
      {
        "signature": "Vector2d Multiply(Vector2d vector, System.Double t)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Multiplies a vector by a number, having the effect of scaling it.  \n(Provided for languages that do not support operator overloading. You can use the * operator otherwise)",
        "since": "6.0",
        "parameters": [
          {
            "name": "vector",
            "type": "Vector2d",
            "summary": "A vector."
          },
          {
            "name": "t",
            "type": "System.Double",
            "summary": "A number."
          }
        ],
        "returns": "A new vector that is the original vector coordinate-wise multiplied by t."
      },
      {
        "signature": "System.Double Multiply(Vector2d vector1, Vector2d vector2)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Multiplies two vectors together, returning the dot product (or inner product).  \n(Provided for languages that do not support operator overloading. You can use the * operator otherwise)",
        "since": "6.0",
        "parameters": [
          {
            "name": "vector1",
            "type": "Vector2d",
            "summary": "A vector."
          },
          {
            "name": "vector2",
            "type": "Vector2d",
            "summary": "A second vector."
          }
        ],
        "returns": "A value that results from the evaluation of v1.X*v2.X + v1.Y*v2.Y.  \nThis value equals v1.Length * v2.Length * cos(alpha), where alpha is the angle between vectors."
      },
      {
        "signature": "Vector2d Negate(Vector2d vector)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Computes the reversed vector.  \n(Provided for languages that do not support operator overloading. You can use the - unary operator otherwise)",
        "since": "6.0",
        "parameters": [
          {
            "name": "vector",
            "type": "Vector2d",
            "summary": "A vector to negate."
          }
        ],
        "returns": "A new vector where all components were multiplied by -1."
      },
      {
        "signature": "Vector2d Subtract(Vector2d vector1, Vector2d vector2)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Subtracts the second vector from the first one.  \n(Provided for languages that do not support operator overloading. You can use the - operator otherwise)",
        "since": "6.0",
        "parameters": [
          {
            "name": "vector1",
            "type": "Vector2d",
            "summary": "A vector."
          },
          {
            "name": "vector2",
            "type": "Vector2d",
            "summary": "A second vector."
          }
        ],
        "returns": "A new vector that results from the component-wise difference of vector1 - vector2."
      },
      {
        "signature": "System.Int32 CompareTo(Vector2d other)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Compares this <b>Vector2d</b> with another <b>Vector2d</b> .  \nComponents evaluation priority is first X, then Y.",
        "since": "5.0",
        "parameters": [
          {
            "name": "other",
            "type": "Vector2d",
            "summary": "The other <b>Vector2d</b> to use in comparison."
          }
        ],
        "returns": "0: if this is identical to other  \n-1: if this.X < other.X  \n-1: if this.X == other.X and this.Y < other.Y  \n+1: otherwise."
      },
      {
        "signature": "System.Boolean EpsilonEquals(Vector2d other, System.Double epsilon)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Check that all values in other are within epsilon of the values in this",
        "since": "5.4"
      },
      {
        "signature": "System.Boolean Equals(System.Object obj)",
        "modifiers": ["public", "override"],
        "protected": false,
        "virtual": false,
        "summary": "Determines whether the specified System.Object is a Vector2d and has the same value as the present vector.",
        "parameters": [
          {
            "name": "obj",
            "type": "System.Object",
            "summary": "The specified object."
          }
        ],
        "returns": "True if obj is Vector2d and has the same components as this; otherwise false."
      },
      {
        "signature": "System.Boolean Equals(Vector2d vector)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Determines whether the specified vector has the same value as the present vector.",
        "since": "5.0",
        "parameters": [
          {
            "name": "vector",
            "type": "Vector2d",
            "summary": "The specified vector."
          }
        ],
        "returns": "True if vector has the same components as this; otherwise false."
      },
      {
        "signature": "System.Int32 GetHashCode()",
        "modifiers": ["public", "override"],
        "protected": false,
        "virtual": false,
        "summary": "Provides a hashing value for the present vector.",
        "returns": "A non-unique number based on vector components."
      },
      {
        "signature": "System.Boolean IsTiny()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Uses RhinoMath.ZeroTolerance for IsTiny calculation.",
        "since": "6.0",
        "returns": "True if vector is very small, otherwise false."
      },
      {
        "signature": "System.Boolean IsTiny(System.Double tolerance)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Determines whether a vector is very short.",
        "since": "6.0",
        "parameters": [
          {
            "name": "tolerance",
            "type": "System.Double",
            "summary": "A nonzero value used as the coordinate zero tolerance. ."
          }
        ],
        "returns": "(Math.Abs(X) <= tiny_tol) AND (Math.Abs(Y) <= tiny_tol) AND (Math.Abs(Z) <= tiny_tol)."
      },
      {
        "signature": "System.Boolean Rotate(System.Double angleRadians)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Rotates this vector.",
        "since": "6.0",
        "parameters": [
          {
            "name": "angleRadians",
            "type": "System.Double",
            "summary": "Angle of rotation (in radians)."
          }
        ],
        "returns": "True on success, False on failure."
      },
      {
        "signature": "System.String ToString()",
        "modifiers": ["public", "override"],
        "protected": false,
        "virtual": false,
        "summary": "Constructs a string representation of the current vector.",
        "returns": "A string in the form X,Y."
      },
      {
        "signature": "System.String ToString(System.String format, System.IFormatProvider formatProvider)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "7.0"
      },
      {
        "signature": "System.Boolean Unitize()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Unitizes the vector in place. A unit vector has length 1 unit.  \nAn invalid or zero length vector cannot be unitized.",
        "since": "5.7",
        "returns": "True on success or False on failure."
      }
    ],
    "operators": [
      {
        "signature": "bool operator !=(Vector2d a, Vector2d b)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Determines whether two vectors have different values.",
        "since": "5.0",
        "parameters": [
          {
            "name": "a",
            "type": "Vector2d",
            "summary": "The first vector."
          },
          {
            "name": "b",
            "type": "Vector2d",
            "summary": "The second vector."
          }
        ]
      },
      {
        "signature": "bool operator <(Vector2d a, Vector2d b)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Determines whether the first specified vector comes before (has inferior sorting value than) the second vector.  \nComponents have decreasing evaluation priority: first X, then Y.",
        "since": "5.0",
        "parameters": [
          {
            "name": "a",
            "type": "Vector2d",
            "summary": "First vector."
          },
          {
            "name": "b",
            "type": "Vector2d",
            "summary": "Second vector."
          }
        ]
      },
      {
        "signature": "bool operator <=(Vector2d a, Vector2d b)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Determines whether the first specified vector comes before (has inferior sorting value than) the second vector, or it is equal to it.  \nComponents have decreasing evaluation priority: first X, then Y.",
        "since": "5.0",
        "parameters": [
          {
            "name": "a",
            "type": "Vector2d",
            "summary": "First vector."
          },
          {
            "name": "b",
            "type": "Vector2d",
            "summary": "Second vector."
          }
        ]
      },
      {
        "signature": "bool operator ==(Vector2d a, Vector2d b)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Determines whether two vectors have equal values.",
        "since": "5.0",
        "parameters": [
          {
            "name": "a",
            "type": "Vector2d",
            "summary": "The first vector."
          },
          {
            "name": "b",
            "type": "Vector2d",
            "summary": "The second vector."
          }
        ]
      },
      {
        "signature": "bool operator >(Vector2d a, Vector2d b)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Determines whether the first specified vector comes after (has superior sorting value than) the second vector.  \nComponents have decreasing evaluation priority: first X, then Y.",
        "since": "5.0",
        "parameters": [
          {
            "name": "a",
            "type": "Vector2d",
            "summary": "First vector."
          },
          {
            "name": "b",
            "type": "Vector2d",
            "summary": "Second vector."
          }
        ]
      },
      {
        "signature": "bool operator >=(Vector2d a, Vector2d b)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Determines whether the first specified vector comes after (has superior sorting value than) the second vector, or it is equal to it.  \nComponents have decreasing evaluation priority: first X, then Y.",
        "since": "5.0",
        "parameters": [
          {
            "name": "a",
            "type": "Vector2d",
            "summary": "First vector."
          },
          {
            "name": "b",
            "type": "Vector2d",
            "summary": "Second vector."
          }
        ]
      },
      {
        "signature": "double operator *(Vector2d vector1, Vector2d vector2)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Multiplies two vectors together, returning the dot product (or inner product).",
        "since": "6.0",
        "parameters": [
          {
            "name": "vector1",
            "type": "Vector2d",
            "summary": "A vector."
          },
          {
            "name": "vector2",
            "type": "Vector2d",
            "summary": "A second vector."
          }
        ]
      },
      {
        "signature": "Vector2d operator -(Vector2d vector)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Computes the opposite vector.",
        "since": "6.0",
        "parameters": [
          {
            "name": "vector",
            "type": "Vector2d",
            "summary": "A vector to negate."
          }
        ]
      },
      {
        "signature": "Vector2d operator -(Vector2d vector1, Vector2d vector2)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Subtracts the second vector from the first one.",
        "since": "6.0",
        "parameters": [
          {
            "name": "vector1",
            "type": "Vector2d",
            "summary": "A vector."
          },
          {
            "name": "vector2",
            "type": "Vector2d",
            "summary": "A second vector."
          }
        ]
      },
      {
        "signature": "Vector2d operator *(double t, Vector2d vector)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Multiplies a vector by a number, having the effect of scaling it.",
        "since": "6.0",
        "parameters": [
          {
            "name": "t",
            "type": "System.Double",
            "summary": "A number."
          },
          {
            "name": "vector",
            "type": "Vector2d",
            "summary": "A vector."
          }
        ]
      },
      {
        "signature": "Vector2d operator *(Vector2d vector, double t)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Multiplies a vector by a number, having the effect of scaling it.",
        "since": "6.0",
        "parameters": [
          {
            "name": "vector",
            "type": "Vector2d",
            "summary": "A vector."
          },
          {
            "name": "t",
            "type": "System.Double",
            "summary": "A number."
          }
        ]
      },
      {
        "signature": "Vector2d operator /(Vector2d vector, double t)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Divides a <b>Vector2d</b> by a number, having the effect of shrinking it.",
        "since": "6.0",
        "parameters": [
          {
            "name": "vector",
            "type": "Vector2d",
            "summary": "A vector."
          },
          {
            "name": "t",
            "type": "System.Double",
            "summary": "A number."
          }
        ]
      },
      {
        "signature": "Vector2d operator +(Vector2d vector1, Vector2d vector2)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Sums up two vectors.",
        "parameters": [
          {
            "name": "vector1",
            "type": "Vector2d",
            "summary": "A vector."
          },
          {
            "name": "vector2",
            "type": "Vector2d",
            "summary": "A second vector."
          }
        ]
      }
    ]

  },
  {
    "namespace": "Rhino.Geometry",
    "name": "Vector2f",
    "dataType": "struct",
    "summary": "Represents the two components of a vector in two-dimensional space, using <b>Single</b> -precision floating point numbers.",
    "constructors": [
      {
        "signature": "Vector2f(float x, float y)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Creates an instance.",
        "since": "6.0",
        "parameters": [
          {
            "name": "x",
            "type": "System.Single",
            "summary": "X component."
          },
          {
            "name": "y",
            "type": "System.Single",
            "summary": "Y component."
          }
        ]
      }
    ],
    "properties": [
      {
        "signature": "Vector2f Unset",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the value of the vector with each component set to RhinoMath.UnsetValue.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "Vector2f XAxis",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the value of the vector with components 1,0.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "Vector2f YAxis",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the value of the vector with components 0,1.",
        "since": "8.4",
        "property": ["get"]
      },
      {
        "signature": "Vector2f Zero",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the value of the vector with components 0,0.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "bool IsUnitVector",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets a value indicating whether or not this is a unit vector. A unit vector has length 1.",
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "bool IsValid",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns an indication regarding the validity of this vector.",
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "bool IsZero",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets a value indicating whether the X, Y, and Z values are all equal to 0.0.",
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "double Length",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Computes the length (or magnitude, or size) of this vector. This is an application of Pythagoras' theorem. If this vector is invalid, its length is considered 0.",
        "since": "8.4",
        "property": ["get"]
      },
      {
        "signature": "float SquareLength",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns the square of the length of this vector. This method does not check for the validity of its inputs.",
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "float X",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the X (first) component of this vector.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "float Y",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the Y (second) component of this vector.",
        "since": "5.0",
        "property": ["get", "set"]
      }
    ],
    "methods": [
      {
        "signature": "Point2f Add(Point2f point, Vector2f vector)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Sums up a point and a vector, and returns a new point.  \n(Provided for languages that do not support operator overloading. You can use the + operator otherwise)",
        "since": "8.4",
        "parameters": [
          {
            "name": "point",
            "type": "Point2f",
            "summary": "A point."
          },
          {
            "name": "vector",
            "type": "Vector2f",
            "summary": "A vector."
          }
        ],
        "returns": "A new point that results from the addition of point and vector."
      },
      {
        "signature": "Vector2f Add(Vector2f vector1, Vector2f vector2)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Sums up two vectors.  \n(Provided for languages that do not support operator overloading. You can use the + operator otherwise)",
        "since": "8.4",
        "parameters": [
          {
            "name": "vector1",
            "type": "Vector2f",
            "summary": "A vector."
          },
          {
            "name": "vector2",
            "type": "Vector2f",
            "summary": "A second vector."
          }
        ],
        "returns": "A new vector that results from the component-wise addition of the two vectors."
      },
      {
        "signature": "System.Double Multiply(Vector2f point1, Vector2f point2)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Multiplies two <b>Vector2f</b> together, returning the dot (internal) product of the two.  \n(Provided for languages that do not support operator overloading. You can use the * operator otherwise)",
        "since": "6.0",
        "parameters": [
          {
            "name": "point1",
            "type": "Vector2f",
            "summary": "The first point."
          },
          {
            "name": "point2",
            "type": "Vector2f",
            "summary": "The second point."
          }
        ],
        "returns": "A value that results from the coordinate-wise multiplication of point1 and point2."
      },
      {
        "signature": "Vector2f Negate(Vector2f vector)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Computes the reversed vector.  \n(Provided for languages that do not support operator overloading. You can use the - unary operator otherwise)",
        "since": "8.4",
    "remarks": "This is similar to <b>Reverse</b> , but is static for CLR compliance, and with default name.",
        "parameters": [
          {
            "name": "vector",
            "type": "Vector2f",
            "summary": "A vector to negate."
          }
        ],
        "returns": "A new vector where all components were multiplied by -1."
      },
      {
        "signature": "Vector2f Subtract(Vector2f vector1, Vector2f vector2)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Subtracts the second vector from the first one.  \n(Provided for languages that do not support operator overloading. You can use the - operator otherwise)",
        "since": "8.4",
        "parameters": [
          {
            "name": "vector1",
            "type": "Vector2f",
            "summary": "A vector."
          },
          {
            "name": "vector2",
            "type": "Vector2f",
            "summary": "A second vector."
          }
        ],
        "returns": "A new vector that results from the component-wise difference of vector1 - vector2."
      },
      {
        "signature": "System.Int32 CompareTo(Vector2f other)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Compares this <b>Vector2f</b> with another <b>Vector2f</b> .  \nComponents evaluation priority is first X, then Y.",
        "since": "5.0",
        "parameters": [
          {
            "name": "other",
            "type": "Vector2f",
            "summary": "The other <b>Vector2f</b> to use in comparison."
          }
        ],
        "returns": "0: if this is identical to other  \n-1: if this.X < other.X  \n-1: if this.X == other.X and this.Y < other.Y  \n+1: otherwise."
      },
      {
        "signature": "System.Boolean EpsilonEquals(Vector2f other, System.Single epsilon)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Check that all values in other are within epsilon of the values in this",
        "since": "5.4"
      },
      {
        "signature": "System.Boolean Equals(System.Object obj)",
        "modifiers": ["public", "override"],
        "protected": false,
        "virtual": false,
        "summary": "Determines whether the specified System.Object is a Vector2f and has the same values as the present vector.",
        "parameters": [
          {
            "name": "obj",
            "type": "System.Object",
            "summary": "The specified object."
          }
        ],
        "returns": "True if obj is Vector2f and has the same coordinates as this; otherwise false."
      },
      {
        "signature": "System.Boolean Equals(Vector2f vector)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Determines whether the specified vector has the same values as the present vector.",
        "since": "5.0",
        "parameters": [
          {
            "name": "vector",
            "type": "Vector2f",
            "summary": "The specified vector."
          }
        ],
        "returns": "True if obj is Vector2f and has the same coordinates as this; otherwise false."
      },
      {
        "signature": "System.Int32 GetHashCode()",
        "modifiers": ["public", "override"],
        "protected": false,
        "virtual": false,
        "summary": "Computes a hash number that represents the current vector.",
        "returns": "A hash code that is not unique for each vector."
      },
      {
        "signature": "System.Boolean PerpendicularTo(Vector2f other)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Sets this vector to be perpendicular to another vector. Result is not unitized.",
        "since": "8.4",
        "parameters": [
          {
            "name": "other",
            "type": "Vector2f",
            "summary": "Vector to use as guide."
          }
        ],
        "returns": "True on success, False if input vector is zero or invalid."
      },
      {
        "signature": "System.Boolean Reverse()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Reverses this vector in place (reverses the direction).  \nIf this vector contains RhinoMath.UnsetValue, the      reverse will also be invalid and False will be returned.",
        "since": "8.4",
    "remarks": "Similar to <b>Negate</b> , that is only provided for CLR language compliance.",
        "returns": "True on success or False if the vector is invalid."
      },
      {
        "signature": "System.String ToString()",
        "modifiers": ["public", "override"],
        "protected": false,
        "virtual": false,
        "summary": "Constructs the string representation of the current vector.",
        "returns": "The vector representation in the form X,Y,Z."
      },
      {
        "signature": "System.String ToString(System.String format, System.IFormatProvider formatProvider)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "7.0"
      },
      {
        "signature": "System.Boolean Unitize()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Unitizes the vector in place. A unit vector has length 1 unit.  \nAn invalid or zero length vector cannot be unitized.",
        "since": "8.4",
        "returns": "True on success or False on failure."
      }
    ],
    "operators": [
      {
        "signature": "bool operator !=(Vector2f a, Vector2f b)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Determines whether two vectors have different values.",
        "since": "5.0",
        "parameters": [
          {
            "name": "a",
            "type": "Vector2f",
            "summary": "The first vector."
          },
          {
            "name": "b",
            "type": "Vector2f",
            "summary": "The second vector."
          }
        ]
      },
      {
        "signature": "bool operator <(Vector2f a, Vector2f b)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Determines whether the first specified vector comes before (has inferior sorting value than) the second vector.  \nComponents have decreasing evaluation priority: first X, then Y.",
        "since": "5.0",
        "parameters": [
          {
            "name": "a",
            "type": "Vector2f",
            "summary": "First vector."
          },
          {
            "name": "b",
            "type": "Vector2f",
            "summary": "Second vector."
          }
        ]
      },
      {
        "signature": "bool operator <=(Vector2f a, Vector2f b)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Determines whether the first specified vector comes before (has inferior sorting value than) the second vector, or it is equal to it.  \nComponents have decreasing evaluation priority: first X, then Y.",
        "since": "5.0",
        "parameters": [
          {
            "name": "a",
            "type": "Vector2f",
            "summary": "First vector."
          },
          {
            "name": "b",
            "type": "Vector2f",
            "summary": "Second vector."
          }
        ]
      },
      {
        "signature": "bool operator ==(Vector2f a, Vector2f b)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Determines whether two vectors have equal values.",
        "since": "5.0",
        "parameters": [
          {
            "name": "a",
            "type": "Vector2f",
            "summary": "The first vector."
          },
          {
            "name": "b",
            "type": "Vector2f",
            "summary": "The second vector."
          }
        ]
      },
      {
        "signature": "bool operator >(Vector2f a, Vector2f b)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Determines whether the first specified vector comes after (has superior sorting value than) the second vector.  \nComponents have decreasing evaluation priority: first X, then Y.",
        "since": "5.0",
        "parameters": [
          {
            "name": "a",
            "type": "Vector2f",
            "summary": "First vector."
          },
          {
            "name": "b",
            "type": "Vector2f",
            "summary": "Second vector."
          }
        ]
      },
      {
        "signature": "bool operator >=(Vector2f a, Vector2f b)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Determines whether the first specified vector comes after (has superior sorting value than) the second vector, or it is equal to it.  \nComponents have decreasing evaluation priority: first X, then Y.",
        "since": "5.0",
        "parameters": [
          {
            "name": "a",
            "type": "Vector2f",
            "summary": "First vector."
          },
          {
            "name": "b",
            "type": "Vector2f",
            "summary": "Second vector."
          }
        ]
      },
      {
        "signature": "double operator *(Vector2f point1, Vector2f point2)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Multiplies two <b>Vector2f</b> together, returning the dot (internal) product of the two.",
        "since": "6.0",
        "parameters": [
          {
            "name": "point1",
            "type": "Vector2f",
            "summary": "The first point."
          },
          {
            "name": "point2",
            "type": "Vector2f",
            "summary": "The second point."
          }
        ]
      },
      {
        "signature": "Point2f operator +(Point2f point, Vector2f vector)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Sums up a point and a vector, and returns a new point.",
        "parameters": [
          {
            "name": "point",
            "type": "Point2f",
            "summary": "A point."
          },
          {
            "name": "vector",
            "type": "Vector2f",
            "summary": "A vector."
          }
        ]
      },
      {
        "signature": "Vector2f operator -(Vector2f a, Vector2f b)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Computes the difference between two vectors.",
        "since": "6.0",
        "parameters": [
          {
            "name": "a",
            "type": "Vector2f",
            "summary": "First vector."
          },
          {
            "name": "b",
            "type": "Vector2f",
            "summary": "Second vector."
          }
        ]
      },
      {
        "signature": "Vector2f operator -(Vector2f vector)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Computes the opposite vector.",
        "parameters": [
          {
            "name": "vector",
            "type": "Vector2f",
            "summary": "A vector to negate."
          }
        ]
      },
      {
        "signature": "Vector2f operator +(Vector2f a, Vector2f b)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Computes the sum between two vectors.",
        "parameters": [
          {
            "name": "a",
            "type": "Vector2f",
            "summary": "First vector."
          },
          {
            "name": "b",
            "type": "Vector2f",
            "summary": "Second vector."
          }
        ]
      }
    ]

  },
  {
    "namespace": "Rhino.Geometry",
    "name": "Vector3d",
    "dataType": "struct",
    "summary": "Represents the three components of a vector in three-dimensional space, using <b>double</b> -precision floating point numbers.",
    "constructors": [
      {
        "signature": "Vector3d(double x, double y, double z)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Initializes a new instance of a vector, using its three components.",
        "since": "5.0",
        "parameters": [
          {
            "name": "x",
            "type": "System.Double",
            "summary": "The X (first) component."
          },
          {
            "name": "y",
            "type": "System.Double",
            "summary": "The Y (second) component."
          },
          {
            "name": "z",
            "type": "System.Double",
            "summary": "The Z (third) component."
          }
        ]
      },
      {
        "signature": "Vector3d(Point3d point)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Initializes a new instance of a vector, copying the three components from the three coordinates of a point.",
        "since": "5.0",
        "parameters": [
          {
            "name": "point",
            "type": "Point3d",
            "summary": "The point to copy from."
          }
        ]
      },
      {
        "signature": "Vector3d(Vector3d vector)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Initializes a new instance of a vector, copying the three components from a vector.",
        "since": "5.0",
        "parameters": [
          {
            "name": "vector",
            "type": "Vector3d",
            "summary": "A double-precision vector."
          }
        ]
      },
      {
        "signature": "Vector3d(Vector3f vector)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Initializes a new instance of a vector, copying the three components from a single-precision vector.",
        "since": "5.0",
        "parameters": [
          {
            "name": "vector",
            "type": "Vector3f",
            "summary": "A single-precision vector."
          }
        ]
      }
    ],
    "properties": [
      {
        "signature": "Vector3d Unset",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the value of the vector with each component set to RhinoMath.UnsetValue.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "Vector3d XAxis",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the value of the vector with components 1,0,0.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "Vector3d YAxis",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the value of the vector with components 0,1,0.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "Vector3d ZAxis",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the value of the vector with components 0,0,1.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "Vector3d Zero",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the value of the vector with components 0,0,0.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "bool IsUnitVector",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets a value indicating whether or not this is a unit vector. A unit vector has length 1.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "bool IsValid",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets a value indicating whether this vector is valid. A valid vector must be formed of valid component values for x, y and z.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "bool IsZero",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets a value indicating whether the X, Y, and Z values are all equal to 0.0.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "double Length",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Computes the length (or magnitude, or size) of this vector. This is an application of Pythagoras' theorem. If this vector is invalid, its length is considered 0.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "double MaximumCoordinate",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the largest (both positive and negative) component value in this vector,  as an absolute value.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "double MinimumCoordinate",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the smallest (both positive and negative) component value in this vector.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "double SquareLength",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Computes the squared length (or magnitude, or size) of this vector. This is an application of Pythagoras' theorem. While the Length property checks for input validity, this property does not. You should check validity in advance, if this vector can be invalid.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "double X",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the X (first) component of the vector.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "double Y",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the Y (second) component of the vector.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "double Z",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the Z (third) component of the vector.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "double this[int index]",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets a vector component at the given index."
      }
    ],
    "methods": [
      {
        "signature": "Vector3d Add(Vector3d vector1, Vector3d vector2)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Sums up two vectors.  \n(Provided for languages that do not support operator overloading. You can use the + operator otherwise)",
        "since": "5.0",
        "parameters": [
          {
            "name": "vector1",
            "type": "Vector3d",
            "summary": "A vector."
          },
          {
            "name": "vector2",
            "type": "Vector3d",
            "summary": "A second vector."
          }
        ],
        "returns": "A new vector that results from the component-wise addition of the two vectors."
      },
      {
        "signature": "System.Boolean AreOrthogonal(Vector3d x, Vector3d y, Vector3d z)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Test whether three vectors describe an orthogonal axis system. All vectors must be mutually perpendicular this to be the case.",
        "since": "6.7",
        "parameters": [
          {
            "name": "x",
            "type": "Vector3d",
            "summary": "X axis vector."
          },
          {
            "name": "y",
            "type": "Vector3d",
            "summary": "Y axis vector."
          },
          {
            "name": "z",
            "type": "Vector3d",
            "summary": "Z axis vector."
          }
        ],
        "returns": "True if all vectors are non-zero and mutually perpendicular."
      },
      {
        "signature": "System.Boolean AreOrthonormal(Vector3d x, Vector3d y, Vector3d z)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Test whether three vectors describe an orthogonal, unit axis system. All vectors must be mutually perpendicular and have unit length for this to be the case.",
        "since": "6.7",
        "parameters": [
          {
            "name": "x",
            "type": "Vector3d",
            "summary": "X axis vector."
          },
          {
            "name": "y",
            "type": "Vector3d",
            "summary": "Y axis vector."
          },
          {
            "name": "z",
            "type": "Vector3d",
            "summary": "Z axis vector."
          }
        ],
        "returns": "True if all vectors are non-zero and mutually perpendicular."
      },
      {
        "signature": "System.Boolean AreRighthanded(Vector3d x, Vector3d y, Vector3d z)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Test whether three vectors describe a right-handed, orthogonal, unit axis system. The vectors must be orthonormal and follow the right-hand ordering; index-finger=x, middle-finger=y, thumb=z.",
        "since": "6.7",
        "parameters": [
          {
            "name": "x",
            "type": "Vector3d",
            "summary": "X axis vector."
          },
          {
            "name": "y",
            "type": "Vector3d",
            "summary": "Y axis vector."
          },
          {
            "name": "z",
            "type": "Vector3d",
            "summary": "Z axis vector."
          }
        ],
        "returns": "True if all vectors are non-zero and mutually perpendicular."
      },
      {
        "signature": "Vector3d CrossProduct(Vector3d a, Vector3d b)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Computes the cross product (or vector product, or exterior product) of two vectors.  \nThis operation is not commutative.",
        "since": "5.0",
        "parameters": [
          {
            "name": "a",
            "type": "Vector3d",
            "summary": "First vector."
          },
          {
            "name": "b",
            "type": "Vector3d",
            "summary": "Second vector."
          }
        ],
        "returns": "A new vector that is perpendicular to both a and b,  \nhas Length == a.Length * b.Length * sin(theta) where theta is the angle between a and b.  \nThe resulting vector is oriented according to the right hand rule."
      },
      {
        "signature": "System.Boolean Decompose(Vector3d v, Vector3d a, Vector3d b, out System.Double x, out System.Double y)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Find scalars x and y so that the component of v in the plane of a and b is x*a + y*b",
        "since": "9.0",
        "parameters": [
          {
            "name": "v",
            "type": "Vector3d",
            "summary": ""
          },
          {
            "name": "a",
            "type": "Vector3d",
            "summary": "non-zero and not parallel to b"
          },
          {
            "name": "b",
            "type": "Vector3d",
            "summary": "non-zero and not parallel to a"
          },
          {
            "name": "x",
            "type": "System.Double",
            "summary": ""
          },
          {
            "name": "y",
            "type": "System.Double",
            "summary": ""
          }
        ],
        "returns": "True if the decomposition is successful."
      },
      {
        "signature": "Vector3d Divide(Vector3d vector, System.Double t)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Divides a <b>Vector3d</b> by a number, having the effect of shrinking it.  \n(Provided for languages that do not support operator overloading. You can use the / operator otherwise)",
        "since": "5.0",
        "parameters": [
          {
            "name": "vector",
            "type": "Vector3d",
            "summary": "A vector."
          },
          {
            "name": "t",
            "type": "System.Double",
            "summary": "A number."
          }
        ],
        "returns": "A new vector that is component-wise divided by t."
      },
      {
        "signature": "Vector3d Multiply(System.Double t, Vector3d vector)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Multiplies a vector by a number, having the effect of scaling it.  \n(Provided for languages that do not support operator overloading. You can use the * operator otherwise)",
        "since": "5.0",
        "parameters": [
          {
            "name": "t",
            "type": "System.Double",
            "summary": "A number."
          },
          {
            "name": "vector",
            "type": "Vector3d",
            "summary": "A vector."
          }
        ],
        "returns": "A new vector that is the original vector coordinate-wise multiplied by t."
      },
      {
        "signature": "Vector3d Multiply(Vector3d vector, System.Double t)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Multiplies a vector by a number, having the effect of scaling it.  \n(Provided for languages that do not support operator overloading. You can use the * operator otherwise)",
        "since": "5.0",
        "parameters": [
          {
            "name": "vector",
            "type": "Vector3d",
            "summary": "A vector."
          },
          {
            "name": "t",
            "type": "System.Double",
            "summary": "A number."
          }
        ],
        "returns": "A new vector that is the original vector coordinate-wise multiplied by t."
      },
      {
        "signature": "System.Double Multiply(Vector3d vector1, Vector3d vector2)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Multiplies two vectors together, returning the dot product (or inner product). This differs from the cross product.  \n(Provided for languages that do not support operator overloading. You can use the * operator otherwise)",
        "since": "5.0",
        "parameters": [
          {
            "name": "vector1",
            "type": "Vector3d",
            "summary": "A vector."
          },
          {
            "name": "vector2",
            "type": "Vector3d",
            "summary": "A second vector."
          }
        ],
        "returns": "A value that results from the evaluation of v1.X*v2.X + v1.Y*v2.Y + v1.Z*v2.Z.  \nThis value equals v1.Length * v2.Length * cos(alpha), where alpha is the angle between vectors."
      },
      {
        "signature": "Vector3d Negate(Vector3d vector)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Computes the reversed vector.  \n(Provided for languages that do not support operator overloading. You can use the - unary operator otherwise)",
        "since": "5.0",
    "remarks": "Similar to <b>Reverse</b> , but static for CLR compliance.",
        "parameters": [
          {
            "name": "vector",
            "type": "Vector3d",
            "summary": "A vector to negate."
          }
        ],
        "returns": "A new vector where all components were multiplied by -1."
      },
      {
        "signature": "Vector3d Subtract(Vector3d vector1, Vector3d vector2)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Subtracts the second vector from the first one.  \n(Provided for languages that do not support operator overloading. You can use the - operator otherwise)",
        "since": "5.0",
        "parameters": [
          {
            "name": "vector1",
            "type": "Vector3d",
            "summary": "A vector."
          },
          {
            "name": "vector2",
            "type": "Vector3d",
            "summary": "A second vector."
          }
        ],
        "returns": "A new vector that results from the component-wise difference of vector1 - vector2."
      },
      {
        "signature": "System.Double VectorAngle(Vector3d a, Vector3d b, Plane plane)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Computes the angle on a plane between two vectors.",
        "since": "5.0",
        "parameters": [
          {
            "name": "a",
            "type": "Vector3d",
            "summary": "First vector."
          },
          {
            "name": "b",
            "type": "Vector3d",
            "summary": "Second vector."
          },
          {
            "name": "plane",
            "type": "Plane",
            "summary": "Two-dimensional plane on which to perform the angle measurement."
          }
        ],
        "returns": "On success, the angle (in radians) between a and b as projected onto the plane; RhinoMath.UnsetValue on failure."
      },
      {
        "signature": "System.Double VectorAngle(Vector3d v1, Vector3d v2, Vector3d vNormal)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Computes the angle of v1, v2 with a normal vector.",
        "since": "6.0",
        "parameters": [
          {
            "name": "v1",
            "type": "Vector3d",
            "summary": "First vector."
          },
          {
            "name": "v2",
            "type": "Vector3d",
            "summary": "Second vector."
          },
          {
            "name": "vNormal",
            "type": "Vector3d",
            "summary": "Normal vector."
          }
        ],
        "returns": "On success, the angle (in radians) between a and b with respect of normal vector; RhinoMath.UnsetValue on failure."
      },
      {
        "signature": "System.Double VectorAngle(Vector3d a, Vector3d b)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Compute the angle between two vectors.  \nThis operation is commutative.",
        "since": "5.0",
        "parameters": [
          {
            "name": "a",
            "type": "Vector3d",
            "summary": "First vector for angle."
          },
          {
            "name": "b",
            "type": "Vector3d",
            "summary": "Second vector for angle."
          }
        ],
        "returns": "If the input is valid, the angle (in radians) between a and b; RhinoMath.UnsetValue otherwise."
      },
      {
        "signature": "System.Int32 CompareTo(Vector3d other)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Compares this <b>Vector3d</b> with another <b>Vector3d</b> .  \nComponent evaluation priority is first X, then Y, then Z.",
        "since": "5.0",
        "parameters": [
          {
            "name": "other",
            "type": "Vector3d",
            "summary": "The other <b>Vector3d</b> to use in comparison."
          }
        ],
        "returns": "0: if this is identical to other  \n-1: if this.X < other.X  \n-1: if this.X == other.X and this.Y < other.Y  \n-1: if this.X == other.X and this.Y == other.Y and this.Z < other.Z  \n+1: otherwise."
      },
      {
        "signature": "System.Boolean EpsilonEquals(Vector3d other, System.Double epsilon)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Check that all values in other are within epsilon of the values in this",
        "since": "5.4"
      },
      {
        "signature": "System.Boolean Equals(System.Object obj)",
        "modifiers": ["public", "override"],
        "protected": false,
        "virtual": false,
        "summary": "Determines whether the specified System.Object is a Vector3d and has the same values as the present vector.",
        "parameters": [
          {
            "name": "obj",
            "type": "System.Object",
            "summary": "The specified object."
          }
        ],
        "returns": "True if obj is a Vector3d and has the same coordinates as this; otherwise false."
      },
      {
        "signature": "System.Boolean Equals(Vector3d vector)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Determines whether the specified vector has the same value as the present vector.",
        "since": "5.0",
        "parameters": [
          {
            "name": "vector",
            "type": "Vector3d",
            "summary": "The specified vector."
          }
        ],
        "returns": "True if vector has the same coordinates as this; otherwise false."
      },
      {
        "signature": "System.Int32 GetHashCode()",
        "modifiers": ["public", "override"],
        "protected": false,
        "virtual": false,
        "summary": "Computes the hash code for the current vector.",
        "returns": "A non-unique number that represents the components of this vector."
      },
      {
        "signature": "System.Int32 IsParallelTo(Vector3d other, System.Double angleTolerance)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Determines whether this vector is parallel to another vector, within a provided tolerance.",
        "since": "5.0",
        "parameters": [
          {
            "name": "other",
            "type": "Vector3d",
            "summary": "Vector to use for comparison."
          },
          {
            "name": "angleTolerance",
            "type": "System.Double",
            "summary": "Angle tolerance (in radians)."
          }
        ],
        "returns": "Parallel indicator:  \n+1 = both vectors are parallel.  \n0 = vectors are not parallel or at least one of the vectors is zero.  \n-1 = vectors are anti-parallel."
      },
      {
        "signature": "System.Int32 IsParallelTo(Vector3d other)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Determines whether this vector is parallel to another vector, within one degree (within Pi / 180).",
        "since": "5.0",
        "parameters": [
          {
            "name": "other",
            "type": "Vector3d",
            "summary": "Vector to use for comparison."
          }
        ],
        "returns": "Parallel indicator:  \n+1 = both vectors are parallel  \n0 = vectors are not parallel, or at least one of the vectors is zero  \n-1 = vectors are anti-parallel."
      },
      {
        "signature": "System.Boolean IsPerpendicularTo(Vector3d other, System.Double angleTolerance)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Determines whether this vector is perpendicular to another vector, within a provided angle tolerance.",
        "since": "5.0",
        "parameters": [
          {
            "name": "other",
            "type": "Vector3d",
            "summary": "Vector to use for comparison."
          },
          {
            "name": "angleTolerance",
            "type": "System.Double",
            "summary": "Angle tolerance (in radians)."
          }
        ],
        "returns": "True if vectors form Pi-radians (90-degree) angles with each other; otherwise false."
      },
      {
        "signature": "System.Boolean IsPerpendicularTo(Vector3d other)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Test to see whether this vector is perpendicular to within one degree of another one.",
        "since": "5.0",
        "parameters": [
          {
            "name": "other",
            "type": "Vector3d",
            "summary": "Vector to compare to."
          }
        ],
        "returns": "True if both vectors are perpendicular, False if otherwise."
      },
      {
        "signature": "System.Boolean IsTiny()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Uses RhinoMath.ZeroTolerance for IsTiny calculation.",
        "since": "5.0",
        "returns": "True if vector is very small, otherwise false."
      },
      {
        "signature": "System.Boolean IsTiny(System.Double tolerance)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Determines whether a vector is very short.",
        "since": "5.0",
        "parameters": [
          {
            "name": "tolerance",
            "type": "System.Double",
            "summary": "A nonzero value used as the coordinate zero tolerance. ."
          }
        ],
        "returns": "(Math.Abs(X) <= tiny_tol) AND (Math.Abs(Y) <= tiny_tol) AND (Math.Abs(Z) <= tiny_tol)."
      },
      {
        "signature": "System.Boolean PerpendicularTo(Point3d point0, Point3d point1, Point3d point2)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Set this vector to be perpendicular to a plane defined by 3 points.",
        "since": "8.0",
        "parameters": [
          {
            "name": "point0",
            "type": "Point3d",
            "summary": "The first point."
          },
          {
            "name": "point1",
            "type": "Point3d",
            "summary": "The second point."
          },
          {
            "name": "point2",
            "type": "Point3d",
            "summary": "The third point."
          }
        ]
      },
      {
        "signature": "System.Boolean PerpendicularTo(Vector3d other)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Sets this vector to be perpendicular to another vector. Result is not unitized.",
        "since": "5.0",
        "parameters": [
          {
            "name": "other",
            "type": "Vector3d",
            "summary": "Vector to use as guide."
          }
        ],
        "returns": "True on success, False if input vector is zero or invalid."
      },
      {
        "signature": "System.Boolean Reverse()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Reverses this vector in place (reverses the direction).  \nIf this vector is Invalid, no changes will occur and False will be returned.",
        "since": "5.0",
    "remarks": "Similar to <b>Negate</b> , that is only provided for CLR language compliance.",
        "returns": "True on success or False if the vector is invalid."
      },
      {
        "signature": "System.Boolean Rotate(System.Double angleRadians, Vector3d rotationAxis)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Rotates this vector around a given axis.",
        "since": "5.0",
        "parameters": [
          {
            "name": "angleRadians",
            "type": "System.Double",
            "summary": "Angle of rotation (in radians)."
          },
          {
            "name": "rotationAxis",
            "type": "Vector3d",
            "summary": "Axis of rotation."
          }
        ],
        "returns": "True on success, False on failure."
      },
      {
        "signature": "System.String ToString()",
        "modifiers": ["public", "override"],
        "protected": false,
        "virtual": false,
        "summary": "Returns the string representation of the current vector, in the form X,Y,Z.",
        "returns": "A string with the current location of the point."
      },
      {
        "signature": "System.String ToString(System.String format, System.IFormatProvider formatProvider)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "7.0"
      },
      {
        "signature": "System.Void Transform(Transform transformation)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Transforms the vector in place.  \nThe transformation matrix acts on the left of the vector; i.e.,  \nresult = transformation*vector",
        "since": "5.0",
        "parameters": [
          {
            "name": "transformation",
            "type": "Transform",
            "summary": "Transformation matrix to apply."
          }
        ]
      },
      {
        "signature": "System.Boolean Unitize()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Unitizes the vector in place. A unit vector has length 1 unit.  \nAn invalid or zero length vector cannot be unitized.",
        "since": "5.0",
        "returns": "True on success or False on failure."
      }
    ],
    "operators": [
      {
        "signature": "bool operator !=(Vector3d a, Vector3d b)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Determines whether two vectors have different values.",
        "since": "5.0",
        "parameters": [
          {
            "name": "a",
            "type": "Vector3d",
            "summary": "A vector."
          },
          {
            "name": "b",
            "type": "Vector3d",
            "summary": "Another vector."
          }
        ]
      },
      {
        "signature": "bool operator <(Vector3d a, Vector3d b)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Determines whether the first specified vector comes before (has inferior sorting value than) the second vector.  \nComponents evaluation priority is first X, then Y, then Z.",
        "since": "5.0",
        "parameters": [
          {
            "name": "a",
            "type": "Vector3d",
            "summary": "The first vector."
          },
          {
            "name": "b",
            "type": "Vector3d",
            "summary": "The second vector."
          }
        ]
      },
      {
        "signature": "bool operator <=(Vector3d a, Vector3d b)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Determines whether the first specified vector comes before (has inferior sorting value than) the second vector, or it is equal to it.  \nComponents evaluation priority is first X, then Y, then Z.",
        "since": "5.0",
        "parameters": [
          {
            "name": "a",
            "type": "Vector3d",
            "summary": "The first vector."
          },
          {
            "name": "b",
            "type": "Vector3d",
            "summary": "The second vector."
          }
        ]
      },
      {
        "signature": "bool operator ==(Vector3d a, Vector3d b)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Determines whether two vectors have the same value.",
        "since": "5.0",
        "parameters": [
          {
            "name": "a",
            "type": "Vector3d",
            "summary": "A vector."
          },
          {
            "name": "b",
            "type": "Vector3d",
            "summary": "Another vector."
          }
        ]
      },
      {
        "signature": "bool operator >(Vector3d a, Vector3d b)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Determines whether the first specified vector comes after (has superior sorting value than) the second vector.  \nComponents evaluation priority is first X, then Y, then Z.",
        "since": "5.0",
        "parameters": [
          {
            "name": "a",
            "type": "Vector3d",
            "summary": "The first vector."
          },
          {
            "name": "b",
            "type": "Vector3d",
            "summary": "The second vector."
          }
        ]
      },
      {
        "signature": "bool operator >=(Vector3d a, Vector3d b)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Determines whether the first specified vector comes after (has superior sorting value than) the second vector, or it is equal to it.  \nComponents evaluation priority is first X, then Y, then Z.",
        "since": "5.0",
        "parameters": [
          {
            "name": "a",
            "type": "Vector3d",
            "summary": "The first vector."
          },
          {
            "name": "b",
            "type": "Vector3d",
            "summary": "The second vector."
          }
        ]
      },
      {
        "signature": "double operator *(Vector3d vector1, Vector3d vector2)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Multiplies two vectors together, returning the dot product (or inner product). This differs from the cross product.",
        "since": "5.0",
        "parameters": [
          {
            "name": "vector1",
            "type": "Vector3d",
            "summary": "A vector."
          },
          {
            "name": "vector2",
            "type": "Vector3d",
            "summary": "A second vector."
          }
        ]
      },
      {
        "signature": "Vector3d operator -(Vector3d vector)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Computes the opposite vector.",
        "since": "5.0",
        "parameters": [
          {
            "name": "vector",
            "type": "Vector3d",
            "summary": "A vector to negate."
          }
        ]
      },
      {
        "signature": "Vector3d operator -(Vector3d vector1, Vector3d vector2)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Subtracts the second vector from the first one.",
        "since": "5.0",
        "parameters": [
          {
            "name": "vector1",
            "type": "Vector3d",
            "summary": "A vector."
          },
          {
            "name": "vector2",
            "type": "Vector3d",
            "summary": "A second vector."
          }
        ]
      },
      {
        "signature": "Vector3d operator *(double t, Vector3d vector)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Multiplies a vector by a number, having the effect of scaling it.",
        "since": "5.0",
        "parameters": [
          {
            "name": "t",
            "type": "System.Double",
            "summary": "A number."
          },
          {
            "name": "vector",
            "type": "Vector3d",
            "summary": "A vector."
          }
        ]
      },
      {
        "signature": "Vector3d operator *(Vector3d vector, double t)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Multiplies a vector by a number, having the effect of scaling it.",
        "since": "5.0",
        "parameters": [
          {
            "name": "vector",
            "type": "Vector3d",
            "summary": "A vector."
          },
          {
            "name": "t",
            "type": "System.Double",
            "summary": "A number."
          }
        ]
      },
      {
        "signature": "Vector3d operator /(Vector3d vector, double t)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Divides a <b>Vector3d</b> by a number, having the effect of shrinking it.",
        "since": "5.0",
        "parameters": [
          {
            "name": "vector",
            "type": "Vector3d",
            "summary": "A vector."
          },
          {
            "name": "t",
            "type": "System.Double",
            "summary": "A number."
          }
        ]
      },
      {
        "signature": "Vector3d operator +(Vector3d vector1, Vector3d vector2)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Sums up two vectors.",
        "parameters": [
          {
            "name": "vector1",
            "type": "Vector3d",
            "summary": "A vector."
          },
          {
            "name": "vector2",
            "type": "Vector3d",
            "summary": "A second vector."
          }
        ]
      }
    ]

  },
  {
    "namespace": "Rhino.Geometry",
    "name": "Vector3f",
    "dataType": "struct",
    "summary": "Represents the three components of a vector in three-dimensional space, using <b>Single</b> -precision floating point numbers.",
    "constructors": [
      {
        "signature": "Vector3f(float x, float y, float z)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Constructs a new vector from 3 single precision numbers.",
        "since": "5.0",
        "parameters": [
          {
            "name": "x",
            "type": "System.Single",
            "summary": "X component of vector."
          },
          {
            "name": "y",
            "type": "System.Single",
            "summary": "Y component of vector."
          },
          {
            "name": "z",
            "type": "System.Single",
            "summary": "Z component of vector."
          }
        ]
      }
    ],
    "properties": [
      {
        "signature": "Vector3f Unset",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the value of the vector with each component set to RhinoMath.UnsetValue.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "Vector3f XAxis",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the value of the vector with components 1,0,0.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "Vector3f YAxis",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the value of the vector with components 0,1,0.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "Vector3f ZAxis",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the value of the vector with components 0,0,1.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "Vector3f Zero",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the value of the vector with components 0,0,0.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "bool IsUnitVector",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets a value indicating whether or not this is a unit vector. A unit vector has length 1.",
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "bool IsValid",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns an indication regarding the validity of this vector.",
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "bool IsZero",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets a value indicating whether the X, Y, and Z values are all equal to 0.0.",
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "float Length",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Computes the length (or magnitude, or size) of this vector. This is an application of Pythagoras' theorem. If this vector is invalid, its length is considered 0.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "float SquareLength",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns the square length of the vector. This property does not check for the validity of the inputs.",
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "float X",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the X (first) component of this vector.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "float Y",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the Y (second) component of this vector.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "float Z",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the Z (third) component of this vector.",
        "since": "5.0",
        "property": ["get", "set"]
      }
    ],
    "methods": [
      {
        "signature": "Point3f Add(Point3f point, Vector3f vector)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Sums up a point and a vector, and returns a new point.  \n(Provided for languages that do not support operator overloading. You can use the + operator otherwise)",
        "since": "5.0",
        "parameters": [
          {
            "name": "point",
            "type": "Point3f",
            "summary": "A point."
          },
          {
            "name": "vector",
            "type": "Vector3f",
            "summary": "A vector."
          }
        ],
        "returns": "A new point that results from the addition of point and vector."
      },
      {
        "signature": "Vector3f Add(Vector3f vector1, Vector3f vector2)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Sums up two vectors.  \n(Provided for languages that do not support operator overloading. You can use the + operator otherwise)",
        "since": "6.0",
        "parameters": [
          {
            "name": "vector1",
            "type": "Vector3f",
            "summary": "A vector."
          },
          {
            "name": "vector2",
            "type": "Vector3f",
            "summary": "A second vector."
          }
        ],
        "returns": "A new vector that results from the component-wise addition of the two vectors."
      },
      {
        "signature": "Vector3f CrossProduct(Vector3f a, Vector3f b)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Computes the cross product (or vector product, or exterior product) of two vectors.  \nThis operation is not commutative.",
        "since": "5.0",
        "parameters": [
          {
            "name": "a",
            "type": "Vector3f",
            "summary": "First vector."
          },
          {
            "name": "b",
            "type": "Vector3f",
            "summary": "Second vector."
          }
        ],
        "returns": "A new vector that is perpendicular to both a and b,  \nhas Length == a.Length * b.Length and  \nwith a result that is oriented following the right hand rule."
      },
      {
        "signature": "Vector3f Divide(Vector3f vector, System.Double t)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Divides a <b>Vector3f</b> by a number, having the effect of shrinking it, t times.  \n(Provided for languages that do not support operator overloading. You can use the / operator otherwise)",
        "since": "6.0",
        "parameters": [
          {
            "name": "vector",
            "type": "Vector3f",
            "summary": "A vector."
          },
          {
            "name": "t",
            "type": "System.Double",
            "summary": "A number."
          }
        ],
        "returns": "A new vector that is component-wise divided by t."
      },
      {
        "signature": "Vector3f Divide(Vector3f vector, System.Single t)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Divides a <b>Vector3f</b> by a number, having the effect of shrinking it, t times.  \n(Provided for languages that do not support operator overloading. You can use the / operator otherwise)",
        "since": "6.0",
        "parameters": [
          {
            "name": "vector",
            "type": "Vector3f",
            "summary": "A vector."
          },
          {
            "name": "t",
            "type": "System.Single",
            "summary": "A number."
          }
        ],
        "returns": "A new vector that is component-wise divided by t."
      },
      {
        "signature": "Vector3f Multiply(System.Single t, Vector3f vector)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Multiplies a vector by a number, having the effect of scaling it.  \n(Provided for languages that do not support operator overloading. You can use the * operator otherwise)",
        "since": "5.0",
        "parameters": [
          {
            "name": "t",
            "type": "System.Single",
            "summary": "A number."
          },
          {
            "name": "vector",
            "type": "Vector3f",
            "summary": "A vector."
          }
        ],
        "returns": "A new vector that is the original vector coordinate-wise multiplied by t."
      },
      {
        "signature": "Vector3f Multiply(Vector3f vector, System.Single t)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Multiplies a vector by a number, having the effect of scaling it.  \n(Provided for languages that do not support operator overloading. You can use the * operator otherwise)",
        "since": "5.0",
        "parameters": [
          {
            "name": "vector",
            "type": "Vector3f",
            "summary": "A vector."
          },
          {
            "name": "t",
            "type": "System.Single",
            "summary": "A number."
          }
        ],
        "returns": "A new vector that is the original vector coordinate-wise multiplied by t."
      },
      {
        "signature": "System.Double Multiply(Vector3f point1, Vector3f point2)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Multiplies two <b>Vector3f</b> together, returning the dot (internal) product of the two. This is not the cross product.  \n(Provided for languages that do not support operator overloading. You can use the * operator otherwise)",
        "since": "6.0",
        "parameters": [
          {
            "name": "point1",
            "type": "Vector3f",
            "summary": "The first point."
          },
          {
            "name": "point2",
            "type": "Vector3f",
            "summary": "The second point."
          }
        ],
        "returns": "A value that results from the coordinate-wise multiplication of point1 and point2."
      },
      {
        "signature": "Vector3f Negate(Vector3f vector)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Computes the reversed vector.  \n(Provided for languages that do not support operator overloading. You can use the - unary operator otherwise)",
        "since": "6.0",
    "remarks": "This is similar to <b>Reverse</b> , but is static for CLR compliance, and with default name.",
        "parameters": [
          {
            "name": "vector",
            "type": "Vector3f",
            "summary": "A vector to negate."
          }
        ],
        "returns": "A new vector where all components were multiplied by -1."
      },
      {
        "signature": "Vector3f Subtract(Vector3f vector1, Vector3f vector2)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Subtracts the second vector from the first one.  \n(Provided for languages that do not support operator overloading. You can use the - operator otherwise)",
        "since": "6.0",
        "parameters": [
          {
            "name": "vector1",
            "type": "Vector3f",
            "summary": "A vector."
          },
          {
            "name": "vector2",
            "type": "Vector3f",
            "summary": "A second vector."
          }
        ],
        "returns": "A new vector that results from the component-wise difference of vector1 - vector2."
      },
      {
        "signature": "System.Int32 CompareTo(Vector3f other)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Compares this <b>Vector3f</b> with another <b>Vector3f</b> .  \nComponent evaluation priority is first X, then Y, then Z.",
        "since": "5.0",
        "parameters": [
          {
            "name": "other",
            "type": "Vector3f",
            "summary": "The other <b>Vector3f</b> to use in comparison."
          }
        ],
        "returns": "0: if this is identical to other  \n-1: if this.X < other.X  \n-1: if this.X == other.X and this.Y < other.Y  \n-1: if this.X == other.X and this.Y == other.Y and this.Z < other.Z  \n+1: otherwise."
      },
      {
        "signature": "System.Boolean EpsilonEquals(Vector3f other, System.Single epsilon)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Check that all values in other are within epsilon of the values in this",
        "since": "5.4"
      },
      {
        "signature": "System.Boolean Equals(System.Object obj)",
        "modifiers": ["public", "override"],
        "protected": false,
        "virtual": false,
        "summary": "Determines whether the specified System.Object is a Vector3f and has the same values as the present vector.",
        "parameters": [
          {
            "name": "obj",
            "type": "System.Object",
            "summary": "The specified object."
          }
        ],
        "returns": "True if obj is Vector3f and has the same components as this; otherwise false."
      },
      {
        "signature": "System.Boolean Equals(Vector3f vector)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Determines whether the specified vector has the same values as the present vector.",
        "since": "5.0",
        "parameters": [
          {
            "name": "vector",
            "type": "Vector3f",
            "summary": "The specified vector."
          }
        ],
        "returns": "True if vector has the same components as this; otherwise false."
      },
      {
        "signature": "System.Int32 GetHashCode()",
        "modifiers": ["public", "override"],
        "protected": false,
        "virtual": false,
        "summary": "Computes a hash number that represents the current vector.",
        "returns": "A hash code that is not unique for each vector."
      },
      {
        "signature": "System.Boolean PerpendicularTo(Vector3f other)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Sets this vector to be perpendicular to another vector. Result is not unitized.",
        "since": "5.0",
        "parameters": [
          {
            "name": "other",
            "type": "Vector3f",
            "summary": "Vector to use as guide."
          }
        ],
        "returns": "True on success, False if input vector is zero or invalid."
      },
      {
        "signature": "System.Boolean Reverse()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Reverses this vector in place (reverses the direction).  \nIf this vector contains RhinoMath.UnsetValue, the      reverse will also be invalid and False will be returned.",
        "since": "5.0",
    "remarks": "Similar to <b>Negate</b> , that is only provided for CLR language compliance.",
        "returns": "True on success or False if the vector is invalid."
      },
      {
        "signature": "System.Boolean Rotate(System.Double angleRadians, Vector3f rotationAxis)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Rotates this vector around a given axis.",
        "since": "5.0",
        "parameters": [
          {
            "name": "angleRadians",
            "type": "System.Double",
            "summary": "Angle of rotation (in radians)."
          },
          {
            "name": "rotationAxis",
            "type": "Vector3f",
            "summary": "Axis of rotation."
          }
        ],
        "returns": "True on success, False on failure."
      },
      {
        "signature": "System.String ToString()",
        "modifiers": ["public", "override"],
        "protected": false,
        "virtual": false,
        "summary": "Constructs the string representation of the current vector.",
        "returns": "The vector representation in the form X,Y,Z."
      },
      {
        "signature": "System.String ToString(System.String format, System.IFormatProvider formatProvider)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "7.0"
      },
      {
        "signature": "System.Void Transform(Transform transformation)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Transforms the vector in place.  \nThe transformation matrix acts on the left of the vector; i.e.,  \nresult = transformation*vector",
        "since": "5.0",
        "parameters": [
          {
            "name": "transformation",
            "type": "Transform",
            "summary": "Transformation matrix to apply."
          }
        ]
      },
      {
        "signature": "System.Boolean Unitize()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Unitizes the vector in place. A unit vector has length 1 unit.  \nAn invalid or zero length vector cannot be unitized.",
        "since": "5.0",
        "returns": "True on success or False on failure."
      }
    ],
    "operators": [
      {
        "signature": "bool operator !=(Vector3f a, Vector3f b)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Determines whether two vectors have different values.",
        "since": "5.0",
        "parameters": [
          {
            "name": "a",
            "type": "Vector3f",
            "summary": "The first vector."
          },
          {
            "name": "b",
            "type": "Vector3f",
            "summary": "The second vector."
          }
        ]
      },
      {
        "signature": "bool operator <(Vector3f a, Vector3f b)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Determines whether the first specified vector comes before (has inferior sorting value than) the second vector.  \nComponents evaluation priority is first X, then Y, then Z.",
        "since": "5.0",
        "parameters": [
          {
            "name": "a",
            "type": "Vector3f",
            "summary": "The first vector."
          },
          {
            "name": "b",
            "type": "Vector3f",
            "summary": "The second vector."
          }
        ]
      },
      {
        "signature": "bool operator <=(Vector3f a, Vector3f b)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Determines whether the first specified vector comes before (has inferior sorting value than) the second vector, or it is equal to it.  \nComponents evaluation priority is first X, then Y, then Z.",
        "since": "5.0",
        "parameters": [
          {
            "name": "a",
            "type": "Vector3f",
            "summary": "The first vector."
          },
          {
            "name": "b",
            "type": "Vector3f",
            "summary": "The second vector."
          }
        ]
      },
      {
        "signature": "bool operator ==(Vector3f a, Vector3f b)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Determines whether two vectors have equal values.",
        "since": "5.0",
        "parameters": [
          {
            "name": "a",
            "type": "Vector3f",
            "summary": "The first vector."
          },
          {
            "name": "b",
            "type": "Vector3f",
            "summary": "The second vector."
          }
        ]
      },
      {
        "signature": "bool operator >(Vector3f a, Vector3f b)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Determines whether the first specified vector comes after (has superior sorting value than) the second vector.  \nComponents evaluation priority is first X, then Y, then Z.",
        "since": "5.0",
        "parameters": [
          {
            "name": "a",
            "type": "Vector3f",
            "summary": "The first vector."
          },
          {
            "name": "b",
            "type": "Vector3f",
            "summary": "The second vector."
          }
        ]
      },
      {
        "signature": "bool operator >=(Vector3f a, Vector3f b)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Determines whether the first specified vector comes after (has superior sorting value than) the second vector, or it is equal to it.  \nComponents evaluation priority is first X, then Y, then Z.",
        "since": "5.0",
        "parameters": [
          {
            "name": "a",
            "type": "Vector3f",
            "summary": "The first vector."
          },
          {
            "name": "b",
            "type": "Vector3f",
            "summary": "The second vector."
          }
        ]
      },
      {
        "signature": "double operator *(Vector3f point1, Vector3f point2)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Multiplies two <b>Vector3f</b> together, returning the dot (internal) product of the two. This is not the cross product.",
        "since": "5.0",
        "parameters": [
          {
            "name": "point1",
            "type": "Vector3f",
            "summary": "The first point."
          },
          {
            "name": "point2",
            "type": "Vector3f",
            "summary": "The second point."
          }
        ]
      },
      {
        "signature": "Point3f operator +(Point3f point, Vector3f vector)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Sums up a point and a vector, and returns a new point.",
        "parameters": [
          {
            "name": "point",
            "type": "Point3f",
            "summary": "A point."
          },
          {
            "name": "vector",
            "type": "Vector3f",
            "summary": "A vector."
          }
        ]
      },
      {
        "signature": "Vector3f operator -(Vector3f vector)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Computes the opposite vector.",
        "since": "6.0",
        "parameters": [
          {
            "name": "vector",
            "type": "Vector3f",
            "summary": "A vector to negate."
          }
        ]
      },
      {
        "signature": "Vector3f operator -(Vector3f vector1, Vector3f vector2)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Subtracts the second vector from the first one.",
        "since": "6.0",
        "parameters": [
          {
            "name": "vector1",
            "type": "Vector3f",
            "summary": "A vector."
          },
          {
            "name": "vector2",
            "type": "Vector3f",
            "summary": "A second vector."
          }
        ]
      },
      {
        "signature": "Vector3f operator *(float t, Vector3f vector)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Multiplies a vector by a number, having the effect of scaling it.",
        "since": "5.0",
        "parameters": [
          {
            "name": "t",
            "type": "System.Single",
            "summary": "A number."
          },
          {
            "name": "vector",
            "type": "Vector3f",
            "summary": "A vector."
          }
        ]
      },
      {
        "signature": "Vector3f operator *(Vector3f vector, float t)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Multiplies a vector by a number, having the effect of scaling it.",
        "since": "5.0",
        "parameters": [
          {
            "name": "vector",
            "type": "Vector3f",
            "summary": "A vector."
          },
          {
            "name": "t",
            "type": "System.Single",
            "summary": "A number."
          }
        ]
      },
      {
        "signature": "Vector3f operator /(Vector3f vector, double t)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Divides a <b>Vector3f</b> by a number, having the effect of shrinking it, t times.",
        "since": "6.0",
        "parameters": [
          {
            "name": "vector",
            "type": "Vector3f",
            "summary": "A vector."
          },
          {
            "name": "t",
            "type": "System.Double",
            "summary": "A number."
          }
        ]
      },
      {
        "signature": "Vector3f operator /(Vector3f vector, float t)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Divides a <b>Vector3f</b> by a number, having the effect of shrinking it, t times.",
        "since": "6.0",
        "parameters": [
          {
            "name": "vector",
            "type": "Vector3f",
            "summary": "A vector."
          },
          {
            "name": "t",
            "type": "System.Single",
            "summary": "A number."
          }
        ]
      },
      {
        "signature": "Vector3f operator +(Vector3f vector1, Vector3f vector2)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Sums up two vectors.",
        "parameters": [
          {
            "name": "vector1",
            "type": "Vector3f",
            "summary": "A vector."
          },
          {
            "name": "vector2",
            "type": "Vector3f",
            "summary": "A second vector."
          }
        ]
      }
    ]

  },
  {
    "namespace": "Rhino.Geometry",
    "name": "VolumeMassProperties",
    "dataType": "class",
    "summary": "Contains static initialization methods and allows access to the computed metrics of volume, volume centroid and volume moments in in solid meshes, in solid surfaces and in solid (closed) boundary representations.",
    "interfaces": ["IDisposable"],
    "constructors": [
      {
        "signature": "VolumeMassProperties()",
        "summary": "Initializes a new instance of the VolumeMassProperties class"
      }
    ],
    "properties": [
      {
        "signature": "Point3d Centroid",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the volume centroid in the world coordinate system.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "Vector3d CentroidCoordinatesMomentsOfInertia",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Moments of inertia with respect to centroid coordinate system. X = integral of ((y-y0)^2 + (z-z0)^2) dm Y = integral of ((z-z0)^2 + (x-x0)^2) dm Z = integral of ((z-z0)^2 + (y-y0)^2) dm where (x0,y0,z0) = centroid.",
        "since": "5.0",
    "remarks": "What is meant by \"moments of inertia\" varies widely in textbooks and papers. The values returned here are the integrals listed in the Summary section. Some applications may want the values from WorldCoordinatesSecondMoments instead of the values returned here.",
        "property": ["get"]
      },
      {
        "signature": "Vector3d CentroidCoordinatesMomentsOfInertiaError",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Uncertainty in centroid coordinates moments of inertia calculation.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "Vector3d CentroidCoordinatesProductMoments",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Product moments with respect to centroid coordinate system.",
        "since": "6.26",
        "property": ["get"]
      },
      {
        "signature": "Vector3d CentroidCoordinatesProductMomentsError",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Uncertainty in product moments with respect to centroid coordinate system.",
        "since": "6.26",
        "property": ["get"]
      },
      {
        "signature": "Vector3d CentroidCoordinatesRadiiOfGyration",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Radii of gyration with respect to centroid coordinate system. X = sqrt(integral of ((y-y0)^2 + (z-z0)^2) dm/M) Y = sqrt(integral of ((z-z0)^2 + (x-x0)^2) dm/M) Z = sqrt(integral of ((z-z0)^2 + (y-y0)^2) dm/M) where (x0,y0,z0) = centroid.",
        "since": "5.0",
    "remarks": "What is meant by \"radii of gyration\" varies widely in textbooks and papers. The values returned here are the integrals listed in the Returns section.",
        "property": ["get"]
      },
      {
        "signature": "Vector3d CentroidCoordinatesSecondMoments",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Second moments with respect to centroid coordinate system. X = integral of (x-x0)^2 dm Y = integral of (y-y0)^2 dm Z = integral of (z-z0)^2 dm where (x0,y0,z0) = centroid.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "Vector3d CentroidCoordinatesSecondMomentsError",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Uncertainty in centroid coordinates second moments calculation.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "Vector3d CentroidError",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the uncertainty in the Centroid calculation.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "double Volume",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the volume solution.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "double VolumeError",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the uncertainty in the volume calculation.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "Vector3d WorldCoordinatesFirstMoments",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns the world coordinate first moments if they were able to be calculated. X is integral of \"x dm\" over the volume Y is integral of \"y dm\" over the volume Z is integral of \"z dm\" over the volume.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "Vector3d WorldCoordinatesFirstMomentsError",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Uncertainty in world coordinates first moments calculation.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "Vector3d WorldCoordinatesMomentsOfInertia",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "The moments of inertia about the world coordinate axes. X = integral of (y^2 + z^2) dm Y = integral of (z^2 + x^2) dm Z = integral of (z^2 + y^2) dm.",
        "since": "5.0",
    "remarks": "What is meant by \"moments of inertia\" varies widely in textbooks and papers. The values returned here are the integrals listed in the Summary section. Some applications may want the values from WorldCoordinatesSecondMoments instead of the values returned here.",
        "property": ["get"]
      },
      {
        "signature": "Vector3d WorldCoordinatesMomentsOfInertiaError",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Uncertainty in world coordinates moments of inertia calculation.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "Vector3d WorldCoordinatesProductMoments",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns the world coordinate product moments if they were able to be calculated. X is integral of \"xy dm\" over the volume Y is integral of \"yz dm\" over the volume Z is integral of \"zx dm\" over the volume.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "Vector3d WorldCoordinatesProductMomentsError",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Uncertainty in world coordinates second moments calculation.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "Vector3d WorldCoordinatesRadiiOfGyration",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Radii of gyration with respect to world coordinate system. X = sqrt(integral of (y^2 + z^2) dm/M) Y = sqrt(integral of (z^2 + x^2) dm/M) Z = sqrt(integral of (z^2 + y^2) dm/M)",
        "since": "5.0",
    "remarks": "What is meant by \"radii of gyration\" varies widely in textbooks and papers. The values returned here are the integrals listed in the Returns section.",
        "property": ["get"]
      },
      {
        "signature": "Vector3d WorldCoordinatesSecondMoments",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns the world coordinate second moments if they were able to be calculated. X is integral of \"xx dm\" over the volume Y is integral of \"yy dm\" over the volume Z is integral of \"zz dm\" over the volume.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "Vector3d WorldCoordinatesSecondMomentsError",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Uncertainty in world coordinates second moments calculation.",
        "since": "5.0",
        "property": ["get"]
      }
    ],
    "methods": [
      {
        "signature": "VolumeMassProperties Compute(Brep brep, System.Boolean volume, System.Boolean firstMoments, System.Boolean secondMoments, System.Boolean productMoments, System.Double relativeTolerance, System.Double absoluteTolerance)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Compute the VolumeMassProperties for a single Brep.",
        "since": "7.10",
        "parameters": [
          {
            "name": "brep",
            "type": "Brep",
            "summary": "Brep to measure."
          },
          {
            "name": "volume",
            "type": "System.Boolean",
            "summary": "True to calculate volume."
          },
          {
            "name": "firstMoments",
            "type": "System.Boolean",
            "summary": "True to calculate volume first moments, volume, and volume centroid."
          },
          {
            "name": "secondMoments",
            "type": "System.Boolean",
            "summary": "True to calculate volume second moments."
          },
          {
            "name": "productMoments",
            "type": "System.Boolean",
            "summary": "True to calculate volume product moments."
          },
          {
            "name": "relativeTolerance",
            "type": "System.Double",
            "summary": "The relative tolerance used for the calculation. In overloads of this function where tolerances are not specified, 1.0e-6 is used."
          },
          {
            "name": "absoluteTolerance",
            "type": "System.Double",
            "summary": "The absolute tolerancwe used for the calculation. In overloads of this function where tolerances are not specified, 1.0e-6 is used."
          }
        ],
        "returns": "The VolumeMassProperties for the given Brep or None on failure."
      },
      {
        "signature": "VolumeMassProperties Compute(Brep brep, System.Boolean volume, System.Boolean firstMoments, System.Boolean secondMoments, System.Boolean productMoments)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Compute the VolumeMassProperties for a single Brep.",
        "since": "6.3",
        "parameters": [
          {
            "name": "brep",
            "type": "Brep",
            "summary": "Brep to measure."
          },
          {
            "name": "volume",
            "type": "System.Boolean",
            "summary": "True to calculate volume."
          },
          {
            "name": "firstMoments",
            "type": "System.Boolean",
            "summary": "True to calculate volume first moments, volume, and volume centroid."
          },
          {
            "name": "secondMoments",
            "type": "System.Boolean",
            "summary": "True to calculate volume second moments."
          },
          {
            "name": "productMoments",
            "type": "System.Boolean",
            "summary": "True to calculate volume product moments."
          }
        ],
        "returns": "The VolumeMassProperties for the given Brep or None on failure."
      },
      {
        "signature": "VolumeMassProperties Compute(Brep brep)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Compute the VolumeMassProperties for a single Brep.",
        "since": "5.0",
        "parameters": [
          {
            "name": "brep",
            "type": "Brep",
            "summary": "Brep to measure."
          }
        ],
        "returns": "The VolumeMassProperties for the given Brep or None on failure."
      },
      {
        "signature": "VolumeMassProperties Compute(IEnumerable<GeometryBase> geometry, System.Boolean volume, System.Boolean firstMoments, System.Boolean secondMoments, System.Boolean productMoments)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Computes the VolumeMassProperties for a collection of geometric objects. At present only Breps, Surfaces, Meshes and Planar Closed Curves are supported.",
        "since": "6.3",
        "parameters": [
          {
            "name": "geometry",
            "type": "IEnumerable<GeometryBase>",
            "summary": "Objects to include in the volume computation."
          },
          {
            "name": "volume",
            "type": "System.Boolean",
            "summary": "True to calculate volume."
          },
          {
            "name": "firstMoments",
            "type": "System.Boolean",
            "summary": "True to calculate volume first moments, volume, and volume centroid."
          },
          {
            "name": "secondMoments",
            "type": "System.Boolean",
            "summary": "True to calculate volume second moments."
          },
          {
            "name": "productMoments",
            "type": "System.Boolean",
            "summary": "True to calculate volume product moments."
          }
        ],
        "returns": "The VolumeMassProperties for the entire collection or None on failure."
      },
      {
        "signature": "VolumeMassProperties Compute(IEnumerable<GeometryBase> geometry)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Computes the VolumeMassProperties for a collection of geometric objects. At present only Breps, Surfaces, and Meshes are supported.",
        "since": "6.3",
        "parameters": [
          {
            "name": "geometry",
            "type": "IEnumerable<GeometryBase>",
            "summary": "Objects to include in the volume computation."
          }
        ],
        "returns": "The VolumeMassProperties for the entire collection or None on failure."
      },
      {
        "signature": "VolumeMassProperties Compute(Mesh mesh, System.Boolean volume, System.Boolean firstMoments, System.Boolean secondMoments, System.Boolean productMoments)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Compute the VolumeMassProperties for a single Mesh.",
        "since": "6.3",
        "parameters": [
          {
            "name": "mesh",
            "type": "Mesh",
            "summary": "Mesh to measure."
          },
          {
            "name": "volume",
            "type": "System.Boolean",
            "summary": "True to calculate volume."
          },
          {
            "name": "firstMoments",
            "type": "System.Boolean",
            "summary": "True to calculate volume first moments, volume, and volume centroid."
          },
          {
            "name": "secondMoments",
            "type": "System.Boolean",
            "summary": "True to calculate volume second moments."
          },
          {
            "name": "productMoments",
            "type": "System.Boolean",
            "summary": "True to calculate volume product moments."
          }
        ],
        "returns": "The VolumeMassProperties for the given Mesh or None on failure."
      },
      {
        "signature": "VolumeMassProperties Compute(Mesh mesh)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Compute the VolumeMassProperties for a single Mesh.",
        "since": "5.0",
        "parameters": [
          {
            "name": "mesh",
            "type": "Mesh",
            "summary": "Mesh to measure."
          }
        ],
        "returns": "The VolumeMassProperties for the given Mesh or None on failure."
      },
      {
        "signature": "VolumeMassProperties Compute(Surface surface, System.Boolean volume, System.Boolean firstMoments, System.Boolean secondMoments, System.Boolean productMoments)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Compute the VolumeMassProperties for a single Surface.",
        "since": "6.3",
        "parameters": [
          {
            "name": "surface",
            "type": "Surface",
            "summary": "Surface to measure."
          },
          {
            "name": "volume",
            "type": "System.Boolean",
            "summary": "True to calculate volume."
          },
          {
            "name": "firstMoments",
            "type": "System.Boolean",
            "summary": "True to calculate volume first moments, volume, and volume centroid."
          },
          {
            "name": "secondMoments",
            "type": "System.Boolean",
            "summary": "True to calculate volume second moments."
          },
          {
            "name": "productMoments",
            "type": "System.Boolean",
            "summary": "True to calculate volume product moments."
          }
        ],
        "returns": "The VolumeMassProperties for the given Surface or None on failure."
      },
      {
        "signature": "VolumeMassProperties Compute(Surface surface)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Compute the VolumeMassProperties for a single Surface.",
        "since": "5.0",
        "parameters": [
          {
            "name": "surface",
            "type": "Surface",
            "summary": "Surface to measure."
          }
        ],
        "returns": "The VolumeMassProperties for the given Surface or None on failure."
      },
      {
        "signature": "VolumeMassProperties WeightedSum(IEnumerable<VolumeMassProperties> summands, IEnumerable<double> weights)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Sum a list of mass properties together to get an aggregate mass, weighting each by a density factor.Ignores existing mass properties in this object.",
        "since": "9.0",
        "parameters": [
          {
            "name": "summands",
            "type": "IEnumerable<VolumeMassProperties>",
            "summary": "An array of mass properties to add."
          },
          {
            "name": "weights",
            "type": "IEnumerable<double>",
            "summary": "An array of non-negative densities, of the same length as summands."
          }
        ],
        "returns": "An VolumeMassProperties containing the result if successful, None if a failure occurs."
      },
      {
        "signature": "System.Boolean CentroidCoordinatesPrincipalMoments(out System.Double x, out Vector3d xaxis, out System.Double y, out Vector3d yaxis, out System.Double z, out Vector3d zaxis)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Calculates the eigenvalues and eigenvectors of the moments matrix with respect to centroid coordinates.",
        "since": "6.9",
        "parameters": [
          {
            "name": "x",
            "type": "System.Double",
            "summary": "Principal moment."
          },
          {
            "name": "xaxis",
            "type": "Vector3d",
            "summary": "Principal axis for x."
          },
          {
            "name": "y",
            "type": "System.Double",
            "summary": "Principal moment."
          },
          {
            "name": "yaxis",
            "type": "Vector3d",
            "summary": "Principal axis for y."
          },
          {
            "name": "z",
            "type": "System.Double",
            "summary": "Principal moment."
          },
          {
            "name": "zaxis",
            "type": "Vector3d",
            "summary": "Principal axis for z."
          }
        ],
        "returns": "True if successful."
      },
      {
        "signature": "System.Boolean CentroidCoordinatesPrincipalMomentsOfInertia(out System.Double x, out Vector3d xaxis, out System.Double y, out Vector3d yaxis, out System.Double z, out Vector3d zaxis)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Calculates the principal moments of inertia and principal axes with respect to centroid coordinates.",
        "since": "7.3",
        "parameters": [
          {
            "name": "x",
            "type": "System.Double",
            "summary": "Principal moment."
          },
          {
            "name": "xaxis",
            "type": "Vector3d",
            "summary": "Principal axis for x."
          },
          {
            "name": "y",
            "type": "System.Double",
            "summary": "Principal moment."
          },
          {
            "name": "yaxis",
            "type": "Vector3d",
            "summary": "Principal axis for y."
          },
          {
            "name": "z",
            "type": "System.Double",
            "summary": "Principal moment."
          },
          {
            "name": "zaxis",
            "type": "Vector3d",
            "summary": "Principal axis for z."
          }
        ],
        "returns": "True if successful."
      },
      {
        "signature": "System.Void Dispose()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Actively reclaims unmanaged resources that this instance uses.",
        "since": "5.0"
      },
      {
        "signature": "System.Void Dispose(System.Boolean disposing)",
        "modifiers": ["protected", "virtual"],
        "protected": true,
        "virtual": true,
        "summary": "For derived class implementers.  \nThis method is called with argument True when class user calls Dispose(), while with argument False when     the Garbage Collector invokes the finalizer, or Finalize() method.  \nYou must reclaim all used unmanaged resources in both cases, and can use this chance to call Dispose on disposable fields if the argument is true.  \nAlso, you must call the base virtual method within your overriding method.",
        "parameters": [
          {
            "name": "disposing",
            "type": "System.Boolean",
            "summary": "True if the call comes from the Dispose() method; False if it comes from the Garbage Collector finalizer."
          }
        ]
      },
      {
        "signature": "System.Boolean Sum(IEnumerable<VolumeMassProperties> summands, System.Boolean bAddTo)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Sum mass properties together to get an aggregate mass.",
        "since": "9.0",
        "parameters": [
          {
            "name": "summands",
            "type": "IEnumerable<VolumeMassProperties>",
            "summary": "An array of mass properties to add."
          },
          {
            "name": "bAddTo",
            "type": "System.Boolean",
            "summary": "If true, then the summands are added to the existing mass."
          }
        ],
        "returns": "True if successful."
      },
      {
        "signature": "System.Boolean Sum(VolumeMassProperties summand)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Sum mass properties together to get an aggregate mass.",
        "parameters": [
          {
            "name": "summand",
            "type": "VolumeMassProperties",
            "summary": "mass properties to add."
          }
        ],
        "returns": "True if successful."
      },
      {
        "signature": "System.Boolean Transform(Transform xform)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "On input, this contains the mass properties for some geometry G. On exit, this contains the mass properties for the transformed geometry xform(G).",
        "since": "8.12",
    "remarks": "The Area of a transformed object can not be calculated from the area of the original object if the transform is not a similarity, like a non-uniform scaling.",
        "parameters": [
          {
            "name": "xform",
            "type": "Transform",
            "summary": "The transformation. When computing volumne mass properties, transform must be an affine transformation, or <b>Geometry.Transform.IsAffine</b> . When computing area mass properties, transform must be a similarity transformation, or <b>Geometry.Transform.IsSimilarity</b> . Perspective transformations are not allowed."
          }
        ],
        "returns": "True if successful, False otherwise."
      },
      {
        "signature": "System.Boolean WorldCoordinatesPrincipalMoments(out System.Double x, out Vector3d xaxis, out System.Double y, out Vector3d yaxis, out System.Double z, out Vector3d zaxis)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Calculates the eigenvalues and eigenvectors of moments matrix in world coordinates.",
        "since": "6.9",
        "parameters": [
          {
            "name": "x",
            "type": "System.Double",
            "summary": "Principal moment."
          },
          {
            "name": "xaxis",
            "type": "Vector3d",
            "summary": "Principal axis for x."
          },
          {
            "name": "y",
            "type": "System.Double",
            "summary": "Principal moment."
          },
          {
            "name": "yaxis",
            "type": "Vector3d",
            "summary": "Principal axis for y."
          },
          {
            "name": "z",
            "type": "System.Double",
            "summary": "Principal moment."
          },
          {
            "name": "zaxis",
            "type": "Vector3d",
            "summary": "Principal axis for z."
          }
        ],
        "returns": "True if successful."
      },
      {
        "signature": "System.Boolean WorldCoordinatesPrincipalMomentsOfInertia(out System.Double x, out Vector3d xaxis, out System.Double y, out Vector3d yaxis, out System.Double z, out Vector3d zaxis)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Calculates the principal moments of inertia and principal axes with respect to world coordinates.",
        "since": "7.3",
        "parameters": [
          {
            "name": "x",
            "type": "System.Double",
            "summary": "Principal moment."
          },
          {
            "name": "xaxis",
            "type": "Vector3d",
            "summary": "Principal axis for x."
          },
          {
            "name": "y",
            "type": "System.Double",
            "summary": "Principal moment."
          },
          {
            "name": "yaxis",
            "type": "Vector3d",
            "summary": "Principal axis for y."
          },
          {
            "name": "z",
            "type": "System.Double",
            "summary": "Principal moment."
          },
          {
            "name": "zaxis",
            "type": "Vector3d",
            "summary": "Principal axis for z."
          }
        ],
        "returns": "True if successful."
      }
    ]
  },
  {
    "namespace": "Rhino",
    "name": "GpuDeviceInfo",
    "dataType": "class",
    "summary": "Represents a GPU device providing name, vendor and memory all as strings.  Currently fully implemented only on Windows.",
    "properties": [
      {
        "signature": "string DriverDateAsString",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "The driver date as string formatted year-month-day",
        "since": "7.4",
        "property": ["get", "set"]
      },
      {
        "signature": "ulong Memory",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Memory of the device in bytes",
        "since": "7.3",
        "property": ["get", "set"]
      },
      {
        "signature": "string MemoryAsString",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Memory of the device as a human-readable string",
        "since": "7.3",
        "property": ["get", "set"]
      },
      {
        "signature": "string Name",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Name of the device",
        "since": "7.3",
        "property": ["get", "set"]
      },
      {
        "signature": "string Vendor",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Vendor of the device",
        "since": "7.3",
        "property": ["get", "set"]
      }
    ]
  },
  {
    "namespace": "Rhino",
    "name": "IEpsilonComparable",
    "dataType": "interface",
    "methods": [
      {
        "signature": "System.Boolean EpsilonEquals(T other, System.Double epsilon)",
        "modifiers": [],
        "protected": true,
        "virtual": false
      }
    ]
  },
  {
    "namespace": "Rhino",
    "name": "IEpsilonFComparable",
    "dataType": "interface",
    "methods": [
      {
        "signature": "System.Boolean EpsilonEquals(T other, System.Single epsilon)",
        "modifiers": [],
        "protected": true,
        "virtual": false
      }
    ]
  },
  {
    "namespace": "Rhino",
    "name": "IndexPair",
    "dataType": "struct",
    "summary": "Represents two indices: I and J.",
    "constructors": [
      {
        "signature": "IndexPair(int i, int j)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Initializes a new instance of <b>IndexPair</b> with two indices.",
        "since": "5.0",
        "parameters": [
          {
            "name": "i",
            "type": "System.Int32",
            "summary": "A first index."
          },
          {
            "name": "j",
            "type": "System.Int32",
            "summary": "A second index."
          }
        ]
      }
    ],
    "properties": [
      {
        "signature": "int Count",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns the amount of elements in this pair of indices, which is always 2.",
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "int I",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the first, I index.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "int J",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the second, J index.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "int this[int index]",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets a particular index of this structure. Only 0 and 1 are valid indices.",
    "remarks": "Only 0 and 1 are valid indices."
      }
    ],
    "methods": [
      {
        "signature": "System.Boolean Contains(System.Int32 item)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Determines whether the <b>IndexPair</b> contains a specific value.",
        "since": "6.0",
        "parameters": [
          {
            "name": "item",
            "type": "System.Int32",
            "summary": "The number to locate in the <b>IndexPair</b> ."
          }
        ],
        "returns": "True ifis found in the <b>IndexPair</b> ; otherwise, false."
      },
      {
        "signature": "System.Void CopyTo(System.Int32[] array, System.Int32 arrayIndex)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Copies the elements of the <b>IndexPair</b> to an <b>T:System.Array</b> , starting at a particular <b>T:System.Array</b> index.",
        "since": "6.0",
        "parameters": [
          {
            "name": "array",
            "type": "System.Int32[]",
            "summary": "The one-dimensional <b>T:System.Array</b> that is the destination of the elements copied from <b>IndexPair</b> . The <b>T:System.Array</b> must have zero-based indexing."
          },
          {
            "name": "arrayIndex",
            "type": "System.Int32",
            "summary": "The zero-based index inat which copying begins."
          }
        ]
      },
      {
        "signature": "IEnumerator<int> GetEnumerator()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets an enumerator that goes over <b>I</b> and <b>J</b> , in this order.",
        "since": "6.0",
        "returns": "The needed enumerator."
      },
      {
        "signature": "System.Int32 IndexOf(System.Int32 item)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Determines the index of a specific item in <b>IndexPair</b> .",
        "since": "6.0",
        "parameters": [
          {
            "name": "item",
            "type": "System.Int32",
            "summary": "The object to locate in the <b>T:System.Collections.Generic.IList`1</b> ."
          }
        ],
        "returns": "The index, 0 for I or 1 for J ofif found in the list; otherwise, -1."
      }
    ]
  },
  {
    "namespace": "Rhino.Input.Custom",
    "name": "CommandLineOption",
    "dataType": "class",
    "properties": [
      {
        "signature": "int CurrentListOptionIndex",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "double CurrentNumericValue",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "8.0",
        "property": ["get"]
      },
      {
        "signature": "bool? CurrentToggleValue",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "8.0",
        "property": ["get"]
      },
      {
        "signature": "string EnglishName",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "The English command option name",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "int Index",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "string LocalName",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "The localized command option name",
        "since": "6.24",
        "property": ["get"]
      },
      {
        "signature": "CommandLineOptionType OptionType",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "The type of this command line option",
        "since": "8.0",
        "property": ["get"]
      },
      {
        "signature": "string StringOptionValue",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Assigned by RhinoGet.Get if an option value is specified in a script or by a command window control.",
        "since": "6.24",
        "property": ["get"]
      }
    ],
    "methods": [
      {
        "signature": "System.Boolean IsValidOptionName(System.String optionName)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Test a string to see if it can be used as an option name in any of the RhinoGet::AddCommandOption...() functions.",
        "since": "5.0",
        "parameters": [
          {
            "name": "optionName",
            "type": "System.String",
            "summary": "The string to be tested."
          }
        ],
        "returns": "True if string can be used as an option name."
      },
      {
        "signature": "System.Boolean IsValidOptionValueName(System.String optionValue)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Test a string to see if it can be used as an option value in RhinoGet::AddCommandOption, RhinoGet::AddCommandOptionToggle, or RhinoGet::AddCommandOptionList.",
        "since": "5.0",
        "parameters": [
          {
            "name": "optionValue",
            "type": "System.String",
            "summary": "The string to be tested."
          }
        ],
        "returns": "True if string can be used as an option value."
      },
      {
        "signature": "System.String[] ListOptions(System.Boolean english)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "If this OptionType is a list, then the option should contain a list of values that the user can pick from.",
        "since": "8.0",
        "parameters": [
          {
            "name": "english",
            "type": "System.Boolean",
            "summary": "return the English or local versions of the list options"
          }
        ]
      },
      {
        "signature": "System.Void ToggleValues(System.Boolean english, out System.String offValue, out System.String onValue)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "8.0"
      }
    ]
  },
  {
    "namespace": "Rhino.Input.Custom",
    "name": "CommandLineOptionType",
    "dataType": "enum",
    "summary": "Behavior for a command line option",
    "since": "8.0",
    "values": [
      {
        "signature": "Simple = 0",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Number = 1",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Toggle = 2",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Color = 3",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "List = 4",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Hidden = 5",
        "modifiers": [],
        "protected": false,
        "virtual": false
      }
    ]

  },
  {
    "namespace": "Rhino.Input.Custom",
    "name": "ConeConstraint",
    "dataType": "enum",
    "since": "6.0",
    "values": [
      {
        "signature": "None = 0",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Vertical = 1",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "AroundCurve = 2",
        "modifiers": [],
        "protected": false,
        "virtual": false
      }
    ]

  },
  {
    "namespace": "Rhino.Input.Custom",
    "name": "CylinderConstraint",
    "dataType": "enum",
    "since": "6.0",
    "values": [
      {
        "signature": "None = 0",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Vertical = 1",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "AroundCurve = 2",
        "modifiers": [],
        "protected": false,
        "virtual": false
      }
    ]

  },
  {
    "namespace": "Rhino.Input.Custom",
    "name": "GeometryAttributeFilter",
    "dataType": "enum",
    "summary": "If an object passes the geometry TYPE filter, then the geometry ATTRIBUTE filter is applied.",
    "since": "5.0",
    "values": [
      {
        "signature": "WireCurve = 1<<0",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "3d wire curve If you want to accept only wire or edge curves, then specify wire_curve or edge_curve, otherwise both wire and edge curves will pass the attribute filter."
      },
      {
        "signature": "EdgeCurve = 1 << 1",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "3d curve of a surface edge If you want to accept only wire or edge curves, then specify wire_curve or edge_curve, otherwise both wire and edge curves will pass the attribute filter."
      },
      {
        "signature": "ClosedCurve = 1<<2",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Closed Curves and Edges are acceptable If you want to accept only closed or open curves, then specify either closed_curve or open_curve.  Otherwise both closed and open curves will pass the attribute filter."
      },
      {
        "signature": "OpenCurve = 1 << 3",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Open Curves and Edges are acceptable If you want to accept only closed or open curves, then specify either closed_curve or open_curve.  Otherwise both closed and open curves will pass the attribute filter."
      },
      {
        "signature": "SeamEdge = 1<<4",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "seam edges are acceptable attributes of acceptable trimming edge objects (associated with an ON_BrepTrim).  If none of these attributes are explicitly specified, then any kind of trimming edge will pass the attribute filter."
      },
      {
        "signature": "ManifoldEdge = 1 << 5",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "edges with 2 different surfaces pass attributes of acceptable trimming edge objects (associated with an ON_BrepTrim).  If none of these attributes are explicitly specified, then any kind of trimming edge will pass the attribute filter."
      },
      {
        "signature": "NonmanifoldEdge = 1 << 6",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "edges with 3 or more surfaces pass attributes of acceptable trimming edge objects (associated with an ON_BrepTrim).  If none of these attributes are explicitly specified, then any kind of trimming edge will pass the attribute filter."
      },
      {
        "signature": "MatedEdge = (1 << 4) | (1 << 5) | (1 << 6)",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "any mated edge passes attributes of acceptable trimming edge objects (associated with an ON_BrepTrim).  If none of these attributes are explicitly specified, then any kind of trimming edge will pass the attribute filter."
      },
      {
        "signature": "SurfaceBoundaryEdge = 1 << 7",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "boundary edges on surface sides pass attributes of acceptable trimming edge objects (associated with an ON_BrepTrim).  If none of these attributes are explicitly specified, then any kind of trimming edge will pass the attribute filter."
      },
      {
        "signature": "TrimmingBoundaryEdge = 1 << 8",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "boundary edges that trim a surface pass attributes of acceptable trimming edge objects (associated with an ON_BrepTrim).  If none of these attributes are explicitly specified, then any kind of trimming edge will pass the attribute filter."
      },
      {
        "signature": "BoundaryEdge = (1 << 7) | (1 << 8)",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "ant boundary edge passes attributes of acceptable trimming edge objects (associated with an ON_BrepTrim).  If none of these attributes are explicitly specified, then any kind of trimming edge will pass the attribute filter."
      },
      {
        "signature": "ClosedSurface = 1 << 9",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "If you want to accept only closed or open surfaces, then specify either closed_surface or open_surface.  Otherwise both closed and open surfaces will pass the attribute filter."
      },
      {
        "signature": "OpenSurface = 1 << 10",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "If you want to accept only closed or open surfaces, then specify either closed_surface or open_surface.  Otherwise both closed and open surfaces will pass the attribute filter."
      },
      {
        "signature": "TrimmedSurface = 1 << 11",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "If you want to accept only trimmed or untrimmed surfaces, then specify either trimmed_surface or untrimmed_surface.  Otherwise both trimmed and untrimmed surfaces will pass the attribute filter."
      },
      {
        "signature": "UntrimmedSurface = 1 << 12",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "If you want to accept only trimmed or untrimmed surfaces, then specify either trimmed_surface or untrimmed_surface.  Otherwise both trimmed and untrimmed surfaces will pass the attribute filter."
      },
      {
        "signature": "SubSurface = 1 << 13",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "If you want to accept only sub-surfaces of (multi-surface) polysurface, then specify sub_surface.  If you do not want to accept sub-surfaces, then specify top_surface.  Otherwise sub-surfaces and top surfaces will pass the attribute filter."
      },
      {
        "signature": "TopSurface = 1 << 14",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "If you want to accept only sub-surfaces of (multi-surface) polysurface, then specify sub_surface.  If you do not want to accept sub-surfaces, then specify top_surface.  Otherwise sub-surfaces and top surfaces will pass the attribute filter."
      },
      {
        "signature": "ManifoldPolysrf = 1 << 15",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "If you want to accept only manifold or non-manifold polysurfaces, then specify manifold_polysrf or nonmanifold_polysrf. Otherwise both manifold and non-manifold polysurfaces will pass the attribute filter."
      },
      {
        "signature": "NonmanifoldPolysrf = 1 << 16",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "If you want to accept only manifold or non-manifold polysurfaces, then specify manifold_polysrf or nonmanifold_polysrf. Otherwise both manifold and non-manifold polysurfaces will pass the attribute filter."
      },
      {
        "signature": "ClosedPolysrf = 1 << 17",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "If you want to accept only closed or open polysurfaces, then specify either closed_polysrf or open_polysrf.  Otherwise both closed and open polysurfaces will pass the attribute filter."
      },
      {
        "signature": "OpenPolysrf = 1 << 18",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "If you want to accept only closed or open polysurfaces, then specify either closed_polysrf or open_polysrf.  Otherwise both closed and open polysurfaces will pass the attribute filter."
      },
      {
        "signature": "ClosedMesh = 1 << 19",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "If you want to accept only closed or open meshes, then specify either closed_mesh or open_mesh.  Otherwise both closed and open meshes will pass the attribute filter."
      },
      {
        "signature": "OpenMesh = 1 << 20",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "If you want to accept only closed or open meshes, then specify either closed_mesh or open_mesh.  Otherwise both closed and open meshes will pass the attribute filter."
      },
      {
        "signature": "BoundaryInnerLoop = 1 << 21",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "all trimming edges are boundary edges."
      },
      {
        "signature": "MatedInnerLoop = 1 << 22",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "all trimming edges are mated."
      },
      {
        "signature": "InnerLoop = (1 << 21) | (1 << 22)",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "any inner loop is acceptable."
      },
      {
        "signature": "BoundaryOuterLoop = 1 << 23",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "all trimming edges are boundary edges."
      },
      {
        "signature": "MatedOuterLoop = 1 << 24",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "all trimming edges are mated."
      },
      {
        "signature": "OuterLoop = (1 << 23) | (1 << 24)",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "any outer loop is acceptable."
      },
      {
        "signature": "SpecialLoop = (1 << 25)",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "slit, curve-on-surface, point-on-surface, etc."
      },
      {
        "signature": "AcceptAllAttributes = 0xffffffff",
        "modifiers": [],
        "protected": false,
        "virtual": false
      }
    ]

  },
  {
    "namespace": "Rhino.Input.Custom",
    "name": "GetArc",
    "dataType": "class",
    "interfaces": ["IDisposable"],
    "constructors": [
      {
        "signature": "GetArc()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0"
      }
    ],
    "properties": [
      {
        "signature": "bool AllowDeformable",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Allow for deformable options",
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "double DefaultRadius",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Default radius used for start and end radius",
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool Deformable",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Is the deformable option set",
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "int DeformableDegree",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "int DeformablePointCount",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool UseActiveLayerLinetypeForCurves",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "8.0",
        "property": ["get", "set"]
      }
    ],
    "methods": [
      {
        "signature": "System.Void Dispose()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Actively reclaims unmanaged resources that this instance uses.",
        "since": "6.0"
      },
      {
        "signature": "System.Void Dispose(System.Boolean disposing)",
        "modifiers": ["protected", "virtual"],
        "protected": true,
        "virtual": true,
        "summary": "For derived class implementers.  \nThis method is called with argument True when class user calls Dispose(), while with argument False when     the Garbage Collector invokes the finalizer, or Finalize() method.  \nYou must reclaim all used unmanaged resources in both cases, and can use this chance to call Dispose on disposable fields if the argument is true.  \nAlso, you must call the base virtual method within your overriding method.",
        "parameters": [
          {
            "name": "disposing",
            "type": "System.Boolean",
            "summary": "True if the call comes from the Dispose() method; False if it comes from the Garbage Collector finalizer."
          }
        ]
      },
      {
        "signature": "Commands.Result Get(out Geometry.Arc arc)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Perform the 'get' operation.",
        "since": "6.0"
      }
    ]
  },
  {
    "namespace": "Rhino.Input.Custom",
    "name": "GetBaseClass",
    "dataType": "class",
    "summary": "Base class for GetObject, GetPoint, GetSphere, etc.  You will never directly create a GetBaseClass but you will use its member functions after calling GetObject.Gets(), GetPoint.Get(), and so on.  Provides tools to set command prompt, set command options, and specify if the \"get\" can optionally accept numbers, nothing (pressing enter), and undo.",
    "interfaces": ["IDisposable"],
    "constructors": [
      {
        "signature": "GetBaseClass()",
        "summary": "Initializes a new instance of the GetBaseClass class"
      }
    ],
    "methods": [
      {
        "signature": "System.Boolean IsValidOptionName(System.String optionName)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Test a string to see if it can be used as an option name in any of the AddOption...() functions.",
        "since": "8.24",
        "parameters": [
          {
            "name": "optionName",
            "type": "System.String",
            "summary": "String to test."
          }
        ],
        "returns": "True if string can be used as an option name."
      },
      {
        "signature": "System.Boolean IsValidOptionValueName(System.String optionValueName)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Test a string to see if it can be used as an option value name in the AddOption, AddOptionToggle, AddOptionList functions.",
        "since": "8.24",
        "returns": "True if string can be used as an option value."
      },
      {
        "signature": "System.Void PostCustomMessage(System.Object messageData)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "System.Void AcceptColor(System.Boolean enable)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "If you want to allow the user to be able to type in a color r,g,b or name during GetPoint.Get(), GetObject::GetObjects(), etc., then call AcceptColor(true) before calling GetPoint()/GetObject(). If the user chooses to type in a color, then the result code GetResult.Color is returned and you can use RhinoGet.Color() to get the value of the color.  If the get accepts points, then the user will not be able to type in r,g,b colors but will be able to type color names.",
        "since": "5.0",
        "parameters": [
          {
            "name": "enable",
            "type": "System.Boolean",
            "summary": "True if user is able to type a color."
          }
        ]
      },
      {
        "signature": "System.Void AcceptCustomMessage(System.Boolean enable)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "System.Void AcceptEnterWhenDone(System.Boolean enable)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "There are instances of RhinoGet that prompt with \"Press Enter when Done.\" yet do not call AcceptNothing(). On the Mac, these instances need an additional call to AcceptEnterWhenDone() so the GetPointOptions dialog can correctly enable the Done button.",
        "since": "6.0"
      },
      {
        "signature": "System.Void AcceptNothing(System.Boolean enable)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "If you want to allow the user to be able to press enter in order to skip selecting a something in GetPoint.Get(), GetObject::GetObjects(), etc., then call AcceptNothing( True ) beforehand.",
        "since": "5.0",
        "parameters": [
          {
            "name": "enable",
            "type": "System.Boolean",
            "summary": "True if user is able to press enter in order to skip selecting."
          }
        ]
      },
      {
        "signature": "System.Void AcceptNumber(System.Boolean enable, System.Boolean acceptZero)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "If you want to allow the user to be able to type in a number during GetPoint.Get(), GetObject::GetObjects(), etc., then call AcceptNumber() beforehand. If the user chooses to type in a number, then the result code GetResult.Number is returned and you can use RhinoGet.Number() to get the value of the number. If you are using GetPoint and you want \"0\" to return (0,0,0) instead of the number zero, then set acceptZero = false.",
        "since": "5.0",
        "parameters": [
          {
            "name": "enable",
            "type": "System.Boolean",
            "summary": "True if user is able to type a number."
          },
          {
            "name": "acceptZero",
            "type": "System.Boolean",
            "summary": "If you are using GetPoint and you want \"0\" to return (0,0,0) instead of the number zero, then set acceptZero = false."
          }
        ]
      },
      {
        "signature": "System.Void AcceptPoint(System.Boolean enable)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "If you want to allow the user to be able to type in a point then call AcceptPoint(true) before calling GetPoint()/GetObject(). If the user chooses to type in a number, then the result code GetResult.Point is returned and you can use RhinoGet.Point() to get the value of the point.",
        "since": "5.0",
        "parameters": [
          {
            "name": "enable",
            "type": "System.Boolean",
            "summary": "True if user is able to type in a point."
          }
        ]
      },
      {
        "signature": "System.Void AcceptString(System.Boolean enable)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "If you want to allow the user to be able to type in a string during GetPoint.Get(), GetObject::GetObjects(), etc., then call AcceptString(true) before calling GetPoint()/GetObject(). If the user chooses to type in a string, then the result code GetResult.String is returned and you can use RhinoGet.String() to get the value of the string.",
        "since": "5.0",
        "parameters": [
          {
            "name": "enable",
            "type": "System.Boolean",
            "summary": "True if user is able to type a string."
          }
        ]
      },
      {
        "signature": "System.Void AcceptUndo(System.Boolean enable)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "If you want to allow the user to have an 'undo' option in GetPoint.Get(), GetObject.GetObjects(), etc., then call AcceptUndo(true) beforehand.",
        "since": "5.0",
        "parameters": [
          {
            "name": "enable",
            "type": "System.Boolean",
            "summary": "True if user is able to choose the 'Undo' option."
          }
        ]
      },
      {
        "signature": "System.Int32 AddOption(LocalizeStringPair optionName, LocalizeStringPair optionValue, System.Boolean hiddenOption)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Adds a command line option.",
        "since": "6.9",
        "parameters": [
          {
            "name": "optionName",
            "type": "LocalizeStringPair",
            "summary": "Must only consist of letters and numbers (no characters list periods, spaces, or dashes)."
          },
          {
            "name": "optionValue",
            "type": "LocalizeStringPair",
            "summary": "The localized value visualized after an equality sign."
          },
          {
            "name": "hiddenOption",
            "type": "System.Boolean",
            "summary": "If true, the option is not displayed on the command line and the full option name must be typed in order to activate the option."
          }
        ],
        "returns": "option index value (>0) or 0 if option cannot be added."
      },
      {
        "signature": "System.Int32 AddOption(LocalizeStringPair optionName, LocalizeStringPair optionValue)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Adds a command line option.",
        "since": "5.0",
        "parameters": [
          {
            "name": "optionName",
            "type": "LocalizeStringPair",
            "summary": "Must only consist of letters and numbers (no characters list periods, spaces, or dashes)."
          },
          {
            "name": "optionValue",
            "type": "LocalizeStringPair",
            "summary": "The localized value visualized after an equality sign."
          }
        ],
        "returns": "option index value (>0) or 0 if option cannot be added."
      },
      {
        "signature": "System.Int32 AddOption(LocalizeStringPair optionName)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Adds a command line option.",
        "since": "5.0",
        "parameters": [
          {
            "name": "optionName",
            "type": "LocalizeStringPair",
            "summary": "Must only consist of letters and numbers (no characters list periods, spaces, or dashes)."
          }
        ],
        "returns": "option index value (>0) or 0 if option cannot be added."
      },
      {
        "signature": "System.Int32 AddOption(System.String englishOption, System.String englishOptionValue, System.Boolean hiddenOption)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Adds a command line option.",
        "since": "6.9",
        "parameters": [
          {
            "name": "englishOption",
            "type": "System.String",
            "summary": "Must only consist of letters and numbers (no characters list periods, spaces, or dashes)."
          },
          {
            "name": "englishOptionValue",
            "type": "System.String",
            "summary": "The option value in English, visualized after an equality sign."
          },
          {
            "name": "hiddenOption",
            "type": "System.Boolean",
            "summary": "If true, the option is not displayed on the command line and the full option name must be typed in order to activate the option."
          }
        ],
        "returns": "Option index value (>0) or 0 if option cannot be added."
      },
      {
        "signature": "System.Int32 AddOption(System.String englishOption, System.String englishOptionValue)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Adds a command line option.",
        "since": "5.0",
        "parameters": [
          {
            "name": "englishOption",
            "type": "System.String",
            "summary": "Must only consist of letters and numbers (no characters list periods, spaces, or dashes)."
          },
          {
            "name": "englishOptionValue",
            "type": "System.String",
            "summary": "The option value in English, visualized after an equality sign."
          }
        ],
        "returns": "Option index value (>0) or 0 if option cannot be added."
      },
      {
        "signature": "System.Int32 AddOption(System.String englishOption)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Adds a command line option.",
        "since": "5.0",
        "parameters": [
          {
            "name": "englishOption",
            "type": "System.String",
            "summary": "Must only consist of letters and numbers (no characters list periods, spaces, or dashes)."
          }
        ],
        "returns": "option index value (>0) or 0 if option cannot be added."
      },
      {
        "signature": "System.Int32 AddOptionColor(LocalizeStringPair optionName, ref OptionColor colorValue, System.String prompt)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Add a command line option to get colors and automatically save the value.",
        "since": "5.0",
        "parameters": [
          {
            "name": "optionName",
            "type": "LocalizeStringPair",
            "summary": "option description."
          },
          {
            "name": "colorValue",
            "type": "OptionColor",
            "summary": "The current color value."
          },
          {
            "name": "prompt",
            "type": "System.String",
            "summary": "option prompt shown if the user selects this option"
          }
        ],
        "returns": "option index value (>0) or 0 if option cannot be added."
      },
      {
        "signature": "System.Int32 AddOptionColor(LocalizeStringPair optionName, ref OptionColor colorValue)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Add a command line option to get colors and automatically save the value.",
        "since": "5.0",
        "parameters": [
          {
            "name": "optionName",
            "type": "LocalizeStringPair",
            "summary": "option description"
          },
          {
            "name": "colorValue",
            "type": "OptionColor",
            "summary": "The current color value."
          }
        ],
        "returns": "option index value (>0) or 0 if option cannot be added."
      },
      {
        "signature": "System.Int32 AddOptionColor(System.String englishName, ref OptionColor colorValue, System.String prompt)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Add a command line option to get colors and automatically save the value.",
        "since": "5.0",
        "parameters": [
          {
            "name": "englishName",
            "type": "System.String",
            "summary": "option description"
          },
          {
            "name": "colorValue",
            "type": "OptionColor",
            "summary": "The current color value."
          },
          {
            "name": "prompt",
            "type": "System.String",
            "summary": "The command prompt will show this during picking."
          }
        ],
        "returns": "option index value (>0) or 0 if option cannot be added."
      },
      {
        "signature": "System.Int32 AddOptionColor(System.String englishName, ref OptionColor colorValue)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Add a command line option to get colors and automatically save the value.",
        "since": "5.0",
        "parameters": [
          {
            "name": "englishName",
            "type": "System.String",
            "summary": "option description"
          },
          {
            "name": "colorValue",
            "type": "OptionColor",
            "summary": "The current color value."
          }
        ],
        "returns": "option index value (>0) or 0 if option cannot be added."
      },
      {
        "signature": "System.Int32 AddOptionDouble(LocalizeStringPair optionName, ref OptionDouble numberValue, System.String prompt)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Adds a command line option to get numbers and automatically saves the value.",
        "since": "5.0",
        "parameters": [
          {
            "name": "optionName",
            "type": "LocalizeStringPair",
            "summary": "Must only consist of letters and numbers (no characters list periods, spaces, or dashes)"
          },
          {
            "name": "numberValue",
            "type": "OptionDouble",
            "summary": "The current number value."
          },
          {
            "name": "prompt",
            "type": "System.String",
            "summary": "option prompt shown if the user selects this option.  If None or empty, then the option name is used as the get number prompt."
          }
        ],
        "returns": "option index value (>0) or 0 if option cannot be added."
      },
      {
        "signature": "System.Int32 AddOptionDouble(LocalizeStringPair optionName, ref OptionDouble numberValue)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Adds a command line option to get numbers and automatically save the value.",
        "since": "5.0",
        "parameters": [
          {
            "name": "optionName",
            "type": "LocalizeStringPair",
            "summary": "Must only consist of letters and numbers (no characters list periods, spaces, or dashes)"
          },
          {
            "name": "numberValue",
            "type": "OptionDouble",
            "summary": "The current number value."
          }
        ],
        "returns": "option index value (>0) or 0 if option cannot be added."
      },
      {
        "signature": "System.Int32 AddOptionDouble(System.String englishName, ref OptionDouble numberValue, System.String prompt)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Adds a command line option to get numbers and automatically save the value.",
        "since": "5.0",
        "parameters": [
          {
            "name": "englishName",
            "type": "System.String",
            "summary": "Must only consist of letters and numbers (no characters list periods, spaces, or dashes)"
          },
          {
            "name": "numberValue",
            "type": "OptionDouble",
            "summary": "Current value."
          },
          {
            "name": "prompt",
            "type": "System.String",
            "summary": "option prompt shown if the user selects this option.  If None or empty, then the option name is used as the get number prompt."
          }
        ],
        "returns": "option index value (>0) or 0 if option cannot be added."
      },
      {
        "signature": "System.Int32 AddOptionDouble(System.String englishName, ref OptionDouble numberValue)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Adds a command line option to get numbers and automatically save the value.",
        "since": "5.0",
        "parameters": [
          {
            "name": "englishName",
            "type": "System.String",
            "summary": "Must only consist of letters and numbers (no characters list periods, spaces, or dashes)"
          },
          {
            "name": "numberValue",
            "type": "OptionDouble",
            "summary": "The current number value."
          }
        ],
        "returns": "Option index value (>0) or 0 if option cannot be added."
      },
      {
        "signature": "System.Int32 AddOptionEnumList(System.String englishOptionName, T defaultValue, T[] include)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Adds a choice of enumerated values as list option. Allows to include only some enumerated values.",
        "since": "6.0",
        "parameters": [
          {
            "name": "englishOptionName",
            "type": "System.String",
            "summary": "The name of the option"
          },
          {
            "name": "defaultValue",
            "type": "T",
            "summary": "The default value"
          },
          {
            "name": "include",
            "type": "T[]",
            "summary": "An array of enumerated values to use. This argument can also be null; in this case, the whole enumerated is used."
          }
        ],
        "returns": "Option index"
      },
      {
        "signature": "System.Int32 AddOptionEnumList(System.String englishOptionName, T defaultValue)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Adds a choice of enumerated values as list option",
        "since": "5.4",
        "parameters": [
          {
            "name": "englishOptionName",
            "type": "System.String",
            "summary": "The name of the option"
          },
          {
            "name": "defaultValue",
            "type": "T",
            "summary": "The default value"
          }
        ],
        "returns": "Option index"
      },
      {
        "signature": "System.Int32 AddOptionEnumSelectionList(System.String englishOptionName, IEnumerable<T> enumSelection, System.Int32 listCurrentIndex)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Adds a list of enumerated values as option list. Use enumSelection[go.Option.CurrentListOptionIndex] to retrieve selection.",
        "since": "5.4"
      },
      {
        "signature": "System.Int32 AddOptionInteger(LocalizeStringPair optionName, ref OptionInteger intValue, System.String prompt)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Adds a command line option to get integers and automatically save the value.",
        "since": "5.0",
        "parameters": [
          {
            "name": "optionName",
            "type": "LocalizeStringPair",
            "summary": "Must only consist of letters and numbers (no characters list periods, spaces, or dashes)"
          },
          {
            "name": "intValue",
            "type": "OptionInteger",
            "summary": "The current integer value."
          },
          {
            "name": "prompt",
            "type": "System.String",
            "summary": "option prompt shown if the user selects this option.  If None or empty, then the option name is used as the get number prompt."
          }
        ],
        "returns": "option index value (>0) or 0 if option cannot be added."
      },
      {
        "signature": "System.Int32 AddOptionInteger(LocalizeStringPair optionName, ref OptionInteger intValue)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Adds a command line option to get integers and automatically save the value.",
        "since": "5.0",
        "parameters": [
          {
            "name": "optionName",
            "type": "LocalizeStringPair",
            "summary": "Must only consist of letters and numbers (no characters list periods, spaces, or dashes)"
          },
          {
            "name": "intValue",
            "type": "OptionInteger",
            "summary": "The current integer value."
          }
        ],
        "returns": "option index value (>0) or 0 if option cannot be added."
      },
      {
        "signature": "System.Int32 AddOptionInteger(System.String englishName, ref OptionInteger intValue, System.String prompt)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Adds a command line option to get integers and automatically save the value.",
        "since": "5.0",
        "parameters": [
          {
            "name": "englishName",
            "type": "System.String",
            "summary": "Must only consist of letters and numbers (no characters list periods, spaces, or dashes)"
          },
          {
            "name": "intValue",
            "type": "OptionInteger",
            "summary": "The current integer value."
          },
          {
            "name": "prompt",
            "type": "System.String",
            "summary": "option prompt shown if the user selects this option.  If None or empty, then the option name is used as the get number prompt."
          }
        ],
        "returns": "option index value (>0) or 0 if option cannot be added."
      },
      {
        "signature": "System.Int32 AddOptionInteger(System.String englishName, ref OptionInteger intValue)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Adds a command line option to get integers and automatically save the value.",
        "since": "5.0",
        "parameters": [
          {
            "name": "englishName",
            "type": "System.String",
            "summary": "Must only consist of letters and numbers (no characters list periods, spaces, or dashes)"
          },
          {
            "name": "intValue",
            "type": "OptionInteger",
            "summary": "The current integer value."
          }
        ],
        "returns": "option index value (>0) or 0 if option cannot be added."
      },
      {
        "signature": "System.Int32 AddOptionList(LocalizeStringPair optionName, IEnumerable<LocalizeStringPair> listValues, System.Int32 listCurrentIndex)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Adds a command line list option.",
        "since": "5.0",
        "parameters": [
          {
            "name": "optionName",
            "type": "LocalizeStringPair",
            "summary": "Must only consist of letters and numbers (no characters list periods, spaces, or dashes)"
          },
          {
            "name": "listValues",
            "type": "IEnumerable<LocalizeStringPair>",
            "summary": "The string values."
          },
          {
            "name": "listCurrentIndex",
            "type": "System.Int32",
            "summary": "Zero based index of current option."
          }
        ],
        "returns": "option index value (>0) or 0 if option cannot be added."
      },
      {
        "signature": "System.Int32 AddOptionList(System.String englishOptionName, IEnumerable<string> listValues, System.Int32 listCurrentIndex)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Adds a command line list option.",
        "since": "5.0",
        "parameters": [
          {
            "name": "englishOptionName",
            "type": "System.String",
            "summary": "Must only consist of letters and numbers (no characters list periods, spaces, or dashes)"
          },
          {
            "name": "listValues",
            "type": "IEnumerable<string>",
            "summary": "The string values."
          },
          {
            "name": "listCurrentIndex",
            "type": "System.Int32",
            "summary": "Zero based index of current option."
          }
        ],
        "returns": "option index value (>0) or 0 if option cannot be added."
      },
      {
        "signature": "System.Int32 AddOptionString(LocalizeStringPair optionName, ref OptionString stringValue, System.String prompt)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Add a command line option to get a string and automatically save the value.",
        "since": "9.0",
        "parameters": [
          {
            "name": "optionName",
            "type": "LocalizeStringPair",
            "summary": "The option description."
          },
          {
            "name": "stringValue",
            "type": "OptionString",
            "summary": "The current string value."
          },
          {
            "name": "prompt",
            "type": "System.String",
            "summary": "Command prompt to be shown if the picks this option."
          }
        ],
        "returns": "The option index value (>0) or 0 if option cannot be added."
      },
      {
        "signature": "System.Int32 AddOptionString(LocalizeStringPair optionName, ref OptionString stringValue)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Add a command line option to get a string and automatically save the value.",
        "since": "9.0",
        "parameters": [
          {
            "name": "optionName",
            "type": "LocalizeStringPair",
            "summary": "The option description."
          },
          {
            "name": "stringValue",
            "type": "OptionString",
            "summary": "The current string value."
          }
        ],
        "returns": "The option index value (>0) or 0 if option cannot be added."
      },
      {
        "signature": "System.Int32 AddOptionString(System.String englishName, ref OptionString stringValue, System.String prompt)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Add a command line option to get a string and automatically save the value.",
        "since": "9.0",
        "parameters": [
          {
            "name": "englishName",
            "type": "System.String",
            "summary": "The option description."
          },
          {
            "name": "stringValue",
            "type": "OptionString",
            "summary": "The current string value."
          },
          {
            "name": "prompt",
            "type": "System.String",
            "summary": "Command prompt to be shown if the picks this option."
          }
        ],
        "returns": "The option index value (>0) or 0 if option cannot be added."
      },
      {
        "signature": "System.Int32 AddOptionString(System.String englishName, ref OptionString stringValue)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Add a command line option to get a string and automatically save the value.",
        "since": "9.0",
        "parameters": [
          {
            "name": "englishName",
            "type": "System.String",
            "summary": "The option description."
          },
          {
            "name": "stringValue",
            "type": "OptionString",
            "summary": "The current string value."
          }
        ],
        "returns": "The option index value (>0) or 0 if option cannot be added."
      },
      {
        "signature": "System.Int32 AddOptionToggle(LocalizeStringPair optionName, ref OptionToggle toggleValue)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Adds a command line option to toggle a setting.",
        "since": "5.0",
        "parameters": [
          {
            "name": "optionName",
            "type": "LocalizeStringPair",
            "summary": "Must only consist of letters and numbers (no characters list periods, spaces, or dashes)"
          },
          {
            "name": "toggleValue",
            "type": "OptionToggle",
            "summary": "The current toggle value."
          }
        ],
        "returns": "option index value (>0) or 0 if option cannot be added."
      },
      {
        "signature": "System.Int32 AddOptionToggle(System.String englishName, ref OptionToggle toggleValue)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Adds a command line option to toggle a setting.",
        "since": "5.0",
        "parameters": [
          {
            "name": "englishName",
            "type": "System.String",
            "summary": "Must only consist of letters and numbers (no characters list periods, spaces, or dashes)"
          },
          {
            "name": "toggleValue",
            "type": "OptionToggle",
            "summary": "The current toggle value."
          }
        ],
        "returns": "option index value (>0) or 0 if option cannot be added."
      },
      {
        "signature": "System.Void ClearCommandOptions()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Clear all command options.",
        "since": "5.0"
      },
      {
        "signature": "System.Void ClearDefault()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Clears any defaults set using SetDefaultPoint, SetDefaultNumber, SetDefaultString, or SetCommandPromptDefault.",
        "since": "5.0"
      },
      {
        "signature": "Color Color()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets a color if Get*() returns GetResult.Color.",
        "since": "5.0",
        "returns": "The color chosen by the user."
      },
      {
        "signature": "Result CommandResult()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Helper method for getting command result value from getter results.",
        "since": "5.0",
        "returns": "The converted command result."
      },
      {
        "signature": "System.Object CustomMessage()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "System.Void Dispose()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "System.Void Dispose(System.Boolean disposing)",
        "modifiers": ["protected", "virtual"],
        "protected": true,
        "virtual": true
      },
      {
        "signature": "System.Void EnableTransparentCommands(System.Boolean enable)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Control the availability of transparent commands during the get.",
        "since": "5.0",
    "remarks": "Some Rhino commands are \"transparent\" and can be run inside of other commands.  Examples of transparent commands include the view manipulation commands like ZoomExtents, Top, etc., and the selection commands like SelAll, SelPoint, etc. By default transparent commands can be run during any get. If you want to disable this feature, then call EnableTransparentCommands(false) before calling GetString, GetPoint, GetObject, etc.",
        "parameters": [
          {
            "name": "enable",
            "type": "System.Boolean",
            "summary": "If true, then transparent commands can be run during the get. If false, then transparent commands cannot be run during the get."
          }
        ]
      },
      {
        "signature": "T GetSelectedEnumValue()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns the selected enumerated value. Use this in combination with <b>AddOptionEnumList{T}(string, T)</b> .  \nThis must be called directly after having called a Get method, and having obtained a  value.",
        "since": "5.4"
      },
      {
        "signature": "T GetSelectedEnumValueFromSelectionList(IEnumerable<T> selectionList)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns the selected enumerated value by looking at the list of values from which to select. Use this in combination with <b>AddOptionEnumSelectionList{T}</b>",
        "since": "5.4"
      },
      {
        "signature": "System.Boolean GotDefault()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns True if user pressed Enter to accept a default point, number, or string set using SetDefaultPoint, SetDefaultNumber, or SetDefaultString.",
        "since": "5.0",
        "returns": "True if the result if the default point, number or string set. Otherwise, false."
      },
      {
        "signature": "System.Drawing.Point[] Line2d()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns two points defining the location in the view window of the 2d line selected in GetPoint::Get2dLine().  \n(0,0) = upper left corner of window.",
        "since": "5.0",
        "returns": "An array with two 2D points."
      },
      {
        "signature": "System.Double Number()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets a number if GetPoint.Get(), GetObject.GetObjects(), etc., returns GetResult.Number.",
        "since": "5.0",
        "returns": "The number chosen by the user."
      },
      {
        "signature": "CommandLineOption Option()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "System.Int32 OptionIndex()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "Rectangle PickRectangle()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "If the get was a GetObjects() and the mouse was used to select the objects, then the returned rectangle has left < right and top < bottom. This rectangle is the Windows GDI screen coordinates of the picking rectangle. RhinoViewport.GetPickXform( pick_rect, pick_xform ) will calculate the picking transformation that was used. In all other cases, left=right=top=bottom=0;",
        "since": "5.0",
        "returns": "The picking rectangle; or 0 in the specified cases."
      },
      {
        "signature": "Point3d Point()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets a point if Get*() returns GetResult.Point.",
        "since": "5.0",
        "returns": "The point chosen by the user."
      },
      {
        "signature": "System.Drawing.Point Point2d()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns location in view of point in selected in GetPoint::Get() or GetPoint::Get2dPoint(). (0,0) = upper left corner of window.",
        "since": "5.0",
        "returns": "The location."
      },
      {
        "signature": "Rectangle Rectangle2d()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns the location in the view of the 2d rectangle selected in GetPoint::Get2dRectangle(). rect.left < rect.right and rect.top < rect.bottom (0,0) = upper left corner of window.",
        "since": "5.0",
        "returns": "The rectangle."
      },
      {
        "signature": "GetResult Result()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns result of the Get*() call.",
        "since": "5.0",
        "returns": "The result of the last Get*() call."
      },
      {
        "signature": "System.Void SetCommandPrompt(System.String prompt)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Sets prompt message that appears in the command prompt window.",
        "since": "5.0",
        "parameters": [
          {
            "name": "prompt",
            "type": "System.String",
            "summary": "command prompt message."
          }
        ]
      },
      {
        "signature": "System.Void SetCommandPromptDefault(System.String defaultValue)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Sets message that describes what default value will be used if the user presses enter. This description appears in angle brackets <> in the command prompt window. You do not need to provide a default value description unless you explicitly enable AcceptNothing.",
        "since": "5.0",
    "remarks": "If you have a simple default point, number, or string, it is easier to use SetDefaultPoint, SetDefaultNumber, or SetDefaultString. SetCommandPromptDefault and AcceptNothing can be used for providing more advanced UI behavior.",
        "parameters": [
          {
            "name": "defaultValue",
            "type": "System.String",
            "summary": "description of default value."
          }
        ]
      },
      {
        "signature": "System.Void SetDefaultColor(Color defaultColor)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Sets a color as default value that will be returned if the user presses ENTER key during the get.",
        "since": "5.0",
    "remarks": "Calling SetDefaultColor will automatically handle setting the command prompt default and reacting to the user pressing ENTER.  If the user presses ENTER to accept the default color, GetResult.Color is returned and RhinoGet.GotDefault() will return true. Calling SetDefaultColor will clear any previous calls to SetDefaultString or SetDefaultPoint.",
        "parameters": [
          {
            "name": "defaultColor",
            "type": "Color",
            "summary": "value for default color."
          }
        ]
      },
      {
        "signature": "System.Void SetDefaultInteger(System.Int32 defaultValue)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Sets a number as default value that will be returned if the user presses ENTER key during the get.",
        "since": "5.0",
    "remarks": "Calling SetDefaultInteger will automatically handle setting the command prompt default and reacting to the user pressing ENTER. If the user presses ENTER to accept the default integer, GetResult.Number is returned and CRhinoGet.GotDefault() will return true. Calling SetDefaultNumber will clear any previous calls to SetDefaultString or SetDefaultPoint.",
        "parameters": [
          {
            "name": "defaultValue",
            "type": "System.Int32",
            "summary": "value for default number."
          }
        ]
      },
      {
        "signature": "System.Void SetDefaultNumber(System.Double defaultNumber)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Sets a number as default value that will be returned if the user presses ENTER key during the get.",
        "since": "5.0",
    "remarks": "Calling SetDefaultNumber will automatically handle setting the command prompt default and reacting to the user pressing ENTER. If the user presses ENTER to accept the default number, GetResult.Number is returned and RhinoGet.GotDefault() will return true. Calling SetDefaultNumber will clear any previous calls to SetDefaultString or SetDefaultPoint.",
        "parameters": [
          {
            "name": "defaultNumber",
            "type": "System.Double",
            "summary": "value for default number."
          }
        ]
      },
      {
        "signature": "System.Void SetDefaultPoint(Point3d point)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Sets a point as default value that will be returned if the user presses the ENTER key during the get.",
        "since": "5.0",
    "remarks": "Calling SetDefaultPoint will automatically handle setting the command prompt default and reacting to the user pressing ENTER.  If the user presses enter to accept the default point, GetResult.Point is returned and RhinoGet.GotDefault() will return true. Calling SetDefaultPoint will clear any previous calls to SetDefaultString or SetDefaultNumber.",
        "parameters": [
          {
            "name": "point",
            "type": "Point3d",
            "summary": "value for default point."
          }
        ]
      },
      {
        "signature": "System.Void SetDefaultString(System.String defaultValue)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Sets a string as default value that will be returned if the user presses ENTER key during the get.",
        "since": "5.0",
    "remarks": "Calling SetDefaultString will automatically handle setting the command prompt default and reacting to the user pressing ENTER. If the user presses ENTER to accept the default string, GetResult.String is returned and RhinoGet.GotDefault() will return true. Calling SetDefaultString will clear any previous calls to SetDefaultNumber or SetDefaultPoint.",
        "parameters": [
          {
            "name": "defaultValue",
            "type": "System.String",
            "summary": "value for default string."
          }
        ]
      },
      {
        "signature": "System.Void SetOptionVaries(System.Int32 optionIndex, System.Boolean varies)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Sets a command line option value to print \"Varies\" instead of the regular value.",
        "since": "8.0",
        "parameters": [
          {
            "name": "optionIndex",
            "type": "System.Int32",
            "summary": "The option index."
          },
          {
            "name": "varies",
            "type": "System.Boolean",
            "summary": "True to print \"Varies\", False to print the option's current value."
          }
        ]
      },
      {
        "signature": "System.Void SetWaitDuration(System.Int32 milliseconds)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Sets the wait duration (in milliseconds) of the getter. If the duration passes without the user making a decision, the GetResult.Timeout code is returned.",
        "since": "5.0",
        "parameters": [
          {
            "name": "milliseconds",
            "type": "System.Int32",
            "summary": "Number of milliseconds to wait."
          }
        ]
      },
      {
        "signature": "System.String StringResult()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets a string if GetPoint.Get(), GetObject.GetObjects(), etc., returns GetResult.String.",
        "since": "5.0",
        "returns": "The string chosen by the user."
      },
      {
        "signature": "Vector3d Vector()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets a direction if Get*() returns GetResult.Point (Set by some digitizers, but in general it's (0,0,0).",
        "since": "5.0",
        "returns": "The vector chosen by the user."
      },
      {
        "signature": "RhinoView View()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets a view the user clicked in during GetPoint.Get(), GetObject.GetObjects(), etc.",
        "since": "5.0",
        "returns": "The view chosen by the user."
      }
    ]
  },
  {
    "namespace": "Rhino.Input.Custom",
    "name": "GetCancel",
    "dataType": "class",
    "baseclass": "Rhino.Input.Custom.GetBaseClass",
    "constructors": [
      {
        "signature": "GetCancel()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0"
      }
    ],
    "properties": [
      {
        "signature": "IProgress<double> Progress",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "string ProgressMessage",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool ProgressReporting",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "CancellationToken Token",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get"]
      }
    ],
    "methods": [
      {
        "signature": "System.Void Cancel()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Cancel all running tasks",
        "since": "9.0"
      },
      {
        "signature": "Result Wait(System.Threading.Tasks.Task task, RhinoDoc doc)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Awaits a particular task to finish.",
        "since": "7.0",
        "parameters": [
          {
            "name": "task",
            "type": "System.Threading.Tasks.Task",
            "summary": "The task."
          },
          {
            "name": "doc",
            "type": "RhinoDoc",
            "summary": "A document to set progress reporting."
          }
        ],
        "returns": "A result enumeration."
      },
      {
        "signature": "Result Wait(Task<TResult> task, RhinoDoc doc)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Awaits a particular task to finish.",
        "since": "6.0",
        "parameters": [
          {
            "name": "task",
            "type": "Task<TResult>",
            "summary": "The task."
          },
          {
            "name": "doc",
            "type": "RhinoDoc",
            "summary": "A document to set progress reporting."
          }
        ],
        "returns": "A result enumeration."
      },
      {
        "signature": "Result WaitAll(IEnumerable<Task<TResult>> tasks, RhinoDoc doc)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Awaits some tasks to finish.",
        "parameters": [
          {
            "name": "tasks",
            "type": "IEnumerable<Task<TResult>>",
            "summary": "The tasks."
          },
          {
            "name": "doc",
            "type": "RhinoDoc",
            "summary": "A document to set progress reporting."
          }
        ],
        "returns": "A result enumeration."
      },
      {
        "signature": "Result WaitAll(IEnumerable<Task> tasks, RhinoDoc doc)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Awaits some tasks to finish.",
        "since": "7.0",
        "parameters": [
          {
            "name": "tasks",
            "type": "IEnumerable<Task>",
            "summary": "The tasks."
          },
          {
            "name": "doc",
            "type": "RhinoDoc",
            "summary": "A document to set progress reporting."
          }
        ],
        "returns": "A result enumeration."
      }
    ]
  },
  {
    "namespace": "Rhino.Input.Custom",
    "name": "GetCircle",
    "dataType": "class",
    "interfaces": ["IDisposable"],
    "constructors": [
      {
        "signature": "GetCircle()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0"
      }
    ],
    "properties": [
      {
        "signature": "bool AllowDeformable",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Allow for deformable options",
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "double DefaultSize",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Default radius or diameter (based on InDiameterMode)",
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool Deformable",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Is the deformable option set",
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "int DeformableDegree",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "int DeformablePointCount",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool InDiameterMode",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Determines if the \"size\" value is representing a radius or diameter",
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool UseActiveLayerLinetypeForCurves",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "8.0",
        "property": ["get", "set"]
      }
    ],
    "methods": [
      {
        "signature": "System.Void Dispose()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Actively reclaims unmanaged resources that this instance uses.",
        "since": "6.0"
      },
      {
        "signature": "System.Void Dispose(System.Boolean disposing)",
        "modifiers": ["protected", "virtual"],
        "protected": true,
        "virtual": true,
        "summary": "For derived class implementers.  \nThis method is called with argument True when class user calls Dispose(), while with argument False when     the Garbage Collector invokes the finalizer, or Finalize() method.  \nYou must reclaim all used unmanaged resources in both cases, and can use this chance to call Dispose on disposable fields if the argument is true.  \nAlso, you must call the base virtual method within your overriding method.",
        "parameters": [
          {
            "name": "disposing",
            "type": "System.Boolean",
            "summary": "True if the call comes from the Dispose() method; False if it comes from the Garbage Collector finalizer."
          }
        ]
      },
      {
        "signature": "Commands.Result Get(out Geometry.Circle circle)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Perform the 'get' operation.",
        "since": "6.0"
      }
    ]
  },
  {
    "namespace": "Rhino.Input.Custom",
    "name": "GetCone",
    "dataType": "class",
    "summary": "Class provides user interface to define a cone.",
    "interfaces": ["IDisposable"],
    "constructors": [
      {
        "signature": "GetCone()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0"
      }
    ],
    "properties": [
      {
        "signature": "bool AllowInputAngle",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "double ApexAngleDegrees",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "double BaseAngleDegrees",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool BothSides",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Determines if we're supposed to do both sides",
        "since": "9.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool Cap",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets whether or not the output should be capped.",
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "ConeConstraint ConeConstraint",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "State of the cone/cylinder constraint option. When the cone/cylinder option is selected, the circle is being made as a base for a cone/cylinder. By default the vertical cone/cylinder option not available but is not selected.  By default the \"Vertical\" option applies to VerticalCircle.",
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "double DefaultSize",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Default radius or diameter (based on InDiameterMode)",
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "double Height",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool InDiameterMode",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Determines if the \"size\" value is representing a radius or diameter",
        "since": "6.0",
        "property": ["get", "set"]
      }
    ],
    "methods": [
      {
        "signature": "System.Void Dispose()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Actively reclaims unmanaged resources that this instance uses.",
        "since": "6.0"
      },
      {
        "signature": "System.Void Dispose(System.Boolean disposing)",
        "modifiers": ["protected", "virtual"],
        "protected": true,
        "virtual": true,
        "summary": "For derived class implementers.  \nThis method is called with argument True when class user calls Dispose(), while with argument False when     the Garbage Collector invokes the finalizer, or Finalize() method.  \nYou must reclaim all used unmanaged resources in both cases, and can use this chance to call Dispose on disposable fields if the argument is true.  \nAlso, you must call the base virtual method within your overriding method.",
        "parameters": [
          {
            "name": "disposing",
            "type": "System.Boolean",
            "summary": "True if the call comes from the Dispose() method; False if it comes from the Garbage Collector finalizer."
          }
        ]
      },
      {
        "signature": "Commands.Result Get(out Geometry.Cone cone)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Prompt for the getting of a cone.",
        "since": "6.0",
        "parameters": [
          {
            "name": "cone",
            "type": "Geometry.Cone",
            "summary": "The cone geometry defined by the user."
          }
        ],
        "returns": "The result of the getting operation."
      },
      {
        "signature": "Commands.Result GetMesh(ref System.Int32 verticalFaces, ref System.Int32 aroundFaces, out Geometry.Cone cone)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Prompt for the getting of a mesh cone.",
        "since": "7.0",
        "parameters": [
          {
            "name": "verticalFaces",
            "type": "System.Int32",
            "summary": "The number of faces in the vertical direction."
          },
          {
            "name": "aroundFaces",
            "type": "System.Int32",
            "summary": "The number of faces in the around direction"
          },
          {
            "name": "cone",
            "type": "Geometry.Cone",
            "summary": "The cone geometry defined by the user."
          }
        ],
        "returns": "The result of the getting operation."
      },
      {
        "signature": "Commands.Result GetMesh(ref System.Int32 verticalFaces, ref System.Int32 aroundFaces, ref System.Int32 capStyle, out Geometry.Cone cone)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Prompt for the getting of a mesh cone.",
        "since": "7.0",
    "remarks": "The prompt for capStyle will only be seen if it's not zero, aroundFaces is even and the solid option is on.",
        "parameters": [
          {
            "name": "verticalFaces",
            "type": "System.Int32",
            "summary": "The number of faces in the vertical direction."
          },
          {
            "name": "aroundFaces",
            "type": "System.Int32",
            "summary": "The number of faces in the around direction"
          },
          {
            "name": "capStyle",
            "type": "System.Int32",
            "summary": "Set to 0 if you don't want the prompt, 3 is triangles, 4 is quads."
          },
          {
            "name": "cone",
            "type": "Geometry.Cone",
            "summary": "The cone geometry defined by the user."
          }
        ],
        "returns": "The result of the getting operation."
      }
    ]
  },
  {
    "namespace": "Rhino.Input.Custom",
    "name": "GetCylinder",
    "dataType": "class",
    "summary": "Class provides user interface to define a cylinder.",
    "interfaces": ["IDisposable"],
    "constructors": [
      {
        "signature": "GetCylinder()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0"
      }
    ],
    "properties": [
      {
        "signature": "bool BothSidesOption",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Determine if the \"both sides\" option is enabled",
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool Cap",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets whether or not the output should be capped.",
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "CylinderConstraint CylinderConstraint",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "State of the cone/cylinder constraint option. When the cone/cylinder option is selected, the circle is being made as a base for a cone/cylinder. By default the vertical cone/cylinder option not available but is not selected.  By default the \"Vertical\" option applies to VerticalCircle.",
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "double DefaultSize",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Default radius or diameter (based on InDiameterMode)",
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "double Height",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Height of cylinder",
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool InDiameterMode",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Determines if the \"size\" value is representing a radius or diameter",
        "since": "6.0",
        "property": ["get", "set"]
      }
    ],
    "methods": [
      {
        "signature": "System.Void Dispose()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Actively reclaims unmanaged resources that this instance uses.",
        "since": "6.0"
      },
      {
        "signature": "System.Void Dispose(System.Boolean disposing)",
        "modifiers": ["protected", "virtual"],
        "protected": true,
        "virtual": true,
        "summary": "For derived class implementers.  \nThis method is called with argument True when class user calls Dispose(), while with argument False when     the Garbage Collector invokes the finalizer, or Finalize() method.  \nYou must reclaim all used unmanaged resources in both cases, and can use this chance to call Dispose on disposable fields if the argument is true.  \nAlso, you must call the base virtual method within your overriding method.",
        "parameters": [
          {
            "name": "disposing",
            "type": "System.Boolean",
            "summary": "True if the call comes from the Dispose() method; False if it comes from the Garbage Collector finalizer."
          }
        ]
      },
      {
        "signature": "Commands.Result Get(out Geometry.Cylinder cylinder)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Prompt for the getting of a cylinder.",
        "since": "6.0",
        "parameters": [
          {
            "name": "cylinder",
            "type": "Geometry.Cylinder",
            "summary": "The cylinder geometry defined by the user."
          }
        ],
        "returns": "The result of the getting operation."
      },
      {
        "signature": "Commands.Result Get(out Geometry.Extrusion cylinder)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Prompt for the getting of a cylinder.",
        "since": "6.0",
        "parameters": [
          {
            "name": "cylinder",
            "type": "Geometry.Extrusion",
            "summary": "The cylinder geometry defined by the user."
          }
        ],
        "returns": "The result of the getting operation."
      },
      {
        "signature": "Commands.Result GetMesh(ref System.Int32 verticalFaces, ref System.Int32 aroundFaces, out Geometry.Cylinder cylinder)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Prompt for the getting of a mesh cylinder.",
        "since": "7.0",
        "parameters": [
          {
            "name": "verticalFaces",
            "type": "System.Int32",
            "summary": "The number of faces in the vertical direction."
          },
          {
            "name": "aroundFaces",
            "type": "System.Int32",
            "summary": "The number of faces in the around direction"
          },
          {
            "name": "cylinder",
            "type": "Geometry.Cylinder",
            "summary": "The cylinder geometry defined by the user."
          }
        ],
        "returns": "The result of the getting operation."
      },
      {
        "signature": "Commands.Result GetMesh(ref System.Int32 verticalFaces, ref System.Int32 aroundFaces, ref System.Int32 capStyle, out Geometry.Cylinder cylinder)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Prompt for the getting of a mesh cylinder.",
        "since": "7.0",
    "remarks": "The prompt for capStyle will only be seen if it's not zero, aroundFaces is even and the solid option is on.",
        "parameters": [
          {
            "name": "verticalFaces",
            "type": "System.Int32",
            "summary": "The number of faces in the vertical direction."
          },
          {
            "name": "aroundFaces",
            "type": "System.Int32",
            "summary": "The number of faces in the around direction"
          },
          {
            "name": "capStyle",
            "type": "System.Int32",
            "summary": "Set to 0 if you don't want the prompt, 3 is triangles, 4 is quads."
          },
          {
            "name": "cylinder",
            "type": "Geometry.Cylinder",
            "summary": "The cylinder geometry defined by the user."
          }
        ],
        "returns": "The result of the getting operation."
      }
    ]
  },
  {
    "namespace": "Rhino.Input.Custom",
    "name": "GetEllipse",
    "dataType": "class",
    "summary": "Class provides user interface to define an ellipse.",
    "interfaces": ["IDisposable"],
    "constructors": [
      {
        "signature": "GetEllipse()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Constructs a GetEllispe object.",
        "since": "8.0"
      }
    ],
    "properties": [
      {
        "signature": "Point3d FirstPoint",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns the first point. If in \"from foci\" mode, then this is the first foci point.",
        "since": "8.0",
        "property": ["get"]
      },
      {
        "signature": "bool IsModeFromFoci",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Indicates the ellipse was created from foci.",
        "since": "8.0",
        "property": ["get"]
      },
      {
        "signature": "bool MarkFoci",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Indicates the user wants the ellipse foci marked with point objects.",
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "Point3d SecondPoint",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns the second point. If in \"from foci\" mode, then this is the second foci point.",
        "since": "8.0",
        "property": ["get"]
      }
    ],
    "methods": [
      {
        "signature": "System.Void Dispose()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Actively releases the unmanaged object.",
        "since": "8.0"
      },
      {
        "signature": "System.Void Dispose(System.Boolean disposing)",
        "modifiers": ["protected", "virtual"],
        "protected": true,
        "virtual": true,
        "summary": "Releases the unmanaged object."
      },
      {
        "signature": "Commands.Result Get(out Geometry.NurbsCurve ellipse)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Prompt for the getting of an ellipse.",
        "since": "8.0",
        "parameters": [
          {
            "name": "ellipse",
            "type": "Geometry.NurbsCurve",
            "summary": "The ellipse in NURB form."
          }
        ],
        "returns": "The result of the get operation."
      }
    ]
  },
  {
    "namespace": "Rhino.Input.Custom",
    "name": "GetEllipsoid",
    "dataType": "class",
    "summary": "Class provides user interface to define an ellipsoid.",
    "interfaces": ["IDisposable"],
    "since": "7.0",
    "constructors": [
      {
        "signature": "GetEllipsoid()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "7.0"
      }
    ],
    "properties": [
      {
        "signature": "Point3d FirstPoint",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns the first point. If in \"from foci\" mode, then this is the first foci point.",
        "since": "7.0",
        "property": ["get"]
      },
      {
        "signature": "bool IsModeFromFoci",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Indicates the ellipsoid was created from foci.",
        "since": "7.0",
        "property": ["get"]
      },
      {
        "signature": "bool MarkFoci",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Indicates the user wants the ellipsoid foci marked with point objects.",
        "since": "7.0",
        "property": ["get", "set"]
      },
      {
        "signature": "Plane Plane",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "The plane the ellipsoid was created in.",
        "since": "8.29",
        "property": ["get"]
      },
      {
        "signature": "Point3d SecondPoint",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns the second point. If in \"from foci\" mode, then this is the second foci point.",
        "since": "7.0",
        "property": ["get"]
      }
    ],
    "methods": [
      {
        "signature": "System.Void Dispose()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Actively reclaims unmanaged resources that this instance uses.",
        "since": "7.0"
      },
      {
        "signature": "System.Void Dispose(System.Boolean disposing)",
        "modifiers": ["protected", "virtual"],
        "protected": true,
        "virtual": true,
        "summary": "For derived class implementers.  \nThis method is called with argument True when class user calls Dispose(), while with argument False when     the Garbage Collector invokes the finalizer, or Finalize() method.  \nYou must reclaim all used unmanaged resources in both cases, and can use this chance to call Dispose on disposable fields if the argument is true.  \nAlso, you must call the base virtual method within your overriding method.",
        "parameters": [
          {
            "name": "disposing",
            "type": "System.Boolean",
            "summary": "True if the call comes from the Dispose() method; False if it comes from the Garbage Collector finalizer."
          }
        ]
      },
      {
        "signature": "Commands.Result Get(out Geometry.NurbsSurface ellipsoid)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Prompt for the getting of an ellipsoid.",
        "since": "7.0",
        "parameters": [
          {
            "name": "ellipsoid",
            "type": "Geometry.NurbsSurface",
            "summary": "The ellipsoid in NURB form."
          }
        ],
        "returns": "The result of the getting operation."
      },
      {
        "signature": "Commands.Result GetMesh(ref System.Int32 verticalFaces, ref System.Int32 aroundFaces, out Geometry.Mesh ellipsoid)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Prompt for the getting of a mesh ellipsoid.",
        "since": "7.0",
        "parameters": [
          {
            "name": "verticalFaces",
            "type": "System.Int32",
            "summary": "The number of faces in the vertical direction."
          },
          {
            "name": "aroundFaces",
            "type": "System.Int32",
            "summary": "The number of faces in the around direction"
          },
          {
            "name": "ellipsoid",
            "type": "Geometry.Mesh",
            "summary": "The ellipsoid in Mesh form."
          }
        ],
        "returns": "The result of the getting operation."
      },
      {
        "signature": "Commands.Result GetMesh(ref System.Int32 verticalFaces, ref System.Int32 aroundFaces, ref System.Boolean quadCaps, out Geometry.Mesh ellipsoid)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Prompt for the getting of a mesh ellipsoid.",
        "since": "7.0",
        "parameters": [
          {
            "name": "verticalFaces",
            "type": "System.Int32",
            "summary": "The number of faces in the vertical direction."
          },
          {
            "name": "aroundFaces",
            "type": "System.Int32",
            "summary": "The number of faces in the around direction"
          },
          {
            "name": "quadCaps",
            "type": "System.Boolean",
            "summary": "Set True to create quad faces at the caps, False for triangles."
          },
          {
            "name": "ellipsoid",
            "type": "Geometry.Mesh",
            "summary": "The ellipsoid in Mesh form."
          }
        ],
        "returns": "The result of the getting operation."
      }
    ]
  },
  {
    "namespace": "Rhino.Input.Custom",
    "name": "GetFileNameMode",
    "dataType": "enum",
    "since": "5.0",
    "values": [
      {
        "signature": "Open = 0",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "OpenTemplate = 1",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "OpenImage = 2",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "OpenRhinoOnly = 3",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "OpenTextFile = 5",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "OpenWorksession = 6",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Import = 7",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Attach = 8",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "LoadPlugIn = 9",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Save = 10",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "SaveSmall = 11",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "SaveTemplate = 12",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "SaveImage = 13",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Export = 14",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "SaveTextFile = 17",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "SaveWorksession = 18",
        "modifiers": [],
        "protected": false,
        "virtual": false
      }
    ]

  },
  {
    "namespace": "Rhino.Input.Custom",
    "name": "GetInteger",
    "dataType": "class",
    "summary": "Used to get integer numbers.",
    "baseclass": "Rhino.Input.Custom.GetBaseClass",
    "constructors": [
      {
        "signature": "GetInteger()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      }
    ],
    "methods": [
      {
        "signature": "GetResult Get()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Call to get an integer.",
        "since": "5.0",
        "returns": "If the user chose a number, then <b>GetResult.Number</b> ; another enumeration value otherwise."
      },
      {
        "signature": "System.Int32 Number()",
        "modifiers": ["public", "new"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "System.Void SetLowerLimit(System.Int32 lowerLimit, System.Boolean strictlyGreaterThan)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Sets a lower limit on the number that can be returned. By default there is no lower limit.",
        "since": "5.0",
        "parameters": [
          {
            "name": "lowerLimit",
            "type": "System.Int32",
            "summary": "smallest acceptable number."
          },
          {
            "name": "strictlyGreaterThan",
            "type": "System.Boolean",
            "summary": "If true, then the returned number will be > lower_limit."
          }
        ]
      },
      {
        "signature": "System.Void SetUpperLimit(System.Int32 upperLimit, System.Boolean strictlyLessThan)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Sets an upper limit on the number that can be returned. By default there is no upper limit.",
        "since": "5.0",
        "parameters": [
          {
            "name": "upperLimit",
            "type": "System.Int32",
            "summary": "largest acceptable number."
          },
          {
            "name": "strictlyLessThan",
            "type": "System.Boolean",
            "summary": "If true, then the returned number will be < upper_limit."
          }
        ]
      }
    ]
  },
  {
    "namespace": "Rhino.Input.Custom",
    "name": "GetLine",
    "dataType": "class",
    "summary": "Use to interactively get a line.  The Rhino \"Line\" command uses GetLine.",
    "interfaces": ["IDisposable"],
    "constructors": [
      {
        "signature": "GetLine()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.1"
      }
    ],
    "properties": [
      {
        "signature": "bool AcceptZeroLengthLine",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Controls whether or not a zero length line is acceptable. The default is to require the user to keep picking the end point until we get a point different than the start point.",
        "since": "5.1",
        "property": ["get", "set"]
      },
      {
        "signature": "Color FeedbackColor",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "If set, the feedback color is used to draw the dynamic line when the second point is begin picked.  If not set, the active layer color is used.",
        "since": "5.1",
        "property": ["get", "set"]
      },
      {
        "signature": "string FirstPointPrompt",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Prompt when getting first point",
        "since": "5.1",
        "property": ["get", "set"]
      },
      {
        "signature": "double FixedLength",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "If FixedLength > 0, the line must have the specified length",
        "since": "5.1",
        "property": ["get", "set"]
      },
      {
        "signature": "GetLineMode GetLineMode",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Mode used",
        "since": "5.1",
        "property": ["get", "set"]
      },
      {
        "signature": "bool HaveFeedbackColor",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "If true, the feedback color is used to draw the dynamic line when the second point is begin picked.  If false, the active layer color is used.",
        "since": "5.1",
        "property": ["get"]
      },
      {
        "signature": "string MidPointPrompt",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Prompt when getting midpoint",
        "since": "5.1",
        "property": ["get", "set"]
      },
      {
        "signature": "string SecondPointPrompt",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Prompt when getting second point",
        "since": "5.1",
        "property": ["get", "set"]
      }
    ],
    "methods": [
      {
        "signature": "System.Void Dispose()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Actively reclaims unmanaged resources that this instance uses.",
        "since": "5.1"
      },
      {
        "signature": "System.Void Dispose(System.Boolean disposing)",
        "modifiers": ["protected", "virtual"],
        "protected": true,
        "virtual": true,
        "summary": "For derived class implementers.  \nThis method is called with argument True when class user calls Dispose(), while with argument False when     the Garbage Collector invokes the finalizer, or Finalize() method.  \nYou must reclaim all used unmanaged resources in both cases, and can use this chance to call Dispose on disposable fields if the argument is true.  \nAlso, you must call the base virtual method within your overriding method.",
        "parameters": [
          {
            "name": "disposing",
            "type": "System.Boolean",
            "summary": "True if the call comes from the Dispose() method; False if it comes from the Garbage Collector finalizer."
          }
        ]
      },
      {
        "signature": "System.Void EnableAllVariations(System.Boolean on)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "If true, then all line variations are shown if the default line mode is used",
        "since": "5.1"
      },
      {
        "signature": "System.Void EnableFromBothSidesOption(System.Boolean on)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "If true, then the \"BothSides\" option shows up when the start point is interactively picked.",
        "since": "5.1"
      },
      {
        "signature": "System.Void EnableFromMidPointOption(System.Boolean on)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "If true, the \"MidPoint\" options shows up",
        "since": "5.1"
      },
      {
        "signature": "Commands.Result Get(out Geometry.Line line)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Perform the 'get' operation.",
        "since": "5.1"
      },
      {
        "signature": "System.Void SetFirstPoint(Geometry.Point3d point)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Use SetFirstPoint to specify the line's starting point and skip the start point interactive picking",
        "since": "5.1"
      }
    ]
  },
  {
    "namespace": "Rhino.Input.Custom",
    "name": "GetLineMode",
    "dataType": "enum",
    "since": "5.1",
    "values": [
      {
        "signature": "TwoPoint = 0",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "SurfaceNormal = 1",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Angled = 2",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Vertical = 3",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "FourPoint = 4",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Bisector = 5",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Perpendicular = 6",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Tangent = 7",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "CurveEnd = 8",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "CPlaneNormalVector = 9",
        "modifiers": [],
        "protected": false,
        "virtual": false
      }
    ]

  },
  {
    "namespace": "Rhino.Input.Custom",
    "name": "GetNumber",
    "dataType": "class",
    "summary": "Used to get double precision numbers.",
    "baseclass": "Rhino.Input.Custom.GetBaseClass",
    "constructors": [
      {
        "signature": "GetNumber()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Create a new GetNumber.",
        "since": "5.0"
      }
    ],
    "methods": [
      {
        "signature": "GetResult Get()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Call to get a number.",
        "since": "5.0",
        "returns": "If the user chose a number, then <b>GetResult.Number</b> ; another enumeration value otherwise."
      },
      {
        "signature": "System.Void SetLowerLimit(System.Double lowerLimit, System.Boolean strictlyGreaterThan)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Sets a lower limit on the number that can be returned. By default there is no lower limit.",
        "since": "5.0",
        "parameters": [
          {
            "name": "lowerLimit",
            "type": "System.Double",
            "summary": "smallest acceptable number."
          },
          {
            "name": "strictlyGreaterThan",
            "type": "System.Boolean",
            "summary": "If true, then the returned number will be > lower_limit."
          }
        ]
      },
      {
        "signature": "System.Void SetUpperLimit(System.Double upperLimit, System.Boolean strictlyLessThan)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Sets an upper limit on the number that can be returned. By default there is no upper limit.",
        "since": "5.0",
        "parameters": [
          {
            "name": "upperLimit",
            "type": "System.Double",
            "summary": "largest acceptable number."
          },
          {
            "name": "strictlyLessThan",
            "type": "System.Boolean",
            "summary": "If true, then the returned number will be < upper_limit."
          }
        ]
      }
    ]
  },
  {
    "namespace": "Rhino.Input.Custom",
    "name": "GetObject",
    "dataType": "class",
    "summary": "The GetObject class is the tool commands use to interactively select objects.",
    "baseclass": "Rhino.Input.Custom.GetBaseClass",
    "constructors": [
      {
        "signature": "GetObject()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      }
    ],
    "properties": [
      {
        "signature": "bool AlreadySelectedObjectSelect",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Allow selecting objects that are already selected. By default, GetObjects() disallows selection of objects that are already selected to avoid putting the same object in the selection set more than once. Calling EnableAlreadySelectedObjectSelect = true overrides that restriction and allows selected objects to be selected and returned by GetObjects. This is useful because, coupled with the return immediately mode of GetObjects(1, -1), it is possible to select a selected object to deselect when the selected objects are being managed outside GetObjects() as in the case of CRhinoPolyEdge::GetEdge().",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool BottomObjectPreference",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "By default, if a call to Input is permitted to select different parts of the same object, like a polysurface, a surface and an edge, then the top-most object is preferred. (polysurface beats face beats edge). If you want the bottom most object to be preferred, then call EnableBottomObjectPreference = True before calling GetObjects().",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool ChooseOneQuestion",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "By default, if a call to Input is permitted to select different parts of the same object, like a polysurface and an edge of that polysurface, then the top-most object is automatically selected. If you want the choose-one-object mechanism to include pop up in these cases, then call EnableChooseOneQuestion = True before calling GetObjects().",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool DeselectAllBeforePostSelect",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "True if pre-selected input will be deselected before post-selection begins when no pre-selected input is valid.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "GeometryAttributeFilter GeometryAttributeFilter",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "The geometry attribute filter provides a secondary filter that can be used to restrict which objects can be selected. Control of the type of geometry (points, curves, surfaces, meshes, etc.) is provided by GetObject.SetGeometryFilter. The geometry attribute filter is used to require the selected geometry to have certain attributes (open, closed, etc.). The default attribute filter permits selection of all types of geometry.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "ObjectType GeometryFilter",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "The geometry type filter controls which types of geometry (points, curves, surfaces, meshes, etc.) can be selected. The default geometry type filter permits selection of all types of geometry. NOTE: the filter can be a bitwise combination of multiple ObjectTypes.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool GroupSelect",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "By default, groups are ignored in GetObject. If you want your call to GetObjects() to select every object in a group that has any objects selected, then enable group selection.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool InactiveDetailPickEnabled",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "By default, objects in inactive details are not permitted to be picked. In a few rare cases this is used (ex. picking circles during DimRadius)",
        "since": "5.8",
        "property": ["get", "set"]
      },
      {
        "signature": "bool LockedObjectSelect",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "By default, locked objects cannot be selected. If you do want to be able to select locked objects, then call LockedObjectSelect=true.",
        "since": "9.0",
        "property": ["get", "set"]
      },
      {
        "signature": "int ObjectCount",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the number of objects that were selected.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "bool ObjectsWerePreselected",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "bool OneByOnePostSelect",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "In one-by-one post selection, the user is forced to select objects by post picking them one at a time.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool ProxyBrepFromSubD",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "If a subd (or a subd component) cannot be selected, but a brep (or brep component) can be selected, then automatically create and use a proxy brep.",
        "since": "7.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool ReferenceObjectSelect",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "By default, reference objects can be selected. If you do not want to be able to select reference objects, then call EnableReferenceObjectSelect=false.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "uint SerialNumber",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Each instance of GetObject has a unique runtime serial number that is used to identify object selection events associated with that instance.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "bool SubObjectSelect",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "By default, GetObject.Input will permit a user to select sub-objects (like a curve in a b-rep or a curve in a group). If you only want the user to select \"top\" level objects, then call EnableSubObjectSelect = false.",
        "since": "5.0",
        "property": ["get", "set"]
      }
    ],
    "methods": [
      {
        "signature": "GetObject ActiveGetObject(RhinoDoc doc)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Get the currently running GetObject for a given document",
        "since": "6.3"
      },
      {
        "signature": "System.Void AppendToPickList(ObjRef objref)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.3"
      },
      {
        "signature": "System.Void ClearObjects()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Clear possible special object drawing",
        "since": "6.12"
      },
      {
        "signature": "System.Boolean CustomGeometryFilter(RhinoObject rhObject, GeometryBase geometry, ComponentIndex componentIndex)",
        "modifiers": ["public", "virtual"],
        "protected": false,
        "virtual": true,
        "summary": "Checks geometry to see if it can be selected. Override to provide fancy filtering.",
        "since": "5.0",
    "remarks": "The delegate should not throw exceptions. If an exception is thrown, a message box will show and the filter will be disabled.",
        "parameters": [
          {
            "name": "rhObject",
            "type": "RhinoObject",
            "summary": "parent object being considered."
          },
          {
            "name": "geometry",
            "type": "GeometryBase",
            "summary": "geometry being considered."
          },
          {
            "name": "componentIndex",
            "type": "ComponentIndex",
            "summary": "if >= 0, geometry is a proper sub-part of object->Geometry() with componentIndex."
          }
        ],
        "returns": "The default returns True unless you've set a custom geometry filter. If a custom filter has been set, that delegate is called."
      },
      {
        "signature": "System.Void DisablePreSelect()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "System.Void EnableClearObjectsOnEntry(System.Boolean enable)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "By default the picked object list is cleared when GetObject.GetObjects() is called. If you are reusing a GetObject class and do not want the existing object list cleared when you call Input, then call EnableClearObjectsOnEntry(false) before calling GetObjects().",
        "since": "5.0",
        "parameters": [
          {
            "name": "enable",
            "type": "System.Boolean",
            "summary": "The state to set."
          }
        ]
      },
      {
        "signature": "System.Void EnableHighlight(System.Boolean enable)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "By default, any object post-pick selected by GetObjects() is highlighted. If you want to post-pick objects and not have them automatically highlight, then call EnableHighlight = false.",
        "since": "5.0"
      },
      {
        "signature": "System.Void EnableIgnoreGrips(System.Boolean enable)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "By default, post selection will select objects with grips on. If you do not want to be able to post select objects with grips on, then call EnableIgnoreGrips = false. The ability to preselect an object with grips on is determined by the value returned by the virtual RhinoObject.IsSelectableWithGripsOn.",
        "since": "5.0"
      },
      {
        "signature": "System.Void EnablePostSelect(System.Boolean enable)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Control the availability of post selection in GetObjects.",
        "since": "5.0",
    "remarks": "By default, if no valid input is pre-selected when GetObjects is called, then the user is given the chance to post select. If you want to force the user to pre-select, then call EnablePostSelect(false)."
      },
      {
        "signature": "System.Void EnablePreSelect(System.Boolean enable, System.Boolean ignoreUnacceptablePreselectedObjects)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Control the pre-selection behavior GetObjects.",
        "since": "5.0",
    "remarks": "By default, if valid input is pre-selected when GetObjects() is called, then that input is returned and the user is not given the opportunity to post-select. If you want to force the user to post-select, then call EnablePreSelect(false).",
        "parameters": [
          {
            "name": "enable",
            "type": "System.Boolean",
            "summary": "if true, pre-selection is enabled."
          },
          {
            "name": "ignoreUnacceptablePreselectedObjects",
            "type": "System.Boolean",
            "summary": "If True and some acceptable objects are pre-selected, then any unacceptable pre-selected objects are ignored. If False and any unacceptable are pre-selected, then the user is forced to post-select."
          }
        ]
      },
      {
        "signature": "System.Void EnablePressEnterWhenDonePrompt(System.Boolean enable)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "By default, when GetObject.GetObjects is called with minimumNumber > 0 and maximumNumber = 0, the command prompt automatically includes \"Press Enter when done\" after the user has selected at least minimumNumber of objects. If you want to prohibit the addition of the \"Press Enter when done\", then call EnablePressEnterWhenDonePrompt = false;",
        "since": "5.0"
      },
      {
        "signature": "System.Void EnableSelPrevious(System.Boolean enable)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "By default, any object selected during a command becomes part of the \"previous selection set\" and can be reselected by the SelPrev command. If you need to select objects but do not want them to be selected by a subsequent call to SelPrev, then call EnableSelPrev = false.",
        "since": "5.0"
      },
      {
        "signature": "System.Void EnableUnselectObjectsOnExit(System.Boolean enable)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "By default any objects in the object list are unselected when GetObject.GetObjects() exits with any return code besides Object. If you want to leave the objects selected when non-object input is returned, then call EnableUnselectObjectsOnExit(false) before calling GetObjects().",
        "since": "5.0",
        "parameters": [
          {
            "name": "enable",
            "type": "System.Boolean",
            "summary": "The state to set."
          }
        ]
      },
      {
        "signature": "GetResult Get()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Call to select a single object.",
        "since": "5.0",
        "returns": "GetResult.Object if an object was selected. GetResult.Cancel if the user pressed ESCAPE to cancel the selection. See GetResults for other possible values that may be returned when options, numbers, etc., are acceptable responses."
      },
      {
        "signature": "GetResult GetMultiple(System.Int32 minimumNumber, System.Int32 maximumNumber)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Call to select objects.",
        "since": "5.0",
        "parameters": [
          {
            "name": "minimumNumber",
            "type": "System.Int32",
            "summary": "minimum number of objects to select."
          },
          {
            "name": "maximumNumber",
            "type": "System.Int32",
            "summary": "maximum number of objects to select. If 0, then the user must press enter to finish object selection. If -1, then object selection stops as soon as there are at least minimumNumber of object selected. If >0, then the picking stops when there are maximumNumber objects.  If a window pick, crossing pick, or Sel* command attempts to add more than maximumNumber, then the attempt is ignored."
          }
        ],
        "returns": "GetResult.Object if one or more objects were selected. GetResult.Cancel if the user pressed ESCAPE to cancel the selection. See GetResults for other possible values that may be returned when options, numbers, etc., are acceptable responses."
      },
      {
        "signature": "ObjRef Object(System.Int32 index)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "ObjRef[] Objects()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "System.Boolean PassesGeometryAttributeFilter(RhinoObject rhObject, GeometryBase geometry, ComponentIndex componentIndex)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Checks geometry to see if it passes the basic GeometryAttributeFilter.",
        "since": "5.0",
        "parameters": [
          {
            "name": "rhObject",
            "type": "RhinoObject",
            "summary": "parent object being considered."
          },
          {
            "name": "geometry",
            "type": "GeometryBase",
            "summary": "geometry being considered."
          },
          {
            "name": "componentIndex",
            "type": "ComponentIndex",
            "summary": "if >= 0, geometry is a proper sub-part of object->Geometry() with componentIndex."
          }
        ],
        "returns": "True if the geometry passes the filter returned by GeometryAttributeFilter()."
      },
      {
        "signature": "System.Void SetCustomGeometryFilter(GetObjectGeometryFilter filter)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Set filter callback function that will be called by the CustomGeometryFilter",
        "since": "5.0"
      },
      {
        "signature": "System.Void SetPressEnterWhenDonePrompt(System.String prompt)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "The default prompt when EnablePressEnterWhenDonePrompt is enabled is \"Press Enter when done\". Use this function to specify a different string to be appended.",
        "since": "5.0",
        "parameters": [
          {
            "name": "prompt",
            "type": "System.String",
            "summary": "The text that will be displayed just after the prompt, after the selection has been made."
          }
        ]
      }
    ]
  },
  {
    "namespace": "Rhino.Input.Custom",
    "name": "GetOption",
    "dataType": "class",
    "summary": "If you want to explicitly get string input, then use GetString class with options. If you only want to get options, then use this class (GetOption)",
    "baseclass": "Rhino.Input.Custom.GetBaseClass",
    "constructors": [
      {
        "signature": "GetOption()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      }
    ],
    "methods": [
      {
        "signature": "GetResult Get()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Call to get an option. A return value of \"option\" means the user selected a valid option. Use Option() the determine which option.",
        "since": "5.0",
        "returns": "If the user chose an option, then <b>GetResult.Option</b> ; another enumeration value otherwise."
      }
    ]
  },
  {
    "namespace": "Rhino.Input.Custom",
    "name": "GetPoint",
    "dataType": "class",
    "summary": "Used to interactively get a point.",
    "baseclass": "Rhino.Input.Custom.GetBaseClass",
    "constructors": [
      {
        "signature": "GetPoint()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Create a new GetPoint.",
        "since": "5.0"
      }
    ],
    "properties": [
      {
        "signature": "Color DynamicDrawColor",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Color used by CRhinoGetPoint::DynamicDraw to draw the current point and the line from the base point to the current point.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool FullFrameRedrawDuringGet",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "In the \"RARE\" case that you need to draw some depth buffered geometry during a Get() operation, setting this value to True will force entire frames to be redrawn while the user moves the mouse. This allows DisplayPipeline events to be triggered as well as OnPostDrawObjects NOTE!! Setting this value to True comes with a significant performance penalty because the scene needs to be fully regenerated every frame where the standard DynamicDraw event draws temporary decorations (geometry) on top of a static scene.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "OsnapModes OsnapEventType",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the type of object snap used to obtain the point.",
        "since": "6.24",
        "property": ["get"]
      },
      {
        "signature": "object Tag",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets an arbitrary object that can be attached to this <b>GetPoint</b> instance. Useful for passing some/ information that you may need in a DynamicDraw event since you can get at this Tag from the GetPointDrawEventArgs.",
        "since": "5.0",
        "property": ["get", "set"]
      }
    ],
    "methods": [
      {
        "signature": "System.Int32 AddConstructionPoint(Point3d point)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Adds a point to the list of construction points.",
        "since": "5.0",
    "remarks": "Construction points are like snap points except that they get snapped to even when point osnap is off.  Typically, there are only a few construction points while there can be many snap points. For example, when polylines are drawn the start point is a construction point and the other points are snap points.",
        "parameters": [
          {
            "name": "point",
            "type": "Point3d",
            "summary": "A point to be added."
          }
        ],
        "returns": "Total number of construction points."
      },
      {
        "signature": "System.Int32 AddConstructionPoints(Point3d[] points)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Adds points to the list of construction points.",
        "since": "5.0",
    "remarks": "Construction points are like snap points except that they get snapped to even when point osnap is off.  Typically, there are only a few construction points while there can be many snap points. For example, when polylines are drawn the start point is a construction point and the other points are snap points.",
        "parameters": [
          {
            "name": "points",
            "type": "Point3d[]",
            "summary": "An array of points to be added."
          }
        ],
        "returns": "Total number of construction points."
      },
      {
        "signature": "System.Int32 AddSnapPoint(Point3d point)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Adds a point to the list of osnap points.",
        "since": "5.0",
    "remarks": "When point osnap is enabled, GetPoint will snap to points in the Rhino model. If you want the user to be able to snap to additional points, then use GetPoint::AddSnapPoints to specify the locations of these additional points.",
        "parameters": [
          {
            "name": "point",
            "type": "Point3d",
            "summary": "A point."
          }
        ],
        "returns": "Total number of snap points."
      },
      {
        "signature": "System.Int32 AddSnapPoints(Point3d[] points)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Adds points to the list of osnap points.",
        "since": "5.0",
    "remarks": "When point osnap is enabled, GetPoint will snap to points in the Rhino model. If you want the user to be able to snap to additional points, then use GetPoint::AddSnapPoints to specify the locations of these additional points.",
        "parameters": [
          {
            "name": "points",
            "type": "Point3d[]",
            "summary": "An array of points to snap onto."
          }
        ],
        "returns": "Total number of snap points."
      },
      {
        "signature": "System.Void ClearConstraints()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Removes any explicit constraints added by calls to GetPoint::Constraint() and enable the built-in constraint options.",
        "since": "5.0"
      },
      {
        "signature": "System.Void ClearConstructionPoints()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Remove all construction points.",
        "since": "5.0",
    "remarks": "Construction points are like snap points except that they get snapped to even when point osnap is off. Typically, there are only a few construction points while there can be many snap points. For example, when polylines are drawn the start point is a construction point and the other points are snap points."
      },
      {
        "signature": "System.Void ClearSnapPoints()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Remove all snap points.",
        "since": "5.0",
    "remarks": "When point osnap is enabled, GetPoint will snap to points in the Rhino model. If you want the user to be able to snap to additional points, then use GetPoint::AddSnapPoints to specify the locations of these additional points."
      },
      {
        "signature": "System.Boolean Constrain(Arc arc)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Constrains the picked point to lie on an arc.",
        "since": "5.0",
        "parameters": [
          {
            "name": "arc",
            "type": "Arc",
            "summary": "An arc to use as constraint."
          }
        ],
        "returns": "True if constraint could be applied."
      },
      {
        "signature": "System.Boolean Constrain(Brep brep, System.Int32 wireDensity, System.Int32 faceIndex, System.Boolean allowPickingPointOffObject)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Constrains the picked point to lie on a brep.",
        "since": "5.0",
        "parameters": [
          {
            "name": "brep",
            "type": "Brep",
            "summary": "A brep to use as constraint."
          },
          {
            "name": "wireDensity",
            "type": "System.Int32",
            "summary": "When wire_density<0, isocurve intersection snapping is turned off, when wire_density>=0, the value defines the isocurve density used for isocurve intersection snapping."
          },
          {
            "name": "faceIndex",
            "type": "System.Int32",
            "summary": "When face_index <0, constrain to whole brep. When face_index >=0, constrain to individual face."
          },
          {
            "name": "allowPickingPointOffObject",
            "type": "System.Boolean",
            "summary": "defines whether the point pick is allowed to happen off object. When false, a \"no no\" cursor is shown when the cursor is not on the object. When true, a normal point picking cursor is used and the marker is visible also when the cursor is not on the object."
          }
        ],
        "returns": "True if constraint could be applied."
      },
      {
        "signature": "System.Boolean Constrain(Circle circle)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Constrains the picked point to lie on a circle.",
        "since": "5.0",
        "parameters": [
          {
            "name": "circle",
            "type": "Circle",
            "summary": "A circle to use as constraint."
          }
        ],
        "returns": "True if constraint could be applied."
      },
      {
        "signature": "System.Boolean Constrain(Curve curve, System.Boolean allowPickingPointOffObject)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Constrains the picked point to lie on a curve.",
        "since": "5.0",
        "parameters": [
          {
            "name": "curve",
            "type": "Curve",
            "summary": "A curve to use as constraint."
          },
          {
            "name": "allowPickingPointOffObject",
            "type": "System.Boolean",
            "summary": "defines whether the point pick is allowed to happen off object. When false, a \"no no\" cursor is shown when the cursor is not on the object. When true, a normal point picking cursor is used and the marker is visible also when the cursor is not on the object."
          }
        ],
        "returns": "True if constraint could be applied."
      },
      {
        "signature": "System.Boolean Constrain(Cylinder cylinder)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Constrains the picked point to lie on a cylinder.",
        "since": "5.0",
        "parameters": [
          {
            "name": "cylinder",
            "type": "Cylinder",
            "summary": "A cylinder to use as constraint."
          }
        ],
        "returns": "True if constraint could be applied."
      },
      {
        "signature": "System.Boolean Constrain(Line line)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Constrains the picked point to lie on a line.",
        "since": "5.0",
        "parameters": [
          {
            "name": "line",
            "type": "Line",
            "summary": "A line to use as constraint."
          }
        ],
        "returns": "True if constraint could be applied."
      },
      {
        "signature": "System.Boolean Constrain(Mesh mesh, System.Boolean allowPickingPointOffObject)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Constrains the picked point to lie on a mesh.",
        "since": "5.0",
        "parameters": [
          {
            "name": "mesh",
            "type": "Mesh",
            "summary": "A mesh to use as constraint."
          },
          {
            "name": "allowPickingPointOffObject",
            "type": "System.Boolean",
            "summary": "defines whether the point pick is allowed to happen off object. When false, a \"no no\" cursor is shown when the cursor is not on the object. When true, a normal point picking cursor is used and the marker is visible also when the cursor is not on the object."
          }
        ],
        "returns": "True if constraint could be applied."
      },
      {
        "signature": "System.Boolean Constrain(Plane plane, System.Boolean allowElevator)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "constrain the picked point to lie on a plane.",
        "since": "5.0",
        "parameters": [
          {
            "name": "plane",
            "type": "Plane",
            "summary": "A plane to use as constraint."
          },
          {
            "name": "allowElevator",
            "type": "System.Boolean",
            "summary": "True if elevator mode should be allowed at user request."
          }
        ],
        "returns": "True if constraint could be applied."
      },
      {
        "signature": "System.Boolean Constrain(Point3d from, Point3d to)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Constrains the picked point to lie on a line.",
        "since": "5.0",
        "parameters": [
          {
            "name": "from",
            "type": "Point3d",
            "summary": "The start point of constraint."
          },
          {
            "name": "to",
            "type": "Point3d",
            "summary": "The end point of constraint."
          }
        ],
        "returns": "True if constraint could be applied."
      },
      {
        "signature": "System.Boolean Constrain(Sphere sphere)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Constrains the picked point to lie on a sphere.",
        "since": "5.0",
        "parameters": [
          {
            "name": "sphere",
            "type": "Sphere",
            "summary": "A sphere to use as constraint."
          }
        ],
        "returns": "True if constraint could be applied."
      },
      {
        "signature": "System.Boolean Constrain(Surface surface, System.Boolean allowPickingPointOffObject)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Constrains the picked point to lie on a surface.",
        "since": "5.0",
        "parameters": [
          {
            "name": "surface",
            "type": "Surface",
            "summary": "A surface to use as constraint."
          },
          {
            "name": "allowPickingPointOffObject",
            "type": "System.Boolean",
            "summary": "defines whether the point pick is allowed to happen off object. When false, a \"no no\" cursor is shown when the cursor is not on the object. When true, a normal point picking cursor is used and the marker is visible also when the cursor is not on the object."
          }
        ],
        "returns": "True if constraint could be applied."
      },
      {
        "signature": "System.Void ConstrainDistanceFromBasePoint(System.Double distance)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Sets distance constraint from base point.",
        "since": "5.0",
    "remarks": "If the base point is set and the distance from base point constraint is > 0, then the picked point is constrained to be this distance from the base point.",
        "parameters": [
          {
            "name": "distance",
            "type": "System.Double",
            "summary": "pass UnsetValue to clear this constraint. Pass 0.0 to disable the ability to set this constraint by typing a number during GetPoint."
          }
        ]
      },
      {
        "signature": "System.Boolean ConstrainToConstructionPlane(System.Boolean throughBasePoint)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "If enabled, the picked point is constrained to be on the active construction plane. If the base point is set, then the point is constrained to be on the plane that contains the base point and is parallel to the active construction plane. By default this constraint is enabled.",
        "since": "5.0",
        "parameters": [
          {
            "name": "throughBasePoint",
            "type": "System.Boolean",
            "summary": "True if the base point should be used as compulsory level reference."
          }
        ],
        "returns": "If True and the base point is set, then the point is constrained to be on the plane parallel to the construction plane that passes through the base point, even when planar mode is off. If throughBasePoint is false, then the base point shift only happens if planar mode is on."
      },
      {
        "signature": "System.Void ConstrainToTargetPlane()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Constrains point to lie on a plane that is parallel to the viewing plane and passes through the view's target point.",
        "since": "5.0"
      },
      {
        "signature": "System.Boolean ConstrainToVirtualCPlaneIntersection(Plane plane)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "If enabled, the picked point is constrained to be on the intersection of the plane and the virtual CPlane going through the plane origin. If the planes are parallel, the constraint works just like planar constraint.",
        "since": "5.0",
        "parameters": [
          {
            "name": "plane",
            "type": "Plane",
            "summary": "The plane used for the plane - virtual CPlane intersection."
          }
        ],
        "returns": "True if the operation succeeded; False otherwise."
      },
      {
        "signature": "System.Void DrawLineFromPoint(Point3d startPoint, System.Boolean showDistanceInStatusBar)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Use DrawLineFromPoint() if you want a dynamic line drawn from a point to the point being picked.",
        "since": "5.0",
    "remarks": "Calling DrawLineFromPoint automatically enables drawing the line. Use EnableDrawLineFromPoint() to toggle the line drawing state.",
        "parameters": [
          {
            "name": "startPoint",
            "type": "Point3d",
            "summary": "The line is drawn from startPoint to the point being picked. If the base point has not been set, then it is set to startPoint."
          },
          {
            "name": "showDistanceInStatusBar",
            "type": "System.Boolean",
            "summary": "if true, the distance from the basePoint to the point begin picked is shown in the status bar."
          }
        ]
      },
      {
        "signature": "System.Void EnableCurveSnapArrow(System.Boolean drawDirectionArrowAtSnapPoint, System.Boolean reverseArrow)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Controls display of the curve snap arrow icon.",
        "since": "5.0",
    "remarks": "The tangent bar is drawn by GetPoint::DynamicDraw. If you override GetPoint::DynamicDraw, then you must call the base class function.",
        "parameters": [
          {
            "name": "drawDirectionArrowAtSnapPoint",
            "type": "System.Boolean",
            "summary": "True to draw arrow icon whenever GetPoint snaps to a curve."
          },
          {
            "name": "reverseArrow",
            "type": "System.Boolean",
            "summary": "True if arrow icon direction should be the reverse of the first derivative direction."
          }
        ]
      },
      {
        "signature": "System.Void EnableCurveSnapPerpBar(System.Boolean drawPerpBarAtSnapPoint, System.Boolean drawEndPoints)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Controls display of the curve snap perpendicular bar icon.",
        "since": "5.0",
        "parameters": [
          {
            "name": "drawPerpBarAtSnapPoint",
            "type": "System.Boolean",
            "summary": "True to draw a tangent bar icon  whenever GetPoint snaps to a curve."
          },
          {
            "name": "drawEndPoints",
            "type": "System.Boolean",
            "summary": "True to draw points at the end of the tangent bar."
          }
        ]
      },
      {
        "signature": "System.Void EnableCurveSnapTangentBar(System.Boolean drawTangentBarAtSnapPoint, System.Boolean drawEndPoints)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Controls display of the curve snap tangent bar icon.",
        "since": "5.0",
    "remarks": "The tangent bar is drawn by GetPoint::DynamicDraw. If you override GetPoint::DynamicDraw, then you must call the base class function.",
        "parameters": [
          {
            "name": "drawTangentBarAtSnapPoint",
            "type": "System.Boolean",
            "summary": "True to draw a tangent bar icon whenever GetPoint snaps to a curve."
          },
          {
            "name": "drawEndPoints",
            "type": "System.Boolean",
            "summary": "True to draw points at the end of the tangent bar."
          }
        ]
      },
      {
        "signature": "System.Void EnableDrawLineFromPoint(System.Boolean enable)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Controls drawing of dynamic a line from the start point.",
        "since": "5.0",
        "parameters": [
          {
            "name": "enable",
            "type": "System.Boolean",
            "summary": "if true, a dynamic line is drawn from the DrawLineFromPoint startPoint to the point being picked."
          }
        ]
      },
      {
        "signature": "System.Void EnableNoRedrawOnExit(System.Boolean noRedraw)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "The default functionality of the GetPoint operation is to perform a redraw on exit. Calling this function with True turns off automatic redraw at the end of GetPoint. May be needed in some commands for flicker free feedback. When set to true, the caller is responsible for cleaning up the screen after GetPoint.",
        "since": "6.0"
      },
      {
        "signature": "System.Void EnableObjectSnapCursors(System.Boolean enable)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Enables or disables object snap cursors. By default, object snap cursors are enabled.",
        "since": "6.0",
        "parameters": [
          {
            "name": "enable",
            "type": "System.Boolean",
            "summary": "If True then object snap cursors (plus sign with \"near\", \"end\", etc.) are used when the point snaps to a object."
          }
        ]
      },
      {
        "signature": "System.Void EnableSnapToCurves(System.Boolean enable)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "If you want GetPoint() to try to snap to curves when the mouse is near a curve (like the center point in the Circle command when the AroundCurve option is on), then enable the snap to curves option.",
        "since": "5.0",
        "parameters": [
          {
            "name": "enable",
            "type": "System.Boolean",
            "summary": "Whether points should be enabled."
          }
        ]
      },
      {
        "signature": "GetResult Get()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "After setting up options and so on, call GetPoint::Get to get a 3d point. The point is retrieved when the mouse goes down.",
        "since": "5.0"
      },
      {
        "signature": "GetResult Get(System.Boolean onMouseUp, System.Boolean get2DPoint)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "After setting up options and so on, call this method to get a 2d or 3d point.",
        "since": "5.12",
        "parameters": [
          {
            "name": "onMouseUp",
            "type": "System.Boolean",
            "summary": "If false, the point is returned when the left mouse button goes down. If true, the point is returned when the left mouse button goes up."
          },
          {
            "name": "get2DPoint",
            "type": "System.Boolean",
            "summary": "If True then get a 2d point otherwise get a 2d point"
          }
        ],
        "returns": "<b>GetResult.Point</b> if the user chose a 3d point; <b>GetResult.Point2d</b> if the user chose a 2d point; other enumeration value otherwise."
      },
      {
        "signature": "GetResult Get(System.Boolean onMouseUp)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "After setting up options and so on, call this method to get a 3d point.",
        "since": "5.0",
        "parameters": [
          {
            "name": "onMouseUp",
            "type": "System.Boolean",
            "summary": "If false, the point is returned when the left mouse button goes down. If true, the point is returned when the left mouse button goes up."
          }
        ],
        "returns": "<b>GetResult.Point</b> if the user chose a point; other enumeration value otherwise."
      },
      {
        "signature": "Point3d[] GetConstructionPoints()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets current construction points.",
        "since": "5.0",
    "remarks": "Construction points are like snap points except that they get snapped to even when point osnap is off. Typically, there are only a few construction points while there can be many snap points. For example, when polylines are drawn the start point is a construction point and the other points are snap points.",
        "returns": "An array of points."
      },
      {
        "signature": "System.Boolean GetPlanarConstraint(ref RhinoViewport vp, out Plane plane)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0"
      },
      {
        "signature": "Point3d[] GetSnapPoints()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets current snap points.",
        "since": "5.0",
        "returns": "An array of points."
      },
      {
        "signature": "System.Boolean InterruptMouseMove()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "If you have lengthy computations in OnMouseMove() and/or DymanicDraw() overrides, then periodically call InterruptMouseMove() to see if you should interrupt your work because the mouse has moved again.",
        "since": "5.0",
        "returns": "True if you should interrupt your work; False otherwise."
      },
      {
        "signature": "System.Boolean NumberPreview(out System.Double number)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "If the user is typing a number, but hasn't pressed Enter, True is returned, along with the number the user typed.",
        "since": "7.23",
        "parameters": [
          {
            "name": "number",
            "type": "System.Double",
            "summary": "The number typed by the user."
          }
        ],
        "returns": "True if successful, False otherwise."
      },
      {
        "signature": "System.Void OnDynamicDraw(GetPointDrawEventArgs e)",
        "modifiers": ["protected", "virtual"],
        "protected": true,
        "virtual": true,
        "summary": "Default calls the DynamicDraw event.",
        "parameters": [
          {
            "name": "e",
            "type": "GetPointDrawEventArgs",
            "summary": "Current argument for the event."
          }
        ]
      },
      {
        "signature": "System.Void OnMouseDown(GetPointMouseEventArgs e)",
        "modifiers": ["protected", "virtual"],
        "protected": true,
        "virtual": true,
        "summary": "Default calls the MouseDown event.",
        "parameters": [
          {
            "name": "e",
            "type": "GetPointMouseEventArgs",
            "summary": "Current argument for the event."
          }
        ]
      },
      {
        "signature": "System.Void OnMouseMove(GetPointMouseEventArgs e)",
        "modifiers": ["protected", "virtual"],
        "protected": true,
        "virtual": true,
        "summary": "Calls the <b>MouseMove</b> event and can/should be called by overriding implementation.",
        "parameters": [
          {
            "name": "e",
            "type": "GetPointMouseEventArgs",
            "summary": "Current argument for the event."
          }
        ]
      },
      {
        "signature": "System.Void OnPostDrawObjects(DrawEventArgs e)",
        "modifiers": ["protected", "virtual"],
        "protected": true,
        "virtual": true,
        "summary": "In the \"rare\" case that you need to draw some depth buffered geometry during a GetPoint operation, override the OnPostDrawObjects function. NOTE!! Overriding this function comes with a significant performance penalty because the scene needs to be fully regenerated every frame where the standard DynamicDraw event draws temporary decorations (geometry) on top of a static scene.",
        "parameters": [
          {
            "name": "e",
            "type": "DrawEventArgs",
            "summary": "Current argument for the event."
          }
        ]
      },
      {
        "signature": "System.Void PermitConstraintOptions(System.Boolean permit)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Control the availability of the built-in linear, planar, curve, and surface constraint options like \"Along\", \"AlongPerp\", \"AlongTan\", \"AlongParallel\", \"Between\", \"OnCrv\", \"OnSrf\", \".x\", \".y\", \".z\", \".xy\", etc.",
        "since": "5.0",
    "remarks": "By default, these built-in constraint options are available unless an explicit constraint is added by calling one of the GetPoint::Constrain functions. Calling GetPoint::ClearConstraints automatically enables the built-in constraint options. The built-in constraint options are never visible on the command line and the user must type the complete option name to activate these options.",
        "parameters": [
          {
            "name": "permit",
            "type": "System.Boolean",
            "summary": "if true, then the built-in constraint options are automatically available in GetPoint."
          }
        ]
      },
      {
        "signature": "System.Void PermitElevatorMode(System.Int32 permitMode)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Permits the use of the control key to define a line constraint.",
        "since": "5.0",
        "parameters": [
          {
            "name": "permitMode",
            "type": "System.Int32",
            "summary": "0: no elevator modes are permitted 1: fixed plane elevator mode (like the Line command) 2: cplane elevator mode (like object dragging)"
          }
        ]
      },
      {
        "signature": "System.Void PermitFromOption(System.Boolean permit)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Control the availability of the built-in \"From\" option. By default, the \"From\" option is enabled.",
        "since": "5.0",
    "remarks": "The GetPoint \"From\" option is never visible on the command line and the user must type the complete option name to activate the \"From\" option. When the GetPoint \"From\" snap is enabled, the user set/change the base point during GetPoint by typing \"From\" and picking a point. A related option is the built-in distance from base point constraint that is can be set before GetPoint is called by passing a value to GetPoint::ConstrainDistanceFromBasePoint or during GetPoint by entering a number.",
        "parameters": [
          {
            "name": "permit",
            "type": "System.Boolean",
            "summary": "if true, then the \"From\" option is automatically available in GetPoint."
          }
        ]
      },
      {
        "signature": "System.Void PermitObjectSnap(System.Boolean permit)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "By default, object snaps like \"end\", \"near\", etc. are controlled by the user. If you want to disable this ability, then call PermitObjectSnap(false).",
        "since": "5.0",
        "parameters": [
          {
            "name": "permit",
            "type": "System.Boolean",
            "summary": "True to permit snapping to objects."
          }
        ]
      },
      {
        "signature": "System.Void PermitOrthoSnap(System.Boolean permit)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Controls availability of ortho snap. Default is true.",
        "since": "5.0",
        "parameters": [
          {
            "name": "permit",
            "type": "System.Boolean",
            "summary": "if true, then GetPoint pays attention to the Rhino \"ortho snap\" and \"planar snap\" settings reported by ModelAidSettings.Ortho and ModelAidSettings.Planar."
          }
        ]
      },
      {
        "signature": "System.Void PermitTabMode(System.Boolean permit)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Permits the use of the tab key to define a line constraint.",
        "since": "5.0",
    "remarks": "By default, use of the tab key is supported.",
        "parameters": [
          {
            "name": "permit",
            "type": "System.Boolean",
            "summary": "If true, then the built-in tab key mode is available."
          }
        ]
      },
      {
        "signature": "BrepFace PointOnBrep(out System.Double u, out System.Double v)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Use to determine if point was on a Brep face. If the point was on a Brep face, then the (u,v) are the face parameters for the point.",
        "since": "6.0",
        "parameters": [
          {
            "name": "u",
            "type": "System.Double",
            "summary": "If the point was on a Brep face, then the u parameter."
          },
          {
            "name": "v",
            "type": "System.Double",
            "summary": "If the point was on a Brep face, then the v parameter."
          }
        ],
        "returns": "The Brep face or None if the point was not on a Brep face."
      },
      {
        "signature": "Curve PointOnCurve(out System.Double t)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Use to determine is point was on a curve.",
        "since": "5.0",
        "parameters": [
          {
            "name": "t",
            "type": "System.Double",
            "summary": "If the point was on a curve, then the t is the curve parameter for the point.  The point returned by Point() is the same as curve.PointAt(t)."
          }
        ],
        "returns": "A curve at a specified parameter value."
      },
      {
        "signature": "DocObjects.ObjRef PointOnObject()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Call this function to see if the point was on an object. If the point was on an object an ObjRef is returned; otherwise None is returned.",
        "since": "5.0",
        "returns": "A point object reference."
      },
      {
        "signature": "Surface PointOnSurface(out System.Double u, out System.Double v)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Use to determine if point was on a surface. If the point was on a surface, then the (u,v) are the surface parameters for the point. The point returned by Point() is the same as surface.PointAt(u,v).",
        "since": "6.0",
        "parameters": [
          {
            "name": "u",
            "type": "System.Double",
            "summary": "If the point was on a surface, then the u parameter."
          },
          {
            "name": "v",
            "type": "System.Double",
            "summary": "If the point was on a surface, then the v parameter."
          }
        ],
        "returns": "The surface or None if the point was not on a surface."
      },
      {
        "signature": "System.Void SetBasePoint(Point3d basePoint, System.Boolean showDistanceInStatusBar)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Sets a base point used by ortho snap, from snap, planar snap, etc.",
        "since": "5.0",
        "parameters": [
          {
            "name": "basePoint",
            "type": "Point3d",
            "summary": "The new base point."
          },
          {
            "name": "showDistanceInStatusBar",
            "type": "System.Boolean",
            "summary": "If true, then the distance from base_point to the current point will be in the status bar distance pane."
          }
        ]
      },
      {
        "signature": "System.Void SetCursor(UI.CursorStyle cursor)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Sets cursor that will be used when Get() is called and snap is not happening.",
        "since": "6.0"
      },
      {
        "signature": "System.Boolean TryGetBasePoint(out Point3d basePoint)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      }
    ]
  },
  {
    "namespace": "Rhino.Input.Custom",
    "name": "GetPointDrawEventArgs",
    "dataType": "class",
    "summary": "Arguments for drawing during point getting.",
    "baseclass": "Rhino.Display.DrawEventArgs",
    "properties": [
      {
        "signature": "Point3d CurrentPoint",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "GetPoint Source",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "GetPoint class that this draw event originated from.",
        "since": "5.0",
        "property": ["get"]
      }
    ]
  },
  {
    "namespace": "Rhino.Input.Custom",
    "name": "GetPointMouseEventArgs",
    "dataType": "class",
    "summary": "Arguments for mouse information during point getting.",
    "baseclass": "EventArgs",
    "properties": [
      {
        "signature": "bool ControlKeyDown",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "bool LeftButtonDown",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "bool MiddleButtonDown",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "Point3d Point",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "bool RightButtonDown",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "bool ShiftKeyDown",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "GetPoint Source",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "RhinoViewport Viewport",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "Point WindowPoint",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0",
        "property": ["get"]
      }
    ]
  },
  {
    "namespace": "Rhino.Input.Custom",
    "name": "GetPolyline",
    "dataType": "class",
    "summary": "Use to interactively get a polyline.",
    "interfaces": ["IDisposable"],
    "constructors": [
      {
        "signature": "GetPolyline()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0"
      }
    ],
    "properties": [
      {
        "signature": "string FirstPointPrompt",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Prompt when getting first point",
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "string FourthPointPrompt",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Prompt when getting fourth point",
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "int MaxPointCount",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "int MinPointCount",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "string SecondPointPrompt",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Prompt when getting second point",
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "string ThirdPointPrompt",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Prompt when getting third point",
        "since": "6.0",
        "property": ["get", "set"]
      }
    ],
    "methods": [
      {
        "signature": "System.Void Dispose()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Actively reclaims unmanaged resources that this instance uses.",
        "since": "6.0"
      },
      {
        "signature": "System.Void Dispose(System.Boolean disposing)",
        "modifiers": ["protected", "virtual"],
        "protected": true,
        "virtual": true,
        "summary": "For derived class implementers.  \nThis method is called with argument True when class user calls Dispose(), while with argument False when     the Garbage Collector invokes the finalizer, or Finalize() method.  \nYou must reclaim all used unmanaged resources in both cases, and can use this chance to call Dispose on disposable fields if the argument is true.  \nAlso, you must call the base virtual method within your overriding method.",
        "parameters": [
          {
            "name": "disposing",
            "type": "System.Boolean",
            "summary": "True if the call comes from the Dispose() method; False if it comes from the Garbage Collector finalizer."
          }
        ]
      },
      {
        "signature": "Commands.Result Get(out Geometry.Polyline polyline)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Perform the 'get' operation.",
        "since": "6.0"
      },
      {
        "signature": "System.Void SetFirstPoint(Geometry.Point3d point)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Use SetFirstPoint to specify the line's starting point and skip the start point interactive picking",
        "since": "6.0"
      }
    ]
  },
  {
    "namespace": "Rhino.Input.Custom",
    "name": "GetSphere",
    "dataType": "class",
    "summary": "Class provides user interface to define a sphere.",
    "interfaces": ["IDisposable"],
    "constructors": [
      {
        "signature": "GetSphere()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "7.0"
      }
    ],
    "properties": [
      {
        "signature": "double DefaultSize",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Default radius or diameter (based on InDiameterMode)",
        "since": "7.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool InDiameterMode",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Determines if the \"size\" value is representing a radius or diameter",
        "since": "7.0",
        "property": ["get", "set"]
      }
    ],
    "methods": [
      {
        "signature": "System.Void Dispose()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Actively reclaims unmanaged resources that this instance uses.",
        "since": "7.0"
      },
      {
        "signature": "System.Void Dispose(System.Boolean disposing)",
        "modifiers": ["protected", "virtual"],
        "protected": true,
        "virtual": true,
        "summary": "For derived class implementers.  \nThis method is called with argument True when class user calls Dispose(), while with argument False when     the Garbage Collector invokes the finalizer, or Finalize() method.  \nYou must reclaim all used unmanaged resources in both cases, and can use this chance to call Dispose on disposable fields if the argument is true.  \nAlso, you must call the base virtual method within your overriding method.",
        "parameters": [
          {
            "name": "disposing",
            "type": "System.Boolean",
            "summary": "True if the call comes from the Dispose() method; False if it comes from the Garbage Collector finalizer."
          }
        ]
      },
      {
        "signature": "Commands.Result Get(out Geometry.Sphere sphere)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Prompt for the getting of a sphere.",
        "since": "7.0",
        "parameters": [
          {
            "name": "sphere",
            "type": "Geometry.Sphere",
            "summary": "The sphere geometry defined by the user."
          }
        ],
        "returns": "The result of the getting operation."
      },
      {
        "signature": "Commands.Result GetMesh(ref MeshSphereStyle style, ref System.Int32 verticalFaces, ref System.Int32 aroundFaces, ref System.Int32 triangleSubdivisions, ref System.Int32 quadSubdivisions, out Geometry.Sphere sphere)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Prompt for the getting of a mesh sphere.",
        "since": "7.0",
        "parameters": [
          {
            "name": "style",
            "type": "MeshSphereStyle",
            "summary": "The style of the mesh sphere."
          },
          {
            "name": "verticalFaces",
            "type": "System.Int32",
            "summary": "The number of UV mesh faces in the vertical direction."
          },
          {
            "name": "aroundFaces",
            "type": "System.Int32",
            "summary": "The number of UV mesh faces in the around direction."
          },
          {
            "name": "triangleSubdivisions",
            "type": "System.Int32",
            "summary": "The number of triangle mesh subdivisions."
          },
          {
            "name": "quadSubdivisions",
            "type": "System.Int32",
            "summary": "The number of quad mesh subdivisions."
          },
          {
            "name": "sphere",
            "type": "Geometry.Sphere",
            "summary": "The sphere geometry defined by the user."
          }
        ],
        "returns": "The result of the getting operation."
      }
    ]
  },
  {
    "namespace": "Rhino.Input.Custom",
    "name": "GetSphere.MeshSphereStyle",
    "dataType": "enum",
    "summary": "Mesh sphere styles enumeration.",
    "values": [
      {
        "signature": "UV = 0",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "UV Sphere."
      },
      {
        "signature": "Triangle = 1",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Icosahedron Sphere."
      },
      {
        "signature": "Quad = 2",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Quad Sphere."
      }
    ]

  },
  {
    "namespace": "Rhino.Input.Custom",
    "name": "GetString",
    "dataType": "class",
    "summary": "Used to get strings.",
    "baseclass": "Rhino.Input.Custom.GetBaseClass",
    "constructors": [
      {
        "signature": "GetString()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Constructs a new GetString.",
        "since": "5.0"
      }
    ],
    "methods": [
      {
        "signature": "GetResult Get()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns the string that the user typed. By default, space stops the string input.",
        "since": "5.0",
        "returns": "The result type. If the user typed a string, this is <b>GetResult.String</b> ."
      },
      {
        "signature": "GetResult GetLiteralString()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns the string that the user typed. By default, space does not stop input.",
        "since": "5.0",
        "returns": "The result type. If the user typed a string, this is <b>GetResult.String</b> ."
      }
    ]
  },
  {
    "namespace": "Rhino.Input.Custom",
    "name": "GetTorus",
    "dataType": "class",
    "summary": "Class provides user interface to define a torus.",
    "interfaces": ["IDisposable"],
    "constructors": [
      {
        "signature": "GetTorus()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "7.0"
      }
    ],
    "properties": [
      {
        "signature": "int AroundDirectionCount",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "The number of faces in the around direction.",
        "since": "7.0",
        "property": ["get", "set"]
      },
      {
        "signature": "int AroundDirectionMinimumCount",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "The minimum number of faces in the around direction.",
        "since": "7.0",
        "property": ["get", "set"]
      },
      {
        "signature": "double DefaultSize",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Default radius or diameter (based on InDiameterMode)",
        "since": "7.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool FixInnerRadius",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Second radius option. The first radius chosen sets the inner dimension of the torus and the second radius is constrained to be outside of the first radius.",
        "since": "7.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool InDiameterMode",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Determines if the \"size\" value is representing a radius or diameter",
        "since": "7.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool InSecondDiameterMode",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Second radius option. Determines if the second \"size\" value is representing a radius or diameter",
        "since": "7.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool PromptForMeshDensity",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Set True if you are prompting for a mesh or subd torus.",
        "since": "7.0",
        "property": ["get", "set"]
      },
      {
        "signature": "double SecondSize",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Second radius or diameter (based on InSecondDiameterMode)",
        "since": "7.0",
        "property": ["get", "set"]
      },
      {
        "signature": "int VerticalDirectionCount",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "The number of faces in the vertical direction.",
        "since": "7.0",
        "property": ["get", "set"]
      },
      {
        "signature": "int VerticalDirectionMinimumCount",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "The minimum number of faces in the vertical direction.",
        "since": "7.0",
        "property": ["get", "set"]
      }
    ],
    "methods": [
      {
        "signature": "System.Void Dispose()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Actively reclaims unmanaged resources that this instance uses.",
        "since": "7.0"
      },
      {
        "signature": "System.Void Dispose(System.Boolean disposing)",
        "modifiers": ["protected", "virtual"],
        "protected": true,
        "virtual": true,
        "summary": "For derived class implementers.  \nThis method is called with argument True when class user calls Dispose(), while with argument False when     the Garbage Collector invokes the finalizer, or Finalize() method.  \nYou must reclaim all used unmanaged resources in both cases, and can use this chance to call Dispose on disposable fields if the argument is true.  \nAlso, you must call the base virtual method within your overriding method.",
        "parameters": [
          {
            "name": "disposing",
            "type": "System.Boolean",
            "summary": "True if the call comes from the Dispose() method; False if it comes from the Garbage Collector finalizer."
          }
        ]
      },
      {
        "signature": "Commands.Result Get(out Geometry.Torus torus)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Prompt for the getting of a torus.",
        "since": "7.0",
        "parameters": [
          {
            "name": "torus",
            "type": "Geometry.Torus",
            "summary": "The torus geometry defined by the user."
          }
        ],
        "returns": "The result of the getting operation."
      },
      {
        "signature": "Commands.Result GetMesh(ref System.Int32 verticalFaces, ref System.Int32 aroundFaces, out Geometry.Torus torus)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Prompt for the getting of a mesh torus.",
        "since": "7.0",
        "parameters": [
          {
            "name": "verticalFaces",
            "type": "System.Int32",
            "summary": "The number of faces in the vertical direction."
          },
          {
            "name": "aroundFaces",
            "type": "System.Int32",
            "summary": "The number of faces in the around direction"
          },
          {
            "name": "torus",
            "type": "Geometry.Torus",
            "summary": "The torus geometry defined by the user."
          }
        ],
        "returns": "The result of the getting operation."
      }
    ]
  },
  {
    "namespace": "Rhino.Input.Custom",
    "name": "GetTransform",
    "dataType": "class",
    "summary": "Used for getting a Transform",
    "baseclass": "Rhino.Input.Custom.GetPoint",
    "constructors": [
      {
        "signature": "GetTransform()",
        "modifiers": ["protected"],
        "protected": true,
        "virtual": false
      }
    ],
    "properties": [
      {
        "signature": "bool HaveTransform",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "TransformObjectList ObjectList",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "Transform Transform",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0",
        "property": ["get", "set"]
      }
    ],
    "methods": [
      {
        "signature": "System.Void AddTransformObjects(Collections.TransformObjectList list)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Adds any objects you want transformed and grips you want transformed. Make sure no duplicates are in the list and that no grip owners are passed in as objects.",
        "since": "5.0",
        "parameters": [
          {
            "name": "list",
            "type": "Collections.TransformObjectList",
            "summary": "A custom transform object list."
          }
        ]
      },
      {
        "signature": "Transform CalculateTransform(Display.RhinoViewport viewport, Point3d point)",
        "modifiers": ["public", "abstract"],
        "protected": false,
        "virtual": false,
        "summary": "Retrieves the final transformation.  \nOverride this virtual function to provide your own custom transformation method.",
        "since": "5.0",
        "parameters": [
          {
            "name": "viewport",
            "type": "Display.RhinoViewport",
            "summary": "A Rhino viewport that the user is using."
          },
          {
            "name": "point",
            "type": "Point3d",
            "summary": "A point that the user is selecting."
          }
        ],
        "returns": "A transformation matrix value."
      },
      {
        "signature": "GetResult GetXform()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the Transformation.  \nCall this after having set up options and so on.",
        "since": "5.0",
        "returns": "The result based on user choice."
      }
    ]
  },
  {
    "namespace": "Rhino.Input.Custom",
    "name": "GetTruncatedCone",
    "dataType": "class",
    "summary": "Class provides user interface to define a truncated cone.",
    "interfaces": ["IDisposable"],
    "constructors": [
      {
        "signature": "GetTruncatedCone()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "7.0"
      }
    ],
    "properties": [
      {
        "signature": "bool Cap",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets whether or not the output should be capped.",
        "since": "7.0",
        "property": ["get", "set"]
      },
      {
        "signature": "CylinderConstraint CylinderConstraint",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "State of the cone/cylinder constraint option. When the cone/cylinder option is selected, the circle is being made as a base for a cone/cylinder. By default the vertical cone/cylinder option not available but is not selected.  By default the \"Vertical\" option applies to VerticalCircle.",
        "since": "7.0",
        "property": ["get", "set"]
      },
      {
        "signature": "double DefaultSize",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Default radius or diameter (based on InDiameterMode)",
        "since": "7.0",
        "property": ["get", "set"]
      },
      {
        "signature": "double Height",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Height of truncated cone.",
        "since": "7.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool InDiameterMode",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Determines if the \"size\" value is representing a radius or diameter",
        "since": "7.0",
        "property": ["get", "set"]
      },
      {
        "signature": "double SecondRadius",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Radius of second circle.",
        "since": "7.0",
        "property": ["get", "set"]
      }
    ],
    "methods": [
      {
        "signature": "System.Void Dispose()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Actively reclaims unmanaged resources that this instance uses.",
        "since": "7.0"
      },
      {
        "signature": "System.Void Dispose(System.Boolean disposing)",
        "modifiers": ["protected", "virtual"],
        "protected": true,
        "virtual": true,
        "summary": "For derived class implementers.  \nThis method is called with argument True when class user calls Dispose(), while with argument False when     the Garbage Collector invokes the finalizer, or Finalize() method.  \nYou must reclaim all used unmanaged resources in both cases, and can use this chance to call Dispose on disposable fields if the argument is true.  \nAlso, you must call the base virtual method within your overriding method.",
        "parameters": [
          {
            "name": "disposing",
            "type": "System.Boolean",
            "summary": "True if the call comes from the Dispose() method; False if it comes from the Garbage Collector finalizer."
          }
        ]
      },
      {
        "signature": "Commands.Result Get(out Geometry.Brep truncatedCone)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Prompt for the getting of a truncated cone.",
        "since": "7.0",
        "parameters": [
          {
            "name": "truncatedCone",
            "type": "Geometry.Brep",
            "summary": "The truncated cone in Brep form."
          }
        ],
        "returns": "The result of the getting operation."
      },
      {
        "signature": "Commands.Result GetMesh(ref System.Int32 verticalFaces, ref System.Int32 aroundFaces, out Geometry.Mesh truncatedCone)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Prompt for the getting of a mesh truncated cone.",
        "since": "7.0",
        "parameters": [
          {
            "name": "verticalFaces",
            "type": "System.Int32",
            "summary": "The number of faces in the vertical direction."
          },
          {
            "name": "aroundFaces",
            "type": "System.Int32",
            "summary": "The number of faces in the around direction"
          },
          {
            "name": "truncatedCone",
            "type": "Geometry.Mesh",
            "summary": "The truncated cone in Mesh form."
          }
        ],
        "returns": "The result of the getting operation."
      },
      {
        "signature": "Commands.Result GetMesh(ref System.Int32 verticalFaces, ref System.Int32 aroundFaces, ref System.Int32 capStyle, out Geometry.Mesh truncatedCone)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Prompt for the getting of a mesh truncated cone.",
        "since": "7.0",
    "remarks": "The prompt for capStyle will only be seen if it's not zero, aroundFaces is even and the solid option is on.",
        "parameters": [
          {
            "name": "verticalFaces",
            "type": "System.Int32",
            "summary": "The number of faces in the vertical direction."
          },
          {
            "name": "aroundFaces",
            "type": "System.Int32",
            "summary": "The number of faces in the around direction"
          },
          {
            "name": "capStyle",
            "type": "System.Int32",
            "summary": "Set to 0 if you don't want the prompt, 3 is triangles, 4 is quads."
          },
          {
            "name": "truncatedCone",
            "type": "Geometry.Mesh",
            "summary": "The truncated cone in Mesh form."
          }
        ],
        "returns": "The result of the getting operation."
      }
    ]
  },
  {
    "namespace": "Rhino.Input.Custom",
    "name": "OptionColor",
    "dataType": "class",
    "interfaces": ["IDisposable"],
    "constructors": [
      {
        "signature": "OptionColor(Color initialValue)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      }
    ],
    "properties": [
      {
        "signature": "Color CurrentValue",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "Color InitialValue",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0",
        "property": ["get"]
      }
    ],
    "methods": [
      {
        "signature": "System.Void Dispose()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "System.Void Dispose(System.Boolean disposing)",
        "modifiers": ["protected"],
        "protected": true,
        "virtual": false
      }
    ]
  },
  {
    "namespace": "Rhino.Input.Custom",
    "name": "OptionDouble",
    "dataType": "class",
    "interfaces": ["IDisposable"],
    "constructors": [
      {
        "signature": "OptionDouble(double initialValue, bool setLowerLimit, double limit)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Initializes a new instance of the double option class.",
        "since": "5.0",
        "parameters": [
          {
            "name": "initialValue",
            "type": "System.Double",
            "summary": "The initial number ."
          },
          {
            "name": "setLowerLimit",
            "type": "System.Boolean",
            "summary": "If true, limit sets the lower limit and upper limit is undefined. If false, limit sets the upper limit and lower limit is undefined."
          },
          {
            "name": "limit",
            "type": "System.Double",
            "summary": "The lower limit if setLowerLimit is true; otherwise, the upper limit."
          }
        ]
      },
      {
        "signature": "OptionDouble(double initialValue, double lowerLimit, double upperLimit)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Initializes a new instance of the <b>OptionDouble</b> class with lower and upper limits.",
        "since": "5.0",
        "parameters": [
          {
            "name": "initialValue",
            "type": "System.Double",
            "summary": "The initial number ."
          },
          {
            "name": "lowerLimit",
            "type": "System.Double",
            "summary": "The minimum value."
          },
          {
            "name": "upperLimit",
            "type": "System.Double",
            "summary": "The maximum value."
          }
        ]
      },
      {
        "signature": "OptionDouble(double initialValue)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      }
    ],
    "properties": [
      {
        "signature": "double CurrentValue",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "double InitialValue",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0",
        "property": ["get"]
      }
    ],
    "methods": [
      {
        "signature": "System.Void Dispose()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "System.Void Dispose(System.Boolean disposing)",
        "modifiers": ["protected"],
        "protected": true,
        "virtual": false
      }
    ]
  },
  {
    "namespace": "Rhino.Input.Custom",
    "name": "OptionInteger",
    "dataType": "class",
    "interfaces": ["IDisposable"],
    "constructors": [
      {
        "signature": "OptionInteger(int initialValue, bool setLowerLimit, int limit)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Initializes a new instance of the <b>OptionInteger</b> class.",
        "since": "5.0",
        "parameters": [
          {
            "name": "initialValue",
            "type": "System.Int32",
            "summary": "The initial value."
          },
          {
            "name": "setLowerLimit",
            "type": "System.Boolean",
            "summary": "If true, limit sets the lower limit and upper limit is undefined If false, limit sets the upper limit and lower limit is undefined."
          },
          {
            "name": "limit",
            "type": "System.Int32",
            "summary": "IfsetLowerLimitis true, thenlimitis the minimum value. Otherwise, it is the maximum."
          }
        ]
      },
      {
        "signature": "OptionInteger(int initialValue, int lowerLimit, int upperLimit)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Initializes a new instance of the <b>OptionInteger</b> class with both lower and upper limits.",
        "since": "5.0",
        "parameters": [
          {
            "name": "initialValue",
            "type": "System.Int32",
            "summary": "The initial value."
          },
          {
            "name": "lowerLimit",
            "type": "System.Int32",
            "summary": "The minimum value."
          },
          {
            "name": "upperLimit",
            "type": "System.Int32",
            "summary": "The maximum value."
          }
        ]
      },
      {
        "signature": "OptionInteger(int initialValue)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      }
    ],
    "properties": [
      {
        "signature": "int CurrentValue",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "int InitialValue",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0",
        "property": ["get"]
      }
    ],
    "methods": [
      {
        "signature": "System.Void Dispose()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "System.Void Dispose(System.Boolean disposing)",
        "modifiers": ["protected"],
        "protected": true,
        "virtual": false
      }
    ]
  },
  {
    "namespace": "Rhino.Input.Custom",
    "name": "OptionString",
    "dataType": "class",
    "summary": "RhinoGet string option helper",
    "interfaces": ["IDisposable"],
    "since": "9.0",
    "constructors": [
      {
        "signature": "OptionString(string initialString, bool allowEmptyString)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Constructs the option object.",
        "since": "9.0",
        "parameters": [
          {
            "name": "initialString",
            "type": "System.String",
            "summary": "The initial value."
          },
          {
            "name": "allowEmptyString",
            "type": "System.Boolean",
            "summary": "If false, the value is not allowed to be changed to an empty string. It is allowed to remain empty if it starts out as empty. If true, the string is allowed to be changed to an empty string."
          }
        ]
      },
      {
        "signature": "OptionString(string initialString)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Constructs the option object.",
        "since": "9.0",
        "parameters": [
          {
            "name": "initialString",
            "type": "System.String",
            "summary": "The initial value."
          }
        ]
      }
    ],
    "properties": [
      {
        "signature": "string CurrentValue",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets and sets the current value of the option.",
        "since": "9.0",
        "property": ["get", "set"]
      },
      {
        "signature": "string InitialValue",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the initial value of the option.",
        "since": "9.0",
        "property": ["get"]
      }
    ],
    "methods": [
      {
        "signature": "System.Void Dispose()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "9.0"
      },
      {
        "signature": "System.Void Dispose(System.Boolean disposing)",
        "modifiers": ["protected"],
        "protected": true,
        "virtual": false
      }
    ]
  },
  {
    "namespace": "Rhino.Input.Custom",
    "name": "OptionToggle",
    "dataType": "class",
    "interfaces": ["IDisposable"],
    "constructors": [
      {
        "signature": "OptionToggle(bool initialValue, LocalizeStringPair offValue, LocalizeStringPair onValue)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "OptionToggle(bool initialValue, string offValue, string onValue)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      }
    ],
    "properties": [
      {
        "signature": "bool CurrentValue",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool InitialValue",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0",
        "property": ["get"]
      }
    ],
    "methods": [
      {
        "signature": "System.Void Dispose()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "System.Void Dispose(System.Boolean disposing)",
        "modifiers": ["protected"],
        "protected": true,
        "virtual": false
      }
    ]
  },
  {
    "namespace": "Rhino.Input.Custom",
    "name": "PickContext",
    "dataType": "class",
    "summary": "Utility for determining if objects are picked",
    "interfaces": ["IDisposable"],
    "constructors": [
      {
        "signature": "PickContext()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      }
    ],
    "properties": [
      {
        "signature": "GetObject GetObjectUsed",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "bool PickGroupsEnabled",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "True if GroupObjects should be added to the pick list",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "Line PickLine",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "pick chord starts on near clipping plane and ends on far clipping plane.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "PickMode PickMode",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "PickStyle PickStyle",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool SubObjectSelectionEnabled",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "True if the user had activated sub-object selection",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "RhinoView View",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "This view can be a model view or a page view. When view is a page view, then you need to distinguish between the viewports MainViewport() and ActiveViewport().  When m_view is a model view, both MainViewport() and ActiveViewport() return the world view's viewport.",
        "since": "5.0",
        "property": ["get", "set"]
      }
    ],
    "methods": [
      {
        "signature": "System.Void Dispose()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "System.Void Dispose(System.Boolean disposing)",
        "modifiers": ["protected", "virtual"],
        "protected": true,
        "virtual": true
      },
      {
        "signature": "System.Boolean PickFrustumTest(Geometry.BezierCurve bezier, out System.Double t, out System.Double depth, out System.Double distance)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "System.Boolean PickFrustumTest(Geometry.BoundingBox box, out System.Boolean boxCompletelyInFrustum)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Fast test to check if a bounding box intersects a pick frustum.",
        "since": "5.0",
        "parameters": [
          {
            "name": "box",
            "type": "Geometry.BoundingBox",
            "summary": ""
          },
          {
            "name": "boxCompletelyInFrustum",
            "type": "System.Boolean",
            "summary": "Set to True if the box is completely contained in the pick frustum. When doing a window or crossing pick, you can immediately return a hit if the object's bounding box is completely inside of the pick frustum."
          }
        ],
        "returns": "False if bounding box is invalid or box does not intersect the pick frustum"
      },
      {
        "signature": "System.Boolean PickFrustumTest(Geometry.Line line, out System.Double t, out System.Double depth, out System.Double distance)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "System.Boolean PickFrustumTest(Geometry.Mesh mesh, MeshPickStyle pickStyle, out Geometry.Point3d hitPoint, out Geometry.Point2d hitSurfaceUV, out Geometry.Point2d hitTextureCoordinate, out System.Double depth, out System.Double distance, out MeshHitFlag hitFlag, out System.Int32 hitIndex)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Utility for picking meshes",
        "since": "5.0",
        "parameters": [
          {
            "name": "mesh",
            "type": "Geometry.Mesh",
            "summary": "mesh to test"
          },
          {
            "name": "pickStyle",
            "type": "MeshPickStyle",
            "summary": "mode used for pick test"
          },
          {
            "name": "hitPoint",
            "type": "Geometry.Point3d",
            "summary": "location returned here for point picks"
          },
          {
            "name": "hitSurfaceUV",
            "type": "Geometry.Point2d",
            "summary": "If the mesh has surface parameters, set to the surface parameters of the hit point"
          },
          {
            "name": "hitTextureCoordinate",
            "type": "Geometry.Point2d",
            "summary": "If the mesh has texture coordinates, set to the texture coordinate of the hit point.  Note that the texture coordinates can be set in many different ways and this information is useless unless you know how the texture coordinates are set on this particular mesh."
          },
          {
            "name": "depth",
            "type": "System.Double",
            "summary": "depth returned here for point picks LARGER values are NEARER to the camera. SMALLER values are FARTHER from the camera."
          },
          {
            "name": "distance",
            "type": "System.Double",
            "summary": "planar distance returned here for point picks. SMALLER values are CLOSER to the pick point"
          },
          {
            "name": "hitFlag",
            "type": "MeshHitFlag",
            "summary": "For point picks, How to interpret the hitIndex (vertex hit, edge hit, or face hit)"
          },
          {
            "name": "hitIndex",
            "type": "System.Int32",
            "summary": "index of vertex/edge/face that was hit. Use hitFlag to determine what this index corresponds to"
          }
        ]
      },
      {
        "signature": "System.Boolean PickFrustumTest(Geometry.Mesh mesh, MeshPickStyle pickStyle, out Geometry.Point3d hitPoint, out System.Double depth, out System.Double distance, out MeshHitFlag hitFlag, out System.Int32 hitIndex)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Utility for picking meshes",
        "since": "5.0",
        "parameters": [
          {
            "name": "mesh",
            "type": "Geometry.Mesh",
            "summary": "mesh to test"
          },
          {
            "name": "pickStyle",
            "type": "MeshPickStyle",
            "summary": "mode used for pick test"
          },
          {
            "name": "hitPoint",
            "type": "Geometry.Point3d",
            "summary": "location returned here for point picks"
          },
          {
            "name": "depth",
            "type": "System.Double",
            "summary": "depth returned here for point picks LARGER values are NEARER to the camera. SMALLER values are FARTHER from the camera."
          },
          {
            "name": "distance",
            "type": "System.Double",
            "summary": "planar distance returned here for point picks. SMALLER values are CLOSER to the pick point"
          },
          {
            "name": "hitFlag",
            "type": "MeshHitFlag",
            "summary": "For point picks, How to interpret the hitIndex (vertex hit, edge hit, or face hit)"
          },
          {
            "name": "hitIndex",
            "type": "System.Int32",
            "summary": "index of vertex/edge/face that was hit. Use hitFlag to determine what this index corresponds to"
          }
        ]
      },
      {
        "signature": "System.Boolean PickFrustumTest(Geometry.NurbsCurve curve, out System.Double t, out System.Double depth, out System.Double distance)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "System.Boolean PickFrustumTest(Geometry.Point3d point, out System.Double depth, out System.Double distance)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Utility for picking 3d point",
        "since": "5.0",
        "parameters": [
          {
            "name": "point",
            "type": "Geometry.Point3d",
            "summary": ""
          },
          {
            "name": "depth",
            "type": "System.Double",
            "summary": "depth returned here for point picks. LARGER values are NEARER to the camera. SMALLER values are FARTHER from the camera."
          },
          {
            "name": "distance",
            "type": "System.Double",
            "summary": "planar distance returned here for point picks. SMALLER values are CLOSER to the pick point"
          }
        ],
        "returns": "True if there is a hit"
      },
      {
        "signature": "System.Boolean PickFrustumTest(Geometry.Point3d[] points, out System.Int32 pointIndex, out System.Double depth, out System.Double distance)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "System.Boolean PickFrustumTest(Geometry.PointCloud cloud, out System.Int32 pointIndex, out System.Double depth, out System.Double distance)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "System.Int32[] PickMeshTopologyVertices(Geometry.Mesh mesh)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Utility for picking mesh vertices",
        "since": "5.0",
        "returns": "indices of mesh topology vertices that were picked"
      },
      {
        "signature": "System.Void SetPickTransform(Geometry.Transform transform)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "System.Void UpdateClippingPlanes()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Updates the clipping plane information in pick region. The SetClippingPlanes and View fields must be called before calling UpdateClippingPlanes().",
        "since": "5.0"
      }
    ]
  },
  {
    "namespace": "Rhino.Input.Custom",
    "name": "PickContext.MeshHitFlag",
    "dataType": "enum",
    "since": "5.0",
    "values": [
      {
        "signature": "Invalid = -1",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Vertex = 0",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Edge = 1",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Face = 2",
        "modifiers": [],
        "protected": false,
        "virtual": false
      }
    ]

  },
  {
    "namespace": "Rhino.Input.Custom",
    "name": "PickContext.MeshPickStyle",
    "dataType": "enum",
    "since": "5.0",
    "values": [
      {
        "signature": "WireframePicking = 0",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Checks for vertex and edge hits"
      },
      {
        "signature": "ShadedModePicking = 1",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Checks for face hits"
      },
      {
        "signature": "VertexOnlyPicking = 2",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Returns False if no vertices are hit"
      }
    ]

  },
  {
    "namespace": "Rhino.Input.Custom",
    "name": "PickMode",
    "dataType": "enum",
    "summary": "Picking can happen in wireframe or shaded display mode",
    "since": "5.0",
    "values": [
      {
        "signature": "Wireframe = 1",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Shaded = 2",
        "modifiers": [],
        "protected": false,
        "virtual": false
      }
    ]

  },
  {
    "namespace": "Rhino.Input.Custom",
    "name": "PickStyle",
    "dataType": "enum",
    "summary": "Provides picking values that describe common CAD picking behavior.",
    "since": "5.0",
    "values": [
      {
        "signature": "None = 0",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "PointPick = 1",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "WindowPick = 2",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "CrossingPick = 3",
        "modifiers": [],
        "protected": false,
        "virtual": false
      }
    ]

  },
  {
    "namespace": "Rhino.Input.Custom",
    "name": "TaskCompleteEventArgs",
    "dataType": "class",
    "baseclass": "EventArgs",
    "constructors": [
      {
        "signature": "TaskCompleteEventArgs(Task task, RhinoDoc doc)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0"
      }
    ],
    "properties": [
      {
        "signature": "RhinoDoc Doc",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool Redraw",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "Task Task",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get", "set"]
      }
    ]
  },
  {
    "namespace": "Rhino.Input",
    "name": "GetBoxMode",
    "dataType": "enum",
    "summary": "Enumerates all Box getter modes.",
    "since": "5.0",
    "values": [
      {
        "signature": "All = 0",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "All modes are allowed."
      },
      {
        "signature": "Corner = 1",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "The base rectangle is created by picking the two corner points."
      },
      {
        "signature": "ThreePoint = 2",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "The base rectangle is created by picking three points."
      },
      {
        "signature": "Vertical = 3",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "The base vertical rectangle is created by picking three points."
      },
      {
        "signature": "Center = 4",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "The base rectangle is created by picking a center point and a corner point."
      }
    ]

  },
  {
    "namespace": "Rhino.Input",
    "name": "GetResult",
    "dataType": "enum",
    "summary": "Possible results from GetObject.Get(), GetPoint.Get(), etc...",
    "since": "5.0",
    "values": [
      {
        "signature": "NoResult = 0",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Cancel = 1",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "User wants to cancel current command."
      },
      {
        "signature": "Nothing = 2",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "User pressed enter - typically used to accept defaults."
      },
      {
        "signature": "Option = 3",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "User specified an option - call Option() to get option index."
      },
      {
        "signature": "Number = 4",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "User entered a real number - call Number() to get value."
      },
      {
        "signature": "Color = 5",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "User entered a color - call Color() to get value."
      },
      {
        "signature": "Undo = 6",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "User pressed undo."
      },
      {
        "signature": "Miss = 7",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "User clicked and missed."
      },
      {
        "signature": "Point = 8",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "User picked 3d point - call Point() to get 3d point."
      },
      {
        "signature": "Point2d = 9",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "User picked 2d window point in CRhinoGetPoint::Get2dPoint() call ON_2dPoint() to get the point and View() to get the view."
      },
      {
        "signature": "Line2d = 10",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "User picked a 2d line in CRhinoGetPoint::Get2dLine() call Line2d() to get the line and View() to get the view."
      },
      {
        "signature": "Rectangle2d = 11",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "User picked a 2d rectangle in CRhinoGetPoint::Get2dRectangle() call Rectangle2d() to get the rectangle and View() to get the view."
      },
      {
        "signature": "Object = 12",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "User selected an object - call Object() to get object."
      },
      {
        "signature": "String = 13",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "User typed a string - call String() to get the string."
      },
      {
        "signature": "CustomMessage = 14",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "A custom message was posted to the RhinoGet"
      },
      {
        "signature": "Timeout = 15",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "The getter waited for the amount of time specified in RhinoGet::SetWaitDuration() and then gave up."
      },
      {
        "signature": "Circle = 16",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "call CRhinoGetCircle::GetCircle() to get the circle."
      },
      {
        "signature": "Plane = 17",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "call CRhinoGetPlane::GetPlane() to get the plane."
      },
      {
        "signature": "Cylinder = 18",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "call CRhinoGetCylinder::GetCylinder() to get the cylinder."
      },
      {
        "signature": "Sphere = 19",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "call CRhinoGetSphere::GetSphere() to get the sphere."
      },
      {
        "signature": "Angle = 20",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "call CRhinoGetAngle::Angle() to get the angle in radians (CRhinoGetAngle() returns this for typed number, too)."
      },
      {
        "signature": "Distance = 21",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "call CRhinoGetDistance::Distance() to get the distance value."
      },
      {
        "signature": "Direction = 22",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "call CRhinoGetDirection::Direction() to get the direction vector."
      },
      {
        "signature": "Frame = 23",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "call CRhinoGetFrame::Frame() to get the frame that was picked."
      },
      {
        "signature": "User1 = 0xFFFFFFFF",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "User2 = 0xFFFFFFFE",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "User3 = 0xFFFFFFFD",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "User4 = 0xFFFFFFFC",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "User5 = 0xFFFFFFFB",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "ExitRhino = 0x0FFFFFFF",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Stop now, do not cleanup, just return ASAP."
      }
    ]

  },
  {
    "namespace": "Rhino.Input",
    "name": "RhinoGet",
    "dataType": "class",
    "summary": "Base class for GetObject, GetPoint, GetSphere, etc.  You will never directly create a RhinoGet but you will use its member functions after calling GetObject::GetObjects(), GetPoint::GetPoint(), and so on.  Provides tools to set command prompt, set command options, and specify if the \"get\" can optionally accept numbers, nothing (pressing enter), and undo.",
    "constructors": [
      {
        "signature": "RhinoGet()",
        "summary": "Initializes a new instance of the RhinoGet class"
      }
    ],
    "properties": [
      {
        "signature": "BitmapFileTypes AllBitmapFileTypes",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get"]
      }
    ],
    "methods": [
      {
        "signature": "Result Get2dRectangle(System.Boolean solidPen, out Rectangle rectangle, out RhinoView rectView)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Gets a rectangle in view window coordinates.",
        "since": "5.0",
        "parameters": [
          {
            "name": "solidPen",
            "type": "System.Boolean",
            "summary": "If true, a solid pen is used for drawing while the user selects a rectangle. If false, a dotted pen is used for drawing while the user selects a rectangle."
          },
          {
            "name": "rectangle",
            "type": "Rectangle",
            "summary": "user selected rectangle in window coordinates."
          },
          {
            "name": "rectView",
            "type": "RhinoView",
            "summary": "view that the user selected the window in."
          }
        ],
        "returns": "Success or Cancel."
      },
      {
        "signature": "Result GetAngle(System.String commandPrompt, Point3d basePoint, Point3d referencePoint, System.Double defaultAngleRadians, out System.Double angleRadians)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Allows user to interactively pick an angle",
        "since": "5.2",
        "parameters": [
          {
            "name": "commandPrompt",
            "type": "System.String",
            "summary": "if null, a default prompt will be displayed"
          },
          {
            "name": "basePoint",
            "type": "Point3d",
            "summary": ""
          },
          {
            "name": "referencePoint",
            "type": "Point3d",
            "summary": ""
          },
          {
            "name": "defaultAngleRadians",
            "type": "System.Double",
            "summary": ""
          },
          {
            "name": "angleRadians",
            "type": "System.Double",
            "summary": ""
          }
        ]
      },
      {
        "signature": "Result GetArc(out Arc arc)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "Result GetBool(System.String prompt, System.Boolean acceptNothing, System.String offPrompt, System.String onPrompt, ref System.Boolean boolValue)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Easy to use Boolean getter.",
        "since": "5.0",
        "parameters": [
          {
            "name": "prompt",
            "type": "System.String",
            "summary": "Command prompt."
          },
          {
            "name": "acceptNothing",
            "type": "System.Boolean",
            "summary": "If true, the user can press enter."
          },
          {
            "name": "offPrompt",
            "type": "System.String",
            "summary": "The 'false/off' message."
          },
          {
            "name": "onPrompt",
            "type": "System.String",
            "summary": "The 'true/on' message."
          },
          {
            "name": "boolValue",
            "type": "System.Boolean",
            "summary": "Default Boolean value set to this and returned here."
          }
        ],
        "returns": "The getter result based on user choice.  \nCommands.Result.Success - got value.  \nCommands.Result.Nothing - user pressed enter.  \nCommands.Result.Cancel - user canceled value getting."
      },
      {
        "signature": "Result GetBox(out Box box, GetBoxMode mode, Point3d basePoint, System.String prompt1, System.String prompt2, System.String prompt3)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Asks the user to select a Box in the viewport.",
        "since": "5.0",
        "parameters": [
          {
            "name": "box",
            "type": "Box",
            "summary": "If the result is Success, this parameter will be filled out."
          },
          {
            "name": "mode",
            "type": "GetBoxMode",
            "summary": "A particular \"get box\" mode, or <b>GetBoxMode.All</b> ."
          },
          {
            "name": "basePoint",
            "type": "Point3d",
            "summary": "Optional base point. Supply Point3d.Unset if you don't want to use this."
          },
          {
            "name": "prompt1",
            "type": "System.String",
            "summary": "Optional first prompt. Supply None to use the default prompt."
          },
          {
            "name": "prompt2",
            "type": "System.String",
            "summary": "Optional second prompt. Supply None to use the default prompt."
          },
          {
            "name": "prompt3",
            "type": "System.String",
            "summary": "Optional third prompt. Supply None to use the default prompt."
          }
        ],
        "returns": "Commands.Result.Success if successful."
      },
      {
        "signature": "Result GetBox(out Box box)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Asks the user to select a Box in the viewport.",
        "since": "5.0",
        "parameters": [
          {
            "name": "box",
            "type": "Box",
            "summary": "If the result is Success, this parameter will be filled out."
          }
        ],
        "returns": "Commands.Result.Success if successful."
      },
      {
        "signature": "Result GetBoxWithCounts(System.Int32 xMin, ref System.Int32 xCount, System.Int32 yMin, ref System.Int32 yCount, System.Int32 zMin, ref System.Int32 zCount, out Point3d[] corners)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Gets a 3d box with prompts for counts in X, Y and Z directions.",
        "since": "6.0",
        "parameters": [
          {
            "name": "xMin",
            "type": "System.Int32",
            "summary": "Minimum value allowed for count in the x direction."
          },
          {
            "name": "xCount",
            "type": "System.Int32",
            "summary": "Count in the x direction."
          },
          {
            "name": "yMin",
            "type": "System.Int32",
            "summary": "Minimum value allowed for count in the y direction."
          },
          {
            "name": "yCount",
            "type": "System.Int32",
            "summary": "Count in the y direction."
          },
          {
            "name": "zMin",
            "type": "System.Int32",
            "summary": "Minimum value allowed for count in the z direction."
          },
          {
            "name": "zCount",
            "type": "System.Int32",
            "summary": "Count in the z direction."
          },
          {
            "name": "corners",
            "type": "Point3d[]",
            "summary": "corners of the bottom rectangle in counter-clockwise order, followed by top rectangle."
          }
        ],
        "returns": "Commands.Result.Success if successful."
      },
      {
        "signature": "Result GetCircle(out Circle circle)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "Result GetColor(System.String prompt, System.Boolean acceptNothing, ref Color color)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Easy to use color getter.",
        "since": "5.0",
    "remarks": "If you need options or more advanced user interface, then use GetColor class.",
        "parameters": [
          {
            "name": "prompt",
            "type": "System.String",
            "summary": "Command prompt."
          },
          {
            "name": "acceptNothing",
            "type": "System.Boolean",
            "summary": "If true, the user can press enter."
          },
          {
            "name": "color",
            "type": "Color",
            "summary": "Color value returned here. also used as default color."
          }
        ],
        "returns": "Commands.Result.Success - got color.  \nCommands.Result.Nothing - user pressed enter.  \nCommands.Result.Cancel - user cancel color getting."
      },
      {
        "signature": "Result GetDistance(System.String commandPrompt, System.Double defaultDistance, out System.Double distance)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Allows the user to interactively pick a distance",
        "since": "9.0",
        "parameters": [
          {
            "name": "commandPrompt",
            "type": "System.String",
            "summary": "if null, a default prompt will be displayed"
          },
          {
            "name": "defaultDistance",
            "type": "System.Double",
            "summary": ""
          },
          {
            "name": "distance",
            "type": "System.Double",
            "summary": ""
          }
        ]
      },
      {
        "signature": "System.String GetFileName(GetFileNameMode mode, System.String defaultName, System.String title, System.Object parent, BitmapFileTypes fileTypes)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "6.0"
      },
      {
        "signature": "System.String GetFileName(GetFileNameMode mode, System.String defaultName, System.String title, System.Object parent)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "6.0"
      },
      {
        "signature": "System.String GetFileNameScripted(GetFileNameMode mode, System.String defaultName)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "Result GetGrip(out GripObject grip, System.String prompt)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "Result GetGrips(out GripObject[] grips, System.String prompt)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "Result GetHelix(out NurbsCurve helix)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "Result GetInteger(System.String prompt, System.Boolean acceptNothing, ref System.Int32 outputNumber, System.Int32 lowerLimit, System.Int32 upperLimit)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Easy to use number getter.",
        "since": "5.0",
        "parameters": [
          {
            "name": "prompt",
            "type": "System.String",
            "summary": "The command prompt."
          },
          {
            "name": "acceptNothing",
            "type": "System.Boolean",
            "summary": "If true, the user can press enter."
          },
          {
            "name": "outputNumber",
            "type": "System.Int32",
            "summary": "default number is set to this value and number value returned here."
          },
          {
            "name": "lowerLimit",
            "type": "System.Int32",
            "summary": "The minimum allowed value."
          },
          {
            "name": "upperLimit",
            "type": "System.Int32",
            "summary": "The maximum allowed value."
          }
        ],
        "returns": "Commands.Result.Success - got number Commands.Result.Nothing - user pressed enter Commands.Result.Cancel - user cancel number getting."
      },
      {
        "signature": "Result GetInteger(System.String prompt, System.Boolean acceptNothing, ref System.Int32 outputNumber)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Easy to use number getter.",
        "since": "5.0",
        "parameters": [
          {
            "name": "prompt",
            "type": "System.String",
            "summary": "command prompt."
          },
          {
            "name": "acceptNothing",
            "type": "System.Boolean",
            "summary": "if true, the user can press enter."
          },
          {
            "name": "outputNumber",
            "type": "System.Int32",
            "summary": "default number is set to this value and number value returned here."
          }
        ],
        "returns": "Commands.Result.Success - got number Commands.Result.Nothing - user pressed enter Commands.Result.Cancel - user cancel number getting."
      },
      {
        "signature": "Result GetLine(out Line line)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "Result GetLinearDimension(out LinearDimension dimension)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "Result GetMeshParameters(RhinoDoc doc, ref MeshingParameters parameters, ref System.Int32 uiStyle)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Asks the user to specify meshing parameters.",
        "since": "7.0",
        "parameters": [
          {
            "name": "doc",
            "type": "RhinoDoc",
            "summary": "The active document"
          },
          {
            "name": "parameters",
            "type": "MeshingParameters",
            "summary": "The initial meshing parameters. If successful, the updated meshing parameters are returned here."
          },
          {
            "name": "uiStyle",
            "type": "System.Int32",
            "summary": "The user interface style, where: 0 = simple dialog, 1 = details dialog, 2 = script or batch mode."
          }
        ],
        "returns": "Commands.Result.Success if successful."
      },
      {
        "signature": "Result GetMultipleObjects(System.String prompt, System.Boolean acceptNothing, GetObjectGeometryFilter filter, out ObjRef[] rhObjects)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Easy to use object getter for getting multiple objects.",
        "since": "5.0",
    "remarks": "If you need options or more advanced user interface, then use GetObject class.",
        "parameters": [
          {
            "name": "prompt",
            "type": "System.String",
            "summary": "command prompt."
          },
          {
            "name": "acceptNothing",
            "type": "System.Boolean",
            "summary": "if true, the user can press enter."
          },
          {
            "name": "filter",
            "type": "GetObjectGeometryFilter",
            "summary": "geometry filter to use when getting objects."
          },
          {
            "name": "rhObjects",
            "type": "ObjRef[]",
            "summary": "result of the get. may be null."
          }
        ],
        "returns": "Commands.Result.Success - got object Commands.Result.Nothing - user pressed enter Commands.Result.Cancel - user cancel object getting."
      },
      {
        "signature": "Result GetMultipleObjects(System.String prompt, System.Boolean acceptNothing, ObjectType filter, out ObjRef[] rhObjects)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Easy to use object getter for getting multiple objects.",
        "since": "5.0",
    "remarks": "If you need options or more advanced user interface, then use GetObject class.",
        "parameters": [
          {
            "name": "prompt",
            "type": "System.String",
            "summary": "command prompt."
          },
          {
            "name": "acceptNothing",
            "type": "System.Boolean",
            "summary": "if true, the user can press enter."
          },
          {
            "name": "filter",
            "type": "ObjectType",
            "summary": "geometry filter to use when getting objects."
          },
          {
            "name": "rhObjects",
            "type": "ObjRef[]",
            "summary": "result of the get. may be null."
          }
        ],
        "returns": "Commands.Result.Success - got object Commands.Result.Nothing - user pressed enter Commands.Result.Cancel - user cancel object getting."
      },
      {
        "signature": "Result GetNumber(System.String prompt, System.Boolean acceptNothing, ref System.Double outputNumber, System.Double lowerLimit, System.Double upperLimit)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Easy to use number getter.",
        "since": "5.0",
        "parameters": [
          {
            "name": "prompt",
            "type": "System.String",
            "summary": "The command prompt."
          },
          {
            "name": "acceptNothing",
            "type": "System.Boolean",
            "summary": "If true, the user can press Enter."
          },
          {
            "name": "outputNumber",
            "type": "System.Double",
            "summary": "Default number is set to this value and the return number value is assigned to this variable during the call."
          },
          {
            "name": "lowerLimit",
            "type": "System.Double",
            "summary": "The minimum allowed value."
          },
          {
            "name": "upperLimit",
            "type": "System.Double",
            "summary": "The maximum allowed value."
          }
        ],
        "returns": "Commands.Result.Success - got number.  \nCommands.Result.Nothing - user pressed enter.  \nCommands.Result.Cancel - user cancel number getting."
      },
      {
        "signature": "Result GetNumber(System.String prompt, System.Boolean acceptNothing, ref System.Double outputNumber)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Easy to use number getter.",
        "since": "5.0",
        "parameters": [
          {
            "name": "prompt",
            "type": "System.String",
            "summary": "command prompt."
          },
          {
            "name": "acceptNothing",
            "type": "System.Boolean",
            "summary": "if true, the user can press enter."
          },
          {
            "name": "outputNumber",
            "type": "System.Double",
            "summary": "default number is set to this value and number value returned here."
          }
        ],
        "returns": "Commands.Result.Success - got number Commands.Result.Nothing - user pressed enter Commands.Result.Cancel - user cancel number getting."
      },
      {
        "signature": "Result GetOneObject(System.String prompt, System.Boolean acceptNothing, GetObjectGeometryFilter filter, out ObjRef objref)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Easy to use object getter.",
        "since": "5.0",
    "remarks": "If you need options or more advanced user interface, then use GetObject class.",
        "parameters": [
          {
            "name": "prompt",
            "type": "System.String",
            "summary": "command prompt."
          },
          {
            "name": "acceptNothing",
            "type": "System.Boolean",
            "summary": "if true, the user can press enter."
          },
          {
            "name": "filter",
            "type": "GetObjectGeometryFilter",
            "summary": "geometry filter to use when getting objects."
          },
          {
            "name": "objref",
            "type": "ObjRef",
            "summary": "result of the get. may be null."
          }
        ],
        "returns": "Commands.Result.Success - got object Commands.Result.Nothing - user pressed enter Commands.Result.Cancel - user cancel object getting."
      },
      {
        "signature": "Result GetOneObject(System.String prompt, System.Boolean acceptNothing, ObjectType filter, out ObjRef rhObject)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Easy to use object getter.",
        "since": "5.0",
    "remarks": "If you need options or more advanced user interface, then use GetObject class.",
        "parameters": [
          {
            "name": "prompt",
            "type": "System.String",
            "summary": "command prompt."
          },
          {
            "name": "acceptNothing",
            "type": "System.Boolean",
            "summary": "if true, the user can press enter."
          },
          {
            "name": "filter",
            "type": "ObjectType",
            "summary": "geometry filter to use when getting objects."
          },
          {
            "name": "rhObject",
            "type": "ObjRef",
            "summary": "result of the get. may be null."
          }
        ],
        "returns": "Commands.Result.Success - got object Commands.Result.Nothing - user pressed enter Commands.Result.Cancel - user cancel object getting."
      },
      {
        "signature": "Result GetPlane(out Plane plane)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Gets an oriented infinite plane.",
        "since": "5.0",
        "parameters": [
          {
            "name": "plane",
            "type": "Plane",
            "summary": "The plane result."
          }
        ],
        "returns": "Commands.Result.Success - got plane.  \nCommands.Result.Nothing - user pressed enter.  \nCommands.Result.Cancel - user cancel number getting."
      },
      {
        "signature": "Result GetPoint(System.String prompt, System.Boolean acceptNothing, out Point3d point)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Gets a point coordinate from the document.",
        "since": "5.0",
    "remarks": "If you need options or more advanced user interface, then use GetPoint class.",
        "parameters": [
          {
            "name": "prompt",
            "type": "System.String",
            "summary": "Prompt to display in command line during the operation."
          },
          {
            "name": "acceptNothing",
            "type": "System.Boolean",
            "summary": "if true, the user can press enter."
          },
          {
            "name": "point",
            "type": "Point3d",
            "summary": "point value returned here."
          }
        ],
        "returns": "Commands.Result.Success - got point Commands.Result.Nothing - user pressed enter Commands.Result.Cancel - user cancel point getting."
      },
      {
        "signature": "Result GetPointOnMesh(MeshObject meshObject, System.String prompt, System.Boolean acceptNothing, out Point3d point)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Gets a point constrained to an existing mesh in the document.",
        "since": "5.0",
        "deprecated": "7.6",
        "obsolete": "Use version that takes a document.",
        "parameters": [
          {
            "name": "meshObject",
            "type": "MeshObject",
            "summary": "An mesh object in the document."
          },
          {
            "name": "prompt",
            "type": "System.String",
            "summary": "Text prompt."
          },
          {
            "name": "acceptNothing",
            "type": "System.Boolean",
            "summary": "True if nothing else should be accepted."
          },
          {
            "name": "point",
            "type": "Point3d",
            "summary": "A point value will be assigned to this out parameter during this call."
          }
        ],
        "returns": "The command result based on user choice."
      },
      {
        "signature": "Result GetPointOnMesh(RhinoDoc doc, MeshObject meshObject, System.String prompt, System.Boolean acceptNothing, out Point3d point)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Gets a point constrained to an existing mesh in the document.",
        "since": "7.6",
        "parameters": [
          {
            "name": "doc",
            "type": "RhinoDoc",
            "summary": "The Rhino document"
          },
          {
            "name": "meshObject",
            "type": "MeshObject",
            "summary": "An mesh object in the document."
          },
          {
            "name": "prompt",
            "type": "System.String",
            "summary": "Text prompt."
          },
          {
            "name": "acceptNothing",
            "type": "System.Boolean",
            "summary": "True if nothing else should be accepted."
          },
          {
            "name": "point",
            "type": "Point3d",
            "summary": "A point value will be assigned to this out parameter during this call."
          }
        ],
        "returns": "The command result based on user choice."
      },
      {
        "signature": "Result GetPointOnMesh(RhinoDoc doc, System.Guid meshObjectId, System.String prompt, System.Boolean acceptNothing, out Point3d point)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Gets a point constrained to an existing mesh in the document.",
        "since": "7.6",
        "parameters": [
          {
            "name": "doc",
            "type": "RhinoDoc",
            "summary": "Document containing mesh object."
          },
          {
            "name": "meshObjectId",
            "type": "System.Guid",
            "summary": "An ID of a mesh in the document."
          },
          {
            "name": "prompt",
            "type": "System.String",
            "summary": "Text prompt."
          },
          {
            "name": "acceptNothing",
            "type": "System.Boolean",
            "summary": "True if nothing else should be accepted."
          },
          {
            "name": "point",
            "type": "Point3d",
            "summary": "A point value will be assigned to this out parameter during this call."
          }
        ],
        "returns": "A command result based on user choice."
      },
      {
        "signature": "Result GetPointOnMesh(System.Guid meshObjectId, System.String prompt, System.Boolean acceptNothing, out Point3d point)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Gets a point constrained to an existing mesh in the document.",
        "since": "5.0",
        "deprecated": "7.6",
        "obsolete": "Use method that requires document",
        "parameters": [
          {
            "name": "meshObjectId",
            "type": "System.Guid",
            "summary": "An ID of a mesh in the document."
          },
          {
            "name": "prompt",
            "type": "System.String",
            "summary": "Text prompt."
          },
          {
            "name": "acceptNothing",
            "type": "System.Boolean",
            "summary": "True if nothing else should be accepted."
          },
          {
            "name": "point",
            "type": "Point3d",
            "summary": "A point value will be assigned to this out parameter during this call."
          }
        ],
        "returns": "A command result based on user choice."
      },
      {
        "signature": "Result GetPolygon(ref System.Int32 numberSides, ref System.Boolean inscribed, out Polyline polyline)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "6.0"
      },
      {
        "signature": "Result GetPolygon(System.Boolean useActiveLayerLinetype, ref System.Int32 numberSides, ref System.Boolean inscribed, out Polyline polyline)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "8.0"
      },
      {
        "signature": "Result GetPolyline(out Polyline polyline)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "5.9"
      },
      {
        "signature": "Result GetPrintWindow(ref ViewCaptureSettings settings)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "6.1"
      },
      {
        "signature": "Result GetRectangle(GetBoxMode mode, Point3d firstPoint, IEnumerable<string> prompts, out Point3d[] corners)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Gets a 3d rectangle made up of four points.",
        "since": "5.0",
        "parameters": [
          {
            "name": "mode",
            "type": "GetBoxMode",
            "summary": "A get box mode."
          },
          {
            "name": "firstPoint",
            "type": "Point3d",
            "summary": "The first corner used. Pass Point3d.Unset if you do not want to set this."
          },
          {
            "name": "prompts",
            "type": "IEnumerable<string>",
            "summary": "Optional prompts to display while getting points. May be null."
          },
          {
            "name": "corners",
            "type": "Point3d[]",
            "summary": "Corners of the rectangle in counter-clockwise order will be assigned to this out parameter during this call."
          }
        ],
        "returns": "Commands.Result.Success if successful."
      },
      {
        "signature": "Result GetRectangle(out Point3d[] corners)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Gets a 3d rectangle.",
        "since": "5.0",
        "parameters": [
          {
            "name": "corners",
            "type": "Point3d[]",
            "summary": "corners of the rectangle in counter-clockwise order."
          }
        ],
        "returns": "Commands.Result.Success if successful."
      },
      {
        "signature": "Result GetRectangle(System.String firstPrompt, out Point3d[] corners)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Gets a 3d rectangle.",
        "since": "6.0",
        "parameters": [
          {
            "name": "firstPrompt",
            "type": "System.String",
            "summary": ""
          },
          {
            "name": "corners",
            "type": "Point3d[]",
            "summary": "corners of the rectangle in counter-clockwise order."
          }
        ],
        "returns": "Commands.Result.Success if successful."
      },
      {
        "signature": "Result GetRectangleWithCounts(System.Int32 xMin, ref System.Int32 xCount, System.Int32 yMin, ref System.Int32 yCount, out Point3d[] corners)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Gets a 3d rectangle with prompts for counts in X and Y directions.",
        "since": "6.0",
        "parameters": [
          {
            "name": "xMin",
            "type": "System.Int32",
            "summary": "Minimum value allowed for count in the x direction."
          },
          {
            "name": "xCount",
            "type": "System.Int32",
            "summary": "Count in the x direction."
          },
          {
            "name": "yMin",
            "type": "System.Int32",
            "summary": "Minimum value allowed for count in the y direction."
          },
          {
            "name": "yCount",
            "type": "System.Int32",
            "summary": "Count in the y direction."
          },
          {
            "name": "corners",
            "type": "Point3d[]",
            "summary": "corners of the rectangle in counter-clockwise order."
          }
        ],
        "returns": "Commands.Result.Success if successful."
      },
      {
        "signature": "Result GetSpiral(out NurbsCurve spiral)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "Result GetString(System.String prompt, System.Boolean acceptNothing, ref System.String outputString)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Easy to use string getter.",
        "since": "5.0",
    "remarks": "If you need options or more advanced user interface, then use GetString class.",
        "parameters": [
          {
            "name": "prompt",
            "type": "System.String",
            "summary": "command prompt."
          },
          {
            "name": "acceptNothing",
            "type": "System.Boolean",
            "summary": "if true, the user can press enter."
          },
          {
            "name": "outputString",
            "type": "System.String",
            "summary": "default string set to this value and string value returned here."
          }
        ],
        "returns": "Commands.Result.Success - got string Commands.Result.Nothing - user pressed enter Commands.Result.Cancel - user cancel string getting."
      },
      {
        "signature": "Result GetView(System.String commandPrompt, out RhinoView view)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Allows the user to interactively pick a viewport.",
        "since": "5.0",
        "parameters": [
          {
            "name": "commandPrompt",
            "type": "System.String",
            "summary": "The command prompt during the request."
          },
          {
            "name": "view",
            "type": "RhinoView",
            "summary": "The view that the user picked.  \nIf the operation is successful, then this out parameter is assigned the correct view during this call."
          }
        ],
        "returns": "The result based on user choice."
      },
      {
        "signature": "Result GetViewports(System.String commandPrompt, out RhinoViewport[] viewports)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Easy to use getter for selecting multiple viewports.",
        "parameters": [
          {
            "name": "commandPrompt",
            "type": "System.String",
            "summary": "Prompt to display in command line during the operation."
          },
          {
            "name": "viewports",
            "type": "RhinoViewport[]",
            "summary": "An array of /selected Viewports."
          }
        ],
        "returns": "Commands.Result.Success - got point Commands.Result.Cancel - user cancel point getting."
      },
      {
        "signature": "System.Boolean InGet(RhinoDoc doc)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Returns True if the document is current in a \"Get\" operation.",
        "since": "5.0",
        "returns": "True if a getter is currently active."
      },
      {
        "signature": "System.Boolean InGetObject(RhinoDoc doc)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Returns True if currently in a GetObject.GetObjects()",
        "since": "6.0"
      },
      {
        "signature": "System.Boolean InGetPoint(RhinoDoc doc)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Returns True if currently in a GetPoint.Get()",
        "since": "6.0"
      },
      {
        "signature": "LocalizeStringPair StringToCommandOptionName(System.String englishString, System.String localizedString)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Convert some arbitrary string value to a valid command option name removing any invalid characters.",
        "since": "6.0",
        "parameters": [
          {
            "name": "englishString",
            "type": "System.String",
            "summary": "English string to convert."
          },
          {
            "name": "localizedString",
            "type": "System.String",
            "summary": "Optional localized string to convert."
          }
        ],
        "returns": "Returns None if the strings are None or empty or if they contain nothing but invalid characters.  If the converted string is one or more characters in length then a <b>LocalizeStringPair</b> is returned characters the converted string values.  If the localized string is None or empty then the English string is used as the localized value."
      },
      {
        "signature": "System.String StringToCommandOptionName(System.String stringToConvert)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Convert some arbitrary string value to a valid command option name removing any invalid characters.",
        "since": "6.0",
        "parameters": [
          {
            "name": "stringToConvert",
            "type": "System.String",
            "summary": "String to convert."
          }
        ],
        "returns": "Returns None if the string is None or empty or if it contains nothing but invalid characters.  If the converted string is one or more characters in length then the converted value is returned."
      }
    ]
  },
  {
    "namespace": "Rhino.Input",
    "name": "RhinoGet.BitmapFileTypes",
    "dataType": "enum",
    "since": "6.0",
    "values": [
      {
        "signature": "bmp = 1",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "jpg = 2",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "pcx = 4",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "png = 8",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "tif = 16",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "tga = 32",
        "modifiers": [],
        "protected": false,
        "virtual": false
      }
    ]

  },
  {
    "namespace": "Rhino.Input",
    "name": "StringParser",
    "dataType": "class",
    "summary": "Parse strings to numbers, distances and angles",
    "constructors": [
      {
        "signature": "StringParser()",
        "summary": "Initializes a new instance of the StringParser class"
      }
    ],
    "methods": [
      {
        "signature": "System.Int32 ParseAngleExpession(System.String expression, System.Int32 start_offset, System.Int32 expression_length, StringParserSettings parse_settings_in, AngleUnitSystem output_angle_unit_system, out System.Double value_out, ref StringParserSettings parse_results, ref AngleUnitSystem parsed_unit_system)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "6.0"
      },
      {
        "signature": "System.Boolean ParseAngleExpressionDegrees(System.String expression, out System.Double angle_degrees)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "6.0"
      },
      {
        "signature": "System.Boolean ParseAngleExpressionRadians(System.String expression, out System.Double angle_radians)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "6.0"
      },
      {
        "signature": "System.Int32 ParseLengthExpession(System.String expression, StringParserSettings parse_settings_in, UnitSystem output_unit_system, out System.Double value_out)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Parse a string for a length value. Expression can include complex expressions Simplest version of Length parsing",
        "since": "6.0",
        "parameters": [
          {
            "name": "expression",
            "type": "System.String",
            "summary": "[In] The string to parse"
          },
          {
            "name": "parse_settings_in",
            "type": "StringParserSettings",
            "summary": "[In] Determines what input will be parsed"
          },
          {
            "name": "output_unit_system",
            "type": "UnitSystem",
            "summary": "[In] Output value is in this unit system"
          },
          {
            "name": "value_out",
            "type": "System.Double",
            "summary": "[Out] The length value result"
          }
        ],
        "returns": "Count of characters parsed or 0 for failure"
      },
      {
        "signature": "System.Int32 ParseLengthExpession(System.String expression, System.Int32 start_offset, System.Int32 expression_length, StringParserSettings parse_settings_in, UnitSystem output_unit_system, out System.Double value_out, ref StringParserSettings parse_results, ref UnitSystem parsed_unit_system)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Parse a string for a length value. Expression can include complex expressions Most complex version of length parsing",
        "since": "6.0",
        "parameters": [
          {
            "name": "expression",
            "type": "System.String",
            "summary": "[In] The string to parse"
          },
          {
            "name": "start_offset",
            "type": "System.Int32",
            "summary": "[In] Offset position in string to start parsing"
          },
          {
            "name": "expression_length",
            "type": "System.Int32",
            "summary": "[In] Maximum length of string to parse. -1 means parse to a terminating character or end of string"
          },
          {
            "name": "parse_settings_in",
            "type": "StringParserSettings",
            "summary": "[In] Determines what input will be parsed"
          },
          {
            "name": "output_unit_system",
            "type": "UnitSystem",
            "summary": "[In] Output value is returned in this unit system"
          },
          {
            "name": "value_out",
            "type": "System.Double",
            "summary": "[Out] The length value result"
          },
          {
            "name": "parse_results",
            "type": "StringParserSettings",
            "summary": "[Out] Describes the results of the parse operation"
          },
          {
            "name": "parsed_unit_system",
            "type": "UnitSystem",
            "summary": "[Out] If a unit system name was found in the string, it is returned here. The output value is in the unit system specified in output_unit_system"
          }
        ],
        "returns": "Returns the count of characters that were parsed or 0 if the operation was unsuccessful"
      },
      {
        "signature": "System.Int32 ParseNumber(System.String expression, System.Int32 max_count, StringParserSettings settings_in, ref StringParserSettings settings_out, out System.Double answer)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Parse a string expression to get a number",
        "since": "6.0",
        "parameters": [
          {
            "name": "expression",
            "type": "System.String",
            "summary": "String to parse"
          },
          {
            "name": "max_count",
            "type": "System.Int32",
            "summary": "Maximum number of characters to parse"
          },
          {
            "name": "settings_in",
            "type": "StringParserSettings",
            "summary": "Determines what input will be parsed"
          },
          {
            "name": "settings_out",
            "type": "StringParserSettings",
            "summary": "Reports the results of the parse operation"
          },
          {
            "name": "answer",
            "type": "System.Double",
            "summary": "The number result of the parse operation"
          }
        ],
        "returns": "Count of characters in expression parsed if ParseNumber() returns 0, parse was unsuccessful"
      }
    ]
  },
  {
    "namespace": "Rhino.Input",
    "name": "StringParserSettings",
    "dataType": "class",
    "summary": "Parameters for parsing strings",
    "interfaces": ["IDisposable"],
    "constructors": [
      {
        "signature": "StringParserSettings()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0"
      }
    ],
    "properties": [
      {
        "signature": "StringParserSettings DefaultParseSettings",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "- The default settings parse just about everything in a reasonable way. - Any angle values with unspecified units will be treated as radians. Angles without units can be encountered while parsing formulas, lengths and points and need to be thoughtfully considered in most parsing situations.",
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "StringParserSettings ParseSettingsDegrees",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "- The default settings parse just about everything in a reasonable way. - Any angle values with unspecified units will be treated as degrees.Angles without units can be encountered while parsing formulas, lengths and points and need to be thoughtfully considered in most parsing situations.",
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "StringParserSettings ParseSettingsDoubleNumber",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "- The double number settings parse and optional unary + or unary - and then parse a number that can be integer, decimal, or scientific e notation.",
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "StringParserSettings ParseSettingsEmpty",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "- ON_ParseSetting::FalseSettings has all parsing options set to false. - A common use of ON_ParseSettings FalseSettings is to initialize ON_ParseSettings classes that are used to report what happened during parsing.Any parsing results value set to True after parsing indicates that type of parsing occurred.",
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "StringParserSettings ParseSettingsIntegerNumber",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "- The integer settings parse and optional unary + or unary - and then parses one or more digits.Parsing stops after the last digit.",
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "StringParserSettings ParseSettingsRadians",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "- The default settings parse just about everything in a reasonable way. - Any angle values with unspecified units will be treated as radians.Angles without units can be encountered while parsing formulas, lengths and points and need to be thoughtfully considered in most parsing situations.",
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "StringParserSettings ParseSettingsRationalNumber",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "- The rational number settings parse and optional unary + or unary - and then parse one or more digits.If a rational number fraction bar follows the last digit in the numerator, then it is parsed and an integer denominator is parsed.The denominator cannot have a unary + or - preceding the digits.Parsing stops after the last digit in the denominator.",
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "StringParserSettings ParseSettingsRealNumber",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "- The real number settings parse and optional unary + or unary - and then parse a number that can be integer, decimal, scientific e notation or pi.",
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "AngleUnitSystem DefaultAngleUnitSystem",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "UnitSystem DefaultLengthUnitSystem",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool ParseAddition",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool ParseArcDegreesMinutesSeconds",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool ParseArithmeticExpression",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool ParseCommaAsDecimalPoint",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool ParseCommaAsDigitSeparator",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool ParseDAsExponentInScientificENotation",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool ParseDivision",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool ParseExplicitFormulaExpression",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool ParseFeetInches",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool ParseFullStopAsDecimalPoint",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool ParseFullStopAsDigitSeparator",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool ParseHyphenAsNumberDash",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool ParseHyphenMinusAsNumberDash",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool ParseIntegerDashFraction",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool ParseLeadingWhiteSpace",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool ParseMathFunctions",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool ParseMultiplication",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool ParsePairedParentheses",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool ParsePi",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool ParseRationalNumber",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool ParseScientificENotation",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool ParseSignificandDigitSeparators",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool ParseSignificandFractionalPart",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool ParseSignificandIntegerPart",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool ParseSpaceAsDigitSeparator",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool ParseSubtraction",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool ParseSurveyorsNotation",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool ParseUnaryMinus",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool ParseUnaryPlus",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "uint PreferedLocaleId",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get", "set"]
      }
    ],
    "methods": [
      {
        "signature": "System.Void Dispose()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0"
      },
      {
        "signature": "System.Void Dispose(System.Boolean disposing)",
        "modifiers": ["protected", "virtual"],
        "protected": true,
        "virtual": true
      },
      {
        "signature": "System.Void SetAllExpressionSettingsToFalse()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0"
      },
      {
        "signature": "System.Void SetAllFieldsToFalse()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0"
      }
    ]
  },
  {
    "namespace": "Rhino",
    "name": "IRhinoDocObserver",
    "dataType": "interface",
    "summary": "Implement this interface if you are a modeless interface to aid in handling multiple document implementations",
    "methods": [
      {
        "signature": "System.Void ActiveRhinoDocChanged(RhinoDocObserverArgs e)",
        "modifiers": [],
        "protected": true,
        "virtual": false,
        "summary": "In Windows Rhino this will mean a new document has been created or opened.  In Mac Rhino this can mean the same thing as well it can indicate switching from one active open document to another.",
        "since": "6.0"
      },
      {
        "signature": "System.Void RhinoDocClosed(RhinoDocObserverArgs e)",
        "modifiers": [],
        "protected": true,
        "virtual": false,
        "summary": "When a document is closed",
        "since": "6.0"
      }
    ]
  },
  {
    "namespace": "Rhino",
    "name": "LengthUnit",
    "dataType": "struct",
    "summary": "Represents a length unit.",
    "since": "9.0",
    "properties": [
      {
        "signature": "string DisplayName",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Upper case plural localized unit name.",
        "since": "9.0",
        "property": ["get"]
      },
      {
        "signature": "string DisplaySymbol",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Lower case singular localized unit symbol.",
        "since": "9.0",
        "property": ["get"]
      },
      {
        "signature": "string Name",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Non localized lower case plural unit name.",
        "since": "9.0",
        "property": ["get"]
      },
      {
        "signature": "string Symbol",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Non localized unit symbol string.",
        "since": "9.0",
        "property": ["get"]
      }
    ],
    "methods": [
      {
        "signature": "LengthUnit FromCustomUnitSystem(System.String name, System.Double customUnitSize, UnitSystem knownUnitSystem)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Creates a custom <b>LengthUnit</b> based on its size expressed on a known <b>UnitSystem</b> .",
        "since": "9.0",
        "parameters": [
          {
            "name": "name",
            "type": "System.String",
            "summary": "Name of the custom unit"
          },
          {
            "name": "customUnitSize",
            "type": "System.Double",
            "summary": "Meters per custom unit in caseis omitted"
          },
          {
            "name": "knownUnitSystem",
            "type": "UnitSystem",
            "summary": "A known unit system. Meters when omitted"
          }
        ]
      },
      {
        "signature": "LengthUnit FromKnownUnitSystem(UnitSystem knownUnitSystem)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Constructs a <b>LengthUnit</b> from a <b>UnitSystem</b> .",
        "since": "9.0",
        "parameters": [
          {
            "name": "knownUnitSystem",
            "type": "UnitSystem",
            "summary": "A known unit system."
          }
        ]
      },
      {
        "signature": "System.Boolean IsCustom(in LengthUnit unit)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Determines whether the specified value is a custom unit.",
        "since": "9.0"
      },
      {
        "signature": "System.Boolean IsKnownLengthUnit(UnitSystem unitSystem, out LengthUnit lengthUnit)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Determines whether the provided value is a known unit system.",
        "since": "9.0",
    "remarks": "Not <b>UnitSystem.Unset</b> nor <b>UnitSystem.CustomUnits</b>",
        "returns": "True when providedvalue is a valid known <b>UnitSystem</b> , False otherwise."
      },
      {
        "signature": "System.Boolean IsNone(in LengthUnit unit)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Determines whether the specified value is None.",
        "since": "9.0"
      },
      {
        "signature": "System.Boolean IsUnset(in LengthUnit unit)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Determines whether the specified value is Unset.",
        "since": "9.0"
      },
      {
        "signature": "System.Double Scale(in LengthUnit from, in LengthUnit to)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Computes the scale factor for changing a measurement on different units.",
        "since": "9.0",
        "parameters": [
          {
            "name": "from",
            "type": "LengthUnit",
            "summary": "The units to convert from."
          },
          {
            "name": "to",
            "type": "LengthUnit",
            "summary": "The units to convert measurements into."
          }
        ],
        "returns": "A unit scale factor."
      },
      {
        "signature": "System.Int32 CompareTo(LengthUnit other)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Compares the current instance with another object of the same type and returns an integer that indicates whether the current instance precedes, follows, or occurs in the same position in the sort order as the other object.",
        "since": "9.0",
    "remarks": "Name is ignored on the comparison (Meters and Metres are considered the same)",
        "parameters": [
          {
            "name": "other",
            "type": "LengthUnit",
            "summary": "A <b>LengthUnit</b> to compare with this instance."
          }
        ],
        "returns": "A value that indicates the relative order of the objects being compared."
      },
      {
        "signature": "System.Boolean Equals(LengthUnit other)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Indicates whether the current object is equal to another object of the same type.",
        "since": "9.0",
    "remarks": "Name is ignored on the comparison (Meters and Metres are considered the same)",
        "returns": "True if the current object is equal to theobject otherwise false."
      },
      {
        "signature": "System.Boolean Equals(System.Object other)",
        "modifiers": ["public", "override"],
        "protected": false,
        "virtual": false,
        "summary": "Indicates whether the current object is equal to another object of the same type.",
        "returns": "True if the current object is equal to theobject otherwise false."
      },
      {
        "signature": "System.Int32 GetHashCode()",
        "modifiers": ["public", "override"],
        "protected": false,
        "virtual": false,
        "summary": "Returns the hash code for this instance.",
        "returns": "A 32-bit integer that is the hash code for this instance."
      },
      {
        "signature": "System.Boolean IsKnownUnitSystem(out UnitSystem unitSystem)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Determines whether the instance value is a known unit system.",
        "since": "9.0",
    "remarks": "Not <b>UnitSystem.Unset</b> nor <b>UnitSystem.CustomUnits</b>",
        "returns": "True when this instance value is a valid known <b>UnitSystem</b> , False otherwise."
      },
      {
        "signature": "System.Double Size(in LengthUnit unit)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns the size of this unit expressed on a different length unit.",
        "since": "9.0",
    "remarks": "Size of None is always 1.0 expressed on any other length unit. Size of Unset is always NaN expressed on any other length unit.",
        "parameters": [
          {
            "name": "unit",
            "type": "LengthUnit",
            "summary": "Size unit."
          }
        ],
        "returns": "The size of this length unit expressed on the specified length."
      },
      {
        "signature": "UnitSystem? ToUnitSystem(out System.Double factor, ISet<UnitSystem> unitSystems)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns the most similar <b>UnitSystem</b> to this instance available onset.",
        "returns": "A <b>UnitSystem</b> in the provided set of available."
      },
      {
        "signature": "UnitSystem ToUnitSystem(out System.Double metersPerUnit)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns a <b>UnitSystem</b> equivalent to this instance and its size expressed on meters.",
        "since": "9.0",
        "parameters": [
          {
            "name": "metersPerUnit",
            "type": "System.Double",
            "summary": "Unit size expressed in meters."
          }
        ],
        "returns": "A <b>UnitSystem</b> value."
      }
    ],
    "fields": [
      {
        "signature": "public static readonly LengthUnit Centimeters = new LengthUnit(UnitSystem.Centimeters)",
        "modifiers": ["public", "static", "readonly"],
        "protected": false,
        "virtual": false,
        "summary": "1 millimeter = 1.0e-2 meters"
      },
      {
        "signature": "public static readonly LengthUnit Feet = new LengthUnit(UnitSystem.Feet)",
        "modifiers": ["public", "static", "readonly"],
        "protected": false,
        "virtual": false,
        "summary": "1 foot = 0.3048  meters = 12 inches"
      },
      {
        "signature": "public static readonly LengthUnit Inches = new LengthUnit(UnitSystem.Inches)",
        "modifiers": ["public", "static", "readonly"],
        "protected": false,
        "virtual": false,
        "summary": "1 inch = 0.0254 meters = 1/12 foot"
      },
      {
        "signature": "public static readonly LengthUnit Kilometers = new LengthUnit(UnitSystem.Kilometers)",
        "modifiers": ["public", "static", "readonly"],
        "protected": false,
        "virtual": false,
        "summary": "1 kilometer = 1.0e+3 meters"
      },
      {
        "signature": "public static readonly LengthUnit Meters = new LengthUnit(UnitSystem.Meters)",
        "modifiers": ["public", "static", "readonly"],
        "protected": false,
        "virtual": false,
        "summary": "SI meter length unit"
      },
      {
        "signature": "public static readonly LengthUnit Miles = new LengthUnit(UnitSystem.Miles)",
        "modifiers": ["public", "static", "readonly"],
        "protected": false,
        "virtual": false,
        "summary": "1 yard = 1609.344 meters = 5280 feet"
      },
      {
        "signature": "public static readonly LengthUnit Millimeters = new LengthUnit(UnitSystem.Millimeters)",
        "modifiers": ["public", "static", "readonly"],
        "protected": false,
        "virtual": false,
        "summary": "1 millimeter = 1.0e-3 meters"
      },
      {
        "signature": "public static readonly LengthUnit None = new LengthUnit(UnitSystem.None)",
        "modifiers": ["public", "static", "readonly"],
        "protected": false,
        "virtual": false,
        "summary": "No unit"
      },
      {
        "signature": "public static readonly LengthUnit Unset = new LengthUnit(UnitSystem.Unset)",
        "modifiers": ["public", "static", "readonly"],
        "protected": false,
        "virtual": false,
        "summary": "Unset unit"
      },
      {
        "signature": "public static readonly LengthUnit Yards = new LengthUnit(UnitSystem.Yards)",
        "modifiers": ["public", "static", "readonly"],
        "protected": false,
        "virtual": false,
        "summary": "1 yard = 0.9144 meters = 3 feet"
      }
    ]
,
    "operators": [
      {
        "signature": "bool operator !=(in LengthUnit left, in LengthUnit right)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Inequality operator.",
        "since": "9.0"
      },
      {
        "signature": "bool operator <(in LengthUnit left, in LengthUnit right)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Less than operator.",
        "since": "9.0"
      },
      {
        "signature": "bool operator <=(in LengthUnit left, in LengthUnit right)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Less than or equal operator.",
        "since": "9.0"
      },
      {
        "signature": "bool operator ==(in LengthUnit left, in LengthUnit right)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Equality operator.",
        "since": "9.0"
      },
      {
        "signature": "bool operator >(in LengthUnit left, in LengthUnit right)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Greater than operator.",
        "since": "9.0"
      },
      {
        "signature": "bool operator >=(in LengthUnit left, in LengthUnit right)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Greater than or equal operator.",
        "since": "9.0"
      }
    ]

  },
  {
    "namespace": "Rhino",
    "name": "LengthValue",
    "dataType": "class",
    "summary": "Represents a length with an associated unit system and a string representation of that length. This allows for going back and forth from numerical representation of a length and a string representation without \"guessing\" at the initial string",
    "interfaces": ["IDisposable"],
    "constructors": [
      {
        "signature": "LengthValue()",
        "summary": "Initializes a new instance of the LengthValue class"
      }
    ],
    "properties": [
      {
        "signature": "AngleUnitSystem ContextAngleUnitSystem",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns the context AngleUnitSystem from this LengthValue's ParseSettings",
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "uint ContextLocaleId",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "returns the context LocaleId from this LengthValue",
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "string LengthString",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Return length as a string",
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "StringFormat LengthStringFormat",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns the StringFormat from this LengthValue",
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "StringParserSettings ParseSettings",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Parse settings",
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "LengthUnit Units",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "LengthUnit used by this LengthValue",
        "since": "9.0",
        "property": ["get"]
      },
      {
        "signature": "UnitSystem UnitSystem",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "UnitSystem used by this LengthValue",
        "since": "6.0",
        "property": ["get"]
      }
    ],
    "methods": [
      {
        "signature": "LengthValue Create(System.Double length, LengthUnit units, StringFormat format, System.UInt32 localeId)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Create from Length and LengthUnit",
        "since": "9.0",
        "parameters": [
          {
            "name": "length",
            "type": "System.Double",
            "summary": "Numeric length value"
          },
          {
            "name": "units",
            "type": "LengthUnit",
            "summary": "Length units"
          },
          {
            "name": "format",
            "type": "StringFormat",
            "summary": ""
          },
          {
            "name": "localeId",
            "type": "System.UInt32",
            "summary": ""
          }
        ]
      },
      {
        "signature": "LengthValue Create(System.Double length, LengthUnit units, StringFormat format)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Create from Length and LengthUnit",
        "since": "9.0",
        "parameters": [
          {
            "name": "length",
            "type": "System.Double",
            "summary": "Numeric length value"
          },
          {
            "name": "units",
            "type": "LengthUnit",
            "summary": "Length units"
          },
          {
            "name": "format",
            "type": "StringFormat",
            "summary": ""
          }
        ]
      },
      {
        "signature": "LengthValue Create(System.Double length, UnitSystem us, StringFormat format, System.UInt32 localeId)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Create from Length and UnitSystem",
        "since": "6.0",
        "parameters": [
          {
            "name": "length",
            "type": "System.Double",
            "summary": "Numeric length value"
          },
          {
            "name": "us",
            "type": "UnitSystem",
            "summary": "Unit system"
          },
          {
            "name": "format",
            "type": "StringFormat",
            "summary": ""
          },
          {
            "name": "localeId",
            "type": "System.UInt32",
            "summary": ""
          }
        ]
      },
      {
        "signature": "LengthValue Create(System.Double length, UnitSystem us, StringFormat format)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Create from Length and UnitSystem",
        "since": "6.0",
        "parameters": [
          {
            "name": "length",
            "type": "System.Double",
            "summary": "Numeric length value"
          },
          {
            "name": "us",
            "type": "UnitSystem",
            "summary": "Unit system"
          },
          {
            "name": "format",
            "type": "StringFormat",
            "summary": ""
          }
        ]
      },
      {
        "signature": "LengthValue Create(System.String s, StringParserSettings ps, out System.Boolean parsedAll)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Create from string",
        "since": "6.0",
        "parameters": [
          {
            "name": "s",
            "type": "System.String",
            "summary": "string to parse"
          },
          {
            "name": "ps",
            "type": "StringParserSettings",
            "summary": ""
          },
          {
            "name": "parsedAll",
            "type": "System.Boolean",
            "summary": "True if the whole string was parsed"
          }
        ]
      },
      {
        "signature": "LengthValue ChangeLength(System.Double newLength)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Changes the numeric value in a LengthValue and leaves all of the other info unchanged UnitSystem, ParseSettings and StringFormat stay as they were",
        "since": "6.0",
        "returns": "A new LengthValue"
      },
      {
        "signature": "LengthValue ChangeUnits(LengthUnit newUnits)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Change the UnitSystem of a LengthValue The numeric value of Length is scaled by new_us / current unit system so that the absolute length stays the same",
        "since": "9.0"
      },
      {
        "signature": "LengthValue ChangeUnitSystem(UnitSystem newUnits)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Change the UnitSystem of a LengthValue The numeric value of Length is scaled by new_us / current unit system so that the absolute length stays the same",
        "since": "6.0"
      },
      {
        "signature": "System.Void Dispose()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "actively reclaim native allocated ON_LengthValue*",
        "since": "6.0"
      },
      {
        "signature": "System.Boolean IsUnset()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Test IsUnset",
        "since": "6.0"
      },
      {
        "signature": "System.Double Length()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Length value in this instance's current unit system",
        "since": "6.0"
      },
      {
        "signature": "System.Double Length(LengthUnit units)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Length value in a given unit system",
        "since": "9.0"
      },
      {
        "signature": "System.Double Length(UnitSystem units)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Length value in a given unit system",
        "since": "6.0"
      }
    ]
  },
  {
    "namespace": "Rhino",
    "name": "LengthValue.StringFormat",
    "dataType": "enum",
    "summary": "Formatting to apply when creating a length value from a double.",
    "values": [
      {
        "signature": "ExactDecimal = 0",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Use exact decimal string."
      },
      {
        "signature": "ExactProperFraction = 1",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "If possible, use exact integer-fraction format (1.125 becomes 1-1/8)."
      },
      {
        "signature": "ExactImproperFraction = 2",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "If possible, use exact fraction format (1.125 becomes 9/8)."
      },
      {
        "signature": "CleanDecimal = 3",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "The value may be adjusted slightly to improve clarity (1.124999... becomes 1.125)."
      },
      {
        "signature": "CleanProperFraction = 4",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "The value may be adjusted slightly to improve clarity (1.124999... becomes 1-1/8)."
      },
      {
        "signature": "CleanImproperFraction = 5",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "The value may be adjusted slightly to improve clarity (1.124999... becomes 9/8)."
      }
    ]

  },
  {
    "namespace": "Rhino",
    "name": "LinkedInstanceDefinitionUpdateStyle",
    "dataType": "enum",
    "summary": "Linked and linked and embedded instance definition update style.",
    "since": "8.29",
    "values": [
      {
        "signature": "Prompt = 1",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Ask the user if the linked and linked and embedded instance definitions should be updated.",
        "since": "8.29"
      },
      {
        "signature": "AlwaysUpdate = 2",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Always update linked and linked and embedded instance definitions.",
        "since": "8.29"
      },
      {
        "signature": "NeverUpdate = 3",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Never update linked and linked and embedded instance definitions.",
        "since": "8.29"
      }
    ]

  },
  {
    "namespace": "Rhino.NodeInCode",
    "name": "ComponentFunctionInfo",
    "dataType": "class",
    "summary": "Defines the base class for a function representing a component. This class is abstract.",
    "constructors": [
      {
        "signature": "ComponentFunctionInfo(string name, string @namespace, string description, IReadOnlyList<string> inputNames, IReadOnlyList<string> inputDescriptions, IReadOnlyList<string> inputTypeNames, IReadOnlyList<bool> inputsOptional, IReadOnlyList<string> outputNames, IReadOnlyList<string> outputDescriptions, IReadOnlyList<string> outputTypeNames, Guid componentGuid)",
        "modifiers": ["protected"],
        "protected": true,
        "virtual": false,
        "summary": "Instantiates a new instance of the function class. This is not meant for public consumption.",
        "parameters": [
          {
            "name": "name",
            "type": "System.String",
            "summary": "Name."
          },
          {
            "name": "@namespace",
            "type": "System.String",
            "summary": ""
          },
          {
            "name": "description",
            "type": "System.String",
            "summary": "Description."
          },
          {
            "name": "inputNames",
            "type": "IReadOnlyList<string>",
            "summary": "Input parameter names."
          },
          {
            "name": "inputDescriptions",
            "type": "IReadOnlyList<string>",
            "summary": "Input parameter descriptions."
          },
          {
            "name": "inputTypeNames",
            "type": "IReadOnlyList<string>",
            "summary": "Input parameter type names."
          },
          {
            "name": "inputsOptional",
            "type": "IReadOnlyList<bool>",
            "summary": "Indications for optional inputs."
          },
          {
            "name": "outputNames",
            "type": "IReadOnlyList<string>",
            "summary": "Output names."
          },
          {
            "name": "outputDescriptions",
            "type": "IReadOnlyList<string>",
            "summary": "Output descriptions."
          },
          {
            "name": "outputTypeNames",
            "type": "IReadOnlyList<string>",
            "summary": "Output type names."
          },
          {
            "name": "componentGuid",
            "type": "System.Guid",
            "summary": "Component guid."
          }
        ]
      }
    ],
    "properties": [
      {
        "signature": "Guid ComponentGuid",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "The unique identifier of the Grasshopper component. It is the original developer's responsibility to ensure that this ID is unique.",
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "Delegate Delegate",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns a delegate that can be directly invoked using a list of arguments. This flattens trees.",
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "Delegate DelegateNoWarnings",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns a delegate that can be directly invoked using a list of arguments. This flattens trees.",
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "Delegate DelegateTree",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns a delegate that can be directly invoked using a list of arguments. This considers trees and simplifies single-output components.",
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "Delegate DelegateTreeNoWarnings",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns a delegate that can be directly invoked using a list of arguments. This considers trees and simplifies single-output components.",
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "string Description",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "The function description.",
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "string FullName",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns the name of the component prefixed by, if existing, the namespace.",
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "string FullScriptingName",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Shows the full name of the component, including optional periods. Removes spaces and common operator signs.",
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "IReadOnlyList<string> InputDescriptions",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "The function input parameter descriptions.",
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "IReadOnlyList<string> InputNames",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "The function input parameter names.",
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "IReadOnlyList<bool> InputsOptional",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Indications for each function input parameter whether it is optional.",
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "IReadOnlyList<string> InputTypeNames",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "The function input type names.",
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "bool IsDefault",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Determines if the component is a default one.",
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "string Name",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "The function name.",
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "string Namespace",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "The function namespace.",
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "IReadOnlyList<string> OutputDescriptions",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Grasshopper returns several items in general. This property returns the output descriptions.",
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "IReadOnlyList<string> OutputNames",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Grasshopper returns several items in general. This property returns the output names.",
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "IReadOnlyList<string> OutputTypeNames",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Grasshopper returns several items in general. This property returns the output type names.",
        "since": "6.0",
        "property": ["get"]
      }
    ],
    "methods": [
      {
        "signature": "System.Object[] Evaluate(System.Collections.IEnumerable args, System.Boolean keepTree, out System.String[] warnings)",
        "modifiers": ["public", "abstract"],
        "protected": false,
        "virtual": false,
        "summary": "Evaluates the component with a set of arguments. There needs to be an argument for each input param, and each output param gives an entry in the output array.",
        "since": "6.0",
    "remarks": "For component that store no state, this method is thread safe.",
        "parameters": [
          {
            "name": "args",
            "type": "System.Collections.IEnumerable",
            "summary": "The arguments list. Each item is assigned to each input param, in order."
          },
          {
            "name": "keepTree",
            "type": "System.Boolean",
            "summary": "A value indicating whether trees should be considered valid inputs, and should be returned. In this case, output variables are not simplified to common types."
          },
          {
            "name": "warnings",
            "type": "System.String[]",
            "summary": "A possible list of warnings, or null."
          }
        ],
        "returns": "An array of objects, each representing an output result."
      },
      {
        "signature": "System.Object[] Invoke(params System.Object[] args)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Runs <b>Evaluate</b> with keepTree equal to false, and raises an exception on the first warning.",
        "since": "7.0",
        "parameters": [
          {
            "name": "args",
            "type": "System.Object[]",
            "summary": "Arguments. One for each component input."
          }
        ],
        "returns": "Items."
      },
      {
        "signature": "System.Object[] InvokeKeepTree(params System.Object[] args)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Runs <b>Evaluate</b> with keepTree equal to True and raises an exception on the first warning.",
        "since": "7.0",
        "parameters": [
          {
            "name": "args",
            "type": "System.Object[]",
            "summary": "Arguments. One for each component input."
          }
        ],
        "returns": "Items."
      },
      {
        "signature": "System.Object[] InvokeKeepTreeSilenceWarnings(params System.Object[] args)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Runs <b>Evaluate</b> with keepTree equal to true, and discards warnings (this is a dangerous operation!).",
        "since": "7.0",
        "parameters": [
          {
            "name": "args",
            "type": "System.Object[]",
            "summary": "Arguments."
          }
        ],
        "returns": "Array of items."
      },
      {
        "signature": "System.Object[] InvokeSilenceWarnings(params System.Object[] args)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Runs <b>Evaluate</b> with keepTree equal to false, then simplifies output with <b>SimplifyTreeOutput</b> and discards warnings (this is a dangerous operation!).",
        "since": "7.0",
        "parameters": [
          {
            "name": "args",
            "type": "System.Object[]",
            "summary": "Arguments. One for each component input."
          }
        ],
        "returns": "Items."
      },
      {
        "signature": "System.String ToString()",
        "modifiers": ["public", "override"],
        "protected": false,
        "virtual": false,
        "summary": "Returns a string representing this function.",
        "returns": "The namespace and the name."
      }
    ]
  },
  {
    "namespace": "Rhino.NodeInCode",
    "name": "Components",
    "dataType": "class",
    "summary": "Provides access to all Grasshopper runtime components.",
    "constructors": [
      {
        "signature": "Components()",
        "summary": "Initializes a new instance of the Components class"
      }
    ],
    "properties": [
      {
        "signature": "NodeInCodeTable NodeInCodeFunctions",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Returns a collection with all component functions.",
        "since": "6.0",
        "property": ["get"]
      }
    ],
    "methods": [
      {
        "signature": "ComponentFunctionInfo FindComponent(System.String fullName)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Finds a component given its full name.",
        "since": "6.0",
        "parameters": [
          {
            "name": "fullName",
            "type": "System.String",
            "summary": "The name, including its library name and a period if it is made by a third-party."
          }
        ]
      },
      {
        "signature": "NodeInCodeTable __getAllFunctions()",
        "modifiers": ["protected", "virtual"],
        "protected": true,
        "virtual": true,
        "summary": "Returns a collection with all component functions. For infrastructure usage only."
      }
    ]
  },
  {
    "namespace": "Rhino.NodeInCode",
    "name": "NodeInCodeTable",
    "dataType": "class",
    "summary": "Permits rapid access to references to all Grasshopper functions.",
    "baseclass": "DynamicObject",
    "constructors": [
      {
        "signature": "NodeInCodeTable(IEnumerable<ComponentFunctionInfo> items)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Instantiates the table. Users of RhinoCommon do not typically need to call this constructor.",
        "since": "6.0",
        "parameters": [
          {
            "name": "items",
            "type": "IEnumerable<ComponentFunctionInfo>",
            "summary": "Items."
          }
        ]
      }
    ],
    "properties": [
      {
        "signature": "int Count",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns the amount of items in this table.",
        "since": "6.0",
        "property": ["get"]
      }
    ],
    "methods": [
      {
        "signature": "System.Void Add(ComponentFunctionInfo item)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Adds, or replaces a new instance of component function information.",
        "since": "6.0"
      },
      {
        "signature": "System.Boolean Contains(System.String fullName)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Check whether node is registered in this table or not",
        "since": "9.0",
        "parameters": [
          {
            "name": "fullName",
            "type": "System.String",
            "summary": "Full name of node"
          }
        ]
      },
      {
        "signature": "IEnumerable<string> GetDynamicMemberNames()",
        "modifiers": ["public", "override"],
        "protected": false,
        "virtual": false,
        "summary": "Returns all additional names in the table.",
        "since": "6.0"
      },
      {
        "signature": "IEnumerable<ComponentFunctionInfo> GetDynamicMembers()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns component info for all additional names in the table.",
        "since": "8.0"
      },
      {
        "signature": "System.Boolean TryGetIndex(GetIndexBinder binder, System.Object[] indexes, out System.Object result)",
        "modifiers": ["public", "override"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the ComponentFunctionInfo at",
        "since": "6.0",
        "parameters": [
          {
            "name": "binder",
            "type": "GetIndexBinder",
            "summary": "The binder."
          },
          {
            "name": "indexes",
            "type": "System.Object[]",
            "summary": "ONE string index."
          },
          {
            "name": "result",
            "type": "System.Object",
            "summary": "The bound info."
          }
        ]
      },
      {
        "signature": "System.Boolean TryGetMember(GetMemberBinder binder, out System.Object result)",
        "modifiers": ["public", "override"],
        "protected": false,
        "virtual": false,
        "summary": "Dynamically binds the table to property-like access via its item names.",
        "since": "6.0",
        "parameters": [
          {
            "name": "binder",
            "type": "GetMemberBinder",
            "summary": "The dynamic binder."
          },
          {
            "name": "result",
            "type": "System.Object",
            "summary": "Returns the result."
          }
        ]
      },
      {
        "signature": "System.Boolean TryInvokeMember(InvokeMemberBinder binder, System.Object[] args, out System.Object result)",
        "modifiers": ["public", "override"],
        "protected": false,
        "virtual": false,
        "summary": "Dynamically invokes a member of the table.",
        "since": "6.0",
        "parameters": [
          {
            "name": "binder",
            "type": "InvokeMemberBinder",
            "summary": "The binder."
          },
          {
            "name": "args",
            "type": "System.Object[]",
            "summary": "The arguments."
          },
          {
            "name": "result",
            "type": "System.Object",
            "summary": "The result."
          }
        ],
        "returns": "True on success."
      }
    ]
  },
  {
    "namespace": "Rhino.Notifications",
    "name": "SuspendCollectionChangedEventHandler<T>",
    "dataType": "class",
    "summary": "Using this on a subscribed event handler for the given <b>TrulyObservableOrderedSet{T}</b> will suspend notifications to the specified handler until <b>SuspendCollectionChangedEventHandler{T}</b> is disposed.",
    "interfaces": ["IDisposable"],
    "constructors": [
      {
        "signature": "SuspendCollectionChangedEventHandler<T>(NotifyCollectionChangedEventHandler handler, TrulyObservableOrderedSet<T> set, bool fireOnResume)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Constructor. Notifications from the set to the handler are suspended until this object is disposed.",
        "parameters": [
          {
            "name": "handler",
            "type": "NotifyCollectionChangedEventHandler",
            "summary": "The event handler to suspend"
          },
          {
            "name": "set",
            "type": "TrulyObservableOrderedSet<T>",
            "summary": "The collection to suspend notifications for"
          },
          {
            "name": "fireOnResume",
            "type": "System.Boolean",
            "summary": "If True (=default), upon resuming notifications one <b>NotifyCollectionChangedAction.Reset</b>  event will be fired if the collection was modified during the suspension."
          }
        ]
      }
    ],
    "methods": [
      {
        "signature": "System.Void Dispose()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false
      }
    ]
  },
  {
    "namespace": "Rhino.Notifications",
    "name": "SuspendCollectionChangedNotifications<T>",
    "dataType": "class",
    "summary": "Using this on a <b>TrulyObservableOrderedSet{T}</b> will suspend notifications until the <b>SuspendCollectionChangedNotifications{T}</b> is disposed.",
    "interfaces": ["IDisposable"],
    "constructors": [
      {
        "signature": "SuspendCollectionChangedNotifications<T>(TrulyObservableOrderedSet<T> set, bool fireOnResume)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Constructor. Notifications will be suspended until this object is disposed.",
        "parameters": [
          {
            "name": "set",
            "type": "TrulyObservableOrderedSet<T>",
            "summary": "The collection to suspend notifications for"
          },
          {
            "name": "fireOnResume",
            "type": "System.Boolean",
            "summary": "If True (=default), upon resuming notifications one <b>NotifyCollectionChangedAction.Reset</b>  event will be fired if the collection was modified during the suspension."
          }
        ]
      }
    ],
    "methods": [
      {
        "signature": "System.Void Dispose()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false
      }
    ]
  },
  {
    "namespace": "Rhino.ObjectManager",
    "name": "ObjectManager.NodeIds",
    "dataType": "class"
  },
  {
    "namespace": "Rhino.ObjectManager",
    "name": "ObjectManager.ObjectManagerEventHints",
    "dataType": "enum",
    "values": [
      {
        "signature": "None = UnsafeNativeMethods.RhinoEventWatcherObjectManagerHints.None",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "SelectionChanged = UnsafeNativeMethods.RhinoEventWatcherObjectManagerHints.SelectionChanged",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "QuickAccessPropertyChanged = UnsafeNativeMethods.RhinoEventWatcherObjectManagerHints.QuickAccessPropertyChanged",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "RebuildRequired = UnsafeNativeMethods.RhinoEventWatcherObjectManagerHints.RebuildRequired",
        "modifiers": [],
        "protected": false,
        "virtual": false
      }
    ]

  },
  {
    "namespace": "Rhino.ObjectManager",
    "name": "ObjectManagerNodeDropTarget.ObjectManagerNodeDropTargets",
    "dataType": "enum",
    "values": [
      {
        "signature": "Object = UnsafeNativeMethods.RhinoObjectManagerNodeDropTargets.Object",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "View = UnsafeNativeMethods.RhinoObjectManagerNodeDropTargets.View",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Application = UnsafeNativeMethods.RhinoObjectManagerNodeDropTargets.Application",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Node = UnsafeNativeMethods.RhinoObjectManagerNodeDropTargets.Node",
        "modifiers": [],
        "protected": false,
        "virtual": false
      }
    ]

  },
  {
    "namespace": "Rhino",
    "name": "PersistentSettings",
    "dataType": "class",
    "summary": "A dictionary of SettingValue items.",
    "interfaces": ["ISerializable"],
    "constructors": [
      {
        "signature": "PersistentSettings(SerializationInfo info, StreamingContext context)",
        "modifiers": ["protected"],
        "protected": true,
        "virtual": false
      }
    ],
    "properties": [
      {
        "signature": "PersistentSettings RhinoAppSettings",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "6.14",
        "property": ["get"]
      },
      {
        "signature": "string StringListRootKey",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Adding this string to a string list when calling SetStringList will cause the ProgramData setting to get inserted at that location in the list.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "ICollection<string> ChildKeys",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets a collection containing the keys in the settings dictionary.",
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "bool HiddenFromUserInterface",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "If False then values will appear in the EditOptions window",
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "ICollection<string> Keys",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets a collection containing the keys in the settings dictionary.",
        "since": "6.0",
        "property": ["get"]
      }
    ],
    "methods": [
      {
        "signature": "PersistentSettings FromPlugInId(System.Guid pluginId)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "PersistentSettings AddChild(System.String key)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Call this method to add a new child key, if the key is exists then the existing key is returned otherwise a new empty <b>PersistentSettings</b>  child key is added and the new settings are returned.",
        "since": "6.0",
        "parameters": [
          {
            "name": "key",
            "type": "System.String",
            "summary": "Key to add to the child dictionary."
          }
        ],
        "returns": "If the key is exists then the existing key is returned otherwise a new empty <b>PersistentSettings</b> child key is added and the new settings are returned."
      },
      {
        "signature": "System.Void ClearChangedFlag()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0"
      },
      {
        "signature": "System.Boolean ContainsChangedValues()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0"
      },
      {
        "signature": "System.Boolean ContainsModifiedValues(PersistentSettings allUserSettings)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "System.Void DeleteChild(System.String key)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Call this method to delete a child settings key.",
        "since": "6.0"
      },
      {
        "signature": "System.Void DeleteItem(System.String key)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "System.Boolean GetBool(System.String key, System.Boolean defaultValue, IEnumerable<string> legacyKeyList)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0"
      },
      {
        "signature": "System.Boolean GetBool(System.String key, System.Boolean defaultValue)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "System.Boolean GetBool(System.String key)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "System.Byte GetByte(System.String key, System.Byte defaultValue, IEnumerable<string> legacyKeyList)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0"
      },
      {
        "signature": "System.Byte GetByte(System.String key, System.Byte defaultValue)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "System.Byte GetByte(System.String key)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "System.Char GetChar(System.String key, System.Char defaultValue, IEnumerable<string> legacyKeyList)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0"
      },
      {
        "signature": "System.Char GetChar(System.String key, System.Char defaultValue)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "System.Char GetChar(System.String key)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "PersistentSettings GetChild(System.String key)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Call this method to get a nested settings <b>PersistentSettings</b>  instance, will throw a <b>KeyNotFoundException</b> exception if the key does not exist.",
        "since": "6.0",
        "parameters": [
          {
            "name": "key",
            "type": "System.String",
            "summary": "Key name"
          }
        ],
        "returns": "Returns persistent settings for the specified key or throws an exception if the key is invalid."
      },
      {
        "signature": "Color GetColor(System.String key, Color defaultValue, IEnumerable<string> legacyKeyList)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0"
      },
      {
        "signature": "Color? GetColor(System.String key, Color? defaultValue, IEnumerable<string> legacyKeyList)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Color? GetColor(System.String key, Color? defaultValue)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Color GetColor(System.String key, Color defaultValue)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "Color GetColor(System.String key)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "System.DateTime GetDate(System.String key, System.DateTime defaultValue, IEnumerable<string> legacyKeyList)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0"
      },
      {
        "signature": "System.DateTime GetDate(System.String key, System.DateTime defaultValue)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "System.DateTime GetDate(System.String key)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "System.Double GetDouble(System.String key, System.Double defaultValue, IEnumerable<string> legacyKeyList)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0"
      },
      {
        "signature": "System.Double GetDouble(System.String key, System.Double defaultValue)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "System.Double GetDouble(System.String key)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "T GetEnumValue(System.String key, T defaultValue)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets a stored enumerated value using a custom key, or return default value if not found.",
        "since": "5.4"
      },
      {
        "signature": "T GetEnumValue(System.String key)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Get a stored enumerated value using a custom key.",
        "since": "5.4"
      },
      {
        "signature": "T GetEnumValue(T defaultValue)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Get a stored enumerated value, or return default value if not found",
        "since": "5.4"
      },
      {
        "signature": "System.Guid GetGuid(System.String key, System.Guid defaultValue, IEnumerable<string> legacyKeyList)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0"
      },
      {
        "signature": "System.Guid GetGuid(System.String key, System.Guid defaultValue)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0"
      },
      {
        "signature": "System.Guid GetGuid(System.String key)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0"
      },
      {
        "signature": "System.Int32 GetInteger(System.String key, System.Int32 defaultValue, IEnumerable<string> legacyKeyList)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0"
      },
      {
        "signature": "System.Int32 GetInteger(System.String key, System.Int32 defaultValue, System.Int32 bound, System.Boolean boundIsLower)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0"
      },
      {
        "signature": "System.Int32 GetInteger(System.String key, System.Int32 defaultValue, System.Int32 lowerBound, System.Int32 upperBound)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0"
      },
      {
        "signature": "System.Int32 GetInteger(System.String key, System.Int32 defaultValue)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "System.Int32 GetInteger(System.String key)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "System.Drawing.Point GetPoint(System.String key, System.Drawing.Point defaultValue, IEnumerable<string> legacyKeyList)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0"
      },
      {
        "signature": "System.Drawing.Point GetPoint(System.String key, System.Drawing.Point defaultValue)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "System.Drawing.Point GetPoint(System.String key)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "Point3d GetPoint3d(System.String key, Point3d defaultValue, IEnumerable<string> legacyKeyList)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0"
      },
      {
        "signature": "Point3d GetPoint3d(System.String key, Point3d defaultValue)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "Point3d GetPoint3d(System.String key)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "Rectangle GetRectangle(System.String key, Rectangle defaultValue, IEnumerable<string> legacyKeyList)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0"
      },
      {
        "signature": "Rectangle GetRectangle(System.String key, Rectangle defaultValue)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "Rectangle GetRectangle(System.String key)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "System.Boolean GetSettingIsHiddenFromUserInterface(System.String key, IEnumerable<string> legacyKeyList)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Values read from all users settings files will be marked as read-only which will cause any future calls to Set... to fail.",
        "since": "6.0",
        "parameters": [
          {
            "name": "key",
            "type": "System.String",
            "summary": "Key name for which to search."
          },
          {
            "name": "legacyKeyList",
            "type": "IEnumerable<string>",
            "summary": ""
          }
        ],
        "returns": "Returns True if the setting is read-only otherwise false."
      },
      {
        "signature": "System.Boolean GetSettingIsHiddenFromUserInterface(System.String key)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Values read from all users settings files will be marked as read-only which will cause any future calls to Set... to fail.",
        "since": "6.0",
        "parameters": [
          {
            "name": "key",
            "type": "System.String",
            "summary": "Key name for which to search."
          }
        ],
        "returns": "Returns True if the setting is read-only otherwise false."
      },
      {
        "signature": "System.Boolean GetSettingIsReadOnly(System.String key)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Values read from all users settings files will be marked as read-only which will cause any future calls to Set... to fail.",
        "since": "6.0",
        "parameters": [
          {
            "name": "key",
            "type": "System.String",
            "summary": "Key name for which to search."
          }
        ],
        "returns": "Returns True if the setting is read-only otherwise false."
      },
      {
        "signature": "System.Type GetSettingType(System.String key)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the type of the last value passed to Set... or Get... for the specified setting.",
        "since": "6.0",
        "parameters": [
          {
            "name": "key",
            "type": "System.String",
            "summary": "Key name for which to search."
          }
        ],
        "returns": "Type of the last value passed to Set... or Get... for the specified setting."
      },
      {
        "signature": "Size GetSize(System.String key, Size defaultValue, IEnumerable<string> legacyKeyList)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0"
      },
      {
        "signature": "Size GetSize(System.String key, Size defaultValue)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "Size GetSize(System.String key)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "System.String GetString(System.String key, System.String defaultValue, IEnumerable<string> legacyKeyList)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0"
      },
      {
        "signature": "System.String GetString(System.String key, System.String defaultValue)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "System.String GetString(System.String key)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "KeyValuePair<string, string>[] GetStringDictionary(System.String key, KeyValuePair<string, string>[] defaultValue, IEnumerable<string> legacyKeyList)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "KeyValuePair<string, string>[] GetStringDictionary(System.String key, KeyValuePair<string, string>[] defaultValue)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "KeyValuePair<string, string>[] GetStringDictionary(System.String key)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0"
      },
      {
        "signature": "System.String[] GetStringList(System.String key, System.String[] defaultValue, IEnumerable<string> legacyKeyList)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0"
      },
      {
        "signature": "System.String[] GetStringList(System.String key, System.String[] defaultValue)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "System.String[] GetStringList(System.String key)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "System.UInt32 GetUnsignedInteger(System.String key, System.UInt32 defaultValue, IEnumerable<string> legacyKeyList)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0"
      },
      {
        "signature": "System.UInt32 GetUnsignedInteger(System.String key, System.UInt32 defaultValue)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "System.UInt32 GetUnsignedInteger(System.String key)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "EventHandler<PersistentSettingsEventArgs<T>> GetValidator(System.String key)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Provides a way to find a ready-to-use validator for the PersistentSetting class for the given the key, or obtaining null.",
        "since": "5.0",
        "parameters": [
          {
            "name": "key",
            "type": "System.String",
            "summary": "The name of the setting key."
          }
        ],
        "returns": "A valid validator, or None if no validator was found."
      },
      {
        "signature": "System.Void HideSettingFromUserInterface(System.String key)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0"
      },
      {
        "signature": "System.Void RegisterSettingsValidator(System.String key, EventHandler<PersistentSettingsEventArgs<T>> validator)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Sets a validator for a given key.  \nNote to implementers: parameter T should be one of the     supported types for the PersistentSettings class and should match the type associated with the key.  \nThis method allows to use anonymous methods and lambda expressions.",
        "parameters": [
          {
            "name": "key",
            "type": "System.String",
            "summary": "The key to which to bind the validator."
          },
          {
            "name": "validator",
            "type": "EventHandler<PersistentSettingsEventArgs<T>>",
            "summary": "A validator instance of your own class."
          }
        ]
      },
      {
        "signature": "System.Void SetBool(System.String key, System.Boolean value)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "System.Void SetByte(System.String key, System.Byte value)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "System.Void SetChar(System.String key, System.Char value)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "System.Void SetColor(System.String key, Color? value)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "System.Void SetColor(System.String key, Color value)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "System.Void SetDate(System.String key, System.DateTime value)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "System.Void SetDefault(System.String key, Color? value)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "System.Void SetDefault(System.String key, Color value)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "System.Void SetDefault(System.String key, KeyValuePair<string, string>[] value)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "System.Void SetDefault(System.String key, Point3d value)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "System.Void SetDefault(System.String key, Rectangle value)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "System.Void SetDefault(System.String key, Size value)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "System.Void SetDefault(System.String key, System.Boolean value)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "System.Void SetDefault(System.String key, System.Byte value)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "System.Void SetDefault(System.String key, System.Char value)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "System.Void SetDefault(System.String key, System.DateTime value)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "System.Void SetDefault(System.String key, System.Double value)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "System.Void SetDefault(System.String key, System.Drawing.Point value)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "System.Void SetDefault(System.String key, System.Guid value)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0"
      },
      {
        "signature": "System.Void SetDefault(System.String key, System.Int32 value)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "System.Void SetDefault(System.String key, System.String value)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "System.Void SetDefault(System.String key, System.String[] value)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "System.Void SetDouble(System.String key, System.Double value)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "System.Void SetEnumValue(System.String key, T value)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Set an enumerated value in the settings using a custom key",
        "since": "5.4"
      },
      {
        "signature": "System.Void SetEnumValue(T enumValue)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Set an enumerated value in the settings.",
        "since": "5.4"
      },
      {
        "signature": "System.Void SetGuid(System.String key, System.Guid value)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0"
      },
      {
        "signature": "System.Void SetInteger(System.String key, System.Int32 value)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "System.Void SetPoint(System.String key, System.Drawing.Point value)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "System.Void SetPoint3d(System.String key, Point3d value)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "System.Void SetRectangle(System.String key, Rectangle value)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "System.Void SetSize(System.String key, Size value)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "System.Void SetString(System.String key, System.String value)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "System.Void SetStringDictionary(System.String key, KeyValuePair<string, string>[] value)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "System.Void SetStringList(System.String key, System.String[] value)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Including a item with the value of StringListRootKey will cause the ProgramData value to get inserted at that location in the list when calling GetStringList.",
        "since": "5.0",
        "parameters": [
          {
            "name": "key",
            "type": "System.String",
            "summary": "The string key."
          },
          {
            "name": "value",
            "type": "System.String[]",
            "summary": "An array of values to set."
          }
        ]
      },
      {
        "signature": "System.Void SetUnsignedInteger(System.String key, System.UInt32 value)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "System.Boolean TryGetBool(System.String key, out System.Boolean value, IEnumerable<string> legacyKeyList)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0"
      },
      {
        "signature": "System.Boolean TryGetBool(System.String key, out System.Boolean value)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "System.Boolean TryGetByte(System.String key, out System.Byte value, IEnumerable<string> legacyKeyList)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0"
      },
      {
        "signature": "System.Boolean TryGetByte(System.String key, out System.Byte value)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "System.Boolean TryGetChar(System.String key, out System.Char value, IEnumerable<string> legacyKeyList)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0"
      },
      {
        "signature": "System.Boolean TryGetChar(System.String key, out System.Char value)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "System.Boolean TryGetChild(System.String key, out PersistentSettings value)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Call this method to get a nested settings <b>PersistentSettings</b>  instance, will return True if the key exists and value was set otherwise; will return False and value will be set to null.",
        "since": "6.0",
        "parameters": [
          {
            "name": "key",
            "type": "System.String",
            "summary": "[in] Key name"
          },
          {
            "name": "value",
            "type": "PersistentSettings",
            "summary": "[out] Will be set the child settings if the key is valid otherwise it will be null."
          }
        ],
        "returns": "Returns True if the key exists and value was set otherwise; returns false."
      },
      {
        "signature": "System.Boolean TryGetColor(System.String key, out Color value, IEnumerable<string> legacyKeyList)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0"
      },
      {
        "signature": "System.Boolean TryGetColor(System.String key, out Color? value, IEnumerable<string> legacyKeyList)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "System.Boolean TryGetColor(System.String key, out Color? value)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "System.Boolean TryGetColor(System.String key, out Color value)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "System.Boolean TryGetDate(System.String key, out System.DateTime value, IEnumerable<string> legacyKeyList)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0"
      },
      {
        "signature": "System.Boolean TryGetDate(System.String key, out System.DateTime value)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "System.Boolean TryGetDefault(System.String key, out Color value)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "System.Boolean TryGetDefault(System.String key, out Point3d value)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "System.Boolean TryGetDefault(System.String key, out Rectangle value)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "System.Boolean TryGetDefault(System.String key, out Size value)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "System.Boolean TryGetDefault(System.String key, out System.Boolean value)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "System.Boolean TryGetDefault(System.String key, out System.Byte value)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "System.Boolean TryGetDefault(System.String key, out System.Char value)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "System.Boolean TryGetDefault(System.String key, out System.DateTime value)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "System.Boolean TryGetDefault(System.String key, out System.Double value)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "System.Boolean TryGetDefault(System.String key, out System.Int32 value)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "System.Boolean TryGetDefault(System.String key, out System.String value)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "System.Boolean TryGetDefault(System.String key, out System.String[] value)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "System.Boolean TryGetDouble(System.String key, out System.Double value, IEnumerable<string> legacyKeyList)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0"
      },
      {
        "signature": "System.Boolean TryGetDouble(System.String key, out System.Double value)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "System.Boolean TryGetEnumValue(System.String key, out T enumValue)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Attempt to get the stored value for an enumerated setting using a custom key. Note: the enumerated value ALWAYS gets assigned! Be sure to check for success of this method to prevent erroneous use of the value.",
        "since": "5.4",
        "returns": "True if successful"
      },
      {
        "signature": "System.Boolean TryGetGuid(System.String key, out System.Guid value, IEnumerable<string> legacyKeyList)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0"
      },
      {
        "signature": "System.Boolean TryGetGuid(System.String key, out System.Guid value)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0"
      },
      {
        "signature": "System.Boolean TryGetInteger(System.String key, out System.Int32 value, IEnumerable<string> legacyKeyList)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0"
      },
      {
        "signature": "System.Boolean TryGetInteger(System.String key, out System.Int32 value)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "System.Boolean TryGetPoint(System.String key, out System.Drawing.Point value, IEnumerable<string> legacyKeyList)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0"
      },
      {
        "signature": "System.Boolean TryGetPoint(System.String key, out System.Drawing.Point value)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "System.Boolean TryGetPoint3d(System.String key, out Point3d value, IEnumerable<string> legacyKeyList)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0"
      },
      {
        "signature": "System.Boolean TryGetPoint3d(System.String key, out Point3d value)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "System.Boolean TryGetRectangle(System.String key, out Rectangle value, IEnumerable<string> legacyKeyList)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0"
      },
      {
        "signature": "System.Boolean TryGetRectangle(System.String key, out Rectangle value)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "System.Boolean TryGetSettingIsHiddenFromUserInterface(System.String key, out System.Boolean value, IEnumerable<string> legacyKeyList)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Values read from all users settings files will be marked as read-only which will cause any future calls to Set... to fail.",
        "since": "6.0",
        "parameters": [
          {
            "name": "key",
            "type": "System.String",
            "summary": "Key name for which to search."
          },
          {
            "name": "value",
            "type": "System.Boolean",
            "summary": "Value will be True if the setting is read-only otherwise false. setting."
          },
          {
            "name": "legacyKeyList",
            "type": "IEnumerable<string>",
            "summary": ""
          }
        ]
      },
      {
        "signature": "System.Boolean TryGetSettingIsHiddenFromUserInterface(System.String key, out System.Boolean value)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Values read from all users settings files will be marked as read-only which will cause any future calls to Set... to fail.",
        "since": "6.0",
        "parameters": [
          {
            "name": "key",
            "type": "System.String",
            "summary": "Key name for which to search."
          },
          {
            "name": "value",
            "type": "System.Boolean",
            "summary": "Value will be True if the setting is read-only otherwise false. setting."
          }
        ]
      },
      {
        "signature": "System.Boolean TryGetSettingIsReadOnly(System.String key, out System.Boolean value)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Values read from all users settings files will be marked as read-only which will cause any future calls to Set... to fail.",
        "since": "6.0",
        "parameters": [
          {
            "name": "key",
            "type": "System.String",
            "summary": "Key name for which to search."
          },
          {
            "name": "value",
            "type": "System.Boolean",
            "summary": "Value will be True if the setting is read-only otherwise false. setting."
          }
        ]
      },
      {
        "signature": "System.Boolean TryGetSettingType(System.String key, out System.Type type)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Get the type of the last value passed to Set... or Get... for the specified setting.",
        "since": "6.0",
        "parameters": [
          {
            "name": "key",
            "type": "System.String",
            "summary": "Key name for which to search."
          },
          {
            "name": "type",
            "type": "System.Type",
            "summary": "Type of the last value passed to Set... or Get... for the specified setting."
          }
        ]
      },
      {
        "signature": "System.Boolean TryGetSize(System.String key, out Size value, IEnumerable<string> legacyKeyList)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0"
      },
      {
        "signature": "System.Boolean TryGetSize(System.String key, out Size value)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "System.Boolean TryGetString(System.String key, out System.String value, IEnumerable<string> legacyKeyList)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0"
      },
      {
        "signature": "System.Boolean TryGetString(System.String key, out System.String value)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "System.Boolean TryGetStringDictionary(System.String key, out KeyValuePair<string, string>[] value, IEnumerable<string> legacyKeyList)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "System.Boolean TryGetStringDictionary(System.String key, out KeyValuePair<string, string>[] value)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "System.Boolean TryGetStringList(System.String key, out System.String[] value, IEnumerable<string> legacyKeyList)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0"
      },
      {
        "signature": "System.Boolean TryGetStringList(System.String key, out System.String[] value)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "System.Boolean TryGetUnsignedInteger(System.String key, out System.UInt32 value, IEnumerable<string> legacyKeyList)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0"
      },
      {
        "signature": "System.Boolean TryGetUnsignedInteger(System.String key, out System.UInt32 value)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      }
    ]
  },
  {
    "namespace": "Rhino",
    "name": "PersistentSettingsConverter",
    "dataType": "class",
    "summary": "Used to convert string to string lists and string dictionaries and back to strings again.",
    "constructors": [
      {
        "signature": "PersistentSettingsConverter()",
        "summary": "Initializes a new instance of the PersistentSettingsConverter class"
      }
    ],
    "methods": [
      {
        "signature": "System.Boolean IsStringDictionary(System.String s)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Determines if the string value is formatted as a key value pair string list.",
        "since": "6.0",
        "parameters": [
          {
            "name": "s",
            "type": "System.String",
            "summary": "String to check"
          }
        ],
        "returns": "Returns True if it is a XML key value pair list otherwise return false."
      },
      {
        "signature": "System.Boolean IsStringList(System.String s)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Determines if the string value is formatted as a string list.",
        "since": "6.0",
        "parameters": [
          {
            "name": "s",
            "type": "System.String",
            "summary": "String to check"
          }
        ],
        "returns": "Returns True if it is a XML string list otherwise return false."
      },
      {
        "signature": "System.String ToString(KeyValuePair<string, string>[] value)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Converts a key value string pair array to a properly formatted string dictionary XML string.",
        "parameters": [
          {
            "name": "value",
            "type": "KeyValuePair<string, string>[]",
            "summary": "List of string pairs to turn into a dictionary XML string."
          }
        ],
        "returns": "Returns a properly formatted XML string that represents the string dictionary."
      },
      {
        "signature": "System.String ToString(System.Double value)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Converts a double value to a string.",
        "since": "6.10",
        "parameters": [
          {
            "name": "value",
            "type": "System.Double",
            "summary": "double value"
          }
        ],
        "returns": "Returns the double value as a settings file formatted string."
      },
      {
        "signature": "System.String ToString(System.String[] values)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Converts a string array to a properly formatted string list XML string.",
        "since": "6.0",
        "parameters": [
          {
            "name": "values",
            "type": "System.String[]",
            "summary": "List of strings to turn into a string list XML string."
          }
        ],
        "returns": "Returns a properly formatted XML string that represents the list of strings."
      },
      {
        "signature": "System.Boolean TryParseDouble(System.String s, out System.Double value)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Converts the string representation of a number to its double-precision floating-point number equivalent. A return value indicates whether the conversion succeeded or failed. system culture.",
        "since": "6.10",
        "parameters": [
          {
            "name": "s",
            "type": "System.String",
            "summary": "A string containing a number to convert."
          },
          {
            "name": "value",
            "type": "System.Double",
            "summary": "When this method returns, contains the double-precision floating-point number equivalent of the s parameter, if the conversion succeeded, or zero if the conversion failed. The conversion fails if the s parameter is None or Empty, is not a number in a valid format, or represents a number less than MinValue or greater than MaxValue. This parameter is passed uninitialized; any value originally supplied in result will be overwritten."
          }
        ],
        "returns": "Returns True if s was converted successfully; otherwise, false.."
      },
      {
        "signature": "System.Boolean TryParseEnum(System.Type type, System.String enumValueName, out System.Int32 value)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Converts an enumerated value name to its integer equivalent.",
        "since": "6.0",
        "parameters": [
          {
            "name": "type",
            "type": "System.Type",
            "summary": "The enumerated type"
          },
          {
            "name": "enumValueName",
            "type": "System.String",
            "summary": "Enumerated value name as string"
          },
          {
            "name": "value",
            "type": "System.Int32",
            "summary": "Output value, will get set to -1 on error"
          }
        ],
        "returns": "Returns True if the successfully converted or False if not."
      },
      {
        "signature": "System.Boolean TryParseEnum(System.Type type, System.String intValueAsString, out System.String value)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Converts an enumerated value string (integer as string) to a enumerated value name.",
        "since": "6.0",
        "parameters": [
          {
            "name": "type",
            "type": "System.Type",
            "summary": "The enumerated type"
          },
          {
            "name": "intValueAsString",
            "type": "System.String",
            "summary": "enumerated integer value as string"
          },
          {
            "name": "value",
            "type": "System.String",
            "summary": "Output value, will be None on error"
          }
        ],
        "returns": "Returns True if the successfully converted or False if not."
      },
      {
        "signature": "System.Boolean TryParseStringDictionary(System.String s, out KeyValuePair<string, string>[] value)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Attempts to convert a string to a key value string pair array.",
        "parameters": [
          {
            "name": "s",
            "type": "System.String",
            "summary": "String to parse"
          },
          {
            "name": "value",
            "type": "KeyValuePair<string, string>[]",
            "summary": "Result will get copied here, if the string is None or empty then this will be an empty array, if there was an error parsing then this will be None otherwise it will be the string parsed as a key value string pair array."
          }
        ],
        "returns": "Returns True if the string is not empty and properly formatted as a key value string pair list otherwise returns false."
      },
      {
        "signature": "System.Boolean TryParseStringList(System.String s, out System.String[] value)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Attempts to convert a string to a string value list.",
        "since": "6.0",
        "parameters": [
          {
            "name": "s",
            "type": "System.String",
            "summary": "String to parse"
          },
          {
            "name": "value",
            "type": "System.String[]",
            "summary": "Result will get copied here, if the string is None or empty then this will be an empty list, if there was an error parsing then this will be None otherwise it will be the string parsed as a list."
          }
        ],
        "returns": "Returns True if the string is not empty and properly formatted as a string list otherwise returns false."
      }
    ]
  },
  {
    "namespace": "Rhino",
    "name": "PersistentSettingsEventArgs",
    "dataType": "class",
    "summary": "Represents event data that is passed as state in persistent settings events.",
    "baseclass": "EventArgs",
    "constructors": [
      {
        "signature": "PersistentSettingsEventArgs()",
        "modifiers": ["protected"],
        "protected": true,
        "virtual": false
      }
    ],
    "properties": [
      {
        "signature": "bool Cancel",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0",
        "property": ["get", "set"]
      }
    ]
  },
  {
    "namespace": "Rhino",
    "name": "PersistentSettingsEventArgs<T>",
    "dataType": "class",
    "summary": "Represents the persistent settings modification event arguments.",
    "baseclass": "Rhino.PersistentSettingsEventArgs",
    "constructors": [
      {
        "signature": "PersistentSettingsEventArgs<T>(T currentValue, T newValue)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false
      }
    ],
    "properties": [
      {
        "signature": "T CurrentValue",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "property": ["get", "set"]
      },
      {
        "signature": "T NewValue",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "property": ["get", "set"]
      }
    ]
  },
  {
    "namespace": "Rhino",
    "name": "PersistentSettingsSavedEventArgs",
    "dataType": "class",
    "summary": "Event argument passed to the <b>Rhino.PlugIns.PlugIn.SettingsSaved</b> event.",
    "baseclass": "EventArgs",
    "properties": [
      {
        "signature": "PersistentSettings PlugInSettings",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "The old PlugIn settings",
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "bool SavedByThisRhino",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Will be True if this instance of Rhino is writing the settings file or False if a different instance of Rhino has modified the settings file.",
        "since": "6.0",
        "property": ["get", "set"]
      }
    ],
    "methods": [
      {
        "signature": "PersistentSettings CommandSettings(System.String englishCommandName)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "The new command settings",
        "since": "6.0",
        "parameters": [
          {
            "name": "englishCommandName",
            "type": "System.String",
            "summary": "English command to find settings for"
          }
        ]
      }
    ]
  },
  {
    "namespace": "Rhino.PlugIns",
    "name": "CustomRenderSaveFileTypes",
    "dataType": "class",
    "methods": [
      {
        "signature": "System.Void RegisterFileType(IEnumerable<string> extensions, System.String description, SaveFileHandler saveFileHandler)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Call this method to register a custom file save type with the render output window save dialog.",
        "since": "5.11",
        "parameters": [
          {
            "name": "extensions",
            "type": "IEnumerable<string>",
            "summary": "List of one or more file extension associated with this custom type, for example: HDR, HDRI"
          },
          {
            "name": "description",
            "type": "System.String",
            "summary": "File extension description which appears in the file save dialog file type combo box."
          },
          {
            "name": "saveFileHandler",
            "type": "SaveFileHandler",
            "summary": ""
          }
        ]
      }
    ]
  },
  {
    "namespace": "Rhino.PlugIns",
    "name": "DescriptionType",
    "dataType": "enum",
    "summary": "Rhino plug-in developer information fields.",
    "since": "5.0",
    "values": [
      {
        "signature": "Organization",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Address",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Country",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Phone",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "WebSite",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Email",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "UpdateUrl",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Fax",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Icon",
        "modifiers": [],
        "protected": false,
        "virtual": false
      }
    ]

  },
  {
    "namespace": "Rhino.PlugIns",
    "name": "DigitizerPlugIn",
    "dataType": "class",
    "summary": "A Rhino plug-in that interfaces with 3-D digitizing or input devices.",
    "baseclass": "Rhino.PlugIns.PlugIn",
    "constructors": [
      {
        "signature": "DigitizerPlugIn()",
        "modifiers": ["protected"],
        "protected": true,
        "virtual": false
      }
    ],
    "properties": [
      {
        "signature": "UnitSystem DigitizerUnitSystem",
        "modifiers": ["protected", "abstract"],
        "protected": true,
        "virtual": false,
        "summary": "Unit system of the points the digitizer passes to SendPoint(). Rhino uses this value when it calibrates a digitizer. This unit system must be not change.",
        "property": ["get"]
      },
      {
        "signature": "double PointTolerance",
        "modifiers": ["protected", "abstract"],
        "protected": true,
        "virtual": false,
        "summary": "The point tolerance is the distance the digitizer must move (in digitizer coordinates) for a new point to be considered real rather than noise. Small desktop digitizer arms have values like 0.001 inches and 0.01 millimeters.  This value should never be smaller than the accuracy of the digitizing device.",
        "property": ["get"]
      }
    ],
    "methods": [
      {
        "signature": "System.Boolean EnableDigitizer(System.Boolean enable)",
        "modifiers": ["protected", "abstract"],
        "protected": true,
        "virtual": false,
        "summary": "Called by Rhino to enable/disable input from the digitizer. If enable is True and EnableDigitizer() returns false, then Rhino will not calibrate the digitizer.",
        "parameters": [
          {
            "name": "enable",
            "type": "System.Boolean",
            "summary": "If true, enable the digitizer. If false, disable the digitizer."
          }
        ],
        "returns": "True if the operation succeeded; otherwise, false."
      },
      {
        "signature": "System.Void SendPoint(Geometry.Point3d point, MouseButton mousebuttons, System.Boolean shiftKey, System.Boolean controlKey)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "If the digitizer is enabled, call this function to send a point to Rhino. Call this function as much as you like.  The digitizers that Rhino currently supports send a point every 15 milliseconds or so. This function should be called when users press or release any digitizer button.",
        "since": "6.0",
        "parameters": [
          {
            "name": "point",
            "type": "Geometry.Point3d",
            "summary": "3d point in digitizer coordinates."
          },
          {
            "name": "mousebuttons",
            "type": "MouseButton",
            "summary": "corresponding digitizer button is down."
          },
          {
            "name": "shiftKey",
            "type": "System.Boolean",
            "summary": "True if the Shift keyboard key was pressed. Otherwise, false."
          },
          {
            "name": "controlKey",
            "type": "System.Boolean",
            "summary": "True if the Control keyboard key was pressed. Otherwise, false."
          }
        ]
      },
      {
        "signature": "System.Void SendRay(Geometry.Ray3d ray, MouseButton mousebuttons, System.Boolean shiftKey, System.Boolean controlKey)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "If the digitizer is enabled, call this function to send a point and direction to Rhino. Call this function as much as you like.  The digitizers that Rhino currently supports send a point every 15 milliseconds or so. This function should be called when users press or release any digitizer button.",
        "since": "6.0",
        "parameters": [
          {
            "name": "ray",
            "type": "Geometry.Ray3d",
            "summary": "3d ray in digitizer coordinates."
          },
          {
            "name": "mousebuttons",
            "type": "MouseButton",
            "summary": "corresponding digitizer button is down."
          },
          {
            "name": "shiftKey",
            "type": "System.Boolean",
            "summary": "True if the Shift keyboard key was pressed. Otherwise, false."
          },
          {
            "name": "controlKey",
            "type": "System.Boolean",
            "summary": "True if the Control keyboard key was pressed. Otherwise, false."
          }
        ]
      }
    ]
  },
  {
    "namespace": "Rhino.PlugIns",
    "name": "FileExportPlugIn",
    "dataType": "class",
    "summary": "Rhino plug-in that exports data from Rhino to other file formats; can support more than one format.",
    "baseclass": "Rhino.PlugIns.PlugIn",
    "constructors": [
      {
        "signature": "FileExportPlugIn()",
        "modifiers": ["protected"],
        "protected": true,
        "virtual": false
      }
    ],
    "properties": [
      {
        "signature": "bool ShouldDisplayOptionsDialog",
        "modifiers": ["protected", "virtual"],
        "protected": true,
        "virtual": true,
        "property": ["get"]
      }
    ],
    "methods": [
      {
        "signature": "FileTypeList AddFileTypes(FileIO.FileWriteOptions options)",
        "modifiers": ["protected", "abstract"],
        "protected": true,
        "virtual": false
      },
      {
        "signature": "System.Void DisplayOptionsDialog(System.IntPtr parent, System.String description, System.String extension)",
        "modifiers": ["protected", "virtual"],
        "protected": true,
        "virtual": true
      },
      {
        "signature": "WriteFileResult WriteFile(System.String filename, System.Int32 index, RhinoDoc doc, Rhino.FileIO.FileWriteOptions options)",
        "modifiers": ["protected", "abstract"],
        "protected": true,
        "virtual": false
      }
    ]
  },
  {
    "namespace": "Rhino.PlugIns",
    "name": "FileImportPlugIn",
    "dataType": "class",
    "summary": "Rhino plug-in that imports data from other file formats into Rhino; can support more that one format.",
    "baseclass": "Rhino.PlugIns.PlugIn",
    "constructors": [
      {
        "signature": "FileImportPlugIn()",
        "modifiers": ["protected"],
        "protected": true,
        "virtual": false
      }
    ],
    "methods": [
      {
        "signature": "FileTypeList AddFileTypes(FileIO.FileReadOptions options)",
        "modifiers": ["protected", "abstract"],
        "protected": true,
        "virtual": false
      },
      {
        "signature": "System.Void DisplayOptionsDialog(System.IntPtr parent, System.String description, System.String extension)",
        "modifiers": ["protected", "virtual"],
        "protected": true,
        "virtual": true
      },
      {
        "signature": "System.String MakeReferenceTableName(RhinoDoc doc, System.String nameToPrefix)",
        "modifiers": ["protected"],
        "protected": true,
        "virtual": false
      },
      {
        "signature": "System.String MakeReferenceTableName(System.String nameToPrefix)",
        "modifiers": ["protected"],
        "protected": true,
        "virtual": false,
        "obsolete": "Use MakeReferenceTableName"
      },
      {
        "signature": "System.Boolean ReadFile(System.String filename, System.Int32 index, RhinoDoc doc, FileIO.FileReadOptions options)",
        "modifiers": ["protected", "abstract"],
        "protected": true,
        "virtual": false
      }
    ]
  },
  {
    "namespace": "Rhino.PlugIns",
    "name": "FileTypeList",
    "dataType": "class",
    "constructors": [
      {
        "signature": "FileTypeList()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "FileTypeList(string description, string extension, bool showOptionsButtonInFileDialog)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0"
      },
      {
        "signature": "FileTypeList(string description, string extension)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0"
      }
    ],
    "methods": [
      {
        "signature": "System.Int32 AddFileType(System.String description, IEnumerable<string> extensions, System.Boolean showOptionsButtonInFileDialog)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0"
      },
      {
        "signature": "System.Int32 AddFileType(System.String description, IEnumerable<string> extensions)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "System.Int32 AddFileType(System.String description, System.String extension, System.Boolean showOptionsButtonInFileDialog)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0"
      },
      {
        "signature": "System.Int32 AddFileType(System.String description, System.String extension1, System.String extension2, System.Boolean showOptionsButtonInFileDialog)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0"
      },
      {
        "signature": "System.Int32 AddFileType(System.String description, System.String extension1, System.String extension2)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "System.Int32 AddFileType(System.String description, System.String extension)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      }
    ]
  },
  {
    "namespace": "Rhino.PlugIns",
    "name": "LicenseBuildType",
    "dataType": "enum",
    "summary": "License build contentType enumerations.",
    "since": "5.0",
    "values": [
      {
        "signature": "Unspecified = 0",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "An unspecified build"
      },
      {
        "signature": "Release = 100",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "A release build (e.g. commercial, education, NFR, etc.)"
      },
      {
        "signature": "Evaluation = 200",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "A evaluation build"
      },
      {
        "signature": "Beta = 300",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "A beta build (e.g. WIP)"
      }
    ]

  },
  {
    "namespace": "Rhino.PlugIns",
    "name": "LicenseCapabilities",
    "dataType": "enum",
    "summary": "Controls the buttons that will appear on the license notification window that is displayed if a license for the requesting product is not found. Note, the \"Close\" button will always be displayed.",
    "since": "5.5",
    "values": [
      {
        "signature": "NoCapabilities = 0x0",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Only the \"Close\" button will be displayed"
      },
      {
        "signature": "CanBePurchased = 0x1",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Shows \"Buy a license\" button"
      },
      {
        "signature": "CanBeSpecified = 0x2",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "OBSOLETE: Shows \"\"Enter a license\" and \"Use a Zoo\" buttons. Use SupportsStandalone | SupportsZoo instead."
      },
      {
        "signature": "CanBeEvaluated = 0x4",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Shows \"Evaluate\" button"
      },
      {
        "signature": "EvaluationIsExpired = 0x8",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Shows \"Evaluate\" button disabled"
      },
      {
        "signature": "SupportsRhinoAccounts = 0x10",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Supports getting a license from a Cloud Zoo / Rhino Account"
      },
      {
        "signature": "SupportsStandalone = 0x20",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Supports single-computer licensing"
      },
      {
        "signature": "SupportsZooPerUser = 0x40",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Supports getting a license from a Zoo server"
      },
      {
        "signature": "SupportsZooPerCore = 0x80",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Supports getting a license from a Zoo server"
      },
      {
        "signature": "SupportsLicenseDiscovery = 0x100",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Supports license discovery API flow"
      }
    ]

  },
  {
    "namespace": "Rhino.PlugIns",
    "name": "LicenseChangedEventArgs",
    "dataType": "class",
    "baseclass": "EventArgs"
  },
  {
    "namespace": "Rhino.PlugIns",
    "name": "LicenseData",
    "dataType": "class",
    "summary": "Zoo plug-in license data.",
    "constructors": [
      {
        "signature": "LicenseData()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Public constructor.",
        "since": "5.0"
      },
      {
        "signature": "LicenseData(string productLicense, string serialNumber, string licenseTitle, LicenseBuildType buildType, int licenseCount, DateTime? expirationDate, Icon productIcon, bool requiresOnlineValidation, bool isUpgradeFromPreviousVersion)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Public constructor",
        "parameters": [
          {
            "name": "productLicense",
            "type": "System.String",
            "summary": "License string to be saved by ZooClient"
          },
          {
            "name": "serialNumber",
            "type": "System.String",
            "summary": "Serial number to be displayed to end user"
          },
          {
            "name": "licenseTitle",
            "type": "System.String",
            "summary": "Title of license (Rhino 6.0 Evaluation)"
          },
          {
            "name": "buildType",
            "type": "LicenseBuildType",
            "summary": "A LicenseBuildType value"
          },
          {
            "name": "licenseCount",
            "type": "System.Int32",
            "summary": "Number of licenses represented by this string. Allows the Zoo to hand out multiple license keys when greater than 1."
          },
          {
            "name": "expirationDate",
            "type": "DateTime?",
            "summary": "Date when license expires, None if license never expires."
          },
          {
            "name": "productIcon",
            "type": "Icon",
            "summary": "Icon to display in Rhino License Options user interface when showing this license"
          },
          {
            "name": "requiresOnlineValidation",
            "type": "System.Boolean",
            "summary": "True if online validation server should be called with this license key; False otherwise. If true, caller must pass implementation of VerifyOnlineValidationCodeDelegate to GetLicense/AskUserForLicense"
          },
          {
            "name": "isUpgradeFromPreviousVersion",
            "type": "System.Boolean",
            "summary": "True if this license key requires a previous version license; False otherwise. If true, caller must pass implementation of VerifyPreviousVersionLicenseDelegate to GetLicense/AskUserForLicense"
          }
        ]
      },
      {
        "signature": "LicenseData(string productLicense, string serialNumber, string licenseTitle, LicenseBuildType buildType, int licenseCount, DateTime? expirationDate, Icon productIcon)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Public constructor",
        "parameters": [
          {
            "name": "productLicense",
            "type": "System.String",
            "summary": "License string to be saved by ZooClient"
          },
          {
            "name": "serialNumber",
            "type": "System.String",
            "summary": "Serial number to be displayed to end user"
          },
          {
            "name": "licenseTitle",
            "type": "System.String",
            "summary": "Title of license (Rhino 6.0 Evaluation)"
          },
          {
            "name": "buildType",
            "type": "LicenseBuildType",
            "summary": "A LicenseBuildType value"
          },
          {
            "name": "licenseCount",
            "type": "System.Int32",
            "summary": "Number of licenses represented by this string. Allows the Zoo to hand out multiple license keys when greater than 1."
          },
          {
            "name": "expirationDate",
            "type": "DateTime?",
            "summary": "Date when license expires, None if license never expires."
          },
          {
            "name": "productIcon",
            "type": "Icon",
            "summary": "Icon to display in Rhino License Options user interface when showing this license"
          }
        ]
      },
      {
        "signature": "LicenseData(string productLicense, string serialNumber, string licenseTitle, LicenseBuildType buildType, int licenseCount, DateTime? expirationDate)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Public constructor",
        "parameters": [
          {
            "name": "productLicense",
            "type": "System.String",
            "summary": "License string to be saved by ZooClient"
          },
          {
            "name": "serialNumber",
            "type": "System.String",
            "summary": "Serial number to be displayed to end user"
          },
          {
            "name": "licenseTitle",
            "type": "System.String",
            "summary": "Title of license (Rhino 6.0 Evaluation)"
          },
          {
            "name": "buildType",
            "type": "LicenseBuildType",
            "summary": "A LicenseBuildType value"
          },
          {
            "name": "licenseCount",
            "type": "System.Int32",
            "summary": "Number of licenses represented by this string. Allows the Zoo to hand out multiple license keys when greater than 1."
          },
          {
            "name": "expirationDate",
            "type": "DateTime?",
            "summary": "Date when license expires, None if license never expires."
          }
        ]
      },
      {
        "signature": "LicenseData(string productLicense, string serialNumber, string licenseTitle, LicenseBuildType buildType, int licenseCount)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Public constructor",
        "since": "5.0",
        "parameters": [
          {
            "name": "productLicense",
            "type": "System.String",
            "summary": "License string to be saved by ZooClient"
          },
          {
            "name": "serialNumber",
            "type": "System.String",
            "summary": "Serial number to be displayed to end user"
          },
          {
            "name": "licenseTitle",
            "type": "System.String",
            "summary": "Title of license (Rhino 6.0 Evaluation)"
          },
          {
            "name": "buildType",
            "type": "LicenseBuildType",
            "summary": "A LicenseBuildType value"
          },
          {
            "name": "licenseCount",
            "type": "System.Int32",
            "summary": "Number of licenses represented by this string. Allows the Zoo to hand out multiple license keys when greater than 1."
          }
        ]
      },
      {
        "signature": "LicenseData(string productLicense, string serialNumber, string licenseTitle, LicenseBuildType buildType)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Public constructor",
        "since": "5.0",
        "parameters": [
          {
            "name": "productLicense",
            "type": "System.String",
            "summary": "License string to be saved by ZooClient"
          },
          {
            "name": "serialNumber",
            "type": "System.String",
            "summary": "Serial number to be displayed to end user"
          },
          {
            "name": "licenseTitle",
            "type": "System.String",
            "summary": "Title of license (Rhino 6.0 Evaluation)"
          },
          {
            "name": "buildType",
            "type": "LicenseBuildType",
            "summary": "A LicenseBuildType value"
          }
        ]
      },
      {
        "signature": "LicenseData(string productLicense, string serialNumber, string licenseTitle)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Public constructor",
        "since": "5.0",
        "parameters": [
          {
            "name": "productLicense",
            "type": "System.String",
            "summary": "License string to be saved by ZooClient"
          },
          {
            "name": "serialNumber",
            "type": "System.String",
            "summary": "Serial number to be displayed to end user"
          },
          {
            "name": "licenseTitle",
            "type": "System.String",
            "summary": "Title of license (Rhino 6.0 Evaluation)"
          }
        ]
      }
    ],
    "properties": [
      {
        "signature": "LicenseBuildType BuildType",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "The build of the product that this license work with. When your product requests a license from the Zoo, it will specify one of these build types.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "DateTime? DateToExpire",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "The date and time the license is set to expire. This is provided by the plug in that validated the license. This time value should be in Coordinated Universal Time (UTC).",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "string ErrorMessage",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Error message set by calls to callback functions",
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool IsUpgradeFromPreviousVersion",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Set to True if this license requires a previous version license to be entered. Caller must also pass VerifyPreviousVersionLicenseDelegate to GetLicense/AskUserForLicense.",
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "int LicenseCount",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "The number of instances supported by this license. This is provided by the plug in that validated the license.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool LicenseExpires",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "string LicenseTitle",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "The title of the license. This is provided by the plug-in that validated the license. (e.g. \"Rhinoceros 6.0 Commercial\")",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "Icon ProductIcon",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "The product's icon. This will displayed in the \"license\" page in the Options dialog. Note, this can be null. Note, LicenseData creates it's own copy of the icon.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "string ProductLicense",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "The actual product license. This is provided by the plug-in that validated the license.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool RequiresOnlineValidation",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Set to True if this license requires online validation. Caller must also pass VerifyOnlineValidationCodeDelegate to GetLicense/AskUserForLicense",
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "string SerialNumber",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "The \"for display only\" product license. This is provided by the plug-in that validated the license.",
        "since": "5.0",
        "property": ["get", "set"]
      }
    ],
    "methods": [
      {
        "signature": "System.Boolean IsNotValid(LicenseData data)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Indicates whether a LicenseData object is either None or invalid.",
        "since": "5.0"
      },
      {
        "signature": "System.Boolean IsValid(LicenseData data)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Indicates whether a LicenseData object is not None and valid.",
        "since": "5.0"
      },
      {
        "signature": "System.Void Dispose()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "System.Boolean IsValid()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Public validator.",
        "since": "5.0"
      },
      {
        "signature": "System.Boolean IsValid(System.Boolean ignoreExpirationDate)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0"
      }
    ]
  },
  {
    "namespace": "Rhino.PlugIns",
    "name": "LicenseIdAttribute",
    "dataType": "class",
    "baseclass": "Attribute",
    "constructors": [
      {
        "signature": "LicenseIdAttribute(string value)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0"
      }
    ],
    "properties": [
      {
        "signature": "string Value",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get"]
      }
    ]
  },
  {
    "namespace": "Rhino.PlugIns",
    "name": "LicenseLease",
    "dataType": "class",
    "summary": "LicenseLease represents a lease returned from the Cloud Zoo",
    "constructors": [
      {
        "signature": "LicenseLease(IntPtr unmanagedPointer)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0"
      },
      {
        "signature": "LicenseLease(string productId, string groupName, string groupId, string userName, string userId, string productTitle, string productVersion, string productEdition, string leaseId, DateTime iat, DateTime exp, DateTime renewable_until)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.4"
      },
      {
        "signature": "LicenseLease(string productId, string groupName, string groupId, string userName, string userId, string productTitle, string productVersion, string productEdition, string leaseId, DateTime iat, DateTime exp)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0"
      }
    ],
    "properties": [
      {
        "signature": "DateTime Expiration",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "The date when this lease will expire",
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "string GroupId",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "ID of Rhino Accounts group that this lease came from",
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "string GroupName",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Name of Rhino Accounts group that this lease came from",
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "DateTime IssuedAt",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "The date this lease was issued",
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "string LeaseId",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "The ID of this lease.",
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "string ProductEdition",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Edition of product that this lease is issued to. For example, \"Commercial\" or \"Beta\"",
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "string ProductId",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "The ID of the product that this lease is issued to",
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "string ProductTitle",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Title of product that this lease is issued to. For example, \"Rhino 6\"",
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "string ProductVersion",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Version of product that this lease is issued to. For example, \"6.0\"",
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "DateTime? RenewableUntil",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "The date when the license in the cloud zoo entity will expire, if any",
        "since": "7.25",
        "property": ["get"]
      },
      {
        "signature": "string UserId",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "ID of Rhino Accounts user that was logged in when this lease was obtained",
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "string UserName",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Name of Rhino Accounts user that was logged in when this lease was obtained",
        "since": "6.0",
        "property": ["get"]
      }
    ]
  },
  {
    "namespace": "Rhino.PlugIns",
    "name": "LicenseLeaseChangedEventArgs",
    "dataType": "class",
    "summary": "Arguments for OnLeaseChangedDelegate",
    "constructors": [
      {
        "signature": "LicenseLeaseChangedEventArgs(LicenseLease lease)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0"
      }
    ],
    "properties": [
      {
        "signature": "LicenseLease Lease",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "The lease returned by Rhino Accounts server",
        "since": "6.0",
        "property": ["get"]
      }
    ]
  },
  {
    "namespace": "Rhino.PlugIns",
    "name": "LicenseStatus",
    "dataType": "class",
    "summary": "LicenseStatus class.",
    "constructors": [
      {
        "signature": "LicenseStatus()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Public constructor.",
        "since": "5.0"
      }
    ],
    "properties": [
      {
        "signature": "LicenseBuildType BuildType",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "The build contentType of the product, where: 100 = A release build, either commercial, education, NFR, etc. 200 = A evaluation build 300 = A beta build, such as a WIP.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "DateTime? CheckOutExpirationDate",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "The date and time the checked out license will expire. Note, this is only set if m_license_type = Standalone or CloudZoo and if \"limited license checkout\" was enabled on the Zoo server in the case of Standalone. Note, date and time is in local time coordinates.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "DateTime? CloudZooLeaseExpiration",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns the expiration date of the lease this instance represents.",
        "since": "6.4",
        "property": ["get", "set"]
      },
      {
        "signature": "bool CloudZooLeaseIsValid",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns True if the Cloud Zoo Lease represented by this instance is actively being managed by the Cloud Zoo Manager; else returns false.",
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "DateTime? ExpirationDate",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "The date and time the license will expire. This value can be None if: 1.) The license contentType is \"Standalone\" and the license does not expire. 2.) The license contentType is \"Network\". 3.) The license contentType is \"NetworkCheckedOut\" and the checkout does not expire Note, date and time is in local time coordinates.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "string LicenseTitle",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "The title of the license. (e.g. \"Rhinoceros 6.0 Commercial\")",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "LicenseType LicenseType",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "The license contentType. (e.g. Standalone, Network, etc.)",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "Guid PluginId",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "The ID of the plug-in that owns this license information",
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "Icon ProductIcon",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "The product's icon. Note, this can be null.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "Guid ProductId",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "The id of the product or plug in.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "string RegisteredOrganization",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "The registered organization of the product (e.g. \"Robert McNeel and Associates\")",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "string RegisteredOwner",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "The registered owner of the product. (e.g. \"Dale Fugier\")",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "string SerialNumber",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "The \"for display only\" product license or serial number.",
        "since": "5.0",
        "property": ["get", "set"]
      }
    ]
  },
  {
    "namespace": "Rhino.PlugIns",
    "name": "LicenseType",
    "dataType": "enum",
    "summary": "LicenseType enumeration.",
    "since": "5.0",
    "values": [
      {
        "signature": "Standalone",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "A standalone license"
      },
      {
        "signature": "Network",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "A network license that has not been fulfilled by a Zoo"
      },
      {
        "signature": "NetworkLoanedOut",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "A license on temporary loan from a Zoo"
      },
      {
        "signature": "NetworkCheckedOut",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "A license on permanent check out from a Zoo"
      },
      {
        "signature": "CloudZoo",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "A lease granted by the Cloud Zoo"
      }
    ]

  },
  {
    "namespace": "Rhino.PlugIns",
    "name": "LicenseUtils",
    "dataType": "class",
    "summary": "License Manager Utilities.",
    "constructors": [
      {
        "signature": "LicenseUtils()",
        "summary": "Initializes a new instance of the LicenseUtils class"
      }
    ],
    "methods": [
      {
        "signature": "System.Boolean AskUserForLicense(System.Int32 productType, System.Boolean standAlone, System.Object parentWindow, System.String textMask, ValidateProductKeyDelegate validateProductKeyDelegate, OnLeaseChangedDelegate onLeaseChangedDelegate, System.String product_path, System.String product_title, System.Guid pluginId, System.Guid licenseId, LicenseCapabilities capabilities)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "This version of Rhino.PlugIns.LicenseUtils.AskUserForLicense is used by Rhino C++ plug-ins.",
        "since": "6.0"
      },
      {
        "signature": "System.Boolean AskUserForLicense(System.Int32 productType, System.Boolean standAlone, System.Object parentWindow, System.String textMask, ValidateProductKeyDelegate validateProductKeyDelegate, OnLeaseChangedDelegate onLeaseChangedDelegate, VerifyLicenseKeyDelegate verifyLicenseKeyDelegate, VerifyPreviousVersionLicenseDelegate verifyPreviousVersionLicenseKeyDelegate, System.String product_path, System.String product_title, System.Guid pluginId, System.Guid licenseId, LicenseCapabilities capabilities)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "6.0"
      },
      {
        "signature": "System.Boolean CheckInLicense(System.Guid productId)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Checks in a previously checked out license to the Zoo server from which it was checked out.",
        "since": "5.0",
        "parameters": [
          {
            "name": "productId",
            "type": "System.Guid",
            "summary": "The Guid of the product that you want to check in."
          }
        ],
        "returns": "True if the license was checked in successful. False if not successful or on error."
      },
      {
        "signature": "System.Boolean CheckOutLicense(System.Guid productId)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Checks out a license that is on loan from a Zoo server on a permanent basis.",
        "since": "5.0",
        "parameters": [
          {
            "name": "productId",
            "type": "System.Guid",
            "summary": "The Guid of the product that you want to check out."
          }
        ],
        "returns": "True if the license was checked out successful. False if not successful or on error."
      },
      {
        "signature": "System.Boolean ConvertLicense(System.Guid productId)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Converts a product license from a standalone node to a network node.",
        "since": "5.0",
        "parameters": [
          {
            "name": "productId",
            "type": "System.Guid",
            "summary": "The Guid of the product that you want to check in."
          }
        ],
        "returns": "True if the license was successfully converted. False if not successful or on error."
      },
      {
        "signature": "System.Boolean DeleteLicense(System.Guid productId)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Deletes a license along with its license file.",
        "since": "6.0"
      },
      {
        "signature": "System.String Echo(System.String message)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Test connectivity with the Zoo.",
        "since": "5.0"
      },
      {
        "signature": "System.Boolean GetLicense(ValidateProductKeyDelegate validateProductKeyDelegate, OnLeaseChangedDelegate leaseChangedDelegate, System.Int32 product_type, System.Int32 capabilities, System.String textMask, System.String product_path, System.String product_title, System.Guid pluginId, System.Guid licenseId)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "This version of Rhino.PlugIns.LicenseUtils.GetLicense is used by Rhino C++ plug-ins.",
        "since": "6.0"
      },
      {
        "signature": "System.Boolean GetLicense(ValidateProductKeyDelegate validateProductKeyDelegate, OnLeaseChangedDelegate leaseChangedDelegate, VerifyLicenseKeyDelegate verifyLicenseKeyDelegate, VerifyPreviousVersionLicenseDelegate verifyPreviousVersionLicenseKeyDelegate, System.Int32 product_type, System.Int32 capabilities, System.String textMask, System.String product_path, System.String product_title, System.Guid pluginId, System.Guid licenseId)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "6.0"
      },
      {
        "signature": "LicenseCapabilities GetLicenseCapabilities(System.Int32 filter)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Converts an integer to a LicenseCapabilities flag",
        "since": "5.5"
      },
      {
        "signature": "LicenseStatus[] GetLicenseStatus()",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Returns the current status of every license for UI purposes.",
        "since": "5.0"
      },
      {
        "signature": "System.Int32 GetLicenseType(System.Guid productId)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Returns the contentType of a specified product license",
        "since": "5.0"
      },
      {
        "signature": "LicenseStatus GetOneLicenseStatus(System.Guid productid)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Returns the current status of a license for UI purposes.",
        "since": "5.5"
      },
      {
        "signature": "System.Boolean Initialize()",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Initializes the license manager.",
        "since": "5.0"
      },
      {
        "signature": "System.Boolean IsCheckOutEnabled()",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Returns whether or not license checkout is enabled.",
        "since": "5.0"
      },
      {
        "signature": "System.Boolean LicenseOptionsHandler(System.Guid pluginId, System.Guid licenseId, System.String productTitle, System.Boolean standAlone)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "6.0"
      },
      {
        "signature": "System.Boolean LoginToCloudZoo()",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "6.0"
      },
      {
        "signature": "System.Boolean LogoutOfCloudZoo()",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "6.0"
      },
      {
        "signature": "System.Boolean ReturnLicense(System.Guid productId)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "OBSOLETE - REMOVE WHEN POSSIBLE.",
        "since": "5.0"
      },
      {
        "signature": "System.Void ShowBuyLicenseUi(System.Guid productId)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "5.5"
      },
      {
        "signature": "System.Boolean ShowLicenseValidationUi(System.String cdkey)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "ShowLicenseValidationUi",
        "since": "5.0"
      },
      {
        "signature": "System.Boolean ShowRhinoExpiredMessage(Rhino.Runtime.Mode mode, ref System.Int32 result)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Show Rhino or Beta expired message",
        "since": "6.0"
      }
    ]
  },
  {
    "namespace": "Rhino.PlugIns",
    "name": "LoadPlugInResult",
    "dataType": "enum",
    "summary": "Result of attempting to load a plug-in",
    "since": "6.0",
    "values": [
      {
        "signature": "Success",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Successfully loaded"
      },
      {
        "signature": "SuccessAlreadyLoaded",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "ErrorUnknown",
        "modifiers": [],
        "protected": false,
        "virtual": false
      }
    ]

  },
  {
    "namespace": "Rhino.PlugIns",
    "name": "LoadReturnCode",
    "dataType": "enum",
    "summary": "Rhino plug-in loading return codes.",
    "since": "5.0",
    "values": [
      {
        "signature": "Success = 1",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "ErrorShowDialog = 0",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "ErrorNoDialog = -1",
        "modifiers": [],
        "protected": false,
        "virtual": false
      }
    ]

  },
  {
    "namespace": "Rhino.PlugIns",
    "name": "PlugIn",
    "dataType": "class",
    "summary": "A general purpose utility plug-in that can contain one or more commands.",
    "constructors": [
      {
        "signature": "PlugIn()",
        "modifiers": ["protected"],
        "protected": true,
        "virtual": false
      }
    ],
    "properties": [
      {
        "signature": "bool AskOnLoadProtection",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "If true, Rhino will display a warning dialog when load-protected plug-ins are attempting to load. If false, load-protected plug-ins will silently not load.",
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "int InstalledPlugInCount",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Returns the number of installed Rhino plug-ins.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "bool AddToHelpMenu",
        "modifiers": ["public", "virtual"],
        "protected": false,
        "virtual": true,
        "summary": "Called by Rhino to determine if the plug-in name should be added to the Rhino Help/Plug-ins menu.",
        "since": "8.7",
        "property": ["get"]
      },
      {
        "signature": "Assembly Assembly",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Source assembly for this plug-in.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "string Description",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns the description of the plug-in, as found in the plug-in's assembly attributes.",
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "Guid Id",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns the Guid, or unique Id, of the plug-in.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "Guid LicenseId",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "bool LoadAtStartup",
        "modifiers": ["public", "virtual"],
        "protected": false,
        "virtual": true,
        "since": "5.0",
        "obsolete": "Use LoadTime virtual property instead",
        "property": ["get"]
      },
      {
        "signature": "PlugInLoadTime LoadTime",
        "modifiers": ["public", "virtual"],
        "protected": false,
        "virtual": true,
        "summary": "Plug-ins are typically loaded on demand when they are first needed. You can change this behavior to load the plug-in at during different stages in time by overriding this property.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "string LocalPlugInName",
        "modifiers": ["virtual", "protected"],
        "protected": true,
        "virtual": true,
        "summary": "Optionally override this to provide a localized plug-in name",
        "property": ["get"]
      },
      {
        "signature": "string Name",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns the name of the plug-in, as found in the plug-in's assembly attributes.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "PersistentSettings Settings",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Persistent plug-in settings.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "string SettingsDirectory",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Get the plug-in's settings directory. This is the directory where the plug-in's persistent settings files are saved. This directory will be located in the user's profile folder. Note, this does not verify the directory exists.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "string SettingsDirectoryAllUsers",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Get the plug-in's \"all users\" settings directory. This directory will be located in the system's program data folder. Note, this does not verify the directory exists.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "string Version",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns the version of the plug-in, as found in the plug-in's assembly attributes.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "PersistentSettings WindowPositionSettings",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get"]
      }
    ],
    "methods": [
      {
        "signature": "PlugIn Find(System.Guid plugInId)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Finds the plug-in instance that was loaded from a given plug-in Id.",
        "since": "5.5",
        "parameters": [
          {
            "name": "plugInId",
            "type": "System.Guid",
            "summary": "The plug-in Id."
          }
        ],
        "returns": "The plug-in instance if successful. Otherwise, null."
      },
      {
        "signature": "PlugIn Find(System.Reflection.Assembly pluginAssembly)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Finds the plug-in instance that was loaded from a given assembly.",
        "since": "5.0",
        "parameters": [
          {
            "name": "pluginAssembly",
            "type": "System.Reflection.Assembly",
            "summary": "The plug-in assembly.  \nYou can get the assembly instance at runtime with the  instance property."
          }
        ],
        "returns": "The assembly plug-in instance if successful. Otherwise, null."
      },
      {
        "signature": "System.Void FlushSettingsSavedQueue()",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "6.0"
      },
      {
        "signature": "System.String[] GetEnglishCommandNames(System.Guid pluginId)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Gets names of all \"non-test\" commands for a given plug-in.",
        "since": "5.0",
        "parameters": [
          {
            "name": "pluginId",
            "type": "System.Guid",
            "summary": "The plug-in ID."
          }
        ],
        "returns": "An array with all plug-in names. This can be empty, but not null."
      },
      {
        "signature": "System.String[] GetInstalledPlugInFolders()",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "System.String[] GetInstalledPlugInNames()",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Returns the names of all installed Rhino plug-ins.",
        "since": "5.0",
        "returns": "The names if successful."
      },
      {
        "signature": "System.String[] GetInstalledPlugInNames(PlugInType typeFilter, System.Boolean loaded, System.Boolean unloaded, System.Boolean localizedPlugInName)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Gets a list of installed plug-in names.  The list can be restricted by some filters.",
        "since": "7.5",
        "parameters": [
          {
            "name": "typeFilter",
            "type": "PlugInType",
            "summary": "The enumeration flags that determine which types of plug-ins are included."
          },
          {
            "name": "loaded",
            "type": "System.Boolean",
            "summary": "True if loaded plug-ins are returned."
          },
          {
            "name": "unloaded",
            "type": "System.Boolean",
            "summary": "True if unloaded plug-ins are returned."
          },
          {
            "name": "localizedPlugInName",
            "type": "System.Boolean",
            "summary": "If True localized plug-in names are returned otherwise; English names are returned."
          }
        ],
        "returns": "An array of installed plug-in names. This can be empty, but not null."
      },
      {
        "signature": "System.String[] GetInstalledPlugInNames(PlugInType typeFilter, System.Boolean loaded, System.Boolean unloaded)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Gets a list of installed plug-in names.  The list can be restricted by some filters.",
        "since": "5.0",
        "parameters": [
          {
            "name": "typeFilter",
            "type": "PlugInType",
            "summary": "The enumeration flags that determine which types of plug-ins are included."
          },
          {
            "name": "loaded",
            "type": "System.Boolean",
            "summary": "True if loaded plug-ins are returned."
          },
          {
            "name": "unloaded",
            "type": "System.Boolean",
            "summary": "True if unloaded plug-ins are returned."
          }
        ],
        "returns": "An array of installed plug-in names. This can be empty, but not null."
      },
      {
        "signature": "Dictionary<Guid, string> GetInstalledPlugIns()",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Get a list of all registered plug-in's regardless of if they are loaded or not.",
        "since": "5.0",
        "returns": "Dictionary with plug-in ID as key and localized plug-in name as value"
      },
      {
        "signature": "Dictionary<Guid, string> GetInstalledPlugIns(System.Boolean localizedPlugInName)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Get a list of all registered plug-in's regardless of if they are loaded or not.",
        "since": "7.5",
        "parameters": [
          {
            "name": "localizedPlugInName",
            "type": "System.Boolean",
            "summary": "If True then the localize plug-in name is returned otherwise; the English name is used."
          }
        ],
        "returns": "Dictionary with plug-in ID as key and plug-in name as value"
      },
      {
        "signature": "System.Boolean GetLoadProtection(System.Guid pluginId, out System.Boolean loadSilently)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Get load protection state for a plug-in",
        "since": "5.5"
      },
      {
        "signature": "PlugInInfo GetPlugInInfo(System.Guid pluginId)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Returns detailed information about an installed Rhino plug-in.",
        "since": "6.0",
        "parameters": [
          {
            "name": "pluginId",
            "type": "System.Guid",
            "summary": "The id of the plug-in."
          }
        ],
        "returns": "Detailed information about an installed Rhino plug-in if successful, None otherwise."
      },
      {
        "signature": "PersistentSettings GetPluginSettings(System.Guid plugInId, System.Boolean load)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "6.0"
      },
      {
        "signature": "System.Guid IdFromFileName(System.String filename)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Attempt to get a plugiin id from just the filename of a plug-in",
        "since": "8.15",
        "parameters": [
          {
            "name": "filename",
            "type": "System.String",
            "summary": "plug-in filename"
          }
        ],
        "returns": "id on success; Guid.Empty if no plug-in could be found"
      },
      {
        "signature": "System.Guid IdFromName(System.String pluginName)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the id of an installed plug-in giving the plug-in's name.",
        "since": "5.5",
        "parameters": [
          {
            "name": "pluginName",
            "type": "System.String",
            "summary": "The name of the installed plug-in."
          }
        ],
        "returns": "The id if successful."
      },
      {
        "signature": "System.Guid IdFromPath(System.String pluginPath)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the id of an installed plug-in giving the plug-in's file path.",
        "since": "5.0",
        "parameters": [
          {
            "name": "pluginPath",
            "type": "System.String",
            "summary": "The path to the installed plug-in."
          }
        ],
        "returns": "The id if successful."
      },
      {
        "signature": "System.Void LoadComputeExtensionPlugins()",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Used by compute's startup code to load plug-ins that have registered custom endpoints",
        "since": "7.0"
      },
      {
        "signature": "System.Boolean LoadPlugIn(System.Guid pluginId, System.Boolean loadQuietly, System.Boolean forceLoad)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Loads an installed plug-in.",
        "since": "6.0",
        "parameters": [
          {
            "name": "pluginId",
            "type": "System.Guid",
            "summary": "The id of the installed plug-in."
          },
          {
            "name": "loadQuietly",
            "type": "System.Boolean",
            "summary": "Load the plug-in quietly."
          },
          {
            "name": "forceLoad",
            "type": "System.Boolean",
            "summary": "Load plug-in even if previous attempt to load has failed."
          }
        ],
        "returns": "True if successful, False otherwise."
      },
      {
        "signature": "System.Boolean LoadPlugIn(System.Guid pluginId)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Loads an installed plug-in.",
        "since": "5.0",
        "parameters": [
          {
            "name": "pluginId",
            "type": "System.Guid",
            "summary": "The id of the installed plug-in."
          }
        ],
        "returns": "True if successful, False otherwise."
      },
      {
        "signature": "LoadPlugInResult LoadPlugIn(System.String path, out System.Guid plugInId)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Attempt to load a plug-in at a path. Loaded plug-ins are remembered by Rhino between sessions, so this function can also be considered a plug-in installation routine",
        "since": "6.0",
        "parameters": [
          {
            "name": "path",
            "type": "System.String",
            "summary": "full path to plug-in to attempt to load"
          },
          {
            "name": "plugInId",
            "type": "System.Guid",
            "summary": "If successful (or the plug-in is already loaded), the unique id for the plug-in is returned here. Guid.Empty on failure"
          }
        ]
      },
      {
        "signature": "System.String NameFromPath(System.String pluginPath)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Gets a plug-in name for an installed plug-in given the path to that plug-in.",
        "since": "5.0",
        "parameters": [
          {
            "name": "pluginPath",
            "type": "System.String",
            "summary": "The path of the plug-in."
          }
        ],
        "returns": "The plug-in name."
      },
      {
        "signature": "System.String PathFromId(System.Guid pluginId)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the path to an installed plug-in given the id of that plug-in",
        "since": "5.9"
      },
      {
        "signature": "System.String PathFromName(System.String pluginName)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the path to an installed plug-in given the name of that plug-in",
        "since": "5.9"
      },
      {
        "signature": "System.Boolean PlugInExists(System.Guid id, out System.Boolean loaded, out System.Boolean loadProtected)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Verifies that a Rhino plug-in is installed.",
        "since": "5.0",
        "parameters": [
          {
            "name": "id",
            "type": "System.Guid",
            "summary": "The id of the plug-in."
          },
          {
            "name": "loaded",
            "type": "System.Boolean",
            "summary": "The loaded state of the plug-in."
          },
          {
            "name": "loadProtected",
            "type": "System.Boolean",
            "summary": "The load protected state of the plug-in."
          }
        ],
        "returns": "Returns True if the plug-in exists, or is installed."
      },
      {
        "signature": "System.Void RaiseOnPlugInSettingsSavedEvent()",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Raise any pending OnPlugInSettingsSaved events, the events are normally queued while a command is running and fired while Rhino is in an idle state.  Calling this method will raise any pending changed events regardless of Rhino's current idle state or if a command is running.",
        "since": "6.0"
      },
      {
        "signature": "System.Void SavePluginSettings(System.Guid plugInId)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "6.0"
      },
      {
        "signature": "System.Void SetLoadProtection(System.Guid pluginId, System.Boolean loadSilently)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Set load protection state for a certain plug-in",
        "since": "5.5"
      },
      {
        "signature": "System.Boolean AskUserForLicense(LicenseBuildType productBuildType, System.Boolean standAlone, System.String textMask, System.Object parentWindow, ValidateProductKeyDelegate validateProductKeyDelegate, OnLeaseChangedDelegate onLeaseChangedDelegate)",
        "modifiers": ["protected"],
        "protected": true,
        "virtual": false
      },
      {
        "signature": "PersistentSettings CommandSettings(System.String name)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "System.Void CreateCommands()",
        "modifiers": ["protected", "virtual"],
        "protected": true,
        "virtual": true,
        "summary": "Called right after plug-in is created and is responsible for creating all of the commands in a given plug-in.  The base class implementation Constructs an instance of every publicly exported command class in your plug-in's assembly."
      },
      {
        "signature": "System.Boolean DisplayHelp(System.IntPtr windowHandle)",
        "modifiers": ["public", "virtual"],
        "protected": false,
        "virtual": true,
        "summary": "Called by Rhino if AddToHelpMenu is True and menu item associated with this plug-in is selected.",
        "since": "8.7",
        "parameters": [
          {
            "name": "windowHandle",
            "type": "System.IntPtr",
            "summary": "Native Window handle of the active Rhino interface."
          }
        ],
        "returns": "True  = Help displayed successfully, False = Error displaying help"
      },
      {
        "signature": "System.Void DocumentPropertiesDialogPages(RhinoDoc doc, List<OptionsDialogPage> pages)",
        "modifiers": ["protected", "virtual"],
        "protected": true,
        "virtual": true,
        "summary": "Override this function if you want to extend the document properties sections of the options dialog. This function is called whenever the user brings up the Options dialog.",
        "parameters": [
          {
            "name": "doc",
            "type": "RhinoDoc",
            "summary": "document that the pages are set up for"
          },
          {
            "name": "pages",
            "type": "List<OptionsDialogPage>",
            "summary": "list of pages to add your custom options dialog page(s) to."
          }
        ]
      },
      {
        "signature": "Commands.Command[] GetCommands()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "All of the commands associated with this plug-in.",
        "since": "5.0"
      },
      {
        "signature": "System.Boolean GetLicense(LicenseBuildType productBuildType, ValidateProductKeyDelegate validateProductKeyDelegate, OnLeaseChangedDelegate leaseChangedDelegate)",
        "modifiers": ["protected"],
        "protected": true,
        "virtual": false,
        "summary": "Verifies that there is a valid product license for your plug-in, using the Rhino licensing system. If the plug-in is installed as a standalone node, the locally installed license will be validated. If the plug-in is installed as a network node, a loaner license will be requested by the system's assigned Zoo server. If the Zoo server finds and returns a license, then this license will be validated. If no license is found, then the user will be prompted to provide a license key, which will be validated.",
        "parameters": [
          {
            "name": "productBuildType",
            "type": "LicenseBuildType",
            "summary": "The product build contentType required by your plug-in."
          },
          {
            "name": "validateProductKeyDelegate",
            "type": "ValidateProductKeyDelegate",
            "summary": "Since the Rhino licensing system knows nothing about your product license, you will need to validate the product license provided by the Rhino licensing system. This is done by supplying a callback function, or delegate, that can be called to perform the validation."
          },
          {
            "name": "leaseChangedDelegate",
            "type": "OnLeaseChangedDelegate",
            "summary": "Called by the ZooClient when the cloud zoo lease is changed."
          }
        ],
        "returns": "True if a valid license was found. False otherwise."
      },
      {
        "signature": "System.Boolean GetLicense(LicenseCapabilities licenseCapabilities, System.String textMask, ValidateProductKeyDelegate validateProductKeyDelegate, OnLeaseChangedDelegate leaseChangedDelegate)",
        "modifiers": ["protected"],
        "protected": true,
        "virtual": false,
        "summary": "Verifies that there is a valid product license for your plug-in, using the Rhino licensing system. If the plug-in is installed as a standalone node, the locally installed license will be validated. If the plug-in is installed as a network node, a loaner license will be requested by the system's assigned Zoo server. If the Zoo server finds and returns a license, then this license will be validated. If no license is found, then the user will be prompted to provide a license key, which will be validated.",
        "parameters": [
          {
            "name": "licenseCapabilities",
            "type": "LicenseCapabilities",
            "summary": "In the event that a license was not found, or if the user wants to change the way your plug-in is licenses, then provide what capabilities your license has by using this enumeration flag."
          },
          {
            "name": "textMask",
            "type": "System.String",
            "summary": "In the event that the user needs to be asked for a license, then you can provide a text mask, which helps the user to distinguish between proper and improper user input of your license code. Note, if you do not want to use a text mask, then pass in a None value for this parameter. For more information on text masks, search MSDN for the System.Windows.Forms.MaskedTextBox class."
          },
          {
            "name": "validateProductKeyDelegate",
            "type": "ValidateProductKeyDelegate",
            "summary": "Since the Rhino licensing system knows nothing about your product license, you will need to validate the product license provided by the Rhino licensing system. This is done by supplying a callback function, or delegate, that can be called to perform the validation."
          },
          {
            "name": "leaseChangedDelegate",
            "type": "OnLeaseChangedDelegate",
            "summary": "Called by the ZooClient when the cloud zoo lease is changed."
          }
        ],
        "returns": "True if a valid license was found. False otherwise."
      },
      {
        "signature": "System.Boolean GetLicenseOwner(out System.String registeredOwner, out System.String registeredOrganization)",
        "modifiers": ["protected"],
        "protected": true,
        "virtual": false,
        "summary": "Get the customer name and organization used when entering the product license.",
        "since": "5.11"
      },
      {
        "signature": "System.Object GetPlugInObject()",
        "modifiers": ["public", "virtual"],
        "protected": false,
        "virtual": true,
        "since": "5.0"
      },
      {
        "signature": "System.Drawing.Bitmap Icon(System.Drawing.Size size)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns the plug-in's icon in bitmap form.",
        "since": "6.0",
        "parameters": [
          {
            "name": "size",
            "type": "System.Drawing.Size",
            "summary": "The desired size in pixels."
          }
        ],
        "returns": "The icon if successful, None otherwise."
      },
      {
        "signature": "System.Boolean IsTextureSupported(RenderTexture texture)",
        "modifiers": ["public", "virtual"],
        "protected": false,
        "virtual": true,
        "summary": "Returns True if this renderer can render the texture natively without needing it to be baked into a bitmap, False otherwise. By default, returns False for all textures.",
        "since": "8.6"
      },
      {
        "signature": "System.Void ObjectPropertiesPages(List<ObjectPropertiesPage> pages)",
        "modifiers": ["protected", "virtual"],
        "protected": true,
        "virtual": true,
        "summary": "Override this function is you want to extend the object properties dialog",
        "obsolete": "Use ObjectPropertiesPages"
      },
      {
        "signature": "System.Void ObjectPropertiesPages(ObjectPropertiesPageCollection collection)",
        "modifiers": ["protected", "virtual"],
        "protected": true,
        "virtual": true,
        "summary": "Override this function is you want to extend the object properties dialog. This method will be called each time a new document is created for each instance of a object properties panel.  On Windows there will be a single panel per document but on Mac there may be many properties panel per document.",
        "parameters": [
          {
            "name": "collection",
            "type": "ObjectPropertiesPageCollection",
            "summary": "Add custom pages by calling collection.Add"
          }
        ]
      },
      {
        "signature": "LoadReturnCode OnLoad(ref System.String errorMessage)",
        "modifiers": ["protected", "virtual"],
        "protected": true,
        "virtual": true,
        "summary": "Is called when the plug-in is being loaded.",
        "parameters": [
          {
            "name": "errorMessage",
            "type": "System.String",
            "summary": "If a load error is returned and this string is set. This string is the error message that will be reported back to the user."
          }
        ],
        "returns": "An appropriate load return code.  \nThe default implementation returns ."
      },
      {
        "signature": "System.Void OnShutdown()",
        "modifiers": ["protected", "virtual"],
        "protected": true,
        "virtual": true
      },
      {
        "signature": "System.Void OptionsDialogPages(List<OptionsDialogPage> pages)",
        "modifiers": ["protected", "virtual"],
        "protected": true,
        "virtual": true,
        "summary": "Override this function if you want to extend the options dialog. This function is called whenever the user brings up the Options dialog.",
        "parameters": [
          {
            "name": "pages",
            "type": "List<OptionsDialogPage>",
            "summary": "list of pages to add your custom options dialog page(s) to."
          }
        ]
      },
      {
        "signature": "System.Void ReadDocument(RhinoDoc doc, FileIO.BinaryArchiveReader archive, FileIO.FileReadOptions options)",
        "modifiers": ["protected", "virtual"],
        "protected": true,
        "virtual": true,
        "summary": "Called whenever a Rhino document is being loaded and plug-in user data was encountered written by a plug-in with this plug-in's GUID.",
        "parameters": [
          {
            "name": "doc",
            "type": "RhinoDoc",
            "summary": "A Rhino document that is being loaded."
          },
          {
            "name": "archive",
            "type": "FileIO.BinaryArchiveReader",
            "summary": "OpenNURBS file archive object Rhino is using to read this file. Use BinaryArchiveReader.Read*() functions to read plug-in data.  If any BinaryArchive.Read*() functions throws an exception then archive.ReadErrorOccurve will be True and you should immediately return."
          },
          {
            "name": "options",
            "type": "FileIO.FileReadOptions",
            "summary": "Describes what is being written."
          }
        ]
      },
      {
        "signature": "System.Boolean RegisterCommand(Rhino.Commands.Command command)",
        "modifiers": ["protected"],
        "protected": true,
        "virtual": false
      },
      {
        "signature": "System.Void ResetMessageBoxes()",
        "modifiers": ["protected", "virtual"],
        "protected": true,
        "virtual": true
      },
      {
        "signature": "System.Boolean ReturnLicense()",
        "modifiers": ["protected"],
        "protected": true,
        "virtual": false,
        "summary": "Returns, or releases, a product license that was obtained from the Rhino licensing system. Note, most plug-ins do not need to call this as the Rhino licensing system will return all licenses when Rhino shuts down.",
        "since": "5.0"
      },
      {
        "signature": "System.Void SaveSettings()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Write settings to disk which will raise a <b>SettingsSaved</b>  event.",
        "since": "6.0"
      },
      {
        "signature": "System.Void SetLicenseCapabilities(System.String textMask, LicenseCapabilities capabilities, System.Guid licenseId)",
        "modifiers": ["protected"],
        "protected": true,
        "virtual": false
      },
      {
        "signature": "System.Boolean ShouldCallWriteDocument(FileIO.FileWriteOptions options)",
        "modifiers": ["protected", "virtual"],
        "protected": true,
        "virtual": true,
        "summary": "Called whenever a Rhino is about to save a .3dm file. If you want to save plug-in document data when a model is saved in a version 5 .3dm file, then you must override this function to return True and you must override WriteDocument().",
        "parameters": [
          {
            "name": "options",
            "type": "FileIO.FileWriteOptions",
            "summary": "The file write options, such as \"include preview image\" and \"include render meshes\"."
          }
        ],
        "returns": "True if the plug-in wants to save document user data in the version 5 .3dm file.  The default returns false."
      },
      {
        "signature": "System.Void WriteDocument(RhinoDoc doc, FileIO.BinaryArchiveWriter archive, FileIO.FileWriteOptions options)",
        "modifiers": ["protected", "virtual"],
        "protected": true,
        "virtual": true,
        "summary": "Called when Rhino is saving a .3dm file to allow the plug-in to save document user data.",
        "parameters": [
          {
            "name": "doc",
            "type": "RhinoDoc",
            "summary": "The Rhino document instance that is being saved."
          },
          {
            "name": "archive",
            "type": "FileIO.BinaryArchiveWriter",
            "summary": "OpenNURBS file archive object Rhino is using to write the file. Use BinaryArchiveWriter.Write*() functions to write plug-in data. OR use the ArchivableDictionary  If any BinaryArchiveWriter.Write*() functions throw an exception, then archive.WriteErrorOccured will be True and you should immediately return. Setting archive.WriteErrorOccured to True will cause Rhino to stop saving the file."
          },
          {
            "name": "options",
            "type": "FileIO.FileWriteOptions",
            "summary": "The file write options, such as \"include preview image\" and \"include render meshes\"."
          }
        ]
      }
    ]
  },
  {
    "namespace": "Rhino.PlugIns",
    "name": "PlugIn.UnknownUserDataEventArgs",
    "dataType": "class",
    "summary": "Event argument passed to the <b>Rhino.PlugIns.PlugIn.UnknownUserData</b> event.",
    "baseclass": "EventArgs",
    "properties": [
      {
        "signature": "RhinoDoc Document",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "7.17",
        "property": ["get"]
      },
      {
        "signature": "Guid PlugInId",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "7.17",
        "property": ["get"]
      }
    ]
  },
  {
    "namespace": "Rhino.PlugIns",
    "name": "PlugInDescriptionAttribute",
    "dataType": "class",
    "summary": "Rhino plug-in developer information attributes.",
    "baseclass": "Attribute",
    "constructors": [
      {
        "signature": "PlugInDescriptionAttribute(DescriptionType descriptionType, string value)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      }
    ],
    "properties": [
      {
        "signature": "DescriptionType DescriptionType",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "string Value",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0",
        "property": ["get"]
      }
    ]
  },
  {
    "namespace": "Rhino.PlugIns",
    "name": "PlugInInfo",
    "dataType": "class",
    "summary": "Contains detailed information about a Rhino plug-in.",
    "properties": [
      {
        "signature": "string Address",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns the address of the organization or company that created the plug-in.",
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "string[] CommandNames",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns a plug-in's English command names.",
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "string Country",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns the country of the organization or company that created the plug-in.",
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "string Description",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns the plug-in's description.",
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "string Email",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns the email address of the organization or company that created the plug-in.",
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "string Fax",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns the fax number of the organization or company that created the plug-in.",
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "string FileName",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns the plug-in's file name.",
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "string[] FileTypeDescriptions",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns the description of supported file types for file import and file export plug-in.",
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "string[] FileTypeExtensions",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns the file types extensions supported for file import and file export plug-in.",
        "since": "7.0",
        "property": ["get"]
      },
      {
        "signature": "Guid Id",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns the plug-in's Id.",
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "bool IsDotNet",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns True if the plug-in is based on .NET, False otherwise.",
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "bool IsLoaded",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns True if the plug-in is loaded, False otherwise.",
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "string Name",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns the plug-in's name.",
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "string Organization",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns the organization or company that created the plug-in.",
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "string Phone",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns the phone number of the organization or company that created the plug-in.",
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "PlugInLoadTime PlugInLoadTime",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns the plug-in's load time.",
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "PlugInType PlugInType",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns the plug-in type.",
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "string RegistryPath",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns the plug-in's Windows Registry path.",
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "bool ShipsWithRhino",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns True if the plug-in ships with Rhino, False otherwise.",
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "string UpdateUrl",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns the web site, or URL, were an updated version of the plug-in can be found.",
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "string Version",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns the plug-in's version.",
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "string WebSite",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns the web site, or URL, of the organization or company that created the plug-in.",
        "since": "6.0",
        "property": ["get"]
      }
    ],
    "methods": [
      {
        "signature": "System.Drawing.Bitmap Icon(System.Drawing.Size size)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns the plug-in's icon in bitmap form.",
        "since": "6.0"
      },
      {
        "signature": "System.Boolean IsLoadProtected(out System.Boolean loadSilently)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns the load protection state for a plug-in",
        "since": "6.0",
        "parameters": [
          {
            "name": "loadSilently",
            "type": "System.Boolean",
            "summary": "The plug-in's load silently state."
          }
        ],
        "returns": "True if the plug-in is load protected, False otherwise."
      }
    ]
  },
  {
    "namespace": "Rhino.PlugIns",
    "name": "PlugInLoadTime",
    "dataType": "enum",
    "summary": "Rhino plug-in load time enumeration.",
    "since": "5.0",
    "values": [
      {
        "signature": "Disabled = 0",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "never load plug-in."
      },
      {
        "signature": "AtStartup = 1",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Load when Rhino starts."
      },
      {
        "signature": "WhenNeeded = 2",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "(default) Load the first time a plug-in command used."
      },
      {
        "signature": "WhenNeededIgnoreDockingBars = 6",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Load the first time a plug-in command used NOT when restoring docking control bars."
      },
      {
        "signature": "WhenNeededOrOptionsDialog = 10",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "When a plug-in command is used or the options dialog is shown."
      },
      {
        "signature": "WhenNeededOrTabbedDockBar = 18",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "When a plug-in command is used or when a tabbed dockbar is loaded."
      }
    ]

  },
  {
    "namespace": "Rhino.PlugIns",
    "name": "PlugInType",
    "dataType": "enum",
    "summary": "Rhino plug-in type enumeration.",
    "since": "5.0",
    "values": [
      {
        "signature": "None = 0",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Render = 1",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "FileImport = 2",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "FileExport = 4",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Digitizer = 8",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Utility = 16",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "DisplayPipeline = 32",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "DisplayEngine = 64",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Any = Render | FileImport | FileExport | Digitizer | Utility | DisplayPipeline | DisplayEngine",
        "modifiers": [],
        "protected": false,
        "virtual": false
      }
    ]

  },
  {
    "namespace": "Rhino.PlugIns",
    "name": "PreviewNotification",
    "dataType": "class",
    "methods": [
      {
        "signature": "System.Void NotifyIntermediateUpdate(RenderWindow rw)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0"
      }
    ]
  },
  {
    "namespace": "Rhino.PlugIns",
    "name": "RenderPlugIn",
    "dataType": "class",
    "summary": "A Rhino rendering plugin; applies materials, textures, and lights to a scene to produce rendered images.",
    "baseclass": "Rhino.PlugIns.PlugIn",
    "constructors": [
      {
        "signature": "RenderPlugIn()",
        "modifiers": ["protected"],
        "protected": true,
        "virtual": false
      }
    ],
    "properties": [
      {
        "signature": "Guid InitialChannelToDisplay",
        "modifiers": ["protected", "virtual"],
        "protected": true,
        "virtual": true,
        "property": ["get"]
      },
      {
        "signature": "bool PerferBasicContent",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Set to True if you would like Rhino to quickly create a basic render content in response to 'Create New' commands. Set to False if you would prefer Rhino to display the render content chooser dialog.",
        "since": "5.12",
        "property": ["get", "set"]
      },
      {
        "signature": "Guid[] SupportedChannels",
        "modifiers": ["protected", "virtual"],
        "protected": true,
        "virtual": true,
        "summary": "Override to communicate that the renderer supports more channels beside the default channels RGBA, Depth, Normal, Albedo. See RenderWindow.StandardChannels. RenderWindow.ChannelId can be used to get the GUIDs for the channels to support",
        "property": ["get"]
      },
      {
        "signature": "bool SupportsEditProperties",
        "modifiers": ["protected", "virtual"],
        "protected": true,
        "virtual": true,
        "summary": "Override this property and return True if your plug-in supports decals and overrides <b>ShowDecalProperties</b>",
        "property": ["get"]
      }
    ],
    "methods": [
      {
        "signature": "System.Boolean CurrentRendererSupportsFeature(RenderFeature feature)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "6.1"
      },
      {
        "signature": "System.Boolean AllowChooseContent(RenderContent content)",
        "modifiers": ["protected", "virtual"],
        "protected": true,
        "virtual": true,
        "summary": "Default implementation returns True which means the content can be picked from the content browser by the user. Override this method and return False if you don't want to allow a certain content contentType to be picked from the content browser while your render engine is current.",
        "parameters": [
          {
            "name": "content",
            "type": "RenderContent",
            "summary": "A render context."
          }
        ],
        "returns": "True if the operation was successful."
      },
      {
        "signature": "System.Void CreatePreview(CreatePreviewEventArgs args)",
        "modifiers": ["protected", "virtual"],
        "protected": true,
        "virtual": true,
        "summary": "Creates the preview bitmap that will appear in the content editor's thumbnail display when previewing materials and environments. If this function is not overridden or the PreviewImage is not set on the arguments, then the internal OpenGL renderer will generate a simulation of the content.  This function is called with four different preview quality settings. The first quality level of RealtimeQuick is called on the main thread and needs to be drawn as fast as possible.  This function is called with the other three quality settings on a separate thread and are meant for generating progressively refined preview.",
        "parameters": [
          {
            "name": "args",
            "type": "CreatePreviewEventArgs",
            "summary": "Event argument with several preview option state properties."
          }
        ]
      },
      {
        "signature": "System.Void CreateTexture2dPreview(CreateTexture2dPreviewEventArgs args)",
        "modifiers": ["protected", "virtual"],
        "protected": true,
        "virtual": true,
        "summary": "Creates the preview bitmap that will appear in the content editor's thumbnail display when previewing textures in 2d (UV) mode.  If this function is not overridden or the PreviewImage is not set on the arguments, then the internal OpenGL renderer will generate a simulation.",
        "parameters": [
          {
            "name": "args",
            "type": "CreateTexture2dPreviewEventArgs",
            "summary": "Event argument with several preview option state properties."
          }
        ]
      },
      {
        "signature": "System.String CustomChannelName(System.Guid id)",
        "modifiers": ["protected", "virtual"],
        "protected": true,
        "virtual": true,
        "summary": "Return the localized name of your custom channel."
      },
      {
        "signature": "System.Boolean EnableAssignMaterialButton()",
        "modifiers": ["public", "virtual"],
        "protected": false,
        "virtual": true,
        "summary": "Called to enable/disable the \"Material\" button located on the \"Material\" tab in the Properties and Layer dialog boxes.  The default return value is False which will disable the button.  If the button is disabled then the OnAssignMaterial function is never called.",
        "since": "5.12"
      },
      {
        "signature": "System.Boolean EnableCreateMaterialButton()",
        "modifiers": ["public", "virtual"],
        "protected": false,
        "virtual": true,
        "summary": "Called to enable/disable the \"New\" button located on the \"Material\" in the  Properties and Layer dialog boxes.  The default return value is False which will disable the button.  If the button is disabled then the OnEditMaterial function is never called.",
        "since": "5.12"
      },
      {
        "signature": "System.Boolean EnableEditMaterialButton(RhinoDoc doc, DocObjects.Material material)",
        "modifiers": ["public", "virtual"],
        "protected": false,
        "virtual": true,
        "summary": "Called to enable/disable the \"Edit\" button located on the \"Material\" in the Properties and Layer dialog boxes.  The default return value is False  which will disable the button.  If the button is disabled then the OnEditMaterial function is never called.",
        "since": "5.12"
      },
      {
        "signature": "List<Guid> GetRenderSettingsSections()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "This function returns a list of Guids for the render settings pages that should be displayed.",
        "since": "6.17",
        "returns": "Return a Id list of the Render settings sections that will be displayed"
      },
      {
        "signature": "System.Void InitializeDecalProperties(ref List<NamedValue> properties)",
        "modifiers": ["protected", "virtual"],
        "protected": true,
        "virtual": true,
        "summary": "Initialize your custom decal properties here.  The input list will be empty - add your default named property values and return.",
        "parameters": [
          {
            "name": "properties",
            "type": "List<NamedValue>",
            "summary": "A list of named values that will be stored on the object the input values are the current ones, you should modify the values after the dialog closes."
          }
        ]
      },
      {
        "signature": "System.Boolean OnAssignMaterial(System.IntPtr parent, RhinoDoc doc, ref DocObjects.Material material)",
        "modifiers": ["public", "virtual"],
        "protected": false,
        "virtual": true,
        "summary": "This function is called by the Object Properties and Layer Control dialogs when the \"Material\" button is pressed in the \"Render\" tab. This is only called if EnableAssignMaterialButton returns true.",
        "since": "5.12"
      },
      {
        "signature": "System.Boolean OnCreateMaterial(System.IntPtr parent, RhinoDoc doc, ref DocObjects.Material material)",
        "modifiers": ["public", "virtual"],
        "protected": false,
        "virtual": true,
        "summary": "This function is called by the Object Properties and Layer Control dialogs when the \"New\" button is pressed in the \"Material\" tab.  This is only called if EnableCreateMaterialButton returns true.",
        "since": "5.12"
      },
      {
        "signature": "System.Boolean OnEditMaterial(System.IntPtr parent, RhinoDoc doc, ref DocObjects.Material material)",
        "modifiers": ["public", "virtual"],
        "protected": false,
        "virtual": true,
        "summary": "This function is called by the Object Properties and Layer Control dialogs when the \"Edit\" button is pressed in the \"Material\" tab.  This is only called if EnableEditMaterialButton returns true. A return value of True means the material has been updated.",
        "since": "5.12"
      },
      {
        "signature": "System.Void OnSetCurrent(System.Boolean current)",
        "modifiers": ["protected", "virtual"],
        "protected": true,
        "virtual": true,
        "summary": "This plug-in (has become)/(is no longer) the current render plug-in",
        "parameters": [
          {
            "name": "current",
            "type": "System.Boolean",
            "summary": "If True then this plug-in is now the current render plug-in otherwise it is no longer the current render plug-in."
          }
        ]
      },
      {
        "signature": "PreviewRenderTypes PreviewRenderType()",
        "modifiers": ["protected", "virtual"],
        "protected": true,
        "virtual": true,
        "summary": "Tell what kind of preview rendering your renderer supports.",
        "returns": "One of PreviewRenderTypes"
      },
      {
        "signature": "System.Void RegisterCustomRenderSaveFileTypes(CustomRenderSaveFileTypes saveFileTypes)",
        "modifiers": ["protected", "virtual"],
        "protected": true,
        "virtual": true,
        "summary": "Override this method to add custom file types to the render window save file dialog."
      },
      {
        "signature": "System.Void RegisterRenderPanels(RenderPanels panels)",
        "modifiers": ["protected", "virtual"],
        "protected": true,
        "virtual": true,
        "summary": "Override this method and call <b>RenderPanels.RegisterPanel(PlugIn, RenderPanelType, Type, string, bool, bool)</b>  to add custom render UI to the render output window."
      },
      {
        "signature": "System.Void RegisterRenderTabs(RenderTabs tabs)",
        "modifiers": ["protected", "virtual"],
        "protected": true,
        "virtual": true,
        "summary": "Override this method and call <b>RenderTabs.RegisterTab(PlugIn, Type, Guid, string, Icon)</b>  to add custom tabs to the render output window"
      },
      {
        "signature": "Commands.Result Render(RhinoDoc doc, Commands.RunMode mode, System.Boolean fastPreview)",
        "modifiers": ["protected", "abstract"],
        "protected": true,
        "virtual": false,
        "summary": "Called by Render and RenderPreview commands if this plug-in is set as the default render engine.",
        "parameters": [
          {
            "name": "doc",
            "type": "RhinoDoc",
            "summary": "A document."
          },
          {
            "name": "mode",
            "type": "Commands.RunMode",
            "summary": "A command running mode."
          },
          {
            "name": "fastPreview",
            "type": "System.Boolean",
            "summary": "If true, lower quality faster render expected."
          }
        ],
        "returns": "If true, then the renderer is required to construct a rapid preview and not the high-quality final result."
      },
      {
        "signature": "IEnumerable<RenderContentSerializer> RenderContentSerializers()",
        "modifiers": ["protected", "virtual"],
        "protected": true,
        "virtual": true,
        "summary": "Called by Rhino when it is time to register RenderContentSerializer derived classes.  Override this method and return an array of an instance of each serialize custom content object you wish to add.",
        "returns": "List of RenderContentSerializer objects to register with the Rhino render content browsers."
      },
      {
        "signature": "OptionsDialogPage RenderOptionsDialogPage(RhinoDoc doc)",
        "modifiers": ["protected", "virtual"],
        "protected": true,
        "virtual": true,
        "summary": "Override this method to replace the render properties page in the Rhino document properties dialog.  The default implementation returns null which means just use the default Rhino page.",
        "parameters": [
          {
            "name": "doc",
            "type": "RhinoDoc",
            "summary": "The document properties to edit."
          }
        ],
        "returns": "Return None to use the default Rhino page or return a page derived from  <b>OptionsDialogPage</b> to replace the default page."
      },
      {
        "signature": "System.Void RenderSettingsCustomSections(List<ICollapsibleSection> sections)",
        "modifiers": ["public", "virtual"],
        "protected": false,
        "virtual": true,
        "summary": "Override this function to provide custom sections for the render settings panel that are displayed when your plug-in is the current render plug-in.",
        "since": "6.0",
        "parameters": [
          {
            "name": "sections",
            "type": "List<ICollapsibleSection>",
            "summary": "Create your sections and return a list of them"
          }
        ]
      },
      {
        "signature": "List<Guid> RenderSettingsSections()",
        "modifiers": ["protected", "virtual"],
        "protected": true,
        "virtual": true,
        "summary": "Override this method to provide the UUIDs of all sections that should be displayed in the Render Settings tab when this is the current renderer.The default implementation adds all the RDK's built-in Render Settings sections. These UUIDs start with the prefix uuidRenderSettingsSection'. They can be found in RhRdkUuids.h",
    "remarks": "You should add \\e all sections you would want to appear in any context.",
        "returns": "Return a Id list of content types to display in content browsers"
      },
      {
        "signature": "Commands.Result RenderWindow(RhinoDoc doc, Commands.RunMode modes, System.Boolean fastPreview, Display.RhinoView view, Rectangle rect, System.Boolean inWindow, System.Boolean blowup)",
        "modifiers": ["protected", "virtual"],
        "protected": true,
        "virtual": true
      },
      {
        "signature": "Commands.Result RenderWindow(RhinoDoc doc, Commands.RunMode modes, System.Boolean fastPreview, Display.RhinoView view, Rectangle rect, System.Boolean inWindow)",
        "modifiers": ["protected", "virtual"],
        "protected": true,
        "virtual": true,
        "summary": "This function is obsolete and only exists for legacy purposes. Do not override this function - prefer overriding the version with the blowup parameter."
      },
      {
        "signature": "System.Boolean ShowDecalProperties(ref List<NamedValue> properties)",
        "modifiers": ["protected", "virtual"],
        "protected": true,
        "virtual": true,
        "summary": "Override this function to handle showing a modal dialog with your plug-in's custom decal properties.  You will be passed the current properties for the object being edited.  The defaults will be set in InitializeDecalProperties.",
        "parameters": [
          {
            "name": "properties",
            "type": "List<NamedValue>",
            "summary": "A list of named values that will be stored on the object the input values are the current ones, you should modify the values after the dialog closes."
          }
        ],
        "returns": "True if the user pressed \"OK\", otherwise false."
      },
      {
        "signature": "System.Void SunCustomSections(List<ICollapsibleSection> sections)",
        "modifiers": ["public", "virtual"],
        "protected": false,
        "virtual": true,
        "summary": "Override this function to provide custom sections for the sun panel that are displayed when your plug-in is the current render plug-in.",
        "since": "6.0",
        "parameters": [
          {
            "name": "sections",
            "type": "List<ICollapsibleSection>",
            "summary": "Create your sections and return a list of them"
          }
        ]
      },
      {
        "signature": "List<FileIO.FileType> SupportedOutputTypes()",
        "modifiers": ["protected", "virtual"],
        "protected": true,
        "virtual": true,
        "summary": "Returns a list of output types which your renderer can write.  \nThe default implementation returns BMP, JPG, PNG, TIF, TGA, HDR, EXR and RIMAGE.",
        "returns": "A list of file types."
      },
      {
        "signature": "System.Boolean SupportsFeature(RenderFeature feature)",
        "modifiers": ["protected", "virtual"],
        "protected": true,
        "virtual": true,
        "summary": "Determines if your renderer supports a specific feature.",
        "parameters": [
          {
            "name": "feature",
            "type": "RenderFeature",
            "summary": "A feature to be controlled."
          }
        ],
        "returns": "True if the renderer indeed supports the feature."
      },
      {
        "signature": "List<Guid> UiContentTypes()",
        "modifiers": ["protected", "virtual"],
        "protected": true,
        "virtual": true,
        "summary": "Override this method to provide the UUIDs of all content types that should be presented to the user in the types combo box or the[+] button types menu.The default implementation adds only RDK's built-in types. Rhino automatically adds types in the most efficient way to minimize the list length.  If you override this method, you may call the base class first to add the built-in types, a separator will be inserted at the end of the standard list followed by your own types.  You may omit the base class call and only chosen types yourself, followed by a separator and your own types.  A 'More Types...' item is automatically added when needed by Rhino.  Specify a separator by adding uuidUiContentType_Separator.",
    "remarks": "You should add \\e all types you would want to appear in any context, regardless of their content kind.  Rhino ensures that only types that make sense will actually be presented to the user in a given context.",
        "returns": "Return a Id list of content types to display in content browsers"
      }
    ]
  },
  {
    "namespace": "Rhino.PlugIns",
    "name": "RenderPlugIn.PreviewRenderTypes",
    "dataType": "enum",
    "since": "6.0",
    "values": [
      {
        "signature": "None = 0",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "ThreeSeparateImages",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "SingleImage",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Progressive",
        "modifiers": [],
        "protected": false,
        "virtual": false
      }
    ]

  },
  {
    "namespace": "Rhino.PlugIns",
    "name": "RenderPlugIn.RenderFeature",
    "dataType": "enum",
    "since": "5.0",
    "values": [
      {
        "signature": "Materials                   = UnsafeNativeMethods.CRhinoRenderPlugInFeatures.Materials",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Environments                = UnsafeNativeMethods.CRhinoRenderPlugInFeatures.Environments",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Textures                    = UnsafeNativeMethods.CRhinoRenderPlugInFeatures.Textures",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "PostEffects                 = UnsafeNativeMethods.CRhinoRenderPlugInFeatures.PostEffects",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Sun                         = UnsafeNativeMethods.CRhinoRenderPlugInFeatures.Sun",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "CustomRenderMeshes          = UnsafeNativeMethods.CRhinoRenderPlugInFeatures.CustomRenderMeshes",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Decals                      = UnsafeNativeMethods.CRhinoRenderPlugInFeatures.Decals",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "GroundPlane                 = UnsafeNativeMethods.CRhinoRenderPlugInFeatures.GroundPlane",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "SkyLight                    = UnsafeNativeMethods.CRhinoRenderPlugInFeatures.SkyLight",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "CustomDecalProperties       = UnsafeNativeMethods.CRhinoRenderPlugInFeatures.CustomDecalProperties",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "LinearWorkflow              = UnsafeNativeMethods.CRhinoRenderPlugInFeatures.LinearWorkflow",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Exposure                    = UnsafeNativeMethods.CRhinoRenderPlugInFeatures.Exposure",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "ShadowOnlyGroundPlane       = UnsafeNativeMethods.CRhinoRenderPlugInFeatures.ShadowOnlyGroundPlane",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "RenderBlowup                = UnsafeNativeMethods.CRhinoRenderPlugInFeatures.RenderBlowup",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "RenderWindow                = UnsafeNativeMethods.CRhinoRenderPlugInFeatures.RenderWindow",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "RenderInWindow              = UnsafeNativeMethods.CRhinoRenderPlugInFeatures.RenderInWindow",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "FocalBlur                   = UnsafeNativeMethods.CRhinoRenderPlugInFeatures.RenderFocalBlur",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "RenderArctic                = UnsafeNativeMethods.CRhinoRenderPlugInFeatures.RenderArctic",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "RenderViewSource            = UnsafeNativeMethods.CRhinoRenderPlugInFeatures.RenderViewSource",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "CustomSkylightEnvironment   = UnsafeNativeMethods.CRhinoRenderPlugInFeatures.CustomSkylightEnvironment",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "CustomReflectionEnvironment = UnsafeNativeMethods.CRhinoRenderPlugInFeatures.CustomReflectionEnvironment",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "RenderChannels              = UnsafeNativeMethods.CRhinoRenderPlugInFeatures.RenderChannels",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "LightMaterials              = UnsafeNativeMethods.CRhinoRenderPlugInFeatures.LightMaterials",
        "modifiers": [],
        "protected": false,
        "virtual": false
      }
    ]

  },
  {
    "namespace": "Rhino.PlugIns",
    "name": "ValidateResult",
    "dataType": "enum",
    "summary": "ValidateProductKeyDelegate result code.",
    "since": "5.0",
    "values": [
      {
        "signature": "Success = 1",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "The product key or license is validated successfully."
      },
      {
        "signature": "ErrorShowMessage = 0",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "There was an error validating the product key or license, the license manager show an error message."
      },
      {
        "signature": "ErrorHideMessage = -1",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "There was an error validating the product key or license. The validating delegate will show an error message, not the license manager."
      }
    ]

  },
  {
    "namespace": "Rhino.PlugIns",
    "name": "WriteFileResult",
    "dataType": "enum",
    "since": "5.0",
    "values": [
      {
        "signature": "Cancel = -1",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Failure = 0",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Success = 1",
        "modifiers": [],
        "protected": false,
        "virtual": false
      }
    ]

  },
  {
    "namespace": "Rhino",
    "name": "PrintedPageDefinition",
    "dataType": "class",
    "summary": "Information describing a page for printed output",
    "constructors": [
      {
        "signature": "PrintedPageDefinition()",
        "summary": "Initializes a new instance of the PrintedPageDefinition class"
      }
    ],
    "properties": [
      {
        "signature": "string Description",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Name of the page",
        "property": ["get", "set"]
      },
      {
        "signature": "double Height",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Height of the page in Units",
        "property": ["get", "set"]
      },
      {
        "signature": "UnitSystem Units",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Unit system for the width and height of the page",
        "property": ["get", "set"]
      },
      {
        "signature": "double Width",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Width of the page in Units",
        "property": ["get", "set"]
      }
    ]
  },
  {
    "namespace": "Rhino",
    "name": "ReadFileResult",
    "dataType": "enum",
    "summary": "ON::ReadFileResult reports what happened when a file read was attempted.",
    "values": [
      {
        "signature": "Unset = 0",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "No result is available."
      },
      {
        "signature": "Completed = 1",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Read completed with no errors."
      },
      {
        "signature": "CompletedWithErrors = 2",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Read completed with non fatal errors."
      },
      {
        "signature": "Failed = 3",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Read failed."
      }
    ]

  },
  {
    "namespace": "Rhino.Render",
    "name": "AddCustomUISections",
    "dataType": "class",
    "summary": "This class contains the event to add custom ui sections when the content ui is created.",
    "constructors": [
      {
        "signature": "AddCustomUISections()",
        "summary": "Initializes a new instance of the AddCustomUISections class"
      }
    ],
    "events": [
      {
        "signature": "EventHandler<AddCustomUISectionsEventArgs> OnAddCustomUISections",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "This event is raised when a OnAddCustomUISections Event is triggered in rdk.",
        "since": "7.0"
      }
    ]

  },
  {
    "namespace": "Rhino.Render",
    "name": "AddCustomUISectionsEventArgs",
    "dataType": "class",
    "summary": "Used as Rhino.Render Custom Events args.",
    "baseclass": "EventArgs",
    "properties": [
      {
        "signature": "Guid EventType",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "The type of the event.",
        "since": "7.0",
        "property": ["get"]
      },
      {
        "signature": "ExpandableContentUI ExpandableContentUI",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "7.12",
        "property": ["get"]
      }
    ]
  },
  {
    "namespace": "Rhino.Render",
    "name": "AsyncRenderContext",
    "dataType": "class",
    "summary": "\\ingroup rhino_render Inherit from AsyncRenderContext to be able to create asynchronous render engine implementations through RhinoCommon.",
    "interfaces": ["IDisposable"],
    "constructors": [
      {
        "signature": "AsyncRenderContext()",
        "modifiers": ["protected"],
        "protected": true,
        "virtual": false
      }
    ],
    "properties": [
      {
        "signature": "bool Cancel",
        "modifiers": ["protected"],
        "protected": true,
        "virtual": false,
        "summary": "If set to True rendering should be stopped. Is set to True only by StopRendering().",
        "property": ["get", "set"]
      },
      {
        "signature": "Thread RenderThread",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Holder for render thread, that gets set through StartRenderThread()",
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "RenderWindow RenderWindow",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Handle to the RenderWindow for the instance of this class. This is a convenience property for implementors to use.",
        "since": "6.0",
        "property": ["get", "set"]
      }
    ],
    "methods": [
      {
        "signature": "System.Void DeleteThis()",
        "modifiers": ["protected", "virtual"],
        "protected": true,
        "virtual": true
      },
      {
        "signature": "System.Void Dispose()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0"
      },
      {
        "signature": "System.Void Dispose(System.Boolean isDisposing)",
        "modifiers": ["protected", "virtual"],
        "protected": true,
        "virtual": true
      },
      {
        "signature": "System.Void JoinRenderThread()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Join the render thread, then set to null;",
        "since": "6.0"
      },
      {
        "signature": "System.Boolean StartRenderThread(ThreadStart threadStart, System.String threadName)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Start a new render thread with given function.",
        "since": "6.0",
        "parameters": [
          {
            "name": "threadStart",
            "type": "ThreadStart",
            "summary": "Function to start in render thread"
          },
          {
            "name": "threadName",
            "type": "System.String",
            "summary": "Name for the thread"
          }
        ]
      },
      {
        "signature": "System.Void StopRendering()",
        "modifiers": ["public", "virtual"],
        "protected": false,
        "virtual": true,
        "summary": "Override StopRendering if you need to do additional tasks besides having Cancel set to true.  Note: you should always base.StopRendering() in your overriding implementation.",
        "since": "6.0"
      }
    ]
  },
  {
    "namespace": "Rhino.Render",
    "name": "CachedTextureCoordinates",
    "dataType": "class",
    "summary": "Used for cached texture coordinates",
    "baseclass": "Rhino.Runtime.CommonObject",
    "interfaces": ["IList<Point3d>"],
    "properties": [
      {
        "signature": "int Count",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Number of cached coordinates.",
        "since": "5.10",
        "property": ["get"]
      },
      {
        "signature": "int Dim",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Coordinate dimension: 2 = UV, 3 = UVW",
        "since": "5.10",
        "property": ["get"]
      },
      {
        "signature": "bool IsReadOnly",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "This collection is always read-only",
        "since": "5.10",
        "property": ["get"]
      },
      {
        "signature": "Guid MappingId",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "The texture mapping Id.",
        "since": "5.10",
        "property": ["get"]
      },
      {
        "signature": "Point3d this[int index]",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the element at the specified index. Never call the set method, it will always throw a NotSupportedException because this list is read-only."
      }
    ],
    "methods": [
      {
        "signature": "System.Boolean Contains(Point3d item)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Determines whether this collection contains a specific value.",
        "since": "5.10"
      },
      {
        "signature": "System.Void CopyTo(Point3d[] array, System.Int32 arrayIndex)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Copies the elements of the this collection to an System.Array, starting at a particular System.Array index.",
        "since": "5.10",
        "parameters": [
          {
            "name": "array",
            "type": "Point3d[]",
            "summary": "The one-dimensional System.Array that is the destination of the elements copied from this collection. The System.Array must have zero-based indexing."
          },
          {
            "name": "arrayIndex",
            "type": "System.Int32",
            "summary": "The zero-based index in array at which copying begins."
          }
        ]
      },
      {
        "signature": "IEnumerator<Point3d> GetEnumerator()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns an enumerator that iterates through this collection.",
        "since": "5.10",
        "returns": "A enumerator that can be used to iterate through this collection."
      },
      {
        "signature": "System.Int32 IndexOf(Point3d item)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Determines the index of a specific point in this collection.",
        "since": "5.10",
        "parameters": [
          {
            "name": "item",
            "type": "Point3d",
            "summary": "The point (UV or UVW) to locate in this collection."
          }
        ],
        "returns": "The index of item if found in the list; otherwise, -1."
      },
      {
        "signature": "System.Boolean TryGetAt(System.Int32 index, out System.Double u, out System.Double v, out System.Double w)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Use this method to iterate the cached texture coordinate array.",
        "since": "5.10",
        "parameters": [
          {
            "name": "index",
            "type": "System.Int32",
            "summary": "Index for the vertex to fetch."
          },
          {
            "name": "u",
            "type": "System.Double",
            "summary": "Output parameter which will receive the U value."
          },
          {
            "name": "v",
            "type": "System.Double",
            "summary": "Output parameter which will receive the V value."
          },
          {
            "name": "w",
            "type": "System.Double",
            "summary": "Output parameter which will receive the W value, this is only meaningful if <b>Dim</b> is 3."
          }
        ],
        "returns": "Returns True if index is valid; otherwise returns false."
      }
    ]
  },
  {
    "namespace": "Rhino.Render.ChangeQueue",
    "name": "ChangeQueue",
    "dataType": "class",
    "summary": "Base class for ChangeQueue.  Generally used by render plugins to build interactive updating of scenes that are being rendered.",
    "interfaces": ["IDisposable"],
    "constructors": [
      {
        "signature": "ChangeQueue(Guid pluginId, CreatePreviewEventArgs createPreviewEventArgs)",
        "modifiers": ["protected"],
        "protected": true,
        "virtual": false,
        "summary": "Construct a new ChangeQueue using the given CreatePreviewEventArgs.  The preview scene for these args will be used to populate the world.",
        "parameters": [
          {
            "name": "pluginId",
            "type": "System.Guid",
            "summary": "Id of plugin instantiating ChangeQueue"
          },
          {
            "name": "createPreviewEventArgs",
            "type": "CreatePreviewEventArgs",
            "summary": ""
          }
        ]
      },
      {
        "signature": "ChangeQueue(Guid pluginId, uint docRuntimeSerialNumber, ViewInfo viewinfo, bool bRespectDisplayPipelineAttributes)",
        "modifiers": ["protected"],
        "protected": true,
        "virtual": false,
        "summary": "Construct a new ChangeQueue from the given document",
        "parameters": [
          {
            "name": "pluginId",
            "type": "System.Guid",
            "summary": "Id of plugin instantiating ChangeQueue"
          },
          {
            "name": "docRuntimeSerialNumber",
            "type": "System.UInt32",
            "summary": ""
          },
          {
            "name": "viewinfo",
            "type": "ViewInfo",
            "summary": ""
          },
          {
            "name": "bRespectDisplayPipelineAttributes",
            "type": "System.Boolean",
            "summary": "Determines whether the display pipeline attributes for this viewport should be taken into account when supplying data.  If you are using this queue to populate a scene for the \"Render\" command, set this to false.  If you are using it to draw a realtime preview, you will probably want to set it to true."
          }
        ]
      },
      {
        "signature": "ChangeQueue(Guid pluginId, uint docRuntimeSerialNumber, ViewInfo viewinfo, DisplayPipelineAttributes attributes, bool bRespectDisplayPipelineAttributes, bool bNotifyChanges)",
        "modifiers": ["protected"],
        "protected": true,
        "virtual": false,
        "summary": "Construct a new ChangeQueue from the given document, using given display pipeline attributes.",
        "parameters": [
          {
            "name": "pluginId",
            "type": "System.Guid",
            "summary": "Id of plugin instantiating ChangeQueue"
          },
          {
            "name": "docRuntimeSerialNumber",
            "type": "System.UInt32",
            "summary": ""
          },
          {
            "name": "viewinfo",
            "type": "ViewInfo",
            "summary": ""
          },
          {
            "name": "attributes",
            "type": "Display.DisplayPipelineAttributes",
            "summary": "Display pipeline attributes to use."
          },
          {
            "name": "bRespectDisplayPipelineAttributes",
            "type": "System.Boolean",
            "summary": "Determines whether the display pipeline attributes for this viewport should be taken into account when supplying data.  If you are using this queue to populate a scene for the \"Render\" command, set this to false.  If you are using it to draw a realtime preview, you will probably want to set it to true."
          },
          {
            "name": "bNotifyChanges",
            "type": "System.Boolean",
            "summary": "Determines whether you want to receive updates when the model changes.  If you are rendering for a view capture, print or something similar, you will probably want to set this to false."
          }
        ]
      }
    ],
    "properties": [
      {
        "signature": "DisplayPipelineAttributes DisplayPipelineAttributes",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Get the DisplayPipelineAttributes if available, None otherwise",
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "bool IsPreview",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Return True if this ChangeQueue is created for preview rendering.  No view was set for preview rendering.",
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "Guid ViewId",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Return view ID for a RhinoDoc based ChangeQueue.  Returns Guid.Empty if no view was associated with the changequeue, i.e. preview rendering.",
        "since": "6.0",
        "property": ["get"]
      }
    ],
    "methods": [
      {
        "signature": "System.Void ConvertCameraBasedLightToWorld(ChangeQueue changequeue, Light light, ViewInfo vp)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Convert given (camera-based) light to a world-based light (in-place)",
        "since": "6.0"
      },
      {
        "signature": "System.UInt32 CrcFromGuid(System.Guid guid)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Helper function to get a CRC from a Guid.",
        "since": "6.0"
      },
      {
        "signature": "System.Void ApplyClippingPlaneChanges(System.Guid[] deleted, List<ClippingPlane> addedOrModified)",
        "modifiers": ["protected", "virtual"],
        "protected": true,
        "virtual": true,
        "summary": "Override this when you want to handle clippingplane changes"
      },
      {
        "signature": "System.Void ApplyDisplayPipelineAttributesChanges(Display.DisplayPipelineAttributes displayPipelineAttributes)",
        "modifiers": ["protected", "virtual"],
        "protected": true,
        "virtual": true,
        "summary": "Override if you need to react to display attribute changes.  This function is needed to be able to react to different sample settings for i.e. capture preview rendering.",
        "parameters": [
          {
            "name": "displayPipelineAttributes",
            "type": "Display.DisplayPipelineAttributes",
            "summary": "The changed DisplayPipelineAttributes."
          }
        ]
      },
      {
        "signature": "System.Void ApplyDynamicClippingPlaneChanges(List<ClippingPlane> changed)",
        "modifiers": ["protected", "virtual"],
        "protected": true,
        "virtual": true,
        "summary": "Override this when you want to handle dynamicclippingplane changes"
      },
      {
        "signature": "System.Void ApplyDynamicLightChanges(List<Light> dynamicLightChanges)",
        "modifiers": ["protected", "virtual"],
        "protected": true,
        "virtual": true,
        "summary": "Handle dynamic light changes"
      },
      {
        "signature": "System.Void ApplyDynamicObjectTransforms(List<DynamicObjectTransform> dynamicObjectTransforms)",
        "modifiers": ["protected", "virtual"],
        "protected": true,
        "virtual": true,
        "summary": "Handle dynamic object transforms"
      },
      {
        "signature": "System.Void ApplyEnvironmentChanges(RenderEnvironment.Usage usage)",
        "modifiers": ["protected", "virtual"],
        "protected": true,
        "virtual": true,
        "summary": "Override this when you want to handle environment changes"
      },
      {
        "signature": "System.Void ApplyGroundPlaneChanges(GroundPlane gp)",
        "modifiers": ["protected", "virtual"],
        "protected": true,
        "virtual": true,
        "summary": "Override this when you want to handle groundplane changes"
      },
      {
        "signature": "System.Void ApplyLightChanges(List<Light> lightChanges)",
        "modifiers": ["protected", "virtual"],
        "protected": true,
        "virtual": true,
        "summary": "Override this when you want to handle light changes"
      },
      {
        "signature": "System.Void ApplyLinearWorkflowChanges(LinearWorkflow lw)",
        "modifiers": ["protected", "virtual"],
        "protected": true,
        "virtual": true,
        "summary": "Override this when you want to handle linear workflow changes"
      },
      {
        "signature": "System.Void ApplyMaterialChanges(List<Material> mats)",
        "modifiers": ["protected", "virtual"],
        "protected": true,
        "virtual": true,
        "summary": "Override when you want to handle material changes",
        "parameters": [
          {
            "name": "mats",
            "type": "List<Material>",
            "summary": "List of ChangeQueue::Material that have changed"
          }
        ]
      },
      {
        "signature": "System.Void ApplyMeshChanges(System.Guid[] deleted, List<Mesh> added)",
        "modifiers": ["protected", "virtual"],
        "protected": true,
        "virtual": true,
        "summary": "Override this when you want to handle mesh changes.",
        "parameters": [
          {
            "name": "deleted",
            "type": "System.Guid[]",
            "summary": "List of Guids to meshes that have been deleted"
          },
          {
            "name": "added",
            "type": "List<Mesh>",
            "summary": "List of ChangeQueueMeshes that have been added or changed"
          }
        ]
      },
      {
        "signature": "System.Void ApplyMeshInstanceChanges(List<uint> deleted, List<MeshInstance> addedOrChanged)",
        "modifiers": ["protected", "virtual"],
        "protected": true,
        "virtual": true,
        "summary": "Override this when you want to handle mesh instance changes (block instances and first-time added new meshes)"
      },
      {
        "signature": "System.Void ApplyRenderSettingsChanges(DisplayRenderSettings settings)",
        "modifiers": ["protected", "virtual"],
        "protected": true,
        "virtual": true,
        "summary": "Override this when you want to handle render setting changes. These are for the viewport settings."
      },
      {
        "signature": "System.Void ApplyRenderSettingsChanges(RenderSettings rs)",
        "modifiers": ["protected", "virtual"],
        "protected": true,
        "virtual": true,
        "summary": "Override this when you need to handle background changes (through RenderSettings)"
      },
      {
        "signature": "System.Void ApplySkylightChanges(Skylight skylight)",
        "modifiers": ["protected", "virtual"],
        "protected": true,
        "virtual": true,
        "summary": "Override this when you want to handle skylight changes"
      },
      {
        "signature": "System.Void ApplySunChanges(Geometry.Light sun)",
        "modifiers": ["protected", "virtual"],
        "protected": true,
        "virtual": true,
        "summary": "Override this when you want to handle sun changes"
      },
      {
        "signature": "System.Void ApplyViewChange(ViewInfo viewInfo)",
        "modifiers": ["protected", "virtual"],
        "protected": true,
        "virtual": true,
        "summary": "Override ApplyViewChange when you want to receive changes to the view/camera",
        "parameters": [
          {
            "name": "viewInfo",
            "type": "ViewInfo",
            "summary": "The ViewInfo with the changes"
          }
        ]
      },
      {
        "signature": "System.Boolean AreViewsEqual(ViewInfo aView, ViewInfo bView)",
        "modifiers": ["public", "virtual"],
        "protected": false,
        "virtual": true,
        "summary": "Compare to ViewInfo instances and decide whether they are equal or not.  If you need to change the way the comparison is done you can override this function and implement your custom comparison.",
        "since": "6.0",
        "parameters": [
          {
            "name": "aView",
            "type": "ViewInfo",
            "summary": "First ViewInfo to compare"
          },
          {
            "name": "bView",
            "type": "ViewInfo",
            "summary": "Second ViewInfo to compare"
          }
        ],
        "returns": "True if the views are considered equal"
      },
      {
        "signature": "BakingFunctions BakeFor()",
        "modifiers": ["protected", "virtual"],
        "protected": true,
        "virtual": true,
        "summary": "Override this if you need to control baking behavior for textures. By default bake everything."
      },
      {
        "signature": "System.Int32 BakingSize(RhinoObject ro, RenderMaterial material, TextureType type)",
        "modifiers": ["protected", "virtual"],
        "protected": true,
        "virtual": true,
        "summary": "Override this if you need to control the size of the baked bitmaps for textures. By default the value returned is 2048."
      },
      {
        "signature": "System.UInt32 ContentRenderHash(RenderContent content, CrcRenderHashFlags flags, System.String excludeParameterNames, LinearWorkflow lw)",
        "modifiers": ["protected", "virtual"],
        "protected": true,
        "virtual": true,
        "summary": "Override this if you need to modify the way render hashes are calcuated in the change queue.  This will alter the way materials are grouped."
      },
      {
        "signature": "System.Void CreateWorld()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Calls CreateWorld with True passed.",
        "since": "6.0"
      },
      {
        "signature": "System.Void CreateWorld(System.Boolean bFlushWhenReady)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Signal the queue to do the initialisation of the queue, seeding it with the content currently available.",
        "since": "6.0",
        "parameters": [
          {
            "name": "bFlushWhenReady",
            "type": "System.Boolean",
            "summary": "Set to True CreateWorld should automatically flush at the end. Note that the Flush called when True is passed doesn't apply changes."
          }
        ]
      },
      {
        "signature": "System.Void Dispose()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Dispose our ChangeQueue",
        "since": "6.0"
      },
      {
        "signature": "System.Void Dispose(System.Boolean isDisposing)",
        "modifiers": ["protected", "virtual"],
        "protected": true,
        "virtual": true,
        "summary": "Dispose our ChangeQueue. Disposes unmanaged memory."
      },
      {
        "signature": "RenderEnvironment EnvironmentForid(System.UInt32 crc)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Get RenderEnvironment for given RenderHash. Can return null.",
        "since": "6.0",
        "returns": "RenderEnvironment if render hash gives a match, None otherwise"
      },
      {
        "signature": "RenderEnvironment EnvironmentFromOriginalInstanceId(System.Guid id)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Get the RenderEnvironment from the ChangeQueue content cache from the original instance id",
        "since": "8.5",
        "parameters": [
          {
            "name": "id",
            "type": "System.Guid",
            "summary": "The original instance id"
          }
        ],
        "returns": "RenderEnvironment"
      },
      {
        "signature": "System.UInt32 EnvironmentIdForUsage(RenderEnvironment.Usage usage)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Get RenderEnvironment RenderHash for given usage.",
        "since": "6.0"
      },
      {
        "signature": "System.Void Flush()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Tell the ChangeQueue to flush all collected events.  This can trigger a host of Apply* calls.  The following is the order in which those calls get made if there are changes for that specific data type:  ApplyViewChange ApplyLinearWorkflowChanges ApplyDynamicObjectTransforms ApplyDynamicLightChanges ApplyRenderSettingsChanges ApplyEnvironmentChanges (background) ApplyEnvironmentChanges (refl) ApplyEnvironmentChanges (sky) ApplySkylightChanges ApplySunChanges ApplyLightChanges ApplyMaterialChanges ApplyMeshChanges ApplyMeshInstanceChanges ApplyGroundPlaneChanges ApplyClippingPlaneChanges",
        "since": "6.0"
      },
      {
        "signature": "GroundPlane GetQueueGroundPlane()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Get groundplane known to the queue at the time of the Flush",
        "since": "6.0"
      },
      {
        "signature": "RenderSettings GetQueueRenderSettings()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Get render settings known to the queue at the time of the Flush",
        "since": "6.0"
      },
      {
        "signature": "BoundingBox GetQueueSceneBoundingBox()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Get the scene bounding box",
        "since": "6.0",
        "returns": "Scene bounding box"
      },
      {
        "signature": "Skylight GetQueueSkylight()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Get skylight known to the queue at the time of the Flush",
        "since": "6.0"
      },
      {
        "signature": "Geometry.Light GetQueueSun()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Get sun known to the queue at the time of the Flush",
        "since": "6.0"
      },
      {
        "signature": "ViewInfo GetQueueView()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Get view known to the queue at the time of the Flush",
        "since": "6.0",
        "returns": "ViewInfo"
      },
      {
        "signature": "RenderMaterial MaterialFromId(System.UInt32 crc)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Get the RenderMaterial from the ChangeQueue material cache based on RenderHash",
        "since": "6.0",
        "parameters": [
          {
            "name": "crc",
            "type": "System.UInt32",
            "summary": "The RenderHash"
          }
        ],
        "returns": "RenderMaterial"
      },
      {
        "signature": "RenderMaterial MaterialFromOriginalInstanceId(System.Guid id)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Get the RenderMaterial from the ChangeQueue material cache from the original instance id",
        "since": "8.5",
        "parameters": [
          {
            "name": "id",
            "type": "System.Guid",
            "summary": "The original instance id"
          }
        ],
        "returns": "RenderMaterial"
      },
      {
        "signature": "System.Void NotifyBeginUpdates()",
        "modifiers": ["protected", "virtual"],
        "protected": true,
        "virtual": true,
        "summary": "Override this when you want to be notified of begin of changes"
      },
      {
        "signature": "System.Void NotifyDynamicUpdatesAreAvailable()",
        "modifiers": ["protected", "virtual"],
        "protected": true,
        "virtual": true,
        "summary": "Override this when you want to be notified dynamic updates are available"
      },
      {
        "signature": "System.Void NotifyEndUpdates()",
        "modifiers": ["protected", "virtual"],
        "protected": true,
        "virtual": true,
        "summary": "Override this when you want to be notified when change notifications have ended."
      },
      {
        "signature": "System.Void OneShot()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Call Flush() once, after that automatically dispose the queue.",
        "since": "6.0"
      },
      {
        "signature": "System.Guid[] OriginalInstanceIdsFromEnvironmentId(System.UInt32 crc)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Return the collection of original document instance ids assocaited with the Environment id.",
        "since": "8.23",
        "parameters": [
          {
            "name": "crc",
            "type": "System.UInt32",
            "summary": "The Environment id"
          }
        ]
      },
      {
        "signature": "System.Guid[] OriginalInstanceIdsFromMaterialId(System.UInt32 crc)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Return the collection of original document instance ids assocaited with the material id.",
        "since": "8.23",
        "parameters": [
          {
            "name": "crc",
            "type": "System.UInt32",
            "summary": "The material id"
          }
        ]
      },
      {
        "signature": "System.Guid[] OriginalInstanceIdsFromTextureId(System.UInt32 crc)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Return the collection of original document instance ids assocaited with the Texture id.",
        "since": "8.23",
        "parameters": [
          {
            "name": "crc",
            "type": "System.UInt32",
            "summary": "The Texture id"
          }
        ]
      },
      {
        "signature": "System.Boolean ProvideOriginalObject()",
        "modifiers": ["protected", "virtual"],
        "protected": true,
        "virtual": true,
        "summary": "Override ProvideOriginalObject and return True if you want original objects supplied with ChangeQueue.Mesh. This will then also allow access to the Attributes.UserData of the original object from which the Mesh was generated."
      },
      {
        "signature": "System.Void RefreshMaterials()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Signal the queue to refresh all of the materials in the scene."
      },
      {
        "signature": "RenderTexture TextureForId(System.UInt32 crc)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Get RenderTexture for given RenderHash. Can return null.",
        "since": "7.0",
        "parameters": [
          {
            "name": "crc",
            "type": "System.UInt32",
            "summary": "render hash of the content to search for"
          }
        ],
        "returns": "RenderTexture if found for render hash, None otherwise"
      },
      {
        "signature": "RenderTexture TextureFromOriginalInstanceId(System.Guid id)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Get the RenderTexture from the ChangeQueue content cache from the original instance id",
        "since": "8.5",
        "parameters": [
          {
            "name": "id",
            "type": "System.Guid",
            "summary": "The original instance id"
          }
        ],
        "returns": "RenderTexture"
      }
    ]
  },
  {
    "namespace": "Rhino.Render.ChangeQueue",
    "name": "ChangeQueue.BakingFunctions",
    "dataType": "enum",
    "summary": "Enumeration of functions for baking to conduct.",
    "since": "6.0",
    "values": [
      {
        "signature": "None = 0x00",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "No baking"
      },
      {
        "signature": "Decals = 0x01",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Bake decals"
      },
      {
        "signature": "ProceduralTextures = 0x02",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Bake procedural textures"
      },
      {
        "signature": "CustomObjectMappings = 0x04",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Bake custom object mappings"
      },
      {
        "signature": "WcsBasedMappings = 0x08",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Bake WCS-based mappings"
      },
      {
        "signature": "MultipleMappingChannels = 0x10",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Bake multiple mapping channels"
      },
      {
        "signature": "NoRepeatTextures = 0x20",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Bake no-repeat textures"
      },
      {
        "signature": "All = 0xFFFFFFFF",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Bake everything"
      }
    ]

  },
  {
    "namespace": "Rhino.Render.ChangeQueue",
    "name": "ClippingPlane",
    "dataType": "class",
    "summary": "ChangeQueue clipping plane",
    "properties": [
      {
        "signature": "ObjectAttributes Attributes",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Get the ClippingPlaneObject for this clipping plane",
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "RhinoViewport[] ClipViewports",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Get an array of RhinoViewports this clipping plane is supposed to clip.",
        "since": "8.13",
        "property": ["get"]
      },
      {
        "signature": "Guid Id",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Get Guid for this clipping plane",
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "bool IsEnabled",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "True if clipping plane is enabled",
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "Plane Plane",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Get the plane that represents this clipping plane",
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "List<Guid> ViewIds",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Get list of Viewport IDs this clipping plane is supposed to clip.",
        "since": "6.0",
        "property": ["get"]
      }
    ]
  },
  {
    "namespace": "Rhino.Render.ChangeQueue",
    "name": "DisplayRenderSettings",
    "dataType": "class",
    "summary": "ChangeQueue DisplayRenderSettings",
    "properties": [
      {
        "signature": "bool CullBackFaces",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "True if backfaces should be culled",
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "bool ForceFlatShading",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "True if flat shading is forced",
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "bool SceneLightingOn",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "True if scene lighting is enabled",
        "since": "6.0",
        "property": ["get"]
      }
    ]
  },
  {
    "namespace": "Rhino.Render.ChangeQueue",
    "name": "DynamicObjectTransform",
    "dataType": "class",
    "summary": "ChangeQueue DynamicObject",
    "properties": [
      {
        "signature": "uint MeshInstanceId",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Get the mesh instance id for this dynamic object.",
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "Transform Transform",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Transform for the DynamicObject",
        "since": "6.0",
        "property": ["get"]
      }
    ],
    "methods": [
      {
        "signature": "System.String ToString()",
        "modifiers": ["public", "override"],
        "protected": false,
        "virtual": false,
        "summary": "String representation of DynamicObject"
      }
    ]
  },
  {
    "namespace": "Rhino.Render.ChangeQueue",
    "name": "Environment",
    "dataType": "class",
    "summary": "ChangeQueue environment"
  },
  {
    "namespace": "Rhino.Render.ChangeQueue",
    "name": "Environment.FrameBufferFillMode",
    "dataType": "enum",
    "summary": "Fillmode for background",
    "since": "6.0",
    "values": [
      {
        "signature": "None = 0",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "None set"
      },
      {
        "signature": "DefaultColor = 1",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Use default color"
      },
      {
        "signature": "SolidColor",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Use specified solid color"
      },
      {
        "signature": "Gradient2Color",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Use 2-color gradient"
      },
      {
        "signature": "Gradient4Color",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Use 4-color gradient (colors are specified by corners)"
      },
      {
        "signature": "Bitmap",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Use bitmap"
      },
      {
        "signature": "Renderer",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Use whatever renderer chooses"
      },
      {
        "signature": "Transparent",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Transparent background"
      },
      {
        "signature": "Force32Bit = 0xffffffff",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Use 32bit color @todo verify what this means"
      }
    ]

  },
  {
    "namespace": "Rhino.Render.ChangeQueue",
    "name": "GroundPlane",
    "dataType": "class",
    "summary": "ChangeQueue ground plane",
    "properties": [
      {
        "signature": "double Altitude",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Get the altitude for ground plane",
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "uint Crc",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Get the checksum of this groundplane object",
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "bool Enabled",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Return True if ground plane is enabled",
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "bool IsShadowOnly",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Get True if ground plane should be shadow-only",
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "uint MaterialId",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "The CRC / RenderHash of the material on this ground plane",
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "bool ShowUnderside",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "True if ground plane underside should be shown.",
        "since": "7.9",
        "property": ["get"]
      },
      {
        "signature": "Vector2d TextureOffset",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Get texture offset on the ground plane",
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "double TextureRotation",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Get texture rotation on the ground plane",
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "Vector2d TextureScale",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Get texture scale on the ground plane",
        "since": "6.0",
        "property": ["get"]
      }
    ]
  },
  {
    "namespace": "Rhino.Render.ChangeQueue",
    "name": "Light",
    "dataType": "class",
    "summary": "ChangeQueue Light change representation",
    "properties": [
      {
        "signature": "Event ChangeType",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Get what type of light change this represents",
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "Light Data",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Get the actual light data",
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "Guid Id",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Get the light object id",
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "uint IdCrc",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Get CRC computed from Id",
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "uint MaterialId",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Get material ID of the material assigned to the light. Material ID is 0 if no material was assigned.",
        "since": "7.9",
        "property": ["get"]
      }
    ]
  },
  {
    "namespace": "Rhino.Render.ChangeQueue",
    "name": "Light.Event",
    "dataType": "enum",
    "summary": "Light change type",
    "since": "6.0",
    "values": [
      {
        "signature": "Added",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Light was added"
      },
      {
        "signature": "Deleted",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Light was deleted"
      },
      {
        "signature": "Undeleted",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Light was undeleted"
      },
      {
        "signature": "Modified",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Light was modified"
      },
      {
        "signature": "Sorted",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Light was sorted in LightTable"
      }
    ]

  },
  {
    "namespace": "Rhino.Render.ChangeQueue",
    "name": "MappingChannel",
    "dataType": "class",
    "summary": "Mapping Channel for a ChangeQueue Mesh",
    "properties": [
      {
        "signature": "int Channel",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Get channel number for this MappingChannel",
        "since": "8.12",
        "property": ["get"]
      },
      {
        "signature": "Transform Local",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Local transform for the mapping",
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "TextureMapping Mapping",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Return TexturMapping for this MappingChannel",
        "since": "6.0",
        "property": ["get"]
      }
    ]
  },
  {
    "namespace": "Rhino.Render.ChangeQueue",
    "name": "MappingChannelCollection",
    "dataType": "class",
    "summary": "MappingChannels for a Mesh",
    "properties": [
      {
        "signature": "IEnumerable<MappingChannel> Channels",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Enumerate all available channels in this mapping",
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "int Count",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Get count of MappingChannels in this collection",
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "MappingChannel SingleMapping",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "8.0",
        "property": ["get"]
      },
      {
        "signature": "MappingChannel this[int i]",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Get MappingChannel on index"
      }
    ]
  },
  {
    "namespace": "Rhino.Render.ChangeQueue",
    "name": "Material",
    "dataType": "class",
    "summary": "Representation of a Material through the change queue",
    "properties": [
      {
        "signature": "uint Id",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Get the material ID (crc)",
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "int MeshIndex",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Get mesh index",
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "uint MeshInstanceId",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Get the material InstanceAncestry",
        "since": "6.0",
        "property": ["get"]
      }
    ]
  },
  {
    "namespace": "Rhino.Render.ChangeQueue",
    "name": "Mesh",
    "dataType": "class",
    "summary": "Representation of ChangeQueue Mesh",
    "properties": [
      {
        "signature": "ObjectAttributes Attributes",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Get object attributes of object associated to this mesh. This will be possible only after returning True from ChangeQueue.ProvideOriginalObject()",
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "MappingChannelCollection Mapping",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Get the mapping for this mesh.",
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "MappingChannel[] Mappings",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Get the mapping channels for this mesh",
        "since": "8.0",
        "property": ["get"]
      },
      {
        "signature": "RhinoObject Object",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Get a copy of the original RhinoObject this Mesh is created from. Possible only after return True from ChangeQueue.ProvideOriginalObject().  Access this only with a using(var o = mesh.Object) {} construct.  Note that the object is free floating, i.e. not part of a document.",
        "since": "6.8",
        "property": ["get"]
      },
      {
        "signature": "Transform OcsTransform",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "OCS Transform for the MeshInstance - this is the Object Coordinate System texture mapping transformation set in the texture mapping properties dialog. (identity means no OCS, potentially just simple WCS/WCS Box)",
        "since": "8.0",
        "property": ["get"]
      },
      {
        "signature": "MappingChannel SingleMapping",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Get texture mapping info as single mapping",
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "Mesh SingleMesh",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Get the single mesh.",
        "since": "8.0",
        "property": ["get"]
      }
    ],
    "methods": [
      {
        "signature": "Geometry.Mesh[] GetMeshes()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Get a SimpleArrayMeshPointer containing all meshes for the related Mesh Since Rhino 8.0, this function only ever returns a single mesh.  Use the Mesh property to get this single mesh.",
        "since": "6.0"
      },
      {
        "signature": "System.Guid Id()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Get the Object Guid this mesh is for.",
        "since": "6.0",
        "returns": "Guid of parent object."
      }
    ]
  },
  {
    "namespace": "Rhino.Render.ChangeQueue",
    "name": "MeshInstance",
    "dataType": "class",
    "summary": "Representation of ChangeQueue MeshInstance",
    "properties": [
      {
        "signature": "AncestryRecord[] Ancestry",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns a the ancestry information for this object.  Note well - the ancestry records contain complete copies of the object attributes for each level of the block hierarchy.  Please do not be tempted to use the ModelObjectId of the instance objects to look them up in the document - the document may have changed since the change queue entries were added.",
        "since": "8.2",
        "property": ["get"]
      },
      {
        "signature": "bool CastShadows",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Return True if mesh instance should cast shadows",
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "Decals Decals",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Read-only access to the decals for this MeshInstance if any. Null if no object attributes exist for this mesh instance.",
        "since": "7.0",
        "property": ["get"]
      },
      {
        "signature": "uint GroupId",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Get identifier that specifies the grouping of these mesh instances - usually based on the object that this originally comprised.",
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "uint InstanceId",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Get the instance identifier for this mesh instance.",
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "uint MaterialId",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "The Material CRC / RenderHash",
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "Guid MeshId",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Get the mesh identifier for this mesh instance.",
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "int MeshIndex",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Get the mesh index for this mesh instance.",
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "ObjectAttributes ObjectAttributes",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "The ObjectAttributes associated with a MeshInstance",
        "since": "8.0",
        "property": ["get"]
      },
      {
        "signature": "Transform OcsTransform",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "OCS Transform for the MeshInstance - this is the Object Coordinate System texture mapping transformation set in the texture mapping properties dialog. (identity means no OCS, potentially just simple WCS/WCS Box)",
        "since": "7.0",
        "property": ["get"]
      },
      {
        "signature": "Guid ParentId",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Get the Guid of the object that is at the parent of the MeshInstance ancestry, or Guid.Empty if there is no parent.",
        "since": "7.1",
        "property": ["get"]
      },
      {
        "signature": "bool ReceiveShadows",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Return True if mesh instance should receive shadows",
        "since": "6.0",
        "obsolete": "Use ObjectAttributes",
        "property": ["get"]
      },
      {
        "signature": "RenderMaterial RenderMaterial",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "RenderMaterial associated with mesh instance",
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "Guid RootId",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Get the Guid of the object that is at the root of the MeshInstance ancestry, or Guid.Empty if this has no root.",
        "since": "7.1",
        "property": ["get"]
      },
      {
        "signature": "Transform Transform",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Transform for the MeshInstance",
        "since": "6.0",
        "property": ["get"]
      }
    ]
  },
  {
    "namespace": "Rhino.Render.ChangeQueue",
    "name": "MeshInstance.AncestryRecord",
    "dataType": "class",
    "summary": "Information about the ancestry of a MeshInstance",
    "interfaces": ["IDisposable"],
    "constructors": [
      {
        "signature": "MeshInstance.AncestryRecord()",
        "summary": "Initializes a new instance of the MeshInstance.AncestryRecord class"
      }
    ],
    "properties": [
      {
        "signature": "Guid DefinitionId",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "The ModelObjectId of the InstanceDefinition",
        "since": "8.2",
        "property": ["get"]
      },
      {
        "signature": "ObjectAttributes ReferenceAttributes",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "The object attributes from the InstanceObject",
        "since": "8.2",
        "property": ["get"]
      },
      {
        "signature": "Guid ReferenceId",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "The ModelObjectId of the InstanceObject",
        "since": "8.2",
        "property": ["get"]
      },
      {
        "signature": "Transform Transform",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "The transform from the InstanceObject",
        "since": "8.2",
        "property": ["get"]
      }
    ],
    "methods": [
      {
        "signature": "System.Void Dispose()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Dispose",
        "since": "8.2"
      },
      {
        "signature": "System.Void Dispose(System.Boolean isDisposing)",
        "modifiers": ["protected", "virtual"],
        "protected": true,
        "virtual": true,
        "summary": "Dispose. Disposes unmanaged memory."
      }
    ]
  },
  {
    "namespace": "Rhino.Render.ChangeQueue",
    "name": "Skylight",
    "dataType": "class",
    "summary": "ChangeQueue skylight",
    "properties": [
      {
        "signature": "bool Enabled",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Return True if skylight is enabled",
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "double ShadowIntensity",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Get shadow intensity for skylight. This is unused at present.",
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "bool UsesCustomEnvironment",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Return True if skylight uses custom environment",
        "since": "6.0",
        "property": ["get"]
      }
    ],
    "methods": [
      {
        "signature": "System.String ToString()",
        "modifiers": ["public", "override"],
        "protected": false,
        "virtual": false,
        "summary": "Textual representation of Skylight"
      }
    ]
  },
  {
    "namespace": "Rhino.Render.ChildSlotNames",
    "name": "PhysicallyBased",
    "dataType": "class",
    "summary": "Helper class with properties containing the names of children available in our PBR implementation.",
    "constructors": [
      {
        "signature": "PhysicallyBased()",
        "summary": "Initializes a new instance of the PhysicallyBased class"
      }
    ],
    "properties": [
      {
        "signature": "string Alpha",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "7.0",
        "property": ["get"]
      },
      {
        "signature": "string AmbientOcclusion",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "7.0",
        "property": ["get"]
      },
      {
        "signature": "string Anisotropic",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "7.0",
        "property": ["get"]
      },
      {
        "signature": "string AnisotropicRotation",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "7.0",
        "property": ["get"]
      },
      {
        "signature": "string BaseColor",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "7.0",
        "property": ["get"]
      },
      {
        "signature": "string Bump",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "7.0",
        "property": ["get"]
      },
      {
        "signature": "string Clearcoat",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "7.0",
        "property": ["get"]
      },
      {
        "signature": "string ClearcoatBump",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "7.0",
        "property": ["get"]
      },
      {
        "signature": "string ClearcoatRoughness",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "7.0",
        "property": ["get"]
      },
      {
        "signature": "string Displacement",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "7.0",
        "property": ["get"]
      },
      {
        "signature": "string Emission",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "7.0",
        "property": ["get"]
      },
      {
        "signature": "string Metallic",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "7.0",
        "property": ["get"]
      },
      {
        "signature": "string Opacity",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "7.0",
        "property": ["get"]
      },
      {
        "signature": "string OpacityIor",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "7.0",
        "property": ["get"]
      },
      {
        "signature": "string OpacityRoughness",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "7.0",
        "property": ["get"]
      },
      {
        "signature": "string Roughness",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "7.0",
        "property": ["get"]
      },
      {
        "signature": "string Sheen",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "7.0",
        "property": ["get"]
      },
      {
        "signature": "string SheenTint",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "7.0",
        "property": ["get"]
      },
      {
        "signature": "string Specular",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "7.0",
        "property": ["get"]
      },
      {
        "signature": "string SpecularTint",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "7.0",
        "property": ["get"]
      },
      {
        "signature": "string Subsurface",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "7.0",
        "property": ["get"]
      },
      {
        "signature": "string SubsurfaceScatteringColor",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "7.0",
        "property": ["get"]
      },
      {
        "signature": "string SubsurfaceScatteringRadius",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "7.0",
        "property": ["get"]
      }
    ],
    "methods": [
      {
        "signature": "System.String FromTextureType(Rhino.DocObjects.TextureType textureType)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "7.0"
      }
    ]
  },
  {
    "namespace": "Rhino.Render",
    "name": "City",
    "dataType": "class",
    "summary": "City",
    "properties": [
      {
        "signature": "double Latitude",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets latitude of city.",
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "double Longitude",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets longitude of city.",
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "String Name",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets name of city.",
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "double TimeZone",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets time zone of city.",
        "since": "6.0",
        "property": ["get"]
      }
    ],
    "methods": [
      {
        "signature": "System.Int32 Cities()",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Returns number of available cities.",
        "since": "6.0",
        "returns": "City count."
      },
      {
        "signature": "City CityAt(System.Int32 index)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Returns city at given index.",
        "since": "6.0",
        "parameters": [
          {
            "name": "index",
            "type": "System.Int32",
            "summary": "index."
          }
        ],
        "returns": "City at index."
      },
      {
        "signature": "City FindNearest(System.Double latitude, System.Double longitude)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Finds nearest city of specified input parameters.",
        "since": "6.0",
        "parameters": [
          {
            "name": "latitude",
            "type": "System.Double",
            "summary": "latitude."
          },
          {
            "name": "longitude",
            "type": "System.Double",
            "summary": "longitude."
          }
        ],
        "returns": "Nearest city."
      }
    ]
  },
  {
    "namespace": "Rhino.Render",
    "name": "ComponentOrders",
    "dataType": "enum",
    "summary": "Pixel component order for channels in the RenderWindow and PostEffects.",
    "since": "7.0",
    "values": [
      {
        "signature": "Irrelevant = 0x00",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Used in single-value channels."
      },
      {
        "signature": "RGBA = 0x01",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "This is the default (to match Rhino 5)"
      },
      {
        "signature": "ARGB = 0x02",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "ARGB component order"
      },
      {
        "signature": "RGB = 0x03",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "This will only access 3 components, even in the case of the RGBA channel"
      },
      {
        "signature": "BGR = 0x04",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "This will only access 3 components, even in the case of the RGBA channel."
      },
      {
        "signature": "ABGR = 0x05",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "ABGR component order"
      },
      {
        "signature": "BGRA = 0x06",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "BGRA component order"
      },
      {
        "signature": "XYZ = RGB",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "For readability when using the Normal XYZ channel.  Same as RGB"
      },
      {
        "signature": "ZYX = BGR",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "For readability when using the Normal XYZ channel.  Same as BGR"
      }
    ]

  },
  {
    "namespace": "Rhino.Render",
    "name": "ContentCollectionIterator",
    "dataType": "class",
    "summary": "An iterator for the RenderContentCollection",
    "interfaces": ["IDisposable"],
    "constructors": [
      {
        "signature": "ContentCollectionIterator(IntPtr pCollection)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0"
      }
    ],
    "properties": [
      {
        "signature": "IntPtr CppPointer",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get"]
      }
    ],
    "methods": [
      {
        "signature": "System.Void DeleteThis()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "deprecated": "9.0"
      },
      {
        "signature": "System.Void Dispose()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0"
      },
      {
        "signature": "RenderContent First()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0"
      },
      {
        "signature": "RenderContent Next()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0"
      }
    ]
  },
  {
    "namespace": "Rhino.Render",
    "name": "ContentUndoBlocker",
    "dataType": "class",
    "interfaces": ["IDisposable"],
    "constructors": [
      {
        "signature": "ContentUndoBlocker()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Constructs a ContentUndoBlocker object inside a using block to block undo when modifying a RenderContent while a ContentUndoHelper is active. Alternatively - create the ContentUndoBlocker and explicitly call Dispose when you are done.",
        "since": "5.10"
      }
    ],
    "methods": [
      {
        "signature": "System.Void Dispose()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.10"
      },
      {
        "signature": "System.Void Dispose(System.Boolean isDisposing)",
        "modifiers": ["protected", "virtual"],
        "protected": true,
        "virtual": true
      }
    ]
  },
  {
    "namespace": "Rhino.Render",
    "name": "ContentUndoHelper",
    "dataType": "class",
    "summary": "Content undo helper to be used with \"using {}\" to enclose a block of changes.",
    "interfaces": ["IDisposable"],
    "constructors": [
      {
        "signature": "ContentUndoHelper(RhinoDoc doc, String description)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "DEPRECATED: Constructs a ContentUndoHelper object inside a using block to handle undo when modifying a RenderContent or - alternatively - create the ContentUndoHelper and explicitly call Dispose when you are done.",
        "since": "6.0",
        "deprecated": "8.0",
        "parameters": [
          {
            "name": "doc",
            "type": "RhinoDoc",
            "summary": ""
          },
          {
            "name": "description",
            "type": "System.String",
            "summary": "Unused: Undo description (which appears in the UI when undo is run)"
          }
        ]
      },
      {
        "signature": "ContentUndoHelper(RhinoDoc doc)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Constructs a ContentUndoHelper object inside a using block to handle undo when modifying a RenderContent or - alternatively - create the ContentUndoHelper and explicitly call Dispose when you are done.",
        "since": "8.0"
      }
    ],
    "methods": [
      {
        "signature": "System.Boolean AddContent(RenderContent content, RenderContent parent)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Call this *after* adding a content. Undo will cause the content to be deleted.",
        "since": "6.0",
        "parameters": [
          {
            "name": "content",
            "type": "RenderContent",
            "summary": "Content you just added to the ContentList."
          },
          {
            "name": "parent",
            "type": "RenderContent",
            "summary": "is the content that will become the parent of the new content, or None if the new content is being added at the top level (i.e., not a child)."
          }
        ],
        "returns": "True if the content was added."
      },
      {
        "signature": "System.Void Dispose()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0"
      },
      {
        "signature": "System.Void Dispose(System.Boolean isDisposing)",
        "modifiers": ["protected", "virtual"],
        "protected": true,
        "virtual": true
      },
      {
        "signature": "System.Boolean ModifyContent(RenderContent content)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Call this before modifying or deleting a content. Undo will cause the content to be restored.",
        "since": "6.0",
        "parameters": [
          {
            "name": "content",
            "type": "RenderContent",
            "summary": "Content you are about to modify."
          }
        ],
        "returns": "True if the content was modified."
      },
      {
        "signature": "System.Boolean TweakContent(RenderContent content, System.String parameterName)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Call this before tweaking a single content parameter. Undo will cause the parameter to be restored.",
        "since": "6.0",
        "parameters": [
          {
            "name": "content",
            "type": "RenderContent",
            "summary": "The render content"
          },
          {
            "name": "parameterName",
            "type": "System.String",
            "summary": "The parameter name you are about to change."
          }
        ],
        "returns": "True if the content was tweaked."
      }
    ]
  },
  {
    "namespace": "Rhino.Render",
    "name": "ContentUuids",
    "dataType": "class",
    "summary": "Content Guids of RenderContent provided by the RDK SDK.  These Guids can be used to check against RenderContent.TypeId.",
    "constructors": [
      {
        "signature": "ContentUuids()",
        "summary": "Initializes a new instance of the ContentUuids class"
      }
    ],
    "properties": [
      {
        "signature": "Guid AddTextureType",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "8.0",
        "property": ["get"]
      },
      {
        "signature": "Guid AdvancedDotTextureType",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "Guid BasicEnvironmentCCI",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "Guid BasicEnvironmentType",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "Guid BasicMaterialCCI",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "Guid BasicMaterialType",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "Guid BitmapTextureType",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "Guid BlendMaterialCCI",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "Guid BlendMaterialType",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "Guid BlendTextureType",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "Guid CompositeMaterialCCI",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "Guid CompositeMaterialType",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "Guid CrossHatchBumpTexture",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "Guid CubeMapTextureType",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "Guid DefaultEnvironmentInstance",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "Guid DefaultMaterialInstance",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "Guid DisplayAttributeMaterialType",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "7.5",
        "property": ["get"]
      },
      {
        "signature": "Guid DotBumpTexture",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "Guid DoubleSidedMaterialType",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "7.0",
        "property": ["get"]
      },
      {
        "signature": "Guid EmissionMaterialType",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "7.0",
        "property": ["get"]
      },
      {
        "signature": "Guid ExposureTextureType",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "Guid EXRTextureType",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "Guid FBmTextureType",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "Guid GemMaterialType",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "Guid GlassMaterialType",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "Guid GradientTextureType",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "Guid GraniteTextureType",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "Guid GridTextureType",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "Guid GritBumpTexture",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "Guid HatchBumpTexture",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "Guid HDRTextureType",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "Guid LeatherBumpTexture",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "Guid MarbleTextureType",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "Guid MaskTextureType",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "Guid MetalMaterialType",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "Guid MultiplyTextureType",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "8.0",
        "property": ["get"]
      },
      {
        "signature": "Guid NoiseTextureType",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "Guid PaintMaterialType",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "Guid PerlinMarbleTextureType",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "Guid PerturbingTextureType",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "Guid PhysicallyBasedMaterialType",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "7.0",
        "property": ["get"]
      },
      {
        "signature": "Guid PhysicalSkyTextureType",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "8.0",
        "property": ["get"]
      },
      {
        "signature": "Guid PictureMaterialType",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "Guid PlasterMaterialType",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "Guid PlasticMaterialType",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "Guid ProjectionChangerTextureType",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "Guid RealtimeDisplayMaterialType",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "Guid ResampleTextureType",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "Guid SimpleBitmapTextureType",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "Guid SingleColorTextureType",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "Guid SpeckleBumpTexture",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "Guid StuccoTextureType",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "Guid Texture2DCheckerTextureType",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "Guid Texture3DCheckerTextureType",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "Guid TextureAdjustmentTextureType",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "Guid TileTextureType",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "Guid TurbulenceTextureType",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "Guid V8BlendMaterialType",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Rhino V8 Blend material type Guid",
        "since": "8.0",
        "property": ["get"]
      },
      {
        "signature": "Guid WavesTextureType",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "Guid WoodBumpTexture",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "Guid WoodTextureType",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get"]
      }
    ]
  },
  {
    "namespace": "Rhino.Render",
    "name": "ConvertibleExtensions",
    "dataType": "class",
    "summary": "Extension methods for IConvertible that work when an object is a Variant.",
    "constructors": [
      {
        "signature": "ConvertibleExtensions()",
        "summary": "Initializes a new instance of the ConvertibleExtensions class"
      }
    ],
    "methods": [
      {
        "signature": "Color4f ToColor4f(this System.IConvertible variant)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "6.0"
      },
      {
        "signature": "Vector2d ToVector2d(this System.IConvertible variant)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "6.0"
      },
      {
        "signature": "Vector3d ToVector3d(this System.IConvertible variant)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "6.0"
      }
    ]
  },
  {
    "namespace": "Rhino.Render",
    "name": "CrcRenderHashFlags",
    "dataType": "enum",
    "since": "6.2",
    "values": [
      {
        "signature": "Normal = 0",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Normal render CRC; nothing is excluded."
      },
      {
        "signature": "ExcludeLinearWorkflow = 1",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Linear Workflow color and texture changes are not included."
      },
      {
        "signature": "ExcludeLocalMapping = 2",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Local mapping is excluded (only used by Textures)."
      },
      {
        "signature": "ExcludeUnits = 4",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Units are excluded (only used by Textures)."
      },
      {
        "signature": "Reserved2              = 8",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Reserved for future use"
      },
      {
        "signature": "ForSimulation          = ExcludeLinearWorkflow",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Use this flag when simulating"
      },
      {
        "signature": "ExcludeDocumentEffects = ExcludeLinearWorkflow | ExcludeUnits | Reserved2",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Use this flag when you want to calculate the CRC independantly of any effect the document has on the content."
      }
    ]

  },
  {
    "namespace": "Rhino.Render",
    "name": "CreatePreviewEventArgs",
    "dataType": "class",
    "summary": "Used in RenderPlugIn virtual CreatePreview function",
    "baseclass": "EventArgs",
    "properties": [
      {
        "signature": "bool Cancel",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Get set by Rhino if the preview generation should be canceled for this",
        "since": "5.1",
        "property": ["get", "set"]
      },
      {
        "signature": "RenderContentKind ContentKind",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Description of content that preview is being generated for.",
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "Guid ContentTypeId",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "The class Id of content that preview is being generated for.",
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "RenderEnvironment Environment",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "The environment that the previewed object is rendered in.",
        "since": "5.1",
        "property": ["get"]
      },
      {
        "signature": "int Id",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Unique Id for this scene.",
        "since": "5.1",
        "property": ["get"]
      },
      {
        "signature": "Light> Lights",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.1",
        "property": ["get"]
      },
      {
        "signature": "List<SceneObject> Objects",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.1",
        "property": ["get"]
      },
      {
        "signature": "RenderContent PreviewContent",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Obsolete, will return always null",
        "since": "5.1",
        "obsolete": "No one should really know what they are rendering for, just that they should render.",
        "property": ["get"]
      },
      {
        "signature": "Bitmap PreviewImage",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Initially null.  If this image is set, then this image will be used for the preview.  If never set, the default internal simulation preview will be used.",
        "since": "5.1",
        "property": ["get", "set"]
      },
      {
        "signature": "Size PreviewImageSize",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Pixel size of the image that is being requested for the preview scene",
        "since": "5.1",
        "property": ["get"]
      },
      {
        "signature": "PreviewNotification PreviewNotifier",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "PreviewSceneQuality Quality",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Quality of the preview image that is being requested for the preview scene",
        "since": "5.1",
        "property": ["get"]
      },
      {
        "signature": "CreatePreviewReason Reason",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Reason the preview is getting generated",
        "since": "5.11",
        "property": ["get"]
      },
      {
        "signature": "ViewportInfo Viewport",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.1",
        "property": ["get"]
      }
    ],
    "methods": [
      {
        "signature": "System.Void SkipInitialisation()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Call this if you don't want the argument to handle data initialisation.  This is for use with the ChangeQueue",
        "since": "6.0"
      }
    ]
  },
  {
    "namespace": "Rhino.Render",
    "name": "CreatePreviewEventArgs.SceneObject",
    "dataType": "class",
    "properties": [
      {
        "signature": "RenderMaterial Material",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.1",
        "property": ["get"]
      },
      {
        "signature": "Mesh Mesh",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.1",
        "property": ["get"]
      }
    ]
  },
  {
    "namespace": "Rhino.Render",
    "name": "CreatePreviewReason",
    "dataType": "enum",
    "summary": "Reason the content preview is being generated",
    "since": "5.11",
    "values": [
      {
        "signature": "ContentChanged = UnsafeNativeMethods.CRhRdkPlugInQuickPreviewReason.ContentChanged",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "ViewChanged = UnsafeNativeMethods.CRhRdkPlugInQuickPreviewReason.ViewChanged",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "RefreshDisplay = UnsafeNativeMethods.CRhRdkPlugInQuickPreviewReason.RefreshDisplay",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "UpdateBitmap = UnsafeNativeMethods.CRhRdkPlugInQuickPreviewReason.UpdateBitmap",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Other = UnsafeNativeMethods.CRhRdkPlugInQuickPreviewReason.Other",
        "modifiers": [],
        "protected": false,
        "virtual": false
      }
    ]

  },
  {
    "namespace": "Rhino.Render",
    "name": "CreateTexture2dPreviewEventArgs",
    "dataType": "class",
    "baseclass": "EventArgs",
    "properties": [
      {
        "signature": "Bitmap PreviewImage",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Initially null.  If this image is set, then this image will be used for the preview.  If never set, the default internal simulation preview will be used.",
        "since": "5.1",
        "property": ["get", "set"]
      },
      {
        "signature": "Size PreviewImageSize",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Pixel size of the image that is being requested for the preview scene",
        "since": "5.1",
        "property": ["get"]
      }
    ]
  },
  {
    "namespace": "Rhino.Render",
    "name": "CustomRenderContentAttribute",
    "dataType": "class",
    "summary": "Attributes for RenderContent",
    "baseclass": "Attribute",
    "constructors": [
      {
        "signature": "CustomRenderContentAttribute(string renderEngineGuid, bool imageBased, string category, bool is_elevated, bool is_built_in, bool is_private, bool is_linear, bool is_hdrcapable, bool is_normalmap)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.16"
      },
      {
        "signature": "CustomRenderContentAttribute(string renderEngineGuid, bool imageBased, string category, bool is_elevated, bool is_built_in, bool is_private)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0"
      }
    ],
    "properties": [
      {
        "signature": "string Category",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool ImageBased",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool IsBuiltIn",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool IsElevated",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool IsHdrCapable",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.16",
        "property": ["get", "set"]
      },
      {
        "signature": "bool IsLinear",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.16",
        "property": ["get", "set"]
      },
      {
        "signature": "bool IsNormalMap",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.16",
        "property": ["get", "set"]
      },
      {
        "signature": "bool IsPrivate",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "Guid RenderEngineId",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get", "set"]
      }
    ]
  },
  {
    "namespace": "Rhino.Render.CustomRenderMeshes",
    "name": "CustomRenderMeshProviderAttribute",
    "dataType": "class",
    "summary": "Attributes for RenderMeshProvider",
    "baseclass": "Attribute",
    "constructors": [
      {
        "signature": "CustomRenderMeshProviderAttribute(bool nonObjectIdsOnly)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Constructor",
        "since": "8.8"
      }
    ],
    "properties": [
      {
        "signature": "bool NonObjectIdsOnly",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "If set to true, this will quickly return False for HasCustomRenderMeshes if the objectId is in the document.",
        "since": "8.8",
        "property": ["get", "set"]
      }
    ]
  },
  {
    "namespace": "Rhino.Render.CustomRenderMeshes",
    "name": "Instance",
    "dataType": "class",
    "summary": "The core of the custom render primitive delivery system - and instance defines a single mesh. Each instance has a shared mesh and a transform, along with a material, mapping channels (at the mesh and instance level).",
    "interfaces": ["IDisposable"],
    "constructors": [
      {
        "signature": "Instance()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Construct a new Instance object",
        "since": "8.0"
      }
    ],
    "properties": [
      {
        "signature": "bool IsForcedMaterial",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "The material for this instance should override any display mode materials.",
        "since": "8.11",
        "property": ["get", "set"]
      },
      {
        "signature": "bool IsRequestingPlugInDependent",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "If this instance will change depending on the requesting plug-in.",
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool IsViewDependent",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "If this instance will change depending on the view direction.",
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "RenderMaterial Material",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "The material for this instance.",
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "Mesh Mesh",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns the mesh associated with this geometry.  Note that this function will always return a mesh even if the type is not a mesh...so you can always call this function without checking the type to give you the mesh.  It's more efficient to use the primitive directly of course...but if you don't support it...",
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "Transform Transform",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "The transform for this instance.  Transform the geometry by this to set its final location in world space.",
        "since": "8.0",
        "property": ["get", "set"]
      }
    ],
    "methods": [
      {
        "signature": "System.Void Dispose()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Dispose method",
        "since": "8.0"
      },
      {
        "signature": "System.Void Dispose(System.Boolean isDisposing)",
        "modifiers": ["protected", "virtual"],
        "protected": true,
        "virtual": true,
        "summary": "Dispose method."
      }
    ]
  },
  {
    "namespace": "Rhino.Render.CustomRenderMeshes",
    "name": "MeshProviderIds",
    "dataType": "class",
    "summary": "Built in primitive provider ids.",
    "constructors": [
      {
        "signature": "MeshProviderIds()",
        "summary": "Initializes a new instance of the MeshProviderIds class"
      }
    ],
    "properties": [
      {
        "signature": "Guid CurvePiping",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "8.0",
        "property": ["get"]
      },
      {
        "signature": "Guid Displacement",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "8.0",
        "property": ["get"]
      },
      {
        "signature": "Guid EdgeSoftening",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "8.0",
        "property": ["get"]
      },
      {
        "signature": "Guid Shutlining",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "8.0",
        "property": ["get"]
      },
      {
        "signature": "Guid Thickening",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "8.0",
        "property": ["get"]
      }
    ]
  },
  {
    "namespace": "Rhino.Render.CustomRenderMeshes",
    "name": "RenderMeshes",
    "dataType": "class",
    "summary": "RenderMeshes is a collection of geometry instances for a given ObjectId typically returned by the Custom Render primitive system. As each set of primitives is returned by the RenderMeshProviders in turn, the running hash is updated with new information about the primitive modifications that have been made along the way.",
    "interfaces": ["IDisposable", "IEnumerable<Instance>"],
    "constructors": [
      {
        "signature": "RenderMeshes(RhinoDoc doc, Guid objectId, Guid renderMeshProviderId, uint runningHash, uint flags)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Create a new render primitives collection.",
        "since": "8.0",
        "parameters": [
          {
            "name": "doc",
            "type": "RhinoDoc",
            "summary": "The Rhino document with which this collection will be associated."
          },
          {
            "name": "objectId",
            "type": "System.Guid",
            "summary": "The ObjectId that this collection is for."
          },
          {
            "name": "renderMeshProviderId",
            "type": "System.Guid",
            "summary": "The RenderMeshProvider that created this collection - if this is the first in the stack, typically this will be ON_nil_uuid."
          },
          {
            "name": "runningHash",
            "type": "System.UInt32",
            "summary": "The running hash of this collection - each RenderMeshProvider will update the hash with its own modification hash."
          },
          {
            "name": "flags",
            "type": "System.UInt32",
            "summary": "The flags these render meshes were created with."
          }
        ]
      },
      {
        "signature": "RenderMeshes(RhinoDoc doc, Guid objectId, Guid renderMeshProviderId, uint runningHash)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Create a new render primitives collection.",
        "since": "8.0",
        "deprecated": "8.14",
        "parameters": [
          {
            "name": "doc",
            "type": "RhinoDoc",
            "summary": "The Rhino document with which this collection will be associated."
          },
          {
            "name": "objectId",
            "type": "System.Guid",
            "summary": "The ObjectId that this collection is for."
          },
          {
            "name": "renderMeshProviderId",
            "type": "System.Guid",
            "summary": "The RenderMeshProvider that created this collection - if this is the first in the stack, typically this will be ON_nil_uuid."
          },
          {
            "name": "runningHash",
            "type": "System.UInt32",
            "summary": "The running hash of this collection - each RenderMeshProvider will update the hash with its own modification hash."
          }
        ]
      }
    ],
    "properties": [
      {
        "signature": "RhinoDoc Document",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "The document with which this IRenderMeshes object is associated.",
        "since": "8.0",
        "property": ["get"]
      },
      {
        "signature": "uint Hash",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "The running hash for these render meshes.",
        "since": "8.6",
        "property": ["get", "set"]
      },
      {
        "signature": "int InstanceCount",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "The number of instance objects in this collection.",
        "since": "8.0",
        "property": ["get"]
      },
      {
        "signature": "Guid ObjectId",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "The ObjectId with which this IRenderMeshes object is associated.",
        "since": "8.0",
        "property": ["get"]
      }
    ],
    "methods": [
      {
        "signature": "System.Void AddInstance(Instance instance)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Adds a new instance to the render primitives collection.",
        "since": "8.0",
        "parameters": [
          {
            "name": "instance",
            "type": "Instance",
            "summary": "The instance to be added."
          }
        ]
      },
      {
        "signature": "System.Void Dispose()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Dispose this collection",
        "since": "8.0"
      },
      {
        "signature": "System.Void Dispose(System.Boolean isDisposing)",
        "modifiers": ["protected", "virtual"],
        "protected": true,
        "virtual": true,
        "summary": "Dispose"
      },
      {
        "signature": "IEnumerator<Instance> GetEnumerator()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Return an object to iterator over the instances in the collection",
        "since": "8.0"
      },
      {
        "signature": "System.Int32 GetHashCode()",
        "modifiers": ["public", "override"],
        "protected": false,
        "virtual": false,
        "summary": "Overrides default hash code function - just returns Hash"
      }
    ]
  },
  {
    "namespace": "Rhino.Render.CustomRenderMeshes",
    "name": "RenderMeshProvider",
    "dataType": "class",
    "summary": "A RenderMeshProvider delivers custom render primitives (in the form of RenderMeshes).  Derive a public class from this with a public constructor, and this primitive provider will be added to the RDK forming a collection of providers. Each RenderMeshProvider::HasCustomRenderMeshes will be called and if it returns true, a call to RenderMeshes will be made. It is up to the provider to cache its own primitives - the IRenderMeshes::ProviderTracking class is provided for that. A provider may optionally return a collection of non-object Ids that it will provide custom render primitives for.  An example of this is Grasshopper, which which will typically return a collection of the Ids of each CustomPreview component. Override this class if you are a plug-in developer intending to supply a custom set of primitives for a given object, or objectId.  Examples of IRenderMeshProviders are CurvePiping, EdgeSoftening, Displacement, Shutlining, Grasshopper's CustomPreview component.",
    "interfaces": ["IDisposable"],
    "constructors": [
      {
        "signature": "RenderMeshProvider()",
        "summary": "Initializes a new instance of the RenderMeshProvider class"
      }
    ],
    "properties": [
      {
        "signature": "String Name",
        "modifiers": ["public", "abstract"],
        "protected": false,
        "virtual": false,
        "summary": "The localized name of the provider for UI display.",
        "since": "8.0",
        "property": ["get"]
      },
      {
        "signature": "List<Guid> NonObjectIds",
        "modifiers": ["public", "virtual"],
        "protected": false,
        "virtual": true,
        "summary": "A provider may optionally return a collection of non-object Ids that it will provide custom render primitives for.  An example of this is Grasshopper, which which will typically return a collection of the Ids of each CustomPreview component.",
        "since": "8.0",
        "property": ["get"]
      },
      {
        "signature": "Guid ProviderId",
        "modifiers": ["public", "virtual"],
        "protected": false,
        "virtual": true,
        "summary": "The localized name of the provider for UI display.",
        "since": "8.0",
        "property": ["get"]
      }
    ],
    "methods": [
      {
        "signature": "RenderMeshProviderProgress[] ProgressForAll(RhinoDoc doc, System.Guid[] optional_objectIds)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Returns a complete list of progress reports for all providers for either the document or a collection of objects",
        "since": "8.0"
      },
      {
        "signature": "System.Boolean RegisterProvider(RenderMeshProvider provider, PlugIns.PlugIn plugin)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Register RenderMeshProvider without relying on the auto-plug-in registration.",
        "since": "8.0"
      },
      {
        "signature": "System.Void RegisterProviders(PlugIns.PlugIn plugin)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Register RenderMeshProviders without relying on the auto-plug-in registration",
        "since": "8.0"
      },
      {
        "signature": "System.Void RegisterProviders(System.Reflection.Assembly assembly, PlugIns.PlugIn plugin)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Register RenderMeshProviders without relying on the auto-plug-in registration",
        "since": "8.0"
      },
      {
        "signature": "System.Void Dispose()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Dispose method",
        "since": "8.0"
      },
      {
        "signature": "System.Void Dispose(System.Boolean isDisposing)",
        "modifiers": ["protected", "virtual"],
        "protected": true,
        "virtual": true,
        "summary": "Dispose method.  Note that you should only ever call Dispose if you explicitly registered this RenderMeshProvider using RegisterProvider If this provider was created using automatic registration, the Dispose function will thrown an exception."
      },
      {
        "signature": "System.Object GetParameter(RhinoDoc doc, System.Guid objectId, System.String parameterName)",
        "modifiers": ["public", "virtual"],
        "protected": false,
        "virtual": true,
        "summary": "Runtime access to specific parameters on for a given objectId relating to this primitive provider.",
        "since": "8.0",
        "parameters": [
          {
            "name": "doc",
            "type": "RhinoDoc",
            "summary": "The Rhino document of interest."
          },
          {
            "name": "objectId",
            "type": "System.Guid",
            "summary": "The objectId for which the parameter should be supplied."
          },
          {
            "name": "parameterName",
            "type": "System.String",
            "summary": "The name of the parameter."
          }
        ],
        "returns": "The value of the parameter for the specified ObjectId. IConvertable."
      },
      {
        "signature": "System.Boolean HasCustomRenderMeshes(MeshType mt, ViewportInfo vp, RhinoDoc doc, System.Guid objectId, ref Flags flags, PlugIn plugin, Display.DisplayPipelineAttributes attrs)",
        "modifiers": ["public", "abstract"],
        "protected": false,
        "virtual": false,
        "summary": "Determine if custom render primitives will be supplied for a particular object.",
        "since": "8.0",
        "parameters": [
          {
            "name": "mt",
            "type": "MeshType",
            "summary": "The mesh type to provide meshes for"
          },
          {
            "name": "vp",
            "type": "ViewportInfo",
            "summary": "The viewport being rendered"
          },
          {
            "name": "doc",
            "type": "RhinoDoc",
            "summary": "The Rhino document associated with the objectId"
          },
          {
            "name": "objectId",
            "type": "System.Guid",
            "summary": "The objectId for which the primitives should be supplied."
          },
          {
            "name": "flags",
            "type": "Flags",
            "summary": "See Flags."
          },
          {
            "name": "plugin",
            "type": "PlugIn",
            "summary": "The requesting plug-in - typically the render plug-in requesting the primitives."
          },
          {
            "name": "attrs",
            "type": "Display.DisplayPipelineAttributes",
            "summary": "The display attributes currently being used - nullptr if this is production rendering."
          }
        ],
        "returns": "True if RenderMeshes will return a set of primitives, otherwise false.  RenderMeshes may still return an empty collection - in case of cancelation something similar."
      },
      {
        "signature": "RenderMeshProviderProgress Progress(RhinoDoc doc, System.Guid[] optional_objectIds)",
        "modifiers": ["public", "virtual"],
        "protected": false,
        "virtual": true,
        "summary": "Provides details on the progress of custom render meshes for a document or collection of objects",
        "since": "8.0"
      },
      {
        "signature": "RenderMeshes RenderMeshes(MeshType mt, ViewportInfo vp, RhinoDoc doc, System.Guid objectId, List<InstanceObject> ancestry, ref Flags flags, RenderMeshes previousPrimitives, PlugIn plugin, Display.DisplayPipelineAttributes attrs)",
        "modifiers": ["public", "abstract"],
        "protected": false,
        "virtual": false,
        "summary": "Returns a complete set of custom render primitives for a given ObjectId.",
        "since": "8.0",
        "parameters": [
          {
            "name": "mt",
            "type": "MeshType",
            "summary": "The mesh type to provide meshes for"
          },
          {
            "name": "vp",
            "type": "ViewportInfo",
            "summary": "The viewport being rendered"
          },
          {
            "name": "doc",
            "type": "RhinoDoc",
            "summary": "The Rhino document associated with the objectId"
          },
          {
            "name": "objectId",
            "type": "System.Guid",
            "summary": "The objectId for which the primitives should be supplied."
          },
          {
            "name": "ancestry",
            "type": "List<DocObjects.InstanceObject>",
            "summary": "The ancestry of the object - ie, block references referring to this definition. This is only used to handle ByParent attributes, and should not be used to transform geometry."
          },
          {
            "name": "flags",
            "type": "Flags",
            "summary": "See Flags."
          },
          {
            "name": "previousPrimitives",
            "type": "RenderMeshes",
            "summary": "Optionally a custom set of initial primitives.  If this parameter is empty, the standard render primitives for the object will be used, or an empty set of primitives will be used where they are not available.  This is typically used in meshing exporters, which produce specific meshes for the output rather than using the render primitives."
          },
          {
            "name": "plugin",
            "type": "PlugIn",
            "summary": "The requesting plug-in - typically the render plug-in requesting the meshes."
          },
          {
            "name": "attrs",
            "type": "Display.DisplayPipelineAttributes",
            "summary": "The display attributes currently being used - nullptr if this is production rendering."
          }
        ]
      },
      {
        "signature": "System.Void SetParameter(RhinoDoc doc, System.Guid objectId, System.String parameterName, System.Object value)",
        "modifiers": ["public", "virtual"],
        "protected": false,
        "virtual": true,
        "since": "8.0",
        "parameters": [
          {
            "name": "doc",
            "type": "RhinoDoc",
            "summary": "The Rhino document of interest."
          },
          {
            "name": "objectId",
            "type": "System.Guid",
            "summary": "The objectId for which the parameter should be supplied."
          },
          {
            "name": "parameterName",
            "type": "System.String",
            "summary": "The name of the parameter."
          },
          {
            "name": "value",
            "type": "System.Object",
            "summary": "The value to set."
          }
        ]
      }
    ],
    "fields": [
      {
        "signature": "protected bool m_disposed = false",
        "modifiers": ["protected"],
        "protected": true,
        "virtual": false,
        "summary": "m_disposed available for sub-classes to check."
      }
    ]

  },
  {
    "namespace": "Rhino.Render.CustomRenderMeshes",
    "name": "RenderMeshProvider.Flags",
    "dataType": "enum",
    "summary": "Flags to be passed into and returned from RenderMeshes and HasCustomRenderMeshes.",
    "since": "8.0",
    "values": [
      {
        "signature": "None = 0",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "No flags set."
      },
      {
        "signature": "Canceled = 1",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "If this flag is set when returned, then RenderMeshes was canceled."
      },
      {
        "signature": "DisableCaching = 2",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Pass in this flag to bypass any primitive caching that the RenderMeshProviders might do."
      },
      {
        "signature": "Recursive = 4",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Pass in this flag to get the render meshes for entire blocks.  Only has an effect if the ObjectId is a block reference, and if it will not produce CRMs of its own."
      },
      {
        "signature": "IsDocumentObject = 8",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Pass in this flag to indicate that the object id is a document resident object"
      },
      {
        "signature": "AlwaysCopyDocumentContent = 16",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Pass in this flag to ensure that materials, environments and textures that refer to document objects are always copied.  This makes the RenderMeshes object safe to be stored outside of the lifetime of those objects - in caches, or for use in threaded situtations."
      },
      {
        "signature": "ReturnNullForStandardMaterial = 32",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Pass in this flag to request that None is returned when the material on a mesh should be the standard material used - in otherwords, not customized by this RenderMeshes object.  Note that this will require document access to resolve - do not use in threaded situations."
      },
      {
        "signature": "Incomplete = 64",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "This flag is returned when an asynchronous operation (like Displacement) has not yet completed."
      }
    ]

  },
  {
    "namespace": "Rhino.Render.CustomRenderMeshes",
    "name": "RenderMeshProviderProgress",
    "dataType": "class",
    "summary": "Expresses the progress of a custom render mesh provider.",
    "constructors": [
      {
        "signature": "RenderMeshProviderProgress()",
        "summary": "Initializes a new instance of the RenderMeshProviderProgress class"
      }
    ],
    "properties": [
      {
        "signature": "double Amount",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "The amount of progress towards the target",
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool IsComplete",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "True if complete, otherwise false.",
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "Guid ProviderId",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "The Id of the RenderMeshProvider that this report came from.",
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "double Target",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Target progress",
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "string Text",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Return a textural progress report",
        "since": "8.0",
        "property": ["get", "set"]
      }
    ]
  },
  {
    "namespace": "Rhino.Render",
    "name": "CustomRenderMeshProvider",
    "dataType": "class",
    "summary": "You must call CustomRenderMeshProvider.RegisterProviders() from your plug-ins OnLoad override for each assembly containing a custom mesh provider.  Only publicly exported classes derived from CustomRenderMeshProvider with a public constructor that has no parameters will get registered.",
    "constructors": [
      {
        "signature": "CustomRenderMeshProvider()",
        "modifiers": ["protected"],
        "protected": true,
        "virtual": false,
        "summary": "Default constructor",
        "deprecated": "6.0"
      }
    ],
    "properties": [
      {
        "signature": "Guid CurvePipingId",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "deprecated": "6.0",
        "property": ["get"]
      },
      {
        "signature": "Guid DisplacementId",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "deprecated": "6.0",
        "property": ["get"]
      },
      {
        "signature": "Guid EdgeSofteningId",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "deprecated": "6.0",
        "property": ["get"]
      },
      {
        "signature": "Guid ShutLiningId",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "deprecated": "6.0",
        "property": ["get"]
      },
      {
        "signature": "Guid ThickeningId",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "deprecated": "6.0",
        "property": ["get"]
      },
      {
        "signature": "String Name",
        "modifiers": ["public", "abstract"],
        "protected": false,
        "virtual": false,
        "summary": "The name of the provider for UI display.",
        "since": "5.7",
        "deprecated": "6.0",
        "property": ["get"]
      }
    ],
    "methods": [
      {
        "signature": "System.Void AllObjectsChanged()",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Call this method if your render meshes change.",
        "since": "5.7",
        "deprecated": "6.0",
        "obsolete": "Use version that requires a document"
      },
      {
        "signature": "System.Void AllObjectsChanged(RhinoDoc doc)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Call this method if your render meshes change.",
        "since": "6.0",
        "deprecated": "6.0"
      },
      {
        "signature": "System.Void DocumentBasedMeshesChanged(RhinoDoc doc)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "deprecated": "6.0"
      },
      {
        "signature": "System.Void ObjectChanged(RhinoDoc doc, RhinoObject obj)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "deprecated": "6.0"
      },
      {
        "signature": "System.Void RegisterProviders(System.Reflection.Assembly assembly, System.Guid pluginId)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Call this method once from your plug-ins OnLoad override for each assembly containing a custom mesh provider.  Only publicly exported classes derived from CustomRenderMeshProvider with a public constructor that has no parameters will get registered.",
        "since": "5.7",
        "deprecated": "6.0",
        "parameters": [
          {
            "name": "assembly",
            "type": "System.Reflection.Assembly",
            "summary": "Assembly to search for valid CustomRenderMeshProvider derived classes."
          },
          {
            "name": "pluginId",
            "type": "System.Guid",
            "summary": "The plug-in that owns the custom mesh providers."
          }
        ]
      },
      {
        "signature": "BoundingBox BoundingBox(ViewportInfo vp, RhinoObject obj, RhinoDoc doc, System.Guid requestingPlugIn, Rhino.Display.DisplayPipelineAttributes attrs)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "deprecated": "6.0"
      },
      {
        "signature": "BoundingBox BoundingBox(ViewportInfo vp, RhinoObject obj, System.Guid requestingPlugIn, System.Boolean preview)",
        "modifiers": ["public", "virtual"],
        "protected": false,
        "virtual": true,
        "summary": "Returns a bounding box for the custom render meshes for the given object.",
        "since": "5.7",
        "deprecated": "6.0",
        "parameters": [
          {
            "name": "vp",
            "type": "ViewportInfo",
            "summary": "The viewport being rendered."
          },
          {
            "name": "obj",
            "type": "RhinoObject",
            "summary": "The Rhino object of interest.  This can be None in the case where document meshes (not associated with any object) are being requested."
          },
          {
            "name": "requestingPlugIn",
            "type": "System.Guid",
            "summary": "UUID of the RDK plug-in requesting the meshes."
          },
          {
            "name": "preview",
            "type": "System.Boolean",
            "summary": "Type of mesh to build."
          }
        ],
        "returns": "A bounding box value."
      },
      {
        "signature": "System.Boolean BuildCustomMeshes(ViewportInfo vp, RenderPrimitiveList objMeshes, System.Guid requestingPlugIn, System.Boolean meshType)",
        "modifiers": ["public", "abstract"],
        "protected": false,
        "virtual": false,
        "summary": "Build custom render mesh(es).",
        "since": "5.7",
        "deprecated": "6.0",
        "parameters": [
          {
            "name": "vp",
            "type": "ViewportInfo",
            "summary": "The viewport being rendered."
          },
          {
            "name": "objMeshes",
            "type": "RenderPrimitiveList",
            "summary": "The meshes class to populate with custom meshes."
          },
          {
            "name": "requestingPlugIn",
            "type": "System.Guid",
            "summary": "UUID of the RDK plug-in requesting the meshes."
          },
          {
            "name": "meshType",
            "type": "System.Boolean",
            "summary": "Type of mesh to build."
          }
        ],
        "returns": "True if operation was successful."
      },
      {
        "signature": "System.Boolean WillBuildCustomMeshes(ViewportInfo vp, RhinoObject obj, System.Guid requestingPlugIn, System.Boolean preview)",
        "modifiers": ["public", "abstract"],
        "protected": false,
        "virtual": false,
        "summary": "Determines if custom render meshes will be built for a particular object.",
        "since": "5.7",
        "deprecated": "6.0",
        "parameters": [
          {
            "name": "vp",
            "type": "ViewportInfo",
            "summary": "The viewport being rendered."
          },
          {
            "name": "obj",
            "type": "RhinoObject",
            "summary": "The Rhino object of interest.  This can be None in the case where document meshes (not associated with any object) are being requested."
          },
          {
            "name": "requestingPlugIn",
            "type": "System.Guid",
            "summary": "UUID of the RDK plug-in requesting the meshes."
          },
          {
            "name": "preview",
            "type": "System.Boolean",
            "summary": "Type of mesh to build."
          }
        ],
        "returns": "True if custom meshes will be built."
      }
    ]
  },
  {
    "namespace": "Rhino.Render",
    "name": "CustomRenderMeshProvider2",
    "dataType": "class",
    "baseclass": "Rhino.Render.CustomRenderMeshProvider",
    "constructors": [
      {
        "signature": "CustomRenderMeshProvider2()",
        "summary": "Initializes a new instance of the CustomRenderMeshProvider2 class"
      }
    ],
    "methods": [
      {
        "signature": "BoundingBox BoundingBox(ViewportInfo vp, RhinoObject obj, RhinoDoc doc, System.Guid requestingPlugIn, Rhino.Display.DisplayPipelineAttributes attrs)",
        "modifiers": ["public", "new", "virtual"],
        "protected": false,
        "virtual": true,
        "since": "6.0",
        "deprecated": "8.0"
      },
      {
        "signature": "BoundingBox BoundingBox(ViewportInfo vp, RhinoObject obj, System.Guid requestingPlugIn, System.Boolean preview)",
        "modifiers": ["public", "override"],
        "protected": false,
        "virtual": false,
        "since": "6.4",
        "deprecated": "8.0"
      },
      {
        "signature": "System.Boolean BuildCustomMeshes(ViewportInfo vp, RenderPrimitiveList objMeshes, System.Guid requestingPlugIn, System.Boolean preview)",
        "modifiers": ["public", "override"],
        "protected": false,
        "virtual": false,
        "since": "6.4",
        "deprecated": "8.0"
      },
      {
        "signature": "System.Boolean BuildCustomMeshes(ViewportInfo vp, RhinoDoc doc, RenderPrimitiveList objMeshes, System.Guid requestingPlugIn, Rhino.Display.DisplayPipelineAttributes attrs)",
        "modifiers": ["public", "abstract"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "deprecated": "8.0"
      },
      {
        "signature": "System.Boolean WillBuildCustomMeshes(ViewportInfo vp, RhinoObject obj, RhinoDoc doc, System.Guid requestingPlugIn, Rhino.Display.DisplayPipelineAttributes attrs)",
        "modifiers": ["public", "abstract"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "deprecated": "8.0"
      },
      {
        "signature": "System.Boolean WillBuildCustomMeshes(ViewportInfo vp, RhinoObject obj, System.Guid requestingPlugIn, System.Boolean preview)",
        "modifiers": ["public", "override"],
        "protected": false,
        "virtual": false,
        "since": "6.4",
        "deprecated": "8.0"
      }
    ]
  },
  {
    "namespace": "Rhino.Render.DataSources",
    "name": "AssignBys",
    "dataType": "enum",
    "since": "6.0",
    "values": [
      {
        "signature": "Unset",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Layer",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Parent",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Object",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Varies",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "PlugIn",
        "modifiers": [],
        "protected": false,
        "virtual": false
      }
    ]

  },
  {
    "namespace": "Rhino.Render.DataSources",
    "name": "ContentDatabaseEventInfo.AttachReason",
    "dataType": "enum",
    "values": [
      {
        "signature": "Attach",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Change",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Undo",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Open",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Edit",
        "modifiers": [],
        "protected": false,
        "virtual": false
      }
    ]

  },
  {
    "namespace": "Rhino.Render.DataSources",
    "name": "ContentDatabaseEventInfo.DetachReason",
    "dataType": "enum",
    "values": [
      {
        "signature": "Detach",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Change",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Undo",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Delete",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Edit",
        "modifiers": [],
        "protected": false,
        "virtual": false
      }
    ]

  },
  {
    "namespace": "Rhino.Render.DataSources",
    "name": "ContentDatabaseEventInfo.Types",
    "dataType": "enum",
    "values": [
      {
        "signature": "Attached",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Detaching",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Detached",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Replacing",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Replaced",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Blossom",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Hidden",
        "modifiers": [],
        "protected": false,
        "virtual": false
      }
    ]

  },
  {
    "namespace": "Rhino.Render.DataSources",
    "name": "ContentEditorSettings.Layouts",
    "dataType": "enum",
    "values": [
      {
        "signature": "Horizontal",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Vertical",
        "modifiers": [],
        "protected": false,
        "virtual": false
      }
    ]

  },
  {
    "namespace": "Rhino.Render.DataSources",
    "name": "ContentEditorSettings.Splitters",
    "dataType": "enum",
    "values": [
      {
        "signature": "HA",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "HB",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "HC",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "VA",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "VB",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "VC",
        "modifiers": [],
        "protected": false,
        "virtual": false
      }
    ]

  },
  {
    "namespace": "Rhino.Render.DataSources",
    "name": "ContentFactories",
    "dataType": "class",
    "interfaces": ["IDisposable"],
    "constructors": [
      {
        "signature": "ContentFactories(IntPtr pRdkContentFactories)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.1"
      }
    ],
    "properties": [
      {
        "signature": "IntPtr CppPointer",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.1",
        "property": ["get"]
      }
    ],
    "methods": [
      {
        "signature": "System.Void Dispose()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.1"
      },
      {
        "signature": "ContentFactory FindFactory(System.Guid uuid)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.7"
      },
      {
        "signature": "ContentFactory FirstFactory()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.1"
      },
      {
        "signature": "ContentFactory NextFactory()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.1"
      }
    ]
  },
  {
    "namespace": "Rhino.Render.DataSources",
    "name": "ContentFactory",
    "dataType": "class",
    "interfaces": ["IDisposable"],
    "constructors": [
      {
        "signature": "ContentFactory(IntPtr pRdkContentFactory)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.1"
      }
    ],
    "properties": [
      {
        "signature": "IntPtr CppPointer",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.1",
        "property": ["get"]
      }
    ],
    "methods": [
      {
        "signature": "System.Guid ContentTypeId()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.7"
      },
      {
        "signature": "System.Void Dispose()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.1"
      },
      {
        "signature": "RenderContentKind Kind()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.3"
      },
      {
        "signature": "RenderContent NewContent()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "New Content returns a new content, which is Initialized with the Initialize() function. The content should be unitilized after use with the Unitialize function.",
        "since": "6.1"
      }
    ]
  },
  {
    "namespace": "Rhino.Render.DataSources",
    "name": "ContentParamEventInfo.Types",
    "dataType": "enum",
    "values": [
      {
        "signature": "Name",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Notes",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Tags",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "GroupId",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Param",
        "modifiers": [],
        "protected": false,
        "virtual": false
      }
    ]

  },
  {
    "namespace": "Rhino.Render.DataSources",
    "name": "DecalEventInfo.Operations",
    "dataType": "enum",
    "values": [
      {
        "signature": "Add",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Delete",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Modify",
        "modifiers": [],
        "protected": false,
        "virtual": false
      }
    ]

  },
  {
    "namespace": "Rhino.Render.DataSources",
    "name": "ImageFileInfo.GPI_Status",
    "dataType": "enum",
    "values": [
      {
        "signature": "Failure",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Disabled",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Loading",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Success",
        "modifiers": [],
        "protected": false,
        "virtual": false
      }
    ]

  },
  {
    "namespace": "Rhino.Render.DataSources",
    "name": "LibrariesEventInfo.Operations",
    "dataType": "enum",
    "values": [
      {
        "signature": "Add",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Delete",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Rename",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "RootFolder",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "ThumbSize",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Select",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "SelectAll",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Edit",
        "modifiers": [],
        "protected": false,
        "virtual": false
      }
    ]

  },
  {
    "namespace": "Rhino.Render.DataSources",
    "name": "MetaData",
    "dataType": "class",
    "interfaces": ["IDisposable"],
    "constructors": [
      {
        "signature": "MetaData(IntPtr pMetaData)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0"
      }
    ],
    "properties": [
      {
        "signature": "IntPtr CppPointer",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get"]
      }
    ],
    "methods": [
      {
        "signature": "System.Guid ContentInstanceId()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.7"
      },
      {
        "signature": "System.Void Dispose()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0"
      },
      {
        "signature": "System.String Geometry()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0"
      }
    ]
  },
  {
    "namespace": "Rhino.Render.DataSources",
    "name": "Modes",
    "dataType": "enum",
    "since": "6.0",
    "values": [
      {
        "signature": "Unset",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Grid",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "List",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Tree",
        "modifiers": [],
        "protected": false,
        "virtual": false
      }
    ]

  },
  {
    "namespace": "Rhino.Render.DataSources",
    "name": "NamedItemCommand.States",
    "dataType": "enum",
    "values": [
      {
        "signature": "Off = UnsafeNativeMethods.NamedItemCommand_States.Off",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "On = UnsafeNativeMethods.NamedItemCommand_States.On",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Varies = UnsafeNativeMethods.NamedItemCommand_States.Varies",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Unknown = UnsafeNativeMethods.NamedItemCommand_States.Unknown",
        "modifiers": [],
        "protected": false,
        "virtual": false
      }
    ]

  },
  {
    "namespace": "Rhino.Render.DataSources",
    "name": "NamedItems.CommandFilters",
    "dataType": "enum",
    "values": [
      {
        "signature": "ToolButton = UnsafeNativeMethods.NamedItems_CommandFilters.ToolButton",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "MenuItem = UnsafeNativeMethods.NamedItems_CommandFilters.MenuItem",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "CheckBox = UnsafeNativeMethods.NamedItems_CommandFilters.CheckBox",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "All = UnsafeNativeMethods.NamedItems_CommandFilters.All",
        "modifiers": [],
        "protected": false,
        "virtual": false
      }
    ]

  },
  {
    "namespace": "Rhino.Render.DataSources",
    "name": "NamedItems.DisplayModes",
    "dataType": "enum",
    "values": [
      {
        "signature": "List = UnsafeNativeMethods.NamedItems_DisplayMode.List",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Thumbnail = UnsafeNativeMethods.NamedItems_DisplayMode.Thumbnail",
        "modifiers": [],
        "protected": false,
        "virtual": false
      }
    ]

  },
  {
    "namespace": "Rhino.Render.DataSources",
    "name": "ParamBlock.UiHints",
    "dataType": "enum",
    "values": [
      {
        "signature": "None",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Folder",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Filename",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Combo",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Solar",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Location",
        "modifiers": [],
        "protected": false,
        "virtual": false
      }
    ]

  },
  {
    "namespace": "Rhino.Render.DataSources",
    "name": "PreviewSettingsEventInfo.Types",
    "dataType": "enum",
    "values": [
      {
        "signature": "OrderChanged",
        "modifiers": [],
        "protected": false,
        "virtual": false
      }
    ]

  },
  {
    "namespace": "Rhino.Render.DataSources",
    "name": "RdkEdit",
    "dataType": "class",
    "interfaces": ["IDisposable"],
    "constructors": [
      {
        "signature": "RdkEdit(IntPtr pRdkEdit)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.5"
      }
    ],
    "properties": [
      {
        "signature": "IntPtr CppPointer",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.5",
        "property": ["get"]
      }
    ],
    "methods": [
      {
        "signature": "System.Void Dispose()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.5"
      },
      {
        "signature": "System.Boolean Execute(RenderContentCollection collection)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.5"
      }
    ]
  },
  {
    "namespace": "Rhino.Render.DataSources",
    "name": "RdkModalEditContentBucket",
    "dataType": "class",
    "interfaces": ["IDisposable"],
    "constructors": [
      {
        "signature": "RdkModalEditContentBucket(IntPtr pRdkModalEditContentBucket)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.5",
        "deprecated": "6.13"
      }
    ],
    "properties": [
      {
        "signature": "IntPtr CppPointer",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.5",
        "deprecated": "6.13",
        "property": ["get"]
      }
    ],
    "methods": [
      {
        "signature": "RenderContentCollection ContentsIn()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.5",
        "deprecated": "6.13"
      },
      {
        "signature": "System.Void Dispose()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.5",
        "deprecated": "6.13"
      },
      {
        "signature": "System.Void SetContentsOut(RenderContentCollection collection)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.5",
        "deprecated": "6.13"
      }
    ]
  },
  {
    "namespace": "Rhino.Render.DataSources",
    "name": "RdkSelectionNavigator",
    "dataType": "class",
    "interfaces": ["IDisposable"],
    "constructors": [
      {
        "signature": "RdkSelectionNavigator(IntPtr pRhinoSettings)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0"
      }
    ],
    "properties": [
      {
        "signature": "IntPtr CppPointer",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get"]
      }
    ],
    "methods": [
      {
        "signature": "System.Void Add(Rhino.Render.RenderContentCollection selectedContentArray)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Add a selection of contents at the current position. Clears the navigator ahead of the current position.",
        "since": "6.0",
        "parameters": [
          {
            "name": "selectedContentArray",
            "type": "Rhino.Render.RenderContentCollection",
            "summary": "The selected content"
          }
        ]
      },
      {
        "signature": "System.Boolean CanGoBackwards()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Check the backwards status of the navigator",
        "since": "6.0",
        "returns": "True if it is possible to navigate backwards, else false"
      },
      {
        "signature": "System.Boolean CanGoForwards()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Check the forwards status of the navigator",
        "since": "6.0",
        "returns": "True if it is possible to navigate forwards, else false"
      },
      {
        "signature": "System.Void Clear()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Clear the navigator.",
        "since": "6.0"
      },
      {
        "signature": "System.Void Dispose()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0"
      },
      {
        "signature": "System.Boolean GoBackwards(ref Rhino.Render.RenderContentCollection selectedContentArray)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Navigate backwards if possible",
        "since": "6.0",
        "parameters": [
          {
            "name": "selectedContentArray",
            "type": "Rhino.Render.RenderContentCollection",
            "summary": "selectedContentArray is the new selection after navigating backwards"
          }
        ],
        "returns": "True on success, else false"
      },
      {
        "signature": "System.Boolean GoForwards(ref Rhino.Render.RenderContentCollection selectedContentArray)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Navigate forwards if possible",
        "since": "6.0",
        "parameters": [
          {
            "name": "selectedContentArray",
            "type": "Rhino.Render.RenderContentCollection",
            "summary": "selectedContentArray is the new selection after navigating forwards"
          }
        ],
        "returns": "True on success, else false"
      }
    ]
  },
  {
    "namespace": "Rhino.Render.DataSources",
    "name": "RhinoSettings",
    "dataType": "class",
    "interfaces": ["IDisposable"],
    "constructors": [
      {
        "signature": "RhinoSettings(IntPtr pRhinoSettings)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0"
      }
    ],
    "properties": [
      {
        "signature": "IntPtr CppPointer",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "bool CustomImageSizeIsPreset",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "7.0",
        "property": ["get", "set"]
      }
    ],
    "methods": [
      {
        "signature": "RhinoView ActiveView()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0"
      },
      {
        "signature": "System.Void Dispose()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0"
      },
      {
        "signature": "System.Guid GetCurrentRenderer()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "8.17"
      },
      {
        "signature": "List<System.Drawing.Size> GetCustomRenderSizes()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0"
      },
      {
        "signature": "RenderSettings GetRenderSettings()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0"
      },
      {
        "signature": "System.Boolean GroundPlaneOnInViewDisplayMode(RhinoView view)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.14"
      },
      {
        "signature": "Rhino.DocObjects.ViewInfo RenderingView()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.12"
      },
      {
        "signature": "System.Void SetCurrentRenderer(System.Guid g)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "8.17"
      },
      {
        "signature": "System.Void SetGroundPlaneOnInViewDisplayMode(RhinoView view, System.Boolean bOn)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.14"
      },
      {
        "signature": "System.Void SetRenderSettings(RenderSettings renderSettings)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0"
      },
      {
        "signature": "System.Boolean ViewSupportsShading(RhinoView view)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.14"
      }
    ]
  },
  {
    "namespace": "Rhino.Render.DataSources",
    "name": "Shapes",
    "dataType": "enum",
    "since": "6.0",
    "values": [
      {
        "signature": "Square",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Wide",
        "modifiers": [],
        "protected": false,
        "virtual": false
      }
    ]

  },
  {
    "namespace": "Rhino.Render.DataSources",
    "name": "Sizes",
    "dataType": "enum",
    "since": "6.0",
    "values": [
      {
        "signature": "Unset",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Tiny",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Small",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Medium",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Large",
        "modifiers": [],
        "protected": false,
        "virtual": false
      }
    ]

  },
  {
    "namespace": "Rhino.Render",
    "name": "Decal",
    "dataType": "class",
    "summary": "Represents a decal, or a picture that can be moved on an object.",
    "interfaces": ["IDisposable"],
    "properties": [
      {
        "signature": "int CRC",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "The decal CRC identifies a decal by its state. Multiple decals which would be exactly the same would have the same CRC and are culled from the system. If you store this value with the intention of using it to find the decal again later, you must update your stored value whenever the decal state changes. You can detect when a decal changes by watching for the legacy OnUserDataTransformed event or the newer custom event uuidEventDecalUserDataTransformed.",
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "DecalMapping DecalMapping",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the decal's mapping.",
        "since": "5.10",
        "deprecated": "8.0",
        "property": ["get"]
      },
      {
        "signature": "DecalProjection DecalProjection",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the decal's projection. Used only when mapping is planar.",
        "since": "5.10",
        "deprecated": "8.0",
        "property": ["get"]
      },
      {
        "signature": "double EndLatitude",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the end angle of the decal's arc of latitude or 'horizontal sweep'. This is actually a LONGITUDINAL angle. Only used when mapping is cylindrical or spherical. This is deprecated in favor of HorzSweep().",
        "since": "5.10",
        "property": ["get"]
      },
      {
        "signature": "double EndLongitude",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the end angle of the decal's arc of longitude or 'vertical sweep'. This is actually a LATITUDINAL angle. Only used when mapping is spherical.",
        "since": "5.10",
        "property": ["get"]
      },
      {
        "signature": "double Height",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the height of the decal. Only used when mapping is cylindrical.",
        "since": "5.10",
        "property": ["get", "set"]
      },
      {
        "signature": "bool IsVisible",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the decal's visibility.",
        "since": "8.18",
        "property": ["get"]
      },
      {
        "signature": "DecalMapping Mapping",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the decal's mapping.",
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool MapToInside",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Used only when mapping is cylindrical or spherical.",
        "since": "5.10",
        "property": ["get", "set"]
      },
      {
        "signature": "Point3d Origin",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the origin of the decal in world space.",
        "since": "5.10",
        "property": ["get", "set"]
      },
      {
        "signature": "DecalProjection Projection",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the decal's projection. Used only when mapping is planar.",
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "double Radius",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the radius of the decal. Only used when mapping is cylindrical or spherical.",
        "since": "5.10",
        "property": ["get", "set"]
      },
      {
        "signature": "double StartLatitude",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the start angle of the decal's arc of latitude or 'horizontal sweep'. This is actually a LONGITUDINAL angle. Only used when mapping is cylindrical or spherical.",
        "since": "5.10",
        "property": ["get"]
      },
      {
        "signature": "double StartLongitude",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the start angle of the decal's arc of longitude or 'vertical sweep'. This is actually a LATITUDINAL angle. Only used when mapping is spherical.",
        "since": "5.10",
        "property": ["get"]
      },
      {
        "signature": "Guid TextureInstanceId",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the asset instance id for this decal. This is the instance id of a material or texture.",
        "since": "5.10",
        "property": ["get", "set"]
      },
      {
        "signature": "double Transparency",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the decal's transparency in the range 0 to 1.",
        "since": "5.10",
        "property": ["get", "set"]
      },
      {
        "signature": "Vector3d VectorAcross",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the vector across. For cylindrical and spherical mapping, the vector is unitized.",
        "since": "5.10",
        "property": ["get", "set"]
      },
      {
        "signature": "Vector3d VectorUp",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "For cylindrical and spherical mapping, the vector is unitized.",
        "since": "5.10",
        "property": ["get", "set"]
      }
    ],
    "methods": [
      {
        "signature": "Decal Create(DecalCreateParams createParams)",
        "modifiers": ["static", "public"],
        "protected": false,
        "virtual": false,
        "since": "5.10"
      },
      {
        "signature": "System.IntPtr ConstPointer()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.10"
      },
      {
        "signature": "List<Rhino.Render.NamedValue> CustomData()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets decal custom data for the current renderer. See Rhino.Plugins.RenderPlugIn.ShowDecalProperties.",
        "since": "6.0",
        "returns": "A list of name-value pairs for the custom data properties. If there is no custom data on the decal for the current renderer, the list will be empty."
      },
      {
        "signature": "List<Rhino.Render.NamedValue> CustomData(System.Guid renderer)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets decal custom data for a specified renderer. See Rhino.Plugins.RenderPlugIn.ShowDecalProperties.",
        "since": "8.0",
        "returns": "A list of name-value pairs for the custom data properties. If there is no custom data on the decal for the specified renderer, the list will be empty."
      },
      {
        "signature": "System.Void Dispose()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.10"
      },
      {
        "signature": "System.Void Dispose(System.Boolean isDisposing)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.10"
      },
      {
        "signature": "TextureMapping GetTextureMapping()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the Texture Mapping of the decal.",
        "since": "7.0"
      },
      {
        "signature": "System.Void GetUVBounds(out System.Double min_u, out System.Double min_v, out System.Double max_u, out System.Double max_v)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "The UV bounds of the decal. Only used when mapping is UV.",
        "since": "8.18"
      },
      {
        "signature": "System.Void HorzSweep(out System.Double sta, out System.Double end)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the angles of the decal's arc of 'horizontal sweep'. Replaces StartLatitude and EndLatitude.",
        "since": "8.0"
      },
      {
        "signature": "System.IntPtr NonConstPointer()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.10"
      },
      {
        "signature": "System.Void SetHorzSweep(System.Double sta, System.Double end)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Sets the angles of the decal's arc of 'horizontal sweep'.",
        "since": "9.0"
      },
      {
        "signature": "System.Void SetUVBounds(System.Double min_u, System.Double min_v, System.Double max_u, System.Double max_v)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Sets the UV bounds of the decal. Only used when mapping is UV.",
        "since": "9.0"
      },
      {
        "signature": "System.Void SetVertSweep(System.Double sta, System.Double end)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Sets the angles of the decal's arc of 'vertical sweep'.",
        "since": "9.0"
      },
      {
        "signature": "System.UInt32 TextureRenderCRC(TextureRenderHashFlags rh, LinearWorkflow lw)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "This method is deprecated in favor of TextureRenderHash below.",
        "since": "7.0",
        "deprecated": "8.0",
        "obsolete": "Do not use"
      },
      {
        "signature": "System.UInt32 TextureRenderCRC(TextureRenderHashFlags rh)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "This method is deprecated in favor of TextureRenderHash below.",
        "since": "7.0",
        "deprecated": "8.0",
        "obsolete": "Do not use"
      },
      {
        "signature": "System.UInt32 TextureRenderHash(CrcRenderHashFlags flags, LinearWorkflow lw)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Get the texture render hash for the referenced texture using the specified CrcRenderHashFlags and linear workflow.",
        "since": "8.0",
        "deprecated": "8.5",
        "obsolete": "Do not use"
      },
      {
        "signature": "System.UInt32 TextureRenderHash(CrcRenderHashFlags flags)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Get the texture render hash for the referenced texture using the specified CrcRenderHashFlags.",
        "since": "8.0",
        "deprecated": "8.5",
        "obsolete": "Do not use"
      },
      {
        "signature": "System.Boolean TryGetColor(Rhino.Geometry.Point3d point, Rhino.Geometry.Vector3d normal, ref Rhino.Display.Color4f colInOut, ref Rhino.Geometry.Point2d uvOut)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Blend a color with the decal color at a given point. Please note that this function is very slow so you should only use it if you're not overly concerned about performance. Also please note that this function is actually a 'blend' operation, not a True 'get' operation and is sensitive to the value passed into the colInOut parameter. The alpha value of colInOut is used as the blend amount where 0 means 'all decal RGB' and 1 means 'all colInOut RGB'. If you want to simply GET the decal color, you must pass 0 for colInOut alpha.",
        "since": "5.10",
        "parameters": [
          {
            "name": "point",
            "type": "Rhino.Geometry.Point3d",
            "summary": "The point in space or, if the decal is uv-mapped, the uv-coordinate of that point."
          },
          {
            "name": "normal",
            "type": "Rhino.Geometry.Vector3d",
            "summary": "The face normal of the given point."
          },
          {
            "name": "colInOut",
            "type": "Rhino.Display.Color4f",
            "summary": "Accepts the color to blend the decal color to and returns the blended color. See the notes above for details."
          },
          {
            "name": "uvOut",
            "type": "Rhino.Geometry.Point2d",
            "summary": "Returns the (u,v) on the texture that the color was read from."
          }
        ],
        "returns": "True if the given point hits the decal, else false."
      },
      {
        "signature": "System.Void UVBounds(ref System.Double minUOut, ref System.Double minVOut, ref System.Double maxUOut, ref System.Double maxVOut)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "The UV bounds of the decal. Only used when mapping is UV.",
        "since": "5.10"
      },
      {
        "signature": "System.Void VertSweep(out System.Double sta, out System.Double end)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the angles of the decal's arc of 'vertical sweep'. Replaces StartLongitude and EndLongitude.",
        "since": "8.0"
      }
    ]
  },
  {
    "namespace": "Rhino.Render",
    "name": "DecalCreateParams",
    "dataType": "class",
    "summary": "Used by Rhino.Render.Decal.Create() to create a new decal.",
    "constructors": [
      {
        "signature": "DecalCreateParams()",
        "summary": "Initializes a new instance of the DecalCreateParams class"
      }
    ],
    "properties": [
      {
        "signature": "DecalMapping DecalMapping",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "DecalProjection DecalProjection",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "double EndLatitude",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "double EndLongitude",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "double Height",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool MapToInside",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "double MaxU",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "double MaxV",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "double MinU",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "double MinV",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "Point3d Origin",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "double Radius",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "double StartLatitude",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "double StartLongitude",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "Guid TextureInstanceId",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "double Transparency",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "Vector3d VectorAcross",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "Vector3d VectorUp",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get", "set"]
      }
    ]
  },
  {
    "namespace": "Rhino.Render",
    "name": "DecalMapping",
    "dataType": "enum",
    "since": "5.10",
    "values": [
      {
        "signature": "None = (int)UnsafeNativeMethods.ON_DecalMapping.None",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "No mapping"
      },
      {
        "signature": "Planar = (int)UnsafeNativeMethods.ON_DecalMapping.Planar",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Planar mapping. Uses projection, origin, up and across vectors (not unitized)."
      },
      {
        "signature": "Cylindrical = (int)UnsafeNativeMethods.ON_DecalMapping.Cylindrical",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Cylindrical mapping. Uses origin, up, across, height, radius, latitude start and stop."
      },
      {
        "signature": "Spherical = (int)UnsafeNativeMethods.ON_DecalMapping.Spherical",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Spherical mapping. Uses origin, up, across, radius, latitude/longitude start and stop."
      },
      {
        "signature": "UV = (int)UnsafeNativeMethods.ON_DecalMapping.UV",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "UV mapping."
      }
    ]

  },
  {
    "namespace": "Rhino.Render",
    "name": "DecalProjection",
    "dataType": "enum",
    "since": "5.10",
    "values": [
      {
        "signature": "None = (int)UnsafeNativeMethods.ON_DecalProjection.None",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "No projection"
      },
      {
        "signature": "Forward = (int)UnsafeNativeMethods.ON_DecalProjection.Forward",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Project forward"
      },
      {
        "signature": "Backward = (int)UnsafeNativeMethods.ON_DecalProjection.Backward",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Project backward"
      },
      {
        "signature": "Both = (int)UnsafeNativeMethods.ON_DecalProjection.Both",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Project forward and backward"
      }
    ]

  },
  {
    "namespace": "Rhino.Render",
    "name": "Decals",
    "dataType": "class",
    "summary": "Represents all the decals of an object.",
    "interfaces": ["IEnumerable<Decal>"],
    "methods": [
      {
        "signature": "System.UInt32 Add(Decal decal)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Add a new Decal to the collection. Use Decal.Create() to create a new decal instance to add.",
        "since": "5.10"
      },
      {
        "signature": "System.Void Clear()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.10",
        "deprecated": "8.0",
        "obsolete": "Use RemoveAllDecals"
      },
      {
        "signature": "IEnumerator<Decal> GetEnumerator()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.10"
      },
      {
        "signature": "System.Boolean Remove(Decal decal)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Remove a single decal from the collection.",
        "since": "5.10"
      },
      {
        "signature": "System.Void RemoveAllDecals()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Remove all the decals from the collection.",
        "since": "8.0"
      }
    ]
  },
  {
    "namespace": "Rhino.Render",
    "name": "Dithering",
    "dataType": "class",
    "summary": "This is the interface to dithering settings.",
    "baseclass": "Rhino.Render.DocumentOrFreeFloatingBase",
    "interfaces": ["IDisposable"],
    "constructors": [
      {
        "signature": "Dithering()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Create a utility object not associated with any document",
        "since": "6.0"
      },
      {
        "signature": "Dithering(Dithering d)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Create a utility object not associated with any document from another object",
        "since": "6.0"
      }
    ],
    "properties": [
      {
        "signature": "bool Enabled",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "Methods Method",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool On",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "7.0",
        "deprecated": "8.0",
        "obsolete": "Use Enabled",
        "property": ["get", "set"]
      }
    ],
    "methods": [
      {
        "signature": "System.Void CopyFrom(FreeFloatingBase src)",
        "modifiers": ["public", "override"],
        "protected": false,
        "virtual": false,
        "since": "6.0"
      },
      {
        "signature": "System.Void Dispose()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "8.0"
      }
    ]
  },
  {
    "namespace": "Rhino.Render",
    "name": "Dithering.Methods",
    "dataType": "enum",
    "summary": "Dithering algorithm.",
    "values": [
      {
        "signature": "None",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "No dithering"
      },
      {
        "signature": "FloydSteinberg",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Floyd Steinberg algorithm"
      },
      {
        "signature": "SimpleNoise",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Simple random noise"
      }
    ]

  },
  {
    "namespace": "Rhino.Render",
    "name": "DocumentOrFreeFloatingBase",
    "dataType": "class",
    "summary": "Base class for Rhino.Render objects that are owned by the document, or can be delivered separately from other functions.  In general, you cannot create these objects yourself.",
    "baseclass": "Rhino.Render.FreeFloatingBase",
    "methods": [
      {
        "signature": "System.Void BeginChange(Rhino.Render.RenderContent.ChangeContexts cc)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0"
      },
      {
        "signature": "System.Boolean EndChange()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0"
      }
    ]
  },
  {
    "namespace": "Rhino.Render",
    "name": "DynamicIconUsage",
    "dataType": "enum",
    "since": "6.0",
    "values": [
      {
        "signature": "TreeControl",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Used in a tree control (e.g., TreeGridView)."
      },
      {
        "signature": "SubnodeControl",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Used in a sub-node control (\\see CRhRdkSubNodeCtrl)"
      },
      {
        "signature": "ContentControl",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Used in a content control (\\see CRhRdkContentCtrl)"
      },
      {
        "signature": "General",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Used in a custom user interface. The background will be plain white."
      }
    ]

  },
  {
    "namespace": "Rhino.Render",
    "name": "ExtensionMethods",
    "dataType": "class",
    "constructors": [
      {
        "signature": "ExtensionMethods()",
        "summary": "Initializes a new instance of the ExtensionMethods class"
      }
    ],
    "methods": [
      {
        "signature": "Rhino.Render.TextureEnvironmentMappingMode ToEnvironmentMappingMode(this Rhino.Render.SimulatedTexture.EnvironmentMappingModes e)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "8.15"
      },
      {
        "signature": "Rhino.Render.SimulatedTexture.EnvironmentMappingModes ToSimulatedEnvironmentMappingMode(this Rhino.Render.TextureEnvironmentMappingMode e)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "8.15"
      },
      {
        "signature": "Rhino.Render.SimulatedTexture.ProjectionModes ToSimulatedTextureProjectionMode(this Rhino.Render.TextureProjectionMode e)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "8.15"
      },
      {
        "signature": "Rhino.Render.TextureProjectionMode ToTextureProjectionMode(this Rhino.Render.SimulatedTexture.ProjectionModes e)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "8.15"
      }
    ]
  },
  {
    "namespace": "Rhino.Render.Fields",
    "name": "BoolField",
    "dataType": "class",
    "summary": "bool field value class",
    "baseclass": "Rhino.Render.Fields.Field",
    "properties": [
      {
        "signature": "bool Value",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the field value",
        "since": "5.1",
        "property": ["get", "set"]
      }
    ],
    "methods": [
      {
        "signature": "System.Object ValueAsObject()",
        "modifiers": ["public", "override"],
        "protected": false,
        "virtual": false,
        "since": "5.7"
      }
    ]
  },
  {
    "namespace": "Rhino.Render.Fields",
    "name": "ByteArrayField",
    "dataType": "class",
    "summary": "ByteArray field value class",
    "baseclass": "Rhino.Render.Fields.Field",
    "properties": [
      {
        "signature": "byte[] Value",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the field value",
        "since": "5.1",
        "property": ["get", "set"]
      }
    ],
    "methods": [
      {
        "signature": "System.Object ValueAsObject()",
        "modifiers": ["public", "override"],
        "protected": false,
        "virtual": false,
        "since": "5.7"
      }
    ]
  },
  {
    "namespace": "Rhino.Render.Fields",
    "name": "Color4fField",
    "dataType": "class",
    "summary": "Color4f field value class",
    "baseclass": "Rhino.Render.Fields.Field",
    "properties": [
      {
        "signature": "Color SystemColorValue",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the field value",
        "since": "5.1",
        "property": ["get", "set"]
      },
      {
        "signature": "Color4f Value",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the field value",
        "since": "5.1",
        "property": ["get", "set"]
      }
    ],
    "methods": [
      {
        "signature": "System.Object ValueAsObject()",
        "modifiers": ["public", "override"],
        "protected": false,
        "virtual": false,
        "since": "5.7"
      }
    ]
  },
  {
    "namespace": "Rhino.Render.Fields",
    "name": "DateTimeField",
    "dataType": "class",
    "summary": "DateTime field value class",
    "baseclass": "Rhino.Render.Fields.Field",
    "properties": [
      {
        "signature": "DateTime Value",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the field value",
        "since": "5.1",
        "property": ["get", "set"]
      }
    ],
    "methods": [
      {
        "signature": "System.Object ValueAsObject()",
        "modifiers": ["public", "override"],
        "protected": false,
        "virtual": false,
        "since": "5.7"
      }
    ]
  },
  {
    "namespace": "Rhino.Render.Fields",
    "name": "DoubleField",
    "dataType": "class",
    "summary": "double field value class",
    "baseclass": "Rhino.Render.Fields.Field",
    "properties": [
      {
        "signature": "double Value",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the field value",
        "since": "5.1",
        "property": ["get", "set"]
      }
    ],
    "methods": [
      {
        "signature": "System.Object ValueAsObject()",
        "modifiers": ["public", "override"],
        "protected": false,
        "virtual": false,
        "since": "5.7"
      }
    ]
  },
  {
    "namespace": "Rhino.Render.Fields",
    "name": "Field",
    "dataType": "class",
    "summary": "Generic data fields used to add publicly accessible properties to RenderContent.FieldDictionary.  These should be created by calling a FieldDictaionary.Add() method on a Render content object.  These are allocated after the RenderContent object's C++ object is created and added to the underlying C++ objects content dictionary, who ever allocates a field is responsible for deleting it so these objects clean up the C++ pointers when they are disposed of.",
    "constructors": [
      {
        "signature": "Field(RenderContent renderContent, IntPtr pointer)",
        "modifiers": ["protected"],
        "protected": true,
        "virtual": false
      },
      {
        "signature": "Field(RenderContent renderContent, string name, string prompt, object initialValue, bool isTextured, bool treatAsLinear, int sectionId)",
        "modifiers": ["protected"],
        "protected": true,
        "virtual": false
      },
      {
        "signature": "Field(RenderContent renderContent, string name, string prompt, object initialValue, bool isTextured, bool treatAsLinear)",
        "modifiers": ["protected"],
        "protected": true,
        "virtual": false
      },
      {
        "signature": "Field(RenderContent renderContent, string name, string prompt, object initialValue, bool isTextured)",
        "modifiers": ["protected"],
        "protected": true,
        "virtual": false
      },
      {
        "signature": "Field(RenderContent renderContent, string name)",
        "modifiers": ["protected"],
        "protected": true,
        "virtual": false
      }
    ],
    "properties": [
      {
        "signature": "bool AutomaticRegisteredProperty",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "8.15",
        "property": ["get", "set"]
      },
      {
        "signature": "bool IsHiddenInAutoUI",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "When fields are used by the automatic UI, they can be hidden from it by calling this method.",
        "since": "7.2",
        "property": ["get", "set"]
      },
      {
        "signature": "string Key",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Field name value string passed to the constructor",
        "since": "5.1",
        "obsolete": "The Rhino.Render.Fields.Field.Key property is obsolete, use Name instead.",
        "property": ["get"]
      },
      {
        "signature": "string Name",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Field name value string passed to the constructor.",
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "object Tag",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets an object that contains data to associate with the field.",
        "since": "5.1",
        "property": ["get", "set"]
      },
      {
        "signature": "double TextureAmountMax",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Set Max value for Texture amount",
        "since": "7.0",
        "property": ["get", "set"]
      },
      {
        "signature": "double TextureAmountMin",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Set Min value for Texture amount",
        "since": "7.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool UseTextureAmount",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "True if 'texture amount' is in use, otherwise false. The 'texture amount' is represented as a numeric stepper in the UI. If true, then the stepper is shown. If false, then the stepper is hidden.",
        "since": "7.12",
        "property": ["get", "set"]
      },
      {
        "signature": "bool UseTextureOn",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "True if 'texture on' is in use, otherwise false. In the UI 'texture on' is represented as a checkbox. If True then the checbox is shown. If False then the checkbox is not shown.",
        "since": "7.12",
        "property": ["get", "set"]
      }
    ],
    "methods": [
      {
        "signature": "System.Void CreateCppPointer(RenderContent content, System.String key, System.String prompt, System.Object initialValue, System.Boolean isTextured, System.Boolean treatAsLinear)",
        "modifiers": ["protected"],
        "protected": true,
        "virtual": false
      },
      {
        "signature": "T GetValue()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Parametrized version of GetValue calling appropriate ValueAs* methods.",
        "since": "6.12",
        "returns": "Value of type T of the field"
      },
      {
        "signature": "System.Boolean ValueAsBool()",
        "modifiers": ["protected"],
        "protected": true,
        "virtual": false,
        "summary": "Return field value as a bool.",
        "returns": "Returns field value as a bool."
      },
      {
        "signature": "System.Byte[] ValueAsByteArray()",
        "modifiers": ["protected"],
        "protected": true,
        "virtual": false,
        "summary": "Return field as a byte array.",
        "returns": "Return field as a byte array."
      },
      {
        "signature": "Color4f ValueAsColor4f()",
        "modifiers": ["protected"],
        "protected": true,
        "virtual": false,
        "summary": "Return field as a Rhino.Display.Color4f color value.",
        "returns": "Return field as a Rhino.Display.Color4f color value."
      },
      {
        "signature": "System.DateTime ValueAsDateTime()",
        "modifiers": ["protected"],
        "protected": true,
        "virtual": false,
        "summary": "Return field as a DateTime value.",
        "returns": "Return field as a DateTime value."
      },
      {
        "signature": "System.Double ValueAsDouble()",
        "modifiers": ["protected"],
        "protected": true,
        "virtual": false,
        "summary": "Return field value as a double precision number.",
        "returns": "Return the field value as a double precision number."
      },
      {
        "signature": "System.Single ValueAsFloat()",
        "modifiers": ["protected"],
        "protected": true,
        "virtual": false,
        "summary": "Return field value as floating point number.",
        "returns": "Return the field value as an floating point number."
      },
      {
        "signature": "System.Guid ValueAsGuid()",
        "modifiers": ["protected"],
        "protected": true,
        "virtual": false,
        "summary": "Return field value as Guid.",
        "returns": "Return the field value as an Guid."
      },
      {
        "signature": "System.Int32 ValueAsInt()",
        "modifiers": ["protected"],
        "protected": true,
        "virtual": false,
        "summary": "Return field value as integer.",
        "returns": "Return the field value as an integer."
      },
      {
        "signature": "System.Object ValueAsObject()",
        "modifiers": ["public", "abstract"],
        "protected": false,
        "virtual": false,
        "since": "5.7"
      },
      {
        "signature": "Point2d ValueAsPoint2d()",
        "modifiers": ["protected"],
        "protected": true,
        "virtual": false,
        "summary": "Return field as a Rhino.Geometry.Point2d color value.",
        "returns": "Return field as a Rhino.Geometry.Point2d color value."
      },
      {
        "signature": "Point3d ValueAsPoint3d()",
        "modifiers": ["protected"],
        "protected": true,
        "virtual": false,
        "summary": "Return field as a Rhino.Geometry.Point3d color value.",
        "returns": "Return field as a Rhino.Geometry.Point3d color value."
      },
      {
        "signature": "Point4d ValueAsPoint4d()",
        "modifiers": ["protected"],
        "protected": true,
        "virtual": false,
        "summary": "Return field as a Rhino.Geometry.Point4d color value.",
        "returns": "Return field as a Rhino.Geometry.Point4d color value."
      },
      {
        "signature": "System.String ValueAsString()",
        "modifiers": ["protected"],
        "protected": true,
        "virtual": false,
        "summary": "Get field value as a string.",
        "returns": "Returns the field value as a string if possible."
      },
      {
        "signature": "Transform ValueAsTransform()",
        "modifiers": ["protected"],
        "protected": true,
        "virtual": false,
        "summary": "Return field as a Rhino.Geometry.Transform color value.",
        "returns": "Return field as a Rhino.Geometry.Transform color value."
      },
      {
        "signature": "Vector2d ValueAsVector2d()",
        "modifiers": ["protected"],
        "protected": true,
        "virtual": false,
        "summary": "Return field as a Rhino.Geometry.Vector2d color value.",
        "returns": "Return field as a Rhino.Geometry.Vector2d color value."
      },
      {
        "signature": "Vector3d ValueAsVector3d()",
        "modifiers": ["protected"],
        "protected": true,
        "virtual": false,
        "summary": "Return field as a Rhino.Geometry.Vector3d color value.",
        "returns": "Return field as a Rhino.Geometry.Vector3d color value."
      }
    ]
  },
  {
    "namespace": "Rhino.Render.Fields",
    "name": "FieldDictionary",
    "dataType": "class",
    "summary": "Dictionary containing RenderContent data fields. Add fields to this dictionary in your derived RenderContent classes constructor. Get field values using the TryGet[data type]() methods and set them using the Set() method.",
    "interfaces": ["IEnumerable"],
    "methods": [
      {
        "signature": "Color4fField Add(System.String key, Color4f value, System.String prompt, System.Int32 sectionId)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Add a new Color4fField to the dictionary.",
        "since": "7.3",
        "parameters": [
          {
            "name": "key",
            "type": "System.String",
            "summary": "Key name for the field value to add. See important note above."
          },
          {
            "name": "value",
            "type": "Color4f",
            "summary": "Initial value for this field."
          },
          {
            "name": "prompt",
            "type": "System.String",
            "summary": "Prompt to display in the user interface (Content Browsers) if this is None or an empty string the this field is a data only field and will not appear in the user interface."
          },
          {
            "name": "sectionId",
            "type": "System.Int32",
            "summary": "The id of the section containing the field"
          }
        ]
      },
      {
        "signature": "Color4fField Add(System.String key, Color4f value, System.String prompt)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Add a new Color4fField to the dictionary.",
        "since": "5.1",
        "parameters": [
          {
            "name": "key",
            "type": "System.String",
            "summary": "Key name for the field value to add. See important note above."
          },
          {
            "name": "value",
            "type": "Color4f",
            "summary": "Initial value for this field."
          },
          {
            "name": "prompt",
            "type": "System.String",
            "summary": "Prompt to display in the user interface (Content Browsers) if this is None or an empty string the this field is a data only field and will not appear in the user interface."
          }
        ]
      },
      {
        "signature": "Color4fField Add(System.String key, Color4f value)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Add a new Color4fField to the dictionary. This will be a data only field and not show up in the content browsers.",
        "since": "5.1",
        "parameters": [
          {
            "name": "key",
            "type": "System.String",
            "summary": "Key name for the field value to add. See important note above."
          },
          {
            "name": "value",
            "type": "Color4f",
            "summary": "Initial value for this field."
          }
        ]
      },
      {
        "signature": "Point2dField Add(System.String key, Point2d value, System.String prompt, System.Int32 sectionId)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Add a new Point2dField to the dictionary.",
        "since": "7.3",
        "parameters": [
          {
            "name": "key",
            "type": "System.String",
            "summary": "Key name for the field value to add. See important note above."
          },
          {
            "name": "value",
            "type": "Point2d",
            "summary": "Initial value for this field."
          },
          {
            "name": "prompt",
            "type": "System.String",
            "summary": "Prompt to display in the user interface (Content Browsers) if this is None or an empty string the this field is a data only field and will not appear in the user interface."
          },
          {
            "name": "sectionId",
            "type": "System.Int32",
            "summary": "The id of the section containing the field"
          }
        ]
      },
      {
        "signature": "Point2dField Add(System.String key, Point2d value, System.String prompt)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Add a new Point2dField to the dictionary.",
        "since": "5.1",
        "parameters": [
          {
            "name": "key",
            "type": "System.String",
            "summary": "Key name for the field value to add. See important note above."
          },
          {
            "name": "value",
            "type": "Point2d",
            "summary": "Initial value for this field."
          },
          {
            "name": "prompt",
            "type": "System.String",
            "summary": "Prompt to display in the user interface (Content Browsers) if this is None or an empty string the this field is a data only field and will not appear in the user interface."
          }
        ]
      },
      {
        "signature": "Point2dField Add(System.String key, Point2d value)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Add a new Point2dField to the dictionary. This will be a data only field and not show up in the content browsers.",
        "since": "5.1",
        "parameters": [
          {
            "name": "key",
            "type": "System.String",
            "summary": "Key name for the field value to add. See important note above."
          },
          {
            "name": "value",
            "type": "Point2d",
            "summary": "Initial value for this field."
          }
        ]
      },
      {
        "signature": "Point3dField Add(System.String key, Point3d value, System.String prompt, System.Int32 sectionId)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Add a new Point3dField to the dictionary.",
        "since": "7.3",
        "parameters": [
          {
            "name": "key",
            "type": "System.String",
            "summary": "Key name for the field value to add. See important note above."
          },
          {
            "name": "value",
            "type": "Point3d",
            "summary": "Initial value for this field."
          },
          {
            "name": "prompt",
            "type": "System.String",
            "summary": "Prompt to display in the user interface (Content Browsers) if this is None or an empty string the this field is a data only field and will not appear in the user interface."
          },
          {
            "name": "sectionId",
            "type": "System.Int32",
            "summary": "The id of the section containing the field"
          }
        ]
      },
      {
        "signature": "Point3dField Add(System.String key, Point3d value, System.String prompt)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Add a new Point3dField to the dictionary.",
        "since": "5.1",
        "parameters": [
          {
            "name": "key",
            "type": "System.String",
            "summary": "Key name for the field value to add. See important note above."
          },
          {
            "name": "value",
            "type": "Point3d",
            "summary": "Initial value for this field."
          },
          {
            "name": "prompt",
            "type": "System.String",
            "summary": "Prompt to display in the user interface (Content Browsers) if this is None or an empty string the this field is a data only field and will not appear in the user interface."
          }
        ]
      },
      {
        "signature": "Point3dField Add(System.String key, Point3d value)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Add a new Point3dField to the dictionary. This will be a data only field and not show up in the content browsers.",
        "since": "5.1",
        "parameters": [
          {
            "name": "key",
            "type": "System.String",
            "summary": "Key name for the field value to add. See important note above."
          },
          {
            "name": "value",
            "type": "Point3d",
            "summary": "Initial value for this field."
          }
        ]
      },
      {
        "signature": "Point4dField Add(System.String key, Point4d value, System.String prompt, System.Int32 sectionId)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Add a new Point4dField to the dictionary.",
        "since": "7.3",
        "parameters": [
          {
            "name": "key",
            "type": "System.String",
            "summary": "Key name for the field value to add. See important note above."
          },
          {
            "name": "value",
            "type": "Point4d",
            "summary": "Initial value for this field."
          },
          {
            "name": "prompt",
            "type": "System.String",
            "summary": "Prompt to display in the user interface (Content Browsers) if this is None or an empty string the this field is a data only field and will not appear in the user interface."
          },
          {
            "name": "sectionId",
            "type": "System.Int32",
            "summary": "The id of the section containing the field"
          }
        ]
      },
      {
        "signature": "Point4dField Add(System.String key, Point4d value, System.String prompt)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Add a new Point4dField to the dictionary.",
        "since": "5.1",
        "parameters": [
          {
            "name": "key",
            "type": "System.String",
            "summary": "Key name for the field value to add. See important note above."
          },
          {
            "name": "value",
            "type": "Point4d",
            "summary": "Initial value for this field."
          },
          {
            "name": "prompt",
            "type": "System.String",
            "summary": "Prompt to display in the user interface (Content Browsers) if this is None or an empty string the this field is a data only field and will not appear in the user interface."
          }
        ]
      },
      {
        "signature": "Point4dField Add(System.String key, Point4d value)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Add a new Point4dField to the dictionary. This will be a data only field and not show up in the content browsers.",
        "since": "5.1",
        "parameters": [
          {
            "name": "key",
            "type": "System.String",
            "summary": "Key name for the field value to add. See important note above."
          },
          {
            "name": "value",
            "type": "Point4d",
            "summary": "Initial value for this field."
          }
        ]
      },
      {
        "signature": "BoolField Add(System.String key, System.Boolean value, System.String prompt, System.Int32 sectionId)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Add a new BoolField to the dictionary.",
        "since": "7.3",
        "parameters": [
          {
            "name": "key",
            "type": "System.String",
            "summary": "Key name for the field value to add. See important note above."
          },
          {
            "name": "value",
            "type": "System.Boolean",
            "summary": "Initial value for this field."
          },
          {
            "name": "prompt",
            "type": "System.String",
            "summary": "Prompt to display in the user interface (Content Browsers) if this is None or an empty string the this field is a data only field and will not appear in the user interface."
          },
          {
            "name": "sectionId",
            "type": "System.Int32",
            "summary": "The id of the section containing the field"
          }
        ]
      },
      {
        "signature": "BoolField Add(System.String key, System.Boolean value, System.String prompt)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Add a new BoolField to the dictionary.",
        "since": "5.1",
        "parameters": [
          {
            "name": "key",
            "type": "System.String",
            "summary": "Key name for the field value to add. See important note above."
          },
          {
            "name": "value",
            "type": "System.Boolean",
            "summary": "Initial value for this field."
          },
          {
            "name": "prompt",
            "type": "System.String",
            "summary": "Prompt to display in the user interface (Content Browsers) if this is None or an empty string the this field is a data only field and will not appear in the user interface."
          }
        ]
      },
      {
        "signature": "BoolField Add(System.String key, System.Boolean value)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Add a new BoolField to the dictionary. This will be a data only field and not show up in the content browsers.",
        "since": "5.1",
        "parameters": [
          {
            "name": "key",
            "type": "System.String",
            "summary": "Key name for the field value to add. See important note above."
          },
          {
            "name": "value",
            "type": "System.Boolean",
            "summary": "Initial value for this field."
          }
        ]
      },
      {
        "signature": "ByteArrayField Add(System.String key, System.Byte[] value)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "AddField a new ByteArrayField to the dictionary. This will be a data only field and not show up in the content browsers.",
        "since": "5.1",
        "parameters": [
          {
            "name": "key",
            "type": "System.String",
            "summary": "Key name for the field value to add. See important note above."
          },
          {
            "name": "value",
            "type": "System.Byte[]",
            "summary": "Initial value for this field."
          }
        ]
      },
      {
        "signature": "DateTimeField Add(System.String key, System.DateTime value, System.String prompt, System.Int32 sectionId)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Add a new DateTimeField to the dictionary.",
        "since": "7.3",
        "parameters": [
          {
            "name": "key",
            "type": "System.String",
            "summary": "Key name for the field value to add. See important note above."
          },
          {
            "name": "value",
            "type": "System.DateTime",
            "summary": "Initial value for this field."
          },
          {
            "name": "prompt",
            "type": "System.String",
            "summary": "Prompt to display in the user interface (Content Browsers) if this is None or an empty string the this field is a data only field and will not appear in the user interface."
          },
          {
            "name": "sectionId",
            "type": "System.Int32",
            "summary": "The id of the section containing the field"
          }
        ]
      },
      {
        "signature": "DateTimeField Add(System.String key, System.DateTime value, System.String prompt)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Add a new DateTimeField to the dictionary.",
        "since": "5.1",
        "parameters": [
          {
            "name": "key",
            "type": "System.String",
            "summary": "Key name for the field value to add. See important note above."
          },
          {
            "name": "value",
            "type": "System.DateTime",
            "summary": "Initial value for this field."
          },
          {
            "name": "prompt",
            "type": "System.String",
            "summary": "Prompt to display in the user interface (Content Browsers) if this is None or an empty string the this field is a data only field and will not appear in the user interface."
          }
        ]
      },
      {
        "signature": "DateTimeField Add(System.String key, System.DateTime value)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Add a new DateTimeField to the dictionary. This will be a data only field and not show up in the content browsers.",
        "since": "5.1",
        "parameters": [
          {
            "name": "key",
            "type": "System.String",
            "summary": "Key name for the field value to add. See important note above."
          },
          {
            "name": "value",
            "type": "System.DateTime",
            "summary": "Initial value for this field."
          }
        ]
      },
      {
        "signature": "DoubleField Add(System.String key, System.Double value, System.String prompt, System.Int32 sectionId)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Add a new DoubleField to the dictionary.",
        "since": "7.3",
        "parameters": [
          {
            "name": "key",
            "type": "System.String",
            "summary": "Key name for the field value to add. See important note above."
          },
          {
            "name": "value",
            "type": "System.Double",
            "summary": "Initial value for this field."
          },
          {
            "name": "prompt",
            "type": "System.String",
            "summary": "Prompt to display in the user interface (Content Browsers) if this is None or an empty string the this field is a data only field and will not appear in the user interface."
          },
          {
            "name": "sectionId",
            "type": "System.Int32",
            "summary": "The id of the section containing the field"
          }
        ]
      },
      {
        "signature": "DoubleField Add(System.String key, System.Double value, System.String prompt)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Add a new DoubleField to the dictionary.",
        "since": "5.1",
        "parameters": [
          {
            "name": "key",
            "type": "System.String",
            "summary": "Key name for the field value to add. See important note above."
          },
          {
            "name": "value",
            "type": "System.Double",
            "summary": "Initial value for this field."
          },
          {
            "name": "prompt",
            "type": "System.String",
            "summary": "Prompt to display in the user interface (Content Browsers) if this is None or an empty string the this field is a data only field and will not appear in the user interface."
          }
        ]
      },
      {
        "signature": "DoubleField Add(System.String key, System.Double value)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "AddField a new DoubleField to the dictionary. This will be a data only field and not show up in the content browsers.",
        "since": "5.1",
        "parameters": [
          {
            "name": "key",
            "type": "System.String",
            "summary": "Key name for the field value to add. See important note above."
          },
          {
            "name": "value",
            "type": "System.Double",
            "summary": "Initial value for this field."
          }
        ]
      },
      {
        "signature": "Color4fField Add(System.String key, System.Drawing.Color value, System.String prompt)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Add a new Color4fField to the dictionary.",
        "since": "5.1",
        "parameters": [
          {
            "name": "key",
            "type": "System.String",
            "summary": "Key name for the field value to add. See important note above."
          },
          {
            "name": "value",
            "type": "System.Drawing.Color",
            "summary": "Initial value for this field."
          },
          {
            "name": "prompt",
            "type": "System.String",
            "summary": "Prompt to display in the user interface (Content Browsers) if this is None or an empty string the this field is a data only field and will not appear in the user interface."
          }
        ]
      },
      {
        "signature": "Color4fField Add(System.String key, System.Drawing.Color value)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Add a new Color4fField to the dictionary. This will be a data only field and not show up in the content browsers.",
        "since": "5.1",
        "parameters": [
          {
            "name": "key",
            "type": "System.String",
            "summary": "Key name for the field value to add. See important note above."
          },
          {
            "name": "value",
            "type": "System.Drawing.Color",
            "summary": "Initial value for this field."
          }
        ]
      },
      {
        "signature": "GuidField Add(System.String key, System.Guid value, System.String prompt, System.Int32 sectionId)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Add a new GuidField to the dictionary.",
        "since": "7.3",
        "parameters": [
          {
            "name": "key",
            "type": "System.String",
            "summary": "Key name for the field value to add. See important note above."
          },
          {
            "name": "value",
            "type": "System.Guid",
            "summary": "Initial value for this field."
          },
          {
            "name": "prompt",
            "type": "System.String",
            "summary": "Prompt to display in the user interface (Content Browsers) if this is None or an empty string the this field is a data only field and will not appear in the user interface."
          },
          {
            "name": "sectionId",
            "type": "System.Int32",
            "summary": "The id of the section containing the field"
          }
        ]
      },
      {
        "signature": "GuidField Add(System.String key, System.Guid value, System.String prompt)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Add a new GuidField to the dictionary.",
        "since": "5.1",
        "parameters": [
          {
            "name": "key",
            "type": "System.String",
            "summary": "Key name for the field value to add. See important note above."
          },
          {
            "name": "value",
            "type": "System.Guid",
            "summary": "Initial value for this field."
          },
          {
            "name": "prompt",
            "type": "System.String",
            "summary": "Prompt to display in the user interface (Content Browsers) if this is None or an empty string the this field is a data only field and will not appear in the user interface."
          }
        ]
      },
      {
        "signature": "GuidField Add(System.String key, System.Guid value)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Add a new GuidField to the dictionary. This will be a data only field and not show up in the content browsers.",
        "since": "5.1",
        "parameters": [
          {
            "name": "key",
            "type": "System.String",
            "summary": "Key name for the field value to add. See important note above."
          },
          {
            "name": "value",
            "type": "System.Guid",
            "summary": "Initial value for this field."
          }
        ]
      },
      {
        "signature": "IntField Add(System.String key, System.Int32 value, System.String prompt, System.Int32 sectionId)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Add a new IntField to the dictionary.",
        "since": "7.3",
        "parameters": [
          {
            "name": "key",
            "type": "System.String",
            "summary": "Key name for the field value to add. See important note above."
          },
          {
            "name": "value",
            "type": "System.Int32",
            "summary": "Initial value for this field."
          },
          {
            "name": "prompt",
            "type": "System.String",
            "summary": "Prompt to display in the user interface (Content Browsers) if this is None or an empty string the this field is a data only field and will not appear in the user interface."
          },
          {
            "name": "sectionId",
            "type": "System.Int32",
            "summary": "The id of the section containing the field"
          }
        ]
      },
      {
        "signature": "IntField Add(System.String key, System.Int32 value, System.String prompt)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Add a new IntField to the dictionary.",
        "since": "5.1",
        "parameters": [
          {
            "name": "key",
            "type": "System.String",
            "summary": "Key name for the field value to add. See important note above."
          },
          {
            "name": "value",
            "type": "System.Int32",
            "summary": "Initial value for this field."
          },
          {
            "name": "prompt",
            "type": "System.String",
            "summary": "Prompt to display in the user interface (Content Browsers) if this is None or an empty string the this field is a data only field and will not appear in the user interface."
          }
        ]
      },
      {
        "signature": "IntField Add(System.String key, System.Int32 value)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Add a new IntField to the dictionary. This will be a data only field and not show up in the content browsers.",
        "since": "5.1",
        "parameters": [
          {
            "name": "key",
            "type": "System.String",
            "summary": "Key name for the field value to add. See important note above."
          },
          {
            "name": "value",
            "type": "System.Int32",
            "summary": "Initial value for this field."
          }
        ]
      },
      {
        "signature": "FloatField Add(System.String key, System.Single value, System.String prompt, System.Int32 sectionId)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "AddField a new FloatField to the dictionary.",
        "since": "7.3",
        "parameters": [
          {
            "name": "key",
            "type": "System.String",
            "summary": "Key name for the field value to add. See important note above"
          },
          {
            "name": "value",
            "type": "System.Single",
            "summary": "Initial value for this field."
          },
          {
            "name": "prompt",
            "type": "System.String",
            "summary": "Prompt to display in the user interface (Content Browsers) if this is None or an empty string the this field is a data only field and will not appear in the user interface."
          },
          {
            "name": "sectionId",
            "type": "System.Int32",
            "summary": "The id of the section containing the field"
          }
        ]
      },
      {
        "signature": "FloatField Add(System.String key, System.Single value, System.String prompt)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "AddField a new FloatField to the dictionary.",
        "since": "5.1",
        "parameters": [
          {
            "name": "key",
            "type": "System.String",
            "summary": "Key name for the field value to add. See important note above."
          },
          {
            "name": "value",
            "type": "System.Single",
            "summary": "Initial value for this field."
          },
          {
            "name": "prompt",
            "type": "System.String",
            "summary": "Prompt to display in the user interface (Content Browsers) if this is None or an empty string the this field is a data only field and will not appear in the user interface."
          }
        ]
      },
      {
        "signature": "FloatField Add(System.String key, System.Single value)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Add a new FloatField to the dictionary. This will be a data only field and not show up in the content browsers.",
        "since": "5.1",
        "parameters": [
          {
            "name": "key",
            "type": "System.String",
            "summary": "Key name for the field value to add. See important note above."
          },
          {
            "name": "value",
            "type": "System.Single",
            "summary": "Initial value for this field."
          }
        ]
      },
      {
        "signature": "NullField Add(System.String key, System.String prompt, System.Int32 sectionId)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Add a new NullField to the dictionary.",
        "since": "7.14",
        "parameters": [
          {
            "name": "key",
            "type": "System.String",
            "summary": "Key name for the field value to add. See important note above."
          },
          {
            "name": "prompt",
            "type": "System.String",
            "summary": "Prompt to display in the user interface (Content Browsers) if this is None or an empty string the this field is a data only field and will not appear in the user interface."
          },
          {
            "name": "sectionId",
            "type": "System.Int32",
            "summary": "Id of the section containing the field"
          }
        ]
      },
      {
        "signature": "StringField Add(System.String key, System.String value, System.String prompt, System.Int32 sectionId)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Add a new StringField to the dictionary.",
        "since": "7.3",
        "parameters": [
          {
            "name": "key",
            "type": "System.String",
            "summary": "Key name for the field value to add. See important note above."
          },
          {
            "name": "value",
            "type": "System.String",
            "summary": "Initial value for this field."
          },
          {
            "name": "prompt",
            "type": "System.String",
            "summary": "Prompt to display in the user interface (Content Browsers) if this is None or an empty string the this field is a data only field and will not appear in the user interface."
          },
          {
            "name": "sectionId",
            "type": "System.Int32",
            "summary": "The id of the section containing the field"
          }
        ]
      },
      {
        "signature": "StringField Add(System.String key, System.String value, System.String prompt)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Add a new StringField to the dictionary.",
        "since": "5.1",
        "parameters": [
          {
            "name": "key",
            "type": "System.String",
            "summary": "Key name for the field value to add. See important note above."
          },
          {
            "name": "value",
            "type": "System.String",
            "summary": "Initial value for this field."
          },
          {
            "name": "prompt",
            "type": "System.String",
            "summary": "Prompt to display in the user interface (Content Browsers) if this is None or an empty string the this field is a data only field and will not appear in the user interface."
          }
        ]
      },
      {
        "signature": "StringField Add(System.String key, System.String value)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Add a new StringField to the dictionary.  This will be a data only field and not show up in the content browsers.",
        "since": "5.1",
        "parameters": [
          {
            "name": "key",
            "type": "System.String",
            "summary": "Key name for the field value to add. See important note above."
          },
          {
            "name": "value",
            "type": "System.String",
            "summary": "Initial value for this field."
          }
        ]
      },
      {
        "signature": "TransformField Add(System.String key, Transform value, System.String prompt, System.Int32 sectionId)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Add a new TransformField to the dictionary.",
        "since": "7.3",
        "parameters": [
          {
            "name": "key",
            "type": "System.String",
            "summary": "Key name for the field value to add. See important note above."
          },
          {
            "name": "value",
            "type": "Transform",
            "summary": "Initial value for this field."
          },
          {
            "name": "prompt",
            "type": "System.String",
            "summary": "Prompt to display in the user interface (Content Browsers) if this is None or an empty string the this field is a data only field and will not appear in the user interface."
          },
          {
            "name": "sectionId",
            "type": "System.Int32",
            "summary": "The id of the section containing the field"
          }
        ]
      },
      {
        "signature": "TransformField Add(System.String key, Transform value, System.String prompt)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Add a new TransformField to the dictionary.",
        "since": "5.1",
        "parameters": [
          {
            "name": "key",
            "type": "System.String",
            "summary": "Key name for the field value to add. See important note above."
          },
          {
            "name": "value",
            "type": "Transform",
            "summary": "Initial value for this field."
          },
          {
            "name": "prompt",
            "type": "System.String",
            "summary": "Prompt to display in the user interface (Content Browsers) if this is None or an empty string the this field is a data only field and will not appear in the user interface."
          }
        ]
      },
      {
        "signature": "TransformField Add(System.String key, Transform value)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Add a new TransformField to the dictionary. This will be a data only field and not show up in the content browsers.",
        "since": "5.1",
        "parameters": [
          {
            "name": "key",
            "type": "System.String",
            "summary": "Key name for the field value to add. See important note above."
          },
          {
            "name": "value",
            "type": "Transform",
            "summary": "Initial value for this field."
          }
        ]
      },
      {
        "signature": "Vector2dField Add(System.String key, Vector2d value, System.String prompt, System.Int32 sectionId)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Add a new Vector2dField to the dictionary.",
        "since": "7.3",
        "parameters": [
          {
            "name": "key",
            "type": "System.String",
            "summary": "Key name for the field value to add. See important note above."
          },
          {
            "name": "value",
            "type": "Vector2d",
            "summary": "Initial value for this field."
          },
          {
            "name": "prompt",
            "type": "System.String",
            "summary": "Prompt to display in the user interface (Content Browsers) if this is None or an empty string the this field is a data only field and will not appear in the user interface."
          },
          {
            "name": "sectionId",
            "type": "System.Int32",
            "summary": "The id of the section containing the field"
          }
        ]
      },
      {
        "signature": "Vector2dField Add(System.String key, Vector2d value, System.String prompt)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Add a new Vector2dField to the dictionary.",
        "since": "5.1",
        "parameters": [
          {
            "name": "key",
            "type": "System.String",
            "summary": "Key name for the field value to add. See important note above."
          },
          {
            "name": "value",
            "type": "Vector2d",
            "summary": "Initial value for this field."
          },
          {
            "name": "prompt",
            "type": "System.String",
            "summary": "Prompt to display in the user interface (Content Browsers) if this is None or an empty string the this field is a data only field and will not appear in the user interface."
          }
        ]
      },
      {
        "signature": "Vector2dField Add(System.String key, Vector2d value)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Add a new Vector2dField to the dictionary. This will be a data only field and not show up in the content browsers.",
        "since": "5.1",
        "parameters": [
          {
            "name": "key",
            "type": "System.String",
            "summary": "Key name for the field value to add. See important note above."
          },
          {
            "name": "value",
            "type": "Vector2d",
            "summary": "Initial value for this field."
          }
        ]
      },
      {
        "signature": "Vector3dField Add(System.String key, Vector3d value, System.String prompt, System.Int32 sectionId)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Add a new Vector3dField to the dictionary.",
        "since": "7.3",
        "parameters": [
          {
            "name": "key",
            "type": "System.String",
            "summary": "Key name for the field value to add. See important note above."
          },
          {
            "name": "value",
            "type": "Vector3d",
            "summary": "Initial value for this field."
          },
          {
            "name": "prompt",
            "type": "System.String",
            "summary": "Prompt to display in the user interface (Content Browsers) if this is None or an empty string the this field is a data only field and will not appear in the user interface."
          },
          {
            "name": "sectionId",
            "type": "System.Int32",
            "summary": "The id of the section containing the field"
          }
        ]
      },
      {
        "signature": "Vector3dField Add(System.String key, Vector3d value, System.String prompt)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Add a new Vector3dField to the dictionary.",
        "since": "5.1",
        "parameters": [
          {
            "name": "key",
            "type": "System.String",
            "summary": "Key name for the field value to add. See important note above."
          },
          {
            "name": "value",
            "type": "Vector3d",
            "summary": "Initial value for this field."
          },
          {
            "name": "prompt",
            "type": "System.String",
            "summary": "Prompt to display in the user interface (Content Browsers) if this is None or an empty string the this field is a data only field and will not appear in the user interface."
          }
        ]
      },
      {
        "signature": "Vector3dField Add(System.String key, Vector3d value)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Add a new Vector3dField to the dictionary. This will be a data only field and not show up in the content browsers.",
        "since": "5.1",
        "parameters": [
          {
            "name": "key",
            "type": "System.String",
            "summary": "Key name for the field value to add. See important note above."
          },
          {
            "name": "value",
            "type": "Vector3d",
            "summary": "Initial value for this field."
          }
        ]
      },
      {
        "signature": "StringField AddFilename(System.String key, System.String value, System.String prompt, System.Int32 sectionId)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Add a new StringField to the dictionary which will reference a filename.  A file watcher will automatically be attached to the referenced file, and the content will be considered changed when the file is changed on disk.",
        "since": "7.4",
        "parameters": [
          {
            "name": "key",
            "type": "System.String",
            "summary": "Key name for the field value to add. See important note above."
          },
          {
            "name": "value",
            "type": "System.String",
            "summary": "Initial value for this field."
          },
          {
            "name": "prompt",
            "type": "System.String",
            "summary": "Prompt to display in the user interface (Content Browsers) if this is None or an empty string the this field is a data only field and will not appear in the user interface."
          },
          {
            "name": "sectionId",
            "type": "System.Int32",
            "summary": "The id of the section containing the field"
          }
        ]
      },
      {
        "signature": "Color4fField AddTextured(System.String key, Color4f value, System.String prompt, System.Boolean treatAsLinear, System.Int32 sectionId)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Add a new Color4fField to the dictionary. This overload will cause the field to be tagged as \"textured\" so that the texturing UI will appear in automatic UIs.",
        "since": "7.3",
        "parameters": [
          {
            "name": "key",
            "type": "System.String",
            "summary": "Key name for the field value to add. See important note above."
          },
          {
            "name": "value",
            "type": "Color4f",
            "summary": "Initial value for this field."
          },
          {
            "name": "prompt",
            "type": "System.String",
            "summary": "Prompt to display in the user interface (Content Browsers) if this is None or an empty string the this field is a data only field and will not appear in the user interface."
          },
          {
            "name": "treatAsLinear",
            "type": "System.Boolean",
            "summary": "Determines whether the texture in this slot will be treated as linear by rendering engines (ie - not gamma packed)."
          },
          {
            "name": "sectionId",
            "type": "System.Int32",
            "summary": "The id of the section containing the field"
          }
        ]
      },
      {
        "signature": "Color4fField AddTextured(System.String key, Color4f value, System.String prompt, System.Boolean treatAsLinear)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Add a new Color4fField to the dictionary. This overload will cause the field to be tagged as \"textured\" so that the texturing UI will appear in automatic UIs.",
        "since": "7.0",
        "parameters": [
          {
            "name": "key",
            "type": "System.String",
            "summary": "Key name for the field value to add. See important note above."
          },
          {
            "name": "value",
            "type": "Color4f",
            "summary": "Initial value for this field."
          },
          {
            "name": "prompt",
            "type": "System.String",
            "summary": "Prompt to display in the user interface (Content Browsers) if this is None or an empty string the this field is a data only field and will not appear in the user interface."
          },
          {
            "name": "treatAsLinear",
            "type": "System.Boolean",
            "summary": "Determines whether the texture in this slot will be treated as linear by rendering engines (ie - not gamma packed)."
          }
        ]
      },
      {
        "signature": "Color4fField AddTextured(System.String key, Color4f value, System.String prompt)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.7",
        "deprecated": "7.0"
      },
      {
        "signature": "Point2dField AddTextured(System.String key, Point2d value, System.String prompt, System.Boolean treatAsLinear, System.Int32 sectionId)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Add a new Point2dField to the dictionary. This overload will cause the field to be tagged as \"textured\" so that the texturing UI will appear in automatic UIs.",
        "since": "7.0",
        "parameters": [
          {
            "name": "key",
            "type": "System.String",
            "summary": "Key name for the field value to add. See important note above."
          },
          {
            "name": "value",
            "type": "Point2d",
            "summary": "Initial value for this field."
          },
          {
            "name": "prompt",
            "type": "System.String",
            "summary": "Prompt to display in the user interface (Content Browsers) if this is None or an empty string the this field is a data only field and will not appear in the user interface."
          },
          {
            "name": "treatAsLinear",
            "type": "System.Boolean",
            "summary": "Determines whether the texture in this slot will be treated as linear by rendering engines (ie - not gamma packed)."
          },
          {
            "name": "sectionId",
            "type": "System.Int32",
            "summary": "The id of the section containing the field"
          }
        ]
      },
      {
        "signature": "Point2dField AddTextured(System.String key, Point2d value, System.String prompt, System.Boolean treatAsLinear)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Add a new Point2dField to the dictionary. This overload will cause the field to be tagged as \"textured\" so that the texturing UI will appear in automatic UIs.",
        "since": "7.0",
        "parameters": [
          {
            "name": "key",
            "type": "System.String",
            "summary": "Key name for the field value to add. See important note above."
          },
          {
            "name": "value",
            "type": "Point2d",
            "summary": "Initial value for this field."
          },
          {
            "name": "prompt",
            "type": "System.String",
            "summary": "Prompt to display in the user interface (Content Browsers) if this is None or an empty string the this field is a data only field and will not appear in the user interface."
          },
          {
            "name": "treatAsLinear",
            "type": "System.Boolean",
            "summary": "Determines whether the texture in this slot will be treated as linear by rendering engines (ie - not gamma packed)."
          }
        ]
      },
      {
        "signature": "Point2dField AddTextured(System.String key, Point2d value, System.String prompt)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Add a new Point2dField to the dictionary. This overload will cause the field to be tagged as \"textured\" so that the texturing UI will appear in automatic UIs.",
        "since": "5.7",
        "parameters": [
          {
            "name": "key",
            "type": "System.String",
            "summary": "Key name for the field value to add. See important note above."
          },
          {
            "name": "value",
            "type": "Point2d",
            "summary": "Initial value for this field."
          },
          {
            "name": "prompt",
            "type": "System.String",
            "summary": "Prompt to display in the user interface (Content Browsers) if this is None or an empty string the this field is a data only field and will not appear in the user interface."
          }
        ]
      },
      {
        "signature": "Point3dField AddTextured(System.String key, Point3d value, System.String prompt, System.Boolean treatAsLinear, System.Int32 sectionId)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Add a new Point3dField to the dictionary. This overload will cause the field to be tagged as \"textured\" so that the texturing UI will appear in automatic UIs.",
        "since": "7.0",
        "parameters": [
          {
            "name": "key",
            "type": "System.String",
            "summary": "Key name for the field value to add. See important note above."
          },
          {
            "name": "value",
            "type": "Point3d",
            "summary": "Initial value for this field."
          },
          {
            "name": "prompt",
            "type": "System.String",
            "summary": "Prompt to display in the user interface (Content Browsers) if this is None or an empty string the this field is a data only field and will not appear in the user interface."
          },
          {
            "name": "treatAsLinear",
            "type": "System.Boolean",
            "summary": "Determines whether the texture in this slot will be treated as linear by rendering engines (ie - not gamma packed)."
          },
          {
            "name": "sectionId",
            "type": "System.Int32",
            "summary": "The id of the section containing the field"
          }
        ]
      },
      {
        "signature": "Point3dField AddTextured(System.String key, Point3d value, System.String prompt, System.Boolean treatAsLinear)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Add a new Point3dField to the dictionary. This overload will cause the field to be tagged as \"textured\" so that the texturing UI will appear in automatic UIs.",
        "since": "7.0",
        "parameters": [
          {
            "name": "key",
            "type": "System.String",
            "summary": "Key name for the field value to add. See important note above."
          },
          {
            "name": "value",
            "type": "Point3d",
            "summary": "Initial value for this field."
          },
          {
            "name": "prompt",
            "type": "System.String",
            "summary": "Prompt to display in the user interface (Content Browsers) if this is None or an empty string the this field is a data only field and will not appear in the user interface."
          },
          {
            "name": "treatAsLinear",
            "type": "System.Boolean",
            "summary": "Determines whether the texture in this slot will be treated as linear by rendering engines (ie - not gamma packed)."
          }
        ]
      },
      {
        "signature": "Point3dField AddTextured(System.String key, Point3d value, System.String prompt)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Add a new Point3dField to the dictionary. This overload will cause the field to be tagged as \"textured\" so that the texturing UI will appear in automatic UIs.",
        "since": "5.7",
        "parameters": [
          {
            "name": "key",
            "type": "System.String",
            "summary": "Key name for the field value to add. See important note above."
          },
          {
            "name": "value",
            "type": "Point3d",
            "summary": "Initial value for this field."
          },
          {
            "name": "prompt",
            "type": "System.String",
            "summary": "Prompt to display in the user interface (Content Browsers) if this is None or an empty string the this field is a data only field and will not appear in the user interface."
          }
        ]
      },
      {
        "signature": "Point4dField AddTextured(System.String key, Point4d value, System.String prompt, System.Boolean treatAsLinear, System.Int32 sectionId)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Add a new Point4dField to the dictionary. This overload will cause the field to be tagged as \"textured\" so that the texturing UI will appear in automatic UIs.",
        "since": "7.3",
        "parameters": [
          {
            "name": "key",
            "type": "System.String",
            "summary": "Key name for the field value to add. See important note above."
          },
          {
            "name": "value",
            "type": "Point4d",
            "summary": "Initial value for this field."
          },
          {
            "name": "prompt",
            "type": "System.String",
            "summary": "Prompt to display in the user interface (Content Browsers) if this is None or an empty string the this field is a data only field and will not appear in the user interface."
          },
          {
            "name": "treatAsLinear",
            "type": "System.Boolean",
            "summary": "Determines whether the texture in this slot will be treated as linear by rendering engines (ie - not gamma packed)."
          },
          {
            "name": "sectionId",
            "type": "System.Int32",
            "summary": "The id of the section containing the field"
          }
        ]
      },
      {
        "signature": "Point4dField AddTextured(System.String key, Point4d value, System.String prompt, System.Boolean treatAsLinear)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Add a new Point4dField to the dictionary. This overload will cause the field to be tagged as \"textured\" so that the texturing UI will appear in automatic UIs.",
        "since": "7.0",
        "parameters": [
          {
            "name": "key",
            "type": "System.String",
            "summary": "Key name for the field value to add. See important note above."
          },
          {
            "name": "value",
            "type": "Point4d",
            "summary": "Initial value for this field."
          },
          {
            "name": "prompt",
            "type": "System.String",
            "summary": "Prompt to display in the user interface (Content Browsers) if this is None or an empty string the this field is a data only field and will not appear in the user interface."
          },
          {
            "name": "treatAsLinear",
            "type": "System.Boolean",
            "summary": "Determines whether the texture in this slot will be treated as linear by rendering engines (ie - not gamma packed)."
          }
        ]
      },
      {
        "signature": "Point4dField AddTextured(System.String key, Point4d value, System.String prompt)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Add a new Point4dField to the dictionary. This overload will cause the field to be tagged as \"textured\" so that the texturing UI will appear in automatic UIs.",
        "since": "5.7",
        "parameters": [
          {
            "name": "key",
            "type": "System.String",
            "summary": "Key name for the field value to add. See important note above."
          },
          {
            "name": "value",
            "type": "Point4d",
            "summary": "Initial value for this field."
          },
          {
            "name": "prompt",
            "type": "System.String",
            "summary": "Prompt to display in the user interface (Content Browsers) if this is None or an empty string the this field is a data only field and will not appear in the user interface."
          }
        ]
      },
      {
        "signature": "BoolField AddTextured(System.String key, System.Boolean value, System.String prompt, System.Boolean treatAsLinear, System.Int32 sectionId)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Add a new BoolField to the dictionary. This overload will cause the field to be tagged as \"textured\" so that the texturing UI will appear in automatic UIs.",
        "since": "7.3",
        "parameters": [
          {
            "name": "key",
            "type": "System.String",
            "summary": "Key name for the field value to add. See important note above."
          },
          {
            "name": "value",
            "type": "System.Boolean",
            "summary": "Initial value for this field."
          },
          {
            "name": "prompt",
            "type": "System.String",
            "summary": "Prompt to display in the user interface (Content Browsers) if this is None or an empty string the this field is a data only field and will not appear in the user interface."
          },
          {
            "name": "treatAsLinear",
            "type": "System.Boolean",
            "summary": "Determines whether the texture in this slot will be treated as linear by rendering engines (ie - not gamma packed)."
          },
          {
            "name": "sectionId",
            "type": "System.Int32",
            "summary": "The id of the section containing the field"
          }
        ]
      },
      {
        "signature": "BoolField AddTextured(System.String key, System.Boolean value, System.String prompt, System.Boolean treatAsLinear)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Add a new BoolField to the dictionary. This overload will cause the field to be tagged as \"textured\" so that the texturing UI will appear in automatic UIs.",
        "since": "7.0",
        "parameters": [
          {
            "name": "key",
            "type": "System.String",
            "summary": "Key name for the field value to add. See important note above."
          },
          {
            "name": "value",
            "type": "System.Boolean",
            "summary": "Initial value for this field."
          },
          {
            "name": "prompt",
            "type": "System.String",
            "summary": "Prompt to display in the user interface (Content Browsers) if this is None or an empty string the this field is a data only field and will not appear in the user interface."
          },
          {
            "name": "treatAsLinear",
            "type": "System.Boolean",
            "summary": "Determines whether the texture in this slot will be treated as linear by rendering engines (ie - not gamma packed)."
          }
        ]
      },
      {
        "signature": "BoolField AddTextured(System.String key, System.Boolean value, System.String prompt)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Add a new BoolField to the dictionary. This overload will cause the field to be tagged as \"textured\" so that the texturing UI will appear in automatic UIs.",
        "since": "5.7",
        "parameters": [
          {
            "name": "key",
            "type": "System.String",
            "summary": "Key name for the field value to add. See important note above."
          },
          {
            "name": "value",
            "type": "System.Boolean",
            "summary": "Initial value for this field."
          },
          {
            "name": "prompt",
            "type": "System.String",
            "summary": "Prompt to display in the user interface (Content Browsers) if this is None or an empty string the this field is a data only field and will not appear in the user interface."
          }
        ]
      },
      {
        "signature": "DateTimeField AddTextured(System.String key, System.DateTime value, System.String prompt, System.Boolean treatAsLinear, System.Int32 sectionId)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Add a new DateTimeField to the dictionary. This overload will cause the field to be tagged as \"textured\" so that the texturing UI will appear in automatic UIs.",
        "since": "7.3",
        "parameters": [
          {
            "name": "key",
            "type": "System.String",
            "summary": "Key name for the field value to add. See important note above."
          },
          {
            "name": "value",
            "type": "System.DateTime",
            "summary": "Initial value for this field."
          },
          {
            "name": "prompt",
            "type": "System.String",
            "summary": "Prompt to display in the user interface (Content Browsers) if this is None or an empty string the this field is a data only field and will not appear in the user interface."
          },
          {
            "name": "treatAsLinear",
            "type": "System.Boolean",
            "summary": "Determines whether the texture in this slot will be treated as linear by rendering engines (ie - not gamma packed)."
          },
          {
            "name": "sectionId",
            "type": "System.Int32",
            "summary": "The id of the section containing the field"
          }
        ]
      },
      {
        "signature": "DateTimeField AddTextured(System.String key, System.DateTime value, System.String prompt, System.Boolean treatAsLinear)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Add a new DateTimeField to the dictionary. This overload will cause the field to be tagged as \"textured\" so that the texturing UI will appear in automatic UIs.",
        "since": "7.0",
        "parameters": [
          {
            "name": "key",
            "type": "System.String",
            "summary": "Key name for the field value to add. See important note above."
          },
          {
            "name": "value",
            "type": "System.DateTime",
            "summary": "Initial value for this field."
          },
          {
            "name": "prompt",
            "type": "System.String",
            "summary": "Prompt to display in the user interface (Content Browsers) if this is None or an empty string the this field is a data only field and will not appear in the user interface."
          },
          {
            "name": "treatAsLinear",
            "type": "System.Boolean",
            "summary": "Determines whether the texture in this slot will be treated as linear by rendering engines (ie - not gamma packed)."
          }
        ]
      },
      {
        "signature": "DateTimeField AddTextured(System.String key, System.DateTime value, System.String prompt)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Add a new DateTimeField to the dictionary. This overload will cause the field to be tagged as \"textured\" so that the texturing UI will appear in automatic UIs.",
        "since": "5.7",
        "parameters": [
          {
            "name": "key",
            "type": "System.String",
            "summary": "Key name for the field value to add. See important note above."
          },
          {
            "name": "value",
            "type": "System.DateTime",
            "summary": "Initial value for this field."
          },
          {
            "name": "prompt",
            "type": "System.String",
            "summary": "Prompt to display in the user interface (Content Browsers) if this is None or an empty string the this field is a data only field and will not appear in the user interface."
          }
        ]
      },
      {
        "signature": "DoubleField AddTextured(System.String key, System.Double value, System.String prompt, System.Boolean treatAsLinear, System.Int32 sectionId)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Add a new DoubleField to the dictionary. This overload will cause the field to be tagged as \"textured\" so that the texturing UI will appear in automatic UIs.",
        "since": "7.3",
        "parameters": [
          {
            "name": "key",
            "type": "System.String",
            "summary": "Key name for the field value to add. See important note above."
          },
          {
            "name": "value",
            "type": "System.Double",
            "summary": "Initial value for this field."
          },
          {
            "name": "prompt",
            "type": "System.String",
            "summary": "Prompt to display in the user interface (Content Browsers) if this is None or an empty string the this field is a data only field and will not appear in the user interface."
          },
          {
            "name": "treatAsLinear",
            "type": "System.Boolean",
            "summary": "Determines whether the texture in this slot will be treated as linear by rendering engines (ie - not gamma packed)."
          },
          {
            "name": "sectionId",
            "type": "System.Int32",
            "summary": "The id of the section containing the field"
          }
        ]
      },
      {
        "signature": "DoubleField AddTextured(System.String key, System.Double value, System.String prompt, System.Boolean treatAsLinear)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Add a new DoubleField to the dictionary. This overload will cause the field to be tagged as \"textured\" so that the texturing UI will appear in automatic UIs.",
        "since": "7.0",
        "parameters": [
          {
            "name": "key",
            "type": "System.String",
            "summary": "Key name for the field value to add. See important note above."
          },
          {
            "name": "value",
            "type": "System.Double",
            "summary": "Initial value for this field."
          },
          {
            "name": "prompt",
            "type": "System.String",
            "summary": "Prompt to display in the user interface (Content Browsers) if this is None or an empty string the this field is a data only field and will not appear in the user interface."
          },
          {
            "name": "treatAsLinear",
            "type": "System.Boolean",
            "summary": "Determines whether the texture in this slot will be treated as linear by rendering engines (ie - not gamma packed)."
          }
        ]
      },
      {
        "signature": "DoubleField AddTextured(System.String key, System.Double value, System.String prompt)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Add a new DoubleField to the dictionary. This overload will cause the field to be tagged as \"textured\" so that the texturing UI will appear in automatic UIs.",
        "since": "5.7",
        "parameters": [
          {
            "name": "key",
            "type": "System.String",
            "summary": "Key name for the field value to add. See important note above."
          },
          {
            "name": "value",
            "type": "System.Double",
            "summary": "Initial value for this field."
          },
          {
            "name": "prompt",
            "type": "System.String",
            "summary": "Prompt to display in the user interface (Content Browsers) if this is None or an empty string the this field is a data only field and will not appear in the user interface."
          }
        ]
      },
      {
        "signature": "Color4fField AddTextured(System.String key, System.Drawing.Color value, System.String prompt, System.Boolean treatAsLinear)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Add a new Color4fField to the dictionary. This overload will cause the field to be tagged as \"textured\" so that the texturing UI will appear in automatic UIs.",
        "since": "7.0",
        "parameters": [
          {
            "name": "key",
            "type": "System.String",
            "summary": "Key name for the field value to add. See important note above."
          },
          {
            "name": "value",
            "type": "System.Drawing.Color",
            "summary": "Initial value for this field."
          },
          {
            "name": "prompt",
            "type": "System.String",
            "summary": "Prompt to display in the user interface (Content Browsers) if this is None or an empty string the this field is a data only field and will not appear in the user interface."
          },
          {
            "name": "treatAsLinear",
            "type": "System.Boolean",
            "summary": "Determines whether the texture in this slot will be treated as linear by rendering engines (ie - not gamma packed)."
          }
        ]
      },
      {
        "signature": "Color4fField AddTextured(System.String key, System.Drawing.Color value, System.String prompt)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Add a new Color4fField to the dictionary. This overload will cause the field to be tagged as \"textured\" so that the texturing UI will appear in automatic UIs.",
        "since": "5.7",
        "parameters": [
          {
            "name": "key",
            "type": "System.String",
            "summary": "Key name for the field value to add. See important note above."
          },
          {
            "name": "value",
            "type": "System.Drawing.Color",
            "summary": "Initial value for this field."
          },
          {
            "name": "prompt",
            "type": "System.String",
            "summary": "Prompt to display in the user interface (Content Browsers) if this is None or an empty string the this field is a data only field and will not appear in the user interface."
          }
        ]
      },
      {
        "signature": "GuidField AddTextured(System.String key, System.Guid value, System.String prompt, System.Boolean treatAsLinear, System.Int32 sectionId)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Add a new GuidField to the dictionary. This overload will cause the field to be tagged as \"textured\" so that the texturing UI will appear in automatic UIs.",
        "since": "7.3",
        "parameters": [
          {
            "name": "key",
            "type": "System.String",
            "summary": "Key name for the field value to add. See important note above."
          },
          {
            "name": "value",
            "type": "System.Guid",
            "summary": "Initial value for this field."
          },
          {
            "name": "prompt",
            "type": "System.String",
            "summary": "Prompt to display in the user interface (Content Browsers) if this is None or an empty string the this field is a data only field and will not appear in the user interface."
          },
          {
            "name": "treatAsLinear",
            "type": "System.Boolean",
            "summary": "Determines whether the texture in this slot will be treated as linear by rendering engines (ie - not gamma packed)."
          },
          {
            "name": "sectionId",
            "type": "System.Int32",
            "summary": "The id of the section containing the field"
          }
        ]
      },
      {
        "signature": "GuidField AddTextured(System.String key, System.Guid value, System.String prompt, System.Boolean treatAsLinear)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Add a new GuidField to the dictionary. This overload will cause the field to be tagged as \"textured\" so that the texturing UI will appear in automatic UIs.",
        "since": "7.0",
        "parameters": [
          {
            "name": "key",
            "type": "System.String",
            "summary": "Key name for the field value to add. See important note above."
          },
          {
            "name": "value",
            "type": "System.Guid",
            "summary": "Initial value for this field."
          },
          {
            "name": "prompt",
            "type": "System.String",
            "summary": "Prompt to display in the user interface (Content Browsers) if this is None or an empty string the this field is a data only field and will not appear in the user interface."
          },
          {
            "name": "treatAsLinear",
            "type": "System.Boolean",
            "summary": "Determines whether the texture in this slot will be treated as linear by rendering engines (ie - not gamma packed)."
          }
        ]
      },
      {
        "signature": "GuidField AddTextured(System.String key, System.Guid value, System.String prompt)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Add a new GuidField to the dictionary. This overload will cause the field to be tagged as \"textured\" so that the texturing UI will appear in automatic UIs.",
        "since": "5.7",
        "parameters": [
          {
            "name": "key",
            "type": "System.String",
            "summary": "Key name for the field value to add. See important note above."
          },
          {
            "name": "value",
            "type": "System.Guid",
            "summary": "Initial value for this field."
          },
          {
            "name": "prompt",
            "type": "System.String",
            "summary": "Prompt to display in the user interface (Content Browsers) if this is None or an empty string the this field is a data only field and will not appear in the user interface."
          }
        ]
      },
      {
        "signature": "IntField AddTextured(System.String key, System.Int32 value, System.String prompt, System.Boolean treatAsLinear, System.Int32 sectionId)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Add a new IntField to the dictionary. This overload will cause the field to be tagged as \"textured\" so that the texturing UI will appear in automatic UIs.",
        "since": "7.3",
        "parameters": [
          {
            "name": "key",
            "type": "System.String",
            "summary": "Key name for the field value to add. See important note above."
          },
          {
            "name": "value",
            "type": "System.Int32",
            "summary": "Initial value for this field."
          },
          {
            "name": "prompt",
            "type": "System.String",
            "summary": "Prompt to display in the user interface (Content Browsers) if this is None or an empty string the this field is a data only field and will not appear in the user interface."
          },
          {
            "name": "treatAsLinear",
            "type": "System.Boolean",
            "summary": "Determines whether the texture in this slot will be treated as linear by rendering engines (ie - not gamma packed)."
          },
          {
            "name": "sectionId",
            "type": "System.Int32",
            "summary": "The id of the section containing the field"
          }
        ]
      },
      {
        "signature": "IntField AddTextured(System.String key, System.Int32 value, System.String prompt, System.Boolean treatAsLinear)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Add a new IntField to the dictionary. This overload will cause the field to be tagged as \"textured\" so that the texturing UI will appear in automatic UIs.",
        "since": "7.0",
        "parameters": [
          {
            "name": "key",
            "type": "System.String",
            "summary": "Key name for the field value to add. See important note above."
          },
          {
            "name": "value",
            "type": "System.Int32",
            "summary": "Initial value for this field."
          },
          {
            "name": "prompt",
            "type": "System.String",
            "summary": "Prompt to display in the user interface (Content Browsers) if this is None or an empty string the this field is a data only field and will not appear in the user interface."
          },
          {
            "name": "treatAsLinear",
            "type": "System.Boolean",
            "summary": "Determines whether the texture in this slot will be treated as linear by rendering engines (ie - not gamma packed)."
          }
        ]
      },
      {
        "signature": "IntField AddTextured(System.String key, System.Int32 value, System.String prompt)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Add a new IntField to the dictionary. This overload will cause the field to be tagged as \"textured\" so that the texturing UI will appear in automatic UIs.",
        "since": "5.7",
        "parameters": [
          {
            "name": "key",
            "type": "System.String",
            "summary": "Key name for the field value to add. See important note above."
          },
          {
            "name": "value",
            "type": "System.Int32",
            "summary": "Initial value for this field."
          },
          {
            "name": "prompt",
            "type": "System.String",
            "summary": "Prompt to display in the user interface (Content Browsers) if this is None or an empty string the this field is a data only field and will not appear in the user interface."
          }
        ]
      },
      {
        "signature": "FloatField AddTextured(System.String key, System.Single value, System.String prompt, System.Boolean treatAsLinear, System.Int32 sectionId)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Add a new FloatField to the dictionary. This overload will cause the field to be tagged as \"textured\" so that the texturing UI will appear in automatic UIs.",
        "since": "7.3",
        "parameters": [
          {
            "name": "key",
            "type": "System.String",
            "summary": "Key name for the field value to add. See important note above"
          },
          {
            "name": "value",
            "type": "System.Single",
            "summary": "Initial value for this field."
          },
          {
            "name": "prompt",
            "type": "System.String",
            "summary": "Prompt to display in the user interface (Content Browsers) if this is None or an empty string the this field is a data only field and will not appear in the user interface."
          },
          {
            "name": "treatAsLinear",
            "type": "System.Boolean",
            "summary": "Determines whether the texture in this slot will be treated as linear by rendering engines (ie - not gamma packed)."
          },
          {
            "name": "sectionId",
            "type": "System.Int32",
            "summary": "The id of the section containing the field"
          }
        ]
      },
      {
        "signature": "FloatField AddTextured(System.String key, System.Single value, System.String prompt, System.Boolean treatAsLinear)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Add a new FloatField to the dictionary. This overload will cause the field to be tagged as \"textured\" so that the texturing UI will appear in automatic UIs.",
        "since": "7.0",
        "parameters": [
          {
            "name": "key",
            "type": "System.String",
            "summary": "Key name for the field value to add. See important note above."
          },
          {
            "name": "value",
            "type": "System.Single",
            "summary": "Initial value for this field."
          },
          {
            "name": "prompt",
            "type": "System.String",
            "summary": "Prompt to display in the user interface (Content Browsers) if this is None or an empty string the this field is a data only field and will not appear in the user interface."
          },
          {
            "name": "treatAsLinear",
            "type": "System.Boolean",
            "summary": "Determines whether the texture in this slot will be treated as linear by rendering engines (ie - not gamma packed)."
          }
        ]
      },
      {
        "signature": "FloatField AddTextured(System.String key, System.Single value, System.String prompt)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Add a new FloatField to the dictionary. This overload will cause the field to be tagged as \"textured\" so that the texturing UI will appear in automatic UIs.",
        "since": "5.7",
        "parameters": [
          {
            "name": "key",
            "type": "System.String",
            "summary": "Key name for the field value to add. See important note above."
          },
          {
            "name": "value",
            "type": "System.Single",
            "summary": "Initial value for this field."
          },
          {
            "name": "prompt",
            "type": "System.String",
            "summary": "Prompt to display in the user interface (Content Browsers) if this is None or an empty string the this field is a data only field and will not appear in the user interface."
          }
        ]
      },
      {
        "signature": "NullField AddTextured(System.String key, System.String prompt, System.Boolean treatAsLinear, System.Int32 sectionId)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Add a new NullField to the dictionary. This overload will cause the field to be tagged as \"textured\" so that the texturing UI will appear in automatic UIs.",
        "since": "7.14",
        "parameters": [
          {
            "name": "key",
            "type": "System.String",
            "summary": "Key name for the field value to add. See important note above."
          },
          {
            "name": "prompt",
            "type": "System.String",
            "summary": "Prompt to display in the user interface (Content Browsers) if this is None or an empty string the this field is a data only field and will not appear in the user interface."
          },
          {
            "name": "treatAsLinear",
            "type": "System.Boolean",
            "summary": "Determines whether the texture in this slot will be treated as linear by rendering engines (ie - not gamma packed)."
          },
          {
            "name": "sectionId",
            "type": "System.Int32",
            "summary": "The id of the section containing the field"
          }
        ]
      },
      {
        "signature": "NullField AddTextured(System.String key, System.String prompt, System.Boolean treatAsLinear)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Add a new NullField to the dictionary. This overload will cause the field to be tagged as \"textured\" so that the texturing UI will appear in automatic UIs.",
        "since": "7.14",
        "parameters": [
          {
            "name": "key",
            "type": "System.String",
            "summary": "Key name for the field value to add. See important note above."
          },
          {
            "name": "prompt",
            "type": "System.String",
            "summary": "Prompt to display in the user interface (Content Browsers) if this is None or an empty string the this field is a data only field and will not appear in the user interface."
          },
          {
            "name": "treatAsLinear",
            "type": "System.Boolean",
            "summary": "Determines whether the texture in this slot will be treated as linear by rendering engines (ie - not gamma packed)."
          }
        ]
      },
      {
        "signature": "StringField AddTextured(System.String key, System.String value, System.String prompt, System.Boolean treatAsLinear, System.Int32 sectionId)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Add a new StringField to the dictionary. This overload will cause the field to be tagged as \"textured\" so that the texturing UI will appear in automatic UIs.",
        "since": "7.3",
        "parameters": [
          {
            "name": "key",
            "type": "System.String",
            "summary": "Key name for the field value to add. See important note above."
          },
          {
            "name": "value",
            "type": "System.String",
            "summary": "Initial value for this field."
          },
          {
            "name": "prompt",
            "type": "System.String",
            "summary": "Prompt to display in the user interface (Content Browsers) if this is None or an empty string the this field is a data only field and will not appear in the user interface."
          },
          {
            "name": "treatAsLinear",
            "type": "System.Boolean",
            "summary": "Determines whether the texture in this slot will be treated as linear by rendering engines (ie - not gamma packed)."
          },
          {
            "name": "sectionId",
            "type": "System.Int32",
            "summary": "The id of the section containing the field"
          }
        ]
      },
      {
        "signature": "StringField AddTextured(System.String key, System.String value, System.String prompt, System.Boolean treatAsLinear)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Add a new StringField to the dictionary. This overload will cause the field to be tagged as \"textured\" so that the texturing UI will appear in automatic UIs.",
        "since": "7.0",
        "parameters": [
          {
            "name": "key",
            "type": "System.String",
            "summary": "Key name for the field value to add. See important note above."
          },
          {
            "name": "value",
            "type": "System.String",
            "summary": "Initial value for this field."
          },
          {
            "name": "prompt",
            "type": "System.String",
            "summary": "Prompt to display in the user interface (Content Browsers) if this is None or an empty string the this field is a data only field and will not appear in the user interface."
          },
          {
            "name": "treatAsLinear",
            "type": "System.Boolean",
            "summary": "Determines whether the texture in this slot will be treated as linear by rendering engines (ie - not gamma packed)."
          }
        ]
      },
      {
        "signature": "StringField AddTextured(System.String key, System.String value, System.String prompt)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Add a new StringField to the dictionary. This overload will cause the field to be tagged as \"textured\" so that the texturing UI will appear in automatic UIs.",
        "since": "5.7",
        "parameters": [
          {
            "name": "key",
            "type": "System.String",
            "summary": "Key name for the field value to add. See important note above."
          },
          {
            "name": "value",
            "type": "System.String",
            "summary": "Initial value for this field."
          },
          {
            "name": "prompt",
            "type": "System.String",
            "summary": "Prompt to display in the user interface (Content Browsers) if this is None or an empty string the this field is a data only field and will not appear in the user interface."
          }
        ]
      },
      {
        "signature": "NullField AddTextured(System.String key, System.String prompt)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Add a new NullField to the dictionary. This overload will cause the field to be tagged as \"textured\" so that the texturing UI will appear in automatic UIs.",
        "since": "7.14",
        "parameters": [
          {
            "name": "key",
            "type": "System.String",
            "summary": "Key name for the field value to add. See important note above."
          },
          {
            "name": "prompt",
            "type": "System.String",
            "summary": "Prompt to display in the user interface (Content Browsers) if this is None or an empty string the this field is a data only field and will not appear in the user interface."
          }
        ]
      },
      {
        "signature": "TransformField AddTextured(System.String key, Transform value, System.String prompt, System.Boolean treatAsLinear, System.Int32 sectionId)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Add a new TransformField to the dictionary. This overload will cause the field to be tagged as \"textured\" so that the texturing UI will appear in automatic UIs.",
        "since": "7.3",
        "parameters": [
          {
            "name": "key",
            "type": "System.String",
            "summary": "Key name for the field value to add. See important note above."
          },
          {
            "name": "value",
            "type": "Transform",
            "summary": "Initial value for this field."
          },
          {
            "name": "prompt",
            "type": "System.String",
            "summary": "Prompt to display in the user interface (Content Browsers) if this is None or an empty string the this field is a data only field and will not appear in the user interface."
          },
          {
            "name": "treatAsLinear",
            "type": "System.Boolean",
            "summary": "Determines whether the texture in this slot will be treated as linear by rendering engines (ie - not gamma packed)."
          },
          {
            "name": "sectionId",
            "type": "System.Int32",
            "summary": "The id of the section containing the field"
          }
        ]
      },
      {
        "signature": "TransformField AddTextured(System.String key, Transform value, System.String prompt, System.Boolean treatAsLinear)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Add a new TransformField to the dictionary. This overload will cause the field to be tagged as \"textured\" so that the texturing UI will appear in automatic UIs.",
        "since": "7.0",
        "parameters": [
          {
            "name": "key",
            "type": "System.String",
            "summary": "Key name for the field value to add. See important note above."
          },
          {
            "name": "value",
            "type": "Transform",
            "summary": "Initial value for this field."
          },
          {
            "name": "prompt",
            "type": "System.String",
            "summary": "Prompt to display in the user interface (Content Browsers) if this is None or an empty string the this field is a data only field and will not appear in the user interface."
          },
          {
            "name": "treatAsLinear",
            "type": "System.Boolean",
            "summary": "Determines whether the texture in this slot will be treated as linear by rendering engines (ie - not gamma packed)."
          }
        ]
      },
      {
        "signature": "TransformField AddTextured(System.String key, Transform value, System.String prompt)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Add a new TransformField to the dictionary. This overload will cause the field to be tagged as \"textured\" so that the texturing UI will appear in automatic UIs.",
        "since": "5.7",
        "parameters": [
          {
            "name": "key",
            "type": "System.String",
            "summary": "Key name for the field value to add. See important note above."
          },
          {
            "name": "value",
            "type": "Transform",
            "summary": "Initial value for this field."
          },
          {
            "name": "prompt",
            "type": "System.String",
            "summary": "Prompt to display in the user interface (Content Browsers) if this is None or an empty string the this field is a data only field and will not appear in the user interface."
          }
        ]
      },
      {
        "signature": "Vector2dField AddTextured(System.String key, Vector2d value, System.String prompt, System.Boolean treatAsLinear, System.Int32 sectionId)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Add a new Vector2dField to the dictionary. This overload will cause the field to be tagged as \"textured\" so that the texturing UI will appear in automatic UIs.",
        "since": "7.3",
        "parameters": [
          {
            "name": "key",
            "type": "System.String",
            "summary": "Key name for the field value to add. See important note above."
          },
          {
            "name": "value",
            "type": "Vector2d",
            "summary": "Initial value for this field."
          },
          {
            "name": "prompt",
            "type": "System.String",
            "summary": "Prompt to display in the user interface (Content Browsers) if this is None or an empty string the this field is a data only field and will not appear in the user interface."
          },
          {
            "name": "treatAsLinear",
            "type": "System.Boolean",
            "summary": "Determines whether the texture in this slot will be treated as linear by rendering engines (ie - not gamma packed)."
          },
          {
            "name": "sectionId",
            "type": "System.Int32",
            "summary": "The id of the section containing the field"
          }
        ]
      },
      {
        "signature": "Vector2dField AddTextured(System.String key, Vector2d value, System.String prompt, System.Boolean treatAsLinear)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Add a new Vector2dField to the dictionary. This overload will cause the field to be tagged as \"textured\" so that the texturing UI will appear in automatic UIs.",
        "since": "7.0",
        "parameters": [
          {
            "name": "key",
            "type": "System.String",
            "summary": "Key name for the field value to add. See important note above."
          },
          {
            "name": "value",
            "type": "Vector2d",
            "summary": "Initial value for this field."
          },
          {
            "name": "prompt",
            "type": "System.String",
            "summary": "Prompt to display in the user interface (Content Browsers) if this is None or an empty string the this field is a data only field and will not appear in the user interface."
          },
          {
            "name": "treatAsLinear",
            "type": "System.Boolean",
            "summary": "Determines whether the texture in this slot will be treated as linear by rendering engines (ie - not gamma packed)."
          }
        ]
      },
      {
        "signature": "Vector2dField AddTextured(System.String key, Vector2d value, System.String prompt)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Add a new Vector2dField to the dictionary. This overload will cause the field to be tagged as \"textured\" so that the texturing UI will appear in automatic UIs.",
        "since": "5.7",
        "parameters": [
          {
            "name": "key",
            "type": "System.String",
            "summary": "Key name for the field value to add. See important note above."
          },
          {
            "name": "value",
            "type": "Vector2d",
            "summary": "Initial value for this field."
          },
          {
            "name": "prompt",
            "type": "System.String",
            "summary": "Prompt to display in the user interface (Content Browsers) if this is None or an empty string the this field is a data only field and will not appear in the user interface."
          }
        ]
      },
      {
        "signature": "Vector3dField AddTextured(System.String key, Vector3d value, System.String prompt, System.Boolean treatAsLinear, System.Int32 sectionId)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Add a new Vector3dField to the dictionary. This overload will cause the field to be tagged as \"textured\" so that the texturing UI will appear in automatic UIs.",
        "since": "7.0",
        "parameters": [
          {
            "name": "key",
            "type": "System.String",
            "summary": "Key name for the field value to add. See important note above."
          },
          {
            "name": "value",
            "type": "Vector3d",
            "summary": "Initial value for this field."
          },
          {
            "name": "prompt",
            "type": "System.String",
            "summary": "Prompt to display in the user interface (Content Browsers) if this is None or an empty string the this field is a data only field and will not appear in the user interface."
          },
          {
            "name": "treatAsLinear",
            "type": "System.Boolean",
            "summary": "Determines whether the texture in this slot will be treated as linear by rendering engines (ie - not gamma packed)."
          },
          {
            "name": "sectionId",
            "type": "System.Int32",
            "summary": "The id of the section containing the field"
          }
        ]
      },
      {
        "signature": "Vector3dField AddTextured(System.String key, Vector3d value, System.String prompt, System.Boolean treatAsLinear)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Add a new Vector3dField to the dictionary. This overload will cause the field to be tagged as \"textured\" so that the texturing UI will appear in automatic UIs.",
        "since": "7.0",
        "parameters": [
          {
            "name": "key",
            "type": "System.String",
            "summary": "Key name for the field value to add. See important note above."
          },
          {
            "name": "value",
            "type": "Vector3d",
            "summary": "Initial value for this field."
          },
          {
            "name": "prompt",
            "type": "System.String",
            "summary": "Prompt to display in the user interface (Content Browsers) if this is None or an empty string the this field is a data only field and will not appear in the user interface."
          },
          {
            "name": "treatAsLinear",
            "type": "System.Boolean",
            "summary": "Determines whether the texture in this slot will be treated as linear by rendering engines (ie - not gamma packed)."
          }
        ]
      },
      {
        "signature": "Vector3dField AddTextured(System.String key, Vector3d value, System.String prompt)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Add a new Vector3dField to the dictionary. This overload will cause the field to be tagged as \"textured\" so that the texturing UI will appear in automatic UIs.",
        "since": "5.7",
        "parameters": [
          {
            "name": "key",
            "type": "System.String",
            "summary": "Key name for the field value to add. See important note above."
          },
          {
            "name": "value",
            "type": "Vector3d",
            "summary": "Initial value for this field."
          },
          {
            "name": "prompt",
            "type": "System.String",
            "summary": "Prompt to display in the user interface (Content Browsers) if this is None or an empty string the this field is a data only field and will not appear in the user interface."
          }
        ]
      },
      {
        "signature": "System.Boolean ContainsField(System.String fieldName)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Call this method to determine if a this FieldsList contains a field with the specified field name.",
        "since": "5.1",
        "parameters": [
          {
            "name": "fieldName",
            "type": "System.String",
            "summary": "Field to search for"
          }
        ],
        "returns": "Returns True if a field with that matches fieldName is found or false if it is not found."
      },
      {
        "signature": "IEnumerator<Field> GetEnumerator()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0"
      },
      {
        "signature": "Field GetField(System.String fieldName)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Call this method to get the field with the specified name.",
        "since": "5.3",
        "parameters": [
          {
            "name": "fieldName",
            "type": "System.String",
            "summary": "Field name to search for."
          }
        ],
        "returns": "If the field exists in the Fields dictionary then the field is returned otherwise; None is returned."
      },
      {
        "signature": "System.Void RemoveField(System.String fieldName)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0"
      },
      {
        "signature": "System.Void Set(System.String key, Color4f value, RenderContent.ChangeContexts changeContext)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Set the field value and send the appropriate change notification to the render SDK.  Will throw a InvalidOperationException exception if the key name is not valid.",
        "since": "5.1",
        "deprecated": "6.0",
        "obsolete": "Use version without ChangeContexts",
        "parameters": [
          {
            "name": "key",
            "type": "System.String",
            "summary": "Key name for the field value to change. See important note above."
          },
          {
            "name": "value",
            "type": "Color4f",
            "summary": "New value for this field."
          },
          {
            "name": "changeContext",
            "type": "RenderContent.ChangeContexts",
            "summary": "The reason why the value is changing."
          }
        ]
      },
      {
        "signature": "System.Void Set(System.String key, Color4f value)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Set the field value and send the appropriate change notification to the render SDK.  Will throw a InvalidOperationException exception if the key name is not valid.",
        "since": "5.1",
        "parameters": [
          {
            "name": "key",
            "type": "System.String",
            "summary": "Key name for the field value to change. See important note above."
          },
          {
            "name": "value",
            "type": "Color4f",
            "summary": "New value for this field."
          }
        ]
      },
      {
        "signature": "System.Void Set(System.String key, Point2d value, RenderContent.ChangeContexts changeContext)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Set the field value and send the appropriate change notification to the render SDK.  Will throw a InvalidOperationException exception if the key name is not valid.",
        "since": "5.1",
        "deprecated": "6.0",
        "obsolete": "Use version without ChangeContexts",
        "parameters": [
          {
            "name": "key",
            "type": "System.String",
            "summary": "Key name for the field value to change. See important note above."
          },
          {
            "name": "value",
            "type": "Point2d",
            "summary": "New value for this field."
          },
          {
            "name": "changeContext",
            "type": "RenderContent.ChangeContexts",
            "summary": "The reason why the value is changing."
          }
        ]
      },
      {
        "signature": "System.Void Set(System.String key, Point2d value)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Set the field value and send the appropriate change notification to the render SDK.  Will throw a InvalidOperationException exception if the key name is not valid.",
        "since": "5.1",
        "parameters": [
          {
            "name": "key",
            "type": "System.String",
            "summary": "Key name for the field value to change. See important note above."
          },
          {
            "name": "value",
            "type": "Point2d",
            "summary": "New value for this field."
          }
        ]
      },
      {
        "signature": "System.Void Set(System.String key, Point3d value, RenderContent.ChangeContexts changeContext)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Set the field value and send the appropriate change notification to the render SDK.  Will throw a InvalidOperationException exception if the key name is not valid.",
        "since": "5.1",
        "deprecated": "6.0",
        "obsolete": "Use version without ChangeContexts",
        "parameters": [
          {
            "name": "key",
            "type": "System.String",
            "summary": "Key name for the field value to change. See important note above."
          },
          {
            "name": "value",
            "type": "Point3d",
            "summary": "New value for this field."
          },
          {
            "name": "changeContext",
            "type": "RenderContent.ChangeContexts",
            "summary": "The reason why the value is changing."
          }
        ]
      },
      {
        "signature": "System.Void Set(System.String key, Point3d value)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Set the field value and send the appropriate change notification to the render SDK.  Will throw a InvalidOperationException exception if the key name is not valid.",
        "since": "5.1",
        "parameters": [
          {
            "name": "key",
            "type": "System.String",
            "summary": "Key name for the field value to change. See important note above."
          },
          {
            "name": "value",
            "type": "Point3d",
            "summary": "New value for this field."
          }
        ]
      },
      {
        "signature": "System.Void Set(System.String key, Point4d value, RenderContent.ChangeContexts changeContext)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Set the field value and send the appropriate change notification to the render SDK.  Will throw a InvalidOperationException exception if the key name is not valid.",
        "since": "5.1",
        "deprecated": "6.0",
        "obsolete": "Use version without ChangeContexts",
        "parameters": [
          {
            "name": "key",
            "type": "System.String",
            "summary": "Key name for the field value to change. See important note above."
          },
          {
            "name": "value",
            "type": "Point4d",
            "summary": "New value for this field."
          },
          {
            "name": "changeContext",
            "type": "RenderContent.ChangeContexts",
            "summary": "The reason why the value is changing."
          }
        ]
      },
      {
        "signature": "System.Void Set(System.String key, Point4d value)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Set the field value and send the appropriate change notification to the render SDK.  Will throw a InvalidOperationException exception if the key name is not valid.",
        "since": "5.1",
        "parameters": [
          {
            "name": "key",
            "type": "System.String",
            "summary": "Key name for the field value to change. See important note above."
          },
          {
            "name": "value",
            "type": "Point4d",
            "summary": "New value for this field."
          }
        ]
      },
      {
        "signature": "System.Void Set(System.String key, System.Boolean value, RenderContent.ChangeContexts changeContext)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Set the field value and send the appropriate change notification to the render SDK.  Will throw a InvalidOperationException exception if the key name is not valid.",
        "since": "5.1",
        "deprecated": "6.0",
        "obsolete": "Use version without ChangeContexts",
        "parameters": [
          {
            "name": "key",
            "type": "System.String",
            "summary": "Key name for the field value to change. See important note above."
          },
          {
            "name": "value",
            "type": "System.Boolean",
            "summary": "New value for this field."
          },
          {
            "name": "changeContext",
            "type": "RenderContent.ChangeContexts",
            "summary": "The reason why the value is changing."
          }
        ]
      },
      {
        "signature": "System.Void Set(System.String key, System.Boolean value)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Set the field value and send the appropriate change notification to the render SDK.  Will throw a InvalidOperationException exception if the key name is not valid.",
        "since": "5.1",
        "parameters": [
          {
            "name": "key",
            "type": "System.String",
            "summary": "Key name for the field value to change. See important note above."
          },
          {
            "name": "value",
            "type": "System.Boolean",
            "summary": "New value for this field."
          }
        ]
      },
      {
        "signature": "System.Void Set(System.String key, System.Byte[] value, RenderContent.ChangeContexts changeContext)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Set the field value and send the appropriate change notification to the render SDK.  Will throw a InvalidOperationException exception if the key name is not valid.",
        "since": "5.1",
        "deprecated": "6.0",
        "obsolete": "Use version without ChangeContexts",
        "parameters": [
          {
            "name": "key",
            "type": "System.String",
            "summary": "Key name for the field value to change. See important note above."
          },
          {
            "name": "value",
            "type": "System.Byte[]",
            "summary": "New value for this field."
          },
          {
            "name": "changeContext",
            "type": "RenderContent.ChangeContexts",
            "summary": "The reason why the value is changing."
          }
        ]
      },
      {
        "signature": "System.Void Set(System.String key, System.Byte[] value)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Set the field value and send the appropriate change notification to the render SDK.  Will throw a InvalidOperationException exception if the key name is not valid.",
        "since": "5.1",
        "parameters": [
          {
            "name": "key",
            "type": "System.String",
            "summary": "Key name for the field value to change. See important note above."
          },
          {
            "name": "value",
            "type": "System.Byte[]",
            "summary": "New value for this field."
          }
        ]
      },
      {
        "signature": "System.Void Set(System.String key, System.DateTime value, RenderContent.ChangeContexts changeContext)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Set the field value and send the appropriate change notification to the render SDK.  Will throw a InvalidOperationException exception if the key name is not valid.",
        "since": "5.1",
        "deprecated": "6.0",
        "obsolete": "Use version without ChangeContexts",
        "parameters": [
          {
            "name": "key",
            "type": "System.String",
            "summary": "Key name for the field value to change. See important note above."
          },
          {
            "name": "value",
            "type": "System.DateTime",
            "summary": "New value for this field."
          },
          {
            "name": "changeContext",
            "type": "RenderContent.ChangeContexts",
            "summary": "The reason why the value is changing."
          }
        ]
      },
      {
        "signature": "System.Void Set(System.String key, System.DateTime value)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Set the field value and send the appropriate change notification to the render SDK.  Will throw a InvalidOperationException exception if the key name is not valid.",
        "since": "5.1",
        "parameters": [
          {
            "name": "key",
            "type": "System.String",
            "summary": "Key name for the field value to change. See important note above."
          },
          {
            "name": "value",
            "type": "System.DateTime",
            "summary": "New value for this field."
          }
        ]
      },
      {
        "signature": "System.Void Set(System.String key, System.Double value, RenderContent.ChangeContexts changeContext)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Set the field value and send the appropriate change notification to the render SDK.  Will throw a InvalidOperationException exception if the key name is not valid.",
        "since": "5.1",
        "deprecated": "6.0",
        "obsolete": "Use version without ChangeContexts",
        "parameters": [
          {
            "name": "key",
            "type": "System.String",
            "summary": "Key name for the field value to change. See important note above."
          },
          {
            "name": "value",
            "type": "System.Double",
            "summary": "New value for this field."
          },
          {
            "name": "changeContext",
            "type": "RenderContent.ChangeContexts",
            "summary": "The reason why the value is changing."
          }
        ]
      },
      {
        "signature": "System.Void Set(System.String key, System.Double value)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Set the field value and send the appropriate change notification to the render SDK.  Will throw a InvalidOperationException exception if the key name is not valid.",
        "since": "5.1",
        "parameters": [
          {
            "name": "key",
            "type": "System.String",
            "summary": "Key name for the field value to change. See important note above."
          },
          {
            "name": "value",
            "type": "System.Double",
            "summary": "New value for this field."
          }
        ]
      },
      {
        "signature": "System.Void Set(System.String key, System.Drawing.Color value, RenderContent.ChangeContexts changeContext)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Set the field value and send the appropriate change notification to the render SDK.  Will throw a InvalidOperationException exception if the key name is not valid.",
        "since": "5.1",
        "deprecated": "6.0",
        "obsolete": "Use version without ChangeContexts",
        "parameters": [
          {
            "name": "key",
            "type": "System.String",
            "summary": "Key name for the field value to change. See important note above."
          },
          {
            "name": "value",
            "type": "System.Drawing.Color",
            "summary": "New value for this field."
          },
          {
            "name": "changeContext",
            "type": "RenderContent.ChangeContexts",
            "summary": "The reason why the value is changing."
          }
        ]
      },
      {
        "signature": "System.Void Set(System.String key, System.Drawing.Color value)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Set the field value and send the appropriate change notification to the render SDK.  Will throw a InvalidOperationException exception if the key name is not valid.",
        "since": "5.1",
        "parameters": [
          {
            "name": "key",
            "type": "System.String",
            "summary": "Key name for the field value to change. See important note above."
          },
          {
            "name": "value",
            "type": "System.Drawing.Color",
            "summary": "New value for this field."
          }
        ]
      },
      {
        "signature": "System.Void Set(System.String key, System.Guid value, RenderContent.ChangeContexts changeContext)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Set the field value and send the appropriate change notification to the render SDK.  Will throw a InvalidOperationException exception if the key name is not valid.",
        "since": "5.1",
        "deprecated": "6.0",
        "obsolete": "Use version without ChangeContexts",
        "parameters": [
          {
            "name": "key",
            "type": "System.String",
            "summary": "Key name for the field value to change. See important note above."
          },
          {
            "name": "value",
            "type": "System.Guid",
            "summary": "New value for this field."
          },
          {
            "name": "changeContext",
            "type": "RenderContent.ChangeContexts",
            "summary": "The reason why the value is changing."
          }
        ]
      },
      {
        "signature": "System.Void Set(System.String key, System.Guid value)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Set the field value and send the appropriate change notification to the render SDK.  Will throw a InvalidOperationException exception if the key name is not valid.",
        "since": "5.1",
        "parameters": [
          {
            "name": "key",
            "type": "System.String",
            "summary": "Key name for the field value to change. See important note above."
          },
          {
            "name": "value",
            "type": "System.Guid",
            "summary": "New value for this field."
          }
        ]
      },
      {
        "signature": "System.Void Set(System.String key, System.Int32 value, RenderContent.ChangeContexts changeContext)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Set the field value and send the appropriate change notification to the render SDK.  Will throw a InvalidOperationException exception if the key name is not valid.",
        "since": "5.1",
        "deprecated": "6.0",
        "obsolete": "Use version without ChangeContexts",
        "parameters": [
          {
            "name": "key",
            "type": "System.String",
            "summary": "Key name for the field value to change. See important note above."
          },
          {
            "name": "value",
            "type": "System.Int32",
            "summary": "New value for this field."
          },
          {
            "name": "changeContext",
            "type": "RenderContent.ChangeContexts",
            "summary": "The reason why the value is changing."
          }
        ]
      },
      {
        "signature": "System.Void Set(System.String key, System.Int32 value)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Set the field value and send the appropriate change notification to the render SDK.  Will throw a InvalidOperationException exception if the key name is not valid.",
        "since": "5.1",
        "parameters": [
          {
            "name": "key",
            "type": "System.String",
            "summary": "Key name for the field value to change. See important note above."
          },
          {
            "name": "value",
            "type": "System.Int32",
            "summary": "New value for this field."
          }
        ]
      },
      {
        "signature": "System.Void Set(System.String key, System.Single value, RenderContent.ChangeContexts changeContext)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Set the field value and send the appropriate change notification to the render SDK.  Will throw a InvalidOperationException exception if the key name is not valid.",
        "since": "5.1",
        "deprecated": "6.0",
        "obsolete": "Use version without ChangeContexts",
        "parameters": [
          {
            "name": "key",
            "type": "System.String",
            "summary": "Key name for the field value to change. See important note above."
          },
          {
            "name": "value",
            "type": "System.Single",
            "summary": "New value for this field."
          },
          {
            "name": "changeContext",
            "type": "RenderContent.ChangeContexts",
            "summary": "The reason why the value is changing."
          }
        ]
      },
      {
        "signature": "System.Void Set(System.String key, System.Single value)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Set the field value and send the appropriate change notification to the render SDK.  Will throw a InvalidOperationException exception if the key name is not valid.",
        "since": "5.1",
        "parameters": [
          {
            "name": "key",
            "type": "System.String",
            "summary": "Key name for the field value to change. See important note above."
          },
          {
            "name": "value",
            "type": "System.Single",
            "summary": "New value for this field."
          }
        ]
      },
      {
        "signature": "System.Void Set(System.String key, System.String value, RenderContent.ChangeContexts changeContext)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Set the field value and send the appropriate change notification to the render SDK.  Will throw a InvalidOperationException exception if the key name is not valid.",
        "since": "5.1",
        "deprecated": "6.0",
        "parameters": [
          {
            "name": "key",
            "type": "System.String",
            "summary": "Key name for the field value to change. See important note above."
          },
          {
            "name": "value",
            "type": "System.String",
            "summary": "New value for this field."
          },
          {
            "name": "changeContext",
            "type": "RenderContent.ChangeContexts",
            "summary": "The reason why the value is changing."
          }
        ]
      },
      {
        "signature": "System.Void Set(System.String key, System.String value)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Set the field value and send the appropriate change notification to the render SDK.  Will throw a InvalidOperationException exception if the key name is not valid.",
        "since": "5.1",
        "parameters": [
          {
            "name": "key",
            "type": "System.String",
            "summary": "Key name for the field value to change. See important note above."
          },
          {
            "name": "value",
            "type": "System.String",
            "summary": "New value for this field."
          }
        ]
      },
      {
        "signature": "System.Void Set(System.String key, Transform value, RenderContent.ChangeContexts changeContext)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Set the field value and send the appropriate change notification to the render SDK.  Will throw a InvalidOperationException exception if the key name is not valid.",
        "since": "5.1",
        "deprecated": "6.0",
        "obsolete": "Use version without ChangeContexts",
        "parameters": [
          {
            "name": "key",
            "type": "System.String",
            "summary": "Key name for the field value to change. See important note above."
          },
          {
            "name": "value",
            "type": "Transform",
            "summary": "New value for this field."
          },
          {
            "name": "changeContext",
            "type": "RenderContent.ChangeContexts",
            "summary": "The reason why the value is changing."
          }
        ]
      },
      {
        "signature": "System.Void Set(System.String key, Transform value)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Set the field value and send the appropriate change notification to the render SDK.  Will throw a InvalidOperationException exception if the key name is not valid.",
        "since": "5.1",
        "parameters": [
          {
            "name": "key",
            "type": "System.String",
            "summary": "Key name for the field value to change. See important note above."
          },
          {
            "name": "value",
            "type": "Transform",
            "summary": "New value for this field."
          }
        ]
      },
      {
        "signature": "System.Void Set(System.String key, Vector2d value, RenderContent.ChangeContexts changeContext)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Set the field value and send the appropriate change notification to the render SDK.  Will throw a InvalidOperationException exception if the key name is not valid.",
        "since": "5.1",
        "deprecated": "6.0",
        "obsolete": "Use version without ChangeContexts",
        "parameters": [
          {
            "name": "key",
            "type": "System.String",
            "summary": "Key name for the field value to change. See important note above."
          },
          {
            "name": "value",
            "type": "Vector2d",
            "summary": "New value for this field."
          },
          {
            "name": "changeContext",
            "type": "RenderContent.ChangeContexts",
            "summary": "The reason why the value is changing."
          }
        ]
      },
      {
        "signature": "System.Void Set(System.String key, Vector2d value)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Set the field value and send the appropriate change notification to the render SDK.  Will throw a InvalidOperationException exception if the key name is not valid.",
        "since": "5.1",
        "parameters": [
          {
            "name": "key",
            "type": "System.String",
            "summary": "Key name for the field value to change. See important note above."
          },
          {
            "name": "value",
            "type": "Vector2d",
            "summary": "New value for this field."
          }
        ]
      },
      {
        "signature": "System.Void Set(System.String key, Vector3d value, RenderContent.ChangeContexts changeContext)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Set the field value and send the appropriate change notification to the render SDK.  Will throw a InvalidOperationException exception if the key name is not valid.",
        "since": "5.1",
        "deprecated": "6.0",
        "obsolete": "Use version without ChangeContexts",
        "parameters": [
          {
            "name": "key",
            "type": "System.String",
            "summary": "Key name for the field value to change. See important note above."
          },
          {
            "name": "value",
            "type": "Vector3d",
            "summary": "New value for this field."
          },
          {
            "name": "changeContext",
            "type": "RenderContent.ChangeContexts",
            "summary": "The reason why the value is changing."
          }
        ]
      },
      {
        "signature": "System.Void Set(System.String key, Vector3d value)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Set the field value and send the appropriate change notification to the render SDK.  Will throw a InvalidOperationException exception if the key name is not valid.",
        "since": "5.1",
        "parameters": [
          {
            "name": "key",
            "type": "System.String",
            "summary": "Key name for the field value to change. See important note above."
          },
          {
            "name": "value",
            "type": "Vector3d",
            "summary": "New value for this field."
          }
        ]
      },
      {
        "signature": "System.Boolean SetTag(System.String key, System.Object tag)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Sets an object that contains data to associate with the field.  THIS IS NOW OBSOLETE - if you were using this, please email andy@mcneel.com and let me know why.",
        "since": "5.1",
        "deprecated": "6.0",
        "parameters": [
          {
            "name": "key",
            "type": "System.String",
            "summary": "Key name for the field to tag."
          },
          {
            "name": "tag",
            "type": "System.Object",
            "summary": "Data to associate with the field."
          }
        ],
        "returns": "True if the field is found and the tag was set otherwise False is returned."
      },
      {
        "signature": "System.Boolean TryGetTag(System.String key, out System.Object tag)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets object that contains data associate with a field. THIS IS NOW OBSOLETE - if you were using this, please email andy@mcneel.com and let me know why.",
        "since": "5.1",
        "deprecated": "6.0",
        "parameters": [
          {
            "name": "key",
            "type": "System.String",
            "summary": "Key name of the field to get."
          },
          {
            "name": "tag",
            "type": "System.Object",
            "summary": "Data associated with the field."
          }
        ],
        "returns": "Returns True if the field is found and its tag was retrieved otherwise; returns false."
      },
      {
        "signature": "System.Boolean TryGetValue(System.String key, out Color4f value)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Find a field with the specified key and get its value if found.",
        "since": "5.1",
        "parameters": [
          {
            "name": "key",
            "type": "System.String",
            "summary": "Key name of the field to get a value for."
          },
          {
            "name": "value",
            "type": "Color4f",
            "summary": "Output parameter which will receive the field value."
          }
        ],
        "returns": "Returns True if the key is found and the value parameter is set to the field value.  Returns False if the field was not found."
      },
      {
        "signature": "System.Boolean TryGetValue(System.String key, out Point2d value)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Find a field with the specified key and get its value if found.",
        "since": "5.1",
        "parameters": [
          {
            "name": "key",
            "type": "System.String",
            "summary": "Key name of the field to get a value for."
          },
          {
            "name": "value",
            "type": "Point2d",
            "summary": "Output parameter which will receive the field value."
          }
        ],
        "returns": "Returns True if the key is found and the value parameter is set to the field value.  Returns False if the field was not found."
      },
      {
        "signature": "System.Boolean TryGetValue(System.String key, out Point3d value)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Find a field with the specified key and get its value if found.",
        "since": "5.1",
        "parameters": [
          {
            "name": "key",
            "type": "System.String",
            "summary": "Key name of the field to get a value for."
          },
          {
            "name": "value",
            "type": "Point3d",
            "summary": "Output parameter which will receive the field value."
          }
        ],
        "returns": "Returns True if the key is found and the value parameter is set to the field value.  Returns False if the field was not found."
      },
      {
        "signature": "System.Boolean TryGetValue(System.String key, out Point4d value)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Find a field with the specified key and get its value if found.",
        "since": "5.1",
        "parameters": [
          {
            "name": "key",
            "type": "System.String",
            "summary": "Key name of the field to get a value for."
          },
          {
            "name": "value",
            "type": "Point4d",
            "summary": "Output parameter which will receive the field value."
          }
        ],
        "returns": "Returns True if the key is found and the value parameter is set to the field value.  Returns False if the field was not found."
      },
      {
        "signature": "System.Boolean TryGetValue(System.String key, out System.Boolean value)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Find a field with the specified key and get its value if found.",
        "since": "5.1",
        "parameters": [
          {
            "name": "key",
            "type": "System.String",
            "summary": "Key name of the field to get a value for."
          },
          {
            "name": "value",
            "type": "System.Boolean",
            "summary": "Output parameter which will receive the field value."
          }
        ],
        "returns": "Returns True if the key is found and the value parameter is set to the field value.  Returns False if the field was not found."
      },
      {
        "signature": "System.Boolean TryGetValue(System.String key, out System.Byte[] value)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Find a field with the specified key and get its value if found.",
        "since": "5.1",
        "parameters": [
          {
            "name": "key",
            "type": "System.String",
            "summary": "Key name of the field to get a value for."
          },
          {
            "name": "value",
            "type": "System.Byte[]",
            "summary": "Output parameter which will receive the field value."
          }
        ],
        "returns": "Returns True if the key is found and the value parameter is set to the field value.  Returns False if the field was not found."
      },
      {
        "signature": "System.Boolean TryGetValue(System.String key, out System.DateTime value)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Find a field with the specified key and get its value if found.",
        "since": "5.1",
        "parameters": [
          {
            "name": "key",
            "type": "System.String",
            "summary": "Key name of the field to get a value for."
          },
          {
            "name": "value",
            "type": "System.DateTime",
            "summary": "Output parameter which will receive the field value."
          }
        ],
        "returns": "Returns True if the key is found and the value parameter is set to the field value.  Returns False if the field was not found."
      },
      {
        "signature": "System.Boolean TryGetValue(System.String key, out System.Double value)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Find a field with the specified key and get its value if found.",
        "since": "5.1",
        "parameters": [
          {
            "name": "key",
            "type": "System.String",
            "summary": "Key name of the field to get a value for."
          },
          {
            "name": "value",
            "type": "System.Double",
            "summary": "Output parameter which will receive the field value."
          }
        ],
        "returns": "Returns True if the key is found and the value parameter is set to the field value.  Returns False if the field was not found."
      },
      {
        "signature": "System.Boolean TryGetValue(System.String key, out System.Drawing.Color value)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Find a field with the specified key and get its value if found.",
        "since": "5.1",
        "parameters": [
          {
            "name": "key",
            "type": "System.String",
            "summary": "Key name of the field to get a value for."
          },
          {
            "name": "value",
            "type": "System.Drawing.Color",
            "summary": "Output parameter which will receive the field value."
          }
        ],
        "returns": "Returns True if the key is found and the value parameter is set to the field value.  Returns False if the field was not found."
      },
      {
        "signature": "System.Boolean TryGetValue(System.String key, out System.Guid value)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Find a field with the specified key and get its value if found.",
        "since": "5.1",
        "parameters": [
          {
            "name": "key",
            "type": "System.String",
            "summary": "Key name of the field to get a value for."
          },
          {
            "name": "value",
            "type": "System.Guid",
            "summary": "Output parameter which will receive the field value."
          }
        ],
        "returns": "Returns True if the key is found and the value parameter is set to the field value.  Returns False if the field was not found."
      },
      {
        "signature": "System.Boolean TryGetValue(System.String key, out System.Int32 value)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Find a field with the specified key and get its value if found.",
        "since": "5.1",
        "parameters": [
          {
            "name": "key",
            "type": "System.String",
            "summary": "Key name of the field to get a value for."
          },
          {
            "name": "value",
            "type": "System.Int32",
            "summary": "Output parameter which will receive the field value."
          }
        ],
        "returns": "Returns True if the key is found and the value parameter is set to the field value.  Returns False if the field was not found."
      },
      {
        "signature": "System.Boolean TryGetValue(System.String key, out System.Single value)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Find a field with the specified key and get its value if found.",
        "since": "5.1",
        "parameters": [
          {
            "name": "key",
            "type": "System.String",
            "summary": "Key name of the field to get a value for."
          },
          {
            "name": "value",
            "type": "System.Single",
            "summary": "Output parameter which will receive the field value."
          }
        ],
        "returns": "Returns True if the key is found and the value parameter is set to the field value.  Returns False if the field was not found."
      },
      {
        "signature": "System.Boolean TryGetValue(System.String key, out System.String value)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Find a field with the specified key and get its value if found.",
        "since": "5.1",
        "parameters": [
          {
            "name": "key",
            "type": "System.String",
            "summary": "Key name of the field to get a value for."
          },
          {
            "name": "value",
            "type": "System.String",
            "summary": "Output parameter which will receive the field value."
          }
        ],
        "returns": "Returns True if the key is found and the value parameter is set to the field value.  Returns False if the field was not found."
      },
      {
        "signature": "System.Boolean TryGetValue(System.String key, out T value)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Parametrized version of TryGetValue.",
        "since": "6.12",
        "parameters": [
          {
            "name": "key",
            "type": "System.String",
            "summary": "Name of field to find."
          },
          {
            "name": "value",
            "type": "T",
            "summary": "out parameter to be set."
          }
        ],
        "returns": "True if field was found. If False out parameter value will be set to default(T)."
      },
      {
        "signature": "System.Boolean TryGetValue(System.String key, out Transform value)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Find a field with the specified key and get its value if found.",
        "since": "5.1",
        "parameters": [
          {
            "name": "key",
            "type": "System.String",
            "summary": "Key name of the field to get a value for."
          },
          {
            "name": "value",
            "type": "Transform",
            "summary": "Output parameter which will receive the field value."
          }
        ],
        "returns": "Returns True if the key is found and the value parameter is set to the field value.  Returns False if the field was not found."
      },
      {
        "signature": "System.Boolean TryGetValue(System.String key, out Vector2d value)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Find a field with the specified key and get its value if found.",
        "since": "5.1",
        "parameters": [
          {
            "name": "key",
            "type": "System.String",
            "summary": "Key name of the field to get a value for."
          },
          {
            "name": "value",
            "type": "Vector2d",
            "summary": "Output parameter which will receive the field value."
          }
        ],
        "returns": "Returns True if the key is found and the value parameter is set to the field value.  Returns False if the field was not found."
      },
      {
        "signature": "System.Boolean TryGetValue(System.String key, out Vector3d value)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Find a field with the specified key and get its value if found.",
        "since": "5.1",
        "parameters": [
          {
            "name": "key",
            "type": "System.String",
            "summary": "Key name of the field to get a value for."
          },
          {
            "name": "value",
            "type": "Vector3d",
            "summary": "Output parameter which will receive the field value."
          }
        ],
        "returns": "Returns True if the key is found and the value parameter is set to the field value.  Returns False if the field was not found."
      }
    ]
  },
  {
    "namespace": "Rhino.Render.Fields",
    "name": "FloatField",
    "dataType": "class",
    "summary": "float field value class",
    "baseclass": "Rhino.Render.Fields.Field",
    "properties": [
      {
        "signature": "float Value",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the field value",
        "since": "5.1",
        "property": ["get", "set"]
      }
    ],
    "methods": [
      {
        "signature": "System.Object ValueAsObject()",
        "modifiers": ["public", "override"],
        "protected": false,
        "virtual": false,
        "since": "5.7"
      }
    ]
  },
  {
    "namespace": "Rhino.Render.Fields",
    "name": "GuidField",
    "dataType": "class",
    "summary": "Guid field value class",
    "baseclass": "Rhino.Render.Fields.Field",
    "properties": [
      {
        "signature": "Guid Value",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the field value",
        "since": "5.1",
        "property": ["get", "set"]
      }
    ],
    "methods": [
      {
        "signature": "System.Object ValueAsObject()",
        "modifiers": ["public", "override"],
        "protected": false,
        "virtual": false,
        "since": "5.7"
      }
    ]
  },
  {
    "namespace": "Rhino.Render.Fields",
    "name": "IntField",
    "dataType": "class",
    "summary": "Integer field value class",
    "baseclass": "Rhino.Render.Fields.Field",
    "properties": [
      {
        "signature": "int Value",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the field value",
        "since": "5.1",
        "property": ["get", "set"]
      }
    ],
    "methods": [
      {
        "signature": "System.Object ValueAsObject()",
        "modifiers": ["public", "override"],
        "protected": false,
        "virtual": false,
        "since": "5.7"
      }
    ]
  },
  {
    "namespace": "Rhino.Render.Fields",
    "name": "NullField",
    "dataType": "class",
    "summary": "Null field value class",
    "baseclass": "Rhino.Render.Fields.Field",
    "properties": [
      {
        "signature": "bool Value",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the field value",
        "since": "7.14",
        "property": ["get", "set"]
      }
    ],
    "methods": [
      {
        "signature": "System.Object ValueAsObject()",
        "modifiers": ["public", "override"],
        "protected": false,
        "virtual": false,
        "since": "7.14"
      }
    ]
  },
  {
    "namespace": "Rhino.Render.Fields",
    "name": "Point2dField",
    "dataType": "class",
    "summary": "Point2d field value class",
    "baseclass": "Rhino.Render.Fields.Field",
    "properties": [
      {
        "signature": "Point2d Value",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the field value",
        "since": "5.1",
        "property": ["get", "set"]
      }
    ],
    "methods": [
      {
        "signature": "System.Object ValueAsObject()",
        "modifiers": ["public", "override"],
        "protected": false,
        "virtual": false,
        "since": "5.7"
      }
    ]
  },
  {
    "namespace": "Rhino.Render.Fields",
    "name": "Point3dField",
    "dataType": "class",
    "summary": "Point3d field value class",
    "baseclass": "Rhino.Render.Fields.Field",
    "properties": [
      {
        "signature": "Point3d Value",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the field value",
        "since": "5.1",
        "property": ["get", "set"]
      }
    ],
    "methods": [
      {
        "signature": "System.Object ValueAsObject()",
        "modifiers": ["public", "override"],
        "protected": false,
        "virtual": false,
        "since": "5.7"
      }
    ]
  },
  {
    "namespace": "Rhino.Render.Fields",
    "name": "Point4dField",
    "dataType": "class",
    "summary": "Point4d field value class",
    "baseclass": "Rhino.Render.Fields.Field",
    "properties": [
      {
        "signature": "Point4d Value",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the field value",
        "since": "5.1",
        "property": ["get", "set"]
      }
    ],
    "methods": [
      {
        "signature": "System.Object ValueAsObject()",
        "modifiers": ["public", "override"],
        "protected": false,
        "virtual": false,
        "since": "5.7"
      }
    ]
  },
  {
    "namespace": "Rhino.Render.Fields",
    "name": "StringField",
    "dataType": "class",
    "summary": "String field value class",
    "baseclass": "Rhino.Render.Fields.Field",
    "properties": [
      {
        "signature": "string Value",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the field value",
        "since": "5.1",
        "property": ["get", "set"]
      }
    ],
    "methods": [
      {
        "signature": "System.Object ValueAsObject()",
        "modifiers": ["public", "override"],
        "protected": false,
        "virtual": false,
        "since": "5.7"
      }
    ]
  },
  {
    "namespace": "Rhino.Render.Fields",
    "name": "TransformField",
    "dataType": "class",
    "summary": "Transform field value class",
    "baseclass": "Rhino.Render.Fields.Field",
    "properties": [
      {
        "signature": "Transform Value",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the field value",
        "since": "5.1",
        "property": ["get", "set"]
      }
    ],
    "methods": [
      {
        "signature": "System.Object ValueAsObject()",
        "modifiers": ["public", "override"],
        "protected": false,
        "virtual": false,
        "since": "5.7"
      }
    ]
  },
  {
    "namespace": "Rhino.Render.Fields",
    "name": "Vector2dField",
    "dataType": "class",
    "summary": "Vector2d field value class",
    "baseclass": "Rhino.Render.Fields.Field",
    "properties": [
      {
        "signature": "Vector2d Value",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the field value",
        "since": "5.1",
        "property": ["get", "set"]
      }
    ],
    "methods": [
      {
        "signature": "System.Object ValueAsObject()",
        "modifiers": ["public", "override"],
        "protected": false,
        "virtual": false,
        "since": "5.7"
      }
    ]
  },
  {
    "namespace": "Rhino.Render.Fields",
    "name": "Vector3dField",
    "dataType": "class",
    "summary": "Vector3d field value class",
    "baseclass": "Rhino.Render.Fields.Field",
    "properties": [
      {
        "signature": "Vector3d Value",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the field value",
        "since": "5.1",
        "property": ["get", "set"]
      }
    ],
    "methods": [
      {
        "signature": "System.Object ValueAsObject()",
        "modifiers": ["public", "override"],
        "protected": false,
        "virtual": false,
        "since": "5.7"
      }
    ]
  },
  {
    "namespace": "Rhino.Render",
    "name": "FilterContentByUsage",
    "dataType": "enum",
    "summary": "Content collection filter value",
    "since": "6.9",
    "values": [
      {
        "signature": "None",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "No filter in use."
      },
      {
        "signature": "Used",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Display only used contents."
      },
      {
        "signature": "Unused",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Display only unused contents."
      },
      {
        "signature": "UsedSelected",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Display only contents used by selected objects."
      }
    ]

  },
  {
    "namespace": "Rhino.Render",
    "name": "FreeFloatingBase",
    "dataType": "class",
    "summary": "Base class for Rhino.Render objects that are owned by the document, or can be delivered separately from other functions.  In general, you cannot create these objects yourself.",
    "methods": [
      {
        "signature": "System.Void CopyFrom(FreeFloatingBase src)",
        "modifiers": ["public", "abstract"],
        "protected": false,
        "virtual": false,
        "summary": "Copy from another object",
        "since": "6.0"
      }
    ]
  },
  {
    "namespace": "Rhino.Render",
    "name": "GroundPlane",
    "dataType": "class",
    "summary": "Represents an infinite plane for implementation by renderers. See <b>Rhino.PlugIns.RenderPlugIn.SupportsFeature</b> .",
    "baseclass": "Rhino.Render.DocumentOrFreeFloatingBase",
    "interfaces": ["IDisposable"],
    "constructors": [
      {
        "signature": "GroundPlane()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Create a utility object not associated with any document",
        "since": "6.0"
      },
      {
        "signature": "GroundPlane(GroundPlane g)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Create a utility object not associated with any document from another object",
        "since": "6.0"
      }
    ],
    "properties": [
      {
        "signature": "double Altitude",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Height above world XY plane in model units. Auto-altitude is computed if enabled.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool AutoAltitude",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Determines whether the ground plane is fixed by the Altitude property, or whether it is automatically placed at the lowest point in the model.",
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool Enabled",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Determines whether the document ground plane is enabled.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "Guid MaterialInstanceId",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Id of material in material table for this ground plane.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool ShadowOnly",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Determines whether the ground plane shows the material assigned, or whether it is transparent, but captures shadows.",
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool ShowUnderside",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "If this is off, the ground plane will not be visible when seen from below.",
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "Vector2d TextureOffset",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Texture mapping offset in world units.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool TextureOffsetLocked",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Texture offset locked.",
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "double TextureRotation",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Texture mapping rotation around world origin + offset in degrees.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "Vector2d TextureSize",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Texture mapping single UV span size in world units.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool TextureSizeLocked",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Texture size locked.",
        "since": "6.0",
        "property": ["get", "set"]
      }
    ],
    "methods": [
      {
        "signature": "System.Void CopyFrom(FreeFloatingBase src)",
        "modifiers": ["public", "override"],
        "protected": false,
        "virtual": false,
        "since": "6.0"
      },
      {
        "signature": "System.Void Dispose()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "8.0"
      }
    ],
    "events": [
      {
        "signature": "EventHandler<RenderPropertyChangedEvent> Changed",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "This event is raised when a GroundPlane property value is changed.",
        "since": "5.10"
      }
    ]

  },
  {
    "namespace": "Rhino.Render",
    "name": "ICurrentEnvironment",
    "dataType": "interface",
    "properties": [
      {
        "signature": "RenderEnvironment ForAnyUsage",
        "modifiers": [],
        "protected": true,
        "virtual": false,
        "since": "6.0",
        "obsolete": "To set all, just set each one individually",
        "property": ["set"]
      },
      {
        "signature": "RenderEnvironment ForBackground",
        "modifiers": ["new"],
        "protected": true,
        "virtual": false,
        "summary": "Get or set the RenderEnvironment used as the 360 degree backdrop environment. If getting, None will be returned if the background mode is set to 'Solid Color' or 'Gradient' (i.e., not 'Environment'). If setting, passing None will not work because this environment usage can't be turned off.",
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "RenderEnvironment ForBackground_CheckMode",
        "modifiers": ["new"],
        "protected": true,
        "virtual": false,
        "since": "6.0",
        "obsolete": "Same as ForBackground. Please use ForBackground",
        "property": ["get", "set"]
      },
      {
        "signature": "RenderEnvironment ForLighting",
        "modifiers": ["new"],
        "protected": true,
        "virtual": false,
        "summary": "Get or set the RenderEnvironment used as custom skylighting environment. If getting, None will be returned if the custom skylighting environment override is disabled. If setting, passing None will turn the custom skylighting environment override off but it will not actually set its id to null. Setting to a valid environment will also turn the custom skylighting environment override on.",
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "RenderEnvironment ForReflectionAndRefraction",
        "modifiers": ["new"],
        "protected": true,
        "virtual": false,
        "summary": "Get or set the RenderEnvironment used as custom reflection (and refraction) environment. If getting, None will be returned if the custom reflection override is disabled. If setting, passing None will turn the custom reflection environment override off but it will not actually set its id to null. Setting to a valid environment will also turn the custom reflection environment override on.",
        "since": "6.0",
        "property": ["get", "set"]
      }
    ]
  },
  {
    "namespace": "Rhino.Render",
    "name": "ICurrentEnvironment_Get",
    "dataType": "interface",
    "properties": [
      {
        "signature": "RenderEnvironment ForBackground",
        "modifiers": [],
        "protected": true,
        "virtual": false,
        "summary": "Get the RenderEnvironment used as the 360 degree backdrop environment. Null will be returned if the background mode is set to 'Solid Color' or 'Gradient' (i.e., not 'Environment').",
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "RenderEnvironment ForBackground_CheckMode",
        "modifiers": [],
        "protected": true,
        "virtual": false,
        "since": "6.0",
        "obsolete": "Same as ForBackground. Please use ForBackground",
        "property": ["get"]
      },
      {
        "signature": "RenderEnvironment ForLighting",
        "modifiers": [],
        "protected": true,
        "virtual": false,
        "summary": "Get the RenderEnvironment used as custom skylighting environment. Null will be returned if the custom skylighting environment override is disabled.",
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "RenderEnvironment ForReflectionAndRefraction",
        "modifiers": [],
        "protected": true,
        "virtual": false,
        "summary": "Get the RenderEnvironment used as custom reflection (and refraction) environment. Null will be returned if the custom reflection override is disabled.",
        "since": "6.0",
        "property": ["get"]
      }
    ]
  },
  {
    "namespace": "Rhino.Render",
    "name": "ImageFile",
    "dataType": "class",
    "summary": "Controls interaction with RDK render image files",
    "constructors": [
      {
        "signature": "ImageFile()",
        "summary": "Initializes a new instance of the ImageFile class"
      }
    ],
    "events": [
      {
        "signature": "EventHandler<ImageFileEventArgs> Deleted",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Called when the RDK is cleaning up old render image files, a plug-in should delete any plug-in specific image files at this time.",
        "since": "5.11"
      },
      {
        "signature": "EventHandler<ImageFileEventArgs> Loaded",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Generally called when the \"RenderOpenLastRender\" command is run, this event is raised after the render window has been created and the saved scene has been loaded.",
        "since": "5.11"
      },
      {
        "signature": "EventHandler<ImageFileEventArgs> Saved",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Render image file saved, happens when a rendering completes. If a plug-in needs to save additional file information it should write it to the same folder as the Rhino render image file.  Rhino will take care of deleting old data.",
        "since": "5.11"
      }
    ]

  },
  {
    "namespace": "Rhino.Render",
    "name": "ImageFileEvent",
    "dataType": "enum",
    "since": "5.11",
    "values": [
      {
        "signature": "Saved",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Render image file has been successfully written"
      },
      {
        "signature": "Loaded",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Render image file has been successfully loaded"
      },
      {
        "signature": "Deleted",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Render image file was just deleted"
      }
    ]

  },
  {
    "namespace": "Rhino.Render",
    "name": "ImageFileEventArgs",
    "dataType": "class",
    "baseclass": "EventArgs",
    "properties": [
      {
        "signature": "int EllapsedTime",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.11",
        "property": ["get", "set"]
      },
      {
        "signature": "ImageFileEvent Event",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.11",
        "property": ["get", "set"]
      },
      {
        "signature": "string FileName",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.11",
        "property": ["get", "set"]
      },
      {
        "signature": "string RenderEngine",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.11",
        "property": ["get", "set"]
      },
      {
        "signature": "Guid RenderEngineId",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.11",
        "property": ["get", "set"]
      },
      {
        "signature": "Guid SessionId",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.11",
        "property": ["get", "set"]
      }
    ]
  },
  {
    "namespace": "Rhino.Render",
    "name": "IRhRdkPreviewSceneServer_eRotationType",
    "dataType": "enum",
    "summary": "c# version of IRhRdkPreviewSceneServer eRotationType enum",
    "since": "6.0",
    "values": [
      {
        "signature": "Camera",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Camera"
      },
      {
        "signature": "Object",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Object"
      }
    ]

  },
  {
    "namespace": "Rhino.Render",
    "name": "it_strategy",
    "dataType": "enum",
    "summary": "Defines the collection type to iterate.",
    "since": "6.0",
    "values": [
      {
        "signature": "ContentDataBase",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "This type represents all the render contents in the database."
      },
      {
        "signature": "ContentSelection",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "This type represents the selected render content collection."
      }
    ]

  },
  {
    "namespace": "Rhino.Render",
    "name": "LightArray",
    "dataType": "class",
    "interfaces": ["IDisposable"],
    "constructors": [
      {
        "signature": "LightArray()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0"
      },
      {
        "signature": "LightArray(IntPtr pLightArray)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0"
      }
    ],
    "properties": [
      {
        "signature": "IntPtr CppPointer",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get"]
      }
    ],
    "methods": [
      {
        "signature": "System.Void Append(Rhino.Geometry.Light light)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0"
      },
      {
        "signature": "System.Int32 Count()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0"
      },
      {
        "signature": "System.Void Dispose()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0"
      },
      {
        "signature": "Rhino.Geometry.Light ElementAt(System.Int32 index)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0"
      }
    ]
  },
  {
    "namespace": "Rhino.Render",
    "name": "LightManagerSupport",
    "dataType": "class",
    "summary": "Base class for implementing custom light managers in .NET",
    "constructors": [
      {
        "signature": "LightManagerSupport()",
        "modifiers": ["protected"],
        "protected": true,
        "virtual": false,
        "summary": "Default constructor"
      }
    ],
    "methods": [
      {
        "signature": "System.Void RegisterLightManager(PlugIns.PlugIn plugin)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Find and register classes that derive from LightManagerSupport from the given plug-in.",
        "since": "6.0"
      },
      {
        "signature": "System.Void RegisterProviders(System.Reflection.Assembly assembly, System.Guid pluginId)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Find and register classes that derive from RealtimeDisplayMode from the given plug-in. The plug-in is found in the given assembly",
        "since": "6.0"
      },
      {
        "signature": "System.Boolean DeleteLight(RhinoDoc doc, Rhino.Geometry.Light light, System.Boolean bUndelete)",
        "modifiers": ["public", "abstract"],
        "protected": false,
        "virtual": false,
        "summary": "Delete light",
        "since": "6.0",
        "returns": "If delete is successful, then return true, else return false"
      },
      {
        "signature": "System.Void GetLights(RhinoDoc doc, ref LightArray light_array)",
        "modifiers": ["public", "abstract"],
        "protected": false,
        "virtual": false,
        "summary": "Get all the lights that are associated to the light manager. The lights are added to the LightArray parameter passed to the GetLights method",
        "since": "6.0"
      },
      {
        "signature": "System.Boolean GetLightSolo(RhinoDoc doc, System.Guid uuid_light)",
        "modifiers": ["public", "virtual"],
        "protected": false,
        "virtual": true,
        "summary": "Returns the value of \"ON_LIght::m_bOn\" if the light is in solo storage, or False if not in solo storage (ie - this is the checkbox state on the light manager dialog)",
        "since": "6.0",
        "returns": "Returns True if the light is in solo storage, or False if not in solo storage"
      },
      {
        "signature": "System.Void GroupLights(RhinoDoc doc, ref LightArray light_array)",
        "modifiers": ["public", "abstract"],
        "protected": false,
        "virtual": false,
        "summary": "Creates a new group with the lights",
        "since": "6.0"
      },
      {
        "signature": "System.String LightDescription(RhinoDoc doc, ref Rhino.Geometry.Light light)",
        "modifiers": ["public", "abstract"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the string representation of the light description",
        "since": "6.0",
        "returns": "Returns the string representation of the light description"
      },
      {
        "signature": "System.Boolean LightFromId(RhinoDoc doc, System.Guid uuid, ref Rhino.Geometry.Light light)",
        "modifiers": ["public", "abstract"],
        "protected": false,
        "virtual": false,
        "summary": "Get Rhino.Geometry.Light object associated to Guig uuid",
        "since": "6.0"
      },
      {
        "signature": "System.Int32 LightsInSoloStorage(RhinoDoc doc)",
        "modifiers": ["public", "virtual"],
        "protected": false,
        "virtual": true,
        "summary": "Returns the number of lights in solo storage - any number other than 0 means \"in solo mode\"",
        "since": "6.0",
        "returns": "Returns the number of lights in solo storage - any number other than 0 means \"in solo mode\""
      },
      {
        "signature": "System.Void ModifyLight(RhinoDoc doc, Rhino.Geometry.Light light)",
        "modifiers": ["public", "abstract"],
        "protected": false,
        "virtual": false,
        "summary": "Modify properties of the light",
        "since": "6.0"
      },
      {
        "signature": "System.Int32 ObjectSerialNumberFromLight(RhinoDoc doc, ref Rhino.Geometry.Light light)",
        "modifiers": ["public", "abstract"],
        "protected": false,
        "virtual": false,
        "summary": "Get the object serial number of the light",
        "since": "6.0"
      },
      {
        "signature": "System.Void OnCustomLightEvent(RhinoDoc doc, LightMangerSupportCustomEvent le, ref Rhino.Geometry.Light light)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Generates LightMangerSupportCustomEvent: light_added, light_deleted, light_undeleted, light_modified, light_sorted, The event triggers a Light table event that the rdk lightmanager listens too",
        "since": "6.0",
        "returns": "Returns the string representation of the light description"
      },
      {
        "signature": "System.Boolean OnEditLight(RhinoDoc doc, ref LightArray light_array)",
        "modifiers": ["public", "abstract"],
        "protected": false,
        "virtual": false,
        "summary": "The default implementation of OnEditLight selects the lights and opens the Lights Properties page",
        "since": "6.0",
        "returns": "Returns True if successful, else false"
      },
      {
        "signature": "System.Guid PluginId()",
        "modifiers": ["public", "abstract"],
        "protected": false,
        "virtual": false,
        "summary": "The Guid of the plugin",
        "since": "6.0",
        "returns": "Returns the Guid of the plugin"
      },
      {
        "signature": "System.Guid RenderEngineId()",
        "modifiers": ["public", "abstract"],
        "protected": false,
        "virtual": false,
        "summary": "The Guid of the render engine",
        "since": "6.0",
        "returns": "Returns the Guid of the render engine that is associated with this light manager"
      },
      {
        "signature": "System.Boolean SetLightSolo(RhinoDoc doc, System.Guid uuid_light, System.Boolean bSolo)",
        "modifiers": ["public", "virtual"],
        "protected": false,
        "virtual": true,
        "summary": "First checks to see if we are in \"solo mode\" - which means that there are any lights that respond \"true\" to IsInSoloStorage. If in solo mode: If bSolo = true Sets this light on. If bSolo = false If this is the last light \"on\", forces all lights out of solo mode. If there are other lights on, turns this light off. If not in solo mode: If bSolo = true Forces all lights into solo storage and sets this light on. If bSolo = false This shouldn't happen.  Will cause an ASSERT",
        "since": "6.0",
        "returns": "Returns True if action is successful"
      },
      {
        "signature": "System.Void UnGroup(RhinoDoc doc, ref LightArray light_array)",
        "modifiers": ["public", "abstract"],
        "protected": false,
        "virtual": false,
        "summary": "UnGroups the lights",
        "since": "6.0"
      }
    ]
  },
  {
    "namespace": "Rhino.Render",
    "name": "LightManagerSupportClient",
    "dataType": "class",
    "interfaces": ["IDisposable"],
    "constructors": [
      {
        "signature": "LightManagerSupportClient(uint doc_uuid)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0"
      }
    ],
    "properties": [
      {
        "signature": "IntPtr CppPointer",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get"]
      }
    ],
    "methods": [
      {
        "signature": "System.Void DeleteLight(Rhino.Geometry.Light light)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0"
      },
      {
        "signature": "System.Void Dispose()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0"
      },
      {
        "signature": "Rhino.Geometry.Light GetLightFromId(System.Guid uuid)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0"
      },
      {
        "signature": "LightArray GetLights()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0"
      },
      {
        "signature": "System.Boolean GetLightSolo(Rhino.Geometry.Light light)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0"
      },
      {
        "signature": "System.Void GroupLights(LightArray lights)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0"
      },
      {
        "signature": "System.String LightDescription(Rhino.Geometry.Light light)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0"
      },
      {
        "signature": "System.Int32 LightsInSoloStorage()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0"
      },
      {
        "signature": "System.Void ModifyLight(Rhino.Geometry.Light light)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0"
      },
      {
        "signature": "Rhino.DocObjects.RhinoObject ObjectFromLight(Rhino.Geometry.Light light)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0"
      },
      {
        "signature": "System.Void OnEditLight(LightArray lights)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0"
      },
      {
        "signature": "System.Boolean SetLightSolo(Rhino.Geometry.Light light, System.Boolean bSolo)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0"
      },
      {
        "signature": "System.Void UnGroup(LightArray lights)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0"
      }
    ]
  },
  {
    "namespace": "Rhino.Render",
    "name": "LightMangerSupportCustomEvent",
    "dataType": "enum",
    "summary": "LightMangerSupportCustomEvent",
    "since": "6.0",
    "values": [
      {
        "signature": "light_added",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "light_deleted",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "light_undeleted",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "light_modified",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "light_sorted",
        "modifiers": [],
        "protected": false,
        "virtual": false
      }
    ]

  },
  {
    "namespace": "Rhino.Render",
    "name": "LinearWorkflow",
    "dataType": "class",
    "summary": "This is the interface to linear workflow settings.",
    "baseclass": "Rhino.Render.DocumentOrFreeFloatingBase",
    "interfaces": ["IDisposable"],
    "constructors": [
      {
        "signature": "LinearWorkflow()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Create a utility object not associated with any document.",
        "since": "6.0"
      },
      {
        "signature": "LinearWorkflow(LinearWorkflow src)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Create a utility object not associated with any document from another object.",
        "since": "6.0"
      }
    ],
    "properties": [
      {
        "signature": "uint Hash",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Linear workflow hash.",
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "bool PostProcessFrameBuffer",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Linear workflow post-process frame buffer enabled state.",
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "float PostProcessGamma",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Linear workflow post-process gamma value.",
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool PostProcessGammaOn",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Linear workflow post-process gamma enabled state.",
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "float PostProcessGammaReciprocal",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Reciprocal of linear workflow post-process gamma value.",
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "bool PreProcessColors",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Linear workflow pre-process colors enabled state.",
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "float PreProcessGamma",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Linear workflow pre-process gamma value. This is currently the same as the post-process gamma value.",
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool PreProcessTextures",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Linear workflow pre-process textures enabled state.",
        "since": "6.0",
        "property": ["get", "set"]
      }
    ],
    "methods": [
      {
        "signature": "System.Void CopyFrom(FreeFloatingBase src)",
        "modifiers": ["public", "override"],
        "protected": false,
        "virtual": false,
        "summary": "Copy from another linear workflow object.",
        "since": "6.0"
      },
      {
        "signature": "System.Void Dispose()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "8.0"
      },
      {
        "signature": "System.Boolean Equals(System.Object obj)",
        "modifiers": ["public", "override"],
        "protected": false,
        "virtual": false,
        "summary": "Compare two LinearWorkflow objects. They are considered equal if their hashes match."
      },
      {
        "signature": "System.Int32 GetHashCode()",
        "modifiers": ["public", "override"],
        "protected": false,
        "virtual": false,
        "summary": "Get hash code for this object. It is the Hash property cast to int."
      }
    ]
  },
  {
    "namespace": "Rhino.Render",
    "name": "MappingTag",
    "dataType": "class",
    "summary": "Holds texture mapping information.",
    "constructors": [
      {
        "signature": "MappingTag()",
        "summary": "Initializes a new instance of the MappingTag class"
      }
    ],
    "properties": [
      {
        "signature": "Guid Id",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets a map globally unique identifier.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "uint MappingCRC",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the cyclic redundancy check on the mapping. See also <b>RhinoMath.CRC32(uint,byte[])</b> .",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "TextureMappingType MappingType",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets a texture mapping type: linear, cylinder, etc...",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "Transform MeshTransform",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets a 4x4 matrix transform.",
        "since": "5.0",
        "property": ["get", "set"]
      }
    ],
    "methods": [
      {
        "signature": "System.Int32 CompareTo(MappingTag other)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Compares this mapping tag with another mapping tag.",
        "since": "9.0",
        "returns": "-1 if this < other; 0 if both are equal; 1 otherwise."
      }
    ]
  },
  {
    "namespace": "Rhino.Render",
    "name": "MetaDataProxy",
    "dataType": "class",
    "summary": "ProxyClass for MetaData",
    "interfaces": ["IDisposable"],
    "constructors": [
      {
        "signature": "MetaDataProxy()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Constructor for MetaDataProxy",
        "since": "6.8"
      }
    ],
    "properties": [
      {
        "signature": "IntPtr CppPointer",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "MetaDataProxy c++ pointer",
        "since": "6.8",
        "property": ["get"]
      }
    ],
    "methods": [
      {
        "signature": "System.Void Dispose()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Dispose for MetaDataProxy",
        "since": "6.8"
      },
      {
        "signature": "System.Void SetContentInstanceId(System.Guid uuid)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Set Content instance id for meta data",
        "since": "6.8"
      }
    ]
  },
  {
    "namespace": "Rhino.Render",
    "name": "NamedValue",
    "dataType": "class",
    "constructors": [
      {
        "signature": "NamedValue(string name, object value)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.1"
      }
    ],
    "properties": [
      {
        "signature": "string Name",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.1",
        "property": ["get", "set"]
      },
      {
        "signature": "object Value",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.1",
        "property": ["get", "set"]
      }
    ]
  },
  {
    "namespace": "Rhino.Render.ParameterNames",
    "name": "PhysicallyBased",
    "dataType": "class",
    "summary": "Helper class with properties containing the names of fields available in our PBR implementation.",
    "constructors": [
      {
        "signature": "PhysicallyBased()",
        "summary": "Initializes a new instance of the PhysicallyBased class"
      }
    ],
    "properties": [
      {
        "signature": "string Alpha",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "7.0",
        "property": ["get"]
      },
      {
        "signature": "string AmbientOcclusion",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "7.0",
        "property": ["get"]
      },
      {
        "signature": "string Anisotropic",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "7.0",
        "property": ["get"]
      },
      {
        "signature": "string AnisotropicRotation",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "7.0",
        "property": ["get"]
      },
      {
        "signature": "string BaseColor",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "7.0",
        "property": ["get"]
      },
      {
        "signature": "string BRDF",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "7.0",
        "property": ["get"]
      },
      {
        "signature": "string Bump",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "7.0",
        "property": ["get"]
      },
      {
        "signature": "string Clearcoat",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "7.0",
        "property": ["get"]
      },
      {
        "signature": "string ClearcoatBump",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "7.0",
        "property": ["get"]
      },
      {
        "signature": "string ClearcoatRoughness",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "7.0",
        "property": ["get"]
      },
      {
        "signature": "string Displacement",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "7.0",
        "property": ["get"]
      },
      {
        "signature": "string Emission",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "7.0",
        "property": ["get"]
      },
      {
        "signature": "string Metallic",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "7.0",
        "property": ["get"]
      },
      {
        "signature": "string Opacity",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "7.0",
        "property": ["get"]
      },
      {
        "signature": "string OpacityIor",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "7.0",
        "property": ["get"]
      },
      {
        "signature": "string OpacityRoughness",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "7.0",
        "property": ["get"]
      },
      {
        "signature": "string Roughness",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "7.0",
        "property": ["get"]
      },
      {
        "signature": "string Sheen",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "7.0",
        "property": ["get"]
      },
      {
        "signature": "string SheenTint",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "7.0",
        "property": ["get"]
      },
      {
        "signature": "string Specular",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "7.0",
        "property": ["get"]
      },
      {
        "signature": "string SpecularTint",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "7.0",
        "property": ["get"]
      },
      {
        "signature": "string Subsurface",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "7.0",
        "property": ["get"]
      },
      {
        "signature": "string SubsurfaceScatteringColor",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "7.0",
        "property": ["get"]
      },
      {
        "signature": "string SubsurfaceScatteringRadius",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "7.0",
        "property": ["get"]
      }
    ]
  },
  {
    "namespace": "Rhino.Render",
    "name": "PhysicallyBasedMaterial",
    "dataType": "class"
  },
  {
    "namespace": "Rhino.Render",
    "name": "PhysicallyBasedMaterial.ParametersNames",
    "dataType": "class",
    "summary": "Helper class with fields containing the names of fields available in our PBR implementation.",
    "constructors": [
      {
        "signature": "PhysicallyBasedMaterial.ParametersNames()",
        "summary": "Initializes a new instance of the PhysicallyBasedMaterial.ParametersNames class"
      }
    ],
    "properties": [
      {
        "signature": "string AmbientOcclusion",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "6.12",
        "deprecated": "7.0",
        "property": ["get"]
      },
      {
        "signature": "string Anisotropic",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "6.12",
        "deprecated": "7.0",
        "property": ["get"]
      },
      {
        "signature": "string AnisotropicRotation",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "6.12",
        "deprecated": "7.0",
        "property": ["get"]
      },
      {
        "signature": "string BaseColor",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "6.12",
        "deprecated": "7.0",
        "property": ["get"]
      },
      {
        "signature": "string BRDF",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "6.12",
        "deprecated": "7.0",
        "property": ["get"]
      },
      {
        "signature": "string Bump",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "6.12",
        "deprecated": "7.0",
        "property": ["get"]
      },
      {
        "signature": "string Clearcoat",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "6.12",
        "deprecated": "7.0",
        "property": ["get"]
      },
      {
        "signature": "string ClearcoatBump",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "6.16",
        "deprecated": "7.0",
        "property": ["get"]
      },
      {
        "signature": "string ClearcoatRoughness",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "6.12",
        "deprecated": "7.0",
        "property": ["get"]
      },
      {
        "signature": "string Displacement",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "6.12",
        "deprecated": "7.0",
        "property": ["get"]
      },
      {
        "signature": "string Emission",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "6.12",
        "deprecated": "7.0",
        "property": ["get"]
      },
      {
        "signature": "string Metallic",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "6.12",
        "deprecated": "7.0",
        "property": ["get"]
      },
      {
        "signature": "string Normal",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "6.12",
        "deprecated": "7.0",
        "property": ["get"]
      },
      {
        "signature": "string Opacity",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "6.12",
        "deprecated": "7.0",
        "property": ["get"]
      },
      {
        "signature": "string OpacityIor",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "6.12",
        "deprecated": "7.0",
        "property": ["get"]
      },
      {
        "signature": "string OpacityRoughness",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "6.12",
        "deprecated": "7.0",
        "property": ["get"]
      },
      {
        "signature": "string Roughness",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "6.12",
        "deprecated": "7.0",
        "property": ["get"]
      },
      {
        "signature": "string Sheen",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "6.12",
        "deprecated": "7.0",
        "property": ["get"]
      },
      {
        "signature": "string SheenTint",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "6.12",
        "deprecated": "7.0",
        "property": ["get"]
      },
      {
        "signature": "string Smudge",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "6.12",
        "deprecated": "7.0",
        "property": ["get"]
      },
      {
        "signature": "string Specular",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "6.12",
        "deprecated": "7.0",
        "property": ["get"]
      },
      {
        "signature": "string SpecularTint",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "6.12",
        "deprecated": "7.0",
        "property": ["get"]
      },
      {
        "signature": "string Subsurface",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "6.12",
        "deprecated": "7.0",
        "property": ["get"]
      },
      {
        "signature": "string SubsurfaceScatteringColor",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "6.12",
        "deprecated": "7.0",
        "property": ["get"]
      },
      {
        "signature": "string SubsurfaceScatteringRadius",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "6.12",
        "deprecated": "7.0",
        "property": ["get"]
      }
    ]
  },
  {
    "namespace": "Rhino.Render",
    "name": "PixelBuffer",
    "dataType": "class",
    "constructors": [
      {
        "signature": "PixelBuffer(IntPtr bufferPointer)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Create a new PixelBuffer pointing to the (unmanaged) pixel data buffer behind IntPtr",
        "since": "6.0",
        "parameters": [
          {
            "name": "bufferPointer",
            "type": "System.IntPtr",
            "summary": "IntPtr to the unmanaged pixel data buffer"
          }
        ]
      }
    ],
    "properties": [
      {
        "signature": "IntPtr Buffer",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get", "set"]
      }
    ]
  },
  {
    "namespace": "Rhino.Render.PostEffects",
    "name": "CustomPostEffectAttribute",
    "dataType": "class",
    "baseclass": "Attribute",
    "constructors": [
      {
        "signature": "CustomPostEffectAttribute(PostEffectType postEffectType, string name, PostEffectStyles styles, PostEffectExecuteWhileRenderingOptions executeWhileRenderingOption, bool canDisplayHelp, int executeWhileRenderingDelay)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "7.0"
      }
    ],
    "properties": [
      {
        "signature": "bool CanDisplayHelp",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "7.0",
        "property": ["get", "set"]
      },
      {
        "signature": "int ExecuteWhileRenderingDelay",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "7.0",
        "property": ["get", "set"]
      },
      {
        "signature": "PostEffectExecuteWhileRenderingOptions ExecuteWhileRenderingOption",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "7.0",
        "property": ["get", "set"]
      },
      {
        "signature": "string Name",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "7.0",
        "property": ["get", "set"]
      },
      {
        "signature": "PostEffectType PostEffectType",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "7.0",
        "property": ["get", "set"]
      },
      {
        "signature": "PostEffectStyles Styles",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "7.0",
        "property": ["get", "set"]
      }
    ]
  },
  {
    "namespace": "Rhino.Render.PostEffects",
    "name": "IPostEffects",
    "dataType": "interface",
    "methods": [
      {
        "signature": "PostEffect[] GetPostEffects(PostEffectType type)",
        "modifiers": [],
        "protected": true,
        "virtual": false,
        "since": "7.0"
      },
      {
        "signature": "PostEffect PostEffectFromId(System.Guid uuid)",
        "modifiers": [],
        "protected": true,
        "virtual": false,
        "since": "7.0"
      }
    ]
  },
  {
    "namespace": "Rhino.Render.PostEffects",
    "name": "PostEffect",
    "dataType": "class",
    "interfaces": ["IDisposable"],
    "constructors": [
      {
        "signature": "PostEffect()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "7.0"
      }
    ],
    "properties": [
      {
        "signature": "bool CanDisplayHelp",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "7.0",
        "property": ["get"]
      },
      {
        "signature": "PostEffectExecuteWhileRenderingOptions ExecuteWhileRenderingOption",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "7.0",
        "property": ["get"]
      },
      {
        "signature": "Guid Id",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "7.0",
        "property": ["get"]
      },
      {
        "signature": "bool IsSelected",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Return True if the post effect is selected.",
        "since": "7.0",
        "property": ["get"]
      },
      {
        "signature": "string LocalName",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "7.0",
        "property": ["get"]
      },
      {
        "signature": "bool On",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "7.0",
        "property": ["get", "set"]
      },
      {
        "signature": "PostEffectType PostEffectType",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "7.0",
        "property": ["get"]
      },
      {
        "signature": "Guid[] RequiredChannels",
        "modifiers": ["public", "virtual"],
        "protected": false,
        "virtual": true,
        "summary": "The RDK calls this method to determine which channels a post effect requires. If a required channel is not available, the RDK will hide the post effect's UI and display explanatory text instead. Note: As a convenience, the default implementation adds IRhRdkRenderWindow::chanRGBA to the output array. Most post effects should be able to use this default with no need to override the method.",
        "since": "7.0",
        "property": ["get"]
      },
      {
        "signature": "int SerialNumber",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "7.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool Shown",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "7.0",
        "property": ["get", "set"]
      },
      {
        "signature": "PostEffectStyles Styles",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "7.0",
        "property": ["get"]
      }
    ],
    "methods": [
      {
        "signature": "System.Type[] RegisterPostEffect(PlugIns.PlugIn plugin)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "7.0"
      },
      {
        "signature": "System.Type[] RegisterPostEffect(System.Reflection.Assembly assembly, System.Guid pluginId)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "7.0"
      },
      {
        "signature": "System.Void AddUISections(PostEffectUI ui)",
        "modifiers": ["public", "abstract"],
        "protected": false,
        "virtual": false,
        "summary": "Create each of your UI sections using 'new' and then call ui.AddSection() on them. RDK takes ownership of the sections.If your post effect does not need a UI, then your implementation of this method can be a no-op.",
        "since": "7.0",
        "parameters": [
          {
            "name": "ui",
            "type": "PostEffectUI",
            "summary": "PostEffectUI"
          }
        ]
      },
      {
        "signature": "System.Void BeginChange(RenderContent.ChangeContexts changeContext)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "7.0"
      },
      {
        "signature": "System.Boolean CanExecute(PostEffectPipeline pipeline)",
        "modifiers": ["public", "virtual"],
        "protected": false,
        "virtual": true,
        "summary": "Return True if the post effect can execute, else false. The base implementation checks if the post effect is 'On' and 'Shown'. Post effect authors can override this to include other criteria but cannot disable the base criteria.",
        "since": "7.0",
        "parameters": [
          {
            "name": "pipeline",
            "type": "PostEffectPipeline",
            "summary": "PostEffectPipeline"
          }
        ],
        "returns": "Return True if the post effect can execute, else false"
      },
      {
        "signature": "System.Void Changed()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "7.0"
      },
      {
        "signature": "System.Boolean DisplayHelp()",
        "modifiers": ["public", "abstract"],
        "protected": false,
        "virtual": false,
        "summary": "Displays the post effect's help page, if any.",
        "since": "7.0",
        "returns": "Return True if successful, else false."
      },
      {
        "signature": "System.Void Dispose()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "7.0"
      },
      {
        "signature": "System.Void Dispose(System.Boolean bDisposing)",
        "modifiers": ["public", "virtual"],
        "protected": false,
        "virtual": true,
        "since": "7.0"
      },
      {
        "signature": "System.Boolean EndChange()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "7.0"
      },
      {
        "signature": "System.Boolean Execute(PostEffectPipeline pipeline, Rectangle rect)",
        "modifiers": ["public", "abstract"],
        "protected": false,
        "virtual": false,
        "summary": "Execute the post effect.",
        "since": "7.0",
        "parameters": [
          {
            "name": "pipeline",
            "type": "PostEffectPipeline",
            "summary": "pipeline provides access to the post-effect pipeline."
          },
          {
            "name": "rect",
            "type": "Rectangle",
            "summary": "rect is the pixel area to process."
          }
        ],
        "returns": "Return True if successful, else false."
      },
      {
        "signature": "System.Int32 GetHashCode()",
        "modifiers": ["public", "override"],
        "protected": false,
        "virtual": false,
        "summary": "A CRC of the state of this post effect.",
        "since": "7.0",
        "returns": "returns a crc of post effect state"
      },
      {
        "signature": "System.Boolean GetParam(System.String param, ref System.Object v)",
        "modifiers": ["public", "abstract"],
        "protected": false,
        "virtual": false,
        "summary": "Get a parameter.",
        "since": "7.0",
        "parameters": [
          {
            "name": "param",
            "type": "System.String",
            "summary": "is the name of the parameter to get."
          },
          {
            "name": "v",
            "type": "System.Object",
            "summary": "accepts the parameter value."
          }
        ],
        "returns": "Returns True if successful or False if the parameter was not found."
      },
      {
        "signature": "System.Boolean ReadFromDocumentDefaults(RhinoDoc doc)",
        "modifiers": ["public", "virtual"],
        "protected": false,
        "virtual": true,
        "summary": "Because post effects are now in the render settings, this function can no longer be called.",
        "since": "7.0",
        "deprecated": "8.0"
      },
      {
        "signature": "System.Boolean ReadState(PostEffectState state)",
        "modifiers": ["public", "abstract"],
        "protected": false,
        "virtual": false,
        "summary": "Read the state. If your post effect has no state, you must still return True for success.",
        "since": "7.0",
        "parameters": [
          {
            "name": "state",
            "type": "PostEffectState",
            "summary": "PostEffectState"
          }
        ],
        "returns": "Return True if successful, else false."
      },
      {
        "signature": "System.Void ResetToFactoryDefaults()",
        "modifiers": ["public", "abstract"],
        "protected": false,
        "virtual": false,
        "summary": "Reset the state to factory defaults.",
        "since": "7.0"
      },
      {
        "signature": "System.Boolean SetParam(System.String param, System.Object v)",
        "modifiers": ["public", "abstract"],
        "protected": false,
        "virtual": false,
        "summary": "Set a parameter.",
        "since": "7.0",
        "parameters": [
          {
            "name": "param",
            "type": "System.String",
            "summary": "is the name of the parameter to set."
          },
          {
            "name": "v",
            "type": "System.Object",
            "summary": "specifies the type and value to set."
          }
        ],
        "returns": "Return True if successful or False if the parameter could not be set."
      },
      {
        "signature": "System.Boolean WriteState(ref PostEffectState state)",
        "modifiers": ["public", "abstract"],
        "protected": false,
        "virtual": false,
        "summary": "Write the state. If your post effect has no state, you must still return True for success.",
        "since": "7.0",
        "parameters": [
          {
            "name": "state",
            "type": "PostEffectState",
            "summary": "PostEffectState"
          }
        ],
        "returns": "Return True if successful, else false."
      },
      {
        "signature": "System.Boolean WriteToDocumentDefaults(RhinoDoc doc)",
        "modifiers": ["public", "virtual"],
        "protected": false,
        "virtual": true,
        "summary": "Because post effects are now in the render settings, this function can no longer be called.",
        "since": "7.0",
        "deprecated": "8.0"
      }
    ]
  },
  {
    "namespace": "Rhino.Render.PostEffects",
    "name": "PostEffectChannel",
    "dataType": "class",
    "interfaces": ["IDisposable"],
    "properties": [
      {
        "signature": "Guid Id",
        "modifiers": ["virtual", "public"],
        "protected": false,
        "virtual": true,
        "summary": "Return the channel id which indicates what type of data is used in this channel.",
        "since": "7.0",
        "property": ["get"]
      },
      {
        "signature": "int PixelSize",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Return the pixel size in bytes for this channel.",
        "since": "7.0",
        "property": ["get"]
      }
    ],
    "methods": [
      {
        "signature": "PostEffectChannel Clone()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Return a clone of this channel.",
        "since": "7.0"
      },
      {
        "signature": "System.Void Commit()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Commit changes to the channel so that those changes can be used by subsequent post effects in the chain. Only valid for channels that were obtained by calling GetChannelForWrite(). If the channel has the same id as an existing channel, the existing channel will be replaced by the new one. If the existing channel was created by a previous post effect in the chain, it will be deleted. Changes to channels that are not commited simply get ignored. Note: This call merely sets a flag. The process is deferred until after the post effect has finished executing.",
        "since": "7.0"
      },
      {
        "signature": "RenderWindow.Channel CPU()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Return an interface to this channel for doing channel operations on the CPU.",
        "since": "7.0"
      },
      {
        "signature": "System.Void Dispose()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "7.0"
      },
      {
        "signature": "RenderWindow.ChannelGPU GPU()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Return an interface to this channel for doing channel operations on the GPU.",
        "since": "7.0"
      }
    ],
    "fields": [
      {
        "signature": "protected IntPtr m_cpp",
        "modifiers": ["protected"],
        "protected": true,
        "virtual": false
      }
    ]

  },
  {
    "namespace": "Rhino.Render.PostEffects",
    "name": "PostEffectCollection",
    "dataType": "class",
    "summary": "Represents the collection of post effects in render settings.",
    "baseclass": "Rhino.Render.DocumentOrFreeFloatingBase",
    "interfaces": ["IEnumerable<PostEffectData>", "IDisposable"],
    "constructors": [
      {
        "signature": "PostEffectCollection()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Create a utility object not associated with any document",
        "since": "8.0"
      },
      {
        "signature": "PostEffectCollection(PostEffectCollection c)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Create a utility object not associated with any document from another object",
        "since": "8.0",
        "parameters": [
          {
            "name": "c",
            "type": "PostEffectCollection",
            "summary": "The other collection."
          }
        ]
      }
    ],
    "methods": [
      {
        "signature": "System.Void CopyFrom(FreeFloatingBase src)",
        "modifiers": ["public", "override"],
        "protected": false,
        "virtual": false,
        "since": "8.0"
      },
      {
        "signature": "System.Void Dispose()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "8.0"
      },
      {
        "signature": "IEnumerator<PostEffectData> GetEnumerator()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "8.0"
      },
      {
        "signature": "System.Boolean GetSelectedPostEffect(PostEffectType type, out System.Guid id)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the selected post effect for a certain type into 'id'. Returns True if successful or False if the selection information could not be found.",
        "since": "8.0"
      },
      {
        "signature": "System.Boolean MovePostEffectBefore(System.Guid id_move, System.Guid id_before)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Move a post effect before another post effect in the list. Param 'id_move' is the id of the post effect to move. Param 'id_before' is the id of a post effect before which the post effect should be moved. If this is Guid.Empty, the post effect is moved to the end of the list. If the post effect identified by 'id_before' is not found, the method will fail. Returns True if successful, else false.",
        "since": "8.0"
      },
      {
        "signature": "PostEffectData PostEffectDataFromId(System.Guid id)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Get a post effect data for an id.",
        "since": "8.0"
      },
      {
        "signature": "System.Void SetSelectedPostEffect(PostEffectType type, System.Guid id)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Sets the selected post effect for a certain type.",
        "since": "8.0"
      }
    ]
  },
  {
    "namespace": "Rhino.Render.PostEffects",
    "name": "PostEffectData",
    "dataType": "class",
    "summary": "This is a wrapper around the data ('on', 'shown', 'state' parameters, etc.) of a post effect.",
    "interfaces": ["IDisposable"],
    "since": "8.0",
    "properties": [
      {
        "signature": "PostEffectCollection Collection",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "Guid Id",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns the unique id of this post effect.",
        "since": "8.0",
        "property": ["get"]
      },
      {
        "signature": "string LocalName",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns the localized name of this post effect.",
        "since": "8.0",
        "property": ["get"]
      },
      {
        "signature": "bool On",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "The 'on' state of this post effect.",
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool Shown",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "The 'shown' state of this post effect.",
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "PostEffectType Type",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns the type of this post effect.",
        "since": "8.0",
        "property": ["get"]
      }
    ],
    "methods": [
      {
        "signature": "System.UInt32 DataCRC(System.UInt32 current_remainder)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Get a CRC representing the state of the entire post effect.",
        "since": "8.0"
      },
      {
        "signature": "System.Void Dispose()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "8.0"
      },
      {
        "signature": "System.Void Dispose(System.Boolean disposing)",
        "modifiers": ["protected", "virtual"],
        "protected": true,
        "virtual": true
      },
      {
        "signature": "System.IConvertible GetParameter(System.String param_name)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Get an arbitrary parameter from this post effect by its name. If the parameter is not known to the post effect, the method will fail. Returns a variant object if successful or None on failure.",
        "since": "8.0"
      },
      {
        "signature": "System.Boolean SetParameter(System.String param_name, System.Object param_value)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Set an arbitrary parameter to the post effect by its name. If the parameter is not known to the post effect, the method will fail. Returns True if successful or False on failure.",
        "since": "8.0"
      }
    ]
  },
  {
    "namespace": "Rhino.Render.PostEffects",
    "name": "PostEffectExecuteContexts",
    "dataType": "enum",
    "since": "7.0",
    "values": [
      {
        "signature": "ProductionRendering = 0",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "RealtimeRendering = 1",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "ViewportDisplay = 2",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "ThumbnailCreation = 3",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "ConvertingToHDR = 4",
        "modifiers": [],
        "protected": false,
        "virtual": false
      }
    ]

  },
  {
    "namespace": "Rhino.Render.PostEffects",
    "name": "PostEffectExecuteWhileRenderingOptions",
    "dataType": "enum",
    "since": "7.0",
    "values": [
      {
        "signature": "None = 0",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Never = 0",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Always = 1",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "UseDelay = 2",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "UseExecutionControl = 3",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "since": "8.14"
      }
    ]

  },
  {
    "namespace": "Rhino.Render.PostEffects",
    "name": "PostEffectExecutionControl",
    "dataType": "class",
    "interfaces": ["IDisposable"],
    "constructors": [
      {
        "signature": "PostEffectExecutionControl()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "8.0"
      }
    ],
    "methods": [
      {
        "signature": "System.IntPtr Detach()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "8.13"
      },
      {
        "signature": "System.Void Dispose()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "8.13"
      },
      {
        "signature": "System.Void Dispose(System.Boolean bDisposing)",
        "modifiers": ["public", "virtual"],
        "protected": false,
        "virtual": true,
        "since": "8.0"
      },
      {
        "signature": "System.Boolean ReadyToExecutePostEffect(System.Guid pep_id)",
        "modifiers": ["public", "abstract"],
        "protected": false,
        "virtual": false,
        "since": "8.13"
      }
    ]
  },
  {
    "namespace": "Rhino.Render.PostEffects",
    "name": "PostEffectHistograms",
    "dataType": "enum",
    "since": "7.0",
    "values": [
      {
        "signature": "None = 0",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "BeforeEarlyEffects = 1",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "BeforeToneMapping = 2",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "AfterToneMapping = 4",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "AfterLateEffects = 8",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "All = BeforeEarlyEffects | BeforeToneMapping | AfterToneMapping | AfterLateEffects",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "ToneMappingDisplay = BeforeToneMapping | AfterToneMapping",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "AfterEarlyEffects = BeforeToneMapping",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "BeforeLateEffects = AfterToneMapping",
        "modifiers": [],
        "protected": false,
        "virtual": false
      }
    ]

  },
  {
    "namespace": "Rhino.Render.PostEffects",
    "name": "PostEffectJob",
    "dataType": "class",
    "interfaces": ["IDisposable"],
    "constructors": [
      {
        "signature": "PostEffectJob()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "7.0"
      }
    ],
    "methods": [
      {
        "signature": "PostEffectJob Clone()",
        "modifiers": ["public", "abstract"],
        "protected": false,
        "virtual": false,
        "since": "7.0"
      },
      {
        "signature": "System.Void Dispose()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "System.Void Dispose(System.Boolean bDisposing)",
        "modifiers": ["public", "virtual"],
        "protected": false,
        "virtual": true,
        "since": "7.0"
      },
      {
        "signature": "System.Boolean Execute(Rectangle rect, PostEffectJobChannels access)",
        "modifiers": ["public", "abstract"],
        "protected": false,
        "virtual": false,
        "since": "7.0"
      }
    ]
  },
  {
    "namespace": "Rhino.Render.PostEffects",
    "name": "PostEffectJobChannels",
    "dataType": "class",
    "interfaces": ["IDisposable"],
    "methods": [
      {
        "signature": "System.Void Dispose()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "7.0"
      },
      {
        "signature": "PostEffectChannel GetChannel(System.Guid channelId)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "7.0"
      }
    ]
  },
  {
    "namespace": "Rhino.Render.PostEffects",
    "name": "PostEffectPipeline",
    "dataType": "class",
    "summary": "This object provides a way for post effects to access the frame buffer channels from a rendering and create new channels containing post-processed information which can be passed to the next post effect in the chain. Consider a simple post effect that just modifies the red component of a rendering.It will call GetChannel() to get the red channel as its input, and it will call NewChannel() to get a new red channel for its output. It will then read the input channel, do calculations and write to the output channel.When finished, it will call Commit() passing the new channel.Because both channels have the same identifier, this will replace the old channel with the new one so that subsequent post effects in the chain will use the new channel instead of the original.Note that this will only replace the channel used by the pipeline.The original channel will still exist in the frame buffer.This system allows any post effect to access any number of channels for reading and create any number of new channels which may or may not replace existing channels depending on the channel id.The final stage (convert to 8-bit) operates on the channels left in the pipeline by the post effect chain to produce the final 32-bit RGBA image in a dib.  It is also possible for a post effect to create and use any number of 'scratch' channels.If a post effect needs a temporary pixel buffer for some intermediate results, it can call NewChannel() with a custom (random) id. Once it is finished with this scratch channel, it can call Discard() on it.",
    "interfaces": ["IDisposable", "IProgress<int>", "Rhino.Render.PostEffects.IPostEffects"],
    "properties": [
      {
        "signature": "bool GPUAllowed",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Post effect authors should check that GPU use is allowed before using the GPU in a post effect.",
        "since": "7.0",
        "property": ["get"]
      },
      {
        "signature": "bool IsRendering",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "IsRendering",
        "since": "7.0",
        "property": ["get"]
      },
      {
        "signature": "Guid RenderingId",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Return a UUID that uniquely identifies the rendering being processed.",
        "since": "7.0",
        "property": ["get"]
      }
    ],
    "methods": [
      {
        "signature": "Size Dimensions()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Get the dimensions of the frame buffer. All channels in the frame buffer have the same dimensions.",
        "since": "7.0",
        "returns": "Dimension as Size"
      },
      {
        "signature": "System.Void Dispose()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "7.0"
      },
      {
        "signature": "System.Boolean Execute(Rectangle p, System.Boolean renderingInProgress, PostEffectExecuteContexts usageContexts, PostEffectHistograms histogramsToUpdate)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Execute the pipeline. This executes all the post effects in order. Only this rectangle need be modified by the post effects.",
        "since": "7.0",
        "parameters": [
          {
            "name": "p",
            "type": "Rectangle",
            "summary": "p is a rectangle within the frame buffer."
          },
          {
            "name": "renderingInProgress",
            "type": "System.Boolean",
            "summary": "rendering is True if rendering is in progress."
          },
          {
            "name": "usageContexts",
            "type": "PostEffectExecuteContexts",
            "summary": "Context this pipeline is being executed in."
          },
          {
            "name": "histogramsToUpdate",
            "type": "PostEffectHistograms",
            "summary": "Bitwise list of histograms to update during the execution of the pipeline"
          }
        ]
      },
      {
        "signature": "System.Guid[] ExecutionOrder()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns a list of the post effects to be executed by this pipeline in order.",
        "since": "7.0",
        "returns": "A list of the post effects to be executed by this pipeline in order"
      },
      {
        "signature": "PostEffectChannel GetChannelForRead(System.Guid id)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Get a channel for reading. A post effect will use this to get channel data as input to its process. Output will be written to new channel(s). \\see GetChannelForWrite() This method returns the current state of the channel at this stage in the pipeline. If the first post effect calls this, it will get the actual frame buffer channel. Subsequent post effects will get the data left behind by the previous post effect. A post effect calls GetChannelForRead() to get its input and GetChannelForWrite() to get the object to which it will write its output. Even when the same channel id is specified, these are separate, unconnected objects.",
        "since": "7.0",
        "parameters": [
          {
            "name": "id",
            "type": "System.Guid",
            "summary": "The channel identifier."
          }
        ],
        "returns": "A pointer to the channel or None if the channel is not available."
      },
      {
        "signature": "PostEffectChannel GetChannelForWrite(System.Guid id)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Get a channel for writing. A post effect will use this to get channel(s) to write the output of its processing to. Input will usually come from existing channels, although a post effect is free to read its own output channels if needed. See GetChannelForRead() You are allowed to create one new channel with the same identifier as an existing channel, in which case IChannel::Commit() will replace the existing channel with the new one in the pipeline.",
        "since": "7.0",
        "parameters": [
          {
            "name": "id",
            "type": "System.Guid",
            "summary": "The channel identifier."
          }
        ],
        "returns": "A pointer to the new channel or None if the channel could not be created."
      },
      {
        "signature": "System.UInt64 GetEndTimeInMilliseconds()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Get the end time of the rendering expressed in milliseconds since some unspecified epoch. Do not make assumptions about what the epoch is; it might be different on different platforms.",
        "since": "7.0",
        "returns": "milliseconds"
      },
      {
        "signature": "System.Single GetMaxLuminance()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Get the max luminance in the rendering.",
        "since": "7.0",
        "returns": "max luminance"
      },
      {
        "signature": "System.UInt64 GetStartTimeInMilliseconds()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Get the start time of the rendering expressed in milliseconds since some unspecified epoch. Do not make assumptions about what the epoch is; it might be different on different platforms.",
        "since": "7.0",
        "returns": "milliseconds"
      },
      {
        "signature": "System.Void SetStartTimeInMilliseconds(System.UInt64 ms)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Set the start time of the rendering in milliseconds since some unspecified epoch.",
        "parameters": [
          {
            "name": "ms",
            "type": "System.UInt64",
            "summary": "milliseconds"
          }
        ]
      },
      {
        "signature": "PostEffectThreadEngine ThreadEngine()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Get the post effect thread engine.",
        "since": "7.0"
      }
    ]
  },
  {
    "namespace": "Rhino.Render.PostEffects",
    "name": "PostEffectState",
    "dataType": "class",
    "interfaces": ["IDisposable"],
    "methods": [
      {
        "signature": "System.Void Dispose()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "7.0"
      },
      {
        "signature": "System.Boolean SetValue(System.String name, T vValue)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "7.0"
      },
      {
        "signature": "System.Boolean TryGetValue(System.String name, out T vValue)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "7.0"
      }
    ]
  },
  {
    "namespace": "Rhino.Render.PostEffects",
    "name": "PostEffectStyles",
    "dataType": "enum",
    "since": "7.0",
    "values": [
      {
        "signature": "ExecuteForProductionRendering = 0x0001",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "ExecuteForRealtimeRendering   = 0x0002",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "ExecuteForViewportDisplay     = 0x0004",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Fixed        = 0x0100",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "DefaultShown = 0x0200",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "DefaultOn    = 0x0400",
        "modifiers": [],
        "protected": false,
        "virtual": false
      }
    ]

  },
  {
    "namespace": "Rhino.Render.PostEffects",
    "name": "PostEffectThreadEngine",
    "dataType": "class",
    "interfaces": ["IDisposable"],
    "methods": [
      {
        "signature": "System.Void Dispose()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "7.0"
      },
      {
        "signature": "System.Boolean RunPostEffect(PostEffectJob job, PostEffectPipeline pipeline, PostEffect plugin, Rectangle rect, System.Guid[] channels)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "7.0"
      }
    ]
  },
  {
    "namespace": "Rhino.Render.PostEffects",
    "name": "PostEffectType",
    "dataType": "enum",
    "since": "7.0",
    "values": [
      {
        "signature": "Early = 0",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "ToneMapping = 1",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Late = 2",
        "modifiers": [],
        "protected": false,
        "virtual": false
      }
    ]

  },
  {
    "namespace": "Rhino.Render.PostEffects",
    "name": "PostEffectUI",
    "dataType": "class",
    "summary": "PostEffectUI class provides a way for post effect plug-ins to add ui sections.",
    "interfaces": ["IDisposable"],
    "methods": [
      {
        "signature": "System.Void AddSection(ICollapsibleSection section)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Add a section to the UI.",
        "since": "7.0"
      },
      {
        "signature": "System.Void Dispose()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "7.0"
      }
    ]
  },
  {
    "namespace": "Rhino.Render.PostEffects",
    "name": "PostEffectUuids",
    "dataType": "class",
    "constructors": [
      {
        "signature": "PostEffectUuids()",
        "summary": "Initializes a new instance of the PostEffectUuids class"
      }
    ],
    "properties": [
      {
        "signature": "Guid Bloom",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "8.13",
        "property": ["get"]
      },
      {
        "signature": "Guid BriCon",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "8.13",
        "property": ["get"]
      },
      {
        "signature": "Guid DepthOfField",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "8.13",
        "property": ["get"]
      },
      {
        "signature": "Guid Dithering",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "8.13",
        "property": ["get"]
      },
      {
        "signature": "Guid Fog",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "8.13",
        "property": ["get"]
      },
      {
        "signature": "Guid Gamma",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "8.13",
        "property": ["get"]
      },
      {
        "signature": "Guid GaussianBlur",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "8.13",
        "property": ["get"]
      },
      {
        "signature": "Guid Glare",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "8.13",
        "property": ["get"]
      },
      {
        "signature": "Guid Glow",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "8.13",
        "property": ["get"]
      },
      {
        "signature": "Guid HueSatLum",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "8.13",
        "property": ["get"]
      },
      {
        "signature": "Guid Multiplier",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "8.13",
        "property": ["get"]
      },
      {
        "signature": "Guid Noise",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "8.13",
        "property": ["get"]
      },
      {
        "signature": "Guid ToneMapper_BlackWhitePoint",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "8.13",
        "property": ["get"]
      },
      {
        "signature": "Guid ToneMapper_Clamp",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "8.13",
        "property": ["get"]
      },
      {
        "signature": "Guid ToneMapper_FalseColor",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "8.13",
        "property": ["get"]
      },
      {
        "signature": "Guid ToneMapper_Filmic",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "8.13",
        "property": ["get"]
      },
      {
        "signature": "Guid ToneMapper_Logarithmic",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "8.13",
        "property": ["get"]
      },
      {
        "signature": "Guid Watermark",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "8.13",
        "property": ["get"]
      },
      {
        "signature": "Guid WireframeAnnotationsRGBA",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "8.13",
        "property": ["get"]
      },
      {
        "signature": "Guid WireframeCurvesRGBA",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "8.13",
        "property": ["get"]
      },
      {
        "signature": "Guid WireframeIsocurvesRGBA",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "8.13",
        "property": ["get"]
      },
      {
        "signature": "Guid WireframePointsRGBA",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "8.13",
        "property": ["get"]
      }
    ]
  },
  {
    "namespace": "Rhino.Render",
    "name": "PreviewAppearance",
    "dataType": "class",
    "summary": "PreviewAppearance class",
    "interfaces": ["IDisposable"],
    "constructors": [
      {
        "signature": "PreviewAppearance(IntPtr pRenderContent)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Constructor for previewappearance",
        "since": "6.0"
      }
    ],
    "properties": [
      {
        "signature": "IntPtr CppPointer",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Previewappearances c++ pointer",
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "MetaData MetaData",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Previewappearance MetaData",
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "double Scale",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Size - used in the UI.  Always meters.",
        "since": "7.0",
        "property": ["get", "set"]
      },
      {
        "signature": "double SceneScale",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Scene size - the actual size that is rendered",
        "since": "7.0",
        "property": ["get"]
      }
    ],
    "methods": [
      {
        "signature": "PreviewBackground Background()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Background",
        "since": "6.0"
      },
      {
        "signature": "System.Void Dispose()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Dispose for previewappearance",
        "since": "6.0"
      },
      {
        "signature": "PreviewAppearance Duplicate()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Deep copy",
        "since": "9.0"
      },
      {
        "signature": "System.Void FromMetaData(MetaData md)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Copy data from MetaData to PreviewAppearance",
        "since": "6.0"
      },
      {
        "signature": "PreviewGeometry Geometry()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Geometry",
        "since": "6.0"
      },
      {
        "signature": "PreviewLighting Lighting()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Lighting",
        "since": "6.0"
      },
      {
        "signature": "IRhRdkPreviewSceneServer_eRotationType RotationType()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "RotationType",
        "since": "6.0"
      },
      {
        "signature": "System.Double RotationX()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "RotationX",
        "since": "6.0"
      },
      {
        "signature": "System.Double RotationY()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "RotationY",
        "since": "6.0"
      },
      {
        "signature": "System.Void SetRotationType(IRhRdkPreviewSceneServer_eRotationType type)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "SetRotationType",
        "since": "6.0"
      },
      {
        "signature": "System.Void SetRotationX(System.Double d)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "SetRotationX",
        "since": "6.0"
      },
      {
        "signature": "System.Void SetRotationY(System.Double d)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "SetRotationY",
        "since": "6.0"
      },
      {
        "signature": "System.Void SetSize(System.Double d)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "SetSize",
        "since": "6.0",
        "deprecated": "7.0",
        "obsolete": "Use Scale instead"
      },
      {
        "signature": "System.Double Size()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Size - used in the UI.  Always meters.",
        "since": "6.0",
        "deprecated": "7.0"
      },
      {
        "signature": "System.Void ToMetaData()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Copy PreviewAppearance to MetaData",
        "since": "6.0"
      },
      {
        "signature": "System.Void ToMetaData(MetaDataProxy mdp)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Copy PreviewAppearance to MetaData",
        "since": "6.8"
      }
    ]
  },
  {
    "namespace": "Rhino.Render",
    "name": "PreviewBackground",
    "dataType": "class",
    "summary": "PreviewBackGround takes care of construction and destruction of PreviewLight",
    "constructors": [
      {
        "signature": "PreviewBackground(IntPtr pPreviewBackground)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Constructor for PreivewLighting",
        "since": "6.0"
      }
    ],
    "properties": [
      {
        "signature": "IntPtr CppPointer",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "CppPointer for PreivewLighting",
        "since": "6.0",
        "property": ["get"]
      }
    ],
    "methods": [
      {
        "signature": "System.String ElementKind()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "ElementKind",
        "since": "6.0"
      },
      {
        "signature": "System.Guid EnvironmentInstanceId()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "EnvironmentInstanceId",
        "since": "6.0"
      },
      {
        "signature": "System.Void SetEnvironmentInstanceId(System.Guid guid)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "SetEnvironmentInstanceId",
        "since": "6.0"
      },
      {
        "signature": "System.Void SetUpPreview(System.IntPtr sceneServerPointer, System.Guid guid)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "SetUpPreview",
        "since": "6.0"
      }
    ]
  },
  {
    "namespace": "Rhino.Render",
    "name": "PreviewGeometry",
    "dataType": "class",
    "summary": "PreviewAppearance takes care of construction and destruction of PreviewGeometry",
    "constructors": [
      {
        "signature": "PreviewGeometry(IntPtr pPreviewGeometry)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Constructor for PreviewGeometry",
        "since": "6.0"
      }
    ],
    "properties": [
      {
        "signature": "IntPtr CppPointer",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "CppPointer for PreviewGeometry",
        "since": "6.0",
        "property": ["get"]
      }
    ],
    "methods": [
      {
        "signature": "System.String ElementKind()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "ElementKind",
        "since": "6.0"
      },
      {
        "signature": "System.Void SetUpPreview(System.IntPtr sceneServerPointer, System.IntPtr pRenderContent, System.Boolean bCopy)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "SetUpPreview",
        "since": "6.0"
      }
    ]
  },
  {
    "namespace": "Rhino.Render",
    "name": "PreviewJobSignature",
    "dataType": "class",
    "summary": "Preview Job Signature is a specific identifier for a specific rendered preview",
    "interfaces": ["IDisposable"],
    "constructors": [
      {
        "signature": "PreviewJobSignature()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Preview Job Signature constructor",
        "since": "8.8"
      },
      {
        "signature": "PreviewJobSignature(int width, int height, uint sig, Guid id)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "9.0"
      },
      {
        "signature": "PreviewJobSignature(int width, int height, uint sig)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Preview Job Signature constructor",
        "since": "8.8",
        "deprecated": "9.0"
      },
      {
        "signature": "PreviewJobSignature(IntPtr intPtr)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Preview Job Signature constructor",
        "since": "8.8"
      }
    ],
    "properties": [
      {
        "signature": "IntPtr CppPointer",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "UnManaged pointer of the PreviewJobsingature",
        "since": "8.8",
        "property": ["get"]
      }
    ],
    "methods": [
      {
        "signature": "System.Boolean Compare(PreviewJobSignature pjs)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Compare two Preview Job Signatures. True if they are the same, otherwise false.",
        "since": "8.8"
      },
      {
        "signature": "System.Void Dispose()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Dispose",
        "since": "8.8"
      },
      {
        "signature": "System.Int32 ImageHeight()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "The Height of the rendered preview image",
        "since": "8.8"
      },
      {
        "signature": "System.Int32 ImageWidth()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "The Width of the rendered preview image",
        "since": "8.8"
      }
    ]
  },
  {
    "namespace": "Rhino.Render",
    "name": "PreviewLighting",
    "dataType": "class",
    "summary": "PreviewAppearance takes care of construction and destruction of PreviewLight",
    "constructors": [
      {
        "signature": "PreviewLighting(IntPtr pPreviewLighting)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Constructor for PreivewLighting",
        "since": "6.0"
      }
    ],
    "properties": [
      {
        "signature": "IntPtr CppPointer",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "CppPointer for PreivewLighting",
        "since": "6.0",
        "property": ["get"]
      }
    ],
    "methods": [
      {
        "signature": "System.String ElementKind()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "ElementKind",
        "since": "6.0"
      },
      {
        "signature": "System.Void SetUpPreview(System.IntPtr sceneServerPointer)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "SetUpPreview",
        "since": "6.0"
      }
    ]
  },
  {
    "namespace": "Rhino.Render",
    "name": "PreviewRenderedEventArgs",
    "dataType": "class",
    "summary": "PreviewRenderedEventArgs is raised when a content preview has been rendered",
    "baseclass": "EventArgs",
    "constructors": [
      {
        "signature": "PreviewRenderedEventArgs()",
        "summary": "Initializes a new instance of the PreviewRenderedEventArgs class"
      }
    ],
    "properties": [
      {
        "signature": "Bitmap Bitmap",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "The Bitmap of the rendered preview",
        "since": "8.8",
        "property": ["get", "set"]
      },
      {
        "signature": "PreviewJobSignature PreviewJobSignature",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "The Preview Job Signature associated with the rendered preview",
        "since": "8.8",
        "property": ["get", "set"]
      },
      {
        "signature": "PreviewQuality Quality",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "The Bitmap of the rendered preview",
        "since": "8.8",
        "property": ["get", "set"]
      }
    ]
  },
  {
    "namespace": "Rhino.Render",
    "name": "PreviewSceneQuality",
    "dataType": "enum",
    "summary": "Quality levels when creating preview images",
    "since": "5.1",
    "values": [
      {
        "signature": "    RealtimeQuick = Low",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Very fast preview. Typically using the internal OpenGL preview generator.",
        "obsolete": "use PreviewSceneQuality.Low"
      },
      {
        "signature": "    RefineFirstPass = Low",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Low quality rendering for quick preview.",
        "obsolete": "use PreviewSceneQuality.Low"
      },
      {
        "signature": "    RefineSecondPass = Medium",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Medium quality rendering for intermediate preview.",
        "obsolete": "use PreviewSceneQuality.Medium"
      },
      {
        "signature": "    RefineThirdPass = Full",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Full quality rendering (quality comes from user settings)",
        "obsolete": "use PreviewSceneQuality.Full"
      },
      {
        "signature": "None = 0",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "No quality set."
      },
      {
        "signature": "Low = 1",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Low quality rendering for quick preview."
      },
      {
        "signature": "Medium = 2",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Medium quality rendering for intermediate preview."
      },
      {
        "signature": "IntermediateProgressive = 3",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Intermediate update, always considered better quality than the previous IntermediateProgressive, but not as high as Full."
      },
      {
        "signature": "Full = 4",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Full quality rendering (quality comes from user settings)."
      }
    ]

  },
  {
    "namespace": "Rhino.Render",
    "name": "PreviewSceneServer",
    "dataType": "class",
    "summary": "PreviewSceneServer",
    "interfaces": ["IDisposable"],
    "constructors": [
      {
        "signature": "PreviewSceneServer(IntPtr pPreviewSceneServer)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Constructor for PreviewSceneServer",
        "since": "6.0",
        "deprecated": "8.0"
      }
    ],
    "properties": [
      {
        "signature": "IntPtr CppPointer",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "The CppPointer of PreviewSceneServer",
        "since": "6.0",
        "property": ["get"]
      }
    ],
    "methods": [
      {
        "signature": "System.Void ApplyRotation(System.Double X, System.Double Y, IRhRdkPreviewSceneServer_eRotationType type)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Set Scene Server Rotation",
        "since": "6.0"
      },
      {
        "signature": "System.Void Dispose()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Dispose for PreviewSceneServer",
        "since": "6.0"
      },
      {
        "signature": "System.Void Dispose(System.Boolean bDisposing)",
        "modifiers": ["protected", "virtual"],
        "protected": true,
        "virtual": true,
        "summary": "Dispose for PreviewSceneServer"
      },
      {
        "signature": "System.Void SetSceneScale(System.Double scale)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Set Scene Server Scale",
        "since": "7.0"
      }
    ]
  },
  {
    "namespace": "Rhino.Render",
    "name": "Projection",
    "dataType": "enum",
    "summary": "When a mapping primitive, like a plane, sphere, box, or cylinder, is used, there are two projection options. If m_type = srfp_mapping, then m_projection is ignored.",
    "since": "8.15",
    "values": [
      {
        "signature": "None    = 0",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "None"
      },
      {
        "signature": "ClosestPoint = 1",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "ClosestPoint: world xyz maps to the point on the mapping primitive that is closest to xyz. In this case, ON_TextureMapping::Evaluate ignores the vector argument."
      },
      {
        "signature": "Ray = 2",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Ray:   world xyz + world vector defines a world line. The world line is intersected with the mapping primitive and the intersection point that is closest to the world xyz point is used to calculate the mapping parameters."
      }
    ]

  },
  {
    "namespace": "Rhino.Render",
    "name": "ProxyTypes",
    "dataType": "enum",
    "summary": "Defines the proxy type of the render content",
    "since": "6.0",
    "values": [
      {
        "signature": "None",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "No proxy type specified."
      },
      {
        "signature": "Single",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "A proxy that represents a single material in the CRhinoDoc::m_material_table"
      },
      {
        "signature": "Multi",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "A proxy that represents multiple materials - all similar."
      },
      {
        "signature": "Texture",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "A proxy that represents textures, either in the texture table, or attached to materials or environments."
      }
    ]

  },
  {
    "namespace": "Rhino.Render",
    "name": "RdkUndo",
    "dataType": "class",
    "summary": "RdkUndo class, which is used to get the RdkUndoRecord",
    "interfaces": ["IDisposable"],
    "constructors": [
      {
        "signature": "RdkUndo(IntPtr pUndoRecord)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Constructor for RdkUndo",
        "since": "6.11"
      }
    ],
    "methods": [
      {
        "signature": "System.Void Dispose()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Dispose for RdkUndo",
        "since": "6.11"
      },
      {
        "signature": "RdkUndoRecord NewUndoRecord()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Get a new UndoRecord",
        "since": "6.11"
      }
    ]
  },
  {
    "namespace": "Rhino.Render",
    "name": "RdkUndoRecord",
    "dataType": "class",
    "summary": "RdkUndoRecord class",
    "interfaces": ["IDisposable"],
    "constructors": [
      {
        "signature": "RdkUndoRecord(IntPtr pUndoRecord)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Constructor for RdkUndoRecord",
        "since": "6.0"
      }
    ],
    "methods": [
      {
        "signature": "System.Void Dispose()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Dispose for RdkUndoRecord",
        "since": "6.0"
      },
      {
        "signature": "System.Void SetDescription(System.String description)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Set description for RdkUndoRecord",
        "since": "6.0"
      }
    ]
  },
  {
    "namespace": "Rhino.Render",
    "name": "RealtimeDisplayMode",
    "dataType": "class",
    "summary": "Base class for implementing real-time display modes in .NET.  Pay special attention that in StartRenderer the RenderWindow.SetSize() function is called if the implementation relies on the RenderWindow to do the drawing to the viewport. If i.e. OpenGL is used to draw render results to the viewport then SetSize() doesn't have to be called, nor should the implementation then access channels on the RenderWindow, as those then don't exist. For OpenGL-based drawing the RenderWindow is used as a container for ViewInfo management, nothing else.",
    "constructors": [
      {
        "signature": "RealtimeDisplayMode()",
        "modifiers": ["protected"],
        "protected": true,
        "virtual": false
      }
    ],
    "properties": [
      {
        "signature": "LinearWorkflow LinearWorkflow",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns the LinearWorkflow data for this realtime display mode.",
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "bool Locked",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.6",
        "property": ["get", "set"]
      },
      {
        "signature": "int MaxPasses",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.6",
        "property": ["get", "set"]
      },
      {
        "signature": "bool Paused",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.6",
        "property": ["get", "set"]
      },
      {
        "signature": "bool PostEffectsOn",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "7.1",
        "property": ["get", "set"]
      }
    ],
    "methods": [
      {
        "signature": "RealtimeDisplayMode GetRealtimeViewport(System.IntPtr realtimeViewport, System.Boolean create)",
        "modifiers": ["static", "public"],
        "protected": false,
        "virtual": false,
        "summary": "Retrieve RealtimeDisplayMode instance. If create is set to true then a new instance is created if not found, None is returned for false.",
        "since": "6.0",
        "parameters": [
          {
            "name": "realtimeViewport",
            "type": "System.IntPtr",
            "summary": "IntPtr"
          },
          {
            "name": "create",
            "type": "System.Boolean",
            "summary": "True to create if not found, False to return None if not found."
          }
        ]
      },
      {
        "signature": "RealtimeDisplayMode GetRealtimeViewport(System.IntPtr realtimeViewport)",
        "modifiers": ["static", "public"],
        "protected": false,
        "virtual": false,
        "summary": "Retrieve RealtimeDisplayMode instance that the IntPtr refers to.",
        "since": "6.0",
        "parameters": [
          {
            "name": "realtimeViewport",
            "type": "System.IntPtr",
            "summary": "IntPtr of the instance searched for. If the instance doesn't exist, a new one is created."
          }
        ]
      },
      {
        "signature": "RealtimeDisplayModeClassInfo[] RegisterDisplayModes(PlugIns.PlugIn plugin)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Find and register classes that derive from RealtimeDisplayMode from the given plug-in.",
        "since": "6.0"
      },
      {
        "signature": "RealtimeDisplayModeClassInfo[] RegisterDisplayModes(System.Reflection.Assembly assembly, System.Guid pluginId)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Find and register classes that derive from RealtimeDisplayMode from the given plug-in. The plug-in is found in the given assembly",
        "since": "6.0"
      },
      {
        "signature": "System.Void RemoveRealtimeViewport(System.IntPtr realtimeViewport)",
        "modifiers": ["static", "public"],
        "protected": false,
        "virtual": false,
        "summary": "Remove RealtimeDisplayMode instance from internal dictionary.",
        "since": "6.0",
        "parameters": [
          {
            "name": "realtimeViewport",
            "type": "System.IntPtr",
            "summary": "IntPtr to the RealtimeDisplayMode instance to remove."
          }
        ]
      },
      {
        "signature": "System.Void UnregisterDisplayModes(PlugIns.PlugIn plugin)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "6.0"
      },
      {
        "signature": "System.Void UnregisterDisplayModes(System.Reflection.Assembly assembly, System.Guid pluginId)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "6.0"
      },
      {
        "signature": "System.Double CaptureProgress()",
        "modifiers": ["public", "virtual"],
        "protected": false,
        "virtual": true,
        "summary": "Override to communicate the progress of a capture.",
        "since": "6.0",
        "returns": "A number between 0.0 and 1.0 inclusive. 1.0 means 100%."
      },
      {
        "signature": "System.UInt32 ComputeViewportCrc(ViewInfo view)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Compute viewport CRC for the given ViewInfo",
        "since": "6.0",
        "returns": "the CRC for the given view"
      },
      {
        "signature": "System.Void CreateWorld(RhinoDoc doc, ViewInfo viewInfo, DisplayPipelineAttributes displayPipelineAttributes)",
        "modifiers": ["public", "virtual"],
        "protected": false,
        "virtual": true,
        "summary": "Implement if you need to handle the initial CreateWorld call initiated by the display pipeline system. Note that this is not the same as the CreateWorld call in Rhino.Render.ChangeQueue.ChangeQueue, although related.",
        "since": "6.0",
        "parameters": [
          {
            "name": "doc",
            "type": "RhinoDoc",
            "summary": "Rhino document"
          },
          {
            "name": "viewInfo",
            "type": "ViewInfo",
            "summary": "active viewport info"
          },
          {
            "name": "displayPipelineAttributes",
            "type": "DisplayPipelineAttributes",
            "summary": "display pipeline attributes"
          }
        ]
      },
      {
        "signature": "System.Boolean DrawOpenGl()",
        "modifiers": ["public", "virtual"],
        "protected": false,
        "virtual": true,
        "since": "6.0"
      },
      {
        "signature": "System.Void GetRenderSize(out System.Int32 width, out System.Int32 height)",
        "modifiers": ["public", "abstract"],
        "protected": false,
        "virtual": false,
        "summary": "Get the current render resolution for the running render session.",
        "since": "6.0"
      },
      {
        "signature": "ViewInfo GetView()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Get ViewInfo that has been registered with this RealtimeDisplayMode instance.",
        "since": "6.0"
      },
      {
        "signature": "System.Boolean HudAllowEditMaxPasses()",
        "modifiers": ["public", "virtual"],
        "protected": false,
        "virtual": true,
        "summary": "Override to allow maximum pass editing. By default disabled.",
        "since": "6.0",
        "returns": "Return True to allow users to edit the maximum pass count."
      },
      {
        "signature": "System.String HudCustomStatusText()",
        "modifiers": ["public", "virtual"],
        "protected": false,
        "virtual": true,
        "summary": "Override to display status of the render engine.",
        "since": "6.0",
        "returns": "Status text to display"
      },
      {
        "signature": "System.Int32 HudLastRenderedPass()",
        "modifiers": ["public", "virtual"],
        "protected": false,
        "virtual": true,
        "summary": "Override to communicate the last completed pass. Can be shown in the HUD",
        "since": "6.0",
        "returns": "Last completed pass"
      },
      {
        "signature": "System.Int32 HudMaximumPasses()",
        "modifiers": ["public", "virtual"],
        "protected": false,
        "virtual": true,
        "summary": "Override to communicate the maximum passes count currently in use for the render session. Can be shown in the HUD",
        "since": "6.0",
        "returns": "Maximum passes"
      },
      {
        "signature": "System.String HudProductName()",
        "modifiers": ["public", "virtual"],
        "protected": false,
        "virtual": true,
        "summary": "Override to return the name of your product. This will be printed in the HUD.",
        "since": "6.0",
        "returns": "Name of the product."
      },
      {
        "signature": "System.Boolean HudRendererLocked()",
        "modifiers": ["public", "virtual"],
        "protected": false,
        "virtual": true,
        "summary": "Implement to support locking in the viewport",
        "since": "6.0",
        "returns": "Return True if the render engine is locked."
      },
      {
        "signature": "System.Boolean HudRendererPaused()",
        "modifiers": ["public", "virtual"],
        "protected": false,
        "virtual": true,
        "summary": "Implement to support pausing and resuming in the viewport",
        "since": "6.0",
        "returns": "Return True if the render engine is paused."
      },
      {
        "signature": "System.Boolean HudShow()",
        "modifiers": ["public", "virtual"],
        "protected": false,
        "virtual": true,
        "summary": "Override if you want to hide the HUD. Shown by default",
        "since": "6.0",
        "returns": "Return False to hide the HUD."
      },
      {
        "signature": "System.Boolean HudShowControls()",
        "modifiers": ["public", "virtual"],
        "protected": false,
        "virtual": true,
        "summary": "Show control buttons on the realtime display HUD.  By default these are shown, override this function and return False if HUD controls aren't needed.",
        "since": "6.0"
      },
      {
        "signature": "System.Boolean HudShowCustomStatusText()",
        "modifiers": ["public", "virtual"],
        "protected": false,
        "virtual": true,
        "summary": "Override to show status text in HUD. By default disabled.",
        "since": "6.0",
        "returns": "Return True to show status text in HUD"
      },
      {
        "signature": "System.Boolean HudShowMaxPasses()",
        "modifiers": ["public", "virtual"],
        "protected": false,
        "virtual": true,
        "summary": "Override to show maximum passes in HUD. By default disabled.",
        "since": "6.0",
        "returns": "Return True to show maximum passes."
      },
      {
        "signature": "System.Boolean HudShowPasses()",
        "modifiers": ["public", "virtual"],
        "protected": false,
        "virtual": true,
        "summary": "Override to show current pass in HUD. By default disabled.",
        "since": "6.0",
        "returns": "Return True to show current pass in HUD."
      },
      {
        "signature": "System.DateTime HudStartTime()",
        "modifiers": ["public", "virtual"],
        "protected": false,
        "virtual": true,
        "since": "6.0"
      },
      {
        "signature": "System.Boolean IsCompleted()",
        "modifiers": ["public", "abstract"],
        "protected": false,
        "virtual": false,
        "summary": "Implement to tell if your render engine has completed a frame for drawing into the viewport",
        "since": "6.0"
      },
      {
        "signature": "System.Boolean IsFrameBufferAvailable(ViewInfo view)",
        "modifiers": ["public", "abstract"],
        "protected": false,
        "virtual": false,
        "summary": "Implement to tell the render pipeline that a framebuffer is ready",
        "since": "6.0",
        "returns": "Return True when a framebuffer is ready. This is generally the case when StartRenderer as returned successfully."
      },
      {
        "signature": "System.Boolean IsRendererStarted()",
        "modifiers": ["public", "abstract"],
        "protected": false,
        "virtual": false,
        "summary": "Override to tell the started state of your render engine.",
        "since": "6.0",
        "returns": "True if render engine is ready and rendering"
      },
      {
        "signature": "System.Int32 LastRenderedPass()",
        "modifiers": ["public", "virtual"],
        "protected": false,
        "virtual": true,
        "summary": "Implement to communicate last completed pass to the underlying system.",
        "since": "6.0",
        "returns": "the last completed pass"
      },
      {
        "signature": "System.Boolean OnRenderSizeChanged(System.Int32 width, System.Int32 height)",
        "modifiers": ["public", "virtual"],
        "protected": false,
        "virtual": true,
        "summary": "Override to restart your render engine",
        "since": "6.0"
      },
      {
        "signature": "System.Int32 OpenGlVersion()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0"
      },
      {
        "signature": "System.Void PostConstruct()",
        "modifiers": ["public", "virtual"],
        "protected": false,
        "virtual": true,
        "summary": "Override PostConstruct if you need to initialize where the underlying RealtimeDisplayMode is available.  The connection is made right after RealtimeDisplayMode has been instantiated, but just before PostConstruct is called.  For instance finding out OpenGL information can be done in PostConstruct.",
        "since": "6.0"
      },
      {
        "signature": "System.Void SetUseDrawOpenGl(System.Boolean use)",
        "modifiers": ["public", "virtual"],
        "protected": false,
        "virtual": true,
        "summary": "During run-time change whether to use OpenGL drawing of results or not. For instance offline rendering (viewcapture* with different resolution than viewport) could use RenderWindow instead of direct OpenGL drawing.",
        "since": "6.0",
        "parameters": [
          {
            "name": "use",
            "type": "System.Boolean",
            "summary": "Set to True if OpenGL drawing is wanted, set to False if RenderWindow method is needed."
          }
        ]
      },
      {
        "signature": "System.Void SetView(ViewInfo view)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Set ViewInfo for this RealtimeDisplayMode instance.",
        "since": "6.0",
        "parameters": [
          {
            "name": "view",
            "type": "ViewInfo",
            "summary": "The ViewInfo to set for subsequent tests."
          }
        ]
      },
      {
        "signature": "System.Boolean ShowCaptureProgress()",
        "modifiers": ["public", "virtual"],
        "protected": false,
        "virtual": true,
        "summary": "Override if you want to i.e. hide the progress dialog for capture progress.",
        "since": "6.0",
        "returns": "Return True to show, False to hide"
      },
      {
        "signature": "System.Void ShutdownRenderer()",
        "modifiers": ["public", "abstract"],
        "protected": false,
        "virtual": false,
        "summary": "Override to shutdown your render engine",
        "since": "6.0"
      },
      {
        "signature": "System.Void SignalRedraw()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Use to signal the underlying pipeline a redraw is wanted. This can be used for instance when a renderer has completed a pass which should be updated in the associated viewport.",
        "since": "6.0"
      },
      {
        "signature": "System.Boolean StartRenderer(System.Int32 w, System.Int32 h, RhinoDoc doc, ViewInfo view, ViewportInfo viewportInfo, System.Boolean forCapture, RenderWindow renderWindow)",
        "modifiers": ["public", "abstract"],
        "protected": false,
        "virtual": false,
        "summary": "Override to start your render engine.  Note that before using the RenderWindow you *must* call SetSize to properly initialize the underlying DIB.",
        "since": "6.0",
        "parameters": [
          {
            "name": "w",
            "type": "System.Int32",
            "summary": "Width of resolution"
          },
          {
            "name": "h",
            "type": "System.Int32",
            "summary": "Height of resolution"
          },
          {
            "name": "doc",
            "type": "RhinoDoc",
            "summary": "Rhino document"
          },
          {
            "name": "view",
            "type": "ViewInfo",
            "summary": "active view"
          },
          {
            "name": "viewportInfo",
            "type": "ViewportInfo",
            "summary": "active viewport info"
          },
          {
            "name": "forCapture",
            "type": "System.Boolean",
            "summary": "True if renderer is started for capture purposes (ViewCaptureTo*), False for regular interactive rendering"
          },
          {
            "name": "renderWindow",
            "type": "RenderWindow",
            "summary": "RenderWindow to hold render results in."
          }
        ],
        "returns": "Return True when your render engine started correctly, False when that failed"
      },
      {
        "signature": "System.Boolean UseFastDraw()",
        "modifiers": ["public", "virtual"],
        "protected": false,
        "virtual": true,
        "summary": "Implement and return True if you want the display pipeline to not wait for IsFramebufferAvailable during the MiddleGround draw phase. This will also tell the pipeline to draw a complete middleground pass in OpenGL.",
        "since": "6.0"
      }
    ]
  },
  {
    "namespace": "Rhino.Render",
    "name": "RealtimeDisplayMode.DisplayPipelineSettingsChangedEventArgs",
    "dataType": "class",
    "baseclass": "EventArgs",
    "constructors": [
      {
        "signature": "RealtimeDisplayMode.DisplayPipelineSettingsChangedEventArgs(DisplayPipelineAttributes dpa)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0"
      }
    ],
    "properties": [
      {
        "signature": "DisplayPipelineAttributes Attributes",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get", "set"]
      }
    ]
  },
  {
    "namespace": "Rhino.Render",
    "name": "RealtimeDisplayMode.DrawMiddlegroundEventArgs",
    "dataType": "class",
    "baseclass": "EventArgs",
    "constructors": [
      {
        "signature": "RealtimeDisplayMode.DrawMiddlegroundEventArgs(DisplayPipeline dp)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0"
      }
    ],
    "properties": [
      {
        "signature": "DisplayPipeline Pipeline",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get", "set"]
      }
    ]
  },
  {
    "namespace": "Rhino.Render",
    "name": "RealtimeDisplayMode.HudMaxPassesChangedEventArgs",
    "dataType": "class",
    "baseclass": "EventArgs",
    "constructors": [
      {
        "signature": "RealtimeDisplayMode.HudMaxPassesChangedEventArgs(int mp)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0"
      }
    ],
    "properties": [
      {
        "signature": "int MaxPasses",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get", "set"]
      }
    ]
  },
  {
    "namespace": "Rhino.Render",
    "name": "RealtimeDisplayMode.InitFramebufferEventArgs",
    "dataType": "class",
    "baseclass": "EventArgs",
    "constructors": [
      {
        "signature": "RealtimeDisplayMode.InitFramebufferEventArgs(DisplayPipeline dp)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0"
      }
    ],
    "properties": [
      {
        "signature": "DisplayPipeline Pipeline",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get", "set"]
      }
    ]
  },
  {
    "namespace": "Rhino.Render",
    "name": "RealtimeDisplayModeClassInfo",
    "dataType": "class",
    "summary": "Class information obligatory for registering RealtimeDisplayMode implementations.",
    "constructors": [
      {
        "signature": "RealtimeDisplayModeClassInfo()",
        "summary": "Initializes a new instance of the RealtimeDisplayModeClassInfo class"
      }
    ],
    "properties": [
      {
        "signature": "bool DontRegisterAttributesOnStart",
        "modifiers": ["public", "virtual"],
        "protected": false,
        "virtual": true,
        "summary": "Override and return True when you don't want your class info to cause display attributes to be registered with the system.",
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "bool DrawOpenGl",
        "modifiers": ["public", "abstract"],
        "protected": false,
        "virtual": false,
        "summary": "Return True if the RealtimeDisplayMode draws its result using OpenGL. RenderWindow usage will then be skipped.",
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "Guid GUID",
        "modifiers": ["public", "abstract"],
        "protected": false,
        "virtual": false,
        "summary": "Get the RealtimeDisplayMode implementation GUID",
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "string Name",
        "modifiers": ["public", "abstract"],
        "protected": false,
        "virtual": false,
        "summary": "Get human-facing class description for RealtimeDisplayMode implementation. This string might show up in the Rhino UI.",
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "Type RealtimeDisplayModeType",
        "modifiers": ["public", "abstract"],
        "protected": false,
        "virtual": false,
        "summary": "Get the type being registered.",
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "DisplayTechnology RequiredDisplayTechnology",
        "modifiers": ["public", "virtual"],
        "protected": false,
        "virtual": true,
        "summary": "Override to return the display techonology your DisplayMode requires for the viewport to be running in.",
        "since": "8.21",
        "property": ["get"]
      }
    ]
  },
  {
    "namespace": "Rhino.Render",
    "name": "RenderChannels",
    "dataType": "class",
    "summary": "Render Channels. This corresponds to the user's settings in the Rendering panel.",
    "baseclass": "Rhino.Render.DocumentOrFreeFloatingBase",
    "interfaces": ["IDisposable"],
    "constructors": [
      {
        "signature": "RenderChannels()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Create a utility object not associated with any document.",
        "since": "8.0"
      }
    ],
    "properties": [
      {
        "signature": "Guid[] CustomList",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "7.0",
        "property": ["get", "set"]
      },
      {
        "signature": "Modes Mode",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "7.0",
        "property": ["get", "set"]
      }
    ],
    "methods": [
      {
        "signature": "System.Void CopyFrom(FreeFloatingBase src)",
        "modifiers": ["public", "override"],
        "protected": false,
        "virtual": false,
        "since": "7.0"
      },
      {
        "signature": "System.Void Dispose()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "8.0"
      }
    ],
    "events": [
      {
        "signature": "EventHandler<RenderPropertyChangedEvent> Changed",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "This event is raised when a Render Channels property value is changed.",
        "since": "7.0"
      }
    ]

  },
  {
    "namespace": "Rhino.Render",
    "name": "RenderChannels.Modes",
    "dataType": "enum",
    "summary": "Mode.",
    "values": [
      {
        "signature": "Automatic",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Render-channels are managed automatically"
      },
      {
        "signature": "Custom",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Render-channels are specified by the user"
      }
    ]

  },
  {
    "namespace": "Rhino.Render",
    "name": "RenderContent",
    "dataType": "class",
    "summary": "Base class for all RenderContent - RenderMaterial, RenderTexture and RenderEnvironment  Contents have a unique type id which is the same for all instances of the same class and an instance id which is unique for each instance.They know how to provide a shader for rendering, how to read and write their state as XML and how to create their own user interfaces.  There are two flavors of content in the RDK -- temporary and persistent.It is very important to understand the distinction between a temporary content instance and a persistent content instance, and the fact that a temporary instance (and all its children) can become persistent.Persistent content is registered with a document and is usually(but not always) owned by it.  Temporary contents get created and deleted very often during the normal operation of the RDK.In fact, just about anything the user clicks on might result in a temporary content being created and deleted again.They are created by the content browser, the thumbnail rendering, and so on.They are 'free floating' and are owned by whomever created them.They do not appear in the modeless UI, they do not get saved in the 3dm file, and they can freely be deleted again after use.  Contrast this with persistent contents which are attached to a document.They are always owned by RDK, appear in the modeless UI and get saved in the 3dm file. Pointers to persistent contents should never be stored by clients; you should only store their instance ids and look them up again using RenderContent.FromId. They can be deleted only after detaching them from the document.  RenderContent::Create is the highest-level function for creating a content.It creates it, initializes it, adds it to the document and sends many events.It even records undo.You cannot call this method from just anywhere. It must only be called by 'UI code'; scripts or buttons on a dialog.It results in a persistent (usually top-level) content being attached to the document and appearing in all the RDK UI elements that display contents, like the thumbnail and tree views.If you call this method and specify a parent and child-slot name, your new content will be attached to the document-resident parent as a child and the UI will be updated accordingly.  The important point is that everything is temporary while the content structure is being built. Only after the whole structure is complete will the top-level parent be attached to the document making the whole structure persistent.",
    "interfaces": ["IDisposable"],
    "properties": [
      {
        "signature": "bool CanBeEdited",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Determines if the content can be edited.",
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "String Category",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Category for this content.",
        "since": "6.7",
        "property": ["get"]
      },
      {
        "signature": "String ChildSlotDisplayName",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns the localized display name of the child slot name",
        "since": "7.0",
        "property": ["get"]
      },
      {
        "signature": "String ChildSlotName",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.1",
        "property": ["get", "set"]
      },
      {
        "signature": "IntPtr CppPointer",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "String DisplayName",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Display name for this content.",
        "since": "7.8",
        "property": ["get"]
      },
      {
        "signature": "RhinoDoc Document",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Obsolete. Do not use. You should use DocumentOwner instead.",
        "since": "5.10",
        "obsolete": "Use DocumentOwner",
        "property": ["get"]
      },
      {
        "signature": "RhinoDoc DocumentAssoc",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "If this render content is associated with a document in any way, the document will be returned. This includes copies of render contents that were attached to a document when the copy was made. Otherwise returns null.",
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "RhinoDoc DocumentOwner",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "If this render content is owned by a document, the document will be returned. This is the same as getting the document the render content is attached to. Otherwise returns null.",
        "since": "7.13",
        "property": ["get"]
      },
      {
        "signature": "RhinoDoc DocumentRegistered",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Obsolete. Do not use. You should use DocumentOwner instead.",
        "since": "6.0",
        "obsolete": "Use DocumentOwner",
        "property": ["get"]
      },
      {
        "signature": "FieldDictionary Fields",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Rhino.Render.Fields FieldDictionary which provides access to setting and retrieving field values.",
        "since": "5.1",
        "property": ["get"]
      },
      {
        "signature": "string Filename",
        "modifiers": ["public", "virtual"],
        "protected": false,
        "virtual": true,
        "summary": "If the content is file based, this function can be overridden to deal with setting/getting the filename.  Corresponds to IRhRdkFileBasedContent in the C++ SDK",
        "since": "7.4",
        "property": ["get", "set"]
      },
      {
        "signature": "IEnumerable<string> FilesToEmbed",
        "modifiers": ["public", "virtual"],
        "protected": false,
        "virtual": true,
        "summary": "A string array of full paths to files used by the content that may be embedded in .3dm files and library files (.rmtl, .renv, .rtex). The default implementation returns an empty string list. Override this to return the file name or file names used by your content. This is typically used by textures that reference files containing the texture imagery.",
        "since": "5.12",
        "property": ["get"]
      },
      {
        "signature": "RenderContent FirstChild",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Return First child of this content or None if none.",
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "Guid GroupId",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Group ID of the content",
        "since": "6.26",
        "property": ["get", "set"]
      },
      {
        "signature": "bool Hidden",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the render content's 'hidden' state. This feature only works for top-level render contents because it hides the entire hierarchy. It is normally used for 'implementation detail' render contents. For expert use only. Hidden render contents are never shown in the UI, with the exception of the Object (or Layer) Material Properties UI which always shows whatever is assigned to the object (or layer). In the Object (or Layer) Material Properties UI, if the user drops down the list, hidden render contents are not listed. Hidden render contents, being part of the document content list, will be listed by any scripts or other code that iterates over the document render content list. It is recommended that you set IsHidden once when you create your render content and leave it on to prevent flicker or slow performance.",
        "since": "5.1",
        "property": ["get", "set"]
      },
      {
        "signature": "Guid Id",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Instance identifier for this content.",
        "since": "5.1",
        "property": ["get", "set"]
      },
      {
        "signature": "bool IsDefaultInstance",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Checks if render content is default instance.",
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "bool IsHiddenByAutoDelete",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Contents can be created as 'auto-delete' by certain commands such as 'Picture'. These contents are automatically hidden from the user when the associated Rhino object is deleted. They are later deleted when the document is saved.",
        "since": "6.15",
        "property": ["get"]
      },
      {
        "signature": "bool IsLocked",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Set this property to True prior to adding content to the document to lock the content browser editing UI methods.  Setting this to True will keep the browser from allowing things like deleting, renaming or changing content.  This is useful for custom child content that you want to be editable but persistent.  Setting this after adding content to the document will cause an exception to be thrown.",
        "since": "5.12",
        "property": ["get", "set"]
      },
      {
        "signature": "LengthUnit ModelUnits",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Units used by this instance on length fields.",
        "since": "9.0",
        "property": ["get"]
      },
      {
        "signature": "String Name",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Instance 'raw' name for this content.",
        "since": "5.1",
        "property": ["get", "set"]
      },
      {
        "signature": "RenderContent NextSibling",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Return First sibling of this content or None if none.",
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "String Notes",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Notes for this content.",
        "since": "5.1",
        "property": ["get", "set"]
      },
      {
        "signature": "RenderContent Parent",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns the top content in this parent/child chain.",
        "since": "5.11",
        "property": ["get"]
      },
      {
        "signature": "bool Private",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "The Content type should not be shown in the UI if Private is true",
        "property": ["get"]
      },
      {
        "signature": "ProxyTypes ProxyType",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the proxy type of the render content",
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "uint RenderHash",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Render hash for the content hierarchy. It iterates over children and includes a caching mechanism which means the hash value can be retrieved quickly if it hasn't changed. The cache is invalidated when Changed() is called.  You can override the <b>CalculateRenderHash</b> method to provide a custom hash value.",
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "RenderContentStyles Styles",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "7.5",
        "property": ["get"]
      },
      {
        "signature": "String Tags",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Tags for this content.",
        "since": "6.4",
        "property": ["get", "set"]
      },
      {
        "signature": "bool TopLevel",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns True if this content has no parent, False if it is the child of another content.",
        "since": "5.1",
        "property": ["get"]
      },
      {
        "signature": "RenderContent TopLevelParent",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns the top content in this parent/child chain.",
        "since": "5.1",
        "property": ["get"]
      },
      {
        "signature": "String TypeDescription",
        "modifiers": ["public", "abstract"],
        "protected": false,
        "virtual": false,
        "summary": "Description for your content type. i.e., \"Procedural checker pattern\"",
        "since": "5.1",
        "property": ["get"]
      },
      {
        "signature": "Guid TypeId",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Type identifier for this content",
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "String TypeName",
        "modifiers": ["public", "abstract"],
        "protected": false,
        "virtual": false,
        "summary": "Name for your content type. i.e., \"My .net Texture\"",
        "since": "5.1",
        "property": ["get"]
      },
      {
        "signature": "String Xml",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get"]
      }
    ],
    "methods": [
      {
        "signature": "System.Boolean AddPersistentRenderContent(RenderContent renderContent)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Add a material, environment or texture to the internal RDK document lists as top level content.  The content must have been returned from RenderContent::MakeCopy, NewContentFromType or a similar function that returns a non-document content. Obsolete - use RhinoDoc.RenderMaterials.Add or similar.",
        "since": "5.1",
        "deprecated": "6.0",
        "obsolete": "Use RhinoDoc.RenderMaterials.Add",
        "parameters": [
          {
            "name": "renderContent",
            "type": "RenderContent",
            "summary": "The render content."
          }
        ],
        "returns": "True on success."
      },
      {
        "signature": "System.Boolean AddPersistentRenderContent(RhinoDoc document, RenderContent renderContent)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Add a material, environment or texture to the internal RDK document lists as top level content.  The content must have been returned from RenderContent::MakeCopy, NewContentFromType or a similar function that returns a non-document content. Obsolete - use RhinoDoc.RenderMaterials.Add or similar.",
        "since": "6.0",
        "deprecated": "6.0",
        "obsolete": "Use RhinoDoc.RenderMaterials.Add",
        "parameters": [
          {
            "name": "document",
            "type": "RhinoDoc",
            "summary": "The document to attach the render content to."
          },
          {
            "name": "renderContent",
            "type": "RenderContent",
            "summary": "The render content."
          }
        ],
        "returns": "True on success."
      },
      {
        "signature": "RenderContent Create(RhinoDoc doc, System.Guid type, RenderContent parent, System.String childSlotName)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Constructs a new content of the specified type and attaches it to a document. This function cannot be used to create temporary content that you delete after use. Content created by this function is owned by RDK and appears in the content editor. To create a temporary content which is owned by you, call RenderContentType.NewContentFromTypeId().",
        "since": "7.9",
        "parameters": [
          {
            "name": "doc",
            "type": "RhinoDoc",
            "summary": "The Rhino document to attach the new render content to."
          },
          {
            "name": "type",
            "type": "System.Guid",
            "summary": "The type of the content to create."
          },
          {
            "name": "parent",
            "type": "RenderContent",
            "summary": "Parent is the parent content. If not null, this must be an RDK-owned content that is attached to the document (either top-level or child). The new content then becomes its child. If null, the new content is added to the top-level document content list instead."
          },
          {
            "name": "childSlotName",
            "type": "System.String",
            "summary": "ChildSlotName is the unique child identifier to use for the new content when creating it as a child of parent (i.e., when parent is not null)"
          }
        ],
        "returns": "A new document-resident render content."
      },
      {
        "signature": "RenderContent Create(RhinoDoc doc, System.Guid type)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Constructs a new content of the specified type and attaches it to a document. This function cannot be used to create temporary content that you delete after use. Content created by this function is owned by RDK and appears in the content editor. To create a temporary content which is owned by you, call RenderContentType.NewContentFromTypeId().",
        "since": "7.9",
        "parameters": [
          {
            "name": "doc",
            "type": "RhinoDoc",
            "summary": "The Rhino document to attach the new render content to."
          },
          {
            "name": "type",
            "type": "System.Guid",
            "summary": "The type of the content to create."
          }
        ],
        "returns": "A new document-resident render content."
      },
      {
        "signature": "RenderContent Create(RhinoDoc doc, System.Type type, RenderContent parent, System.String childSlotName)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Constructs a new content of the specified type and attaches it to a document. This function cannot be used to create temporary content that you delete after use. Content created by this function is owned by RDK and appears in the content editor. To create a temporary content which is owned by you, call RenderContentType.NewContentFromTypeId().",
        "since": "7.9",
        "parameters": [
          {
            "name": "doc",
            "type": "RhinoDoc",
            "summary": "The Rhino document to attach the new render content to."
          },
          {
            "name": "type",
            "type": "System.Type",
            "summary": "The type of the content to create."
          },
          {
            "name": "parent",
            "type": "RenderContent",
            "summary": "The parent content. If not null, this must be an RDK-owned content that is attached to the document (either top-level or child). The new content then becomes its child. If null, the new content is added to the top-level document content list instead."
          },
          {
            "name": "childSlotName",
            "type": "System.String",
            "summary": "ChildSlotName is the unique child identifier to use for the new content when creating it as a child of parent (i.e., when parent is not null)"
          }
        ],
        "returns": "A new document-resident render content."
      },
      {
        "signature": "RenderContent Create(RhinoDoc doc, System.Type type)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Constructs a new content of the specified type and attaches it to a document. This function cannot be used to create temporary content that you delete after use. Content created by this function is owned by RDK and appears in the content editor. To create a temporary content which is owned by you, call RenderContentType.NewContentFromTypeId().",
        "since": "7.9",
        "parameters": [
          {
            "name": "doc",
            "type": "RhinoDoc",
            "summary": "The Rhino document to attach the new render content to."
          },
          {
            "name": "type",
            "type": "System.Type",
            "summary": "The type of the content to create."
          }
        ],
        "returns": "A new document-resident render content."
      },
      {
        "signature": "RenderContent Create(System.Guid type, RenderContent parent, System.String childSlotName, ShowContentChooserFlags flags, RhinoDoc doc)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Constructs a new content of the specified type and attaches it to a document. This function cannot be used to create temporary content that you delete after use. Content created by this function is owned by RDK and appears in the content editor. To create a temporary content which is owned by you, call RenderContentType.NewContentFromTypeId().",
        "since": "5.1",
        "deprecated": "7.9",
        "parameters": [
          {
            "name": "type",
            "type": "System.Guid",
            "summary": "The type of the content to create."
          },
          {
            "name": "parent",
            "type": "RenderContent",
            "summary": "Parent is the parent content. If not null, this must be an RDK-owned content that is attached to the document (either top-level or child). The new content then becomes its child. If null, the new content is added to the top-level document content list instead."
          },
          {
            "name": "childSlotName",
            "type": "System.String",
            "summary": "ChildSlotName is the unique child identifier to use for the new content when creating it as a child of parent (i.e., when parent is not null)"
          },
          {
            "name": "flags",
            "type": "ShowContentChooserFlags",
            "summary": "Flags for future use (please always pass ShowContentChooserFlags::None)."
          },
          {
            "name": "doc",
            "type": "RhinoDoc",
            "summary": "The Rhino document to attach the new render content to."
          }
        ],
        "returns": "A new document-resident render content."
      },
      {
        "signature": "RenderContent Create(System.Guid type, ShowContentChooserFlags flags, RhinoDoc doc)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Constructs a new content of the specified type and attaches it to a document. This function cannot be used to create temporary content that you delete after use. Content created by this function is owned by RDK and appears in the content editor. To create a temporary content which is owned by you, call RenderContentType.NewContentFromTypeId().",
        "since": "5.1",
        "deprecated": "7.9",
        "parameters": [
          {
            "name": "type",
            "type": "System.Guid",
            "summary": "The type of the content to create."
          },
          {
            "name": "flags",
            "type": "ShowContentChooserFlags",
            "summary": "Flags for future use (please always pass ShowContentChooserFlags::None)."
          },
          {
            "name": "doc",
            "type": "RhinoDoc",
            "summary": "The Rhino document to attach the new render content to."
          }
        ],
        "returns": "A new document-resident render content."
      },
      {
        "signature": "RenderContent Create(System.Type type, RenderContent parent, System.String childSlotName, ShowContentChooserFlags flags, RhinoDoc doc)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Constructs a new content of the specified type and attaches it to a document. This function cannot be used to create temporary content that you delete after use. Content created by this function is owned by RDK and appears in the content editor. To create a temporary content which is owned by you, call RenderContentType.NewContentFromTypeId().",
        "since": "5.1",
        "deprecated": "7.9",
        "parameters": [
          {
            "name": "type",
            "type": "System.Type",
            "summary": "The type of the content to create."
          },
          {
            "name": "parent",
            "type": "RenderContent",
            "summary": "The parent content. If not null, this must be an RDK-owned content that is attached to the document (either top-level or child). The new content then becomes its child. If null, the new content is added to the top-level document content list instead."
          },
          {
            "name": "childSlotName",
            "type": "System.String",
            "summary": "ChildSlotName is the unique child identifier to use for the new content when creating it as a child of parent (i.e., when parent is not null)"
          },
          {
            "name": "flags",
            "type": "ShowContentChooserFlags",
            "summary": "Flags for future use (please always pass ShowContentChooserFlags::None)."
          },
          {
            "name": "doc",
            "type": "RhinoDoc",
            "summary": "The Rhino document to attach the new render content to."
          }
        ],
        "returns": "A new document-resident render content."
      },
      {
        "signature": "RenderContent Create(System.Type type, ShowContentChooserFlags flags, RhinoDoc doc)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Constructs a new content of the specified type and attaches it to a document. This function cannot be used to create temporary content that you delete after use. Content created by this function is owned by RDK and appears in the content editor. To create a temporary content which is owned by you, call RenderContentType.NewContentFromTypeId().",
        "since": "5.1",
        "deprecated": "7.9",
        "parameters": [
          {
            "name": "type",
            "type": "System.Type",
            "summary": "The type of the content to create."
          },
          {
            "name": "flags",
            "type": "ShowContentChooserFlags",
            "summary": "Flags for future use (please always pass ShowContentChooserFlags::None)."
          },
          {
            "name": "doc",
            "type": "RhinoDoc",
            "summary": "The Rhino document to attach the new render content to."
          }
        ],
        "returns": "A new document-resident render content."
      },
      {
        "signature": "RenderContent FromId(RhinoDoc document, System.Guid id)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Search for a content object based on its Id",
        "since": "5.7",
        "parameters": [
          {
            "name": "document",
            "type": "RhinoDoc",
            "summary": "The Rhino document containing the content."
          },
          {
            "name": "id",
            "type": "System.Guid",
            "summary": "Id of the content instance to search for."
          }
        ],
        "returns": "Returns the content object with the specified Id if it is found otherwise it returns null."
      },
      {
        "signature": "RenderContent FromXml(System.String xml, RhinoDoc doc)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Creates a new content from the XML data.  The resulting content will not be attached to the document.",
        "since": "6.4",
        "parameters": [
          {
            "name": "xml",
            "type": "System.String",
            "summary": "The input XML data."
          },
          {
            "name": "doc",
            "type": "RhinoDoc",
            "summary": "The document that the content will be associated with for units, linear workflow purposes."
          }
        ]
      },
      {
        "signature": "RenderContent FromXml(System.String xml)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "deprecated": "6.4",
        "obsolete": "Use other FromXml method"
      },
      {
        "signature": "System.Drawing.Bitmap GenerateQuickContentPreview(LinearWorkflow lw, RenderContent c, System.Int32 width, System.Int32 height, PreviewSceneServer psc, System.Boolean bSuppressLocalMapping, System.Int32 reason, ref Rhino.Commands.Result result)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Generate a quick render content preview",
        "since": "8.16",
        "parameters": [
          {
            "name": "lw",
            "type": "LinearWorkflow",
            "summary": "Linear workflow"
          },
          {
            "name": "c",
            "type": "RenderContent",
            "summary": "Render Content"
          },
          {
            "name": "width",
            "type": "System.Int32",
            "summary": "Image width"
          },
          {
            "name": "height",
            "type": "System.Int32",
            "summary": "Image height"
          },
          {
            "name": "psc",
            "type": "PreviewSceneServer",
            "summary": "PreviewSceneServer"
          },
          {
            "name": "bSuppressLocalMapping",
            "type": "System.Boolean",
            "summary": "SuppressLocalMapping"
          },
          {
            "name": "reason",
            "type": "System.Int32",
            "summary": "ContentChanged = 0, ViewChanged = 1, RefreshDisplay = 2, Other = 99"
          },
          {
            "name": "result",
            "type": "Rhino.Commands.Result",
            "summary": "Rhino.Command.Result value for successfull quick image creation"
          }
        ],
        "returns": "The Bitmap of the quick render content preview"
      },
      {
        "signature": "System.Drawing.Bitmap GenerateQuickContentPreview(RenderContent c, System.Int32 width, System.Int32 height, PreviewSceneServer psc, System.Boolean bSuppressLocalMapping, System.Int32 reason, ref Rhino.Commands.Result result)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Generate a quick render content preview",
        "since": "8.9",
        "parameters": [
          {
            "name": "c",
            "type": "RenderContent",
            "summary": "Render Content"
          },
          {
            "name": "width",
            "type": "System.Int32",
            "summary": "Image width"
          },
          {
            "name": "height",
            "type": "System.Int32",
            "summary": "Image height"
          },
          {
            "name": "psc",
            "type": "PreviewSceneServer",
            "summary": "PreviewSceneServer"
          },
          {
            "name": "bSuppressLocalMapping",
            "type": "System.Boolean",
            "summary": "SuppressLocalMapping"
          },
          {
            "name": "reason",
            "type": "System.Int32",
            "summary": "ContentChanged = 0, ViewChanged = 1, RefreshDisplay = 2, Other = 99"
          },
          {
            "name": "result",
            "type": "Rhino.Commands.Result",
            "summary": "Rhino.Command.Result value for successfull quick image creation"
          }
        ],
        "returns": "The Bitmap of the quick render content preview"
      },
      {
        "signature": "System.Drawing.Bitmap GenerateRenderContentPreview(LinearWorkflow lwf, RenderContent c, System.Int32 width, System.Int32 height, System.Boolean bSuppressLocalMapping, PreviewJobSignature pjs, PreviewAppearance pa, ref Utilities.PreviewRenderResult result)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Generate a render content preview",
        "since": "8.9",
        "parameters": [
          {
            "name": "lwf",
            "type": "LinearWorkflow",
            "summary": "Linear Workflow"
          },
          {
            "name": "c",
            "type": "RenderContent",
            "summary": "Render Content"
          },
          {
            "name": "width",
            "type": "System.Int32",
            "summary": "Image width"
          },
          {
            "name": "height",
            "type": "System.Int32",
            "summary": "Image height"
          },
          {
            "name": "bSuppressLocalMapping",
            "type": "System.Boolean",
            "summary": "Suppress Local Mapping"
          },
          {
            "name": "pjs",
            "type": "PreviewJobSignature",
            "summary": "Preivew Job Signature"
          },
          {
            "name": "pa",
            "type": "PreviewAppearance",
            "summary": "Preivew Appearance"
          },
          {
            "name": "result",
            "type": "Utilities.PreviewRenderResult",
            "summary": "Reference to PreviewRenderResult value"
          }
        ],
        "returns": "The Bitmap of the render content preview"
      },
      {
        "signature": "RenderContent LoadFromFile(System.String filename)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Loads content from a library file.  Does not add the content to the document.  Use RhinoDoc.RenderMaterials.Add or similar.",
        "since": "5.1",
        "parameters": [
          {
            "name": "filename",
            "type": "System.String",
            "summary": "full path to the file to be loaded."
          }
        ],
        "returns": "The loaded content or None if an error occurred."
      },
      {
        "signature": "System.Type[] RegisterContent(PlugIns.PlugIn plugin)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Call RegisterContent in your plug-in's OnLoad function in order to register all of the custom RenderContent classes in your assembly.",
        "since": "5.1",
        "returns": "array of render content types registered on success. None on error."
      },
      {
        "signature": "System.Type[] RegisterContent(System.Reflection.Assembly assembly, System.Guid pluginId)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Call RegisterContent in your plug-in's OnLoad function in order to register all of the custom RenderContent classes in your assembly.",
        "since": "5.1",
        "parameters": [
          {
            "name": "assembly",
            "type": "System.Reflection.Assembly",
            "summary": "Assembly where custom content is defined, this may be a plug-in assembly or another assembly referenced by the plug-in."
          },
          {
            "name": "pluginId",
            "type": "System.Guid",
            "summary": "Parent plug-in for this assembly."
          }
        ],
        "returns": "array of render content types registered on success. None on error."
      },
      {
        "signature": "System.Boolean ShowContentInstanceBrowser(RhinoDoc doc, ref System.Guid instance_id, RenderContentKind kinds, ContentInstanceBrowserButtons buttons)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Allows the user to choose a content by displaying the Content Instance Browser dialog. The dialog will have OK, Cancel and Help buttons, and optional New and Edit buttons. Specifies the document to use.Sets the initially selected content and receives the instance id of the chosen content.Specifies the kind(s) of content that should be displayed in the browser.Specifies which optional buttons to display. Returns True if the user chooses a content or False if the dialog is cancelled.",
        "since": "8.15",
        "parameters": [
          {
            "name": "doc",
            "type": "RhinoDoc",
            "summary": "Specifies the document to use."
          },
          {
            "name": "instance_id",
            "type": "System.Guid",
            "summary": "Sets the initially selected content and receives the instance id of the chosen content."
          },
          {
            "name": "kinds",
            "type": "RenderContentKind",
            "summary": "Specifies the kind(s) of content that should be displayed in the browser."
          },
          {
            "name": "buttons",
            "type": "ContentInstanceBrowserButtons",
            "summary": "Specifies which optional buttons to display."
          }
        ]
      },
      {
        "signature": "System.Boolean AddAutomaticUserInterfaceSection(System.String caption, System.Int32 id)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Add a new automatic user interface section, Field values which include prompts will be automatically added to this section.",
        "since": "5.1",
        "parameters": [
          {
            "name": "caption",
            "type": "System.String",
            "summary": "Expandable tab caption."
          },
          {
            "name": "id",
            "type": "System.Int32",
            "summary": "Tab id which may be used later on to reference this tab."
          }
        ],
        "returns": "Returns True if the automatic tab section was added otherwise; returns False on error."
      },
      {
        "signature": "System.Boolean AddChild(RenderContent renderContent, System.String childSlotName)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "deprecated": "6.0",
        "obsolete": "This method is obsolete and simply calls SetChild"
      },
      {
        "signature": "System.Boolean AddChild(RenderContent renderContent)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.6",
        "deprecated": "6.0",
        "obsolete": "This method is obsolete and simply calls SetChild"
      },
      {
        "signature": "System.Boolean AddUserInterfaceSection(Rhino.UI.Controls.ICollapsibleSection section)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0"
      },
      {
        "signature": "UI.UserInterfaceSection AddUserInterfaceSection(System.Type classType, System.String caption, System.Boolean createExpanded, System.Boolean createVisible)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Add a new .NET control to an content expandable tab section, the height of the createExpanded tabs client area will be the initial height of the specified control.",
        "since": "5.1",
        "deprecated": "6.0",
        "parameters": [
          {
            "name": "classType",
            "type": "System.Type",
            "summary": "The control class to create and embed as a child window in the expandable tab client area.  This class type must be derived from IWin32Window or this method will throw an ArgumentException.  Implement the IUserInterfaceSection interface in your classType to get UserInterfaceSection notification."
          },
          {
            "name": "caption",
            "type": "System.String",
            "summary": "Expandable tab caption."
          },
          {
            "name": "createExpanded",
            "type": "System.Boolean",
            "summary": "If this value is True then the new expandable tab section will initially be expanded, if it is False it will be collapsed."
          },
          {
            "name": "createVisible",
            "type": "System.Boolean",
            "summary": "If this value is True then the new expandable tab section will initially be visible, if it is False it will be hidden."
          }
        ],
        "returns": "Returns the UserInterfaceSection object used to manage the new user control object."
      },
      {
        "signature": "System.Void BeginChange(ChangeContexts changeContext)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Begins a change or batch of changes. It may also make a copy of the content state allowing <b>EndChange</b> to send an event with the old and new contents. Calls to this method are counted; you must call EndChange() once for every call to BeginChange(). Note: If Changed() was called between the calls to BeginChange() and EndChange(), the last call to EndChange() may cause the ContentChanged event to be sent.",
        "since": "6.0",
        "parameters": [
          {
            "name": "changeContext",
            "type": "ChangeContexts",
            "summary": "the change context. If this is ChangeContexts.UI, ChangeContexts.Program,ChangeContexts.Drop or ChangeContexts.Tree, the content will be copied. EndChange() will then send the copy as 'old' in the OnContentChanged event.  <b>EndChange</b>  <b>ContentChanged</b>"
          }
        ]
      },
      {
        "signature": "System.Void BeginCreateDynamicFields(System.Boolean automatic)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Automatic Dynamic Field support. Dynamic fields are typically created in the constructor of RenderContent and they are therefore created automatically whenever the content is created. However, some advanced users require the fields to be created in response to some user action which occurs much later. This creates the problem that the fields do not exist by default and therefore cannot be loaded when the document is loaded. These methods are provided to solve that problem by making it possible to automatically create the dynamic fields on loading if they don't already exist. Dynamic fields that have this auto-create-on-load behavior are referred to as automatic dynamic fields. Dynamic fields that do not require the advanced automatic feature can still be created by using these methods (recommended), or they can be created manually (legacy usage). You must call this before creating any dynamic fields. Calls to this method are counted; you must call EndCreateDynamicFields() once for every call to BeginCreateDynamicFields().",
        "since": "7.1",
        "parameters": [
          {
            "name": "automatic",
            "type": "System.Boolean",
            "summary": "automatic specifies if the dynamic fields are automatic. If so, they will be created automatically during loading of the document."
          }
        ]
      },
      {
        "signature": "System.Void BindParameterToField(System.String parameterName, Field field, ChangeContexts setEvent)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Use bindings to automatically wire parameters to fields",
        "since": "5.7"
      },
      {
        "signature": "System.Void BindParameterToField(System.String parameterName, System.String childSlotName, Field field, ChangeContexts setEvent)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Use bindings to automatically wire parameters to fields",
        "since": "5.7"
      },
      {
        "signature": "System.UInt32 CalculateRenderHash(System.UInt64 rcrcFlags)",
        "modifiers": ["protected", "virtual"],
        "protected": true,
        "virtual": true,
        "summary": "Override this method to calculate the render hash of the state that affects how the content is rendered.  Does not include children or perform any caching. Render hash values are now automatically cached by the content framework and you do not have to worry about caching. You also do not have to worry about iterating into children.  This method is now only called internally by the framework, use the RenderHash property to get the current hash value.",
        "obsolete": "Use CalculateRenderHash2"
      },
      {
        "signature": "System.UInt32 CalculateRenderHash2(CrcRenderHashFlags flags, System.String[] excludeParameterNames)",
        "modifiers": ["protected", "virtual"],
        "protected": true,
        "virtual": true
      },
      {
        "signature": "System.Boolean ChangeChild(RenderContent oldContent, RenderContent newContent)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.6",
        "deprecated": "6.0",
        "obsolete": "This method is obsolete and simply calls SetChild"
      },
      {
        "signature": "System.Double ChildSlotAmount(System.String childSlotName)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the amount property for the texture in the specified child slot.",
        "since": "5.7",
        "parameters": [
          {
            "name": "childSlotName",
            "type": "System.String",
            "summary": "The child slot name of the texture."
          }
        ],
        "returns": "The requested amount value. Values are typically from 0.0 to 100.0"
      },
      {
        "signature": "System.String ChildSlotNameFromParamName(System.String paramName)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "A \"child slot\" is the specific \"slot\" that a child (usually a texture) occupies. This is generally the \"use\" of the child - in other words, the thing the child operates on.  Some examples are \"color\", \"transparency\".",
        "since": "5.1",
        "parameters": [
          {
            "name": "paramName",
            "type": "System.String",
            "summary": "The name of a parameter field. Since child textures will usually correspond with some parameter (they generally either replace or modify a parameter over UV space) these functions are used to specify which parameter corresponded with child slot.  If there is no correspondence, return the empty string."
          }
        ],
        "returns": "The default behavior for these functions is to return the input string. Sub-classes may (in the future) override these functions to provide different mappings."
      },
      {
        "signature": "System.Boolean ChildSlotOn(System.String childSlotName)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the on-ness property for the texture in the specified child slot.",
        "since": "5.7",
        "parameters": [
          {
            "name": "childSlotName",
            "type": "System.String",
            "summary": "The child slot name of the texture."
          }
        ],
        "returns": "True if successful, else false."
      },
      {
        "signature": "System.Void ConvertUnits(LengthUnit from, LengthUnit to)",
        "modifiers": ["public", "virtual"],
        "protected": false,
        "virtual": true,
        "summary": "Modify your content so that it is converted from meters into the units of the unit system. No need to call the base class when you override this, and no need to recurse into children.",
        "since": "9.0"
      },
      {
        "signature": "System.Void ConvertUnits(UnitSystem from, UnitSystem to)",
        "modifiers": ["public", "virtual"],
        "protected": false,
        "virtual": true,
        "summary": "Modify your content so that it is converted from meters into the units of the unit system. No need to call the base class when you override this, and no need to recurse into children.",
        "since": "7.0",
        "deprecated": "9.0",
        "obsolete": "Since 9.0. Use ConvertUnits with LengthUnit instead, and don't override this virtual function"
      },
      {
        "signature": "System.Boolean CreateDynamicField(System.String internalName, System.String localName, System.String englishName, System.Object value, System.Object minValue, System.Object maxValue, System.Int32 sectionId)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Create a dynamic field with an initial value and min and max limits.",
        "since": "7.1",
        "parameters": [
          {
            "name": "internalName",
            "type": "System.String",
            "summary": "is the internal name of the field. Not localized."
          },
          {
            "name": "localName",
            "type": "System.String",
            "summary": "is the localized user-friendly name of the field."
          },
          {
            "name": "englishName",
            "type": "System.String",
            "summary": "is the English user-friendly name of the field."
          },
          {
            "name": "value",
            "type": "System.Object",
            "summary": "is the initial value of the field."
          },
          {
            "name": "minValue",
            "type": "System.Object",
            "summary": "is the minimum value of the field. Must be the same type as vValue."
          },
          {
            "name": "maxValue",
            "type": "System.Object",
            "summary": "is the maximum value of the field. Must be the same type as vValue."
          },
          {
            "name": "sectionId",
            "type": "System.Int32",
            "summary": "is used for filtering fields between sections. Zero if not needed."
          }
        ]
      },
      {
        "signature": "System.Void DeleteAllChildren(ChangeContexts changeContexts)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.10"
      },
      {
        "signature": "System.Boolean DeleteChild(System.String childSlotName, ChangeContexts changeContexts)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.10"
      },
      {
        "signature": "System.Void Dispose()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.1"
      },
      {
        "signature": "System.Void Dispose(System.Boolean disposing)",
        "modifiers": ["protected", "virtual"],
        "protected": true,
        "virtual": true,
        "summary": "Dispose"
      },
      {
        "signature": "System.Boolean DynamicIcon(Size size, out Bitmap bitmap, DynamicIconUsage usage)",
        "modifiers": ["virtual", "public"],
        "protected": false,
        "virtual": true,
        "since": "6.0"
      },
      {
        "signature": "RenderContent Edit()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "This method allows a render content hierarchy to be edited using a modal (AKA 'pop-up') editor. If the original render content is in a document, it will remain there, and the edited one will be 'free-floating'. Therefore it is the caller's responsibility to do any replacement in the document if required. The returned new content will be owned by the caller.",
        "since": "6.13",
        "returns": "Returns an edited version of the content hierarchy if successful, else null. The method always edits the entire hierarchy. It places a copy of the hierarchy in the editor and selects the copied item that corresponds to this one. Therefore, editing a child will return a top-level render content, not a child."
      },
      {
        "signature": "System.Void EndChange()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Ends a change or batch of changes. Calls to this method are counted; you must call this method once for every call to <b>BeginChange</b> . Note: If <b>BeginChange</b> was called with ChangeContexts.UI, ChangeContexts.Program, ChangeContexts.Drop or ChangeContexts.UI.Tree and Changed() was called between the calls to <b>BeginChange</b> and EndChange(), the last call to EndChange() will raise the <b>ContentChanged</b> event.",
        "since": "6.0"
      },
      {
        "signature": "System.Void EndCreateDynamicFields()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "You must call this after creating dynamic fields. Calls to this method are counted; you must call BeginCreateDynamicFields() once for every call to EndCreateDynamicFields().",
        "since": "7.1"
      },
      {
        "signature": "DataSources.ContentFactory Factory()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.10"
      },
      {
        "signature": "RenderContent FindChild(System.String childSlotName)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.1"
      },
      {
        "signature": "RenderContent ForDisplay()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "**** This method is for proxies and will be marked obsolete in the future ****  The only place a single proxy can be displayed is in the New Content Control main thumbnail. All other attempts to use a single proxy in a UI require it to be replaced with the corresponding multi proxy. Single proxies override this to find the corresponding multi proxy.",
        "since": "6.9",
        "returns": "The render content."
      },
      {
        "signature": "System.Object GetChildSlotParameter(System.String contentParameterName, System.String extraRequirementParameter)",
        "modifiers": ["public", "virtual"],
        "protected": false,
        "virtual": true,
        "summary": "Extra requirements are a way of specifying extra functionality on parameters in the automatic UI. Override this function to specify additional functionality for automatic UI sections or the texture summary. See IAutoUIExtraRequirements.h in the C++ RDK SDK for string definitions for the parameter names. Call the base class from your override if you do not support the extra requirement parameter. Please do not call this function. It is only retained for backward compatibility. You should instead call GetExtraRequirementParameter().",
        "since": "5.7",
        "parameters": [
          {
            "name": "contentParameterName",
            "type": "System.String",
            "summary": "The parameter or field internal name to which this query applies."
          },
          {
            "name": "extraRequirementParameter",
            "type": "System.String",
            "summary": "The extra requirement parameter, as listed in IAutoUIExtraRequirements.h in the C++ RDK SDK."
          }
        ],
        "returns": "The value of the requested extra requirement parameter or None if the parameter does not exist. Current supported return values are (int, bool, float, double, string, Guid, Color, Vector3d, Point3d, DateTime)."
      },
      {
        "signature": "System.String[] GetEmbeddedFilesList()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0"
      },
      {
        "signature": "System.Object GetExtraRequirementParameter(System.String contentParameterName, System.String extraRequirementParameter)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Extra requirements are a way of specifying extra functionality on parameters in the automatic UI. See IAutoUIExtraRequirements.h in the C++ RDK SDK for string definitions for the parameter names.",
        "since": "7.9",
        "parameters": [
          {
            "name": "contentParameterName",
            "type": "System.String",
            "summary": "The parameter or field internal name to which this query applies."
          },
          {
            "name": "extraRequirementParameter",
            "type": "System.String",
            "summary": "The extra requirement parameter, as listed in IAutoUIExtraRequirements.h in the C++ RDK SDK."
          }
        ],
        "returns": "The value of the requested extra requirement parameter or None if the parameter does not exist. Current supported return values are (int, bool, float, double, string, Guid, Color, Vector3d, Point3d, DateTime)."
      },
      {
        "signature": "System.Object GetParameter(System.String parameterName)",
        "modifiers": ["public", "virtual"],
        "protected": false,
        "virtual": true,
        "summary": "Query the content instance for the value of a given named parameter. If you do not support this parameter, call the base class.",
        "since": "5.7",
        "parameters": [
          {
            "name": "parameterName",
            "type": "System.String",
            "summary": "Name of the parameter"
          }
        ],
        "returns": "IConvertible. Note that you can't directly cast from object, instead you have to use the Convert mechanism."
      },
      {
        "signature": "System.UInt64 GetUiHash()",
        "modifiers": ["public", "virtual"],
        "protected": false,
        "virtual": true,
        "summary": "This allows a content to have more than one UI for the same content type.",
        "since": "7.1",
        "returns": "Default is zero and is ignored."
      },
      {
        "signature": "System.Boolean GetUnderlyingInstances(RenderContentCollection collection)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "7.0"
      },
      {
        "signature": "System.Boolean Icon(Size size, out Bitmap bitmap)",
        "modifiers": ["virtual", "public"],
        "protected": false,
        "virtual": true,
        "since": "6.0"
      },
      {
        "signature": "System.Boolean Initialize()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.1",
        "deprecated": "7.2",
        "obsolete": "This method should not be called."
      },
      {
        "signature": "System.Boolean IsCompatible(System.Guid renderEngineId)",
        "modifiers": ["public", "virtual"],
        "protected": false,
        "virtual": true,
        "since": "6.0"
      },
      {
        "signature": "System.Boolean IsContentTypeAcceptableAsChild(System.Guid type, System.String childSlotName)",
        "modifiers": ["public", "virtual"],
        "protected": false,
        "virtual": true,
        "since": "6.0"
      },
      {
        "signature": "System.Boolean IsFactoryProductAcceptableAsChild(DataSources.ContentFactory factory, System.String childSlotName)",
        "modifiers": ["public", "virtual"],
        "protected": false,
        "virtual": true,
        "since": "6.1"
      },
      {
        "signature": "System.Boolean IsFactoryProductAcceptableAsChild(System.Guid kindId, System.String factoryKind, System.String childSlotName)",
        "modifiers": ["virtual", "public"],
        "protected": false,
        "virtual": true,
        "summary": "Override this method to restrict the type of acceptable child content. The default implementation of this method returns True if the factory kind is 'texture'.",
        "since": "5.11",
        "returns": "Return True only if content with the specified kindId can be accepted as a child in the specified child slot."
      },
      {
        "signature": "System.Boolean IsReference()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Query whether or not the content or any of its ancestors is a reference content.",
        "since": "6.9",
        "returns": "True if the content is a reference, else false"
      },
      {
        "signature": "System.Boolean IsRenderHashCached()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "This method is deprecated and no longer called. For more information see <b>CalculateRenderHash</b>",
        "since": "6.0",
        "deprecated": "6.0",
        "obsolete": "This method is deprecated and no longer called. For more information see CalculateRenderHash",
        "returns": "bool"
      },
      {
        "signature": "RenderContent MakeCopy()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Create a copy of the render content. All content is the same, except for the instance Id.",
        "since": "6.0",
        "returns": "The new RenderContent"
      },
      {
        "signature": "RenderContent MakeGroupInstance()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Create an 'instance' of the content hierarchy and group the new hierarchy with this hierarchy. If the instance is subsequently attached to the same document, the state of all members of the group will be kept synchronized. With the exception of the instance ids, all state is exactly preserved in the new instance hierarchy. \\note The grouping will have no effect until the new instance is attached to the same document.",
        "since": "6.26",
        "returns": "A grouped instance of the content hierarchy."
      },
      {
        "signature": "MatchDataResult MatchData(RenderContent oldContent)",
        "modifiers": ["public", "virtual"],
        "protected": false,
        "virtual": true,
        "summary": "Implement to transfer data from another content to this content during creation.",
        "since": "6.0",
        "parameters": [
          {
            "name": "oldContent",
            "type": "RenderContent",
            "summary": "An old content object from which the implementation may harvest data."
          }
        ],
        "returns": "Information about how much data was matched."
      },
      {
        "signature": "System.Void ModifyRenderContentStyles(RenderContentStyles stylesToAdd, RenderContentStyles stylesToRemove)",
        "modifiers": ["protected"],
        "protected": true,
        "virtual": false,
        "summary": "ModifyRenderContentStyles"
      },
      {
        "signature": "PreviewSceneServer NewPreviewSceneServer(SceneServerData ssd)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the PreviewSceneServer of the content",
        "since": "6.0",
        "parameters": [
          {
            "name": "ssd",
            "type": "SceneServerData",
            "summary": "SceneServerData"
          }
        ]
      },
      {
        "signature": "System.Void OnAddUserInterfaceSections()",
        "modifiers": ["protected", "virtual"],
        "protected": true,
        "virtual": true,
        "summary": "Override to provide UI sections to display in the editor."
      },
      {
        "signature": "System.Boolean OnGetDefaultsInteractive()",
        "modifiers": ["protected", "virtual"],
        "protected": true,
        "virtual": true,
        "summary": "Override this method to prompt user for information necessary to create a new content object.  For example, if you are created a textured material you may prompt the user for a bitmap file name prior to creating the textured material.",
        "returns": "If True is returned the content is created otherwise the creation is aborted."
      },
      {
        "signature": "System.Void OnMakeCopy(ref RenderContent newContent)",
        "modifiers": ["protected", "virtual"],
        "protected": true,
        "virtual": true,
        "summary": "Override this function to supplement the standard copying behavour for your RenderContent.",
        "parameters": [
          {
            "name": "newContent",
            "type": "RenderContent",
            "summary": "Is the content that will be returned from MakeCopy."
          }
        ]
      },
      {
        "signature": "System.Boolean OpenInEditor()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Call this method to open the content in the relevant thumbnail editor and select it for editing by the user. The content must be in the document or the call will fail.",
        "since": "5.7",
        "returns": "Returns True on success or False on error."
      },
      {
        "signature": "System.Boolean OpenInModalEditor()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Call this method to open the content in the a modal version of the editor. The content must be in the document or the call will fail.",
        "since": "5.7",
        "deprecated": "6.13",
        "obsolete": "Obsolete, use Edit a version that returns a RenderContent\", false",
        "returns": "Returns True on success or False on error."
      },
      {
        "signature": "System.String ParamNameFromChildSlotName(System.String childSlotName)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "A \"child slot\" is the specific \"slot\" that a child (usually a texture) occupies. This is generally the \"use\" of the child - in other words, the thing the child operates on.  Some examples are \"color\", \"transparency\".",
        "since": "5.1",
        "parameters": [
          {
            "name": "childSlotName",
            "type": "System.String",
            "summary": "The named of the child slot to receive the parameter name for."
          }
        ],
        "returns": "The default behavior for these functions is to return the input string.  Sub-classes may (in the future) override these functions to provide different mappings."
      },
      {
        "signature": "System.UInt32 RenderHashExclude(CrcRenderHashFlags flags, System.String excludeParameterNames, LinearWorkflow lw)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "As RenderHash, but allows you to specify flags and exclude specific parameters. Use this version of the function to calculate a render hash when you have the linear workflow information and you are not running on the main thread. Access to LinearWorkflow data requires document access. CrcRenderHashFlags.ExcludeLinearWorkflow must be specified.",
        "since": "6.2",
        "parameters": [
          {
            "name": "flags",
            "type": "CrcRenderHashFlags",
            "summary": "Flags to finely control the render hash."
          },
          {
            "name": "excludeParameterNames",
            "type": "System.String",
            "summary": "Semicolon-delimited string of parameter names to exclude."
          },
          {
            "name": "lw",
            "type": "LinearWorkflow",
            "summary": "Linear Workflow to use."
          }
        ],
        "returns": "The render hash."
      },
      {
        "signature": "System.UInt32 RenderHashExclude(CrcRenderHashFlags flags, System.String excludeParameterNames)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "As RenderHash, but allows you to specify flags and exclude specific parameters.",
        "since": "6.2",
        "parameters": [
          {
            "name": "flags",
            "type": "CrcRenderHashFlags",
            "summary": "Flags to finely control the render hash."
          },
          {
            "name": "excludeParameterNames",
            "type": "System.String",
            "summary": "Semicolon-delimited string of parameter names to exclude."
          }
        ],
        "returns": "The render hash."
      },
      {
        "signature": "System.UInt32 RenderHashExclude(TextureRenderHashFlags flags, System.String excludeParameterNames)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "This method is deprecated in favor of the one that takes CrcRenderHashFlags.",
        "since": "6.0",
        "deprecated": "8.0"
      },
      {
        "signature": "System.Boolean Replace(RenderContent newcontent)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.13"
      },
      {
        "signature": "System.Boolean SaveToFile(System.String filename, EmbedFilesChoice embedFilesChoice)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Saves content to a file - RMTL, RENV or RTEX.",
        "since": "8.6",
        "parameters": [
          {
            "name": "filename",
            "type": "System.String",
            "summary": "Full path to the file to be saved."
          },
          {
            "name": "embedFilesChoice",
            "type": "EmbedFilesChoice",
            "summary": ""
          }
        ],
        "returns": "The loaded content or None if an error occurred."
      },
      {
        "signature": "System.Boolean SetChild(RenderContent renderContent, System.String childSlotName, ChangeContexts changeContexts)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Set another content as a child of this content. This content may or may not be attached to a document.  If this content already has a child with the specified child slot name, that child will be deleted.  If this content is not attached to a document, the child will be added without sending any events.  If this content is attached to a document, the necessary events will be sent to update the UI. Note: Do not call this method to add children in your constructor. If you want to add default children, you should override Initialize() and add them there.",
        "since": "5.10",
        "deprecated": "6.0",
        "parameters": [
          {
            "name": "renderContent",
            "type": "RenderContent",
            "summary": "Child content to add to this content. If pChild is NULL, the function will fail.  If pChild is already attached to a document, the function will fail.  If pChild is already a child of this or another content, the function will fail."
          },
          {
            "name": "childSlotName",
            "type": "System.String",
            "summary": "The name that will be assigned to this child slot. The child slot name cannot be an empty string. If it is, the function will fail."
          },
          {
            "name": "changeContexts",
            "type": "ChangeContexts",
            "summary": ""
          }
        ],
        "returns": "Returns True if the content was added or the child slot with this name was modified otherwise; returns false."
      },
      {
        "signature": "System.Boolean SetChild(RenderContent renderContent, System.String childSlotName)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Set another content as a child of this content. This content may or may not be attached to a document.  If this content already has a child with the specified child slot name, that child will be deleted.  If this content is not attached to a document, the child will be added without sending any events.  If this content is attached to a document, the necessary events will be sent to update the UI. Note: Do not call this method to add children in your constructor. If you want to add default children, you should override Initialize() and add them there.",
        "since": "6.0",
        "parameters": [
          {
            "name": "renderContent",
            "type": "RenderContent",
            "summary": "Child content to add to this content. If renderContent is null, the function will fail. If renderContent is already attached to a document, the function will fail. If renderContent is already a child of this or another content, the function will fail."
          },
          {
            "name": "childSlotName",
            "type": "System.String",
            "summary": "The name that will be assigned to this child slot. The child slot name cannot be an empty string. If it is, the function will fail."
          }
        ],
        "returns": "Returns True if the content was added or the child slot with this name was modified, otherwise returns false."
      },
      {
        "signature": "System.Void SetChildSlotAmount(System.String childSlotName, System.Double amount, ChangeContexts cc)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Sets the amount property for the texture in the specified child slot.",
        "since": "5.7",
        "parameters": [
          {
            "name": "childSlotName",
            "type": "System.String",
            "summary": "The child slot name of the texture."
          },
          {
            "name": "amount",
            "type": "System.Double",
            "summary": "The texture amount. Values are typically from 0.0 to 100.0"
          },
          {
            "name": "cc",
            "type": "ChangeContexts",
            "summary": "The context of the change."
          }
        ]
      },
      {
        "signature": "System.Void SetChildSlotOn(System.String childSlotName, System.Boolean bOn, ChangeContexts cc)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Sets the on-ness property for the texture in the specified child slot.",
        "since": "5.7",
        "parameters": [
          {
            "name": "childSlotName",
            "type": "System.String",
            "summary": "The child slot name of the texture."
          },
          {
            "name": "bOn",
            "type": "System.Boolean",
            "summary": "Value for the on-ness property."
          },
          {
            "name": "cc",
            "type": "ChangeContexts",
            "summary": "Context of the change"
          }
        ]
      },
      {
        "signature": "System.Boolean SetChildSlotParameter(System.String contentParameterName, System.String extraRequirementParameter, System.Object value, ExtraRequirementsSetContexts sc)",
        "modifiers": ["public", "virtual"],
        "protected": false,
        "virtual": true,
        "summary": "Extra requirements are a way of specifying extra functionality on parameters in the automatic UI. Override this function to support values being set from automatic UI sections or the texture summary. See IAutoUIExtraRequirements.h in the C++ RDK SDK for string definitions for the parameter names. Call the base class from your override if you do not support the extra requirement parameter. Please do not call this function. It is only retained for backward compatibility. You should instead call SetExtraRequirementParameter().",
        "since": "5.7",
        "parameters": [
          {
            "name": "contentParameterName",
            "type": "System.String",
            "summary": "The parameter or field internal name to which this query applies."
          },
          {
            "name": "extraRequirementParameter",
            "type": "System.String",
            "summary": "The extra requirement parameter, as listed in IAutoUIExtraRequirements.h in the C++ RDK SDK."
          },
          {
            "name": "value",
            "type": "System.Object",
            "summary": "The value to set this extra requirement parameter. You will typically use System.Convert to convert the value to the type you need."
          },
          {
            "name": "sc",
            "type": "ExtraRequirementsSetContexts",
            "summary": "The context of this operation."
          }
        ],
        "returns": "True if successful, else false."
      },
      {
        "signature": "System.Boolean SetExtraRequirementParameter(System.String contentParameterName, System.String extraRequirementParameter, System.Object value, ExtraRequirementsSetContexts sc)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Extra requirements are a way of specifying extra functionality on parameters in the automatic UI. See IAutoUIExtraRequirements.h in the C++ RDK SDK for string definitions for the parameter names.",
        "since": "7.9",
        "parameters": [
          {
            "name": "contentParameterName",
            "type": "System.String",
            "summary": "The parameter or field internal name to which this query applies."
          },
          {
            "name": "extraRequirementParameter",
            "type": "System.String",
            "summary": "The extra requirement parameter, as listed in IAutoUIExtraRequirements.h in the C++ RDK SDK."
          },
          {
            "name": "value",
            "type": "System.Object",
            "summary": "The value to set this extra requirement parameter. You will typically use System.Convert to convert the value to the type you need."
          },
          {
            "name": "sc",
            "type": "ExtraRequirementsSetContexts",
            "summary": "The context of this operation."
          }
        ],
        "returns": "True if successful, else false."
      },
      {
        "signature": "System.Void SetIsRenderHashRecursive(System.Boolean recursive)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "By default, RenderHash recurses into children when computing the render hash. However, some applications may require children to be excluded from the render hash calculation. Call this method to enable or disable recursing into children. see <b>RenderHash</b>",
        "since": "7.0"
      },
      {
        "signature": "System.Void SetName(System.String name, System.Boolean renameEvents, System.Boolean ensureNameUnique)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Set instance name for this content",
        "since": "7.0"
      },
      {
        "signature": "System.Boolean SetParameter(System.String parameterName, System.Object value, ChangeContexts changeContext)",
        "modifiers": ["public", "virtual"],
        "protected": false,
        "virtual": true,
        "summary": "Set the named parameter value for this content instance. If you do not support this parameter, call the base class.",
        "since": "5.7",
        "deprecated": "6.0",
        "obsolete": "Use SetParameter without ChangeContexts and Begin/EndChange"
      },
      {
        "signature": "System.Boolean SetParameter(System.String parameterName, System.Object value)",
        "modifiers": ["public", "virtual"],
        "protected": false,
        "virtual": true,
        "summary": "Set the named parameter value for this content instance. If you do not support this parameter, call the base class.",
        "since": "6.0"
      },
      {
        "signature": "System.Void SetRenderHash(System.UInt32 hash)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "This method is deprecated and no longer called. For more information see <b>CalculateRenderHash</b>",
        "since": "6.0",
        "deprecated": "6.0",
        "obsolete": "This method is deprecated and no longer called. For more information see CalculateRenderHash"
      },
      {
        "signature": "System.Boolean SmartUngroupRecursive()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Remove this content and all its children from any instance groups they may be a member of. If any content in the same document is left alone in the group, that content is also ungrouped. Records undo and sends events OnContentChanged and OnContentGroupIdChanged. \\note This method is designed to be called from a content UI and is intended for RDK internal use but may be used as an expert user override.",
        "since": "6.26",
        "returns": "True if a content was ungrouped, \\e False if no content or child was part of a group."
      },
      {
        "signature": "System.Boolean Ungroup()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Remove this content from any instance group it may be a member of. Does not record undo but does send the OnContentGroupIdChanged event.",
        "since": "6.26",
        "returns": "True if content was ungrouped, \\e False if it was not part of a group."
      },
      {
        "signature": "System.Boolean UngroupRecursive()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Remove this content and all its children from any instance groups they may be a member of. Does not record undo but does send the OnContentGroupIdChanged event.",
        "since": "6.26",
        "returns": "True if a content was ungrouped, \\e False if no content or child was part of a group."
      },
      {
        "signature": "System.Void Uninitialize()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.1",
        "deprecated": "7.2",
        "obsolete": "This method should not be called."
      },
      {
        "signature": "System.Int32 UseCount()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "UseCount returns how many times the content is used",
        "since": "6.9"
      },
      {
        "signature": "System.Boolean VirtualIcon(Size size, out Bitmap bitmap)",
        "modifiers": ["virtual", "public"],
        "protected": false,
        "virtual": true,
        "summary": "Icon to display in the content browser, this bitmap needs to be valid for the life of this content object, the content object that returns the bitmap is responsible for disposing of the bitmap.",
        "since": "6.0",
        "parameters": [
          {
            "name": "size",
            "type": "Size",
            "summary": "Requested icon size"
          },
          {
            "name": "bitmap",
            "type": "Bitmap",
            "summary": ""
          }
        ],
        "returns": "Return Icon to display in the content browser."
      }
    ],
    "events": [
      {
        "signature": "EventHandler<PreviewRenderedEventArgs> PreviewRendered",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "This event is raised when a preview has been rendered"
      },
      {
        "signature": "EventHandler<RenderContentChangedEventArgs> ContentChanged",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Used to monitor render content modifications.",
        "since": "5.7"
      },
      {
        "signature": "EventHandler<RenderContentEventArgs> ContentAdded",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Used to monitor render content addition to the document.",
        "since": "5.7"
      },
      {
        "signature": "EventHandler<RenderContentEventArgs> ContentDeleted",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Used to monitor render content deletion from the document.",
        "since": "6.0"
      },
      {
        "signature": "EventHandler<RenderContentEventArgs> ContentDeleting",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Used to monitor render content deletion from the document.",
        "since": "5.7"
      },
      {
        "signature": "EventHandler<RenderContentEventArgs> ContentRenamed",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Used to monitor render content renaming in the document.",
        "since": "5.7"
      },
      {
        "signature": "EventHandler<RenderContentEventArgs> ContentReplaced",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Used to monitor render content replacing in the document.",
        "since": "5.7"
      },
      {
        "signature": "EventHandler<RenderContentEventArgs> ContentReplacing",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Used to monitor render content replacing in the document.",
        "since": "5.7"
      },
      {
        "signature": "EventHandler<RenderContentEventArgs> ContentUpdatePreview",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Used to monitor render content preview updates.",
        "since": "5.7"
      },
      {
        "signature": "EventHandler<RenderContentEventArgs> CurrentEnvironmentChanged",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Event fired when changes to current environments have been made. This will be one of Background, Reflection or Skylighting Since 6.11",
        "since": "6.11"
      },
      {
        "signature": "EventHandler<RenderContentFieldChangedEventArgs> ContentFieldChanged",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "This event is raised when a field value is modified.",
        "since": "5.11"
      }
    ]

  },
  {
    "namespace": "Rhino.Render",
    "name": "RenderContent.ChangeContexts",
    "dataType": "enum",
    "summary": "Context of a change to content parameters.",
    "since": "5.1",
    "values": [
      {
        "signature": "UI = 0",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Change occurred as a result of user activity in the content's UI."
      },
      {
        "signature": "Drop = 1",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Change occurred as a result of drag and drop."
      },
      {
        "signature": "Program = 2",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Change occurred as a result of internal program activity."
      },
      {
        "signature": "Ignore = 3",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Change can be disregarded."
      },
      {
        "signature": "Tree = 4",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Change occurred within the content tree (e.g., nodes reordered)."
      },
      {
        "signature": "Undo = 5",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Change occurred as a result of an undo."
      },
      {
        "signature": "FieldInit = 6",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "OBSOLETE."
      },
      {
        "signature": "Serialize = 7",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Change occurred during serialization (loading)."
      },
      {
        "signature": "RealTimeUI = 8",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Change occurred as a result of 'real-time' user activity in the (content) UI. The content's preview, UI, group members and registerable properties are not updated."
      },
      {
        "signature": "Script = 9",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Change occurred as a result of executing a script."
      }
    ]

  },
  {
    "namespace": "Rhino.Render",
    "name": "RenderContent.ContentInstanceBrowserButtons",
    "dataType": "enum",
    "summary": "Specifies optional buttons for ShowContentInstanceBrowser().",
    "since": "8.15",
    "values": [
      {
        "signature": "None = 0",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "No optional buttons."
      },
      {
        "signature": "NewButton = 1",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Include New button."
      },
      {
        "signature": "EditButton = 2",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Include Edit button."
      }
    ]

  },
  {
    "namespace": "Rhino.Render",
    "name": "RenderContent.EmbedFilesChoice",
    "dataType": "enum",
    "summary": "Used by SaveToFile",
    "since": "8.6",
    "values": [
      {
        "signature": "NeverEmbed = 0",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Never embed support files in the content file"
      },
      {
        "signature": "AlwaysEmbed = 1",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Always embed support files in the content file"
      },
      {
        "signature": "AskUser = 2",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Show a UI"
      }
    ]

  },
  {
    "namespace": "Rhino.Render",
    "name": "RenderContent.ExtraRequirementsSetContexts",
    "dataType": "enum",
    "since": "5.7",
    "values": [
      {
        "signature": "UI = 0",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Setting extra requirement as a result of user activity."
      },
      {
        "signature": "Drop = 1",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Setting extra requirement as a result of drag and drop."
      },
      {
        "signature": "Program = 2",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Setting extra requirement as a result of other (non-user) program activity."
      }
    ]

  },
  {
    "namespace": "Rhino.Render",
    "name": "RenderContent.MatchDataResult",
    "dataType": "enum",
    "summary": "Return values for MatchData function",
    "since": "5.7",
    "values": [
      {
        "signature": "None = 0",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "None"
      },
      {
        "signature": "Some = 1",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Some"
      },
      {
        "signature": "All = 2",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "All"
      }
    ]

  },
  {
    "namespace": "Rhino.Render",
    "name": "RenderContent.ShowContentChooserFlags",
    "dataType": "enum",
    "since": "5.1",
    "deprecated": "7.9",
    "values": [
      {
        "signature": "None = 0x0000",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "HideNewTab = 0x0001",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "HideExistingTab = 0x0002",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "MultipleSelection = 0x0004",
        "modifiers": [],
        "protected": false,
        "virtual": false
      }
    ]

  },
  {
    "namespace": "Rhino.Render",
    "name": "RenderContentChangedEventArgs",
    "dataType": "class",
    "summary": "EventArgs for the RenderContentChanged event",
    "baseclass": "Rhino.Render.RenderContentEventArgs",
    "properties": [
      {
        "signature": "ChangeContexts ChangeContext",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.7",
        "property": ["get"]
      },
      {
        "signature": "RenderContent OldContent",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get"]
      }
    ]
  },
  {
    "namespace": "Rhino.Render",
    "name": "RenderContentChangeReason",
    "dataType": "enum",
    "summary": "Enumeration denoting type of change for attach or detach.",
    "since": "6.0",
    "values": [
      {
        "signature": "None",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "No attach or detach change"
      },
      {
        "signature": "Attach",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Content is being attached by the RhinoDoc.AttachContent() or RenderContent.AttachChild() methods."
      },
      {
        "signature": "Detach",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Content is being detached by the RenderContent.DeleteContent() method."
      },
      {
        "signature": "ChangeAttach",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Content is being attached while changing."
      },
      {
        "signature": "ChangeDetach",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Content is being detached while changing."
      },
      {
        "signature": "AttachUndo",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Content is being attached during undo/redo"
      },
      {
        "signature": "DetachUndo",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Content is being detached during undo/redo."
      },
      {
        "signature": "Open",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Content is being attached during open document"
      },
      {
        "signature": "Delete",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Content is being detached during normal deletion."
      }
    ]

  },
  {
    "namespace": "Rhino.Render",
    "name": "RenderContentCollection",
    "dataType": "class",
    "summary": "A collection of Render content",
    "interfaces": ["IDisposable", "IEnumerable"],
    "constructors": [
      {
        "signature": "RenderContentCollection()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Construct an empty collection of RenderContent objects",
        "since": "6.0"
      },
      {
        "signature": "RenderContentCollection(IntPtr nativePtr)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Internal function to create collection from native pointer",
        "since": "6.0",
        "parameters": [
          {
            "name": "nativePtr",
            "type": "System.IntPtr",
            "summary": "Native pointer"
          }
        ]
      }
    ],
    "properties": [
      {
        "signature": "IntPtr CppPointer",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Internal function to get native pointer",
        "since": "6.0",
        "property": ["get"]
      }
    ],
    "methods": [
      {
        "signature": "System.Void Add(Rhino.Render.RenderContentCollection collection)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Add an array of non-const contents to the collection.",
        "since": "6.0",
        "parameters": [
          {
            "name": "collection",
            "type": "Rhino.Render.RenderContentCollection",
            "summary": "The array of contents to add"
          }
        ]
      },
      {
        "signature": "System.Void Append(Rhino.Render.RenderContent content)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Append a RenderContent to the collection",
        "since": "6.0",
        "parameters": [
          {
            "name": "content",
            "type": "Rhino.Render.RenderContent",
            "summary": "The array of contents to append."
          }
        ]
      },
      {
        "signature": "System.Void Clear()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Clear the collection.",
        "since": "6.0"
      },
      {
        "signature": "RenderContent ContentAt(System.Int32 index)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Content at index",
        "since": "6.0"
      },
      {
        "signature": "System.Boolean ContentNeedsPreviewThumbnail(Rhino.Render.RenderContent c, System.Boolean includeChildren)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "To be documented",
        "since": "7.0"
      },
      {
        "signature": "System.Int32 Count()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "The number of items in the collection.",
        "since": "6.0",
        "returns": "The number of items in the collection."
      },
      {
        "signature": "System.Void Dispose()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Dispose function for RenderContentCollection",
        "since": "6.0"
      },
      {
        "signature": "RenderContent Find_Sel(System.Guid uuid)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "TODO",
        "since": "6.0"
      },
      {
        "signature": "System.String FirstTag()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the first tag",
        "since": "6.13",
        "returns": "The first tag"
      },
      {
        "signature": "System.Collections.IEnumerator GetEnumerator()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0"
      },
      {
        "signature": "FilterContentByUsage GetFilterContentByUsage()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets usage filter type for collection",
        "since": "6.9",
        "returns": "Usage filter type for collection"
      },
      {
        "signature": "System.Boolean GetForcedVaries()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "See SetForcedVaries",
        "since": "6.9",
        "returns": "Forced varies"
      },
      {
        "signature": "System.String GetSearchPattern()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "See SetSearchPattern",
        "since": "6.0"
      },
      {
        "signature": "ContentCollectionIterator Iterator()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets an iterator for the collection",
        "since": "6.0"
      },
      {
        "signature": "System.String NextTag()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Call FirstTag first - this gets the next tag",
        "since": "6.13",
        "returns": "The next tag"
      },
      {
        "signature": "System.Void Remove(Rhino.Render.RenderContentCollection collection)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Remove an array of contents from the collection.",
        "since": "6.0",
        "parameters": [
          {
            "name": "collection",
            "type": "Rhino.Render.RenderContentCollection",
            "summary": "Collection of contents to remove"
          }
        ]
      },
      {
        "signature": "System.Void Set(Rhino.Render.RenderContentCollection collection)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Set an array of const contents as the collection.",
        "since": "6.0",
        "parameters": [
          {
            "name": "collection",
            "type": "Rhino.Render.RenderContentCollection",
            "summary": "The array of contents to set."
          }
        ]
      },
      {
        "signature": "System.Void SetForcedVaries(System.Boolean b)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Set the collection to 'varies'. Only valid if the collection is a 'selection' collection. Useful for clients that only support single content selections.",
        "since": "6.9",
        "parameters": [
          {
            "name": "b",
            "type": "System.Boolean",
            "summary": "Varies if true"
          }
        ]
      },
      {
        "signature": "System.Void SetSearchPattern(System.String pattern)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Sets a search pattern for filtering contents. This is not actually used by the iterator, but is stored for use by any UI that wants to filter contents based on a search string by using the function RhRdkCheckSearchPattern()",
        "since": "6.0",
        "parameters": [
          {
            "name": "pattern",
            "type": "System.String",
            "summary": "The search pattern. See RhRdkCheckSearchPattern() for details"
          }
        ]
      }
    ]
  },
  {
    "namespace": "Rhino.Render",
    "name": "RenderContentEventArgs",
    "dataType": "class",
    "summary": "Event args for RenderContent",
    "baseclass": "EventArgs",
    "properties": [
      {
        "signature": "RenderContent Content",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.7",
        "property": ["get"]
      },
      {
        "signature": "RhinoDoc Document",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "Usage EnvironmentUsage",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Meaningful for CurrentEnvironmentChanged event. Will be one of Background, ReflectionAndRefraction or Skylighting.",
        "since": "6.11",
        "obsolete": "Call EnvironmentUsageEx instead",
        "property": ["get", "set"]
      },
      {
        "signature": "EnvironmentUsage EnvironmentUsageEx",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Meaningful for CurrentEnvironmentChanged event. Will be one of Background, Reflection or Skylighting.",
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "RenderContentChangeReason Reason",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Not when used in CurrentEnvironmentChanged (defaults to None).",
        "since": "6.0",
        "property": ["get", "set"]
      }
    ]
  },
  {
    "namespace": "Rhino.Render",
    "name": "RenderContentFieldChangedEventArgs",
    "dataType": "class",
    "summary": "EventArgs for the RenderContentFieldChanged event",
    "baseclass": "Rhino.Render.RenderContentChangedEventArgs",
    "properties": [
      {
        "signature": "string FieldName",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.11",
        "property": ["get"]
      }
    ]
  },
  {
    "namespace": "Rhino.Render",
    "name": "RenderContentKind",
    "dataType": "enum",
    "summary": "Defines constant values for all render content kinds, such as material, environment or texture.",
    "since": "5.1",
    "values": [
      {
        "signature": "None = UnsafeNativeMethods.CRhRdkContentKindConst.None",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Specifies no RenderContent kind."
      },
      {
        "signature": "Material = UnsafeNativeMethods.CRhRdkContentKindConst.Material",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Specifies a material RenderContent kind."
      },
      {
        "signature": "Environment = UnsafeNativeMethods.CRhRdkContentKindConst.Environment",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Specifies an environment RenderContent kind."
      },
      {
        "signature": "Texture = UnsafeNativeMethods.CRhRdkContentKindConst.Texture",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Specifies a texture RenderContent kind."
      }
    ]

  },
  {
    "namespace": "Rhino.Render",
    "name": "RenderContentKindList",
    "dataType": "class",
    "summary": "Models a collection of kinds.",
    "interfaces": ["IDisposable"],
    "constructors": [
      {
        "signature": "RenderContentKindList()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Construct an empty kind list",
        "since": "6.7"
      },
      {
        "signature": "RenderContentKindList(IntPtr pRdkRenderContentKindList)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Construct from native pointer - internal use only.",
        "since": "6.1",
        "parameters": [
          {
            "name": "pRdkRenderContentKindList",
            "type": "System.IntPtr",
            "summary": "C++ pointer to a kind list."
          }
        ]
      },
      {
        "signature": "RenderContentKindList(RenderContentKindList kind_list)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Construct a kind list from another.",
        "since": "6.7",
        "parameters": [
          {
            "name": "kind_list",
            "type": "RenderContentKindList",
            "summary": "Kind list to copy"
          }
        ]
      }
    ],
    "properties": [
      {
        "signature": "IntPtr CppPointer",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.1",
        "property": ["get"]
      }
    ],
    "methods": [
      {
        "signature": "System.Void Add(RenderContentKind kind)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Add a kind to a kind list.",
        "since": "6.7",
        "parameters": [
          {
            "name": "kind",
            "type": "RenderContentKind",
            "summary": "The RenderContent kind to add."
          }
        ]
      },
      {
        "signature": "System.Boolean Contains(RenderContentKind kind)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Query whether or not the collection contains a particular kind designation.",
        "since": "6.3",
        "returns": "True if the kind is in the collection."
      },
      {
        "signature": "System.Int32 Count()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "The number of kinds in the collection",
        "since": "6.1",
        "returns": "The number of kinds in the collection"
      },
      {
        "signature": "System.Void Dispose()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Dispose a kind list.",
        "since": "6.1"
      },
      {
        "signature": "RenderContentKind SingleKind()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "The single kind in the list. If the list does not contain exactly one kind, returns 'None'.",
        "since": "6.1",
        "returns": "A RenderContentKind"
      }
    ]
  },
  {
    "namespace": "Rhino.Render",
    "name": "RenderContentSerializer",
    "dataType": "class",
    "summary": "Used to import and export custom render content such as materials, environments and textures.  You must override RenderPlugIn.RenderContentSerializers() and return an array of derived RenderContentSerializer class types to add to the content browsers.",
    "constructors": [
      {
        "signature": "RenderContentSerializer(string fileExtension, RenderContentKind contentKind, bool canRead, bool canWrite)",
        "modifiers": ["protected"],
        "protected": true,
        "virtual": false,
        "summary": "Protected constructor to be called from derived class",
        "parameters": [
          {
            "name": "fileExtension",
            "type": "System.String",
            "summary": "File extension associated with this serialize object"
          },
          {
            "name": "contentKind",
            "type": "RenderContentKind",
            "summary": "Kind of content created when importing or exporting this file type."
          },
          {
            "name": "canRead",
            "type": "System.Boolean",
            "summary": "If True then the file type can be imported and will be included in the file open box when importing the specified render content kind."
          },
          {
            "name": "canWrite",
            "type": "System.Boolean",
            "summary": "If True then the file type can be exported and will be included in the file save box when exporting the specified render content kind."
          }
        ]
      }
    ],
    "properties": [
      {
        "signature": "bool CanRead",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "If True then the file type can be imported and will be included in the file open box when importing the specified render content kind.",
        "since": "5.7",
        "property": ["get"]
      },
      {
        "signature": "bool CanWrite",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "If True then the file type can be exported and will be included in the file save box when exporting the specified render content kind.",
        "since": "5.7",
        "property": ["get"]
      },
      {
        "signature": "RenderContentKind ContentKind",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Kind of content created when importing or exporting this file type - ie, Material, Texture or Environment",
        "since": "7.0",
        "property": ["get"]
      },
      {
        "signature": "RenderContentKind ContentType",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Kind of content created when importing or exporting this file type.  Obsolete - use ContentKind",
        "since": "5.7",
        "property": ["get"]
      },
      {
        "signature": "String EnglishDescription",
        "modifiers": ["public", "abstract"],
        "protected": false,
        "virtual": false,
        "summary": "English string describing this plug-in",
        "since": "5.7",
        "property": ["get"]
      },
      {
        "signature": "string FileExtension",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "File extension associated with this serialize object",
        "since": "5.7",
        "property": ["get"]
      },
      {
        "signature": "String LocalDescription",
        "modifiers": ["public", "virtual"],
        "protected": false,
        "virtual": true,
        "summary": "Localized plug-in description",
        "since": "5.7",
        "property": ["get"]
      }
    ],
    "methods": [
      {
        "signature": "System.Boolean CanLoadMultiple()",
        "modifiers": ["public", "virtual"],
        "protected": false,
        "virtual": true,
        "summary": "If True the plug-in is capable of loading multiple contents.",
        "since": "7.0"
      },
      {
        "signature": "System.Boolean LoadMultiple(RhinoDoc doc, IEnumerable<string> fileNames, RenderContentKind contentKind, LoadMultipleFlags flags)",
        "modifiers": ["public", "virtual"],
        "protected": false,
        "virtual": true,
        "summary": "Create any number of new render contents loaded from any number of files.",
        "since": "7.0",
        "parameters": [
          {
            "name": "doc",
            "type": "RhinoDoc",
            "summary": "Rhino document"
          },
          {
            "name": "fileNames",
            "type": "IEnumerable<string>",
            "summary": "A list of filenames to load from. Each file can contain any number of render contents."
          },
          {
            "name": "contentKind",
            "type": "RenderContentKind",
            "summary": "Only used by I/O plug-ins that support multiple kinds. It tells the plug-in which content kind to create. If the plug-in only supports a single content kind, it can ignore this parameter."
          },
          {
            "name": "flags",
            "type": "LoadMultipleFlags",
            "summary": "A set of flags from the enum above."
          }
        ]
      },
      {
        "signature": "RenderContent Read(System.String pathToFile)",
        "modifiers": ["public", "abstract"],
        "protected": false,
        "virtual": false,
        "summary": "Called to when importing a file, file should be parsed and converted to a valid RenderContent object.",
        "since": "5.7",
        "parameters": [
          {
            "name": "pathToFile",
            "type": "System.String",
            "summary": "Full path of the file to load."
          }
        ],
        "returns": "Returns a valid RenderContent object such as RenderMaterial if the file was successfully parsed otherwise returns null."
      },
      {
        "signature": "System.Boolean RegisterSerializer(System.Guid id)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Register the RenderContentSerializer",
        "since": "6.0",
        "parameters": [
          {
            "name": "id",
            "type": "System.Guid",
            "summary": "Plug-in id"
          }
        ]
      },
      {
        "signature": "System.Void ReportContentAndFile(RenderContent renderContent, System.String pathToFile, System.Int32 flags)",
        "modifiers": ["public", "virtual"],
        "protected": false,
        "virtual": true,
        "summary": "This is called from your implementation of LoadMultiple() to add a content and the file it was loaded from when the LoadMultipleFlags.Preload flag is NOT set. See LoadMultiple() for an explanation of this method's use.",
        "since": "7.0",
        "parameters": [
          {
            "name": "renderContent",
            "type": "RenderContent",
            "summary": "Render content that was loaded from the file."
          },
          {
            "name": "pathToFile",
            "type": "System.String",
            "summary": "Full path of the file that the render content was loaded from."
          },
          {
            "name": "flags",
            "type": "System.Int32",
            "summary": "Flags for future use; should be passed as zero."
          }
        ]
      },
      {
        "signature": "System.Void ReportDeferredContentAndFile(RenderContent renderContent, System.String pathToFile, System.Int32 flags)",
        "modifiers": ["public", "virtual"],
        "protected": false,
        "virtual": true,
        "summary": "This is called from your implementation of LoadMultiple() to add a 'deferred' content and the file it will be loaded from when the LoadMultipleFlags.Preload flag is set. See LoadMultiple() for an explanation of this method's use. \\param c is the deferred content. \\param wszFullPath is the full path to the file that 'c' will be loaded from. \\param flags is reserved for future use; you should pass zero. \\param pReserved is reserved for future use; you should pass nullptr. */",
        "since": "7.0",
        "parameters": [
          {
            "name": "renderContent",
            "type": "RenderContent",
            "summary": "Deferred render content - represents all contents that will be loaded from the file."
          },
          {
            "name": "pathToFile",
            "type": "System.String",
            "summary": "Full path of the file that render contents will be loaded from."
          },
          {
            "name": "flags",
            "type": "System.Int32",
            "summary": "Flags for future use; should be passed as zero."
          }
        ]
      },
      {
        "signature": "System.Boolean Write(System.String pathToFile, RenderContent renderContent, CreatePreviewEventArgs previewArgs)",
        "modifiers": ["public", "abstract"],
        "protected": false,
        "virtual": false,
        "summary": "Called to save a custom RenderContent object as an external file.",
        "since": "5.7",
        "parameters": [
          {
            "name": "pathToFile",
            "type": "System.String",
            "summary": "Full path of file to write"
          },
          {
            "name": "renderContent",
            "type": "RenderContent",
            "summary": "Render content to save"
          },
          {
            "name": "previewArgs",
            "type": "CreatePreviewEventArgs",
            "summary": "Parameters used to generate a preview image which may be embedded in the exported file."
          }
        ]
      }
    ]
  },
  {
    "namespace": "Rhino.Render",
    "name": "RenderContentSerializer.LoadMultipleFlags",
    "dataType": "enum",
    "since": "7.0",
    "values": [
      {
        "signature": "Normal  = 0x00",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Preload = 0x01",
        "modifiers": [],
        "protected": false,
        "virtual": false
      }
    ]

  },
  {
    "namespace": "Rhino.Render",
    "name": "RenderContentStyles",
    "dataType": "enum",
    "since": "5.1",
    "values": [
      {
        "signature": "None = 0",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "No defined styles"
      },
      {
        "signature": "TextureSummary = 0x0001",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Texture UI includes an auto texture summary section. See AddAutoParameters()."
      },
      {
        "signature": "QuickPreview = 0x0002",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Editor displays an instant preview before preview cycle begins."
      },
      {
        "signature": "PreviewCache = 0x0004",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Content's preview imagery can be stored in the preview cache."
      },
      {
        "signature": "ProgressivePreview = 0x0008",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Content's preview imagery can be rendered progressively."
      },
      {
        "signature": "LocalTextureMapping = 0x0010",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Texture UI includes an auto local mapping section for textures. See AddAutoParameters()"
      },
      {
        "signature": "GraphDisplay = 0x0020",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Texture UI includes a graph section."
      },
      {
        "signature": "NameTypeSection = 0x0800",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Render content UI includes a 'Name' and 'Type' section."
      },
      {
        "signature": "    SharedUI = 0x0040",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "OBSOLETE: The UI is always shared between render contents of the same type id.",
        "obsolete": "No longer needed"
      },
      {
        "signature": "Adjustment = 0x0080",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Texture UI includes an adjustment section."
      },
      {
        "signature": "Fields = 0x0100",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Render content uses fields to facilitate data storage and undo support. See Fields()"
      },
      {
        "signature": "ModalEditing = 0x0200",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Render content supports editing in a modal editor. OBSOLETE: All contents support modal editing."
      },
      {
        "signature": "DynamicFields = 0x0400",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "The render content's fields are dynamic. OBSOLETE: Dynamic fields can co-exist with static fields."
      }
    ]

  },
  {
    "namespace": "Rhino.Render",
    "name": "RenderContentTableEventForwarder.RenderContentTableEventArgs",
    "dataType": "class",
    "baseclass": "EventArgs"
  },
  {
    "namespace": "Rhino.Render",
    "name": "RenderContentType",
    "dataType": "class",
    "summary": "Represents one of the render content types registered with Rhino.",
    "interfaces": ["IDisposable"],
    "constructors": [
      {
        "signature": "RenderContentType(Guid typeId)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0"
      }
    ],
    "properties": [
      {
        "signature": "Guid Id",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns the type identifier associated with this type.",
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "String InternalName",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns the internal name identifier associated with this type.",
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "Guid PlugInId",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "Guid RenderEngineId",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get"]
      }
    ],
    "methods": [
      {
        "signature": "RenderContentType[] GetAllAvailableTypes()",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Gets an array of all available render content types registered with Rhino.",
        "since": "6.0",
        "returns": "An array with all types."
      },
      {
        "signature": "RenderContent NewContentFromTypeId(System.Guid typeId, RhinoDoc doc)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "6.4"
      },
      {
        "signature": "RenderContent NewContentFromTypeId(System.Guid typeId)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Create a new content specified by the Guid.  This function can be used to create temporary content, as it calls ::RhRdkContentFactories().NewContentFromType().",
        "since": "6.0"
      },
      {
        "signature": "System.Void Dispose()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0"
      },
      {
        "signature": "System.Void Dispose(System.Boolean isDisposing)",
        "modifiers": ["protected", "virtual"],
        "protected": true,
        "virtual": true
      },
      {
        "signature": "RenderContent NewRenderContent()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns a new instance of the render content of this type.  This content can be added to a persistent list.",
        "since": "6.0",
        "returns": "A new render content instance."
      }
    ]
  },
  {
    "namespace": "Rhino.Render",
    "name": "RenderEndEventArgs",
    "dataType": "class",
    "summary": "Contains information about why OnRenderEnd was called",
    "baseclass": "EventArgs"
  },
  {
    "namespace": "Rhino.Render",
    "name": "RenderEnvironment",
    "dataType": "class",
    "baseclass": "Rhino.Render.RenderContent",
    "constructors": [
      {
        "signature": "RenderEnvironment()",
        "summary": "Initializes a new instance of the RenderEnvironment class"
      }
    ],
    "properties": [
      {
        "signature": "RenderEnvironment CurrentEnvironment",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "5.1",
        "obsolete": "Obsolete, use RhinoDoc.CurrentEnvironment",
        "property": ["get", "set"]
      },
      {
        "signature": "String TextureChildSlotName",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get"]
      }
    ],
    "methods": [
      {
        "signature": "RenderEnvironment NewBasicEnvironment(SimulatedEnvironment environment, RhinoDoc doc)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "6.4"
      },
      {
        "signature": "RenderEnvironment NewBasicEnvironment(SimulatedEnvironment environment)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Constructs a new <b>RenderEnvironment</b> from a <b>SimulatedEnvironment</b> .",
        "since": "5.3",
        "parameters": [
          {
            "name": "environment",
            "type": "SimulatedEnvironment",
            "summary": "The environment to create the basic environment from."
          }
        ],
        "returns": "A new basic environment."
      },
      {
        "signature": "System.Void SimulateEnvironment(ref SimulatedEnvironment simulation, System.Boolean isForDataOnly)",
        "modifiers": ["public", "virtual"],
        "protected": false,
        "virtual": true,
        "since": "5.1"
      },
      {
        "signature": "SimulatedEnvironment SimulateEnvironment(System.Boolean isForDataOnly)",
        "modifiers": ["public", "virtual"],
        "protected": false,
        "virtual": true,
        "since": "6.0"
      }
    ]
  },
  {
    "namespace": "Rhino.Render",
    "name": "RenderEnvironment.Usage",
    "dataType": "enum",
    "since": "6.0",
    "deprecated": "8.0",
    "values": [
      {
        "signature": "None                      = 0x00",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Background                = 0x01",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "ReflectionAndRefraction   = 0x02",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Skylighting               = 0x04",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "AnyUsage                  = Background | ReflectionAndRefraction | Skylighting",
        "modifiers": [],
        "protected": false,
        "virtual": false
      }
    ]

  },
  {
    "namespace": "Rhino.Render",
    "name": "RenderEnvironmentTable",
    "dataType": "class",
    "interfaces": ["IRenderContentTable<RenderEnvironment>", "IEnumerable<RenderEnvironment>", "Collections.IRhinoTable<RenderEnvironment>"],
    "properties": [
      {
        "signature": "int Count",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.7",
        "property": ["get"]
      },
      {
        "signature": "RenderEnvironment this[int index]",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false
      }
    ],
    "methods": [
      {
        "signature": "System.Boolean Add(RenderEnvironment c)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0"
      },
      {
        "signature": "System.Void BeginChange(RenderContent.ChangeContexts changeContext)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "7.0"
      },
      {
        "signature": "System.Void EndChange()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "7.0"
      },
      {
        "signature": "RenderEnvironment Find(System.Guid id)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "8.0"
      },
      {
        "signature": "IEnumerator<RenderEnvironment> GetEnumerator()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.7"
      },
      {
        "signature": "System.Boolean Remove(RenderEnvironment c)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0"
      }
    ]
  },
  {
    "namespace": "Rhino.Render",
    "name": "Rendering.CommandFilters",
    "dataType": "enum",
    "values": [
      {
        "signature": "ToolButton = UnsafeNativeMethods.RdkRendering_CommandFilters.ToolButton",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "MenuItem = UnsafeNativeMethods.RdkRendering_CommandFilters.MenuItem",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "All = UnsafeNativeMethods.RdkRendering_CommandFilters.All",
        "modifiers": [],
        "protected": false,
        "virtual": false
      }
    ]

  },
  {
    "namespace": "Rhino.Render",
    "name": "Rendering.SessionState",
    "dataType": "enum",
    "values": [
      {
        "signature": "Quiescent = UnsafeNativeMethods.RdkRenderSession_Status.Quiescent",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Initializing = UnsafeNativeMethods.RdkRenderSession_Status.Initializing",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Rendering = UnsafeNativeMethods.RdkRenderSession_Status.Rendering",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Paused = UnsafeNativeMethods.RdkRenderSession_Status.Paused",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Completed = UnsafeNativeMethods.RdkRenderSession_Status.Completed",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Canceled = UnsafeNativeMethods.RdkRenderSession_Status.Canceled",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Aborted = UnsafeNativeMethods.RdkRenderSession_Status.Aborted",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Failed = UnsafeNativeMethods.RdkRenderSession_Status.Failed",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Reusing = UnsafeNativeMethods.RdkRenderSession_Status.Reusing",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Disposed = UnsafeNativeMethods.RdkRenderSession_Status.Disposed",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Deleted = UnsafeNativeMethods.RdkRenderSession_Status.Deleted",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Waiting = UnsafeNativeMethods.RdkRenderSession_Status.Waiting",
        "modifiers": [],
        "protected": false,
        "virtual": false
      }
    ]

  },
  {
    "namespace": "Rhino.Render",
    "name": "Rendering.StatusTexts",
    "dataType": "enum",
    "values": [
      {
        "signature": "Image = UnsafeNativeMethods.RdkRendering_StatusTexts.Image",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Zoom = UnsafeNativeMethods.RdkRendering_StatusTexts.Zoom",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Channel = UnsafeNativeMethods.RdkRendering_StatusTexts.Channel",
        "modifiers": [],
        "protected": false,
        "virtual": false
      }
    ]

  },
  {
    "namespace": "Rhino.Render",
    "name": "RenderingCommand.MenuCategories",
    "dataType": "enum",
    "values": [
      {
        "signature": "File = UnsafeNativeMethods.RdkRenderingCommand_MenuCategories.File",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Edit = UnsafeNativeMethods.RdkRenderingCommand_MenuCategories.Edit",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "View = UnsafeNativeMethods.RdkRenderingCommand_MenuCategories.View",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Render = UnsafeNativeMethods.RdkRenderingCommand_MenuCategories.Render",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Help = UnsafeNativeMethods.RdkRenderingCommand_MenuCategories.Help",
        "modifiers": [],
        "protected": false,
        "virtual": false
      }
    ]

  },
  {
    "namespace": "Rhino.Render",
    "name": "RenderingCommand.States",
    "dataType": "enum",
    "values": [
      {
        "signature": "Off = UnsafeNativeMethods.RdkRenderingCommand_States.Off",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "On = UnsafeNativeMethods.RdkRenderingCommand_States.On",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Unknown = UnsafeNativeMethods.RdkRenderingCommand_States.Unknown",
        "modifiers": [],
        "protected": false,
        "virtual": false
      }
    ]

  },
  {
    "namespace": "Rhino.Render",
    "name": "RenderingHistogram.HistogramFlags",
    "dataType": "enum",
    "values": [
      {
        "signature": "UseAlpha = 0x01",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Photometric = 0x02",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Logarithmic = 0x04",
        "modifiers": [],
        "protected": false,
        "virtual": false
      }
    ]

  },
  {
    "namespace": "Rhino.Render",
    "name": "RenderingHistogram.HistogramType",
    "dataType": "enum",
    "values": [
      {
        "signature": "Original = UnsafeNativeMethods.RdkRendering_Histogram.Original",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Early = UnsafeNativeMethods.RdkRendering_Histogram.Early",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "ToneMapping = UnsafeNativeMethods.RdkRendering_Histogram.ToneMapping",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Late = UnsafeNativeMethods.RdkRendering_Histogram.Late",
        "modifiers": [],
        "protected": false,
        "virtual": false
      }
    ]

  },
  {
    "namespace": "Rhino.Render",
    "name": "RenderingPostEffectCommand.States",
    "dataType": "enum",
    "values": [
      {
        "signature": "Off = UnsafeNativeMethods.RhRdkRenderingPostEffectCommand_States.Off",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "On = UnsafeNativeMethods.RhRdkRenderingPostEffectCommand_States.On",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Unknown = UnsafeNativeMethods.RhRdkRenderingPostEffectCommand_States.Unknown",
        "modifiers": [],
        "protected": false,
        "virtual": false
      }
    ]

  },
  {
    "namespace": "Rhino.Render",
    "name": "RenderingPostEffectEventInfo.EventInfoType",
    "dataType": "enum",
    "values": [
      {
        "signature": "Document = UnsafeNativeMethods.RhRdkRenderingPostEffects_EventInfo_Type.Document",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "On = UnsafeNativeMethods.RhRdkRenderingPostEffects_EventInfo_Type.On",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Position = UnsafeNativeMethods.RhRdkRenderingPostEffects_EventInfo_Type.Position",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Unknown = UnsafeNativeMethods.RhRdkRenderingPostEffects_EventInfo_Type.Unknown",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Param = UnsafeNativeMethods.RhRdkRenderingPostEffects_EventInfo_Type.Param",
        "modifiers": [],
        "protected": false,
        "virtual": false
      }
    ]

  },
  {
    "namespace": "Rhino.Render",
    "name": "RenderMaterial",
    "dataType": "class",
    "baseclass": "Rhino.Render.RenderContent",
    "constructors": [
      {
        "signature": "RenderMaterial()",
        "summary": "Initializes a new instance of the RenderMaterial class"
      }
    ],
    "properties": [
      {
        "signature": "Guid GemMaterialGuid",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "Guid GlassMaterialGuid",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "Guid MetalMaterialGuid",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "Guid PaintMaterialGuid",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "Guid PictureMaterialGuid",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "Guid PlasterMaterialGuid",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "Guid PlasticMaterialGuid",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "PreviewBackgroundType DefaultPreviewBackgroundType",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Set or get the default scene background for the image that appears in preview panes",
        "since": "5.11",
        "property": ["get", "set"]
      },
      {
        "signature": "PreviewGeometryType DefaultPreviewGeometryType",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Set or get the default geometry that appears in preview panes",
        "since": "5.11",
        "property": ["get", "set"]
      },
      {
        "signature": "double DefaultPreviewSize",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "The default preview geometry size",
        "since": "5.11",
        "property": ["get", "set"]
      },
      {
        "signature": "bool SmellsLikeGem",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "bool SmellsLikeGlass",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "bool SmellsLikeMetal",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "bool SmellsLikePaint",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "bool SmellsLikePlaster",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "bool SmellsLikePlastic",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "bool SmellsLikeTexturedGem",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "bool SmellsLikeTexturedGlass",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "bool SmellsLikeTexturedMetal",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "bool SmellsLikeTexturedPaint",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "bool SmellsLikeTexturedPlaster",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "bool SmellsLikeTexturedPlastic",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get"]
      }
    ],
    "methods": [
      {
        "signature": "RenderMaterial CreateBasicMaterial(DocObjects.Material material, RhinoDoc doc)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "6.4"
      },
      {
        "signature": "RenderMaterial CreateBasicMaterial(DocObjects.Material material)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Constructs a new basic material from a <b>Rhino.DocObjects.Material</b> .",
        "since": "5.1",
        "deprecated": "7.1",
        "parameters": [
          {
            "name": "material",
            "type": "DocObjects.Material",
            "summary": "(optional)The material to create the basic material from."
          }
        ],
        "returns": "A new basic material."
      },
      {
        "signature": "RenderMaterial CreateImportedMaterial(DocObjects.Material material, RhinoDoc doc, System.Boolean reference)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "7.0"
      },
      {
        "signature": "RenderMaterial FromMaterial(DocObjects.Material material, RhinoDoc doc)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Constructs a new material from a <b>Rhino.DocObjects.Material</b> .",
        "since": "7.1",
        "parameters": [
          {
            "name": "material",
            "type": "DocObjects.Material",
            "summary": "(optional)The material to create the material from."
          },
          {
            "name": "doc",
            "type": "RhinoDoc",
            "summary": "The document to associate this material with."
          }
        ],
        "returns": "A new material - either a \"Custom\" material or a \"Physically Based\" material depending on the return value of material.IsPhysicallyBased."
      },
      {
        "signature": "System.Boolean ImportMaterialAndAssignToLayers(RhinoDoc doc, System.String file, IEnumerable<int> layer_indices)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Imports a material file (.RMTL) and assigns the imported material to one or more layers.",
        "since": "8.0",
        "parameters": [
          {
            "name": "doc",
            "type": "RhinoDoc",
            "summary": "The document to attach the imported material to and which also contains the layers."
          },
          {
            "name": "file",
            "type": "System.String",
            "summary": "The full path to the RMTL file to be imported."
          },
          {
            "name": "layer_indices",
            "type": "IEnumerable<int>",
            "summary": "An array of indices of the layers to assign the material to."
          }
        ],
        "returns": "True if successful, else false."
      },
      {
        "signature": "StandardChildSlots SlotFromTextureType(DocObjects.TextureType tt)",
        "modifiers": ["static", "public"],
        "protected": false,
        "virtual": false,
        "since": "7.6"
      },
      {
        "signature": "DocObjects.TextureType TextureTypeFromSlot(StandardChildSlots slot)",
        "modifiers": ["static", "public"],
        "protected": false,
        "virtual": false,
        "since": "7.6"
      },
      {
        "signature": "System.Boolean AssignTo(DocObjects.ObjRef or)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "7.13"
      },
      {
        "signature": "System.Boolean AssignTo(IEnumerable<ObjRef> objrefs, AssignToSubFaceChoices sfc, AssignToBlockChoices bc, System.Boolean bInteractive)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "7.13"
      },
      {
        "signature": "DocObjects.PhysicallyBasedMaterial ConvertToPhysicallyBased(RenderTexture.TextureGeneration tg)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns a material that is the best approximation of the original, but as a physically based material.",
        "since": "7.0",
        "parameters": [
          {
            "name": "tg",
            "type": "RenderTexture.TextureGeneration",
            "summary": "Determines whether simulated textures will be generated as files."
          }
        ]
      },
      {
        "signature": "System.Double GetTextureAmountFromUsage(RenderMaterial.StandardChildSlots slot)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0"
      },
      {
        "signature": "RenderTexture GetTextureFromUsage(RenderMaterial.StandardChildSlots slot)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0"
      },
      {
        "signature": "System.Boolean GetTextureOnFromUsage(RenderMaterial.StandardChildSlots slot)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0"
      },
      {
        "signature": "System.Boolean HandleTexturedValue(System.String slotname, TexturedValue<T> tc)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Handle a textured content field. Values will be read into an instance of TexturedColor",
        "since": "6.12",
        "returns": "True if reading the base value succeeded"
      },
      {
        "signature": "DocObjects.Material SimulatedMaterial(RenderTexture.TextureGeneration tg)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "7.0",
        "deprecated": "8.0",
        "obsolete": "Use ToMaterial instead for clarity.  Same functionality."
      },
      {
        "signature": "System.Void SimulateMaterial(ref DocObjects.Material simulation, RenderTexture.TextureGeneration tg)",
        "modifiers": ["public", "virtual"],
        "protected": false,
        "virtual": true,
        "summary": "Override this function to provide a Rhino.DocObjects.Material definition for this material to be used by other rendering engines including the display.",
        "since": "7.0",
        "parameters": [
          {
            "name": "simulation",
            "type": "DocObjects.Material",
            "summary": "Set the properties of the input basic material to provide the simulation for this material."
          },
          {
            "name": "tg",
            "type": "RenderTexture.TextureGeneration",
            "summary": "See RenderTexture.TextureGeneration."
          }
        ]
      },
      {
        "signature": "System.Void SimulateMaterial(ref DocObjects.Material simulation, System.Boolean isForDataOnly)",
        "modifiers": ["public", "virtual"],
        "protected": false,
        "virtual": true,
        "summary": "Override this function to provide a Rhino.DocObjects.Material definition for this material to be used by other rendering engines including the display.",
        "since": "5.1",
        "deprecated": "8.0",
        "obsolete": "ToMaterial with TextureGeneration instead, and don't override this virtual function",
        "parameters": [
          {
            "name": "simulation",
            "type": "DocObjects.Material",
            "summary": "Set the properties of the input basic material to provide the simulation for this material."
          },
          {
            "name": "isForDataOnly",
            "type": "System.Boolean",
            "summary": "Called when only asking for a hash - don't write any textures to the disk - just provide the filenames they will get."
          }
        ]
      },
      {
        "signature": "DocObjects.Material SimulateMaterial(System.Boolean isForDataOnly)",
        "modifiers": ["public", "virtual"],
        "protected": false,
        "virtual": true,
        "summary": "Call this function to receive the simulation for a RenderMaterial used by the display and other rendering engines.",
        "since": "6.0",
        "deprecated": "7.0",
        "obsolete": "Incorrect spelling - use ToMaterial instead, and don't override this virtual function",
        "parameters": [
          {
            "name": "isForDataOnly",
            "type": "System.Boolean",
            "summary": "Called when only asking for a hash - don't write any textures to the disk - just provide the filenames they will get."
          }
        ],
        "returns": "The simulation of the render material"
      },
      {
        "signature": "System.String TextureChildSlotName(StandardChildSlots slot)",
        "modifiers": ["public", "virtual"],
        "protected": false,
        "virtual": true,
        "summary": "Override this function to provide information about which texture is used for the standard (ie - defined in ON_Texture) texture channels.",
        "since": "5.1",
        "parameters": [
          {
            "name": "slot",
            "type": "StandardChildSlots",
            "summary": "An valid slot."
          }
        ],
        "returns": "The texture used for the channel."
      },
      {
        "signature": "DocObjects.Material ToMaterial(RenderTexture.TextureGeneration tg)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "8.0"
      }
    ]
  },
  {
    "namespace": "Rhino.Render",
    "name": "RenderMaterial.AssignToBlockChoices",
    "dataType": "enum",
    "since": "7.14",
    "values": [
      {
        "signature": "Always",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Always assign to blocks recursively."
      },
      {
        "signature": "Never",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Never assign to blocks recursively."
      },
      {
        "signature": "Ask",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Ask the user what to do."
      }
    ]

  },
  {
    "namespace": "Rhino.Render",
    "name": "RenderMaterial.AssignToSubFaceChoices",
    "dataType": "enum",
    "since": "7.14",
    "values": [
      {
        "signature": "Keep",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Keep any existing sub-face assignments."
      },
      {
        "signature": "Remove",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Remove any existing sub-face assignments first."
      },
      {
        "signature": "Ask",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Ask the user what to do."
      }
    ]

  },
  {
    "namespace": "Rhino.Render",
    "name": "RenderMaterial.BasicMaterialParameterNames",
    "dataType": "class",
    "summary": "Parameter names for use in GetNamedParameter and SetNamedParameter with basic materials.",
    "constructors": [
      {
        "signature": "RenderMaterial.BasicMaterialParameterNames()",
        "summary": "Initializes a new instance of the RenderMaterial.BasicMaterialParameterNames class"
      }
    ],
    "fields": [
      {
        "signature": "public const string Ambient = \"ambient\"",
        "modifiers": ["public", "const"],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "public const string Diffuse = \"diffuse\"",
        "modifiers": ["public", "const"],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "public const string DisableLighting = \"disable-lighting\"",
        "modifiers": ["public", "const"],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "public const string Emission = \"emission\"",
        "modifiers": ["public", "const"],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "public const string FlamingoLibrary = \"flamingo-library\"",
        "modifiers": ["public", "const"],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "public const string Ior = \"ior\"",
        "modifiers": ["public", "const"],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "public const string Reflectivity = \"reflectivity\"",
        "modifiers": ["public", "const"],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "public const string ReflectivityColor = \"reflectivity-color\"",
        "modifiers": ["public", "const"],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "public const string Shine = \"shine\"",
        "modifiers": ["public", "const"],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "public const string Specular = \"specular\"",
        "modifiers": ["public", "const"],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "public const string Transparency = \"transparency\"",
        "modifiers": ["public", "const"],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "public const string TransparencyColor = \"transparency-color\"",
        "modifiers": ["public", "const"],
        "protected": false,
        "virtual": false
      }
    ]

  },
  {
    "namespace": "Rhino.Render",
    "name": "RenderMaterial.PreviewBackgroundType",
    "dataType": "enum",
    "summary": "The default scene background for the image that appears in preview panes",
    "since": "5.11",
    "values": [
      {
        "signature": "None = UnsafeNativeMethods.RhCmnMaterialPreviewBackground.None",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Checkered = UnsafeNativeMethods.RhCmnMaterialPreviewBackground.Checkered",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Scene = UnsafeNativeMethods.RhCmnMaterialPreviewBackground.Scene",
        "modifiers": [],
        "protected": false,
        "virtual": false
      }
    ]

  },
  {
    "namespace": "Rhino.Render",
    "name": "RenderMaterial.PreviewGeometryType",
    "dataType": "enum",
    "summary": "Geometry that appears in preview panes",
    "since": "5.11",
    "values": [
      {
        "signature": "Cone = UnsafeNativeMethods.RhRdkPreviewSceneServerGeometry.Cone",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Cube = UnsafeNativeMethods.RhRdkPreviewSceneServerGeometry.Cuboid",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Plane = UnsafeNativeMethods.RhRdkPreviewSceneServerGeometry.Plane",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Pyramid = UnsafeNativeMethods.RhRdkPreviewSceneServerGeometry.Pyramid",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Sphere = UnsafeNativeMethods.RhRdkPreviewSceneServerGeometry.Sphere",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Torus = UnsafeNativeMethods.RhRdkPreviewSceneServerGeometry.Torus",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Scene = UnsafeNativeMethods.RhRdkPreviewSceneServerGeometry.Mesh",
        "modifiers": [],
        "protected": false,
        "virtual": false
      }
    ]

  },
  {
    "namespace": "Rhino.Render",
    "name": "RenderMaterial.StandardChildSlots",
    "dataType": "enum",
    "summary": "Defines enumerated constant values for use in <b>TextureChildSlotName</b> method. NOTE WELL - these values cannot be changed. https://mcneel.myjetbrains.com/youtrack/issue/RH-57752",
    "since": "5.1",
    "values": [
      {
        "signature": "None = 0",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Corresponds to CRhRdkMaterial::ChildSlotUsage::None."
      },
      {
        "signature": "Diffuse = 100",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Corresponds to CRhRdkMaterial::ChildSlotUsage::Diffuse."
      },
      {
        "signature": "Transparency = 101",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Corresponds to CRhRdkMaterial::ChildSlotUsage::Transparency"
      },
      {
        "signature": "Bump = 102",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Corresponds to CRhRdkMaterial::ChildSlotUsage::Bump"
      },
      {
        "signature": "Environment = 103",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Corresponds to CRhRdkMaterial::ChildSlotUsage::Environment"
      },
      {
        "signature": "PbrBaseColor = 100",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Corresponds to CRhRdkMaterial::ChildSlotUsage::PBR_base_color"
      },
      {
        "signature": "PbrSubsurface = 104",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Corresponds to CRhRdkMaterial::ChildSlotUsage::PBR_subsurface"
      },
      {
        "signature": "PbrSubSurfaceScattering = 105",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Corresponds to CRhRdkMaterial::ChildSlotUsage::PBR_subsurface_scattering_color"
      },
      {
        "signature": "PbrSubsurfaceScatteringRadius = 106",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Corresponds to CRhRdkMaterial::ChildSlotUsage::PBR_subsurface_scattering_radius"
      },
      {
        "signature": "PbrMetallic = 107",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Corresponds to CRhRdkMaterial::ChildSlotUsage::PBR_metallic"
      },
      {
        "signature": "PbrSpecular = 108",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Corresponds to CRhRdkMaterial::ChildSlotUsage::PBR_specular"
      },
      {
        "signature": "PbrSpecularTint = 109",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Corresponds to CRhRdkMaterial::ChildSlotUsage::PBR_specular_tint"
      },
      {
        "signature": "PbrRoughness = 110",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Corresponds to CRhRdkMaterial::ChildSlotUsage::PBR_roughness"
      },
      {
        "signature": "PbrAnisotropic = 111",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Corresponds to CRhRdkMaterial::ChildSlotUsage::PBR_anisotropic"
      },
      {
        "signature": "PbrAnisotropicRotation = 112",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Corresponds to CRhRdkMaterial::ChildSlotUsage::PBR_anisotropic_rotation"
      },
      {
        "signature": "PbrSheen = 113",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Corresponds to CRhRdkMaterial::ChildSlotUsage::PBR_sheen"
      },
      {
        "signature": "PbrSheenTint = 114",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Corresponds to CRhRdkMaterial::ChildSlotUsage::PBR_sheen_tint"
      },
      {
        "signature": "PbrClearcoat = 115",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Corresponds to CRhRdkMaterial::ChildSlotUsage::PBR_clearcoat"
      },
      {
        "signature": "PbrClearcoatRoughness = 116",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Corresponds to CRhRdkMaterial::ChildSlotUsage::PBR_clearcoat_roughness"
      },
      {
        "signature": "PbrOpacityIor = 117",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Corresponds to CRhRdkMaterial::ChildSlotUsage::PBR_opacity_ior"
      },
      {
        "signature": "PbrOpacity = 101",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Corresponds to CRhRdkMaterial::ChildSlotUsage::PBR_opacity"
      },
      {
        "signature": "PbrOpacityRoughness = 118",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Corresponds to CRhRdkMaterial::ChildSlotUsage::PBR_opacity_roughness"
      },
      {
        "signature": "PbrEmission = 119",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Corresponds to CRhRdkMaterial::ChildSlotUsage::PBR_emission"
      },
      {
        "signature": "PbrAmbientOcclusion = 120",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Corresponds to CRhRdkMaterial::ChildSlotUsage::PBR_ambient_occlusion"
      },
      {
        "signature": "PbrDisplacement = 121",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Corresponds to CRhRdkMaterial::ChildSlotUsage::PBR_smudge"
      },
      {
        "signature": "PbrClearcoatBump = 122",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Corresponds to CRhRdkMaterial::ChildSlotUsage::PBR_clearcoat_roughness"
      },
      {
        "signature": "PbrAlpha = 123",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Corresponds to CRhRdkMaterial::ChildSlotUsage::PBR_alpha"
      },
      {
        "signature": "BlendAmount = 124",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "CRhRdkMaterial::ChildSlotUsage::Blend_amount"
      }
    ]

  },
  {
    "namespace": "Rhino.Render",
    "name": "RenderMaterialTable",
    "dataType": "class",
    "interfaces": ["IRenderContentTable<RenderMaterial>", "IEnumerable<RenderMaterial>", "Collections.IRhinoTable<RenderMaterial>"],
    "properties": [
      {
        "signature": "int Count",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.7",
        "property": ["get"]
      },
      {
        "signature": "RenderMaterial this[int index]",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false
      }
    ],
    "methods": [
      {
        "signature": "System.Boolean Add(RenderMaterial c)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0"
      },
      {
        "signature": "System.Void BeginChange(RenderContent.ChangeContexts changeContext)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "7.0"
      },
      {
        "signature": "System.Void EndChange()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "7.0"
      },
      {
        "signature": "RenderMaterial Find(System.Guid id)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "8.0"
      },
      {
        "signature": "IEnumerator<RenderMaterial> GetEnumerator()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.7"
      },
      {
        "signature": "System.Boolean Remove(RenderMaterial c)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0"
      }
    ]
  },
  {
    "namespace": "Rhino.Render",
    "name": "RenderPanels",
    "dataType": "class",
    "summary": "This class is used to extend the standard Render user interface",
    "methods": [
      {
        "signature": "System.Object FromRenderSessionId(PlugIns.PlugIn plugIn, System.Type panelType, System.Guid renderSessionId)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Get the instance of a render panel associated with a specific render session, this is useful when it is necessary to update a control from a  <b>RenderPipeline</b>",
        "since": "5.11",
        "parameters": [
          {
            "name": "plugIn",
            "type": "PlugIns.PlugIn",
            "summary": "The plug-in that registered the custom user interface"
          },
          {
            "name": "panelType",
            "type": "System.Type",
            "summary": "The type of panel to return"
          },
          {
            "name": "renderSessionId",
            "type": "System.Guid",
            "summary": "The <b>RenderPipeline.RenderSessionId</b> of a specific render session."
          }
        ],
        "returns": "Returns the custom panel object if found; otherwise None is returned."
      },
      {
        "signature": "System.Void RegisterPanel(PlugIn plugin, RenderPanelType renderPanelType, System.Type panelType, System.Guid renderEngineId, System.String caption, System.Boolean alwaysShow, System.Boolean initialShow, ExtraSidePanePosition pos)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Register custom render user interface with Rhino.  This should only be done in  <b>RenderPlugIn.RegisterRenderPanels</b> . Panels registered after <b>RenderPlugIn.RegisterRenderPanels</b> is called will be ignored.",
        "since": "8.0",
        "parameters": [
          {
            "name": "plugin",
            "type": "PlugIn",
            "summary": "The plug-in providing the custom user interface"
          },
          {
            "name": "renderPanelType",
            "type": "RenderPanelType",
            "summary": "See <b>RenderPanelType</b> for supported user interface types."
          },
          {
            "name": "panelType",
            "type": "System.Type",
            "summary": "The type of object to be created and added to the render container."
          },
          {
            "name": "renderEngineId",
            "type": "System.Guid",
            "summary": "The render engine id allowing the UI to be shown."
          },
          {
            "name": "caption",
            "type": "System.String",
            "summary": "The caption for the custom user interface."
          },
          {
            "name": "alwaysShow",
            "type": "System.Boolean",
            "summary": "If True the custom user interface will always be visible, if False then it may be hidden or shown as requested by the renderer."
          },
          {
            "name": "initialShow",
            "type": "System.Boolean",
            "summary": "Initial visibility state of the custom user interface control."
          },
          {
            "name": "pos",
            "type": "ExtraSidePanePosition",
            "summary": "The position to dock the extra side pane at."
          }
        ]
      },
      {
        "signature": "System.Void RegisterPanel(PlugIn plugin, RenderPanelType renderPanelType, System.Type panelType, System.Guid renderEngineId, System.String caption, System.Boolean alwaysShow, System.Boolean initialShow)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Register custom render user interface with Rhino.  This should only be done in  <b>RenderPlugIn.RegisterRenderPanels</b> . Panels registered after <b>RenderPlugIn.RegisterRenderPanels</b> is called will be ignored.",
        "since": "7.0",
        "parameters": [
          {
            "name": "plugin",
            "type": "PlugIn",
            "summary": "The plug-in providing the custom user interface"
          },
          {
            "name": "renderPanelType",
            "type": "RenderPanelType",
            "summary": "See <b>RenderPanelType</b> for supported user interface types."
          },
          {
            "name": "panelType",
            "type": "System.Type",
            "summary": "The type of object to be created and added to the render container."
          },
          {
            "name": "renderEngineId",
            "type": "System.Guid",
            "summary": "The render engine id allowing the UI to be shown."
          },
          {
            "name": "caption",
            "type": "System.String",
            "summary": "The caption for the custom user interface."
          },
          {
            "name": "alwaysShow",
            "type": "System.Boolean",
            "summary": "If True the custom user interface will always be visible, if False then it may be hidden or shown as requested by the renderer."
          },
          {
            "name": "initialShow",
            "type": "System.Boolean",
            "summary": "Initial visibility state of the custom user interface control."
          }
        ]
      },
      {
        "signature": "System.Void RegisterPanel(PlugIn plugin, RenderPanelType renderPanelType, System.Type panelType, System.String caption, System.Boolean alwaysShow, System.Boolean initialShow)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Register custom render user interface with Rhino.  This should only be done in <b>RenderPlugIn.RegisterRenderPanels</b> .  Panels registered after <b>RenderPlugIn.RegisterRenderPanels</b> is called will be ignored.",
        "since": "5.11",
        "deprecated": "7.0",
        "parameters": [
          {
            "name": "plugin",
            "type": "PlugIn",
            "summary": "The plug-in providing the custom user interface"
          },
          {
            "name": "renderPanelType",
            "type": "RenderPanelType",
            "summary": "See <b>RenderPanelType</b> for supported user interface types."
          },
          {
            "name": "panelType",
            "type": "System.Type",
            "summary": "The type of object to be created and added to the render container."
          },
          {
            "name": "caption",
            "type": "System.String",
            "summary": "The caption for the custom user interface."
          },
          {
            "name": "alwaysShow",
            "type": "System.Boolean",
            "summary": "If True the custom user interface will always be visible, if False then it may be hidden or shown as requested by the user."
          },
          {
            "name": "initialShow",
            "type": "System.Boolean",
            "summary": "Initial visibility state of the custom user interface control."
          }
        ]
      }
    ]
  },
  {
    "namespace": "Rhino.Render",
    "name": "RenderPanels.ExtraSidePanePosition",
    "dataType": "enum",
    "since": "8.0",
    "values": [
      {
        "signature": "Left",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Top",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Right",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Bottom",
        "modifiers": [],
        "protected": false,
        "virtual": false
      }
    ]

  },
  {
    "namespace": "Rhino.Render",
    "name": "RenderPanelType",
    "dataType": "enum",
    "summary": "Contains the custom user interfaces that may be provided",
    "since": "5.11",
    "values": [
      {
        "signature": "RenderWindow = UnsafeNativeMethods.RhRdkCustomUiType.RenderWindowCustomDlgInterface",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "A custom control panel added to the render output window."
      }
    ]

  },
  {
    "namespace": "Rhino.Render",
    "name": "RenderPipeline",
    "dataType": "class",
    "summary": "Provides facilities to a render plug-in for integrating with the standard Rhino render window. Also adds helper functions for processing a render scene. This is the suggested class to use when integrating a renderer with Rhino and maintaining a \"standard\" user interface that users will expect.",
    "interfaces": ["IDisposable"],
    "constructors": [
      {
        "signature": "RenderPipeline(RhinoDoc doc, RunMode mode, PlugIn plugin, Size sizeRendering, string caption, StandardChannels channels, bool reuseRenderWindow, bool clearLastRendering, AsyncRenderContext aRC)",
        "modifiers": ["protected"],
        "protected": true,
        "virtual": false,
        "summary": "Constructs a subclass of this object on the stack in your Rhino plug-in's Render() or RenderWindow() implementation. This constructor should be used when a non-blocking RenderWindow is required.  Note that the asynchronous render context will not be used when mode is Scripted.",
        "parameters": [
          {
            "name": "doc",
            "type": "RhinoDoc",
            "summary": "A Rhino document."
          },
          {
            "name": "mode",
            "type": "Commands.RunMode",
            "summary": "A command running mode, such as scripted or interactive."
          },
          {
            "name": "plugin",
            "type": "PlugIn",
            "summary": "A plug-in."
          },
          {
            "name": "sizeRendering",
            "type": "Size",
            "summary": "The width and height of the rendering."
          },
          {
            "name": "caption",
            "type": "System.String",
            "summary": "The caption to display in the frame window."
          },
          {
            "name": "channels",
            "type": "RenderWindow.StandardChannels",
            "summary": "The color channel or channels."
          },
          {
            "name": "reuseRenderWindow",
            "type": "System.Boolean",
            "summary": "This parameter is obsolete."
          },
          {
            "name": "clearLastRendering",
            "type": "System.Boolean",
            "summary": "True if the last rendering should be removed. Indicates that this render is being done using RenderQuiet(). It specifically makes sure the render mesh iterator does not display any progress user interface."
          },
          {
            "name": "aRC",
            "type": "AsyncRenderContext",
            "summary": "The asynchronous render context to set"
          }
        ]
      },
      {
        "signature": "RenderPipeline(RhinoDoc doc, RunMode mode, PlugIn plugin, Size sizeRendering, string caption, StandardChannels channels, bool reuseRenderWindow, bool clearLastRendering)",
        "modifiers": ["protected"],
        "protected": true,
        "virtual": false,
        "summary": "Constructs a subclass of this object on the stack in your Rhino plug-in's Render() or RenderWindow() implementation.",
        "parameters": [
          {
            "name": "doc",
            "type": "RhinoDoc",
            "summary": "A Rhino document."
          },
          {
            "name": "mode",
            "type": "Commands.RunMode",
            "summary": "A command running mode, such as scripted or interactive."
          },
          {
            "name": "plugin",
            "type": "PlugIn",
            "summary": "A plug-in."
          },
          {
            "name": "sizeRendering",
            "type": "Size",
            "summary": "The width and height of the rendering."
          },
          {
            "name": "caption",
            "type": "System.String",
            "summary": "The caption to display in the frame window."
          },
          {
            "name": "channels",
            "type": "RenderWindow.StandardChannels",
            "summary": "The color channel or channels."
          },
          {
            "name": "reuseRenderWindow",
            "type": "System.Boolean",
            "summary": "This parameter is obsolete."
          },
          {
            "name": "clearLastRendering",
            "type": "System.Boolean",
            "summary": "True If the last rendering should be removed. Indicates that this render is being done using RenderQuiet(). It specifically makes sure the render mesh iterator does not display any progress user interface."
          }
        ]
      }
    ],
    "properties": [
      {
        "signature": "int ConfirmationSeconds",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Sets the number of seconds that need to elapse during rendering before the user is asked if the rendered image should be saved.",
        "since": "5.0",
        "property": ["set"]
      },
      {
        "signature": "PlugIn PlugIn",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "Guid RenderSessionId",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Get the Id associated with this render session, this is useful when looking up Rhino.Render.RenderPanels.",
        "since": "5.11",
        "property": ["get"]
      }
    ],
    "methods": [
      {
        "signature": "System.String LocalizeRenderReturnCode(RenderReturnCode rc)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "7.1"
      },
      {
        "signature": "Size RenderSize()",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "5.0",
        "deprecated": "6.4"
      },
      {
        "signature": "Size RenderSize(RhinoDoc doc, System.Boolean fromRenderSources)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Get the render size as specified in the ON_3dmRenderSettings, and from RenderSources when fromRenderSources is true.",
        "since": "6.0",
        "returns": "The render size."
      },
      {
        "signature": "Size RenderSize(RhinoDoc doc)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Get the render size as specified in the ON_3dmRenderSettings. Will automatically return the correct size based on the ActiveView or custom settings.",
        "since": "6.0",
        "returns": "The render size."
      },
      {
        "signature": "System.Boolean AddLightToScene(Rhino.DocObjects.LightObject light)",
        "modifiers": ["protected", "virtual"],
        "protected": true,
        "virtual": true
      },
      {
        "signature": "System.Boolean AddRenderMeshToScene(Rhino.DocObjects.RhinoObject obj, Rhino.DocObjects.Material material, Rhino.Geometry.Mesh mesh)",
        "modifiers": ["protected", "virtual"],
        "protected": true,
        "virtual": true
      },
      {
        "signature": "System.Boolean CloseWindow()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Closes the render window associated with this render instance.",
        "since": "5.11",
        "returns": "Return True if successful or False if not."
      },
      {
        "signature": "Rhino.Commands.Result CommandResult()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "System.Boolean ContinueModal()",
        "modifiers": ["protected", "abstract"],
        "protected": true,
        "virtual": false,
        "summary": "Frequently called during a rendering by the frame work in order to determine if the rendering should continue.",
        "returns": "Returns True if the rendering should continue."
      },
      {
        "signature": "System.Void Dispose()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "System.Void Dispose(System.Boolean isDisposing)",
        "modifiers": ["protected", "virtual"],
        "protected": true,
        "virtual": true
      },
      {
        "signature": "RenderWindow GetRenderWindow()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Get the RenderWindow associated with this RenderPipeline instance.  This is virtual rather than abstract for V5 compat",
        "since": "5.0",
        "returns": "RenderWindow if one exists, None otherwise (i.e. rendering has already completed)."
      },
      {
        "signature": "RenderWindow GetRenderWindow(DocObjects.ViewportInfo viewportInfo, System.Boolean fromRenderViewSource, Rectangle region)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "As GetRenderWindow(). The parameter withWireframeChannel controls whether the returned RenderWindow will have the channel added. The parameter fromRenderViewSource controls from where the RenderSize is queried. The viewportInfo instance will be used to set up wireframe channel. This is necessary for rendering different view than is currently active in the viewport",
        "since": "7.19",
        "parameters": [
          {
            "name": "viewportInfo",
            "type": "DocObjects.ViewportInfo",
            "summary": "ViewportInfo used to generate the wireframe channel"
          },
          {
            "name": "fromRenderViewSource",
            "type": "System.Boolean",
            "summary": "True if the RenderWindow size needs to be set from RenderViewSource size. False will use the active view."
          },
          {
            "name": "region",
            "type": "Rectangle",
            "summary": "The region to render. Usually the same as the full render window but in the case of RenderWindow and RenderInWindow, it is the region the user selected in the viewport."
          }
        ],
        "returns": "RenderWindow if one exists, None otherwise (i.e. rendering has already completed)."
      },
      {
        "signature": "RenderWindow GetRenderWindow(DocObjects.ViewportInfo viewportInfo, System.Boolean fromRenderViewSource)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "As GetRenderWindow(). The parameter withWireframeChannel controls whether the returned RenderWindow will have the channel added. The parameter fromRenderViewSource controls from where the RenderSize is queried. The viewportInfo instance will be used to set up wireframe channel. This is necessary for rendering different view than is currently active in the viewport",
        "since": "7.11",
        "parameters": [
          {
            "name": "viewportInfo",
            "type": "DocObjects.ViewportInfo",
            "summary": "ViewportInfo used to generate the wireframe channel for"
          },
          {
            "name": "fromRenderViewSource",
            "type": "System.Boolean",
            "summary": "True if the RenderWindow size needs to be set from RenderViewSource size. False will use the active view."
          }
        ],
        "returns": "RenderWindow if one exists, None otherwise (i.e. rendering has already completed)."
      },
      {
        "signature": "RenderWindow GetRenderWindow(System.Boolean withWireframeChannel, System.Boolean fromRenderViewSource)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "As GetRenderWindow(). The parameter withWireframeChannel controls whether the returned RenderWindow will have the channel added. The parameter fromRenderViewSource controls from where the RenderSize is queried.",
        "since": "6.0",
        "parameters": [
          {
            "name": "withWireframeChannel",
            "type": "System.Boolean",
            "summary": "True if the RenderWindow needs to have a wireframe channel."
          },
          {
            "name": "fromRenderViewSource",
            "type": "System.Boolean",
            "summary": "True if the RenderWindow size needs to be set from RenderViewSource size. False will use the active view."
          }
        ],
        "returns": "RenderWindow if one exists, None otherwise (i.e. rendering has already completed)."
      },
      {
        "signature": "RenderWindow GetRenderWindow(System.Boolean withWireframeChannel)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "As GetRenderWindow(), but if withWireframeChannel is true the returned RenderWindow will have the channel added.",
        "since": "6.0",
        "returns": "RenderWindow with wireframe channel enabled, or null if no RenderWindow can be found (i.e. rendering has completed already)"
      },
      {
        "signature": "RenderWindow GetRenderWindowFromRenderViewSource(System.Boolean fromRenderViewSource)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Like GetRenderWindow(), but with the size for RenderWindow set from RenderViewSources if fromRenderViewSource is set to true",
        "since": "6.0",
        "parameters": [
          {
            "name": "fromRenderViewSource",
            "type": "System.Boolean",
            "summary": "True if"
          }
        ],
        "returns": "RenderWindow if one exists, None otherwise (i.e. rendering has already completed)."
      },
      {
        "signature": "System.Boolean IgnoreRhinoObject(Rhino.DocObjects.RhinoObject obj)",
        "modifiers": ["protected", "virtual"],
        "protected": true,
        "virtual": true
      },
      {
        "signature": "System.Boolean NeedToProcessGeometryTable()",
        "modifiers": ["protected", "virtual"],
        "protected": true,
        "virtual": true
      },
      {
        "signature": "System.Boolean NeedToProcessLightTable()",
        "modifiers": ["protected", "virtual"],
        "protected": true,
        "virtual": true
      },
      {
        "signature": "System.Boolean OnRenderBegin()",
        "modifiers": ["protected", "abstract"],
        "protected": true,
        "virtual": false,
        "summary": "Called by the framework when it is time to start rendering, the render window will be created at this point and it is safe to start"
      },
      {
        "signature": "System.Boolean OnRenderBeginQuiet(Size imageSize)",
        "modifiers": ["protected", "virtual"],
        "protected": true,
        "virtual": true,
        "summary": "Called by the framework when it is time to start rendering quietly, there is no user interface when rendering in this mode and the default post process effects will get applied to the scene when the rendering is complete."
      },
      {
        "signature": "System.Void OnRenderEnd(RenderEndEventArgs e)",
        "modifiers": ["protected", "abstract"],
        "protected": true,
        "virtual": false,
        "summary": "Called by the framework when the user closes the render window or clicks on the stop button in the render window."
      },
      {
        "signature": "System.Boolean OnRenderWindowBegin(Rhino.Display.RhinoView view, System.Drawing.Rectangle rectangle)",
        "modifiers": ["protected", "abstract"],
        "protected": true,
        "virtual": false
      },
      {
        "signature": "System.Void PauseRendering()",
        "modifiers": ["public", "virtual"],
        "protected": false,
        "virtual": true,
        "summary": "Implement to pause the current render session",
        "since": "6.0"
      },
      {
        "signature": "RenderReturnCode Render()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Call this function to render the scene normally. The function returns when rendering is complete (or cancelled).",
        "since": "5.0",
        "returns": "A code that explains how rendering completed."
      },
      {
        "signature": "System.Boolean RenderEnterModalLoop()",
        "modifiers": ["protected", "virtual"],
        "protected": true,
        "virtual": true
      },
      {
        "signature": "System.Boolean RenderExitModalLoop()",
        "modifiers": ["protected", "virtual"],
        "protected": true,
        "virtual": true
      },
      {
        "signature": "System.Boolean RenderPreCreateWindow()",
        "modifiers": ["protected", "virtual"],
        "protected": true,
        "virtual": true
      },
      {
        "signature": "System.Boolean RenderSceneWithNoMeshes()",
        "modifiers": ["protected", "virtual"],
        "protected": true,
        "virtual": true
      },
      {
        "signature": "RenderReturnCode RenderWindow(Display.RhinoView view, Rectangle rect, System.Boolean inWindow)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Call this function to render the scene in a view window. The function returns when rendering is complete (or cancelled).",
        "since": "5.0",
        "parameters": [
          {
            "name": "view",
            "type": "Display.RhinoView",
            "summary": "the view that the user selected a rectangle in."
          },
          {
            "name": "rect",
            "type": "Rectangle",
            "summary": "rectangle that the user selected."
          },
          {
            "name": "inWindow",
            "type": "System.Boolean",
            "summary": "True to render directly into the view window."
          }
        ],
        "returns": "A code that explains how rendering completed."
      },
      {
        "signature": "System.Void ResumeRendering()",
        "modifiers": ["public", "virtual"],
        "protected": false,
        "virtual": true,
        "summary": "Implement to resume current render session",
        "since": "6.0"
      },
      {
        "signature": "System.Boolean SaveImage(System.String fileName, System.Boolean saveAlpha)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Saves the rendered image to a file. Does not prompt the user in any way.",
        "since": "5.14",
        "parameters": [
          {
            "name": "fileName",
            "type": "System.String",
            "summary": "Full path to the file name to save to."
          },
          {
            "name": "saveAlpha",
            "type": "System.Boolean",
            "summary": "Determines if alpha will be saved in files that support it (e.g., PNG)."
          }
        ]
      },
      {
        "signature": "System.Void SetAsyncRenderContext(ref AsyncRenderContext aRC)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0"
      },
      {
        "signature": "System.Boolean SupportsPause()",
        "modifiers": ["public", "virtual"],
        "protected": false,
        "virtual": true,
        "summary": "Override and return True if the renderer supports pausing",
        "since": "6.0",
        "returns": "True if pausing is supported, False otherwise"
      }
    ]
  },
  {
    "namespace": "Rhino.Render",
    "name": "RenderPipeline.RenderReturnCode",
    "dataType": "enum",
    "since": "5.0",
    "values": [
      {
        "signature": "Ok = 0",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "EmptyScene",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Cancel",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "NoActiveView",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "OnPreCreateWindow",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "NoFrameWndPointer",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "ErrorCreatingWindow",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "ErrorStartingRender",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "EnterModalLoop",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "ExitModalLoop",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "ExitRhino",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "InternalError",
        "modifiers": [],
        "protected": false,
        "virtual": false
      }
    ]

  },
  {
    "namespace": "Rhino.Render",
    "name": "RenderPlugInInfo",
    "dataType": "class",
    "properties": [
      {
        "signature": "string Name",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "Guid PlugInId",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get", "set"]
      }
    ]
  },
  {
    "namespace": "Rhino.Render",
    "name": "RenderPlugInList",
    "dataType": "class",
    "baseclass": "List<RenderPlugInInfo>",
    "constructors": [
      {
        "signature": "RenderPlugInList()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0"
      }
    ]
  },
  {
    "namespace": "Rhino.Render",
    "name": "RenderPrimitive",
    "dataType": "class",
    "interfaces": ["IDisposable"],
    "properties": [
      {
        "signature": "BoundingBox BoundingBox",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "The bounding box for this primitive.",
        "since": "5.7",
        "property": ["get"]
      },
      {
        "signature": "Transform InstanceTransform",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Instance reference transform or Identity if not an instance reference.",
        "since": "5.7",
        "property": ["get"]
      },
      {
        "signature": "RenderPrimitiveType PrimitiveType",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Call this before extracting meshes if you support render primitives to get the <b>RenderPrimitiveType</b> of this mesh then call the associated <b>TryGetSphere</b> , <b>TryGetPlane</b> , <b>TryGetCone</b> , or  <b>TryGetBox</b> method.  Calling the <b>Mesh</b> property will mesh the primitive and return a mesh always.",
        "since": "5.7",
        "property": ["get"]
      },
      {
        "signature": "RenderMaterial RenderMaterial",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "The <b>RenderMaterial</b> associated with this mesh or None if there is not one.",
        "since": "5.7",
        "property": ["get"]
      },
      {
        "signature": "RhinoObject RhinoObject",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "The Rhino object associated with this render primitive.",
        "since": "5.7",
        "property": ["get"]
      }
    ],
    "methods": [
      {
        "signature": "System.Void Dispose()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.7"
      },
      {
        "signature": "System.Void Dispose(System.Boolean isDisposing)",
        "modifiers": ["protected"],
        "protected": true,
        "virtual": false
      },
      {
        "signature": "Mesh Mesh()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns the mesh associated with the object, this will mesh primitives and always return a mesh.",
        "since": "5.7"
      },
      {
        "signature": "System.Boolean TryGetBox(out Box box)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Call this method to get a <b>Box</b> primitive for this mesh.  If this meshes <b>PrimitiveType</b> is not a <b>Rhino.Render.RenderPrimitiveType.Box</b>  then the box parameter is set to <b>Box.Empty</b> .",
        "since": "5.7",
        "parameters": [
          {
            "name": "box",
            "type": "Box",
            "summary": "Gets set to the box primitive for this object on success or <b>Box.Empty</b> on error."
          }
        ],
        "returns": "Returns True if <b>PrimitiveType</b> is <b>Rhino.Render.RenderPrimitiveType.Box</b> and the box parameter was initialized otherwise returns false."
      },
      {
        "signature": "System.Boolean TryGetCone(out Cone cone, out Plane truncation)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Call this method to get a <b>Cone</b> primitive for this mesh.  If this meshes <b>PrimitiveType</b> is not a <b>Rhino.Render.RenderPrimitiveType.Cone</b>  then the cone parameter is set to <b>Cone.Unset</b> and the truncation parameter is set to <b>Plane.Unset</b> .",
        "since": "5.7",
        "parameters": [
          {
            "name": "cone",
            "type": "Cone",
            "summary": "Gets set to the cone primitive for this object on success or <b>Cone.Unset</b> on error."
          },
          {
            "name": "truncation",
            "type": "Plane",
            "summary": "Gets set to the truncation plane for this object on success or <b>Plane.Unset</b> on error."
          }
        ],
        "returns": "Returns True if <b>PrimitiveType</b> is <b>Rhino.Render.RenderPrimitiveType.Cone</b> and the cone and truncation parameters were initialized otherwise returns false."
      },
      {
        "signature": "System.Boolean TryGetPlane(out PlaneSurface plane)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Call this method to get a <b>Plane</b> primitive for this mesh.  If this meshes <b>PrimitiveType</b> is not a <b>Rhino.Render.RenderPrimitiveType.Plane</b>  then the plane parameter is set to null.",
        "since": "5.7",
        "parameters": [
          {
            "name": "plane",
            "type": "PlaneSurface",
            "summary": "Gets set to the plane primitive for this object on success or None on error."
          }
        ],
        "returns": "Returns True if <b>PrimitiveType</b> is <b>Rhino.Render.RenderPrimitiveType.Plane</b> and the plane parameter was initialized otherwise returns false."
      },
      {
        "signature": "System.Boolean TryGetSphere(out Sphere sphere)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Call this method to get a sphere primitive for this mesh.  If this meshes <b>PrimitiveType</b> is not a <b>Rhino.Render.RenderPrimitiveType.Sphere</b>  then the sphere parameter is set to <b>Sphere.Unset</b> .",
        "since": "5.7",
        "parameters": [
          {
            "name": "sphere",
            "type": "Sphere",
            "summary": "Gets set to the primitive sphere for this object on success."
          }
        ],
        "returns": "Returns True if <b>PrimitiveType</b> is <b>Rhino.Render.RenderPrimitiveType.Sphere</b> and the sphere parameter was initialized otherwise returns false."
      }
    ]
  },
  {
    "namespace": "Rhino.Render",
    "name": "RenderPrimitiveList",
    "dataType": "class",
    "interfaces": ["IDisposable"],
    "properties": [
      {
        "signature": "int Count",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Number of meshes in this list",
        "since": "5.7",
        "deprecated": "8.0",
        "property": ["get"]
      },
      {
        "signature": "RhinoObject RhinoObject",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "The Rhino object associated with this list",
        "since": "5.7",
        "deprecated": "8.0",
        "property": ["get"]
      },
      {
        "signature": "bool UseObjectsMappingChannels",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns True if the texture mapping will be taken from the Rhino object otherwise; the texture mapping will use the texture coordinates on the mesh only.",
        "since": "5.7",
        "deprecated": "8.0",
        "property": ["get", "set"]
      }
    ],
    "methods": [
      {
        "signature": "System.Void Add(Box box, RenderMaterial material)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Add primitive box and material.",
        "since": "5.7",
        "deprecated": "8.0",
        "parameters": [
          {
            "name": "box",
            "type": "Box",
            "summary": "Box to add."
          },
          {
            "name": "material",
            "type": "RenderMaterial",
            "summary": "Material to add, may be None if not needed."
          }
        ]
      },
      {
        "signature": "System.Void Add(Cone cone, Plane truncation, RenderMaterial material)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Add primitive cone and material.",
        "since": "5.7",
        "deprecated": "8.0",
        "parameters": [
          {
            "name": "cone",
            "type": "Cone",
            "summary": "Cone to add."
          },
          {
            "name": "truncation",
            "type": "Plane",
            "summary": "The plane used to cut the cone (the non-apex end is kept). Should be equal to cone.plane if not truncated."
          },
          {
            "name": "material",
            "type": "RenderMaterial",
            "summary": "Material to add, may be None if not needed."
          }
        ]
      },
      {
        "signature": "System.Void Add(IEnumerable<Mesh> meshes, RenderMaterial material)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "7.5",
        "deprecated": "8.0"
      },
      {
        "signature": "System.Void Add(Mesh mesh, RenderMaterial material, Transform t)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Add mesh and material.",
        "since": "6.12",
        "deprecated": "8.0",
        "parameters": [
          {
            "name": "mesh",
            "type": "Mesh",
            "summary": "Mesh to add."
          },
          {
            "name": "material",
            "type": "RenderMaterial",
            "summary": "Transformation of this mesh. Material to add, may be None if not needed."
          },
          {
            "name": "t",
            "type": "Transform",
            "summary": "Transformation of this mesh."
          }
        ]
      },
      {
        "signature": "System.Void Add(Mesh mesh, RenderMaterial material)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Add mesh and material.",
        "since": "5.7",
        "deprecated": "8.0",
        "parameters": [
          {
            "name": "mesh",
            "type": "Mesh",
            "summary": "Mesh to add."
          },
          {
            "name": "material",
            "type": "RenderMaterial",
            "summary": "Material to add, may be None if not needed."
          }
        ]
      },
      {
        "signature": "System.Void Add(PlaneSurface plane, RenderMaterial material)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Add primitive plane and material.",
        "since": "5.7",
        "deprecated": "8.0",
        "parameters": [
          {
            "name": "plane",
            "type": "PlaneSurface",
            "summary": "Plane to add."
          },
          {
            "name": "material",
            "type": "RenderMaterial",
            "summary": "Material to add, may be None if not needed."
          }
        ]
      },
      {
        "signature": "System.Void Add(Sphere sphere, RenderMaterial material)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Add primitive sphere and material.",
        "since": "5.7",
        "deprecated": "8.0",
        "parameters": [
          {
            "name": "sphere",
            "type": "Sphere",
            "summary": "Sphere to add."
          },
          {
            "name": "material",
            "type": "RenderMaterial",
            "summary": "Material to add, may be None if not needed."
          }
        ]
      },
      {
        "signature": "System.Boolean AutoDeleteMaterialsOn()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "deprecated": "8.0"
      },
      {
        "signature": "System.Boolean AutoDeleteMeshesOn()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "deprecated": "8.0"
      },
      {
        "signature": "System.Void Clear()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Remove all primitives from this list",
        "since": "5.7",
        "deprecated": "8.0"
      },
      {
        "signature": "System.Void ConvertMeshesToTriangles()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Convert mesh quad faces to triangle faces.",
        "since": "5.7",
        "deprecated": "8.0"
      },
      {
        "signature": "System.Void Dispose()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.7",
        "deprecated": "8.0"
      },
      {
        "signature": "Transform GetInstanceTransform(System.Int32 index)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "deprecated": "8.0"
      },
      {
        "signature": "RenderMaterial Material(System.Int32 index)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Call this method to get the render material associated with the mesh at the specified index.  Will return None if there is no material associated with the requested mesh.",
        "since": "5.7",
        "deprecated": "8.0",
        "parameters": [
          {
            "name": "index",
            "type": "System.Int32",
            "summary": "The zero based index of the item in the list.  Valid values are greater than or equal to 0 and less than Count."
          }
        ],
        "returns": "If there is a render material associated at the requested index then the material is returned otherwise None is returned."
      },
      {
        "signature": "Mesh Mesh(System.Int32 index)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Get the mesh for the primitive at the specified index. If the item at this index is a primitive type other than a mesh then it mesh representation is returned.",
        "since": "5.7",
        "deprecated": "8.0",
        "parameters": [
          {
            "name": "index",
            "type": "System.Int32",
            "summary": "The zero based index of the item in the list.  Valid values are greater than or equal to 0 and less than Count."
          }
        ],
        "returns": "Returns the mesh for the primitive at the specified index. If the item at this index is a primitive type other than a mesh then it mesh representation is returned."
      },
      {
        "signature": "Mesh MeshInstance(System.Int32 index, out Transform instance_transform)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Get the mesh for the primitive at the specified index. If the item at this index is a primitive type other than a mesh then it mesh representation is returned.",
        "since": "6.12",
        "deprecated": "8.0",
        "parameters": [
          {
            "name": "index",
            "type": "System.Int32",
            "summary": "The zero based index of the item in the list.  Valid values are greater than or equal to 0 and less than Count."
          },
          {
            "name": "instance_transform",
            "type": "Transform",
            "summary": "Receives the transformation of this mesh."
          }
        ],
        "returns": "Returns the mesh for the primitive at the specified index. If the item at this index is a primitive type other than a mesh then it mesh representation is returned."
      },
      {
        "signature": "RenderPrimitiveType PrimitiveType(System.Int32 index)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Type of primitive object at this index.",
        "since": "5.7",
        "deprecated": "8.0",
        "parameters": [
          {
            "name": "index",
            "type": "System.Int32",
            "summary": "The zero based index of the item in the list.  Valid values are greater than or equal to 0 and less than Count."
          }
        ],
        "returns": "Primitive type of the item at this index."
      },
      {
        "signature": "System.Void SetInstanceTransform(System.Int32 index, Transform xform)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "deprecated": "8.0"
      },
      {
        "signature": "RenderMaterial[] ToMaterialArray()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Call this method to see if there are any RenderMaterials associated with the meshes.  Each primitive can optionally have a RenderMaterial associated with it, if the RenderMaterial is None then check for a RhinoObject.RenderMaterial.",
        "since": "5.7",
        "deprecated": "8.0",
        "returns": "Return an array that of the same size as the ToMeshArray() containing the RenderMaterial associated with the mesh, may contain None entries if there is no RenderMaterial associated with the custom mesh."
      },
      {
        "signature": "Mesh[] ToMeshArray()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Call this method to get a array of meshes, all primitives will get meshed and the meshes will get included in the returned array.",
        "since": "5.7",
        "deprecated": "8.0",
        "returns": "Return an array of meshes from this list, this will convert all primitives to meshes."
      },
      {
        "signature": "System.Boolean TryGetBox(System.Int32 index, out Box box)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Call this method to get a box at the specified index.",
        "since": "5.7",
        "deprecated": "8.0",
        "parameters": [
          {
            "name": "index",
            "type": "System.Int32",
            "summary": "The zero based index of the item in the list.  Valid values are greater than or equal to 0 and less than Count."
          },
          {
            "name": "box",
            "type": "Box",
            "summary": "Will contain the box at the requested index if the index is in range and the primitive at the requested index is a box."
          }
        ],
        "returns": "Return True if the index is in range and the primitive at the requested index is a box otherwise returns false."
      },
      {
        "signature": "System.Boolean TryGetCone(System.Int32 index, out Cone cone, out Plane truncation)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Call this method to get a box at the specified index.",
        "since": "5.7",
        "deprecated": "8.0",
        "parameters": [
          {
            "name": "index",
            "type": "System.Int32",
            "summary": "The zero based index of the item in the list.  Valid values are greater than or equal to 0 and less than Count."
          },
          {
            "name": "cone",
            "type": "Cone",
            "summary": "Will contain the cone at the requested index if the index is in range and the primitive at the requested index is a box."
          },
          {
            "name": "truncation",
            "type": "Plane",
            "summary": ""
          }
        ],
        "returns": "Return True if the index is in range and the primitive at the requested index is a box otherwise returns false."
      },
      {
        "signature": "System.Boolean TryGetPlane(System.Int32 index, out PlaneSurface plane)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Call this method to get a box at the specified index.",
        "since": "5.7",
        "deprecated": "8.0",
        "parameters": [
          {
            "name": "index",
            "type": "System.Int32",
            "summary": "The zero based index of the item in the list.  Valid values are greater than or equal to 0 and less than Count."
          },
          {
            "name": "plane",
            "type": "PlaneSurface",
            "summary": "Will contain the plane at the requested index if the index is in range and the primitive at the requested index is a plane."
          }
        ],
        "returns": "Return True if the index is in range and the primitive at the requested index is a plane otherwise returns false."
      },
      {
        "signature": "System.Boolean TryGetSphere(System.Int32 index, out Sphere sphere)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Call this method to get a box at the specified index.",
        "since": "5.7",
        "deprecated": "8.0",
        "parameters": [
          {
            "name": "index",
            "type": "System.Int32",
            "summary": "The zero based index of the item in the list.  Valid values are greater than or equal to 0 and less than Count."
          },
          {
            "name": "sphere",
            "type": "Sphere",
            "summary": "Will contain the sphere at the requested index if the index is in range and the primitive at the requested index is a box."
          }
        ],
        "returns": "Return True if the index is in range and the primitive at the requested index is a box otherwise returns false."
      }
    ]
  },
  {
    "namespace": "Rhino.Render",
    "name": "RenderPrimitiveType",
    "dataType": "enum",
    "since": "5.7",
    "values": [
      {
        "signature": "None = 0",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Mesh = 1",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Sphere = 2",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Plane = 3",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Box = 4",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Cone = 5",
        "modifiers": [],
        "protected": false,
        "virtual": false
      }
    ]

  },
  {
    "namespace": "Rhino.Render",
    "name": "RenderPropertyChangedEvent",
    "dataType": "class",
    "summary": "Used by Rhino.Render object property value has changed events.",
    "baseclass": "EventArgs",
    "properties": [
      {
        "signature": "int Context",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Optional argument which may specify the property being modified.",
        "since": "5.10",
        "property": ["get"]
      },
      {
        "signature": "RhinoDoc Document",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "The document triggering the event.",
        "since": "5.10",
        "property": ["get"]
      }
    ]
  },
  {
    "namespace": "Rhino.Render",
    "name": "RenderSettings",
    "dataType": "class",
    "summary": "Contains settings used in rendering.",
    "baseclass": "Rhino.Runtime.CommonObject",
    "constructors": [
      {
        "signature": "RenderSettings()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Initialize a new instance of the RenderSettings class.",
        "since": "5.0"
      },
      {
        "signature": "RenderSettings(RenderSettings source)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Initialize new instance of the RenderSettings class.",
        "since": "6.0",
        "parameters": [
          {
            "name": "source",
            "type": "RenderSettings",
            "summary": "If not null, settings are copied from source."
          }
        ]
      }
    ],
    "properties": [
      {
        "signature": "Color AmbientLight",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the ambient light color used in rendering.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "AntialiasLevel AntialiasLevel",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets anti-alias level, used for render quality",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "Color BackgroundColorBottom",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the background bottom color used in rendering.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "Color BackgroundColorTop",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the background top color used in rendering.  \nSets also the background color if a solid background color is set.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "BackgroundStyle BackgroundStyle",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "How the viewport's background should be filled.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool DepthCue",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets a value indicating whether to render using depth cues.  \nThese are clues to help the perception of position and orientation of objects in the image.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "Dithering Dithering",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "If this object is associated with a document, this gets the document dithering. If this object is associated with a File3dm, this gets the File3dm's dithering. Otherwise it gets a 'free-floating' dithering object.",
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "bool FlatShade",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets a value indicating whether to render using flat shading.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "GroundPlane GroundPlane",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "If this object is associated with a document, this gets the document ground plane. If this object is associated with a File3dm, this gets the File3dm's ground plane. Otherwise it gets a 'free-floating' ground plane object.",
        "since": "8.0",
        "property": ["get"]
      },
      {
        "signature": "double ImageDpi",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Number of dots/inch (dots=pixels) to use when printing and saving bitmaps. The default is 72.0 dots/inch.",
        "since": "5.11",
        "property": ["get", "set"]
      },
      {
        "signature": "Size ImageSize",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets a value indicating the size of the rendering result if UseViewportSize is set to false.  If UseViewportSize is set to true, then this value is ignored.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "UnitSystem ImageUnitSystem",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "unit system to use when converting image pixel size and DPI information into a print size.  Default = inches",
        "since": "5.11",
        "property": ["get", "set"]
      },
      {
        "signature": "LinearWorkflow LinearWorkflow",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "If this object is associated with a document, this gets the document linear workflow. If this object is associated with a File3dm, this gets the File3dm's linear workflow. Otherwise it gets a 'free-floating' linear workflow object.",
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "string NamedView",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Get or set the given named view",
        "since": "6.1",
        "property": ["get", "set"]
      },
      {
        "signature": "PostEffectCollection PostEffects",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "If this object is associated with a document, this gets the document post effect data collection. If this object is associated with a File3dm, this gets the File3dm's post effect data collection. Otherwise it gets a 'free-floating' post effect data collection object.",
        "since": "8.0",
        "property": ["get"]
      },
      {
        "signature": "bool RenderAnnotations",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets a value indicating whether to instruct the rendering engine to show annotations, such as linear dimensions or angular dimensions.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool RenderBackfaces",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets a value indicating whether to render back faces.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "RenderChannels RenderChannels",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "If this object is associated with a document, this gets the document render channels. Otherwise it gets a 'free-floating' render channels object.",
        "since": "7.0",
        "property": ["get"]
      },
      {
        "signature": "bool RenderCurves",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets a value indicating whether to instruct the rendering engine to show curves.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool RenderIsoparams",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets a value indicating whether to instruct the rendering engine to show isocurves.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool RenderMeshEdges",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets a value indicating whether to instruct the rendering engine to show mesh edges.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool RenderPoints",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets a value indicating whether to instruct the rendering engine to show points.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "RenderingSources RenderSource",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the render source <b>RenderingSources</b> enumeration.",
        "since": "6.1",
        "property": ["get", "set"]
      },
      {
        "signature": "SafeFrame SafeFrame",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "If this object is associated with a document, this gets the document safe-frame. If this object is associated with a File3dm, this gets the File3dm's safe-frame. Otherwise it gets a 'free-floating' safe-frame object.",
        "since": "8.0",
        "property": ["get"]
      },
      {
        "signature": "bool ScaleBackgroundToFit",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets a value indicating whether to scale the wallpaper in the background or not. This is meaningful only if the viewport has a wallpaper and render settings are set to render Wallpaper into the background.",
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "int ShadowmapLevel",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "0=none, 1=normal, 2=best.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "Skylight Skylight",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "If this object is associated with a document, this gets the document skylight. If this object is associated with a File3dm, this gets the File3dm's skylight. Otherwise it gets a 'free-floating' skylight object.",
        "since": "8.0",
        "property": ["get"]
      },
      {
        "signature": "string Snapshot",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Set or get the given snapshot view",
        "since": "6.1",
        "property": ["get", "set"]
      },
      {
        "signature": "string SpecificViewport",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Set or get the given specific viewport",
        "since": "6.1",
        "property": ["get", "set"]
      },
      {
        "signature": "Sun Sun",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "If this object is associated with a document, this gets the document sun. If this object is associated with a File3dm, this gets the File3dm's sun. Otherwise it gets a 'free-floating' sun object.",
        "since": "8.0",
        "property": ["get"]
      },
      {
        "signature": "bool TransparentBackground",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets whether rendering should be done with transparent background.",
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool UseHiddenLights",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets a value indicating whether to render using lights that are on layers that are off.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool UseViewportSize",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets a value indicating whether to use the resolution of the viewport being rendered or ImageSize when rendering",
        "since": "5.0",
        "property": ["get", "set"]
      }
    ],
    "methods": [
      {
        "signature": "RenderSettings Duplicate()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Makes a free-floating copy of the object.",
        "since": "8.0"
      },
      {
        "signature": "RenderEnvironment RenderEnvironment(EnvironmentUsage usage, EnvironmentPurpose purpose)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Get the render environment for a particular usage. Only works if this render settings is in a document. If usage is Background and the background mode is set to 'Solid Color' or 'Gradient' (i.e., not 'Environment'), then None will be returned.",
        "since": "8.0"
      },
      {
        "signature": "System.Guid RenderEnvironmentId(EnvironmentUsage usage, EnvironmentPurpose purpose)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Get the id of the render environment for a particular usage. If usage is Background and the background mode is set to 'Solid Color' or 'Gradient' (i.e., not 'Environment'), then Guid.Empty will be returned.",
        "since": "8.0"
      },
      {
        "signature": "System.Boolean RenderEnvironmentOverride(EnvironmentUsage usage)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "For usage background, this checks if the background style is set to 'Environment'. For reflection and skylighting, it checks if the relevant custom override is enabled.",
        "since": "8.0"
      },
      {
        "signature": "System.Void SetRenderEnvironment(EnvironmentUsage usage, RenderEnvironment env)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Set the render environment for a particular usage. Passing None for usage Skylighting or Reflection will turn the override for that usage off.",
        "since": "8.0"
      },
      {
        "signature": "System.Void SetRenderEnvironmentId(EnvironmentUsage usage, System.Guid guid)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Set the id of the render environment for a particular usage. Passing Guid.Empty for usage Skylighting or Reflection will turn the override for that usage off.",
        "since": "8.0"
      },
      {
        "signature": "System.Void SetRenderEnvironmentOverride(EnvironmentUsage usage, System.Boolean on)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Set the given environment override on/off. Only works for usage Reflection and Skylighting.",
        "since": "8.0"
      }
    ]
  },
  {
    "namespace": "Rhino.Render",
    "name": "RenderSettings.EnvironmentPurpose",
    "dataType": "enum",
    "summary": "The purpose a render environment is being used for.",
    "since": "8.0",
    "values": [
      {
        "signature": "Standard",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Used to directly get and set the environment instance id."
      },
      {
        "signature": "ForRendering",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Used to get the environment instance id to be used for actual rendering."
      }
    ]

  },
  {
    "namespace": "Rhino.Render",
    "name": "RenderSettings.EnvironmentUsage",
    "dataType": "enum",
    "summary": "The usage of a render environment.",
    "since": "8.0",
    "values": [
      {
        "signature": "Background",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Specifies the 360 background environment."
      },
      {
        "signature": "Reflection",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Specifies the custom reflective environment. Also used for refraction."
      },
      {
        "signature": "Skylighting",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Specifies the custom skylighting environment."
      }
    ]

  },
  {
    "namespace": "Rhino.Render",
    "name": "RenderSettings.RenderingSources",
    "dataType": "enum",
    "summary": "Rendering source (render directly from a NamedView or Snapshot)",
    "since": "6.1",
    "values": [
      {
        "signature": "ActiveViewport",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Get the rendering view from the currently active viewport (as in all previous versions of Rhino)"
      },
      {
        "signature": "SpecificViewport",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Get the rendering view from the named viewport (see NamedViewport below)"
      },
      {
        "signature": "NamedView",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Get the rendering view from a specific named view (see NamedView below)"
      },
      {
        "signature": "SnapShot",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Before rendering, restore the Snapshot specified in Snapshot below, then render."
      }
    ]

  },
  {
    "namespace": "Rhino.Render",
    "name": "RenderSourceView",
    "dataType": "class",
    "summary": "Helper class to get the correct view from the Render View Source settings.  An instance of this class is supposed to be used with the using() {} construct.",
    "interfaces": ["IDisposable"],
    "constructors": [
      {
        "signature": "RenderSourceView(RhinoDoc doc)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Create a new RenderSourceView for the given doc.  Note that this should be done with using(var rsv = new RenderSourceView(doc)) {}  If the RenderSettings have the source view set to for instance a SnapShot this construct will ensure that the (active) view is set to the correct snapshot, and reverted back to the original once this instance goes out of scope.",
        "since": "6.0",
        "parameters": [
          {
            "name": "doc",
            "type": "RhinoDoc",
            "summary": "Rhino document"
          }
        ]
      }
    ],
    "methods": [
      {
        "signature": "System.Void Dispose()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0"
      },
      {
        "signature": "System.Void Dispose(System.Boolean isDisposing)",
        "modifiers": ["protected", "virtual"],
        "protected": true,
        "virtual": true
      },
      {
        "signature": "Rhino.DocObjects.ViewInfo GetViewInfo()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Get the ViewInfo as specified by the render source view settings.",
        "since": "6.0",
        "returns": "ViewInfo if view was found, None otherwise"
      }
    ]
  },
  {
    "namespace": "Rhino.Render",
    "name": "RenderTabs",
    "dataType": "class",
    "methods": [
      {
        "signature": "System.Object FromRenderSessionId(PlugIn plugIn, System.Type tabType, System.Guid renderSessionId)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Get the instance of a render tab associated with a specific render session, this is useful when it is necessary to update a control from a  <b>RenderPipeline</b>",
        "since": "5.11",
        "parameters": [
          {
            "name": "plugIn",
            "type": "PlugIn",
            "summary": "The plug-in that registered the custom user interface"
          },
          {
            "name": "tabType",
            "type": "System.Type",
            "summary": "The type of tab to return"
          },
          {
            "name": "renderSessionId",
            "type": "System.Guid",
            "summary": "The <b>RenderPipeline.RenderSessionId</b> of a specific render session."
          }
        ],
        "returns": "Returns the custom tab object if found; otherwise None is returned."
      },
      {
        "signature": "System.Guid SessionIdFromTab(System.Object tab)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Get the render session id that created the specified tab object. Only applies to tabs in the context of a render window, not other contexts like Rhino Options or View Properties. It actually returns the identifier associated with the side pane UI which is typically the same as the render session id.",
        "since": "5.11"
      },
      {
        "signature": "System.Guid SidePaneUiIdFromTab(System.Object tab)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Get the id of the side pane UI that a tab is in.",
        "since": "8.0"
      },
      {
        "signature": "System.Void RegisterTab(PlugIn plugin, System.Type tabType, System.Guid renderEngineId, System.String caption, Icon icon)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "7.0"
      },
      {
        "signature": "System.Void RegisterTab(PlugIn plugin, System.Type tabType, System.String caption, Icon icon)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Register custom render user interface with Rhino.  This should only be done in <b>RenderPlugIn.RegisterRenderTabs</b> .  Panels registered after <b>RenderPlugIn.RegisterRenderTabs</b> is called will be ignored.  If the class includes a public method \"void DoHelp()\" the method will get called when F1 is pressed and the custom tab is active.",
        "since": "5.11",
        "deprecated": "7.0",
        "parameters": [
          {
            "name": "plugin",
            "type": "PlugIn",
            "summary": "The plug-in providing the custom user interface"
          },
          {
            "name": "tabType",
            "type": "System.Type",
            "summary": "The type of object to be created and added to the render container."
          },
          {
            "name": "caption",
            "type": "System.String",
            "summary": "The caption for the custom user interface."
          },
          {
            "name": "icon",
            "type": "Icon",
            "summary": ""
          }
        ]
      }
    ]
  },
  {
    "namespace": "Rhino.Render",
    "name": "RenderTexture",
    "dataType": "class",
    "baseclass": "Rhino.Render.RenderContent",
    "constructors": [
      {
        "signature": "RenderTexture()",
        "summary": "Initializes a new instance of the RenderTexture class"
      }
    ],
    "properties": [
      {
        "signature": "Transform LocalMappingTransform",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the transformation that can be applied to the UVW vector to convert it from normalized texture space into locally mapped space (ie - with repeat, offset and rotation applied.)",
        "since": "5.1",
        "property": ["get"]
      },
      {
        "signature": "(int width, int height, int depth)? PixelSize2",
        "modifiers": ["public", "virtual"],
        "protected": false,
        "virtual": true,
        "summary": "Override to provide details on the actual pixel sizes of this texture in UVW directions return None if the texture should not be treated as a bitmap.",
        "since": "7.6",
        "property": ["get"]
      },
      {
        "signature": "uint RenderHashWithoutLocalMapping",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Render hash for texture excluding local mapping.",
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "uint RenderHashWithoutLocalMappingOrLinearWorkflow",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Render hash for texture excluding local mapping and linear workflow.",
        "since": "8.0",
        "property": ["get"]
      }
    ],
    "methods": [
      {
        "signature": "System.Boolean GetEnvironmentMappingProjection(TextureEnvironmentMappingMode mode, Vector3d reflectionVector, out System.Single u, out System.Single v)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "5.7"
      },
      {
        "signature": "System.IntPtr GetProceduralAaltonenNoiseArrayPointer()",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "8.0"
      },
      {
        "signature": "System.UInt32 GetProceduralAaltonenNoiseArraySize()",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "8.0"
      },
      {
        "signature": "System.IntPtr GetProceduralImpulseNoiseArrayPointer()",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "8.0"
      },
      {
        "signature": "System.UInt32 GetProceduralImpulseNoiseArraySize()",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "8.0"
      },
      {
        "signature": "System.IntPtr GetProceduralPerlinNoiseArrayPointer()",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "8.0"
      },
      {
        "signature": "System.UInt32 GetProceduralPerlinNoiseArraySize()",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "8.0"
      },
      {
        "signature": "System.IntPtr GetProceduralVcNoiseArrayPointer()",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "8.0"
      },
      {
        "signature": "System.UInt32 GetProceduralVcNoiseArraySize()",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "8.0"
      },
      {
        "signature": "Point3d GetWcsBoxMapping(Point3d worldXyz, Vector3d normal)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "5.7"
      },
      {
        "signature": "RenderTexture NewBitmapTexture(SimulatedTexture texture, RhinoDoc doc)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Constructs a new basic texture from a SimulatedTexture.",
        "since": "6.4",
        "parameters": [
          {
            "name": "texture",
            "type": "SimulatedTexture",
            "summary": "The texture to create the basic texture from."
          },
          {
            "name": "doc",
            "type": "RhinoDoc",
            "summary": "The document to associate the texture with."
          }
        ],
        "returns": "A new render texture."
      },
      {
        "signature": "RenderTexture NewBitmapTexture(SimulatedTexture texture)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Constructs a new basic texture from a SimulatedTexture.",
        "since": "5.3",
        "deprecated": "6.4",
        "parameters": [
          {
            "name": "texture",
            "type": "SimulatedTexture",
            "summary": "The texture to create the basic texture from."
          }
        ],
        "returns": "A new render texture."
      },
      {
        "signature": "RenderTexture NewBitmapTexture(System.Drawing.Bitmap bitmap, RhinoDoc doc)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Constructs a new basic texture from a Bitmap.",
        "since": "7.0",
    "remarks": "The returned bitmap texture holds a copy of 'bitmap'.",
        "parameters": [
          {
            "name": "bitmap",
            "type": "System.Drawing.Bitmap",
            "summary": "The bitmap to create the basic texture from."
          },
          {
            "name": "doc",
            "type": "RhinoDoc",
            "summary": "The document to associate the texture with."
          }
        ],
        "returns": "A new render texture."
      },
      {
        "signature": "TextureEvaluator CreateEvaluator()",
        "modifiers": ["public", "virtual"],
        "protected": false,
        "virtual": true,
        "summary": "Constructs a texture evaluator. This is an independent lightweight object capable of evaluating texture color throughout uvw space. May be called from within a rendering shade pipeline.",
        "since": "5.1",
        "deprecated": "6.0",
        "obsolete": "Use version that takes TextureEvaluatorFlags enum",
        "returns": "A texture evaluator instance."
      },
      {
        "signature": "TextureEvaluator CreateEvaluator(TextureEvaluatorFlags evaluatorFlags)",
        "modifiers": ["public", "virtual"],
        "protected": false,
        "virtual": true,
        "summary": "Constructs a texture evaluator. This is an independent lightweight object capable of evaluating texture color throughout uvw space. May be called from within a rendering shade pipeline.",
        "since": "6.0",
        "returns": "A texture evaluator instance."
      },
      {
        "signature": "System.Boolean GenerateTextureSimulation(ref System.Drawing.Bitmap bitmap, TextureEvaluatorFlags ef)",
        "modifiers": ["public", "virtual"],
        "protected": false,
        "virtual": true,
        "since": "8.0"
      },
      {
        "signature": "System.Boolean GetDisplayInViewport()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.7"
      },
      {
        "signature": "TextureEnvironmentMappingMode GetEnvironmentMappingMode()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.7"
      },
      {
        "signature": "TextureEnvironmentMappingMode GetInternalEnvironmentMappingMode()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.7"
      },
      {
        "signature": "eLocalMappingType GetLocalMappingType()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.3"
      },
      {
        "signature": "System.Int32 GetMappingChannel()",
        "modifiers": ["public", "virtual"],
        "protected": false,
        "virtual": true,
        "since": "5.7"
      },
      {
        "signature": "Vector3d GetOffset()",
        "modifiers": ["public", "virtual"],
        "protected": false,
        "virtual": true,
        "summary": "Get offset value across UVW space. If the projection type is WCS or other type specified in model units, then this is the offset in meters.",
        "since": "5.7"
      },
      {
        "signature": "System.Boolean GetOffsetLocked()",
        "modifiers": ["public", "virtual"],
        "protected": false,
        "virtual": true,
        "since": "5.7"
      },
      {
        "signature": "System.Boolean GetPreviewIn3D()",
        "modifiers": ["public", "virtual"],
        "protected": false,
        "virtual": true,
        "since": "5.7"
      },
      {
        "signature": "System.Boolean GetPreviewLocalMapping()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.7"
      },
      {
        "signature": "TextureProjectionMode GetProjectionMode()",
        "modifiers": ["public", "virtual"],
        "protected": false,
        "virtual": true,
        "since": "5.7"
      },
      {
        "signature": "Vector3d GetRepeat()",
        "modifiers": ["public", "virtual"],
        "protected": false,
        "virtual": true,
        "summary": "Get repeat value across UVW space. If the projection type is WCS or other type specified in model units, then this is the repeat across 1 meter of the model.",
        "since": "5.7"
      },
      {
        "signature": "System.Boolean GetRepeatLocked()",
        "modifiers": ["public", "virtual"],
        "protected": false,
        "virtual": true,
        "since": "5.7"
      },
      {
        "signature": "Vector3d GetRotation()",
        "modifiers": ["public", "virtual"],
        "protected": false,
        "virtual": true,
        "since": "5.7"
      },
      {
        "signature": "TextureWrapType GetWrapType()",
        "modifiers": ["public", "virtual"],
        "protected": false,
        "virtual": true,
        "since": "5.7"
      },
      {
        "signature": "System.Void GraphInfo(ref TextureGraphInfo tgi)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.3"
      },
      {
        "signature": "System.Boolean IsHdrCapable()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Return True if the texture is HDR capable.  When creating a custom RenderTexture implementation that is HDR capable set the appropriate property on the CustomRenderContentAttribute decorator on that clas.",
        "since": "5.7"
      },
      {
        "signature": "System.Boolean IsImageBased()",
        "modifiers": ["public", "virtual"],
        "protected": false,
        "virtual": true,
        "summary": "Query if the texture is image based.  When creating a custom RenderTexture implementation of an image-based texture set the appropriate property on the CustomRenderContentAttribute decorator on that class.  Do not override this function",
        "since": "6.0",
        "returns": "True if the texture is image-based."
      },
      {
        "signature": "System.Boolean IsLinear()",
        "modifiers": ["public", "virtual"],
        "protected": false,
        "virtual": true,
        "summary": "Return True if the texture color data is linear.  NOTE: this function is marked as virtual, but the correct way to make a custom RenderTexture linear is by setting the correct property for the CustomRenderContentAttribute decorator on the class.",
        "since": "6.0"
      },
      {
        "signature": "System.Boolean IsNormalMap()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Return True if the texture is a normalmap.  When creating a custom RenderTexture implementation of a normal map set the appropriate property on the CustomRenderContentAttribute decorator on that clas.",
        "since": "6.16"
      },
      {
        "signature": "System.Void PixelSize(out System.Int32 u, out System.Int32 v, out System.Int32 w)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Get the texture dimensions for the RenderTexture.",
        "since": "6.0",
        "parameters": [
          {
            "name": "u",
            "type": "System.Int32",
            "summary": "width"
          },
          {
            "name": "v",
            "type": "System.Int32",
            "summary": "height"
          },
          {
            "name": "w",
            "type": "System.Int32",
            "summary": "depth, used for 3D textures"
          }
        ]
      },
      {
        "signature": "System.Boolean SaveAsImage(System.String FullPath, System.Int32 width, System.Int32 height, System.Int32 depth)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Save texture as image",
        "since": "6.15",
        "parameters": [
          {
            "name": "FullPath",
            "type": "System.String",
            "summary": "The full path of the file"
          },
          {
            "name": "width",
            "type": "System.Int32",
            "summary": "Image width"
          },
          {
            "name": "height",
            "type": "System.Int32",
            "summary": "Image height"
          },
          {
            "name": "depth",
            "type": "System.Int32",
            "summary": "Image depth"
          }
        ],
        "returns": "returns True if file was saved, otherwise false"
      },
      {
        "signature": "System.Void SetDisplayInViewport(System.Boolean value, ChangeContexts changeContext)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.7"
      },
      {
        "signature": "System.Void SetDisplayInViewport(System.Boolean value)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0"
      },
      {
        "signature": "System.Void SetEnvironmentMappingMode(TextureEnvironmentMappingMode value, ChangeContexts changeContext)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.7"
      },
      {
        "signature": "System.Void SetEnvironmentMappingMode(TextureEnvironmentMappingMode value)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0"
      },
      {
        "signature": "System.Void SetGraphInfo(TextureGraphInfo tgi)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.3"
      },
      {
        "signature": "System.Void SetMappingChannel(System.Int32 value, ChangeContexts changeContext)",
        "modifiers": ["public", "virtual"],
        "protected": false,
        "virtual": true,
        "since": "5.7"
      },
      {
        "signature": "System.Void SetOffset(Vector3d value, ChangeContexts changeContext)",
        "modifiers": ["public", "virtual"],
        "protected": false,
        "virtual": true,
        "summary": "Set offset value across UVW space. If the projection type is WCS or other type specified in model units, then this is the offset in meters.",
        "since": "5.7"
      },
      {
        "signature": "System.Void SetOffsetLocked(System.Boolean value, ChangeContexts changeContext)",
        "modifiers": ["public", "virtual"],
        "protected": false,
        "virtual": true,
        "since": "5.7"
      },
      {
        "signature": "System.Void SetPreviewIn3D(System.Boolean value, ChangeContexts changeContext)",
        "modifiers": ["public", "virtual"],
        "protected": false,
        "virtual": true,
        "since": "5.7"
      },
      {
        "signature": "System.Void SetPreviewLocalMapping(System.Boolean value, ChangeContexts changeContext)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.7"
      },
      {
        "signature": "System.Void SetPreviewLocalMapping(System.Boolean value)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0"
      },
      {
        "signature": "System.Void SetProjectionMode(TextureProjectionMode value, ChangeContexts changeContext)",
        "modifiers": ["public", "virtual"],
        "protected": false,
        "virtual": true,
        "since": "5.7"
      },
      {
        "signature": "System.Void SetRepeat(Vector3d value, ChangeContexts changeContext)",
        "modifiers": ["public", "virtual"],
        "protected": false,
        "virtual": true,
        "summary": "Set repeat value across UVW space. If the projection type is WCS or other type specified in model units, then this is the repeat across 1 meter of the model.",
        "since": "5.7"
      },
      {
        "signature": "System.Void SetRepeatLocked(System.Boolean value, ChangeContexts changeContext)",
        "modifiers": ["public", "virtual"],
        "protected": false,
        "virtual": true,
        "since": "5.7"
      },
      {
        "signature": "System.Void SetRotation(Vector3d value, ChangeContexts changeContext)",
        "modifiers": ["public", "virtual"],
        "protected": false,
        "virtual": true,
        "since": "5.7"
      },
      {
        "signature": "System.Void SetWrapType(TextureWrapType value, ChangeContexts changeContext)",
        "modifiers": ["public", "virtual"],
        "protected": false,
        "virtual": true,
        "since": "5.7"
      },
      {
        "signature": "SimulatedTexture SimulatedTexture(TextureGeneration tg, System.Int32 size, Rhino.DocObjects.RhinoObject obj)",
        "modifiers": ["public", "virtual"],
        "protected": false,
        "virtual": true,
        "since": "6.0"
      },
      {
        "signature": "System.Void SimulateTexture(ref SimulatedTexture simulation, System.Boolean isForDataOnly)",
        "modifiers": ["public", "virtual"],
        "protected": false,
        "virtual": true,
        "since": "5.1",
        "deprecated": "6.0",
        "obsolete": "Use SimulateTexture with size, TextureGeneration and object instead"
      },
      {
        "signature": "System.Void SimulateTexture(ref SimulatedTexture simulation, TextureGeneration tg, System.Int32 size, Rhino.DocObjects.RhinoObject obj)",
        "modifiers": ["public", "virtual"],
        "protected": false,
        "virtual": true,
        "since": "6.0"
      }
    ]
  },
  {
    "namespace": "Rhino.Render",
    "name": "RenderTexture.eLocalMappingType",
    "dataType": "enum",
    "since": "6.3",
    "values": [
      {
        "signature": "lmt_none",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "lmt_2D",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "lmt_3D",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "lmt_force32bit = 0xFFFFFFFF",
        "modifiers": [],
        "protected": false,
        "virtual": false
      }
    ]

  },
  {
    "namespace": "Rhino.Render",
    "name": "RenderTexture.TextureEvaluatorFlags",
    "dataType": "enum",
    "since": "6.0",
    "values": [
      {
        "signature": "Normal                  = 0x0000",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "DisableFiltering        = 0x0001",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "DisableLocalMapping     = 0x0002",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "DisableAdjustment       = 0x0004",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "DisableProjectionChange = 0x0008",
        "modifiers": [],
        "protected": false,
        "virtual": false
      }
    ]

  },
  {
    "namespace": "Rhino.Render",
    "name": "RenderTexture.TextureGeneration",
    "dataType": "enum",
    "since": "6.0",
    "values": [
      {
        "signature": "Allow = UnsafeNativeMethods.CRhRdkTextureGenConsts.Allow",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Disallow = UnsafeNativeMethods.CRhRdkTextureGenConsts.Disallow",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Skip = UnsafeNativeMethods.CRhRdkTextureGenConsts.Skip",
        "modifiers": [],
        "protected": false,
        "virtual": false
      }
    ]

  },
  {
    "namespace": "Rhino.Render",
    "name": "RenderTextureTable",
    "dataType": "class",
    "interfaces": ["IRenderContentTable<RenderTexture>", "IEnumerable<RenderTexture>", "Collections.IRhinoTable<RenderTexture>"],
    "properties": [
      {
        "signature": "int Count",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.7",
        "property": ["get"]
      },
      {
        "signature": "RenderTexture this[int index]",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false
      }
    ],
    "methods": [
      {
        "signature": "System.Boolean Add(RenderTexture c)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0"
      },
      {
        "signature": "System.Void BeginChange(RenderContent.ChangeContexts changeContext)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "7.0"
      },
      {
        "signature": "System.Void EndChange()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "7.0"
      },
      {
        "signature": "RenderTexture Find(System.Guid id)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "8.0"
      },
      {
        "signature": "IEnumerator<RenderTexture> GetEnumerator()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.7"
      },
      {
        "signature": "System.Boolean Remove(RenderTexture c)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0"
      }
    ]
  },
  {
    "namespace": "Rhino.Render",
    "name": "RenderWindow",
    "dataType": "class",
    "interfaces": ["IDisposable"],
    "properties": [
      {
        "signature": "Guid SessionId",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.11",
        "property": ["get"]
      }
    ],
    "methods": [
      {
        "signature": "System.Guid ChannelId(StandardChannels ch)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "RenderWindow Create(Size szSize)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "6.0"
      },
      {
        "signature": "RenderWindow FromSessionId(System.Guid sessionId)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "5.11"
      },
      {
        "signature": "StandardChannels StandardChannelForGuid(System.Guid id)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Get the StandardChannels for the given Guid",
        "since": "7.0"
      },
      {
        "signature": "System.Boolean AddChannel(StandardChannels channel)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Add a channel to the frame buffer in addition to the fixed Red, Green, Blue and Alpha channels.",
        "since": "5.0",
        "parameters": [
          {
            "name": "channel",
            "type": "StandardChannels",
            "summary": "Channel to add"
          }
        ],
        "returns": "If the channel existed then True is returned otherwise; returns True if the channel was added or False if not."
      },
      {
        "signature": "System.Boolean AddWireframeChannel(RhinoDoc doc, DocObjects.ViewportInfo viewport, System.Drawing.Size size, System.Drawing.Rectangle region)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "This method sets the frame buffer size and adds all the necessary wireframe channels automatically. It also creates the wireframe channel data automatically so that your renderer doesn't have to. You typically call this method only when your renderer does not support wireframe rendering itself. If you call this method, then you should not add any wireframe channels returned by GetRenderChannels(). If your renderer is capable of rendering the wireframe channels itself, you should not call this method. Instead, you must make sure you add the wireframe channels if GetRenderChannels() requests them. See IRhRdkRenderWindow::GetRenderChannels(). After the wires are rendered, the wireframe post effects will composite them into the final rendered image. Note: This method should really be called AddWireframeChannels(). [SDK_UNFREEZE] */",
        "since": "5.0",
        "parameters": [
          {
            "name": "doc",
            "type": "RhinoDoc",
            "summary": "The document to display"
          },
          {
            "name": "viewport",
            "type": "DocObjects.ViewportInfo",
            "summary": "The view to display"
          },
          {
            "name": "size",
            "type": "System.Drawing.Size",
            "summary": "The size of the image without clipping (i.e., if you have a region, it is the size of the image before you cut the region out."
          },
          {
            "name": "region",
            "type": "System.Drawing.Rectangle",
            "summary": "The area of the rendering you want to display.  This should match the size of the render window itself (i.e, - the one set using SetSize)"
          }
        ],
        "returns": "Returns True if all of the wireframe channels were added successfully."
      },
      {
        "signature": "System.Void Dispose()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0"
      },
      {
        "signature": "System.Void EndAsyncRender(RenderSuccessCode successCode)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Must be called when an asynchronous render has finished or ended for any reason.",
        "since": "6.0",
        "parameters": [
          {
            "name": "successCode",
            "type": "RenderSuccessCode",
            "summary": "Completed for a correct or canceled render, Failed for errors."
          }
        ]
      },
      {
        "signature": "ImageAdjust GetAdjust()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "OBSOLETE. NOT IMPLEMENTED.",
        "since": "6.0",
        "deprecated": "7.0",
        "obsolete": "The Render Window UI now uses post effects for gamma, tone mapping, etc."
      },
      {
        "signature": "Bitmap GetBitmap()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0"
      },
      {
        "signature": "System.Guid[] GetRequestedRenderChannels()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Get array of Guids representing the channels requested by the post effect pipeline for this RenderWindow.",
        "since": "7.0",
        "returns": "Array of Guid"
      },
      {
        "signature": "StandardChannels[] GetRequestedRenderChannelsAsStandardChannels()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Get array of StandardChannels enum values representing the channels requested by the post effect pipeline for this RenderWindow.",
        "since": "7.0",
        "returns": "Array of StandardChannels"
      },
      {
        "signature": "System.Void Invalidate()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Invalidate the entire view window so that the pixels get painted.",
        "since": "5.0"
      },
      {
        "signature": "System.Void InvalidateArea(System.Drawing.Rectangle rect)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "System.Boolean IsChannelAvailable(System.Guid id)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Query if a channel is available.",
        "since": "7.0",
        "returns": "Returns True if the channel is available."
      },
      {
        "signature": "System.Boolean IsChannelShown(System.Guid id)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Query if a channel is being shown.",
        "since": "7.0",
        "returns": "Returns True if the channel is being shown."
      },
      {
        "signature": "Channel OpenChannel(StandardChannels id)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "System.Void RegisterPostEffectExecutionControl(PostEffectExecutionControl ec)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Register an instance of PostEffectExecutionControl.",
        "since": "8.0"
      },
      {
        "signature": "System.Void SaveDibAsBitmap(System.String filename)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Save current Dib of RenderWindow as file Helper function for debugging purposes.",
        "since": "6.0"
      },
      {
        "signature": "System.Void SaveRenderImageAs(System.String filename, System.Boolean saveAlpha)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Like RenderWindow.SaveRenderImageAs(string,Guid,bool), but with Guid set to Guid.Empty.",
        "since": "6.0",
        "parameters": [
          {
            "name": "filename",
            "type": "System.String",
            "summary": "Filename of image file to be created"
          },
          {
            "name": "saveAlpha",
            "type": "System.Boolean",
            "summary": "True if alpha channel should be saved."
          }
        ]
      },
      {
        "signature": "System.Void SaveRenderImageAs(System.String filename, System.Guid renderEngineGuid, System.Boolean saveAlpha)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Save current RenderWindow contents as an image file with the given name. The filetype will be determine.  Pass in render engine Guid if an engine implements saving to a format that is not supported by Rhino. Guid.Empty if there is no need for that.",
        "since": "6.0",
        "parameters": [
          {
            "name": "filename",
            "type": "System.String",
            "summary": "Filename of image file to be created"
          },
          {
            "name": "renderEngineGuid",
            "type": "System.Guid",
            "summary": "render engine ID"
          },
          {
            "name": "saveAlpha",
            "type": "System.Boolean",
            "summary": "True if alpha channel should be saved."
          }
        ]
      },
      {
        "signature": "System.Void SetAdjust(ImageAdjust imageAdjust)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "OBSOLETE. NOT IMPLEMENTED.",
        "since": "6.0",
        "deprecated": "7.0",
        "obsolete": "The Render Window UI now uses post effects for gamma, tone mapping, etc.",
        "parameters": [
          {
            "name": "imageAdjust",
            "type": "ImageAdjust",
            "summary": "OBSOLETE"
          }
        ]
      },
      {
        "signature": "System.Void SetIsRendering(System.Boolean is_rendering)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Set whether or not rendering is in progress. Added to support raytraced mode.",
        "since": "7.1"
      },
      {
        "signature": "System.Void SetProgress(System.String text, System.Single progress)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Accepts a rendering progress value to inform the user of the rendering advances.",
        "since": "5.0",
        "parameters": [
          {
            "name": "text",
            "type": "System.String",
            "summary": "The progress text."
          },
          {
            "name": "progress",
            "type": "System.Single",
            "summary": "A progress value in the domain [0.0f; 1.0f]."
          }
        ]
      },
      {
        "signature": "System.Void SetRenderOutputRect(Rectangle rect)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Specify a sub-rectangle of the render window to indicate where the relevant render output has been written. For example, if a renderer chooses to render at half resolution, it could write its data to the top left quadrant of the render window, which can be indicated by setting the render output rectangle. This is set to the full render window size by default. When the render window size is modified, the render output rectangle will be set to reflect the new size.",
        "since": "8.0",
        "parameters": [
          {
            "name": "rect",
            "type": "Rectangle",
            "summary": "Rectangle"
          }
        ]
      },
      {
        "signature": "System.Void SetRGBAChannelColors(System.Drawing.Rectangle rectangle, Rhino.Display.Color4f[] colors)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Call this method to open the RenderWindow.StandardChannels.RGBA channel and set a block of color values",
        "since": "5.0",
        "parameters": [
          {
            "name": "rectangle",
            "type": "System.Drawing.Rectangle",
            "summary": "rectangle.X is the horizontal pixel position of the left edge. No validation is done on this value. The caller is responsible for ensuring that it is within the frame buffer. rectangle.Y is the vertical pixel position of the top edge. No validation is done on this value. The caller is responsible for ensuring that it is within the frame buffer. rectangle.Width is the width of the rectangle in pixels. No validation is done on this value. rectangle.Height is the height of the rectangle in pixels. No validation is done on this value."
          },
          {
            "name": "colors",
            "type": "Rhino.Display.Color4f[]",
            "summary": "Array of Color4f values used to set the RenderWindow.StandardChannels.RGBA"
          }
        ]
      },
      {
        "signature": "System.Void SetRGBAChannelColors(System.Drawing.Size size, Rhino.Display.Color4f[] colors)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Call this method to open the RenderWindow.StandardChannels.RGBA channel and set a block of color values",
        "since": "5.0",
        "parameters": [
          {
            "name": "size",
            "type": "System.Drawing.Size",
            "summary": "Size of the area to set. No validation is done on this value"
          },
          {
            "name": "colors",
            "type": "Rhino.Display.Color4f[]",
            "summary": "Array of Color4f values used to set the RenderWindow.StandardChannels.RGBA"
          }
        ]
      },
      {
        "signature": "System.Void SetSize(System.Drawing.Size size)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "System.Void SetView(ViewInfo view)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0"
      },
      {
        "signature": "System.Drawing.Size Size()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      }
    ],
    "events": [
      {
        "signature": "EventHandler<RenderWindowClonedEventArgs> Cloned",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "5.11"
      }
    ]

  },
  {
    "namespace": "Rhino.Render",
    "name": "RenderWindow.Channel",
    "dataType": "class",
    "interfaces": ["IDisposable"],
    "properties": [
      {
        "signature": "int Height",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Return the channel height.",
        "since": "7.0",
        "property": ["get"]
      },
      {
        "signature": "Guid Id",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Return the channel id.",
        "since": "7.0",
        "property": ["get"]
      },
      {
        "signature": "int Width",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Return the channel width.",
        "since": "7.0",
        "property": ["get"]
      }
    ],
    "methods": [
      {
        "signature": "System.Void AddValue(System.Int32 x, System.Int32 y, Rhino.Display.Color4f value)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Add value to existing values at point x, y. If x or y are out of range, the function will fail and may crash Rhino.",
        "since": "6.0",
        "parameters": [
          {
            "name": "x",
            "type": "System.Int32",
            "summary": "The horizontal pixel position. No validation is done on this value. The caller is responsible for ensuring that it is within the frame buffer."
          },
          {
            "name": "y",
            "type": "System.Int32",
            "summary": "The vertical pixel position. No validation is done on this value. The caller is responsible for ensuring that it is within the frame buffer."
          },
          {
            "name": "value",
            "type": "Rhino.Display.Color4f",
            "summary": "The color to store in the channel at the specified position."
          }
        ]
      },
      {
        "signature": "Channel Clone()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Return a clone of the channel.",
        "since": "7.0"
      },
      {
        "signature": "System.Void Dispose()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "System.Void Dispose(System.Boolean disposing)",
        "modifiers": ["protected", "virtual"],
        "protected": true,
        "virtual": true
      },
      {
        "signature": "System.Void GetMinMaxValues(out System.Single min, out System.Single max)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Get the minimum and maximum values in the channel. The channel's minimum value. The channel's maximum value.",
        "since": "7.0"
      },
      {
        "signature": "System.Void GetValue(System.Int32 x, System.Int32 y, Rhino.Render.ComponentOrders componentOrder, ref System.Single[] values)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Get values from the channel.",
        "since": "7.0"
      },
      {
        "signature": "System.Void GetValues(System.Drawing.Rectangle rectangle, System.Int32 stride, Rhino.Render.ComponentOrders componentOrder, ref System.Single[] values)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Get a rectangle of values from the channel. The input parameters are checked for validity. If the rectangle is not fully inside the frame buffer, the function will fail.",
        "since": "7.0"
      },
      {
        "signature": "System.Int32 PixelSize()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns the size of the data in one pixel in the channel. For RDK standard channels, this value is always sizeof(float). For the special chanRGBA collective channel, this value is 4 * sizeof(float).",
        "since": "5.0",
        "returns": "The size of a pixel."
      },
      {
        "signature": "System.Void SetValue(System.Int32 x, System.Int32 y, Rhino.Display.Color4f value)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "If x or y are out of range, the function will fail and may crash Rhino.",
        "since": "5.0",
        "parameters": [
          {
            "name": "x",
            "type": "System.Int32",
            "summary": "The horizontal pixel position. No validation is done on this value. The caller is responsible for ensuring that it is within the frame buffer."
          },
          {
            "name": "y",
            "type": "System.Int32",
            "summary": "The vertical pixel position. No validation is done on this value. The caller is responsible for ensuring that it is within the frame buffer."
          },
          {
            "name": "value",
            "type": "Rhino.Display.Color4f",
            "summary": "The color to store in the channel at the specified position."
          }
        ]
      },
      {
        "signature": "System.Void SetValue(System.Int32 x, System.Int32 y, System.Single value)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Assignto a pixel at coordinate (,).",
        "since": "5.0",
        "parameters": [
          {
            "name": "x",
            "type": "System.Int32",
            "summary": "The horizontal pixel position. No validation is done on this value. The caller is responsible for ensuring that it is within the frame buffer."
          },
          {
            "name": "y",
            "type": "System.Int32",
            "summary": "the vertical pixel position. No validation is done on this value. The caller is responsible for ensuring that it is within the frame buffer."
          },
          {
            "name": "value",
            "type": "System.Single",
            "summary": "The value to store in the channel at the specified position."
          }
        ]
      },
      {
        "signature": "System.Void SetValues(System.Drawing.Rectangle rectangle, Size bufferResolution, PixelBuffer colorBuffer)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Set a pixel buffer",
        "since": "6.0",
        "parameters": [
          {
            "name": "rectangle",
            "type": "System.Drawing.Rectangle",
            "summary": ""
          },
          {
            "name": "bufferResolution",
            "type": "Size",
            "summary": ""
          },
          {
            "name": "colorBuffer",
            "type": "PixelBuffer",
            "summary": "PixelBuffer to a color buffer of floats in RGBA format."
          }
        ]
      },
      {
        "signature": "System.Void SetValuesFlipped(System.Drawing.Rectangle rectangle, Size bufferResolution, PixelBuffer colorBuffer)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Set a pixel buffer y-flipped.",
        "since": "7.7",
        "parameters": [
          {
            "name": "rectangle",
            "type": "System.Drawing.Rectangle",
            "summary": ""
          },
          {
            "name": "bufferResolution",
            "type": "Size",
            "summary": ""
          },
          {
            "name": "colorBuffer",
            "type": "PixelBuffer",
            "summary": "PixelBuffer to a color buffer of floats in RGBA format."
          }
        ]
      }
    ]
  },
  {
    "namespace": "Rhino.Render",
    "name": "RenderWindow.ChannelGPU",
    "dataType": "class",
    "interfaces": ["IDisposable"],
    "properties": [
      {
        "signature": "DisplayTechnology DisplayTechnology",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Return the type of API used for this channel's texture handle.",
        "since": "7.0",
        "property": ["get"]
      }
    ],
    "methods": [
      {
        "signature": "ChannelGPU Clone()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Return a clone of the channel.",
        "since": "7.0"
      },
      {
        "signature": "System.Void Close()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Close the channel.",
        "since": "7.0"
      },
      {
        "signature": "System.Void CopyTo(Channel channel)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Copy the channel to a 'CPU' channel.",
        "since": "7.0",
        "parameters": [
          {
            "name": "channel",
            "type": "Channel",
            "summary": "The channel to copy to."
          }
        ]
      },
      {
        "signature": "System.Void Dispose()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Dispose of the channel.",
        "since": "7.0"
      },
      {
        "signature": "System.Int32 Height()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Return the channel height.",
        "since": "7.0"
      },
      {
        "signature": "System.Guid Id()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Return the channel id.",
        "since": "7.0"
      },
      {
        "signature": "System.UInt32 PixelSize()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Return the size of one pixel's data in the channel.",
        "since": "7.0"
      },
      {
        "signature": "System.UInt32 TextureHandle()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Return the channel's texture handle.",
        "since": "7.0",
        "deprecated": "8.0",
        "obsolete": "This method has been deprecated. Please use TextureHandleOpenGL or TextureHandleMetal instead."
      },
      {
        "signature": "System.IntPtr TextureHandleMetal()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Return the channel's Metal texture handle (id<MTLTexture>) as an IntPtr. If there isn't one, IntPtr.Zero will be returned. The ChannelGPU.DisplayTechnology property will indicate which type of texture is stored in the channel. The IntPtr can be turned back into an Objective-C id<MTLTexture> using id<MTLTexture> texture = CFBridgingRelease(ptr);",
        "since": "8.0"
      },
      {
        "signature": "System.UInt32 TextureHandleOpenGL()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Return the channel's OpenGL texture handle. If there isn't one, a value of 0 will be returned. The ChannelGPU.DisplayTechnology property will indicate which type of texture is stored in the channel.",
        "since": "8.0"
      },
      {
        "signature": "System.Int32 Width()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Return the channel width.",
        "since": "7.0"
      }
    ]
  },
  {
    "namespace": "Rhino.Render",
    "name": "RenderWindow.ImageAdjust",
    "dataType": "class",
    "summary": "Class to set image adjusting settings to a RenderWindow. This can't be directly created. Instead, one should use RenderWindow.GetAdjust() to get an ImageAdjust instance that can be modified, then passed into RenderWindow.SetAdjust() to update image adjusting settings.1",
    "properties": [
      {
        "signature": "Methods Dither",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Set the Dithering method to use when adjusting the RenderWindow content.",
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "float Gamma",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Set the gamma value. The inverse of this will be used to apply gamma correction to the RenderWindow RGBA channel when necessary.",
        "since": "6.0",
        "property": ["get", "set"]
      }
    ]
  },
  {
    "namespace": "Rhino.Render",
    "name": "RenderWindow.RenderSuccessCode",
    "dataType": "enum",
    "since": "6.0",
    "values": [
      {
        "signature": "Completed = 0",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Failed",
        "modifiers": [],
        "protected": false,
        "virtual": false
      }
    ]

  },
  {
    "namespace": "Rhino.Render",
    "name": "RenderWindow.StandardChannels",
    "dataType": "enum",
    "since": "5.0",
    "values": [
      {
        "signature": "None = 0x00000000",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Red = 0x00000001",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Green = 0x00000002",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Blue = 0x00000004",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Alpha = 0x00000008",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "RGBA = 0x0000000E",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "RGB = 0x0000000F",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "DistanceFromCamera = 0x00000010",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "NormalX = 0x00000020",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "NormalY = 0x00000040",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "NormalZ = 0x00000080",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "NormalXYZ = 0x000000F0",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "LuminanceRed = 0x00000100",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "LuminanceGreen = 0x00000200",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "LuminanceBlue = 0x00000400",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "BackgroundLuminanceRed = 0x00001000",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "BackgroundLuminanceGreen = 0x00002000",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "BackgroundLuminanceBlue = 0x00004000",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "MaterialIds = 0x00010000",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "ObjectIds = 0x00020000",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Wireframe = 0x00040000",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "AlbedoRed                = 0x00100000",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "AlbedoGreen              = 0x00200000",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "AlbedoBlue               = 0x00400000",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "AlbedoRGB                = 0x00700000",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "WireframePointsRGBA      = 0x00800000",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "WireframeIsocurvesRGBA   = 0x01000000",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "WireframeCurvesRGBA      = 0x02000000",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "WireframeAnnotationsRGBA = 0x04000000",
        "modifiers": [],
        "protected": false,
        "virtual": false
      }
    ]

  },
  {
    "namespace": "Rhino.Render",
    "name": "RenderWindowClonedEventArgs",
    "dataType": "class",
    "baseclass": "EventArgs",
    "properties": [
      {
        "signature": "RenderWindow NewRenderWindow",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.11",
        "property": ["get"]
      },
      {
        "signature": "Guid NewSessionId",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.11",
        "property": ["get", "set"]
      },
      {
        "signature": "RenderWindow OldRenderWindow",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.11",
        "property": ["get"]
      },
      {
        "signature": "Guid OldSessionId",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.11",
        "property": ["get", "set"]
      }
    ]
  },
  {
    "namespace": "Rhino.Render",
    "name": "SafeFrame",
    "dataType": "class",
    "summary": "Safe frame",
    "baseclass": "Rhino.Render.DocumentOrFreeFloatingBase",
    "interfaces": ["IDisposable"],
    "constructors": [
      {
        "signature": "SafeFrame()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Create a utility object not associated with any document",
        "since": "7.12"
      },
      {
        "signature": "SafeFrame(RhinoDoc doc)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Create the SafeFrame object which is associated with the document",
        "since": "7.12"
      },
      {
        "signature": "SafeFrame(SafeFrame sf)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Create a utility object not associated with any document from another object",
        "since": "7.12"
      }
    ],
    "properties": [
      {
        "signature": "bool ActionFrameLinked",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Action Frame Linked, On = Use the same scale for X and Y. Off = use different scales for X and Y.",
        "since": "7.12",
        "property": ["get", "set"]
      },
      {
        "signature": "bool ActionFrameOn",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Turn on the user specified action area, which shown with blue frames.",
        "since": "7.12",
        "property": ["get", "set"]
      },
      {
        "signature": "double ActionFrameXScale",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Action Frame X-scale. This value should be in the range 0..1 but it is not clamped. It is displayed in the UI in the range 0..100.",
        "since": "7.12",
        "property": ["get", "set"]
      },
      {
        "signature": "double ActionFrameYScale",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Action Frame Y-scale. This value should be in the range 0..1 but it is not clamped. It is displayed in the UI in the range 0..100.",
        "since": "7.12",
        "property": ["get", "set"]
      },
      {
        "signature": "bool Enabled",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Determines whether the safe-frame is enabled.",
        "since": "7.12",
        "property": ["get", "set"]
      },
      {
        "signature": "bool FieldsOn",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Show the 4 by 3 field grid in the safe-frame.",
        "since": "7.12",
        "property": ["get", "set"]
      },
      {
        "signature": "bool LiveFrameOn",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Turn on the live area, which shows the size of the rendered view as a yellow frame in the viewport.",
        "since": "7.12",
        "property": ["get", "set"]
      },
      {
        "signature": "bool PerspectiveOnly",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Show the safe-frame only in perspective views.",
        "since": "7.12",
        "property": ["get", "set"]
      },
      {
        "signature": "bool TitleFrameLinked",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Title Frame Linked, On = Use the same scale for X and Y. Off = use different scales for X and Y.",
        "since": "7.12",
        "property": ["get", "set"]
      },
      {
        "signature": "bool TitleFrameOn",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Show a user specified title area frame in orange.",
        "since": "7.12",
        "property": ["get", "set"]
      },
      {
        "signature": "double TitleFrameXScale",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Title Frame X-scale. This value should be in the range 0..1 but it is not clamped. It is displayed in the UI in the range 0..100.",
        "since": "7.12",
        "property": ["get", "set"]
      },
      {
        "signature": "double TitleFrameYScale",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Title Frame Y-scale. This value should be in the range 0..1 but it is not clamped. It is displayed in the UI in the range 0..100.",
        "since": "7.12",
        "property": ["get", "set"]
      }
    ],
    "methods": [
      {
        "signature": "System.Void CopyFrom(FreeFloatingBase src)",
        "modifiers": ["public", "override"],
        "protected": false,
        "virtual": false,
        "since": "7.12"
      },
      {
        "signature": "System.Void Dispose()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "8.0"
      }
    ],
    "events": [
      {
        "signature": "EventHandler<RenderPropertyChangedEvent> Changed",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "This event is raised when a SafeFrame property value is changed."
      }
    ]

  },
  {
    "namespace": "Rhino.Render",
    "name": "SceneServerData",
    "dataType": "class",
    "summary": "The Scene Server Data used by the PreviewSceneServer",
    "interfaces": ["IDisposable"],
    "constructors": [
      {
        "signature": "SceneServerData(PreviewAppearance appearance, SceneServerDataUsage usage)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "8.0"
      },
      {
        "signature": "SceneServerData(PreviewGeometry geo, PreviewBackground back, PreviewLighting light, SceneServerDataUsage usage)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Constructor for SceneServerData",
        "since": "6.0",
        "deprecated": "8.0"
      }
    ],
    "properties": [
      {
        "signature": "IntPtr CppPointer",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "The CppPointer of SceneServerData",
        "since": "6.0",
        "property": ["get"]
      }
    ],
    "methods": [
      {
        "signature": "System.Void Dispose()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Dispose for SceneServerData",
        "since": "6.0"
      },
      {
        "signature": "System.Void Dispose(System.Boolean bDisposing)",
        "modifiers": ["protected", "virtual"],
        "protected": true,
        "virtual": true,
        "summary": "Dispose for SceneServerData"
      }
    ]
  },
  {
    "namespace": "Rhino.Render",
    "name": "SceneServerDataUsage",
    "dataType": "enum",
    "summary": "SceneServerData Usage (Synchronous or Asynchronous)",
    "since": "6.0",
    "values": [
      {
        "signature": "Synchronous",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Asynchronous",
        "modifiers": [],
        "protected": false,
        "virtual": false
      }
    ]

  },
  {
    "namespace": "Rhino.Render",
    "name": "SimulatedEnvironment",
    "dataType": "class",
    "interfaces": ["IDisposable"],
    "constructors": [
      {
        "signature": "SimulatedEnvironment()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.1"
      }
    ],
    "properties": [
      {
        "signature": "Color BackgroundColor",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.1",
        "property": ["get", "set"]
      },
      {
        "signature": "SimulatedTexture BackgroundImage",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.1",
        "property": ["get", "set"]
      },
      {
        "signature": "BackgroundProjections BackgroundProjection",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.1",
        "property": ["get", "set"]
      }
    ],
    "methods": [
      {
        "signature": "BackgroundProjections ProjectionFromString(System.String projection)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "5.1"
      },
      {
        "signature": "System.String StringFromProjection(BackgroundProjections projection)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "5.1"
      },
      {
        "signature": "System.IntPtr ConstPointer()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.1"
      },
      {
        "signature": "System.Void Dispose()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.1"
      },
      {
        "signature": "System.Void Dispose(System.Boolean disposing)",
        "modifiers": ["protected", "virtual"],
        "protected": true,
        "virtual": true
      }
    ]
  },
  {
    "namespace": "Rhino.Render",
    "name": "SimulatedEnvironment.BackgroundProjections",
    "dataType": "enum",
    "since": "5.1",
    "values": [
      {
        "signature": "Planar = 0",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Spherical = 1",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Emap = 2",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Box = 3",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Automatic = 4",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Lightprobe = 5",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Cubemap = 6",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "VerticalCrossCubemap = 7",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "HorizontalCrossCubemap = 8",
        "modifiers": [],
        "protected": false,
        "virtual": false
      }
    ]

  },
  {
    "namespace": "Rhino.Render",
    "name": "SimulatedTexture",
    "dataType": "class",
    "interfaces": ["IDisposable"],
    "constructors": [
      {
        "signature": "SimulatedTexture()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.1",
        "deprecated": "7.6"
      },
      {
        "signature": "SimulatedTexture(RhinoDoc doc, Texture texture)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "7.6"
      },
      {
        "signature": "SimulatedTexture(RhinoDoc doc)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "7.6"
      },
      {
        "signature": "SimulatedTexture(Texture texture)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "7.4",
        "deprecated": "7.6"
      }
    ],
    "properties": [
      {
        "signature": "int BitmapSize",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "5.1",
        "property": ["get", "set"]
      },
      {
        "signature": "String Filename",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.1",
        "property": ["get", "set"]
      },
      {
        "signature": "bool Filtered",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.1",
        "property": ["get", "set"]
      },
      {
        "signature": "bool HasTransparentColor",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.1",
        "property": ["get", "set"]
      },
      {
        "signature": "Transform LocalMappingTransform",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.1",
        "property": ["get"]
      },
      {
        "signature": "int MappingChannel",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.1",
        "property": ["get", "set"]
      },
      {
        "signature": "Vector2d Offset",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.1",
        "property": ["get", "set"]
      },
      {
        "signature": "String OriginalFilename",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.1",
        "property": ["get"]
      },
      {
        "signature": "ProjectionModes ProjectionMode",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.1",
        "property": ["get", "set"]
      },
      {
        "signature": "Vector2d Repeat",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.1",
        "property": ["get", "set"]
      },
      {
        "signature": "bool Repeating",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.1",
        "property": ["get", "set"]
      },
      {
        "signature": "double Rotation",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.1",
        "property": ["get", "set"]
      },
      {
        "signature": "Color4f TransparentColor",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.1",
        "property": ["get", "set"]
      },
      {
        "signature": "double TransparentColorSensitivity",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.1",
        "property": ["get", "set"]
      }
    ],
    "methods": [
      {
        "signature": "System.IntPtr ConstPointer()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.1"
      },
      {
        "signature": "System.Void Dispose()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.1"
      },
      {
        "signature": "System.Void Dispose(System.Boolean disposing)",
        "modifiers": ["protected", "virtual"],
        "protected": true,
        "virtual": true
      },
      {
        "signature": "System.Double MetersToUnits(RhinoDoc doc, System.Double units)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0"
      },
      {
        "signature": "System.Double MetersToUnits(System.Double units)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.1",
        "deprecated": "6.0",
        "obsolete": "Obsolete, use version that requires a document"
      },
      {
        "signature": "System.Void SetMappingChannelAndProjectionMode(ProjectionModes pm, System.Int32 mappingChannel, EnvironmentMappingModes emm)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0"
      },
      {
        "signature": "Rhino.DocObjects.Texture Texture()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.1"
      },
      {
        "signature": "System.Double UnitsToMeters(RhinoDoc doc, System.Double units)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0"
      },
      {
        "signature": "System.Double UnitsToMeters(System.Double units)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.1",
        "deprecated": "6.0",
        "obsolete": "Obsolete, use version that requires a document"
      }
    ]
  },
  {
    "namespace": "Rhino.Render",
    "name": "SimulatedTexture.EnvironmentMappingModes",
    "dataType": "enum",
    "since": "6.0",
    "values": [
      {
        "signature": "Automatic = 0",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Spherical = 1",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Emap = 2",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Box = 3",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Lightprobe = 5",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Cubemap = 6",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "VerticalCrossCubemap = 7",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "HorizontalCrossCubemap = 8",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Hemispherical = 9",
        "modifiers": [],
        "protected": false,
        "virtual": false
      }
    ]

  },
  {
    "namespace": "Rhino.Render",
    "name": "SimulatedTexture.ProjectionModes",
    "dataType": "enum",
    "since": "5.1",
    "values": [
      {
        "signature": "MappingChannel = 0",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "View = 1",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Wcs = 2",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Emap = 3",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "WcsBox = 4",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Screen = 5",
        "modifiers": [],
        "protected": false,
        "virtual": false
      }
    ]

  },
  {
    "namespace": "Rhino.Render",
    "name": "Skylight",
    "dataType": "class",
    "baseclass": "Rhino.Render.DocumentOrFreeFloatingBase",
    "interfaces": ["IDisposable"],
    "constructors": [
      {
        "signature": "Skylight()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Create a utility object not associated with any document",
        "since": "6.0"
      },
      {
        "signature": "Skylight(Skylight src)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Create a utility object not associated with any document from another object",
        "since": "6.0"
      }
    ],
    "properties": [
      {
        "signature": "Guid CustomEnvironment",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "obsolete": "Use RenderSettings methods",
        "property": ["get", "set"]
      },
      {
        "signature": "bool CustomEnvironmentOn",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "obsolete": "Use RenderSettings methods",
        "property": ["get", "set"]
      },
      {
        "signature": "bool Enabled",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "double ShadowIntensity",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "ShadowIntensity is currently unused.",
        "since": "6.0",
        "property": ["get", "set"]
      }
    ],
    "methods": [
      {
        "signature": "System.Void CopyFrom(FreeFloatingBase src)",
        "modifiers": ["public", "override"],
        "protected": false,
        "virtual": false,
        "since": "6.0"
      },
      {
        "signature": "System.Void Dispose()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "8.0"
      }
    ],
    "events": [
      {
        "signature": "EventHandler<RenderPropertyChangedEvent> Changed",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "This event is raised when a Skylight property value is changed.",
        "since": "6.0"
      }
    ]

  },
  {
    "namespace": "Rhino.Render",
    "name": "Sun",
    "dataType": "class",
    "summary": "Represents the Sun on a little portion of Earth.",
    "baseclass": "Rhino.Render.DocumentOrFreeFloatingBase",
    "interfaces": ["IDisposable"],
    "constructors": [
      {
        "signature": "Sun()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Create a utility object not associated with any document",
        "since": "5.0"
      }
    ],
    "properties": [
      {
        "signature": "Accuracies Accuracy",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Accuracy.",
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "double Altitude",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "The sun's altitude above the horizon in degrees in the range -90 to +90. Setting this value will also set the sun to manual control mode.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "double Azimuth",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "The sun's azimuth in degrees. The value increases Eastwards with North as zero. Setting this value will also set the sun to manual control mode. Note: This value is not affected by the direction of north.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool DaylightSaving",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.10",
        "obsolete": "Use DaylightSavingOn",
        "property": ["get", "set"]
      },
      {
        "signature": "int DaylightSavingMinutes",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Daylight saving time in minutes",
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool DaylightSavingOn",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Daylight saving time 'on' state",
        "since": "5.10",
        "property": ["get", "set"]
      },
      {
        "signature": "bool Enabled",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Turn the sun on/off in this document.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "uint Hash",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Get a hash of the sun state.",
        "since": "8.0",
        "property": ["get"]
      },
      {
        "signature": "double Intensity",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Sun intensity.",
        "since": "7.0",
        "property": ["get", "set"]
      },
      {
        "signature": "double Latitude",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "The observer's latitude.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "Light Light",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Get a Light which represents the sun. If manual control is in effect, no sun calculation is performed; the function uses the last known values of azimuth and altitude. If manual control is not in effect, the observer's position, date, time, time zone and daylight saving values are used to calculate the position of the sun.",
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "double Longitude",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "The observer's longitude.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool ManualControl",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.10",
        "obsolete": "Use ManualControlOn",
        "property": ["get", "set"]
      },
      {
        "signature": "bool ManualControlOn",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Manual control 'on' state. When true, allows the user to set the sun azimuth and altitude directly. When false, the values are computed.",
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "double North",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Angle in degrees on world X-Y plane that should be considered north in the model. The angle is measured starting at the x-axis and increases anti-clockwise. The y-axis corresponds to a 'north' angle of 90 degrees.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool SkylightOn",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Turn skylight on or off.",
        "since": "5.10",
        "obsolete": "Use Rhino.Render.Skylight instead",
        "property": ["get", "set"]
      },
      {
        "signature": "double TimeZone",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "The observer's time zone measured in hours relative to UTC.",
        "since": "5.10",
        "property": ["get", "set"]
      },
      {
        "signature": "Vector3d Vector",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0",
        "property": ["get", "set"]
      }
    ],
    "methods": [
      {
        "signature": "System.Double AltitudeFromValues(System.Double latitude, System.Double longitude, System.Double timezoneHours, System.Int32 daylightMinutes, System.DateTime when, System.Double hours, System.Boolean fast)",
        "modifiers": ["static", "public"],
        "protected": false,
        "virtual": false,
        "since": "6.0"
      },
      {
        "signature": "System.Drawing.Color ColorFromAltitude(System.Double altitudeDegrees)",
        "modifiers": ["static", "public"],
        "protected": false,
        "virtual": false,
        "summary": "Get sun color based on altitude.",
        "since": "6.0",
        "parameters": [
          {
            "name": "altitudeDegrees",
            "type": "System.Double",
            "summary": "The altitude sun angle in degrees."
          }
        ],
        "returns": "Returns color for altitude."
      },
      {
        "signature": "System.Boolean Here(out System.Double latitude, out System.Double longitude)",
        "modifiers": ["static", "public"],
        "protected": false,
        "virtual": false,
        "since": "6.0"
      },
      {
        "signature": "System.Double JulianDay(System.Double timezoneHours, System.Int32 daylightMinutes, System.DateTime when, System.Double hours)",
        "modifiers": ["static", "public"],
        "protected": false,
        "virtual": false,
        "since": "6.0"
      },
      {
        "signature": "Geometry.Vector3d SunDirection(System.Double latitude, System.Double longitude, System.DateTime when)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "System.Double TwilightZone()",
        "modifiers": ["static", "public"],
        "protected": false,
        "virtual": false,
        "since": "6.0"
      },
      {
        "signature": "System.Void CopyFrom(FreeFloatingBase src)",
        "modifiers": ["public", "override"],
        "protected": false,
        "virtual": false,
        "since": "6.0"
      },
      {
        "signature": "System.Void Dispose()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "System.DateTime GetDateTime(System.DateTimeKind kind)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Get the observer's date and time as a DateTime with kind DateTimeKind.Local.  Param 'kind' specifies the kind of date and time to retrieve from the sun.  - If DateTimeKind.Local, the returned DateTime will contain the local sun time, i.e., the time you see in the UI under 'Local'.  - If DateTimeKind.Utc, the returned DateTime will contain the UTC sun time, i.e., the time you see in the UI under 'UTC', which is the Sun's local time adjusted for its time zone and daylight saving (if any).  **** Local sun time is to do with the Sun's time zone and not the time zone of the computer.  **** The returned DateTime object always has a kind of Local even if you requested the sun's UTC date and time. This is because the Sun's time zone is nothing to do with the actual computer's time zone and converting the result would cause further confusion.",
        "since": "5.0"
      },
      {
        "signature": "System.Void SetDateTime(System.DateTime time, System.DateTimeKind kind)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Set the observer's date and time. kind specifies the kind of date and time to set to the sun. Note that this is distinct from the DateTimeKind of 'time' which has nothing to do with the sun's local/UTC scenario.  - If 'kind' is DateTimeKind.Local, the sun's local time will be set, i.e., the time you see in the UI under 'Local'. This is the preferred way to use this function.  - If 'kind' is DateTimeKind.Utc, the sun's UTC time will be set, i.e., the time you see in the UI under 'UTC'. This is only for completeness; it's not likely to be useful, but if you do use it, be aware that the sun will convert this time to local using its currently set time zone and daylight saving information (not the locale's information).  Caveat: Local sun time is to do with the Sun's time zone and not the time zone of the computer.  Caveat: If the supplied DateTime object has a kind of Local, it will be used verbatim. If, however, it has a kind of Utc, it will be converted to local time on the computer using the computer's time zone and daylight saving locale information before being passed to the sun. To avoid confusion, it's best to always use DateTimes with Kind 'Local' when setting the sun's date and time. This is because the Sun's time zone is nothing to do with the actual computer's time zone.",
        "since": "6.0"
      },
      {
        "signature": "System.Void SetPosition(System.DateTime when, System.Double latitudeDegrees, System.Double longitudeDegrees)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0",
        "deprecated": "8.0",
        "obsolete": "Use SetDateTime"
      },
      {
        "signature": "System.Void SetPosition(System.Double azimuthDegrees, System.Double altitudeDegrees)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0",
        "deprecated": "8.0",
        "obsolete": "Use Azimuth and Altitude properties instead"
      },
      {
        "signature": "System.Void ShowDialog()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Show the modal sun dialog.",
        "since": "5.0",
        "deprecated": "6.0",
        "obsolete": "Use Rhino.UI.Dialogs.ShowSunDialog"
      }
    ],
    "events": [
      {
        "signature": "EventHandler<RenderPropertyChangedEvent> Changed",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "This event is raised when a Sun property value is changed.",
        "since": "5.10"
      }
    ]

  },
  {
    "namespace": "Rhino.Render",
    "name": "Sun.Accuracies",
    "dataType": "enum",
    "since": "8.0",
    "values": [
      {
        "signature": "Minimum",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Maximum",
        "modifiers": [],
        "protected": false,
        "virtual": false
      }
    ]

  },
  {
    "namespace": "Rhino.Render",
    "name": "SupportOptions",
    "dataType": "class",
    "constructors": [
      {
        "signature": "SupportOptions()",
        "summary": "Initializes a new instance of the SupportOptions class"
      }
    ],
    "methods": [
      {
        "signature": "System.Boolean AlwaysShowSunPreview()",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "6.0"
      },
      {
        "signature": "System.Int32 AutoSaveKeepAmount()",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "6.0"
      },
      {
        "signature": "System.Boolean AutoSaveRenderings()",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "6.0"
      },
      {
        "signature": "System.Boolean CheckSupportFilesBeforeRendering()",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "6.0"
      },
      {
        "signature": "System.Boolean CombineEditors()",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "6.0"
      },
      {
        "signature": "System.String CustomLibraryPath()",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "deprecated": "8.0",
        "obsolete": "Use 'Libraries_CustomPath' instead"
      },
      {
        "signature": "System.String CustomPaths()",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "deprecated": "8.0",
        "obsolete": "Use 'Libraries_CustomPathList' instead"
      },
      {
        "signature": "System.Int32 DarkPreviewCheckerColor()",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "6.0"
      },
      {
        "signature": "System.Boolean EnablePreviewJobLog()",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "6.0"
      },
      {
        "signature": "System.String FileExplorer_CustomPath()",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "8.0"
      },
      {
        "signature": "System.String FileExplorer_CustomPathList()",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "8.0"
      },
      {
        "signature": "RdkInitialLocation FileExplorer_InitialLocation()",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "8.0"
      },
      {
        "signature": "System.String FileExplorer_InitialLocationCustomFolder()",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "8.0"
      },
      {
        "signature": "System.String FileExplorer_LastNavigatedLocation()",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "8.0"
      },
      {
        "signature": "System.Void FileExplorer_SetCustomPath(System.String path)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "8.0"
      },
      {
        "signature": "System.Void FileExplorer_SetCustomPathList(System.String path)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "8.0",
        "parameters": [
          {
            "name": "path",
            "type": "System.String",
            "summary": "Semicolon delimited string of paths."
          }
        ]
      },
      {
        "signature": "System.Void FileExplorer_SetInitialLocation(RdkInitialLocation l)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "8.0"
      },
      {
        "signature": "System.Void FileExplorer_SetInitialLocationCustomFolder(System.String path)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "8.0"
      },
      {
        "signature": "System.Void FileExplorer_SetLastNavigatedLocation(System.String folder)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "8.0"
      },
      {
        "signature": "System.Void FileExplorer_SetShowCustom(System.Boolean b)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "8.0"
      },
      {
        "signature": "System.Void FileExplorer_SetShowDocuments(System.Boolean b)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "8.0"
      },
      {
        "signature": "System.Void FileExplorer_SetShowRenderContent(System.Boolean b)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "8.0"
      },
      {
        "signature": "System.Void FileExplorer_SetUseDefaultLocation(System.Boolean b)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "8.0"
      },
      {
        "signature": "System.Boolean FileExplorer_ShowCustom()",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "8.0"
      },
      {
        "signature": "System.Boolean FileExplorer_ShowDocuments()",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "8.0"
      },
      {
        "signature": "System.Boolean FileExplorer_ShowRenderContent()",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "8.0"
      },
      {
        "signature": "System.Boolean FileExplorer_UseDefaultLocation()",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "8.0"
      },
      {
        "signature": "System.Boolean HarvestContentParameters()",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "6.0"
      },
      {
        "signature": "System.Int32 LabelFormatLoc()",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "6.0"
      },
      {
        "signature": "System.Int32 LabelFormatUtc()",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "6.0"
      },
      {
        "signature": "System.String LastNavigatedLocation()",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "6.10",
        "deprecated": "8.0",
        "obsolete": "Use Libraries_LastNavigatedLocation or FileExplorer_LastNavigatedLocation"
      },
      {
        "signature": "System.String Libraries_CustomPath()",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "8.0"
      },
      {
        "signature": "System.String Libraries_CustomPathList()",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "8.0"
      },
      {
        "signature": "RdkInitialLocation Libraries_InitialLocation()",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "8.0"
      },
      {
        "signature": "System.String Libraries_InitialLocationCustomFolder()",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "8.0"
      },
      {
        "signature": "System.String Libraries_LastNavigatedLocation()",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "8.0"
      },
      {
        "signature": "System.Void Libraries_SetCustomPath(System.String path)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "8.0"
      },
      {
        "signature": "System.Void Libraries_SetCustomPathList(System.String path)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "8.0",
        "parameters": [
          {
            "name": "path",
            "type": "System.String",
            "summary": "Semicolon delimited string of paths."
          }
        ]
      },
      {
        "signature": "System.Void Libraries_SetInitialLocation(RdkInitialLocation l)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "8.0"
      },
      {
        "signature": "System.Void Libraries_SetInitialLocationCustomFolder(System.String path)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "8.0"
      },
      {
        "signature": "System.Void Libraries_SetLastNavigatedLocation(System.String folder)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "8.0"
      },
      {
        "signature": "System.Void Libraries_SetShowCustom(System.Boolean b)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "8.0"
      },
      {
        "signature": "System.Void Libraries_SetShowDocuments(System.Boolean b)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "8.0"
      },
      {
        "signature": "System.Void Libraries_SetShowRenderContent(System.Boolean b)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "8.0"
      },
      {
        "signature": "System.Void Libraries_SetUseDefaultLocation(System.Boolean b)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "8.0"
      },
      {
        "signature": "System.Boolean Libraries_ShowCustom()",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "8.0"
      },
      {
        "signature": "System.Boolean Libraries_ShowDocuments()",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "8.0"
      },
      {
        "signature": "System.Boolean Libraries_ShowRenderContent()",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "8.0"
      },
      {
        "signature": "System.Boolean Libraries_UseDefaultLocation()",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "8.0"
      },
      {
        "signature": "RdkInitialLocation LibrariesInitialLocation()",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "deprecated": "8.0",
        "obsolete": "Use 'Libraries_InitialLocation' instead"
      },
      {
        "signature": "System.String LibrariesInitialLocationCustomFolder()",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "deprecated": "8.0",
        "obsolete": "Use 'Libraries_InitialLocationCustomFolder' instead"
      },
      {
        "signature": "System.Int32 LightPreviewCheckerColor()",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "6.0"
      },
      {
        "signature": "System.Int32 MaxPreviewCacheMB()",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "6.0"
      },
      {
        "signature": "System.Int32 MaxPreviewSeconds()",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "6.0"
      },
      {
        "signature": "System.Boolean MultithreadedTextureEvaluation()",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "6.0"
      },
      {
        "signature": "System.Boolean PreferNativeRenderer()",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "6.0"
      },
      {
        "signature": "System.String PreferredUnpackFolder()",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "6.0"
      },
      {
        "signature": "System.Boolean PreviewCustomRenderMeshes()",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "6.0"
      },
      {
        "signature": "System.Void SetAlwaysShowSunPreview(System.Boolean b)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "6.0"
      },
      {
        "signature": "System.Void SetAutoSaveKeepAmount(System.Int32 value)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "6.0"
      },
      {
        "signature": "System.Void SetAutoSaveRenderings(System.Boolean b)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "6.0"
      },
      {
        "signature": "System.Void SetCheckSupportFilesBeforeRendering(System.Boolean b)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "6.0"
      },
      {
        "signature": "System.Void SetCombineEditors(System.Boolean b)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "6.0"
      },
      {
        "signature": "System.Void SetCustomLibraryPath(System.String path)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "deprecated": "8.0",
        "obsolete": "Use 'Libraries_SetCustomPath' instead"
      },
      {
        "signature": "System.Void SetCustomPaths(System.String path)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "deprecated": "8.0",
        "obsolete": "Use 'Libraries_SetCustomPathList' instead"
      },
      {
        "signature": "System.Void SetHarvestContentParameters(System.Boolean b)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "6.0"
      },
      {
        "signature": "System.Void SetLabelFormatLoc(System.Int32 value)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "6.0"
      },
      {
        "signature": "System.Void SetLabelFormatUtc(System.Int32 value)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "6.0"
      },
      {
        "signature": "System.Void SetLastNavigatedLocation(System.String folder)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "6.10",
        "deprecated": "8.0",
        "obsolete": "Use Libraries_SetLastNavigatedLocation or FileExplorer_SetLastNavigatedLocation"
      },
      {
        "signature": "System.Void SetLibrariesInitialLocation(RdkInitialLocation l)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "deprecated": "8.0",
        "obsolete": "Use 'Libraries_SetInitialLocation' instead"
      },
      {
        "signature": "System.Void SetLibrariesInitialLocationCustomFolder(System.String path)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "deprecated": "8.0",
        "obsolete": "Use 'Libraries_SetInitialLocationCustomFolder' instead"
      },
      {
        "signature": "System.Void SetMultithreadedTextureEvaluation(System.Boolean b)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "6.0"
      },
      {
        "signature": "System.Void SetPreferNativeRenderer(System.Boolean b)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "6.0"
      },
      {
        "signature": "System.Void SetPreferredUnpackFolder(System.String path)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "6.0"
      },
      {
        "signature": "System.Void SetPreviewCustomRenderMeshes(System.Boolean b)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "6.0"
      },
      {
        "signature": "System.Void SetShowCustom(System.Boolean b)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "deprecated": "8.0",
        "obsolete": "Use 'Libraries_SetShowCustom' instead"
      },
      {
        "signature": "System.Void SetShowDetailsPanel(System.Boolean b)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "6.0"
      },
      {
        "signature": "System.Void SetShowDocuments(System.Boolean b)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "deprecated": "8.0",
        "obsolete": "Use 'Libraries_SetShowDocuments' instead"
      },
      {
        "signature": "System.Void SetShowRenderContent(System.Boolean b)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "deprecated": "8.0",
        "obsolete": "Use 'Libraries_SetShowRenderContent' instead"
      },
      {
        "signature": "System.Void SetSupportSharedUIs(System.Boolean b)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "6.0"
      },
      {
        "signature": "System.Void SetTextureSize(RdkTextureSize size, System.Boolean bSendEvent)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "deprecated": "6.0",
        "obsolete": "Support for changing the texture size programatically will disappear in a future version of Rhino"
      },
      {
        "signature": "System.Void SetUseDefaultLibraryPath(System.Boolean b)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "deprecated": "8.0",
        "obsolete": "Use 'Libraries_SetUseDefaultLocation' instead"
      },
      {
        "signature": "System.Void SetUsePreviewCache(System.Boolean b)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "6.0"
      },
      {
        "signature": "System.Void SetUseQuickInitialPreview(System.Boolean b)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "6.0"
      },
      {
        "signature": "System.Boolean ShowCustom()",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "deprecated": "8.0",
        "obsolete": "Use 'Libraries_ShowCustom' instead"
      },
      {
        "signature": "System.Boolean ShowDetailsPanel()",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "6.0"
      },
      {
        "signature": "System.Boolean ShowDocuments()",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "deprecated": "8.0",
        "obsolete": "Use 'Libraries_ShowDocuments' instead"
      },
      {
        "signature": "System.Boolean ShowRenderContent()",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "deprecated": "8.0",
        "obsolete": "Use 'Libraries_ShowRenderContent' instead"
      },
      {
        "signature": "System.Boolean SupportSharedUIs()",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "6.0"
      },
      {
        "signature": "System.Boolean SupportSharedUIsNoCache()",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "6.0"
      },
      {
        "signature": "System.Int32 TextureSize()",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "6.0"
      },
      {
        "signature": "System.Boolean UseDefaultLibraryPath()",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "deprecated": "8.0",
        "obsolete": "Use 'Libraries_UseDefaultLocation' instead"
      },
      {
        "signature": "System.Boolean UsePreview()",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "6.0"
      },
      {
        "signature": "System.Boolean UsePreviewCache()",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "6.0"
      },
      {
        "signature": "System.Boolean UseQuickInitialPreview()",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "6.0"
      },
      {
        "signature": "System.Boolean UseRenderedPreview()",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "6.0"
      }
    ]
  },
  {
    "namespace": "Rhino.Render",
    "name": "SupportOptions.RdkInitialLocation",
    "dataType": "enum",
    "since": "6.0",
    "values": [
      {
        "signature": "RenderContent    = UnsafeNativeMethods.RdkInitialLocation.RenderContent",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "LastOpenedFolder = UnsafeNativeMethods.RdkInitialLocation.LastOpenedFolder",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "CustomFolder     = UnsafeNativeMethods.RdkInitialLocation.CustomFolder",
        "modifiers": [],
        "protected": false,
        "virtual": false
      }
    ]

  },
  {
    "namespace": "Rhino.Render",
    "name": "SupportOptions.RdkTextureSize",
    "dataType": "enum",
    "since": "6.0",
    "values": [
      {
        "signature": "Size1 = UnsafeNativeMethods.RdkTextureSize.Size1",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Size2 = UnsafeNativeMethods.RdkTextureSize.Size2",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Size3 = UnsafeNativeMethods.RdkTextureSize.Size3",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Size4 = UnsafeNativeMethods.RdkTextureSize.Size4",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Size5 = UnsafeNativeMethods.RdkTextureSize.Size5",
        "modifiers": [],
        "protected": false,
        "virtual": false
      }
    ]

  },
  {
    "namespace": "Rhino.Render",
    "name": "TexturedColor",
    "dataType": "class",
    "summary": "Color4f specialization of TexturedValue.",
    "baseclass": "TexturedValue<Display.Color4f>",
    "since": "6.12",
    "constructors": [
      {
        "signature": "TexturedColor(string name, Color4f value, bool on, float amount)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.12"
      }
    ]
  },
  {
    "namespace": "Rhino.Render",
    "name": "TexturedFloat",
    "dataType": "class",
    "summary": "float specialization of TexturedValue.",
    "baseclass": "TexturedValue<float>",
    "since": "6.12",
    "constructors": [
      {
        "signature": "TexturedFloat(string name, float value, bool on, float amount)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.12"
      }
    ]
  },
  {
    "namespace": "Rhino.Render",
    "name": "TexturedValue<T>",
    "dataType": "class",
    "summary": "Generic class to help holding on to related values. This can be used to get data from textured content fields with the HandleTexturedValuefunction.",
    "since": "6.12",
    "constructors": [
      {
        "signature": "TexturedValue<T>(string name, T value, bool on, float amount)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false
      }
    ],
    "fields": [
      {
        "signature": "public bool On",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "public float Amount",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "public readonly string Name",
        "modifiers": ["public", "readonly"],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "public RenderTexture Texture",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "public T Value",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false
      }
    ]

  },
  {
    "namespace": "Rhino.Render",
    "name": "TextureEnvironmentMappingMode",
    "dataType": "enum",
    "since": "5.7",
    "values": [
      {
        "signature": "Automatic   = 0",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Spherical   = 1",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "EnvironmentMap    = 2",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Box         = 3",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "LightProbe = 5",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Cube  = 6",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "VerticalCrossCube = 7",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "HorizontalCrossCube = 8",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Hemispherical = 9",
        "modifiers": [],
        "protected": false,
        "virtual": false
      }
    ]

  },
  {
    "namespace": "Rhino.Render",
    "name": "TextureEvaluator",
    "dataType": "class",
    "summary": "This is the interface to a lightweight object capable of evaluating texture color throughout uvw space.  Derive from this class to create your own texture evaluator to return from a custom RenderTexture.",
    "interfaces": ["IDisposable"],
    "constructors": [
      {
        "signature": "TextureEvaluator()",
        "modifiers": ["protected"],
        "protected": true,
        "virtual": false,
        "summary": "Base class constructor"
      },
      {
        "signature": "TextureEvaluator(TextureEvaluatorFlags evaluatorFlags)",
        "modifiers": ["protected"],
        "protected": true,
        "virtual": false,
        "summary": "Base class constructor"
      }
    ],
    "methods": [
      {
        "signature": "System.Void Dispose()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "For Dispose pattern",
        "since": "5.1"
      },
      {
        "signature": "System.Void Dispose(System.Boolean disposing)",
        "modifiers": ["protected", "virtual"],
        "protected": true,
        "virtual": true,
        "summary": "For Dispose pattern"
      },
      {
        "signature": "System.Boolean GetColor(Point3d uvw, Vector3d duvwdx, Vector3d duvwdy, ref Display.Color4f color)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Optimized version of GetColor for callers.  Much faster in the case of a native (C++) evaluator.",
        "since": "7.0",
        "parameters": [
          {
            "name": "uvw",
            "type": "Point3d",
            "summary": "is the point for which to evaluate the texture."
          },
          {
            "name": "duvwdx",
            "type": "Vector3d",
            "summary": "duvwdx is a ray differential."
          },
          {
            "name": "duvwdy",
            "type": "Vector3d",
            "summary": "duvwdy is a ray differential."
          },
          {
            "name": "color",
            "type": "Display.Color4f",
            "summary": "The texture color at this point in UV space."
          }
        ],
        "returns": "True if the evaluator returned a valid color.  Otherwise false."
      },
      {
        "signature": "Display.Color4f GetColor(Point3d uvw, Vector3d duvwdx, Vector3d duvwdy)",
        "modifiers": ["public", "virtual"],
        "protected": false,
        "virtual": true,
        "summary": "Get the color of the texture at a particular point in uvw space. May be called from within a rendering shade pipeline. note For ray differentials see Pharr Humphreys, \"Physically Based Rendering\", chapter 11.",
        "since": "5.1",
        "parameters": [
          {
            "name": "uvw",
            "type": "Point3d",
            "summary": "is the point for which to evaluate the texture."
          },
          {
            "name": "duvwdx",
            "type": "Vector3d",
            "summary": "duvwdx is a ray differential."
          },
          {
            "name": "duvwdy",
            "type": "Vector3d",
            "summary": "duvwdy is a ray differential."
          }
        ],
        "returns": "The texture color at this point in UV space."
      },
      {
        "signature": "System.Boolean Initialize()",
        "modifiers": ["public", "virtual"],
        "protected": false,
        "virtual": true,
        "summary": "Call this function before calling GetColor for the first time. Ideally, this should be on the main thread, but you can also call it on a worker thread as long as you are sure that Initialize() or GetColor() cannot be called at the same time on another thread.",
        "since": "6.0"
      },
      {
        "signature": "SimpleArrayByte WriteToByteArray(System.Int32 width, System.Int32 height)",
        "modifiers": ["public", "virtual"],
        "protected": false,
        "virtual": true,
        "summary": "Fast access to bitmap evaluator - supply size (which you will probably have received from CRhRdkTexture::PixelSize) to see if the data can be extracted direct to a width*height*4 array of unsigned chars.",
        "since": "7.0",
        "deprecated": "7.26",
        "obsolete": "Use WriteToByteArray2 instead - supports much larger byte arrays",
        "parameters": [
          {
            "name": "width",
            "type": "System.Int32",
            "summary": "is the point for which to evaluate the texture."
          },
          {
            "name": "height",
            "type": "System.Int32",
            "summary": "duvwdx is a ray differential."
          }
        ],
        "returns": "A ByteArray full of the byte values in RGBA order, or None if the function did not succeed"
      },
      {
        "signature": "StdVectorByte WriteToByteArray2(System.Int32 width, System.Int32 height)",
        "modifiers": ["public", "virtual"],
        "protected": false,
        "virtual": true,
        "summary": "Fast access to bitmap evaluator - supply size (which you will probably have received from CRhRdkTexture::PixelSize) to see if the data can be extracted direct to a width*height*4 array of unsigned chars.",
        "since": "7.0",
        "parameters": [
          {
            "name": "width",
            "type": "System.Int32",
            "summary": "is the point for which to evaluate the texture."
          },
          {
            "name": "height",
            "type": "System.Int32",
            "summary": "duvwdx is a ray differential."
          }
        ],
        "returns": "A ByteArray full of the byte values in RGBA order, or None if the function did not succeed"
      },
      {
        "signature": "SimpleArrayFloat WriteToFloatArray(System.Int32 width, System.Int32 height)",
        "modifiers": ["public", "virtual"],
        "protected": false,
        "virtual": true,
        "summary": "Fast access to bitmap evaluator - supply size (which you will probably have received from CRhRdkTexture::PixelSize) to see if the data can be extracted direct to a width*height*4 array of unsigned chars.",
        "since": "7.0",
        "deprecated": "7.26",
        "obsolete": "Use WriteToFloatArray2 instead - supports much larger byte arrays",
        "parameters": [
          {
            "name": "width",
            "type": "System.Int32",
            "summary": "is the point for which to evaluate the texture."
          },
          {
            "name": "height",
            "type": "System.Int32",
            "summary": "duvwdx is a ray differential."
          }
        ],
        "returns": "A FloatArray full of the float values in RGBA order, or None if the function did not succeed."
      },
      {
        "signature": "StdVectorFloat WriteToFloatArray2(System.Int32 width, System.Int32 height)",
        "modifiers": ["public", "virtual"],
        "protected": false,
        "virtual": true,
        "summary": "Fast access to bitmap evaluator - supply size (which you will probably have received from CRhRdkTexture::PixelSize) to see if the data can be extracted direct to a width*height*4 array of unsigned chars.",
        "since": "7.0",
        "parameters": [
          {
            "name": "width",
            "type": "System.Int32",
            "summary": "is the point for which to evaluate the texture."
          },
          {
            "name": "height",
            "type": "System.Int32",
            "summary": "duvwdx is a ray differential."
          }
        ],
        "returns": "A FloatArray full of the float values in RGBA order, or None if the function did not succeed."
      }
    ]
  },
  {
    "namespace": "Rhino.Render",
    "name": "TextureGeneration",
    "dataType": "enum",
    "since": "6.0",
    "values": [
      {
        "signature": "Allow = UnsafeNativeMethods.CRhRdkTextureGenConsts.Allow",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Disallow = UnsafeNativeMethods.CRhRdkTextureGenConsts.Disallow",
        "modifiers": [],
        "protected": false,
        "virtual": false
      }
    ]

  },
  {
    "namespace": "Rhino.Render",
    "name": "TextureGraphInfo",
    "dataType": "class",
    "interfaces": ["IDisposable"],
    "constructors": [
      {
        "signature": "TextureGraphInfo()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.3"
      }
    ],
    "properties": [
      {
        "signature": "IntPtr CppPointer",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.3",
        "property": ["get"]
      }
    ],
    "methods": [
      {
        "signature": "Axis ActiveAxis()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.3"
      },
      {
        "signature": "Channel ActiveChannel()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.3"
      },
      {
        "signature": "System.Double AmountU()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.3"
      },
      {
        "signature": "System.Double AmountV()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.3"
      },
      {
        "signature": "System.Double AmountW()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.3"
      },
      {
        "signature": "System.Void Dispose()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.3"
      },
      {
        "signature": "System.Void SetActiveAxis(Axis axis)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.3"
      },
      {
        "signature": "System.Void SetActiveChannel(Channel channel)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.3"
      },
      {
        "signature": "System.Void SetAmountU(System.Double d)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.3"
      },
      {
        "signature": "System.Void SetAmountV(System.Double d)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.3"
      },
      {
        "signature": "System.Void SetAmountW(System.Double d)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.3"
      }
    ]
  },
  {
    "namespace": "Rhino.Render",
    "name": "TextureGraphInfo.Axis",
    "dataType": "enum",
    "since": "6.3",
    "values": [
      {
        "signature": "kU = 0",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "kV = 1",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "kW = 2",
        "modifiers": [],
        "protected": false,
        "virtual": false
      }
    ]

  },
  {
    "namespace": "Rhino.Render",
    "name": "TextureGraphInfo.Channel",
    "dataType": "enum",
    "since": "6.3",
    "values": [
      {
        "signature": "kRed = 0",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "kGrn = 1",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "kBlu = 2",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "kAlp = 3",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "kLum = 4",
        "modifiers": [],
        "protected": false,
        "virtual": false
      }
    ]

  },
  {
    "namespace": "Rhino.Render",
    "name": "TextureMapping",
    "dataType": "class",
    "summary": "Represents a texture mapping.",
    "baseclass": "Rhino.DocObjects.ModelComponent",
    "properties": [
      {
        "signature": "bool Capped",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "// The m_bCapped applies to planar, cylinder and box mappings. If m_bCapped is false, the cylinder or box is \"infinite\", if m_bCapped is true, they are finite. In planar mappings, m_bCapped=False means \"the Z texture coordinate will always be 0.0\" this is now the default behaviour in Rhino 5.0 - it's what users expect apparently.",
        "since": "8.15",
        "property": ["get", "set"]
      },
      {
        "signature": "ModelComponentType ComponentType",
        "modifiers": ["public", "override"],
        "protected": false,
        "virtual": false,
        "summary": "Returns <b>ModelComponentType.TextureMapping</b> .",
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "Guid Id",
        "modifiers": ["public", "override"],
        "protected": false,
        "virtual": false,
        "summary": "The unique Id for this texture mapping object.",
        "since": "5.10",
        "property": ["get"]
      },
      {
        "signature": "TextureMappingType MappingType",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Texture mapping type associated with this Mapping object.",
        "since": "5.10",
        "property": ["get"]
      },
      {
        "signature": "Transform NormalTransform",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "For primitive based mappings, these transformations are used to map the world coordinate (x,y,z) point P and  surface normal N before it is projected to the normalized mapping primitive. The surface normal transformation, m_Nxyz, is always calculated from m_Pxyz.  It is a runtime setting that is not saved in 3dm files. If m_type is srfp_mapping, then m_Pxyz and m_Nxyz are ignored.",
        "since": "5.10",
        "property": ["get", "set"]
      },
      {
        "signature": "Transform PrimativeTransform",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "For primitive based mappings, these transformations are used to map the world coordinate (x,y,z) point P and  surface normal N before it is projected to the normalized mapping primitive. The surface normal transformation, m_Nxyz, is always calculated from m_Pxyz.  It is a runtime setting that is not saved in 3dm files. If m_type is srfp_mapping, then m_Pxyz and m_Nxyz are ignored.",
        "since": "5.10",
        "obsolete": "Spelling error - use PrimitiveTransform",
        "property": ["get", "set"]
      },
      {
        "signature": "Transform PrimitiveTransform",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "For primitive based mappings, these transformations are used to map the world coordinate (x,y,z) point P and  surface normal N before it is projected to the normalized mapping primitive. The surface normal transformation, m_Nxyz, is always calculated from m_Pxyz.  It is a runtime setting that is not saved in 3dm files. If m_type is srfp_mapping, then m_Pxyz and m_Nxyz are ignored.",
        "since": "7.5",
        "property": ["get", "set"]
      },
      {
        "signature": "Projection Projection",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "See Projection",
        "since": "8.15",
        "property": ["get", "set"]
      },
      {
        "signature": "TextureSpace TextureSpace",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "See TextureSpace",
        "since": "8.15",
        "property": ["get", "set"]
      },
      {
        "signature": "Transform UvwTransform",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Transform applied to mapping coordinate (u,v,w) to convert it into a texture coordinate.",
        "since": "5.10",
        "property": ["get", "set"]
      }
    ],
    "methods": [
      {
        "signature": "TextureMapping CreateBoxMapping(Plane plane, Interval dx, Interval dy, Interval dz, System.Boolean capped)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Create a box projection texture mapping.",
        "since": "5.0",
    "remarks": "When m_texture_space = divided, the box is mapped to texture space as follows: If the box is not capped, then each side maps to 1/4 of the texture map. v=1+---------+---------+---------+---------+ | x=dx[1] | y=dy[1] | x=dx[0] | y=dy[0] | | Front   | Right   | Back    | Left    | | --y->   | <-x--   | <-y--   | --x->   | v=0+---------+---------+---------+---------+ 0/4 <=u<= 1/4 <=u<= 2/4 <=u<= 3/4 <=u<= 4/4 If the box is capped, then each side and cap gets 1/6 of the texture map. v=1+---------+---------+---------+---------+---------+---------+ | x=dx[1] | y=dy[1] | x=dx[0] | y=dy[0] | z=dx[1] | z=dz[0] | | Front   | Right   | Back    | Left    | Top     |  Bottom | | --y->   | <x--   | <-y--   | --x->   | --x->   | --x->   | v=0+---------+---------+---------+---------+---------+---------+ 0/6 <=u<= 1/6 <=u<= 2/6 <=u<= 3/6 <=u<= 4/6 <=u<= 5/6 <=u<= 6/6",
        "parameters": [
          {
            "name": "plane",
            "type": "Plane",
            "summary": "The sides of the box the box are parallel to the plane's coordinate planes.  The dx, dy, dz intervals determine the location of the sides."
          },
          {
            "name": "dx",
            "type": "Interval",
            "summary": "Determines the location of the front and back planes. The vector plane.xaxis is perpendicular to these planes and they pass through plane.PointAt(dx[0],0,0) and plane.PointAt(dx[1],0,0), respectively."
          },
          {
            "name": "dy",
            "type": "Interval",
            "summary": "Determines the location of the left and right planes. The vector plane.yaxis is perpendicular to these planes and they pass through plane.PointAt(0,dy[0],0) and plane.PointAt(0,dy[1],0), respectively."
          },
          {
            "name": "dz",
            "type": "Interval",
            "summary": "Determines the location of the top and bottom planes. The vector plane.zaxis is perpendicular to these planes and they pass through plane.PointAt(0,0,dz[0]) and plane.PointAt(0,0,dz[1]), respectively."
          },
          {
            "name": "capped",
            "type": "System.Boolean",
            "summary": "If true, the box is treated as a finite capped box."
          }
        ],
        "returns": "TextureMapping instance if input is valid"
      },
      {
        "signature": "TextureMapping CreateCustomMeshMapping(Mesh mesh)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Create custom mesh mapping",
        "since": "6.15",
        "parameters": [
          {
            "name": "mesh",
            "type": "Mesh",
            "summary": "Mesh with texture coordinates"
          }
        ],
        "returns": "TextureMapping instance"
      },
      {
        "signature": "TextureMapping CreateCylinderMapping(Cylinder cylinder, System.Boolean capped)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Create a cylindrical projection texture mapping.",
        "since": "5.0",
    "remarks": "When the cylinder is capped and m_texture_space = divided, the cylinder is mapped to texture space as follows: The side is mapped to 0 <= \"u\" <= 2/3. The bottom is mapped to 2/3 <= \"u\" <= 5/6. The top is mapped to 5/6 <= \"u\" <= 5/6. This is the same convention box mapping uses.",
        "parameters": [
          {
            "name": "cylinder",
            "type": "Cylinder",
            "summary": "cylinder in world space used to define a cylindrical coordinate system. The angular parameter maps (0,2pi) to texture \"u\" (0,1), The height parameter maps (height[0],height[1]) to texture \"v\" (0,1), and the radial parameter maps (0,r) to texture \"w\" (0,1)."
          },
          {
            "name": "capped",
            "type": "System.Boolean",
            "summary": "If true, the cylinder is treated as a finite capped cylinder"
          }
        ],
        "returns": "TextureMapping instance if input is valid"
      },
      {
        "signature": "TextureMapping CreateOcsMapping(Plane plane)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Create a Ocs texture mapping.  Note that OCS mappings must be placed on mapping channel ON_ObjectRenderingAttributes::OCSMappingChannelId() otherwise they will not work.",
        "since": "7.17",
        "parameters": [
          {
            "name": "plane",
            "type": "Plane",
            "summary": "A plane to use for mapping."
          }
        ]
      },
      {
        "signature": "TextureMapping CreatePlaneMapping(Plane plane, Interval dx, Interval dy, Interval dz, System.Boolean capped)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Create a planar projection texture mapping",
        "since": "6.7",
        "parameters": [
          {
            "name": "plane",
            "type": "Plane",
            "summary": "A plane to use for mapping."
          },
          {
            "name": "dx",
            "type": "Interval",
            "summary": "portion of the plane's x axis that is mapped to [0,1] (can be a decreasing interval)"
          },
          {
            "name": "dy",
            "type": "Interval",
            "summary": "portion of the plane's y axis that is mapped to [0,1] (can be a decreasing interval)"
          },
          {
            "name": "dz",
            "type": "Interval",
            "summary": "portion of the plane's z axis that is mapped to [0,1] (can be a decreasing interval)"
          },
          {
            "name": "capped",
            "type": "System.Boolean",
            "summary": "set to True if planar UVW is meant, False for planar UV"
          }
        ],
        "returns": "TextureMapping instance if input is valid"
      },
      {
        "signature": "TextureMapping CreatePlaneMapping(Plane plane, Interval dx, Interval dy, Interval dz)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Create a planar UV projection texture mapping",
        "since": "5.0",
        "parameters": [
          {
            "name": "plane",
            "type": "Plane",
            "summary": "A plane to use for mapping."
          },
          {
            "name": "dx",
            "type": "Interval",
            "summary": "portion of the plane's x axis that is mapped to [0,1] (can be a decreasing interval)"
          },
          {
            "name": "dy",
            "type": "Interval",
            "summary": "portion of the plane's y axis that is mapped to [0,1] (can be a decreasing interval)"
          },
          {
            "name": "dz",
            "type": "Interval",
            "summary": "portion of the plane's z axis that is mapped to [0,1] (can be a decreasing interval)"
          }
        ],
        "returns": "TextureMapping instance if input is valid"
      },
      {
        "signature": "TextureMapping CreateSphereMapping(Sphere sphere)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Create a spherical projection texture mapping.",
        "since": "5.0",
        "parameters": [
          {
            "name": "sphere",
            "type": "Sphere",
            "summary": "sphere in world space used to define a spherical coordinate system. The longitude parameter maps (0,2pi) to texture \"u\" (0,1). The latitude parameter maps (-pi/2,+pi/2) to texture \"v\" (0,1). The radial parameter maps (0,r) to texture \"w\" (0,1)."
          }
        ],
        "returns": "TextureMapping instance if input is valid"
      },
      {
        "signature": "TextureMapping CreateSurfaceParameterMapping()",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Create a mapping that will convert surface parameters into normalized(0,1)x(0,1) texture coordinates.",
        "since": "7.5",
        "returns": "TextureMapping instance or None if failed."
      },
      {
        "signature": "System.Void Decompose(Transform localTransform, out Vector3d xyz_position, out Vector3d xyz_scale, out Vector3d xyz_rotation, out Vector3d uvw_offset, out Vector3d uvw_repeat, out Vector3d uvw_rotation)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the same decomposition of the texture mapping transforms as is used in the UI.",
        "since": "9.0"
      },
      {
        "signature": "System.Int32 Evaluate(Point3d p, Vector3d n, out Point3d t, Transform pXform, Transform nXform)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Evaluate the mapping to get a texture coordinate",
        "since": "6.17",
        "parameters": [
          {
            "name": "p",
            "type": "Point3d",
            "summary": "Vertex location"
          },
          {
            "name": "n",
            "type": "Vector3d",
            "summary": "If the mapping projection is ray_projection, then this is the vertex unit normal.  Otherwise n is ignored."
          },
          {
            "name": "t",
            "type": "Point3d",
            "summary": "Texture coordinate (u,v,w)"
          },
          {
            "name": "pXform",
            "type": "Transform",
            "summary": "Transformation to be applied to P before performing the mapping calculation."
          },
          {
            "name": "nXform",
            "type": "Transform",
            "summary": "Transformation to be applied to N before performing the mapping calculation. One way to calculate nXxform is to use the call pXform::GetVectorTransform(nXform)."
          }
        ],
        "returns": "Nonzero if evaluation is successful.  When the mapping is a box or capped cylinder mapping, the value indicates which side was evaluated. Cylinder mapping: 1 = cylinder wall, 2 = bottom cap, 3 = top cap Box mapping: 1 = front, 2 = right, 3 = back, 4 = left, 5 = bottom, 6 = top"
      },
      {
        "signature": "System.Int32 Evaluate(Point3d p, Vector3d n, out Point3d t)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Evaluate the mapping to get a texture coordinate",
        "since": "6.17",
        "parameters": [
          {
            "name": "p",
            "type": "Point3d",
            "summary": "Vertex location"
          },
          {
            "name": "n",
            "type": "Vector3d",
            "summary": "If the mapping projection is ray_projection, then this is the vertex unit normal.  Otherwise n is ignored."
          },
          {
            "name": "t",
            "type": "Point3d",
            "summary": "Texture coordinate (u,v,w)"
          }
        ],
        "returns": "Nonzero if evaluation is successful.  When the mapping is a box or capped cylinder mapping, the value indicates which side was evaluated. Cylinder mapping: 1 = cylinder wall, 2 = bottom cap, 3 = top cap Box mapping: 1 = front, 2 = right, 3 = back, 4 = left, 5 = bottom, 6 = top"
      },
      {
        "signature": "System.Boolean TryGetMappingBox(out Plane plane, out Interval dx, out Interval dy, out Interval dz, out System.Boolean capped)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Get a box projection from the texture mapping, including capped information",
        "since": "6.7",
    "remarks": "Generally, GetMappingBox will not return the same parameters passed to SetBoxMapping.  However, the location of the box will be the same.",
        "parameters": [
          {
            "name": "plane",
            "type": "Plane",
            "summary": "The center of the box is at plane.origin and the sides of the box are parallel to the plane's coordinate planes."
          },
          {
            "name": "dx",
            "type": "Interval",
            "summary": "The \"front\" and \"back\" sides of the box are in spanned by the vectors plane.yaxis and plane.zaxis.  The back plane contains the point plane.PointAt(dx[0],0,0) and the front plane contains the point plane.PointAt(dx[1],0,0)."
          },
          {
            "name": "dy",
            "type": "Interval",
            "summary": "The \"left\" and \"right\" sides of the box are in spanned by the vectors plane.zaxis and plane.xaxis.  The left plane contains the point plane.PointAt(0,dx[0],0) and the back plane contains the point plane.PointAt(0,dy[1],0)."
          },
          {
            "name": "dz",
            "type": "Interval",
            "summary": "The \"top\" and \"bottom\" sides of the box are in spanned by the vectors plane.xaxis and plane.yaxis.  The bottom plane contains the point plane.PointAt(0,0,dz[0]) and the top plane contains the point plane.PointAt(0,0,dz[1])."
          },
          {
            "name": "capped",
            "type": "System.Boolean",
            "summary": "True if box mapping is capped."
          }
        ],
        "returns": "Returns True if a valid box is returned."
      },
      {
        "signature": "System.Boolean TryGetMappingBox(out Plane plane, out Interval dx, out Interval dy, out Interval dz)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Get a box projection from the texture mapping.",
        "since": "5.10",
    "remarks": "Generally, GetMappingBox will not return the same parameters passed to SetBoxMapping.  However, the location of the box will be the same.",
        "parameters": [
          {
            "name": "plane",
            "type": "Plane",
            "summary": "The center of the box is at plane.origin and the sides of the box are parallel to the plane's coordinate planes."
          },
          {
            "name": "dx",
            "type": "Interval",
            "summary": "The \"front\" and \"back\" sides of the box are in spanned by the vectors plane.yaxis and plane.zaxis.  The back plane contains the point plane.PointAt(dx[0],0,0) and the front plane contains the point plane.PointAt(dx[1],0,0)."
          },
          {
            "name": "dy",
            "type": "Interval",
            "summary": "The \"left\" and \"right\" sides of the box are in spanned by the vectors plane.zaxis and plane.xaxis.  The left plane contains the point plane.PointAt(0,dx[0],0) and the back plane contains the point plane.PointAt(0,dy[1],0)."
          },
          {
            "name": "dz",
            "type": "Interval",
            "summary": "The \"top\" and \"bottom\" sides of the box are in spanned by the vectors plane.xaxis and plane.yaxis.  The bottom plane contains the point plane.PointAt(0,0,dz[0]) and the top plane contains the point plane.PointAt(0,0,dz[1])."
          }
        ],
        "returns": "Returns True if a valid box is returned."
      },
      {
        "signature": "System.Boolean TryGetMappingCylinder(out Cylinder cylinder, out System.Boolean capped)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Get a cylindrical projection parameters from this texture mapping.",
        "since": "6.7",
    "remarks": "Generally, GetMappingCylinder will not return the same parameters passed to SetCylinderMapping.  However, the location of the cylinder will be the same.  If this mapping is not cylindrical, the cylinder will approximate the actual mapping primitive.",
        "parameters": [
          {
            "name": "cylinder",
            "type": "Cylinder",
            "summary": ""
          },
          {
            "name": "capped",
            "type": "System.Boolean",
            "summary": "will be True if capped"
          }
        ],
        "returns": "Returns True if a valid cylinder is returned."
      },
      {
        "signature": "System.Boolean TryGetMappingCylinder(out Cylinder cylinder)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Get a cylindrical projection parameters from this texture mapping.",
        "since": "5.10",
    "remarks": "Generally, GetMappingCylinder will not return the same parameters passed to SetCylinderMapping.  However, the location of the cylinder will be the same.  If this mapping is not cylindrical, the cylinder will approximate the actual mapping primitive.",
        "returns": "Returns True if a valid cylinder is returned."
      },
      {
        "signature": "System.Boolean TryGetMappingMesh(out Mesh mesh)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Get custom mapping mesh from this texture mapping.",
        "since": "6.18",
        "returns": "True if custom mapping mesh was returned."
      },
      {
        "signature": "System.Boolean TryGetMappingPlane(out Plane plane, out Interval dx, out Interval dy, out Interval dz, out System.Boolean capped)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Get plane mapping parameters from this texture mapping, including capping information",
        "since": "6.7",
    "remarks": "NOTE WELL: Generally, GetMappingPlane will not return the same parameters passed to SetPlaneMapping.  However, the location of the plane will be the same.",
        "parameters": [
          {
            "name": "plane",
            "type": "Plane",
            "summary": ""
          },
          {
            "name": "dx",
            "type": "Interval",
            "summary": "Portion of the plane's x axis that is mapped to [0,1]"
          },
          {
            "name": "dy",
            "type": "Interval",
            "summary": "Portion of the plane's y axis that is mapped to [0,1]"
          },
          {
            "name": "dz",
            "type": "Interval",
            "summary": "Portion of the plane's z axis that is mapped to [0,1]"
          },
          {
            "name": "capped",
            "type": "System.Boolean",
            "summary": ""
          }
        ],
        "returns": "Return True if valid plane mapping parameters were returned."
      },
      {
        "signature": "System.Boolean TryGetMappingPlane(out Plane plane, out Interval dx, out Interval dy, out Interval dz)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Get plane mapping parameters from this texture mapping.",
        "since": "5.10",
    "remarks": "NOTE WELL: Generally, GetMappingPlane will not return the same parameters passed to SetPlaneMapping.  However, the location of the plane will be the same.",
        "parameters": [
          {
            "name": "plane",
            "type": "Plane",
            "summary": ""
          },
          {
            "name": "dx",
            "type": "Interval",
            "summary": "Portion of the plane's x axis that is mapped to [0,1]"
          },
          {
            "name": "dy",
            "type": "Interval",
            "summary": "Portion of the plane's y axis that is mapped to [0,1]"
          },
          {
            "name": "dz",
            "type": "Interval",
            "summary": "Portion of the plane's z axis that is mapped to [0,1]"
          }
        ],
        "returns": "Return True if valid plane mapping parameters were returned."
      },
      {
        "signature": "System.Boolean TryGetMappingSphere(out Sphere sphere)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Get a spherical projection parameters from this texture mapping.",
        "since": "5.10",
    "remarks": "Generally, GetMappingShere will not return the same parameters passed to SetSphereMapping.  However, the location of the sphere will be the same.  If this mapping is not cylindrical, the cylinder will approximate the actual mapping primitive.",
        "returns": "Returns True if a valid sphere is returned."
      }
    ]
  },
  {
    "namespace": "Rhino.Render",
    "name": "TextureMappingType",
    "dataType": "enum",
    "summary": "Defines enumerated constants for mapping types such as planar, cylindrical or spherical.",
    "since": "5.0",
    "values": [
      {
        "signature": "None = UnsafeNativeMethods.TextureMappingType.NoMapping",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "No mapping is selected."
      },
      {
        "signature": "SurfaceParameters = UnsafeNativeMethods.TextureMappingType.SrfpMapping",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "(u, v) = linear transform of surface params, w = 0."
      },
      {
        "signature": "PlaneMapping = UnsafeNativeMethods.TextureMappingType.PlaneMapping",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "(u, v, w) = 3d coordinates wrt frame."
      },
      {
        "signature": "CylinderMapping = UnsafeNativeMethods.TextureMappingType.CylinderMapping",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "(u, v, w) = longitude, height, radius."
      },
      {
        "signature": "SphereMapping = UnsafeNativeMethods.TextureMappingType.SphereMapping",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "(u, v, w) = longitude,latitude,radius."
      },
      {
        "signature": "BoxMapping = UnsafeNativeMethods.TextureMappingType.BoxMapping",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Box mapping type."
      },
      {
        "signature": "MeshMappingPrimitive = UnsafeNativeMethods.TextureMappingType.MeshMappingPrimitive",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Mapping primitive is a mesh."
      },
      {
        "signature": "SurfaceMappingPrimitive = UnsafeNativeMethods.TextureMappingType.SrfMappingPrimitive",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Mapping primitive is a surface."
      },
      {
        "signature": "BrepMappingPrimitive = UnsafeNativeMethods.TextureMappingType.BrepMappingPrimitive",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Mapping primitive is a brep."
      },
      {
        "signature": "OcsMapping = UnsafeNativeMethods.TextureMappingType.OcsMapping",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "OCS mapping type (WCS/WCS Box with object frame)."
      },
      {
        "signature": "FalseColors = UnsafeNativeMethods.TextureMappingType.FalseColors",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Some sort of False color mapping used to set per vertex colors"
      }
    ]

  },
  {
    "namespace": "Rhino.Render",
    "name": "TextureMode",
    "dataType": "enum",
    "since": "6.0",
    "values": [
      {
        "signature": "PROJECTION_MODE = 0",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "MAPPING_CHANNEL_MODE",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "WRAP_TYPE_MODE",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "REPEAT_LOCKED_MODE",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "OFFSET_LOCKED_MODE",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "PREVIEW_IN_3D_MODE",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "REPEAT_MODE",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "OFFSET_MODE",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "ROTATION_MODE",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "ENVIRONMENT_MAPPING_MODE",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "INTERNAL_ENVIRONMENT_MAPPING_MODE",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "PREVIEW_LOCAL_MAPPING_MODE",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "DISPLAY_IN_VIEWPORT_MODE",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "IS_HDR_CAPABLE_MODE",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "IS_LINEAR_MODE",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "IS_IMAGE_BASED",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "IS_NORMALMAP",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "PIXELSIZE_AS_3DVECTOR",
        "modifiers": [],
        "protected": false,
        "virtual": false
      }
    ]

  },
  {
    "namespace": "Rhino.Render",
    "name": "TextureProjectionMode",
    "dataType": "enum",
    "since": "5.7",
    "values": [
      {
        "signature": "MappingChannel = 0",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "View = 1",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Wcs = 2",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "EnvironmentMap = 3",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "WcsBox = 4",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Screen = 5",
        "modifiers": [],
        "protected": false,
        "virtual": false
      }
    ]

  },
  {
    "namespace": "Rhino.Render",
    "name": "TextureRenderHashFlags",
    "dataType": "enum",
    "summary": "This enum is deprecated in favor of CrcRenderHashFlags.",
    "since": "6.0",
    "deprecated": "8.0",
    "values": [
      {
        "signature": "ExcludeLocalMapping = (1 << 32)",
        "modifiers": [],
        "protected": false,
        "virtual": false
      }
    ]

  },
  {
    "namespace": "Rhino.Render",
    "name": "TextureSpace",
    "dataType": "enum",
    "summary": "Texture space  When a mapping primitive is a box or a capped cylinder, there are two options for the mapping.  Either the sides all map to (0,1)x(0,1) (so the either texture map appears on each side, or the sides map to distinct regions of the texture space.",
    "since": "8.15",
    "values": [
      {
        "signature": "Single = 0",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "sides and caps map to same texture space"
      },
      {
        "signature": "Divided = 1",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "regions of texture space. (0, 1/4, 2/4, 3/4, 1) for uncapped boxes. (0, 1/6, 2/6, 3/6, 4/6, 5/6, 1) for capped boxes. (0, 4/6, 5/6, 1) for capped cylinders."
      }
    ]

  },
  {
    "namespace": "Rhino.Render",
    "name": "TextureWrapType",
    "dataType": "enum",
    "since": "5.7",
    "values": [
      {
        "signature": "Clamped = 0",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Repeating = 1",
        "modifiers": [],
        "protected": false,
        "virtual": false
      }
    ]

  },
  {
    "namespace": "Rhino.Render",
    "name": "TimeZone",
    "dataType": "class",
    "summary": "TimeZone",
    "properties": [
      {
        "signature": "double Hours",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets hours of a time zone.",
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "double Latitude",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns the latitude of a major city nearby",
        "since": "6.15",
        "property": ["get"]
      },
      {
        "signature": "double Longitude",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns the Longitude of a major city nearby",
        "since": "6.15",
        "property": ["get"]
      },
      {
        "signature": "String Name",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets name of a time zone.",
        "since": "6.0",
        "property": ["get"]
      }
    ],
    "methods": [
      {
        "signature": "System.TimeZone TimeZoneAt(System.Int32 index)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Returns a time zone at given index.",
        "since": "6.0",
        "parameters": [
          {
            "name": "index",
            "type": "System.Int32",
            "summary": "index."
          }
        ],
        "returns": "Time zone at index."
      },
      {
        "signature": "System.Int32 TimeZones()",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Returns number of available time zones.",
        "since": "6.0",
        "returns": "Time zone count."
      }
    ]
  },
  {
    "namespace": "Rhino.Render",
    "name": "TwoColorRenderTexture",
    "dataType": "class",
    "baseclass": "Rhino.Render.RenderTexture",
    "constructors": [
      {
        "signature": "TwoColorRenderTexture()",
        "modifiers": ["protected"],
        "protected": true,
        "virtual": false,
        "since": "5.1"
      }
    ],
    "properties": [
      {
        "signature": "Color4f Color1",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.1",
        "property": ["get", "set"]
      },
      {
        "signature": "Color4f Color2",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.1",
        "property": ["get", "set"]
      },
      {
        "signature": "bool SuperSample",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.1",
        "property": ["get", "set"]
      },
      {
        "signature": "bool SwapColors",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.1",
        "property": ["get", "set"]
      },
      {
        "signature": "double Texture1Amount",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.1",
        "property": ["get", "set"]
      },
      {
        "signature": "bool Texture1On",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.1",
        "property": ["get", "set"]
      },
      {
        "signature": "double Texture2Amount",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.1",
        "property": ["get", "set"]
      },
      {
        "signature": "bool Texture2On",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.1",
        "property": ["get", "set"]
      }
    ],
    "methods": [
      {
        "signature": "System.Void AddAdditionalUISections()",
        "modifiers": ["protected", "abstract"],
        "protected": true,
        "virtual": false
      },
      {
        "signature": "System.Void OnAddUserInterfaceSections()",
        "modifiers": ["protected", "override", "sealed"],
        "protected": true,
        "virtual": false
      }
    ]
  },
  {
    "namespace": "Rhino.Render.UI",
    "name": "IUserInterfaceSection",
    "dataType": "interface",
    "summary": "Implement this interface in your user control to get UserInterfaceSection event notification.",
    "properties": [
      {
        "signature": "bool Hidden",
        "modifiers": [],
        "protected": true,
        "virtual": false,
        "summary": "Return True if the section should be hidden, else return false.",
        "since": "6.0",
        "deprecated": "6.0",
    "remarks": "This is not to be confused with IsShown(). Hidden tells the holder whether or not to hide the section. IsShown reports the current physical state of the control.",
        "property": ["get"]
      }
    ],
    "methods": [
      {
        "signature": "System.Void OnUserInterfaceSectionExpanding(UserInterfaceSection userInterfaceSection, System.Boolean expanding)",
        "modifiers": [],
        "protected": true,
        "virtual": false,
        "summary": "The UserInterfaceSection object that called this interface method.",
        "since": "5.1",
        "deprecated": "6.0",
        "parameters": [
          {
            "name": "userInterfaceSection",
            "type": "UserInterfaceSection",
            "summary": "The UserInterfaceSection object that called this interface method."
          },
          {
            "name": "expanding",
            "type": "System.Boolean",
            "summary": "Will be True if the control has been createExpanded or False if it was collapsed."
          }
        ]
      },
      {
        "signature": "System.Void UserInterfaceDisplayData(UserInterfaceSection userInterfaceSection, RenderContent[] renderContentList)",
        "modifiers": [],
        "protected": true,
        "virtual": false,
        "summary": "Called by UserInterfaceSection when the selected content changes or a content field property value changes.",
        "since": "5.1",
        "deprecated": "6.0",
        "parameters": [
          {
            "name": "userInterfaceSection",
            "type": "UserInterfaceSection",
            "summary": "The UserInterfaceSection object that called this interface method."
          },
          {
            "name": "renderContentList",
            "type": "RenderContent[]",
            "summary": "The currently selected list of content items to edit."
          }
        ]
      }
    ]
  },
  {
    "namespace": "Rhino.Render.UI",
    "name": "UserInterfaceSection",
    "dataType": "class",
    "summary": "Custom user interface section manager",
    "properties": [
      {
        "signature": "RenderContent RenderContent",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "The RenderContent object that created this user interface object.",
        "since": "5.1",
        "deprecated": "6.0",
        "property": ["get"]
      },
      {
        "signature": "object Window",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "The user control associated with this user interface object.",
        "since": "5.1",
        "deprecated": "6.0",
        "property": ["get"]
      }
    ],
    "methods": [
      {
        "signature": "UserInterfaceSection FromWindow(System.Object window)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Find the UserInterfaceSection that created the specified instance of a window.",
        "since": "6.0",
        "deprecated": "6.0",
        "parameters": [
          {
            "name": "window",
            "type": "System.Object",
            "summary": "If window is not None then look for the UserInterfaceSection that created the window."
          }
        ],
        "returns": "If a UserInterfaceSection object is found containing a reference to the requested window then return the object otherwise return null."
      },
      {
        "signature": "System.Void Expand(System.Boolean expand)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Expand or collapse this content section.",
        "since": "5.1",
        "deprecated": "6.0",
        "parameters": [
          {
            "name": "expand",
            "type": "System.Boolean",
            "summary": "If True then expand the content section otherwise collapse it."
          }
        ]
      },
      {
        "signature": "RenderContent[] GetContentList()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns a list of currently selected content items to be edited.",
        "since": "5.1",
        "deprecated": "6.0",
        "returns": "Returns a list of currently selected content items to be edited."
      },
      {
        "signature": "System.Void Show(System.Boolean visible)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Show or hide this content section.",
        "since": "5.1",
        "deprecated": "6.0",
        "parameters": [
          {
            "name": "visible",
            "type": "System.Boolean",
            "summary": "If True then show the content section otherwise hide it."
          }
        ]
      }
    ]
  },
  {
    "namespace": "Rhino.Render.UI",
    "name": "WorldMapDayNight",
    "dataType": "class",
    "interfaces": ["IDisposable"],
    "constructors": [
      {
        "signature": "WorldMapDayNight()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0"
      }
    ],
    "methods": [
      {
        "signature": "System.Void Dispose()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0"
      },
      {
        "signature": "System.Boolean HasMapForCurrentSettings()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0"
      },
      {
        "signature": "System.Drawing.Point LocationToMap(Rhino.Geometry.Point2d latlong)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0"
      },
      {
        "signature": "System.Void MakeMapBitmap()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0"
      },
      {
        "signature": "System.Drawing.Image Map()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0"
      },
      {
        "signature": "Rhino.Geometry.Point2d MapToLocation(System.Drawing.Point mapPoint)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0"
      },
      {
        "signature": "System.Void SetDayNightDisplay(System.Boolean bOn)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0"
      },
      {
        "signature": "System.Void SetEnabled(System.Boolean bEnabled)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0"
      },
      {
        "signature": "System.Void SetTimeInfo(System.DateTime dt, System.Double timezone, System.Int32 daylightSavingMinutes, System.Boolean bDaylightSavingsOn)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0"
      }
    ]
  },
  {
    "namespace": "Rhino.Render",
    "name": "UndoRedo",
    "dataType": "class",
    "summary": "This class contains the event for UndoRedoChanged that is fired from RDK .",
    "constructors": [
      {
        "signature": "UndoRedo()",
        "summary": "Initializes a new instance of the UndoRedo class"
      }
    ],
    "events": [
      {
        "signature": "EventHandler<RenderPropertyChangedEvent> UndoRedoChanged",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Called after undo or redo has occurred for document settings.",
        "since": "6.0"
      },
      {
        "signature": "EventHandler<RenderPropertyChangedEvent> UndoRedoEndedChanged",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "This event is raised when undo/redo ends in rdk.",
        "since": "7.0"
      }
    ]

  },
  {
    "namespace": "Rhino.Render",
    "name": "Utilities",
    "dataType": "class",
    "constructors": [
      {
        "signature": "Utilities()",
        "summary": "Initializes a new instance of the Utilities class"
      }
    ],
    "properties": [
      {
        "signature": "Guid DefaultRenderPlugInId",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Get the plug-in Id for the default render plug-in",
        "since": "5.3",
        "property": ["get"]
      },
      {
        "signature": "bool ShowIncompatibleEnvironments",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Specifies whether incompatible content should be shown in the corresponding editor.",
        "since": "5.3",
        "property": ["get", "set"]
      },
      {
        "signature": "bool ShowIncompatibleMaterials",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Specifies whether incompatible content should be shown in the corresponding editor.",
        "since": "5.3",
        "property": ["get", "set"]
      },
      {
        "signature": "bool ShowIncompatibleTextures",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Specifies whether incompatible content should be shown in the corresponding editor.",
        "since": "5.3",
        "property": ["get", "set"]
      }
    ],
    "methods": [
      {
        "signature": "RenderContent ChangeContentType(RenderContent oldContent, System.Guid newType, System.Boolean harvestParameters)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Changes the type of a content. This deletes the content and creates a replacement of the specified type allowing the caller to decide about harvesting.",
        "since": "6.0",
        "parameters": [
          {
            "name": "oldContent",
            "type": "RenderContent",
            "summary": "oldContent is the old content which is deleted."
          },
          {
            "name": "newType",
            "type": "System.Guid",
            "summary": "The type of content to replace pOldContent with."
          },
          {
            "name": "harvestParameters",
            "type": "System.Boolean",
            "summary": "Determines whether or not parameter harvesting will be performed."
          }
        ],
        "returns": "A new persistent render content."
      },
      {
        "signature": "System.String ExpandEnvVarsInFileName(System.String filename)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "System.String FindFile(RhinoDoc doc, System.String fullPathToFile, System.Boolean unpackFromBitmapTableIfNecessary)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Finds a file and also handles network shares. This is a replacement for CRhinoFileUtilities::FindFile().",
        "since": "6.0",
    "remarks": "This is a replacement for CRhinoFileUtilities::FindFile().",
        "parameters": [
          {
            "name": "doc",
            "type": "RhinoDoc",
            "summary": "Document to use for locating .3dm file's folder."
          },
          {
            "name": "fullPathToFile",
            "type": "System.String",
            "summary": "The file to be found."
          },
          {
            "name": "unpackFromBitmapTableIfNecessary",
            "type": "System.Boolean",
            "summary": "True to seasch for the file in the bitmap table and unpack it into the temp folder if not found in the initial search."
          }
        ],
        "returns": "The found file."
      },
      {
        "signature": "System.String FindFile(RhinoDoc doc, System.String fullPathToFile)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Finds a file and also handles network shares. This is a replacement for CRhinoFileUtilities::FindFile().",
        "since": "6.0",
    "remarks": "This is a replacement for CRhinoFileUtilities::FindFile().",
        "parameters": [
          {
            "name": "doc",
            "type": "RhinoDoc",
            "summary": "Document to use for locating .3dm file's folder."
          },
          {
            "name": "fullPathToFile",
            "type": "System.String",
            "summary": "The file to be found."
          }
        ],
        "returns": "The found file."
      },
      {
        "signature": "System.String GetUnpackedFilesCacheFolder(RhinoDoc doc, System.Boolean create)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Gets a folder associated with the document for unpacking textures to",
        "since": "8.0",
        "parameters": [
          {
            "name": "doc",
            "type": "RhinoDoc",
            "summary": "The document the folder is associated with"
          },
          {
            "name": "create",
            "type": "System.Boolean",
            "summary": "If true, this will create a directory if it does not exist"
          }
        ],
        "returns": "The path to the unpacked files folder"
      },
      {
        "signature": "System.Boolean IsCachedTextureFileInUse(System.String textureFileName)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Determines if any texture in any persistent content list is using the specified file name for caching.",
        "since": "6.0",
        "parameters": [
          {
            "name": "textureFileName",
            "type": "System.String",
            "summary": "The file name to check for. The extension is ignored."
          }
        ],
        "returns": "True if the texture is present."
      },
      {
        "signature": "RenderContent LoadPersistentRenderContentFromFile(System.UInt32 docSerialNumber, System.String filename)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Loads a content from a library file and adds it to the persistent content list of a particular document.",
        "since": "6.0",
        "parameters": [
          {
            "name": "docSerialNumber",
            "type": "System.UInt32",
            "summary": "identifies the document into which the content should be loaded."
          },
          {
            "name": "filename",
            "type": "System.String",
            "summary": "is the full path to the file to be loaded."
          }
        ],
        "returns": "The loaded content or None if an error occurred."
      },
      {
        "signature": "System.Void MoveWindow(System.IntPtr hwnd, System.Drawing.Rectangle rect, System.Boolean bRepaint, System.Boolean bRepaintNC)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "6.0"
      },
      {
        "signature": "System.String PromptForSaveImageFileParameters(System.String filename, ref System.Int32 width, ref System.Int32 height, ref System.Int32 colorDepth)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Prompts the user for a save file name and the width, height and depth of an image to be saved.",
        "since": "6.0",
        "parameters": [
          {
            "name": "filename",
            "type": "System.String",
            "summary": "The original file path."
          },
          {
            "name": "width",
            "type": "System.Int32",
            "summary": "A width."
          },
          {
            "name": "height",
            "type": "System.Int32",
            "summary": "An height."
          },
          {
            "name": "colorDepth",
            "type": "System.Int32",
            "summary": "A color depth."
          }
        ],
        "returns": "The new file name."
      },
      {
        "signature": "System.Boolean SafeFrameEnabled(RhinoDoc doc)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Queries whether or not the Safe Frame is visible.",
        "since": "6.0"
      },
      {
        "signature": "System.Boolean SetDefaultRenderPlugIn(System.Guid pluginId)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Set default render application",
        "since": "5.3",
        "parameters": [
          {
            "name": "pluginId",
            "type": "System.Guid",
            "summary": "ID of render plug-in"
          }
        ],
        "returns": "True if plug-in found and loaded successfully.  False if pluginId is invalid or was unable to load plug-in"
      },
      {
        "signature": "ShowContentChooserResults ShowContentChooser(RhinoDoc doc, System.Guid defaultType, System.Guid defaultInstanceId, RenderContentKind kinds, ContentChooserFlags flags, System.String presetCategory, IEnumerable<string> categories, IEnumerable<Guid> types, out System.Guid[] instanceIdsOut)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Shows the Content New / Existing Browser to allow the user to select a new or existing content, or multiple contents.",
        "since": "7.9",
        "deprecated": "9.0",
        "obsolete": "Since 9.0: Use ShowContentNewExistingBrowser"
      },
      {
        "signature": "ShowContentChooserResults ShowContentChooser(RhinoDoc doc, System.Guid defaultType, System.Guid defaultInstanceId, RenderContentKind kinds, ShowContentChooserFlags flags, System.String presetCategory, IEnumerable<string> categories, IEnumerable<Guid> types, out System.Guid[] instanceIdsOut)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Shows the Content New / Existing Browser to allow the user to select a new or existing content.",
        "since": "7.6",
        "deprecated": "7.9",
        "obsolete": "Since 7.9: Use ShowContentNewExistingBrowser"
      },
      {
        "signature": "ShowContentChooserResults ShowContentChooser(System.Guid defaultType, System.Guid defaultInstanceId, RenderContentKind kinds, ref System.Guid instanceIdOut, ShowContentChooserFlags flags, RhinoDoc doc)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Shows the Content New / Existing Browser to allow the user to select a new or existing content.",
        "since": "6.25",
        "deprecated": "7.9",
        "obsolete": "Since 7.9: Use ShowContentNewExistingBrowser"
      },
      {
        "signature": "ContentNewExistingResults ShowContentNewExistingBrowser(RhinoDoc doc, System.Guid defaultType, System.Guid defaultInstanceId, RenderContentKind kinds, ContentNewExistingFlags flags, System.String presetCategory, IEnumerable<string> categories, IEnumerable<Guid> types, out System.Guid[] contents)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Shows the Content New / Existing Browser to allow the user to select a new or existing content, or multiple contents.",
        "since": "9.0",
        "parameters": [
          {
            "name": "doc",
            "type": "RhinoDoc",
            "summary": "A Rhino document."
          },
          {
            "name": "defaultType",
            "type": "System.Guid",
            "summary": "The content type that will be initially selected in the 'New' tab."
          },
          {
            "name": "defaultInstanceId",
            "type": "System.Guid",
            "summary": "The content instance that will be initially selected in the 'Existing' tab."
          },
          {
            "name": "kinds",
            "type": "RenderContentKind",
            "summary": "Semicolon-delimited string specifying which content kinds will be displayed."
          },
          {
            "name": "flags",
            "type": "ContentNewExistingFlags",
            "summary": "Flags controlling the browser (tabs to hide, type of selection)."
          },
          {
            "name": "presetCategory",
            "type": "System.String",
            "summary": "Specifies the category to preset in the drop-down list on the 'New' tab. If this string is empty, the preset category will be 'All'."
          },
          {
            "name": "categories",
            "type": "IEnumerable<string>",
            "summary": "Specifies the categories to display. Render contents that do not belong to one of these categories will not be listed. If this array is empty, all render contents from all categories will be listed."
          },
          {
            "name": "types",
            "type": "IEnumerable<Guid>",
            "summary": "Specifies content types to display. Contents that are not one of these types will not be listed. If this array is empty, all content types will be listed."
          },
          {
            "name": "contents",
            "type": "System.Guid[]",
            "summary": "Array of Guid(s) of the chosen item(s). Depending on the result, this can accept type id(s) of content type(s) or instance id(s) of existing content(s)."
          }
        ],
        "returns": "The result of displaying the browser."
      },
      {
        "signature": "System.Boolean ShowIORMenu(System.IntPtr hwnd, System.Drawing.Point pt, ref System.Double outIOR, ref System.String outString)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Display and track the context menu.",
        "since": "6.0",
        "parameters": [
          {
            "name": "hwnd",
            "type": "System.IntPtr",
            "summary": "The window that displays the menu, for example an edit box."
          },
          {
            "name": "pt",
            "type": "System.Drawing.Point",
            "summary": "The position to display the menu at inside the window"
          },
          {
            "name": "outIOR",
            "type": "System.Double",
            "summary": "Accepts the IOR value of the user's chosen substance"
          },
          {
            "name": "outString",
            "type": "System.String",
            "summary": "Accepts the name of the user's chosen substance. Can be None if not required."
          }
        ],
        "returns": "True if the function showed the IOR menu and something was picked."
      }
    ]
  },
  {
    "namespace": "Rhino.Render",
    "name": "Utilities.ContentChooserFlags",
    "dataType": "enum",
    "since": "7.9",
    "deprecated": "9.0",
    "values": [
      {
        "signature": "None = 0x0000",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "HideNewTab = 0x0001",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "HideExistingTab = 0x0002",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "MultipleSelection = 0x0004",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "DisableImportButton = 0x0010",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "HideCopyOrShare = 0x0020",
        "modifiers": [],
        "protected": false,
        "virtual": false
      }
    ]

  },
  {
    "namespace": "Rhino.Render",
    "name": "Utilities.ContentNewExistingFlags",
    "dataType": "enum",
    "since": "9.0",
    "values": [
      {
        "signature": "None = 0x0000",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "No flags; normal usage."
      },
      {
        "signature": "HideNewTab = 0x0001",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Hides the 'New' tab."
      },
      {
        "signature": "HideExistingTab = 0x0002",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Hides the 'Existing' tab."
      },
      {
        "signature": "MultipleSelection = 0x0004",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Enables multiple selection."
      },
      {
        "signature": "DisableImportButton = 0x0010",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Disables the import button."
      },
      {
        "signature": "HideCopyOrShare = 0x0020",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Hides the copy/share radio buttons."
      }
    ]

  },
  {
    "namespace": "Rhino.Render",
    "name": "Utilities.ContentNewExistingResults",
    "dataType": "enum",
    "since": "9.0",
    "values": [
      {
        "signature": "None",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "No choice (user cancelled)."
      },
      {
        "signature": "New",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "User chose from 'New' tab. contents accepts the chosen type id(s)."
      },
      {
        "signature": "Copy",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "User chose from 'Existing' tab with 'copy' radio button checked. contents accepts the chosen instance id(s)."
      },
      {
        "signature": "Instance",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "User chose from 'Existing' tab with 'instance' radio button checked. contents accepts the chosen instance id(s)."
      },
      {
        "signature": "Reference",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "User chose from 'Existing' tab with no radio buttons. contents accepts the chosen instance id(s)."
      }
    ]

  },
  {
    "namespace": "Rhino.Render",
    "name": "Utilities.PreviewQuality",
    "dataType": "enum",
    "summary": "The quality of the rendered preview",
    "since": "8.8",
    "values": [
      {
        "signature": "None = 0",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Low = 1",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Medium = 2",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "IntermediateProgressive = 3",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Full = 4",
        "modifiers": [],
        "protected": false,
        "virtual": false
      }
    ]

  },
  {
    "namespace": "Rhino.Render",
    "name": "Utilities.PreviewRenderResult",
    "dataType": "enum",
    "summary": "The preview render result",
    "since": "8.8",
    "values": [
      {
        "signature": "Rendering",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "CacheOK",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "CacheFail",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Nothing",
        "modifiers": [],
        "protected": false,
        "virtual": false
      }
    ]

  },
  {
    "namespace": "Rhino.Render",
    "name": "Utilities.ShowContentChooserResults",
    "dataType": "enum",
    "since": "6.0",
    "deprecated": "9.0",
    "values": [
      {
        "signature": "None",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "New",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Copy",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Instance",
        "modifiers": [],
        "protected": false,
        "virtual": false
      }
    ]

  },
  {
    "namespace": "Rhino.Render",
    "name": "Variant.Types",
    "dataType": "enum",
    "values": [
      {
        "signature": "Null",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Bool",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Integer",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Float",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Double",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "String",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Vector2d",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Vector3d",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Point4d",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Color",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Xform",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Uuid",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Time",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Buffer",
        "modifiers": [],
        "protected": false,
        "virtual": false
      }
    ]

  },
  {
    "namespace": "Rhino",
    "name": "RhinoApp",
    "dataType": "class",
    "summary": ".NET RhinoApp is parallel to C++ CRhinoApp.",
    "constructors": [
      {
        "signature": "RhinoApp()",
        "summary": "Initializes a new instance of the RhinoApp class"
      }
    ],
    "properties": [
      {
        "signature": "DateTime BuildDate",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the build date.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "bool CanSave",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Returns True when Rhino is allowed to save, False otherwise Conditions where Rhino is not allowed to save are: when evaluation licenses are expired; when a Cloud Zoo lease is expired; when a license is shared by a single user on multiple computers, and the current computer is not active.",
        "since": "7.0",
        "property": ["get"]
      },
      {
        "signature": "bool CheckNewObject",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Returns True if Rhino will validate each object added to the document. This can be time consuming but is valuable for debugging.",
        "since": "8.7",
        "property": ["get", "set"]
      },
      {
        "signature": "string CommandHistoryWindowText",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Text in Rhino's command history window.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "CommandLineTextWriter CommandLineOut",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Provides a TextWriter that can write to the command line.",
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "string CommandPrompt",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Rhino command prompt.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool CommandWindowCaptureEnabled",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Enable or disable capturing of the strings sent to the CommandWindow through Write and WriteLine calls",
        "since": "7.0",
        "property": ["get", "set"]
      },
      {
        "signature": "Guid CurrentRhinoId",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the current ID of Rhino.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "int DaysUntilExpiration",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Returns number of days until license expires. Zero when license is expired. Raises InvalidLicenseTypeException if LicenseExpires would return false.",
        "since": "5.6",
        "property": ["get"]
      },
      {
        "signature": "Font DefaultUiFont",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Default font used to render user interface",
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "int ExeServiceRelease",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Service release version of Rhino executable (0, 1, 2, ...) The integer is the service release number of Rhino.  For example, this function returns \"0\" if Rhino V4SR0 is running and returns \"1\" if Rhino V4SR1 is running.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "int ExeVersion",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Major version of Rhino executable 4, 5, ...",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "int InCommand",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the nested command count.",
        "since": "8.0",
        "property": ["get"]
      },
      {
        "signature": "Installation InstallationType",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the product installation type, as seen in Rhino's ABOUT dialog box.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "string InstallationTypeString",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the type of installation (product edition) of the license or lease.",
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "bool InvokeRequired",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Returns True if we are currently not running on the main user interface thread",
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "bool IsClosing",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Returns True if Rhino is in the process of closing, False otherwise. This can be True even before the Closing event fires, such as when RhinoDoc.CloseDocument event is called.",
        "since": "6.26",
        "property": ["get"]
      },
      {
        "signature": "bool IsCloudZooNode",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Returns True if rhino is currently using the Cloud Zoo False otherwise",
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "bool IsEvaluation",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Returns True if Rhino is licensed as an Evaluation product False otherwise",
        "property": ["get"]
      },
      {
        "signature": "bool IsExiting",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Returns True if Rhino is in the process of exiting, False otherwise. This can be True even before the Closing event fires, such as when RhinoDoc.CloseDocument event is called.",
        "since": "6.26",
        "property": ["get"]
      },
      {
        "signature": "bool IsInternetAccessAllowed",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Returns True when Rhino is allowed to access the Internet, False otherwise. Note, this does not test if Internet access is available.",
        "since": "6.15",
        "property": ["get"]
      },
      {
        "signature": "bool IsLicenseValidated",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Returns True if the license is validated False otherwise",
        "since": "5.6",
        "property": ["get"]
      },
      {
        "signature": "bool IsOnMainThread",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Is the current thread the main thread",
        "since": "8.10",
        "property": ["get"]
      },
      {
        "signature": "bool IsParentDesktop",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Returns True if Rhino's parent window is the desktop, False otherwise.",
        "since": "8.14",
    "remarks": "The parent of a top-level window is the desktop window. Some applications like to re-parent Rhino's main window to a window they provide. Use this property to determine if Rhino is in such a condition. Note, this property is only valid on Windows.",
        "property": ["get"]
      },
      {
        "signature": "bool IsPreRelease",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Returns True if Rhino is compiled as pre-release build (Beta, WIP) False otherwise",
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "bool IsRunningAutomated",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Is Rhino currently being executed through automation",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "bool IsRunningHeadless",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Is Rhino currently being executed in headless mode",
        "since": "6.1",
        "property": ["get"]
      },
      {
        "signature": "bool IsSafeModeEnabled",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Is Rhino being executed in safe mode",
        "since": "7.9",
        "property": ["get"]
      },
      {
        "signature": "bool IsSkinned",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Is Rhino currently using custom, user-interface Skin.",
        "since": "6.2",
        "property": ["get"]
      },
      {
        "signature": "bool LicenseExpires",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Returns True if the license will expire False otherwise",
        "since": "5.6",
        "property": ["get"]
      },
      {
        "signature": "string LicenseUserName",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the name of the user that owns the license or lease.",
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "string LicenseUserOrganization",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the name of the organization of the user that owns the license or lease.",
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "Image LoggedInUserAvatar",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Returns the logged in user's avatar picture. Returns a default avatar if the user does not have an avatar or if the avatar could not be fetched.",
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "string LoggedInUserName",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Returns the name of the logged in user, or None if the user is not logged in.",
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "RhinoWindow MainApplicationWindow",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Same as MainWindow function, but provides the concrete class instead of an interface",
        "since": "5.0",
        "obsolete": "Use MainWindowHandle or RhinoEtoApp.MainWindow in Rhino.UI",
        "property": ["get"]
      },
      {
        "signature": "string Name",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the application name.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "LicenseNode NodeType",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Gets license the node type.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "Guid Rhino2Id",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the ID of Rhino 2.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "Guid Rhino3Id",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the ID of Rhino 3.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "Guid Rhino4Id",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the ID of Rhino 4.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "Guid Rhino5Id",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the ID of Rhino 5",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "Guid Rhino6Id",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the ID of Rhino 6",
        "since": "7.0",
        "property": ["get"]
      },
      {
        "signature": "Guid Rhino7Id",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the ID of Rhino 7",
        "since": "7.3",
        "property": ["get"]
      },
      {
        "signature": "string SchemeName",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the current Registry scheme name.",
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "int SdkServiceRelease",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Rhino SDK 9 digit SDK service release number in the form YYYYMMDDn  Service release of the Rhino SDK supported by this executable. Rhino will only load plug-ins that require a service release of <= this release number. For example, SR1 will load all plug-ins made with any SDK released up through and including the SR1 SDK. But, SR1 will not load a plug-in built using the SR2 SDK. If an \"old\" Rhino tries to load a \"new\" plug-in, the user is told that they have to get a free Rhino.exe update in order for the plug-in to load. Rhino.exe updates are available from http://www.rhino3d.com.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "int SdkVersion",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Rhino SDK 9 digit SDK version number in the form YYYYMMDDn  Rhino will only load plug-ins that were build with exactly the same version of the SDK.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "bool SendWriteToConsole",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Enable or disable sending command window strings to the console RhinoApp.Write(...) calls would be sent to the console when this is enabled",
        "since": "7.5",
        "property": ["get", "set"]
      },
      {
        "signature": "string SerialNumber",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the product serial number, as seen in Rhino's ABOUT dialog box.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "ToolbarFileCollection ToolbarFiles",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Collection of currently open toolbar files in the application",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "int UpdatesAndStatisticsStatus",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Returns True when Rhino is allowed to access the Internet, False otherwise. Note, this does not test if Internet access is available.",
        "since": "6.15",
        "property": ["get"]
      },
      {
        "signature": "bool UserIsLoggedIn",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Returns True if the user is logged in; else returns false. A logged in user does not guarantee that the auth tokens managed by the CloudZooManager instance are valid.",
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "int ValidationGracePeriodDaysLeft",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Returns number of days within which validation must occur. Zero when validation grace period has expired. Raises InvalidLicenseTypeException if LicenseType is one of: EvaluationSaveLimited EvaluationTimeLimited Viewer Unknown",
        "since": "5.6",
        "property": ["get"]
      },
      {
        "signature": "Version Version",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "File version of the main Rhino process",
        "since": "5.9",
        "property": ["get"]
      },
      {
        "signature": "string VersionControlRevision",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "McNeel version control revision identifier at the time this version of Rhino was built.",
        "since": "5.0",
        "property": ["get"]
      }
    ],
    "methods": [
      {
        "signature": "System.Boolean AskUserForRhinoLicense(System.Boolean standAlone, System.Object parentWindow)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Display UI asking the user to enter a license for Rhino or use one from the Zoo.",
        "since": "6.0",
        "parameters": [
          {
            "name": "standAlone",
            "type": "System.Boolean",
            "summary": "True to ask for a stand-alone license, False to ask the user for a license from the Zoo"
          },
          {
            "name": "parentWindow",
            "type": "System.Object",
            "summary": "Parent window for the user interface dialog."
          }
        ]
      },
      {
        "signature": "System.String[] CapturedCommandWindowStrings(System.Boolean clearBuffer)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Get list of strings sent to the command window through calls to Write or WriteLine when capturing has been enabled",
        "since": "7.0",
        "parameters": [
          {
            "name": "clearBuffer",
            "type": "System.Boolean",
            "summary": "Clear the captured buffer after this call"
          }
        ],
        "returns": "array of captured strings"
      },
      {
        "signature": "System.Boolean ChangeLicenseKey(System.Guid pluginId)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Display UI asking the user to enter a license for the product specified by licenseId.",
        "since": "6.0",
        "parameters": [
          {
            "name": "pluginId",
            "type": "System.Guid",
            "summary": "Guid identifying the plug-in that is requesting a change of license key"
          }
        ],
        "returns": "True on success, False otherwise"
      },
      {
        "signature": "System.Void ClearCommandHistoryWindow()",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Clear the text in Rhino's command history window.",
        "since": "5.0"
      },
      {
        "signature": "Commands.Result ExecuteCommand(RhinoDoc document, System.String commandName)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Execute a Rhino command.",
        "since": "6.0",
        "parameters": [
          {
            "name": "document",
            "type": "RhinoDoc",
            "summary": "Document to execute the command for"
          },
          {
            "name": "commandName",
            "type": "System.String",
            "summary": "Name of command to run.  Use command's localized name or preface with an underscore."
          }
        ],
        "returns": "Returns the result of the command."
      },
      {
        "signature": "System.Void Exit()",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Exits, or closes, Rhino.",
        "since": "5.0"
      },
      {
        "signature": "System.Void Exit(System.Boolean allowCancel)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Exits, or forcefully closes Rhino. A prompt to allow saving will appear if necessary when forcefully exiting Works on Windows and MacOS True to allow the user to cancel exiting False to force exit",
        "parameters": [
          {
            "name": "allowCancel",
            "type": "System.Boolean",
            "summary": "True to allow the user to cancel exiting False to force exit"
          }
        ]
      },
      {
        "signature": "System.String GetDataDirectory(System.Boolean localUser, System.Boolean forceDirectoryCreation, System.String subDirectory)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the data directory.",
        "since": "6.0",
        "parameters": [
          {
            "name": "localUser",
            "type": "System.Boolean",
            "summary": "If set totruelocal user."
          },
          {
            "name": "forceDirectoryCreation",
            "type": "System.Boolean",
            "summary": "If set totrueforce directory creation."
          },
          {
            "name": "subDirectory",
            "type": "System.String",
            "summary": "Sub directory, will get appended to the end of the data directory.  if forceDirectoryCreation is True then this directory will get created and writable."
          }
        ],
        "returns": "The data directory."
      },
      {
        "signature": "System.String GetDataDirectory(System.Boolean localUser, System.Boolean forceDirectoryCreation)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the data directory.",
        "since": "6.0",
        "parameters": [
          {
            "name": "localUser",
            "type": "System.Boolean",
            "summary": "If set totruelocal user."
          },
          {
            "name": "forceDirectoryCreation",
            "type": "System.Boolean",
            "summary": "If set totrueforce directory creation."
          }
        ],
        "returns": "The data directory."
      },
      {
        "signature": "System.IO.DirectoryInfo GetExecutableDirectory()",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Directory where main RhinoCore binary is located",
        "since": "6.7"
      },
      {
        "signature": "System.IO.DirectoryInfo GetInstallDirectory()",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Directory where all of Rhino is installed"
      },
      {
        "signature": "System.Object GetPlugInObject(System.Guid pluginId)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the object that is returned by PlugIn.GetPlugInObject for a given plug-in. This function attempts to find and load a plug-in with a given Id. When a plug-in is found, it's GetPlugInObject function is called and the result is returned here. Note the plug-in must have already been installed in Rhino or the plug-in manager will not know where to look for a plug-in with a matching id.",
        "since": "5.0",
        "parameters": [
          {
            "name": "pluginId",
            "type": "System.Guid",
            "summary": "Guid for a given plug-in."
          }
        ],
        "returns": "Result of PlugIn.GetPlugInObject for a given plug-in on success."
      },
      {
        "signature": "System.Object GetPlugInObject(System.String plugin)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the object that is returned by PlugIn.GetPlugInObject for a given plug-in. This function attempts to find and load a plug-in with a given name. When a plug-in is found, it's GetPlugInObject function is called and the result is returned here. Note the plug-in must have already been installed in Rhino or the plug-in manager will not know where to look for a plug-in with a matching name.",
        "since": "5.0",
        "parameters": [
          {
            "name": "plugin",
            "type": "System.String",
            "summary": "Name of a plug-in."
          }
        ],
        "returns": "Result of PlugIn.GetPlugInObject for a given plug-in on success."
      },
      {
        "signature": "System.Boolean InFullScreen()",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Verifies that Rhino is running in full screen mode.",
        "since": "6.0",
        "returns": "True if Rhino is running full screen, False otherwise."
      },
      {
        "signature": "System.Void InvokeAndWait(System.Action action)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Work-In-Progress. Testing this with our unit test framework",
        "since": "6.0"
      },
      {
        "signature": "System.Void InvokeOnUiThread(System.Delegate method, params System.Object[] args)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Execute a function on the main UI thread.",
        "since": "6.0",
        "parameters": [
          {
            "name": "method",
            "type": "System.Delegate",
            "summary": "function to execute"
          },
          {
            "name": "args",
            "type": "System.Object[]",
            "summary": "parameters to pass to the function"
          }
        ]
      },
      {
        "signature": "System.Boolean IsInstallationBeta(Installation licenseType)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "If licenseType is a beta license, returns true. A beta license grants full use of the product during the pre-release development period.",
        "since": "5.6",
        "returns": "True if licenseType is a beta license. False otherwise"
      },
      {
        "signature": "System.Boolean IsInstallationCommercial(Installation licenseType)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "If licenseType is a commercial license, returns true. A commercial license grants full use of the product.",
        "since": "5.6",
        "returns": "True if licenseType is a commercial license. False otherwise"
      },
      {
        "signature": "System.Boolean IsInstallationEvaluation(Installation licenseType)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "If licenseType is an evaluation license, returns true. An evaluation license limits the ability of Rhino to save based on either the number of saves or a fixed period of time.",
        "since": "5.6",
        "returns": "True if licenseType is an evaluation license. False otherwise"
      },
      {
        "signature": "System.Boolean LoginToCloudZoo()",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Logs in to the cloud zoo.",
        "since": "6.0"
      },
      {
        "signature": "System.Windows.Forms.IWin32Window MainWindow()",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Main Rhino Window",
        "since": "5.0",
        "deprecated": "6.0",
        "obsolete": "Use MainWindowHandle or RhinoEtoApp.MainWindow in Rhino.UI"
      },
      {
        "signature": "System.IntPtr MainWindowHandle()",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the HWND of the Rhino main window.",
        "since": "5.0"
      },
      {
        "signature": "System.Void OutputDebugString(System.String str)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Print a string to the Visual Studio Output window, if a debugger is attached.  Note that the developer needs to add a newline manually if the next output should come on a separate line.",
        "since": "6.0",
        "parameters": [
          {
            "name": "str",
            "type": "System.String",
            "summary": "The string to print to the Output window."
          }
        ]
      },
      {
        "signature": "System.String ParseTextField(System.String formula, RhinoObject obj, RhinoObject topParentObject, InstanceObject immediateParent)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Parses a text field string.",
        "since": "8.10",
        "parameters": [
          {
            "name": "formula",
            "type": "System.String",
            "summary": "The text formula."
          },
          {
            "name": "obj",
            "type": "RhinoObject",
            "summary": "The Rhino object. Value can be IntPtr.Zero."
          },
          {
            "name": "topParentObject",
            "type": "RhinoObject",
            "summary": "The parent Rhino object. Value can be IntPtr.Zero."
          },
          {
            "name": "immediateParent",
            "type": "InstanceObject",
            "summary": "The immediate parent instance object. Value can be IntPtr.Zero."
          }
        ],
        "returns": "The parsed text field if sucessful."
      },
      {
        "signature": "System.String ParseTextField(System.String formula, RhinoObject obj, RhinoObject topParentObject)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Parses a text field string.",
        "since": "6.0",
        "parameters": [
          {
            "name": "formula",
            "type": "System.String",
            "summary": "The text formula."
          },
          {
            "name": "obj",
            "type": "RhinoObject",
            "summary": "The Rhino object. Value can be IntPtr.Zero."
          },
          {
            "name": "topParentObject",
            "type": "RhinoObject",
            "summary": "The parent Rhino object. Value can be IntPtr.Zero."
          }
        ],
        "returns": "The parsed text field if sucessful."
      },
      {
        "signature": "System.Void PostCancelEvent(System.UInt32 runtimeDocSerialNumber)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Post a cancel event to the command line",
        "since": "8.0",
        "parameters": [
          {
            "name": "runtimeDocSerialNumber",
            "type": "System.UInt32",
            "summary": "Unique serialNumber for the document to post the event to."
          }
        ]
      },
      {
        "signature": "System.Void PostEnterEvent(System.UInt32 runtimeDocSerialNumber, System.Boolean bRepeatedEnter)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Post an enter event to the command line",
        "since": "8.0",
        "parameters": [
          {
            "name": "runtimeDocSerialNumber",
            "type": "System.UInt32",
            "summary": "Unique serialNumber for the document to post the event to."
          },
          {
            "name": "bRepeatedEnter",
            "type": "System.Boolean",
            "summary": "if true, allow multiple enter events to be posted simultaneouslyt."
          }
        ]
      },
      {
        "signature": "System.Boolean RefreshRhinoLicense()",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Refresh the license used by Rhino. This allows any part of Rhino to ensure that the most current version of the license file on disk is in use.",
        "since": "6.0"
      },
      {
        "signature": "System.Void RefreshScreen()",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Request OS to update UI on screen.",
        "since": "9.0"
      },
      {
        "signature": "System.Boolean ReleaseMouseCapture()",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Releases the mouse capture.",
        "since": "5.0"
      },
      {
        "signature": "System.Boolean RunMenuScript(System.String script)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Run a Rhino menu item script.  Will add the selected menu string to the MRU command menu.",
        "since": "6.0",
    "remarks": "Rhino acts as if each character in the script string had been typed in the command prompt. When RunScript is called from a \"script runner\" command, it completely runs the script before returning. When RunScript is called outside of a command, it returns and the script is run. This way menus and buttons can use RunScript to execute complicated functions.",
        "parameters": [
          {
            "name": "script",
            "type": "System.String",
            "summary": "[in] script to run."
          }
        ]
      },
      {
        "signature": "System.Boolean RunningInRdp()",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Find out if Rhino is running in a remote session",
        "since": "6.0",
        "returns": "True if Rhino is running in a RDP session, False otherwise"
      },
      {
        "signature": "System.Boolean RunningOnVMWare()",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Verifies that Rhino is running on VMWare",
        "since": "6.0",
        "returns": "True if Rhino is running in Windows on VMWare, False otherwise"
      },
      {
        "signature": "System.Boolean RunScript(System.String script, System.Boolean echo)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Runs a Rhino command script.",
        "since": "5.0",
    "remarks": "Rhino acts as if each character in the script string had been typed in the command prompt. When RunScript is called from a \"script runner\" command, it completely runs the script before returning. When RunScript is called outside of a command, it returns and the script is run. This way menus and buttons can use RunScript to execute complicated functions.",
        "parameters": [
          {
            "name": "script",
            "type": "System.String",
            "summary": "[in] script to run."
          },
          {
            "name": "echo",
            "type": "System.Boolean",
            "summary": "Controls how the script is echoed in the command output window. False = silent - nothing is echoed. True = verbatim - the script is echoed literally."
          }
        ]
      },
      {
        "signature": "System.Boolean RunScript(System.String script, System.String mruDisplayString, System.Boolean echo)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Runs a Rhino command script.",
        "since": "5.0",
    "remarks": "Rhino acts as if each character in the script string had been typed in the command prompt. When RunScript is called from a \"script runner\" command, it completely runs the script before returning. When RunScript is called outside of a command, it returns and the script is run. This way menus and buttons can use RunScript to execute complicated functions.",
        "parameters": [
          {
            "name": "script",
            "type": "System.String",
            "summary": "[in] script to run."
          },
          {
            "name": "mruDisplayString",
            "type": "System.String",
            "summary": "[in] String to display in the most recent command list."
          },
          {
            "name": "echo",
            "type": "System.Boolean",
            "summary": "Controls how the script is echoed in the command output window. False = silent - nothing is echoed. True = verbatim - the script is echoed literally."
          }
        ]
      },
      {
        "signature": "System.Boolean RunScript(System.UInt32 documentSerialNumber, System.String script, System.Boolean echo)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Runs a Rhino command script.",
        "since": "7.12",
    "remarks": "Rhino acts as if each character in the script string had been typed in the command prompt. When RunScript is called from a \"script runner\" command, it completely runs the script before returning. When RunScript is called outside of a command, it returns and the script is run. This way menus and buttons can use RunScript to execute complicated functions.",
        "parameters": [
          {
            "name": "documentSerialNumber",
            "type": "System.UInt32",
            "summary": "[in] Document serial number for the document to run the script for."
          },
          {
            "name": "script",
            "type": "System.String",
            "summary": "[in] script to run."
          },
          {
            "name": "echo",
            "type": "System.Boolean",
            "summary": "[in] Controls how the script is echoed in the command output window. False = silent - nothing is echoed. True = verbatim - the script is echoed literally."
          }
        ]
      },
      {
        "signature": "System.Boolean RunScript(System.UInt32 documentSerialNumber, System.String script, System.String mruDisplayString, System.Boolean echo)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Runs a Rhino command script.",
        "since": "7.12",
    "remarks": "Rhino acts as if each character in the script string had been typed in the command prompt. When RunScript is called from a \"script runner\" command, it completely runs the script before returning. When RunScript is called outside of a command, it returns and the script is run. This way menus and buttons can use RunScript to execute complicated functions.",
        "parameters": [
          {
            "name": "documentSerialNumber",
            "type": "System.UInt32",
            "summary": "[in] Document serial number for the document to run the script for."
          },
          {
            "name": "script",
            "type": "System.String",
            "summary": "[in] script to run."
          },
          {
            "name": "mruDisplayString",
            "type": "System.String",
            "summary": "[in] String to display in the most recent command list."
          },
          {
            "name": "echo",
            "type": "System.Boolean",
            "summary": "[in] Controls how the script is echoed in the command output window. False = silent - nothing is echoed. True = verbatim - the script is echoed literally."
          }
        ]
      },
      {
        "signature": "System.Void SendKeystrokes(System.String characters, System.Boolean appendReturn)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Sends a string of printable characters, including spaces, to Rhino's command line.",
        "since": "5.0",
        "parameters": [
          {
            "name": "characters",
            "type": "System.String",
            "summary": "[in] A string to characters to send to the command line. This can be null."
          },
          {
            "name": "appendReturn",
            "type": "System.Boolean",
            "summary": "[in] Append a return character to the end of the string."
          }
        ]
      },
      {
        "signature": "System.Void SetCommandPrompt(System.String prompt, System.String promptDefault)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Sets the command prompt in Rhino.",
        "since": "5.0",
        "parameters": [
          {
            "name": "prompt",
            "type": "System.String",
            "summary": "The new prompt text."
          },
          {
            "name": "promptDefault",
            "type": "System.String",
            "summary": "Text that appears in angle brackets and indicates what will happen if the user pressed ENTER."
          }
        ]
      },
      {
        "signature": "System.Void SetCommandPrompt(System.String prompt)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Set Rhino command prompt.",
        "since": "5.0",
        "parameters": [
          {
            "name": "prompt",
            "type": "System.String",
            "summary": "The new prompt text."
          }
        ]
      },
      {
        "signature": "System.Void SetCommandPromptMessage(System.String prompt)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Set the text that appears in the Rhino command prompt. In general, you should use the SetCommandPrompt functions. In rare cases, like worker thread messages, the message that appears in the prompt has non-standard formatting. In these rare cases, SetCommandPromptMessage can be used to literally specify the text that appears in the command prompt window.",
        "since": "6.0",
        "parameters": [
          {
            "name": "prompt",
            "type": "System.String",
            "summary": "A literal text for the command prompt window."
          }
        ]
      },
      {
        "signature": "System.Void SetFocusToMainWindow()",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Sets the focus to the main window. This function attempts to use the ActiveDoc on Mac to figure out which window to set focus to.",
        "since": "5.0"
      },
      {
        "signature": "System.Void SetFocusToMainWindow(RhinoDoc doc)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Sets the focus to the main windows for a given document",
        "since": "6.16",
        "parameters": [
          {
            "name": "doc",
            "type": "RhinoDoc",
            "summary": "the document to use for determining a \"main window\""
          }
        ]
      },
      {
        "signature": "System.Void Wait()",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Pauses to keep OS message pump alive.",
        "since": "5.0"
      },
      {
        "signature": "System.Void Write(System.String format, System.Object arg0, System.Object arg1, System.Object arg2)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Print formatted text in the command window.",
        "since": "5.0"
      },
      {
        "signature": "System.Void Write(System.String format, System.Object arg0, System.Object arg1)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Print formatted text in the command window.",
        "since": "5.0"
      },
      {
        "signature": "System.Void Write(System.String format, System.Object arg0)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Print formatted text in the command window.",
        "since": "5.0"
      },
      {
        "signature": "System.Void Write(System.String message)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Print formatted text in the command window.",
        "since": "5.0"
      },
      {
        "signature": "System.Void WriteLine()",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Print a newline in the command window.",
        "since": "5.0"
      },
      {
        "signature": "System.Void WriteLine(System.String format, System.Object arg0, System.Object arg1, System.Object arg2)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Print formatted text with a newline in the command window.",
        "since": "5.0"
      },
      {
        "signature": "System.Void WriteLine(System.String format, System.Object arg0, System.Object arg1)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Print formatted text with a newline in the command window.",
        "since": "5.0"
      },
      {
        "signature": "System.Void WriteLine(System.String format, System.Object arg0)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Print formatted text with a newline in the command window.",
        "since": "5.0"
      },
      {
        "signature": "System.Void WriteLine(System.String message)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Print text in the command window.",
        "since": "5.0"
      }
    ],
    "events": [
      {
        "signature": "EventHandler AppSettingsChanged",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Is raised when settings are changed.",
        "since": "5.0"
      },
      {
        "signature": "EventHandler Closing",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Is raised when the application is about to close.",
        "since": "5.0"
      },
      {
        "signature": "EventHandler EscapeKeyPressed",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Can add or removed delegates that are raised when the escape key is clicked.",
        "since": "5.0"
      },
      {
        "signature": "EventHandler Idle",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Occurs when the application finishes processing and is about to enter the idle state",
        "since": "5.1"
      },
      {
        "signature": "EventHandler Initialized",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Is raised when the application is fully initialized.",
        "since": "5.0"
      },
      {
        "signature": "EventHandler MainLoop",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Gets called every loop iteration inside Rhino's main message loop.",
        "since": "7.0"
      },
      {
        "signature": "EventHandler RdkCacheImageChanged",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Monitors when the RDK thumbnail cache images are changed.",
        "since": "5.1"
      },
      {
        "signature": "EventHandler RdkGlobalSettingsChanged",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Monitors when RDK global settings are modified.",
        "since": "5.1"
      },
      {
        "signature": "EventHandler RdkNewDocument",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Monitors when RDK document information is rebuilt.",
        "since": "5.1"
      },
      {
        "signature": "EventHandler RdkPlugInUnloading",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Monitors when RDK client plug-ins are unloaded.",
        "since": "5.1"
      },
      {
        "signature": "EventHandler RdkUpdateAllPreviews",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Monitors when RDK thumbnails are updated.",
        "since": "5.1"
      },
      {
        "signature": "EventHandler RendererChanged",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Monitors when Rhino's current renderer changes.",
        "since": "5.1"
      },
      {
        "signature": "EventHandler<Rhino.UI.CommandPromptChangedEventArgs> CommandPromptChanged",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Fired when the command line changes"
      },
      {
        "signature": "KeyboardHookEvent KeyboardEvent",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Can add or removed delegates that are raised by a keyboard event.",
        "since": "5.2"
      }
    ]

  },
  {
    "namespace": "Rhino",
    "name": "RhinoApp.CommandLineTextWriter",
    "dataType": "class",
    "summary": "Provides a text writer that writes to the command line.",
    "baseclass": "System.IO.TextWriter",
    "constructors": [
      {
        "signature": "RhinoApp.CommandLineTextWriter()",
        "summary": "Initializes a new instance of the RhinoApp.CommandLineTextWriter class"
      }
    ],
    "properties": [
      {
        "signature": "Encoding Encoding",
        "modifiers": ["public", "override"],
        "protected": false,
        "virtual": false,
        "summary": "Returns Encoding Unicode.",
        "since": "6.0",
        "property": ["get"]
      }
    ],
    "methods": [
      {
        "signature": "System.Void Write(System.Char value)",
        "modifiers": ["public", "override"],
        "protected": false,
        "virtual": false,
        "summary": "Writes a char to the command line.",
        "since": "6.0"
      },
      {
        "signature": "System.Void Write(System.Char[] buffer, System.Int32 index, System.Int32 count)",
        "modifiers": ["public", "override"],
        "protected": false,
        "virtual": false,
        "summary": "Writes a char buffer to the command line.",
        "since": "6.0"
      },
      {
        "signature": "System.Void write(System.String str)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Provided to give a simple way to IronPython to call this class.",
        "since": "6.0",
        "parameters": [
          {
            "name": "str",
            "type": "System.String",
            "summary": "The text."
          }
        ]
      },
      {
        "signature": "System.Void Write(System.String value)",
        "modifiers": ["public", "override"],
        "protected": false,
        "virtual": false,
        "summary": "Writes a string to the command line.",
        "since": "6.0"
      }
    ]
  },
  {
    "namespace": "Rhino",
    "name": "RhinoDoc",
    "dataType": "class",
    "summary": "Represents an active model.",
    "interfaces": ["IDisposable"],
    "constructors": [
      {
        "signature": "RhinoDoc()",
        "summary": "Initializes a new instance of the RhinoDoc class"
      }
    ],
    "properties": [
      {
        "signature": "RhinoDoc ActiveDoc",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "WARNING!! Do not use the ActiveDoc if you don't have to. Under Mac Rhino the ActiveDoc can change while a command is running. Use the doc that is passed to you in your RunCommand function or continue to use the same doc after the first call to ActiveDoc.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "Guid ActiveCommandId",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Get the ID of the active command.",
        "since": "8.0",
        "property": ["get"]
      },
      {
        "signature": "ActiveSpace ActiveSpace",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Get the space associated with the active viewport for this document",
        "since": "8.0",
        "property": ["get"]
      },
      {
        "signature": "AnimationProperties AnimationProperties",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.11",
        "property": ["get", "set"]
      },
      {
        "signature": "BitmapTable Bitmaps",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "bitmaps used in textures, backgrounds, wallpapers, ...",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "ICurrentEnvironment CurrentEnvironment",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Access to the current environment for various uses",
        "since": "6.0",
        "obsolete": "Please use Rhino.Render.RenderSettings methods",
        "property": ["get"]
      },
      {
        "signature": "uint CurrentUndoRecordSerialNumber",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": ">0: undo recording is active and being saved on the undo record with the specified serial number. 0: undo recording is not active. (Disabled or nothing is being recorded.)",
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "Size> CustomRenderSizes",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "DateTime DateCreated",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "DateTime DateLastEdited",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns the date the document was created in Coordinated Universal Time (UTC). Use DateTime.ToLocalTime to convert to local time.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "DimStyleTable DimStyles",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "int DistanceDisplayPrecision",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0",
        "deprecated": "9.0",
        "obsolete": "Since 9.0. Use ModelDistanceDisplayPrecision instead.",
        "property": ["get"]
      },
      {
        "signature": "int DocumentId",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the Document Id.",
        "since": "5.0",
        "obsolete": "Use RuntimeSerialNumber instead",
        "property": ["get"]
      },
      {
        "signature": "EarthAnchorPoint EarthAnchorPoint",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "FontTable Fonts",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0",
        "obsolete": "Use DimStyles table instead",
        "property": ["get"]
      },
      {
        "signature": "GroundPlane GroundPlane",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the ground plane of this document.",
        "since": "5.0",
        "deprecated": "8.0",
        "property": ["get"]
      },
      {
        "signature": "GroupTable Groups",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "HatchPatternTable HatchPatterns",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "bool InGetPoint",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns True if currently in a GetPoint.Get().",
        "since": "8.5",
        "property": ["get"]
      },
      {
        "signature": "InstanceDefinitionTable InstanceDefinitions",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "bool IsAvailable",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "bool IsClosing",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "bool IsCommandRunning",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns True if Rhino is currently running a command.",
        "since": "7.0",
        "property": ["get"]
      },
      {
        "signature": "bool IsCreating",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "bool IsHeadless",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "7.0",
        "property": ["get"]
      },
      {
        "signature": "bool IsInitializing",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "bool IsLocked",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Check to see if the file associated with this document is locked.  If it is locked then this is the only document that will be able to write the file.  Other instances of Rhino will fail to write this document.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "bool IsOpening",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "bool IsReadOnly",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Current read-only mode for this document. True if the document can be viewed but NOT saved. False if document can be viewed and saved.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "bool IsSendingMail",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "True if Rhino is in the process of sending this document as an email attachment.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "LayerTable Layers",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Layers in the document.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "bool LayoutSpaceAnnotationScalingEnabled",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "If LayoutSpaceAnnotationScaling is on, sizes in dimstyles are multiplied by dimscale when the annotation is displayed in a detail viewport not in a detail",
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "LightTable Lights",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "LinetypeTable Linetypes",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Linetypes in the document.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "LinkedInstanceDefinitionUpdateStyle LinkedInstanceDefinitionUpdate",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Controls if, when, and how linked and linked and embedded instance definitions are updated when the source archive that was used to create the instance definition has changed.",
        "since": "8.29",
        "property": ["get", "set"]
      },
      {
        "signature": "ManifestTable Manifest",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "MarkupTable Markups",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Collection of markups in this document",
        "since": "9.0",
        "property": ["get"]
      },
      {
        "signature": "MaterialTable Materials",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Materials in the document.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "MeshingParameterStyle MeshingParameterStyle",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Type of MeshingParameters currently used by the document to mesh objects",
        "since": "5.1",
        "property": ["get", "set"]
      },
      {
        "signature": "double ModelAbsoluteTolerance",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Model space absolute tolerance.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "double ModelAngleToleranceDegrees",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Model space angle tolerance.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "double ModelAngleToleranceRadians",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Model space angle tolerance.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "Point3d ModelBasepoint",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "The base point in the model that is used when inserting the model into another as a block definition. By default the base point in any model is 0,0,0.",
        "since": "6.10",
        "property": ["get", "set"]
      },
      {
        "signature": "int ModelDistanceDisplayPrecision",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.8",
        "property": ["get", "set"]
      },
      {
        "signature": "double ModelRelativeTolerance",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Model space relative tolerance.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool ModelSpaceAnnotationScalingEnabled",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "If ModelSpaceAnnotationScaling is on, sizes in dimstyles are multiplied by dimscale when the annotation is displayed in a model space viewport not in a detail",
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "double ModelSpaceHatchScale",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "The scale factor for hatches in model space when Hatch Scaling is enabled",
        "since": "6.1",
        "property": ["get", "set"]
      },
      {
        "signature": "bool ModelSpaceHatchScalingEnabled",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "True if hatch scaling is enabled, False if not.",
        "since": "6.16",
        "property": ["get", "set"]
      },
      {
        "signature": "double ModelSpaceTextScale",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "The scale factor for text in model space when Annotation Scaling is enabled",
        "since": "6.1",
        "property": ["get", "set"]
      },
      {
        "signature": "LengthUnit ModelUnits",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Length unit used on model space.",
        "since": "9.0",
        "property": ["get", "set"]
      },
      {
        "signature": "UnitSystem ModelUnitSystem",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "string ModelUrl",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets and sets the link address, or URL, for the model.",
        "since": "9.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool Modified",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns or sets the document's modified flag.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "string Name",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns the name of the currently loaded Rhino document (3DM file).",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "NamedConstructionPlaneTable NamedConstructionPlanes",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Collection of named construction planes.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "NamedLayerStateTable NamedLayerStates",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Collection of named layer states.",
        "since": "6.14",
        "property": ["get"]
      },
      {
        "signature": "NamedPositionTable NamedPositions",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Collection of named positions.",
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "NamedViewTable NamedViews",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Collection of named views.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "uint NextUndoRecordSerialNumber",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "The serial number that will be assigned to the next undo record that is constructed.",
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "string Notes",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns or sets the document's notes.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool NotesLocked",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "8.6",
        "property": ["get", "set"]
      },
      {
        "signature": "ObjectTable Objects",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "double PageAbsoluteTolerance",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Page space absolute tolerance.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "double PageAngleToleranceDegrees",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Page space angle tolerance.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "double PageAngleToleranceRadians",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Page space angle tolerance.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "int PageDistanceDisplayPrecision",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.8",
        "property": ["get", "set"]
      },
      {
        "signature": "double PageRelativeTolerance",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Page space relative tolerance.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "LengthUnit PageUnits",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Length unit used on page space geometry.",
        "since": "9.0",
        "property": ["get", "set"]
      },
      {
        "signature": "UnitSystem PageUnitSystem",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "PageViewGroupTable PageViewGroups",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Collection of markups in this document",
        "since": "9.0",
        "property": ["get"]
      },
      {
        "signature": "string Path",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns the path of the currently loaded Rhino document (3DM file).",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "IPostEffects PostEffects",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Access to the post effects",
        "since": "7.0",
        "obsolete": "Please use Rhino.Render.RenderSettings methods",
        "property": ["get"]
      },
      {
        "signature": "bool RedoActive",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns True if Redo is currently active.",
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "RenderEnvironmentTable RenderEnvironments",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.7",
        "property": ["get"]
      },
      {
        "signature": "RenderMaterialTable RenderMaterials",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.7",
        "property": ["get"]
      },
      {
        "signature": "RenderSettings RenderSettings",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "RenderTextureTable RenderTextures",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.7",
        "property": ["get"]
      },
      {
        "signature": "RuntimeDocumentDataTable RuntimeData",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Collection of document runtime data. This is a good place to put non-serializable, per document data, such as panel view models. Note well: This data will be dispose with the document and does not get serialized.",
        "since": "6.3",
        "property": ["get"]
      },
      {
        "signature": "uint RuntimeSerialNumber",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Unique serialNumber for the document while the application is running. This is not a persistent value.",
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "SectionStyleTable SectionStyles",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Collection of section styles in this document",
        "since": "9.0",
        "property": ["get"]
      },
      {
        "signature": "SnapshotTable Snapshots",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Collection of snapshots.",
        "since": "6.7",
        "property": ["get"]
      },
      {
        "signature": "StringTable Strings",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Collection of document user data strings in this document",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "SubDComponentLocation SubDAppearance",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns or sets the appearance of all SubD objects in the document.",
        "since": "7.5",
    "remarks": "When setting this property, if the document contains SubD objects, then the document will be redrawn automatically.",
        "property": ["get", "set"]
      },
      {
        "signature": "string TemplateFileUsed",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "name of the template file used to create this document. This is a runtime value only present if the document was newly created.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "bool UndoActive",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns True if Undo is currently active.",
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "bool UndoRecordingEnabled",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool UndoRecordingIsActive",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "True if undo recording is actually happening now.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "ViewTable Views",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "ViewUserInterfaceTable ViewUserInterface",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "9.0",
        "property": ["get"]
      },
      {
        "signature": "Worksession Worksession",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Provides access to the document's worksession.",
        "since": "6.0",
        "property": ["get"]
      }
    ],
    "methods": [
      {
        "signature": "RhinoDoc Create(System.String modelTemplateFileName)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Creates a new RhinoDoc",
        "since": "6.4",
        "parameters": [
          {
            "name": "modelTemplateFileName",
            "type": "System.String",
            "summary": "Name of a Rhino model to use as a template to initialize the document. If the template contains views, those views are created. If null, an empty document with no views is created"
          }
        ]
      },
      {
        "signature": "RhinoDoc CreateHeadless(System.String file3dmTemplatePath)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Create a new headless RhinoDoc from a template file",
        "since": "7.0",
        "parameters": [
          {
            "name": "file3dmTemplatePath",
            "type": "System.String",
            "summary": "Name of a Rhino model to use as a template to initialize the document. If null, an empty document is created"
          }
        ],
        "returns": "New RhinoDoc on success. Note that this is a \"headless\" RhinoDoc and it's lifetime is under your control."
      },
      {
        "signature": "System.Drawing.Bitmap ExtractPreviewImage(System.String path)",
        "modifiers": ["static", "public"],
        "protected": false,
        "virtual": false,
        "summary": "Extracts the bitmap preview image from the specified .3dm file.",
        "since": "5.0",
        "parameters": [
          {
            "name": "path",
            "type": "System.String",
            "summary": "The .3dm file from which to extract the preview image. If null, the path to the active document is used."
          }
        ],
        "returns": "The preview bitmap if successful, None otherwise."
      },
      {
        "signature": "RhinoDoc FromFilePath(System.String filePath)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Search the open document list for a document with a Path equal to the specified file path.",
        "since": "6.0",
        "parameters": [
          {
            "name": "filePath",
            "type": "System.String",
            "summary": "The full path to the file to search for."
          }
        ],
        "returns": "The file name to search for"
      },
      {
        "signature": "RhinoDoc FromId(System.Int32 docId)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "5.0",
        "deprecated": "6.0",
        "obsolete": "Use FromRuntimeSerialNumber"
      },
      {
        "signature": "RhinoDoc FromRuntimeSerialNumber(System.UInt32 serialNumber)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "6.0"
      },
      {
        "signature": "RhinoDoc Open(System.String filePath, out System.Boolean wasAlreadyOpen)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Opens a 3dm file and makes it the active document. If called on windows the active document will be saved and closed and the new document will be opened and become the active document.  If called on the Mac the file will be opened in a new document window.",
        "since": "6.0",
        "parameters": [
          {
            "name": "filePath",
            "type": "System.String",
            "summary": "Full path to the 3dm file to open"
          },
          {
            "name": "wasAlreadyOpen",
            "type": "System.Boolean",
            "summary": "Will get set to True if there is a currently open document with the specified path; otherwise it will get set to false."
          }
        ],
        "returns": "Returns the newly opened document on success or None on error."
      },
      {
        "signature": "RhinoDoc[] OpenDocuments()",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Returns a list of currently open Rhino documents",
        "since": "6.0"
      },
      {
        "signature": "RhinoDoc[] OpenDocuments(System.Boolean includeHeadless)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Returns a list of currently open Rhino documents",
        "since": "7.2",
        "parameters": [
          {
            "name": "includeHeadless",
            "type": "System.Boolean",
            "summary": "pass True to include headless docs in the list"
          }
        ]
      },
      {
        "signature": "System.Boolean OpenFile(System.String path)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "5.0",
        "deprecated": "6.0",
        "obsolete": "OpenFile is obsolete, use Open instead"
      },
      {
        "signature": "RhinoDoc OpenHeadless(System.String filePath, ArchivableDictionary options)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Opens a file into a new headless RhinoDoc.",
        "since": "8.21",
        "parameters": [
          {
            "name": "filePath",
            "type": "System.String",
            "summary": "Path of a Rhino model to load."
          },
          {
            "name": "options",
            "type": "ArchivableDictionary",
            "summary": ""
          }
        ]
      },
      {
        "signature": "RhinoDoc OpenHeadless(System.String file3dmPath)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Opens a 3DM file into a new headless RhinoDoc.",
        "since": "7.0",
        "parameters": [
          {
            "name": "file3dmPath",
            "type": "System.String",
            "summary": "Path of a Rhino model to load."
          }
        ]
      },
      {
        "signature": "System.Boolean ReadFile(System.String path, FileReadOptions options)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "System.Boolean AddCustomUndoEvent(System.String description, EventHandler<CustomUndoEventArgs> handler, System.Object tag)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Add a custom undo event so you can undo private plug-in data when the user performs an undo or redo",
        "since": "5.0"
      },
      {
        "signature": "System.Boolean AddCustomUndoEvent(System.String description, EventHandler<CustomUndoEventArgs> handler)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "System.Boolean AdjustLengthUnits(System.Boolean modelUnits, LengthUnit units, System.Boolean scale)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "9.0"
      },
      {
        "signature": "System.Void AdjustModelUnitSystem(UnitSystem newUnitSystem, System.Boolean scale)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "System.Void AdjustPageUnitSystem(UnitSystem newUnitSystem, System.Boolean scale)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "System.Boolean Audit(TextLog textLog, System.Boolean attemptRepair)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Audits the contents of the document.",
        "since": "8.19",
        "parameters": [
          {
            "name": "textLog",
            "type": "TextLog",
            "summary": "If an error is detected, then a description of the error is logged here."
          },
          {
            "name": "attemptRepair",
            "type": "System.Boolean",
            "summary": "If true, then the method attempts to repair any detected errors."
          }
        ],
        "returns": "True if document is valid."
      },
      {
        "signature": "System.UInt32 BeginUndoRecord(System.String description)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Instructs Rhino to begin recording undo information when the document is changed outside of a command. We use this, e.g., to save changes caused by the modeless layer or object properties dialogs when commands are not running.",
        "since": "5.0",
        "parameters": [
          {
            "name": "description",
            "type": "System.String",
            "summary": "A text describing the record."
          }
        ],
        "returns": "Serial number of record.  Returns 0 if record is not started because undo information is already being recorded or undo is disabled."
      },
      {
        "signature": "System.Void ClearRedoRecords()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "System.Void ClearUndoRecords(System.Boolean purgeDeletedObjects)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "System.Void ClearUndoRecords(System.UInt32 undoSerialNumber, System.Boolean purgeDeletedObjects)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0"
      },
      {
        "signature": "DocObjects.ObjectAttributes CreateDefaultAttributes()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the default object attributes for this document. The attributes will be linked to the currently active layer and they will inherit the Document WireDensity setting.",
        "since": "5.0"
      },
      {
        "signature": "System.Boolean CustomRenderMeshesBoundingBox(MeshType mt, ViewportInfo vp, ref RenderMeshProvider.Flags flags, PlugIns.PlugIn plugin, Display.DisplayPipelineAttributes attrs, out BoundingBox boundingBox)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns the bounding box of custom render primitives for this object .",
        "since": "8.0",
        "parameters": [
          {
            "name": "mt",
            "type": "MeshType",
            "summary": "The mesh type requested (render or analysis)."
          },
          {
            "name": "vp",
            "type": "ViewportInfo",
            "summary": "The viewport being rendered"
          },
          {
            "name": "flags",
            "type": "RenderMeshProvider.Flags",
            "summary": "See MeshProvider.Flags"
          },
          {
            "name": "plugin",
            "type": "PlugIns.PlugIn",
            "summary": "The requesting plug-in (typically the calling plugin)"
          },
          {
            "name": "attrs",
            "type": "Display.DisplayPipelineAttributes",
            "summary": "Display attributes for the caller - None if this is a full rendering."
          },
          {
            "name": "boundingBox",
            "type": "BoundingBox",
            "summary": "The requested bounding box"
          }
        ],
        "returns": "True if the process was a success"
      },
      {
        "signature": "System.Void Dispose()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "7.0"
      },
      {
        "signature": "System.Boolean EndUndoRecord(System.UInt32 undoRecordSerialNumber)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Ends the undo record.",
        "since": "5.0",
        "parameters": [
          {
            "name": "undoRecordSerialNumber",
            "type": "System.UInt32",
            "summary": "The serial number of the undo record."
          }
        ],
        "returns": "True if successful, False otherwise."
      },
      {
        "signature": "System.Boolean Equals(System.Object obj)",
        "modifiers": ["public", "override"],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "System.Boolean Export(System.String filePath, ArchivableDictionary options)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Export the entire document to a file. All file formats that Rhino can export to are supported by this function.",
        "since": "8.0",
        "parameters": [
          {
            "name": "filePath",
            "type": "System.String",
            "summary": ""
          },
          {
            "name": "options",
            "type": "ArchivableDictionary",
            "summary": "Options to help define how data should be exported."
          }
        ],
        "returns": "True on success"
      },
      {
        "signature": "System.Boolean Export(System.String filePath)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Export the entire document to a file. All file formats that Rhino can export to are supported by this function.",
        "since": "7.0",
        "returns": "True on success"
      },
      {
        "signature": "System.Boolean ExportSelected(System.String filePath, ArchivableDictionary options)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Export selected geometry to a file. All file formats that Rhino can export to are supported by this function.",
        "since": "8.0",
        "parameters": [
          {
            "name": "filePath",
            "type": "System.String",
            "summary": ""
          },
          {
            "name": "options",
            "type": "ArchivableDictionary",
            "summary": "Options to help define how data should be exported."
          }
        ],
        "returns": "True on success"
      },
      {
        "signature": "System.Boolean ExportSelected(System.String filePath)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Export selected geometry to a file. All file formats that Rhino can export to are supported by this function.",
        "since": "7.0",
        "returns": "True on success"
      },
      {
        "signature": "System.String FindFile(System.String filename)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Search for a file using Rhino's search path.  Rhino will look in the following places: 1. Current model folder 2. Path specified in options dialog/File tab 3. Rhino system folders 4. Rhino executable folder",
        "since": "5.0",
        "returns": "Path to existing file if found, an empty string if no file was found"
      },
      {
        "signature": "System.String FormatNumber(System.Double value, System.Boolean appendUnitSystemName, System.Boolean abbreviate)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Call this method to get string representing the specified value using the documents display coordinate system and display precision.",
        "since": "8.0"
      },
      {
        "signature": "System.String FormatNumber(System.Double value)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Call this method to get string representing the specified value using the documents display coordinate system and display precision.",
        "since": "8.0"
      },
      {
        "signature": "MeshingParameters GetAnalysisMeshingParameters()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Get analysis meshing parameters currently used by the document",
        "since": "6.0"
      },
      {
        "signature": "MeshingParameters GetCurrentMeshingParameters()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Get the custom meshing parameters that this document will use.",
        "since": "6.0"
      },
      {
        "signature": "System.Boolean GetCustomUnitSystem(System.Boolean modelUnits, out System.String customUnitName, out System.Double metersPerCustomUnit)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Get the custom unit system name and custom unit scale.",
        "since": "7.9",
        "parameters": [
          {
            "name": "modelUnits",
            "type": "System.Boolean",
            "summary": "Set True to get values from the document's model unit system. Set False to get values from the document's page unit system."
          },
          {
            "name": "customUnitName",
            "type": "System.String",
            "summary": "The custom unit system name."
          },
          {
            "name": "metersPerCustomUnit",
            "type": "System.Double",
            "summary": "The meters per custom unit scale."
          }
        ],
        "returns": "True if successful, False otherwise."
      },
      {
        "signature": "System.String[] GetEmbeddedFilesList(System.Boolean missingOnly)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0"
      },
      {
        "signature": "ConstructionPlaneGridDefaults GetGridDefaults()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "8.13"
      },
      {
        "signature": "System.Boolean GetGumballPlane(out Plane plane)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns the active plane of Rhino's auto-gumball widget. Note, when calling from a Rhino command, make sure the command class has the Rhino.Commands.Style.Transparent command style attribute.",
        "since": "6.0",
        "parameters": [
          {
            "name": "plane",
            "type": "Plane",
            "summary": "The active plane."
          }
        ],
        "returns": "True if the auto-gumball widget is enabled and visible. False otherwise."
      },
      {
        "signature": "System.Int32 GetHashCode()",
        "modifiers": ["public", "override"],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "MeshingParameters GetMeshingParameters(MeshingParameterStyle style)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Get MeshingParameters currently used by the document",
        "since": "5.1"
      },
      {
        "signature": "System.Void GetModelUrl(out System.String url, out System.String urlDescription)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the link address, or URL, for the model.",
        "since": "9.0",
        "parameters": [
          {
            "name": "url",
            "type": "System.String",
            "summary": "The URL."
          },
          {
            "name": "urlDescription",
            "type": "System.String",
            "summary": "The URL description."
          }
        ]
      },
      {
        "signature": "RenderPrimitiveList GetRenderPrimitiveList(ViewportInfo viewport, Rhino.Display.DisplayPipelineAttributes attrs)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Build custom render mesh(es) for this document (i.e. - GH meshes).",
        "since": "6.9",
        "deprecated": "8.0",
        "parameters": [
          {
            "name": "viewport",
            "type": "ViewportInfo",
            "summary": "The viewport being rendered."
          },
          {
            "name": "attrs",
            "type": "Rhino.Display.DisplayPipelineAttributes",
            "summary": "Attributes for the view mode you are supplying meshes for.  Will be None if this is a modal rendering."
          }
        ],
        "returns": "Returns a RenderPrimitiveList if successful otherwise returns null."
      },
      {
        "signature": "IEnumerable<RenderPrimitive> GetRenderPrimitives(DocObjects.ViewportInfo viewport, System.Boolean forceTriangleMeshes, System.Boolean quietly)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Get a enumerable list of custom mesh primitives",
        "since": "6.0",
        "deprecated": "8.0",
        "parameters": [
          {
            "name": "viewport",
            "type": "DocObjects.ViewportInfo",
            "summary": "The rendering view camera."
          },
          {
            "name": "forceTriangleMeshes",
            "type": "System.Boolean",
            "summary": "If True all mesh faces will be triangulated"
          },
          {
            "name": "quietly",
            "type": "System.Boolean",
            "summary": "Iterate quietly, if True then no user interface will be displayed"
          }
        ]
      },
      {
        "signature": "IEnumerable<RenderPrimitive> GetRenderPrimitives(System.Boolean forceTriangleMeshes, System.Boolean quietly)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Get a enumerable list of custom mesh primitives",
        "since": "6.0",
        "deprecated": "8.0",
        "obsolete": "This version is obsolete because - uses the old school custom render meshes.  Prefer CustomRenderMeshes",
        "parameters": [
          {
            "name": "forceTriangleMeshes",
            "type": "System.Boolean",
            "summary": "If True all mesh faces will be triangulated"
          },
          {
            "name": "quietly",
            "type": "System.Boolean",
            "summary": "Iterate quietly, if True then no user interface will be displayed"
          }
        ]
      },
      {
        "signature": "IEnumerable<RenderPrimitive> GetRenderPrimitives(System.Guid plugInId, DocObjects.ViewportInfo viewport, System.Boolean forceTriangleMeshes, System.Boolean quietly)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Get a enumerable list of custom mesh primitives",
        "since": "6.0",
        "deprecated": "8.0",
        "obsolete": "This version is obsolete because - uses the old school custom render meshes.  Prefer RenderPrimitives",
        "parameters": [
          {
            "name": "plugInId",
            "type": "System.Guid",
            "summary": "The Id of the plug-in creating the iterator."
          },
          {
            "name": "viewport",
            "type": "DocObjects.ViewportInfo",
            "summary": "The rendering view camera."
          },
          {
            "name": "forceTriangleMeshes",
            "type": "System.Boolean",
            "summary": "If True all mesh faces will be triangulated"
          },
          {
            "name": "quietly",
            "type": "System.Boolean",
            "summary": "Iterate quietly, if True then no user interface will be displayed"
          }
        ]
      },
      {
        "signature": "System.String GetUnitSystemName(System.Boolean modelUnits, System.Boolean capitalize, System.Boolean singular, System.Boolean abbreviate)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "System.Boolean HasCustomRenderMeshes(MeshType mt, ViewportInfo vp, ref RenderMeshProvider.Flags flags, PlugIns.PlugIn plugin, Display.DisplayPipelineAttributes attrs)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns True if the document has a set of custom render primitives - ie, CustomRenderMeshes will return non-null.",
        "since": "8.0",
        "parameters": [
          {
            "name": "mt",
            "type": "MeshType",
            "summary": "The mesh type requested (render or analysis)."
          },
          {
            "name": "vp",
            "type": "ViewportInfo",
            "summary": "The viewport being rendered."
          },
          {
            "name": "flags",
            "type": "RenderMeshProvider.Flags",
            "summary": "See MeshProvider.Flags"
          },
          {
            "name": "plugin",
            "type": "PlugIns.PlugIn",
            "summary": "The requesting plug-in (typically the calling plugin)"
          },
          {
            "name": "attrs",
            "type": "Display.DisplayPipelineAttributes",
            "summary": "Display attributes for the caller - None if this is a full rendering."
          }
        ],
        "returns": "Returns True if the object will has a set of custom render primitives"
      },
      {
        "signature": "System.Boolean Import(System.String filePath, ArchivableDictionary options)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Import geometry into a RhinoDoc from a file. This can be any file format that Rhino can import",
        "since": "8.0"
      },
      {
        "signature": "System.Boolean Import(System.String filePath)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Import geometry into a RhinoDoc from a file. This can be any file format that Rhino can import",
        "since": "7.0",
        "returns": "True on success"
      },
      {
        "signature": "System.Int32 InCommand(System.Boolean bIgnoreScriptRunnerCommands)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "This is a low level tool to determine if Rhino is currently running a command.",
        "since": "8.0",
        "parameters": [
          {
            "name": "bIgnoreScriptRunnerCommands",
            "type": "System.Boolean",
            "summary": "If true, script running commands, like \"ReadCommandFile\" and the RhinoScript plug-ins \"RunScript\" command, are not counted."
          }
        ],
        "returns": "Number of active commands."
      },
      {
        "signature": "System.Boolean IsMetricUnitSystem(System.Boolean modelUnits)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Determines if a document unit system is a metric unit system.",
        "since": "8.6",
        "parameters": [
          {
            "name": "modelUnits",
            "type": "System.Boolean",
            "summary": "True to query model units, False to query page units."
          }
        ],
        "returns": "Return True if the length unit is a metric unit system."
      },
      {
        "signature": "System.Int32 ReadFileVersion()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns the file version of the current document. Use this function to determine which version of Rhino last saved the document.",
        "since": "5.0",
        "returns": "The file version (e.g. 1, 2, 3, 4, etc.) or -1 if the document has not been read from disk."
      },
      {
        "signature": "System.Boolean Redo()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Redo the last action that was \"undone\"",
        "since": "6.16",
        "returns": "True on success"
      },
      {
        "signature": "RenderMeshes[] RenderMeshes(MeshType mt, ViewportInfo vp, ref RenderMeshProvider.Flags flags, PlugIns.PlugIn plugin, Display.DisplayPipelineAttributes attrs)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns a set of non-object custom render primitives for this document.",
        "since": "8.0",
        "parameters": [
          {
            "name": "mt",
            "type": "MeshType",
            "summary": "The mesh type requested (render or analysis)."
          },
          {
            "name": "vp",
            "type": "ViewportInfo",
            "summary": "The viewport being rendered"
          },
          {
            "name": "flags",
            "type": "RenderMeshProvider.Flags",
            "summary": "See MeshProvider.Flags"
          },
          {
            "name": "plugin",
            "type": "PlugIns.PlugIn",
            "summary": "The requesting plug-in (typically the calling plugin)"
          },
          {
            "name": "attrs",
            "type": "Display.DisplayPipelineAttributes",
            "summary": "Display attributes for the caller - None if this is a full rendering."
          }
        ],
        "returns": "Returns a set of custom render primitives for this object"
      },
      {
        "signature": "System.Boolean Save()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Save doc to disk using the document's Path",
        "since": "7.0"
      },
      {
        "signature": "System.Boolean SaveAs(System.String file3dmPath, System.Int32 version, System.Boolean saveSmall, System.Boolean saveTextures, System.Boolean saveGeometryOnly, System.Boolean savePluginData, System.Boolean useCompression)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Save doc as a 3dm to a specified path",
        "parameters": [
          {
            "name": "file3dmPath",
            "type": "System.String",
            "summary": ""
          },
          {
            "name": "version",
            "type": "System.Int32",
            "summary": "Rhino file version"
          },
          {
            "name": "saveSmall",
            "type": "System.Boolean",
            "summary": "whether to inlcude render meshes and preview image"
          },
          {
            "name": "saveTextures",
            "type": "System.Boolean",
            "summary": "whether to include the bitmap table"
          },
          {
            "name": "saveGeometryOnly",
            "type": "System.Boolean",
            "summary": "whether to write enything besides geometry"
          },
          {
            "name": "savePluginData",
            "type": "System.Boolean",
            "summary": "whether to write plugin user data"
          },
          {
            "name": "useCompression",
            "type": "System.Boolean",
            "summary": "\"whether to compress meshes and embedded files"
          }
        ],
        "returns": "True on success"
      },
      {
        "signature": "System.Boolean SaveAs(System.String file3dmPath, System.Int32 version, System.Boolean saveSmall, System.Boolean saveTextures, System.Boolean saveGeometryOnly, System.Boolean savePluginData)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Save doc as a 3dm to a specified path",
        "since": "8.0",
        "parameters": [
          {
            "name": "file3dmPath",
            "type": "System.String",
            "summary": ""
          },
          {
            "name": "version",
            "type": "System.Int32",
            "summary": "Rhino file version"
          },
          {
            "name": "saveSmall",
            "type": "System.Boolean",
            "summary": "whether to inlcude render meshes and preview image"
          },
          {
            "name": "saveTextures",
            "type": "System.Boolean",
            "summary": "whether to include the bitmap table"
          },
          {
            "name": "saveGeometryOnly",
            "type": "System.Boolean",
            "summary": "whether to write enything besides geometry"
          },
          {
            "name": "savePluginData",
            "type": "System.Boolean",
            "summary": "whether to write plugin user data"
          }
        ],
        "returns": "True on success"
      },
      {
        "signature": "System.Boolean SaveAs(System.String file3dmPath, System.Int32 version)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Save doc as a 3dm to a specified path",
        "since": "7.0",
        "parameters": [
          {
            "name": "file3dmPath",
            "type": "System.String",
            "summary": ""
          },
          {
            "name": "version",
            "type": "System.Int32",
            "summary": "Rhino file version"
          }
        ],
        "returns": "True on success"
      },
      {
        "signature": "System.Boolean SaveAs(System.String file3dmPath)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Save doc as a 3dm to a specified path using the current Rhino file version",
        "since": "7.0",
        "returns": "True on success"
      },
      {
        "signature": "System.Boolean SaveAsTemplate(System.String file3dmTemplatePath, System.Int32 version)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Save this document as a template to a specific Rhino file version",
        "since": "7.0",
        "returns": "True on success"
      },
      {
        "signature": "System.Boolean SaveAsTemplate(System.String file3dmTemplatePath)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Save this document as a template",
        "since": "7.0",
        "returns": "True on success"
      },
      {
        "signature": "System.Void SelectRenderContentInEditor(Rhino.Render.RenderContentCollection collection, System.Boolean append)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Selects a collection of contents in any editors they appear in.",
        "since": "7.20",
        "parameters": [
          {
            "name": "collection",
            "type": "Rhino.Render.RenderContentCollection",
            "summary": "A collection of RenderContents to select"
          },
          {
            "name": "append",
            "type": "System.Boolean",
            "summary": "Append to current selection"
          }
        ]
      },
      {
        "signature": "System.Void SetCustomMeshingParameters(MeshingParameters mp)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Set the custom meshing parameters that this document will use. You must also modify the MeshingParameterStyle property on the document to Custom if you want these meshing parameters to be used",
        "since": "5.1"
      },
      {
        "signature": "System.Boolean SetCustomUnitSystem(System.Boolean modelUnits, System.String customUnitName, System.Double metersPerCustomUnit, System.Boolean scale)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Changes the unit system to custom units and sets the custom unit scale.",
        "since": "7.9",
        "parameters": [
          {
            "name": "modelUnits",
            "type": "System.Boolean",
            "summary": "Set True to set values from the document's model unit system. Set False to set values from the document's page unit system."
          },
          {
            "name": "customUnitName",
            "type": "System.String",
            "summary": "The custom unit system name."
          },
          {
            "name": "metersPerCustomUnit",
            "type": "System.Double",
            "summary": "The meters per custom unit scale."
          },
          {
            "name": "scale",
            "type": "System.Boolean",
            "summary": "Set True to scale existing objects."
          }
        ],
        "returns": "True if successful, False otherwise."
      },
      {
        "signature": "System.Void SetGridDefaults(ConstructionPlaneGridDefaults defaults)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "8.13"
      },
      {
        "signature": "System.Void SetModelUrl(System.String url, System.String urlDescription)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Sets the link address, or URL, for the model.",
        "since": "9.0",
        "parameters": [
          {
            "name": "url",
            "type": "System.String",
            "summary": "The URL."
          },
          {
            "name": "urlDescription",
            "type": "System.String",
            "summary": "The URL description."
          }
        ]
      },
      {
        "signature": "System.Boolean SupportsRenderPrimitiveList(ViewportInfo viewport, Rhino.Display.DisplayPipelineAttributes attrs)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Determines if custom render meshes will be built for this document (i.e. - GH meshes).",
        "since": "6.9",
        "deprecated": "8.0",
        "parameters": [
          {
            "name": "viewport",
            "type": "ViewportInfo",
            "summary": "The viewport being rendered."
          },
          {
            "name": "attrs",
            "type": "Rhino.Display.DisplayPipelineAttributes",
            "summary": "Type of mesh to build. If attrs is non-None then a smaller mesh may be generated in less time, False is meant when actually rendering."
          }
        ],
        "returns": "Returns True if custom render mesh(es) will get built for this document."
      },
      {
        "signature": "System.Void TimeoutActiveGet()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Exit the active get operation with a timeout",
        "since": "9.0"
      },
      {
        "signature": "System.Boolean TryGetRenderPrimitiveBoundingBox(ViewportInfo viewport, Rhino.Display.DisplayPipelineAttributes attrs, out BoundingBox boundingBox)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Get the bounding box for the custom render meshes associated with this document (i.e. - GH meshes).",
        "since": "6.9",
        "deprecated": "8.0",
        "parameters": [
          {
            "name": "viewport",
            "type": "ViewportInfo",
            "summary": "The viewport being rendered."
          },
          {
            "name": "attrs",
            "type": "Rhino.Display.DisplayPipelineAttributes",
            "summary": "Attributes for the view mode you are supplying meshes for.  Will be None if this is a modal rendering."
          },
          {
            "name": "boundingBox",
            "type": "BoundingBox",
            "summary": "This will be set to BoundingBox.Unset on failure otherwise it will be the bounding box for the custom render meshes associated with this object."
          }
        ],
        "returns": "Returns True if the bounding box was successfully calculated otherwise returns False on error."
      },
      {
        "signature": "System.Boolean Undo()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Undo the last action",
        "since": "6.16",
        "returns": "True on success"
      },
      {
        "signature": "System.Boolean Write3dmFile(System.String path, FileWriteOptions options)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Write information in this document to a .3dm file. Note, the active document's name will not be changed.",
        "since": "6.5",
        "parameters": [
          {
            "name": "path",
            "type": "System.String",
            "summary": "The name of the .3dm file to write."
          },
          {
            "name": "options",
            "type": "FileWriteOptions",
            "summary": "The file writing options."
          }
        ],
        "returns": "True if successful, False on failure."
      },
      {
        "signature": "System.Boolean WriteFile(System.String path, FileWriteOptions options)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Write information in this document to a file. Note, the active document's name will be changed to that of the path provided.",
        "since": "5.0",
    "remarks": "This is the best choice for general file writing. It handles making backups using temporary files, locking and unlocking, loading file writing plug-ins, and many other details.",
        "parameters": [
          {
            "name": "path",
            "type": "System.String",
            "summary": "The name of the file to write."
          },
          {
            "name": "options",
            "type": "FileWriteOptions",
            "summary": "The file writing options."
          }
        ],
        "returns": "True if successful, False on failure."
      }
    ],
    "events": [
      {
        "signature": "EventHandler<DimStyleTableEventArgs> DimensionStyleTableEvent",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Called when any modification happens to a document's dimension style table.",
        "since": "6.0"
      },
      {
        "signature": "EventHandler<DocObjects.RhinoAfterTransformObjectsEventArgs> AfterTransformObjects",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Called after objects are being transformed",
        "since": "8.15"
      },
      {
        "signature": "EventHandler<DocObjects.RhinoDeselectAllObjectsEventArgs> DeselectAllObjects",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Called when all objects are deselected.",
        "since": "5.0"
      },
      {
        "signature": "EventHandler<DocObjects.RhinoModifyObjectAttributesEventArgs> ModifyObjectAttributes",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Called when all object attributes are changed.",
        "since": "5.0"
      },
      {
        "signature": "EventHandler<DocObjects.RhinoObjectEventArgs> AddRhinoObject",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Called if a new object is added to the document.",
        "since": "5.0"
      },
      {
        "signature": "EventHandler<DocObjects.RhinoObjectEventArgs> DeleteRhinoObject",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Called if an object is deleted. At some later point the object can be un-deleted.",
        "since": "5.0"
      },
      {
        "signature": "EventHandler<DocObjects.RhinoObjectEventArgs> PurgeRhinoObject",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Called if an object is being purged from a document. The object will cease to exist forever.",
        "since": "5.0"
      },
      {
        "signature": "EventHandler<DocObjects.RhinoObjectEventArgs> UndeleteRhinoObject",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Called if an object is un-deleted.",
        "since": "5.0"
      },
      {
        "signature": "EventHandler<DocObjects.RhinoObjectSelectionEventArgs> DeselectObjects",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Called when object(s) are deselected.",
        "since": "5.0"
      },
      {
        "signature": "EventHandler<DocObjects.RhinoObjectSelectionEventArgs> SelectObjects",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Called when object(s) are selected.",
        "since": "5.0"
      },
      {
        "signature": "EventHandler<DocObjects.RhinoReplaceObjectEventArgs> ReplaceRhinoObject",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Called if an object is about to be replaced. If both <b>RhinoDoc.UndoActive</b> and <b>RhinoDoc.RedoActive</b> return false, then immediately after the <b>RhinoDoc.ReplaceRhinoObject</b> event, there will be a <b>RhinoDoc.DeleteRhinoObject</b>  event followed by a <b>RhinoDoc.AddRhinoObject</b> event.  If either <b>RhinoDoc.UndoActive</b> or <b>RhinoDoc.UndoActive</b> return true, then immediately after the <b>RhinoDoc.ReplaceRhinoObject</b> event, there will be a <b>RhinoDoc.DeleteRhinoObject</b>  event followed by a <b>RhinoDoc.UndeleteRhinoObject</b> event.",
        "since": "5.0"
      },
      {
        "signature": "EventHandler<DocObjects.RhinoTransformObjectsEventArgs> BeforeTransformObjects",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Called before objects are being transformed",
        "since": "5.10"
      },
      {
        "signature": "EventHandler<DocumentEventArgs> ActiveDocumentChanged",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "This event is raised when the active document used by modeless user interface changes.  On Mac Rhino this will get raised before the  <b>NewDocument</b> , <b>BeginOpenDocument</b> and  <b>EndOpenDocument</b> events.  Mac Rhino will also raise this event with 0 for the document Id and a None document pointer when the last document is closed.  Windows Rhino will raise this event after the  <b>NewDocument</b> , <b>BeginOpenDocument</b> and  <b>EndOpenDocument</b> events when a new or existing model is opened.",
        "since": "6.0"
      },
      {
        "signature": "EventHandler<DocumentEventArgs> CloseDocument",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "EventHandler<DocumentEventArgs> DocumentPropertiesChanged",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "EventHandler<DocumentEventArgs> NewDocument",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "EventHandler<DocumentOpenEventArgs> BeginOpenDocument",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "This event is raised when the document open operation begins. NOTE: On Windows, this event will be fired when a clipboard paste operation occurs, as Rhino opens a .tmp file in the User's Local folder with the contents of the pasted document.",
        "since": "5.0"
      },
      {
        "signature": "EventHandler<DocumentOpenEventArgs> EndOpenDocument",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "EventHandler<DocumentOpenEventArgs> EndOpenDocumentInitialiViewUpdate",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "This event is raised after <b>EndOpenDocument</b> when the documents initial views have been created and initialized.",
        "since": "5.11",
        "obsolete": "Typo: use EndOpenDocumentInitialViewUpdate"
      },
      {
        "signature": "EventHandler<DocumentOpenEventArgs> EndOpenDocumentInitialViewUpdate",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "This event is raised after <b>EndOpenDocument</b> when the documents initial views have been created and initialized.",
        "since": "6.18"
      },
      {
        "signature": "EventHandler<DocumentSaveEventArgs> BeginSaveDocument",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "EventHandler<DocumentSaveEventArgs> EndSaveDocument",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "EventHandler<GroupTableEventArgs> GroupTableEvent",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Called when any modification happens to a document's group table.",
        "since": "5.0"
      },
      {
        "signature": "EventHandler<HatchPatternTableEventArgs> HatchPatternTableEvent",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Called when any modification happens to a document's hatch pattern table.",
        "since": "8.15"
      },
      {
        "signature": "EventHandler<InstanceDefinitionTableEventArgs> InstanceDefinitionTableEvent",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Called when any modification happens to a document's instance definition table.",
        "since": "5.3"
      },
      {
        "signature": "EventHandler<LayerTableEventArgs> LayerTableEvent",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Called when any modification happens to a document's layer table.",
        "since": "5.0"
      },
      {
        "signature": "EventHandler<LightTableEventArgs> LightTableEvent",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Called when any modification happens to a document's light table.",
        "since": "5.3"
      },
      {
        "signature": "EventHandler<LinetypeTableEventArgs> LinetypeTableEvent",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Called when any modification happens to a document's linetype table.",
        "since": "8.0"
      },
      {
        "signature": "EventHandler<MarkupTableEventArgs> MarkupTableEvent",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Called when any modification happens to a document's markup table.",
        "since": "9.0"
      },
      {
        "signature": "EventHandler<MaterialTableEventArgs> MaterialTableEvent",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Called when any modification happens to a document's material table.",
        "since": "5.0"
      },
      {
        "signature": "EventHandler<PageViewGroupTableEventArgs> PageViewGroupTableEvent",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Called when any modification happens to a document's pageview group table.",
        "since": "9.0"
      },
      {
        "signature": "EventHandler<RenderContentTableEventArgs> RenderEnvironmentTableEvent",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "5.7"
      },
      {
        "signature": "EventHandler<RenderContentTableEventArgs> RenderMaterialsTableEvent",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "5.7"
      },
      {
        "signature": "EventHandler<RenderContentTableEventArgs> RenderTextureTableEvent",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Called when the <b>RenderTextureTable</b> has been loaded, is about to be cleared or has been cleared.  See <b>RenderContentTableEventType</b> for more information.",
        "since": "5.7"
      },
      {
        "signature": "EventHandler<SectionStyleTableEventArgs> SectionStyleTableEvent",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Called when any modification happens to a document's section style table.",
        "since": "9.0"
      },
      {
        "signature": "EventHandler<TextureMappingEventArgs> TextureMappingEvent",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Called when any modification happens to a document objects texture mapping.",
        "since": "5.8"
      },
      {
        "signature": "EventHandler<UnitsChangedWithScalingEventArgs> UnitsChangedWithScaling",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Called when a change in the model units results in a scaling operation on all of the objects in the document. This call is made before any of the objects are scaled. A call to RhinoDoc.DocumentPropertiesChanged follows.",
        "since": "7.20"
      },
      {
        "signature": "EventHandler<UserStringChangedArgs> UserStringChanged",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "This event is raised when document user text strings are changed"
      },
      {
        "signature": "EventHandler<WorksessionFileChangedEventArgs> WorksessionFileChanged",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Raised after a worksession reference model has been attached to or detached from a document. The document state already reflects the change at the time the event fires.",
        "since": "9.0"
      }
    ]

  },
  {
    "namespace": "Rhino",
    "name": "RhinoDoc.RenderContentTableEventArgs",
    "dataType": "class",
    "summary": "Passed to the <b>RenderMaterialsTableEvent</b> , <b>RenderEnvironmentTableEvent</b> and the  <b>RenderTextureTableEvent</b> events.",
    "baseclass": "EventArgs",
    "properties": [
      {
        "signature": "RhinoDoc Document",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Document the table belongs to",
        "since": "5.7",
        "property": ["get"]
      },
      {
        "signature": "RenderContentTableEventType EventType",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Event type",
        "since": "5.7",
        "property": ["get"]
      }
    ]
  },
  {
    "namespace": "Rhino",
    "name": "RhinoDoc.RenderContentTableEventType",
    "dataType": "enum",
    "summary": "Type of content table event",
    "since": "5.7",
    "values": [
      {
        "signature": "Loaded",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "The document has been read and the table has been loaded"
      },
      {
        "signature": "Clearing",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "The table is about to be cleared"
      },
      {
        "signature": "Cleared",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "The table has been cleared"
      },
      {
        "signature": "MaterialAssignmentChanged",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Object or layer material assignment changed"
      }
    ]

  },
  {
    "namespace": "Rhino",
    "name": "RhinoDoc.RenderMaterialAssignmentChangedEventArgs",
    "dataType": "class",
    "baseclass": "RenderContentTableEventArgs",
    "properties": [
      {
        "signature": "bool IsLayer",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.10",
        "property": ["get"]
      },
      {
        "signature": "bool IsObject",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.10",
        "property": ["get"]
      },
      {
        "signature": "Guid LayerId",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.10",
        "property": ["get"]
      },
      {
        "signature": "Guid NewRenderMaterial",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.10",
        "property": ["get"]
      },
      {
        "signature": "Guid ObjectId",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.10",
        "property": ["get"]
      },
      {
        "signature": "Guid OldRenderMaterial",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.10",
        "property": ["get"]
      }
    ]
  },
  {
    "namespace": "Rhino",
    "name": "RhinoDoc.TextureMappingEventArgs",
    "dataType": "class",
    "summary": "Event arguments passed to the RhinoDoc.TextureMappingEvent.",
    "baseclass": "EventArgs",
    "properties": [
      {
        "signature": "RhinoDoc Document",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.8",
        "property": ["get"]
      },
      {
        "signature": "TextureMappingEventType EventType",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.8",
        "property": ["get"]
      },
      {
        "signature": "TextureMapping NewMapping",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.8",
        "property": ["get"]
      },
      {
        "signature": "TextureMapping OldMapping",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.8",
        "property": ["get"]
      }
    ]
  },
  {
    "namespace": "Rhino",
    "name": "RhinoDoc.TextureMappingEventType",
    "dataType": "enum",
    "since": "5.8",
    "values": [
      {
        "signature": "Added = UnsafeNativeMethods.RhinoEventWatcherTextureMappingEventConsts.Added",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Adding texture mapping to a document"
      },
      {
        "signature": "Deleted = UnsafeNativeMethods.RhinoEventWatcherTextureMappingEventConsts.Deleted",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "A texture mapping was deleted from a document"
      },
      {
        "signature": "Undeleted = UnsafeNativeMethods.RhinoEventWatcherTextureMappingEventConsts.Undeleted",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "A texture mapping was undeleted in a document"
      },
      {
        "signature": "Modified = UnsafeNativeMethods.RhinoEventWatcherTextureMappingEventConsts.Modified",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "A texture mapping was modified in a document"
      }
    ]

  },
  {
    "namespace": "Rhino",
    "name": "RhinoDoc.UserStringChangedArgs",
    "dataType": "class",
    "summary": "This event is raised when document user text strings are changed",
    "baseclass": "EventArgs",
    "properties": [
      {
        "signature": "RhinoDoc Document",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Document containing the user string",
        "since": "7.7",
        "property": ["get"]
      },
      {
        "signature": "string Key",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Key for the string being changed",
        "since": "7.7",
        "property": ["get"]
      }
    ]
  },
  {
    "namespace": "Rhino",
    "name": "RhinoDoc.WorksessionFileChangedEventArgs",
    "dataType": "class",
    "summary": "Event arguments for <b>WorksessionFileChanged</b> . At the time of the notification, the document state already reflects the change: attached models' objects/layers are present, detached models' objects/layers have been purged.",
    "baseclass": "EventArgs",
    "properties": [
      {
        "signature": "WorksessionFileChangeKind ChangeKind",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Whether the model was attached or detached.",
        "since": "9.0",
        "property": ["get"]
      },
      {
        "signature": "RhinoDoc Document",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Document the worksession belongs to.",
        "since": "9.0",
        "property": ["get"]
      },
      {
        "signature": "string FilePath",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Full path of the .3dm file being attached or detached.",
        "since": "9.0",
        "property": ["get"]
      },
      {
        "signature": "uint WorksessionModelRuntimeSerialNumber",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Runtime serial number of the worksession reference model being attached or detached. Not persistent across sessions.",
        "since": "9.0",
        "property": ["get"]
      }
    ]
  },
  {
    "namespace": "Rhino",
    "name": "RhinoDoc.WorksessionFileChangeKind",
    "dataType": "enum",
    "summary": "Whether a worksession reference model is being attached or detached.",
    "since": "9.0",
    "values": [
      {
        "signature": "Attached = 0",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "A worksession reference model has just been attached."
      },
      {
        "signature": "Detached = 1",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "A worksession reference model has just been detached."
      },
      {
        "signature": "BeforeDetach = 2",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "A worksession reference model is about to be detached. The doc still contains the reference content at this point, so subscribers can identify what will be affected before it's purged."
      }
    ]

  },
  {
    "namespace": "Rhino",
    "name": "RhinoDocObserverArgs",
    "dataType": "class",
    "summary": "Arguments passed to <b>IRhinoDocObserver</b> methods.",
    "constructors": [
      {
        "signature": "RhinoDocObserverArgs(RhinoDoc doc)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0"
      }
    ],
    "properties": [
      {
        "signature": "RhinoDoc Doc",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Document",
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "uint RuntimeSerialNumber",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Document runtime serial number, will be different across Rhino sessions.",
        "since": "6.0",
        "property": ["get"]
      }
    ]
  },
  {
    "namespace": "Rhino",
    "name": "RhinoDocUndoRecord",
    "dataType": "class",
    "summary": "This helper class manages calls to RhinoDoc.BeginUndoRecord and RhinoDoc.UndoRecord. Use this if you are modifying a document from some modeless user interface. Do not use this if you are just writing Rhino commands. ALWAYS call Dispose on this class. It is best if the class is placed in a using block so Dispose will be called for you.",
    "interfaces": ["IDisposable"],
    "constructors": [
      {
        "signature": "RhinoDocUndoRecord(RhinoDoc doc, string description)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Begin a RhinoDoc undo record.",
        "since": "8.23",
        "parameters": [
          {
            "name": "doc",
            "type": "RhinoDoc",
            "summary": "The active document."
          },
          {
            "name": "description",
            "type": "System.String",
            "summary": "A description of the record."
          }
        ]
      },
      {
        "signature": "RhinoDocUndoRecord(uint docRuntimeSerialNumber, string description)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Begin a RhinoDoc undo record.",
        "since": "8.23",
        "parameters": [
          {
            "name": "docRuntimeSerialNumber",
            "type": "System.UInt32",
            "summary": "The active document's runtime serial number."
          },
          {
            "name": "description",
            "type": "System.String",
            "summary": "A description of the record."
          }
        ]
      }
    ],
    "methods": [
      {
        "signature": "System.Void Dispose()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "IDisposable implementaton",
        "since": "8.23"
      }
    ]
  },
  {
    "namespace": "Rhino",
    "name": "RhinoFileWatcherChangeReason",
    "dataType": "enum",
    "summary": "Passed to IRhinoFileEventWatcher::Changed when a change event is raised.",
    "values": [
      {
        "signature": "Created = 1",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "The creation of a file or folder."
      },
      {
        "signature": "Deleted = 2",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "The deletion of a file or folder."
      },
      {
        "signature": "Changed = 4",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "The change of a file or folder. The types of changes include: changes to size, attributes, security settings, last write, and last access time."
      },
      {
        "signature": "Renamed",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "The renaming of a file or folder."
      }
    ]

  },
  {
    "namespace": "Rhino",
    "name": "RhinoMath",
    "dataType": "class",
    "summary": "Provides constants and static methods that are additional to  <b>System.Math</b> .",
    "constructors": [
      {
        "signature": "RhinoMath()",
        "summary": "Initializes a new instance of the RhinoMath class"
      }
    ],
    "methods": [
      {
        "signature": "System.Double Clamp(System.Double value, System.Double bound1, System.Double bound2)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Limits a <b>double</b> to be specified within an interval of two numbers, by specifying a fixed minimum and maximum.",
        "since": "5.0",
        "parameters": [
          {
            "name": "value",
            "type": "System.Double",
            "summary": "A number."
          },
          {
            "name": "bound1",
            "type": "System.Double",
            "summary": "A first bound."
          },
          {
            "name": "bound2",
            "type": "System.Double",
            "summary": "A second bound. This does not necessarily need to be larger or smaller than bound1."
          }
        ],
        "returns": "The clamped value."
      },
      {
        "signature": "System.Int32 Clamp(System.Int32 value, System.Int32 bound1, System.Int32 bound2)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Restricts a <b>int</b> to be specified within an interval of two integers.",
        "since": "5.0",
        "parameters": [
          {
            "name": "value",
            "type": "System.Int32",
            "summary": "An integer."
          },
          {
            "name": "bound1",
            "type": "System.Int32",
            "summary": "A first bound."
          },
          {
            "name": "bound2",
            "type": "System.Int32",
            "summary": "A second bound. This does not necessarily need to be larger or smaller than bound1."
          }
        ],
        "returns": "The clamped value."
      },
      {
        "signature": "System.UInt32 CRC32(System.UInt32 currentRemainder, System.Byte[] buffer)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Advances the cyclic redundancy check value remainder given a byte array. http://en.wikipedia.org/wiki/Cyclic_redundancy_check.",
        "since": "5.0",
        "parameters": [
          {
            "name": "currentRemainder",
            "type": "System.UInt32",
            "summary": "The remainder from which to start."
          },
          {
            "name": "buffer",
            "type": "System.Byte[]",
            "summary": "The value to add to the current remainder."
          }
        ],
        "returns": "The new current remainder."
      },
      {
        "signature": "System.UInt32 CRC32(System.UInt32 currentRemainder, System.Double value)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Advances the cyclic redundancy check value remainder given a <b>double</b> . http://en.wikipedia.org/wiki/Cyclic_redundancy_check.",
        "since": "5.0",
        "parameters": [
          {
            "name": "currentRemainder",
            "type": "System.UInt32",
            "summary": "The remainder from which to start."
          },
          {
            "name": "value",
            "type": "System.Double",
            "summary": "The value to add to the current remainder."
          }
        ],
        "returns": "The new current remainder."
      },
      {
        "signature": "System.UInt32 CRC32(System.UInt32 currentRemainder, System.Int32 value)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Advances the cyclic redundancy check value remainder given a <b>int</b> . http://en.wikipedia.org/wiki/Cyclic_redundancy_check.",
        "since": "5.0",
        "parameters": [
          {
            "name": "currentRemainder",
            "type": "System.UInt32",
            "summary": "The remainder from which to start."
          },
          {
            "name": "value",
            "type": "System.Int32",
            "summary": "The value to add to the current remainder."
          }
        ],
        "returns": "The new current remainder."
      },
      {
        "signature": "System.Boolean EpsilonEquals(System.Double x, System.Double y, System.Double epsilon)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Compare two doubles for equality within some \"epsilon\" range",
        "since": "5.4"
      },
      {
        "signature": "System.Boolean EpsilonEquals(System.Single x, System.Single y, System.Single epsilon)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Compare to floats for equality within some \"epsilon\" range",
        "since": "5.4"
      },
      {
        "signature": "System.Boolean EvaluateNormal(System.Int32 limitDirection, Rhino.Geometry.Vector3d ds, Rhino.Geometry.Vector3d dt, Rhino.Geometry.Vector3d dss, Rhino.Geometry.Vector3d dst, Rhino.Geometry.Vector3d dtt, out Rhino.Geometry.Vector3d n)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Expert tool to evaluate surface unit normal.",
        "since": "7.0",
        "parameters": [
          {
            "name": "limitDirection",
            "type": "System.Int32",
            "summary": "Determines which direction is used to compute the limit, where: 0 = default, 1 = from quadrant I, 2 = from quadrant II, etc."
          },
          {
            "name": "ds",
            "type": "Rhino.Geometry.Vector3d",
            "summary": "First partial derivative."
          },
          {
            "name": "dt",
            "type": "Rhino.Geometry.Vector3d",
            "summary": "First partial derivative."
          },
          {
            "name": "dss",
            "type": "Rhino.Geometry.Vector3d",
            "summary": "Second partial derivative."
          },
          {
            "name": "dst",
            "type": "Rhino.Geometry.Vector3d",
            "summary": "Second partial derivative."
          },
          {
            "name": "dtt",
            "type": "Rhino.Geometry.Vector3d",
            "summary": "Second partial derivative."
          },
          {
            "name": "n",
            "type": "Rhino.Geometry.Vector3d",
            "summary": "Unit normal."
          }
        ],
        "returns": "True if successful, False otherwise."
      },
      {
        "signature": "System.Boolean EvaluateNormalPartials(Rhino.Geometry.Vector3d ds, Rhino.Geometry.Vector3d dt, Rhino.Geometry.Vector3d dss, Rhino.Geometry.Vector3d dst, Rhino.Geometry.Vector3d dtt, out Rhino.Geometry.Vector3d ns, out Rhino.Geometry.Vector3d nt)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Expert tool to evaluate partial derivatives of surface unit normal.",
        "since": "7.0",
        "parameters": [
          {
            "name": "ds",
            "type": "Rhino.Geometry.Vector3d",
            "summary": "First partial derivative."
          },
          {
            "name": "dt",
            "type": "Rhino.Geometry.Vector3d",
            "summary": "First partial derivative."
          },
          {
            "name": "dss",
            "type": "Rhino.Geometry.Vector3d",
            "summary": "Second partial derivative."
          },
          {
            "name": "dst",
            "type": "Rhino.Geometry.Vector3d",
            "summary": "Second partial derivative."
          },
          {
            "name": "dtt",
            "type": "Rhino.Geometry.Vector3d",
            "summary": "Second partial derivative."
          },
          {
            "name": "ns",
            "type": "Rhino.Geometry.Vector3d",
            "summary": "First partial derivative of unit normal. If the Jacobian is degenerate, ns is set to zero."
          },
          {
            "name": "nt",
            "type": "Rhino.Geometry.Vector3d",
            "summary": "First partial derivative of unit normal. If the Jacobian is degenerate, nt is set to zero."
          }
        ],
        "returns": "True if Jacobian is non-degenerate, False if Jacobian is degenerate."
      },
      {
        "signature": "System.Boolean EvaluateSectionalCurvature(Rhino.Geometry.Vector3d ds, Rhino.Geometry.Vector3d dt, Rhino.Geometry.Vector3d dss, Rhino.Geometry.Vector3d dst, Rhino.Geometry.Vector3d dtt, Rhino.Geometry.Vector3d planeNormal, out Rhino.Geometry.Vector3d k)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Expert tool to evaluate sectional curvature from surface derivatives and section plane normal.",
        "since": "8.16",
        "parameters": [
          {
            "name": "ds",
            "type": "Rhino.Geometry.Vector3d",
            "summary": "First partial derivative."
          },
          {
            "name": "dt",
            "type": "Rhino.Geometry.Vector3d",
            "summary": "First partial derivative."
          },
          {
            "name": "dss",
            "type": "Rhino.Geometry.Vector3d",
            "summary": "Second partial derivative."
          },
          {
            "name": "dst",
            "type": "Rhino.Geometry.Vector3d",
            "summary": "Second partial derivative."
          },
          {
            "name": "dtt",
            "type": "Rhino.Geometry.Vector3d",
            "summary": "Second partial derivative."
          },
          {
            "name": "planeNormal",
            "type": "Rhino.Geometry.Vector3d",
            "summary": "Unit normal to section plane."
          },
          {
            "name": "k",
            "type": "Rhino.Geometry.Vector3d",
            "summary": "Sectional curvature. Curvature of the intersection curve of the surface and plane through the surface point where the partial derivatives were evaluated."
          }
        ],
        "returns": "True if successful. False if first partials are not linearly independent, in which case the k is set to zero."
      },
      {
        "signature": "System.Double Integrate(Func<object, int, double, double, double> integrandFunction, System.Object context, Interval limits1, Interval limits2, System.Double relativeTolerance, System.Double absoluteTolerance, out System.Double errorBound)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "System.Double Integrate(Func<object, int, double, double, double> integrandFunction, System.Object context, Interval limits1, Interval limits2, System.Double relativeTolerance, System.Double absoluteTolerance, System.Threading.CancellationToken cancellationToken, out System.Double errorBound)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "9.0",
        "parameters": [
          {
            "name": "integrandFunction",
            "type": "Func<object, int, double, double, double>",
            "summary": ""
          },
          {
            "name": "context",
            "type": "System.Object",
            "summary": ""
          },
          {
            "name": "limits1",
            "type": "Interval",
            "summary": ""
          },
          {
            "name": "limits2",
            "type": "Interval",
            "summary": ""
          },
          {
            "name": "relativeTolerance",
            "type": "System.Double",
            "summary": ""
          },
          {
            "name": "absoluteTolerance",
            "type": "System.Double",
            "summary": ""
          },
          {
            "name": "cancellationToken",
            "type": "System.Threading.CancellationToken",
            "summary": "Token used to cancel the calculation. Cancellation is cooperative: it is checked each time the integrand is evaluated, and a canceled calculation returns double.NaN."
          },
          {
            "name": "errorBound",
            "type": "System.Double",
            "summary": ""
          }
        ]
      },
      {
        "signature": "System.Double Integrate(Func<object, int, double, double, double> integrandFunction, System.Object context, Surface surface, System.Double relativeTolerance, System.Double absoluteTolerance, out System.Double errorBound)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "System.Double Integrate(Func<object, int, double, double, double> integrandFunction, System.Object context, Surface surface, System.Double relativeTolerance, System.Double absoluteTolerance, System.Threading.CancellationToken cancellationToken, out System.Double errorBound)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "9.0",
        "parameters": [
          {
            "name": "integrandFunction",
            "type": "Func<object, int, double, double, double>",
            "summary": ""
          },
          {
            "name": "context",
            "type": "System.Object",
            "summary": ""
          },
          {
            "name": "surface",
            "type": "Surface",
            "summary": ""
          },
          {
            "name": "relativeTolerance",
            "type": "System.Double",
            "summary": ""
          },
          {
            "name": "absoluteTolerance",
            "type": "System.Double",
            "summary": ""
          },
          {
            "name": "cancellationToken",
            "type": "System.Threading.CancellationToken",
            "summary": "Token used to cancel the calculation. Cancellation is cooperative: it is checked each time the integrand is evaluated, and a canceled calculation returns double.NaN."
          },
          {
            "name": "errorBound",
            "type": "System.Double",
            "summary": ""
          }
        ]
      },
      {
        "signature": "System.Double Integrate(Func<object, int, double, double> integrandFunction, System.Object context, Curve curve, System.Double relativeTolerance, System.Double absoluteTolerance, out System.Double errorBound)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Calculates the definite integral of a smooth (C-infinity) function of one variable using a Rhomberg integration technique and returns returns Integral(f(t)*|curve'(t)|*dt). The C-infinity requirement is used by the Rhomberg algorithm when estimating error bounds and convergence. If you choose to pass a C2 function, you are likely to converge while getting less accurate results and incorrect error bound estimates. Using a C0 or C1 fucntion will often return nonsense.",
        "parameters": [
          {
            "name": "integrandFunction",
            "type": "Func<object, int, double, double>",
            "summary": "The integrand function is double f(ON__UINT_PTR context, int limit_direction, double t) and returns the value of the integrand at t. The limit_direction parameter will be -1, 0, or +1 and specifies which limit direction should be used in the evaluation. If limit_direction = 1, then the integrand may not be C-infinity at t and should be evaluated using the limit from above. If limit_direction = -1, then the integrand may not be C-infinity at t and should be evaluated using the limit from below. If limit_direction = 0, then the integrand is C-infinity at t and may and evaluation from above and below will return the same answer."
          },
          {
            "name": "context",
            "type": "System.Object",
            "summary": "First parameter passed into the integrand function."
          },
          {
            "name": "curve",
            "type": "Curve",
            "summary": "The integration is performed over the C-infinity spans of the curve and |curve'(t)| is automatically included in the integrand. The integrand must be C-infinity on the intesection each curve span with the interval (limits[0],limits[1]). The curve may have any dimension."
          },
          {
            "name": "relativeTolerance",
            "type": "System.Double",
            "summary": "Desired relative tolerance. If I = mathematical value and N = numerical integration value, then the algorithm will terminate when |I - N| <= relative_tolerance*|I|. For example, if you want to know the answer with 5 digits of accuracy, then pass 1e-5."
          },
          {
            "name": "absoluteTolerance",
            "type": "System.Double",
            "summary": "Desired absolute tolerance. If I = mathematical value and N = numerical integration value, then the algorithm will terminate when |I - N| <= absolute_tolerance."
          },
          {
            "name": "errorBound",
            "type": "System.Double",
            "summary": "If error_bound is not nullptr, then the returned value is upper bound on the error in the calculation. If I = mathematical value and N = returned value, then |I - N| <= *error_bound;"
          }
        ],
        "returns": "If the calulation succeeds, then the numerical integral is returned. Otherwise ON_DBL_QNAN is returned."
      },
      {
        "signature": "System.Double Integrate(Func<object, int, double, double> integrandFunction, System.Object context, Curve curve, System.Double relativeTolerance, System.Double absoluteTolerance, System.Threading.CancellationToken cancellationToken, out System.Double errorBound)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Calculates the definite integral of a smooth (C-infinity) function of one variable using a Rhomberg integration technique and returns returns Integral(f(t)*|curve'(t)|*dt). The C-infinity requirement is used by the Rhomberg algorithm when estimating error bounds and convergence. If you choose to pass a C2 function, you are likely to converge while getting less accurate results and incorrect error bound estimates. Using a C0 or C1 fucntion will often return nonsense. The calculation can be canceled through the cancellation token.",
        "since": "9.0",
        "parameters": [
          {
            "name": "integrandFunction",
            "type": "Func<object, int, double, double>",
            "summary": "The integrand function is double f(ON__UINT_PTR context, int limit_direction, double t) and returns the value of the integrand at t. The limit_direction parameter will be -1, 0, or +1 and specifies which limit direction should be used in the evaluation. If limit_direction = 1, then the integrand may not be C-infinity at t and should be evaluated using the limit from above. If limit_direction = -1, then the integrand may not be C-infinity at t and should be evaluated using the limit from below. If limit_direction = 0, then the integrand is C-infinity at t and may and evaluation from above and below will return the same answer."
          },
          {
            "name": "context",
            "type": "System.Object",
            "summary": "First parameter passed into the integrand function."
          },
          {
            "name": "curve",
            "type": "Curve",
            "summary": "The integration is performed over the C-infinity spans of the curve and |curve'(t)| is automatically included in the integrand. The integrand must be C-infinity on the intesection each curve span with the interval (limits[0],limits[1]). The curve may have any dimension."
          },
          {
            "name": "relativeTolerance",
            "type": "System.Double",
            "summary": "Desired relative tolerance. If I = mathematical value and N = numerical integration value, then the algorithm will terminate when |I - N| <= relative_tolerance*|I|. For example, if you want to know the answer with 5 digits of accuracy, then pass 1e-5."
          },
          {
            "name": "absoluteTolerance",
            "type": "System.Double",
            "summary": "Desired absolute tolerance. If I = mathematical value and N = numerical integration value, then the algorithm will terminate when |I - N| <= absolute_tolerance."
          },
          {
            "name": "cancellationToken",
            "type": "System.Threading.CancellationToken",
            "summary": "Token used to cancel the calculation. Cancellation is cooperative: it is checked each time the integrand is evaluated, and a canceled calculation returns double.NaN."
          },
          {
            "name": "errorBound",
            "type": "System.Double",
            "summary": "If error_bound is not nullptr, then the returned value is upper bound on the error in the calculation. If I = mathematical value and N = returned value, then |I - N| <= *error_bound;"
          }
        ],
        "returns": "If the calulation succeeds, then the numerical integral is returned. Otherwise ON_DBL_QNAN is returned."
      },
      {
        "signature": "System.Double Integrate(Func<object, int, double, double> integrandFunction, System.Object context, Interval limits, System.Double relativeTolerance, System.Double absoluteTolerance, out System.Double errorBound)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Calculates the definite integral of a smooth (C-infinity) function using a Rhomberg integration technique.",
        "parameters": [
          {
            "name": "integrandFunction",
            "type": "Func<object, int, double, double>",
            "summary": "The integrand function is double f(object context, int limit_direction, double t) and returns the value of the integrand at t. The limit_direction parameter will be -1, 0, or +1 and specifies which limit direction should be used in the evaluation. If limit_direction = 1, then the integrand may not be C-infinity at t and should be evaluated using the limit from above. If limit_direction = -1, then the integrand may not be C-infinity at t and should be evaluated using the limit from below. If limit_direction = 0, then the integrand is C-infinity at t and may and evaluation from above and below will return the same answer."
          },
          {
            "name": "context",
            "type": "System.Object",
            "summary": "Anything you want to be passed to and used by the integrandFunction"
          },
          {
            "name": "limits",
            "type": "Interval",
            "summary": "Limits of integration. The integrand must be C-infinity on each interval (limits[0],limits[1])."
          },
          {
            "name": "relativeTolerance",
            "type": "System.Double",
            "summary": "Desired relative tolerance. If I = mathematical value and N = numerical integration value, then the algorithm will terminate when |I - N| <= relative_tolerance*|I|. For example, if you want to know the answer with 5 digits of accuracy, then pass 1e-5."
          },
          {
            "name": "absoluteTolerance",
            "type": "System.Double",
            "summary": "Desired absolute tolerance. If I = mathematical value and N = numerical integration value, then the algorithm will terminate when |I - N| <= absolute_tolerance."
          },
          {
            "name": "errorBound",
            "type": "System.Double",
            "summary": "upper bound on the error in the calculation"
          }
        ],
        "returns": "If the calulation succeeds, then the numerical integral is returned. Otherwise double.NaN is returned."
      },
      {
        "signature": "System.Double Integrate(Func<object, int, double, double> integrandFunction, System.Object context, Interval limits, System.Double relativeTolerance, System.Double absoluteTolerance, System.Threading.CancellationToken cancellationToken, out System.Double errorBound)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Calculates the definite integral of a smooth (C-infinity) function using a Rhomberg integration technique. The calculation can be canceled through the cancellation token.",
        "since": "9.0",
        "parameters": [
          {
            "name": "integrandFunction",
            "type": "Func<object, int, double, double>",
            "summary": "The integrand function is double f(object context, int limit_direction, double t) and returns the value of the integrand at t. The limit_direction parameter will be -1, 0, or +1 and specifies which limit direction should be used in the evaluation. If limit_direction = 1, then the integrand may not be C-infinity at t and should be evaluated using the limit from above. If limit_direction = -1, then the integrand may not be C-infinity at t and should be evaluated using the limit from below. If limit_direction = 0, then the integrand is C-infinity at t and may and evaluation from above and below will return the same answer."
          },
          {
            "name": "context",
            "type": "System.Object",
            "summary": "Anything you want to be passed to and used by the integrandFunction"
          },
          {
            "name": "limits",
            "type": "Interval",
            "summary": "Limits of integration. The integrand must be C-infinity on each interval (limits[0],limits[1])."
          },
          {
            "name": "relativeTolerance",
            "type": "System.Double",
            "summary": "Desired relative tolerance. If I = mathematical value and N = numerical integration value, then the algorithm will terminate when |I - N| <= relative_tolerance*|I|. For example, if you want to know the answer with 5 digits of accuracy, then pass 1e-5."
          },
          {
            "name": "absoluteTolerance",
            "type": "System.Double",
            "summary": "Desired absolute tolerance. If I = mathematical value and N = numerical integration value, then the algorithm will terminate when |I - N| <= absolute_tolerance."
          },
          {
            "name": "cancellationToken",
            "type": "System.Threading.CancellationToken",
            "summary": "Token used to cancel the calculation. Cancellation is cooperative: it is checked each time the integrand is evaluated, and a canceled calculation returns double.NaN."
          },
          {
            "name": "errorBound",
            "type": "System.Double",
            "summary": "upper bound on the error in the calculation"
          }
        ],
        "returns": "If the calulation succeeds, then the numerical integral is returned. Otherwise double.NaN is returned."
      },
      {
        "signature": "System.String IntIndexToString(System.Int32 index)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Portrays an <b>int</b> index in text.",
        "since": "6.0",
        "parameters": [
          {
            "name": "index",
            "type": "System.Int32",
            "summary": "<b>int</b> number express as string."
          }
        ],
        "returns": "The text representation of the int index."
      },
      {
        "signature": "System.Boolean IsValidDouble(System.Double x)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Determines whether a <b>double</b> value is valid within the RhinoCommon context.  \nRhino does not use Double.NaN by convention, so this test evaluates to True if:  \nx is not equal to RhinoMath.UnsetValue  \nSystem.Double.IsNaN(x) evaluates to false  \nSystem.Double.IsInfinity(x) evaluates to false",
        "since": "5.0",
        "parameters": [
          {
            "name": "x",
            "type": "System.Double",
            "summary": "<b>double</b> number to test for validity."
          }
        ],
        "returns": "True if the number if valid, False if the number is NaN, Infinity or Unset."
      },
      {
        "signature": "System.Boolean IsValidSingle(System.Single x)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Determines whether a <b>float</b> value is valid within the RhinoCommon context.  \nRhino does not use Single.NaN by convention, so this test evaluates to True if:  \nx is not equal to RhinoMath.UnsetValue,  \nSystem.Single.IsNaN(x) evaluates to false  \nSystem.Single.IsInfinity(x) evaluates to false",
        "since": "5.0",
        "parameters": [
          {
            "name": "x",
            "type": "System.Single",
            "summary": "<b>float</b> number to test for validity."
          }
        ],
        "returns": "True if the number if valid, False if the number is NaN, Infinity or Unset."
      },
      {
        "signature": "System.Double MetersPerUnit(UnitSystem units)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Return number of meters per one unit of a given unit system",
        "since": "7.1"
      },
      {
        "signature": "System.Double ParseNumber(System.String expression)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Evaluates command line math expression.",
        "since": "6.0",
        "returns": "result"
      },
      {
        "signature": "System.Double ToDegrees(System.Double radians)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Convert an angle from radians to degrees.",
        "since": "5.0",
        "parameters": [
          {
            "name": "radians",
            "type": "System.Double",
            "summary": "Radians to convert (180 degrees equals pi radians)."
          }
        ]
      },
      {
        "signature": "System.Double ToRadians(System.Double degrees)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Convert an angle from degrees to radians.",
        "since": "5.0",
        "parameters": [
          {
            "name": "degrees",
            "type": "System.Double",
            "summary": "Degrees to convert (180 degrees equals pi radians)."
          }
        ]
      },
      {
        "signature": "System.Boolean TryParseNumber(System.String expression, out System.Double result)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Evaluates command line math expression.",
        "since": "6.0",
        "returns": "True if successful otherwise false"
      },
      {
        "signature": "System.Double UnitScale(UnitSystem from, System.Double fromMetersPerUnit, UnitSystem to, System.Double toMetersPerUnit)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Computes the scale factor for changing the measurements unit systems.",
        "since": "8.0",
        "parameters": [
          {
            "name": "from",
            "type": "UnitSystem",
            "summary": "The system to convert from."
          },
          {
            "name": "fromMetersPerUnit",
            "type": "System.Double",
            "summary": "For custom units, specify the meters per unit."
          },
          {
            "name": "to",
            "type": "UnitSystem",
            "summary": "The system to convert measurements into."
          },
          {
            "name": "toMetersPerUnit",
            "type": "System.Double",
            "summary": "For custom units, specify the meters per unit."
          }
        ],
        "returns": "A scale multiplier."
      },
      {
        "signature": "System.Double UnitScale(UnitSystem from, UnitSystem to)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Computes the scale factor for changing the measurements unit systems.",
        "since": "5.0",
        "parameters": [
          {
            "name": "from",
            "type": "UnitSystem",
            "summary": "The system to convert from."
          },
          {
            "name": "to",
            "type": "UnitSystem",
            "summary": "The system to convert measurements into."
          }
        ],
        "returns": "A scale multiplier."
      },
      {
        "signature": "System.Double Wrap(System.Double value, System.Double bound1, System.Double bound2)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Limits a <b>double</b> to be specified within an interval of two numbers by repeating the available interval cyclically.",
        "since": "7.1",
        "parameters": [
          {
            "name": "value",
            "type": "System.Double",
            "summary": "A number."
          },
          {
            "name": "bound1",
            "type": "System.Double",
            "summary": "A first bound."
          },
          {
            "name": "bound2",
            "type": "System.Double",
            "summary": "A second bound. This does not necessarily need to be larger or smaller than bound1."
          }
        ]
      }
    ],
    "fields": [
      {
        "signature": "public const double DefaultAngleTolerance = PI / 180.0",
        "modifiers": ["public", "const"],
        "protected": false,
        "virtual": false,
        "summary": "Represents the default angle tolerance, used when no other values are provided.  \nThis is one degree, expressed in radians.",
    "remarks": "This is equivalent to openNURBS ON_DEFAULT_ANGLE_TOLERANCE."
      },
      {
        "signature": "public const double DefaultDistanceToleranceMillimeters = 0.01",
        "modifiers": ["public", "const"],
        "protected": false,
        "virtual": false,
        "summary": "Get Rhino's default distance tolerance in millimeters.",
    "remarks": "This is equivalent to openNURBS ON_DEFAULT_DISTANCE_TOLERANCE_MM."
      },
      {
        "signature": "public const double Epsilon = 2.2204460492503131e-16",
        "modifiers": ["public", "const"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the value of DBL_EPSILON, which is the smallest positive floating point number x such that 1 + x != 1. This is different than Double.Epsilon which is the smallest positive Double value that is greater than zero.",
    "remarks": "This is equivalent to openNURBS ON_EPSILON."
      },
      {
        "signature": "public const double HalfPI = PI / 2",
        "modifiers": ["public", "const"],
        "protected": false,
        "virtual": false,
        "summary": "Quarter of a rotation. 90 degrees. 1.57..."
      },
      {
        "signature": "public const double InfiniteRadius = 1e300",
        "modifiers": ["public", "const"],
        "protected": false,
        "virtual": false,
        "summary": "Value used to indicate a radius of curvature is infinite.",
        "since": "9.0"
      },
      {
        "signature": "public const double QuarterPI = PI / 4",
        "modifiers": ["public", "const"],
        "protected": false,
        "virtual": false,
        "summary": "One eigth of a rotation. 45 degrees. 0.78..."
      },
      {
        "signature": "public const double SqrtEpsilon = 1.490116119385000000e-8",
        "modifiers": ["public", "const"],
        "protected": false,
        "virtual": false,
        "summary": "Represents a default value that is used when comparing square roots.  \nThis value is several orders of magnitude larger than .",
    "remarks": "This is equivalent to openNURBS ON_SQRT_EPSILON."
      },
      {
        "signature": "public const double Tau = PI * 2",
        "modifiers": ["public", "const"],
        "protected": false,
        "virtual": false,
        "summary": "Ratio of circumference divided by radius. Full rotation. 360 degrees. 6.28..."
      },
      {
        "signature": "public const double TwoPI = Tau",
        "modifiers": ["public", "const"],
        "protected": false,
        "virtual": false,
        "summary": "Full rotation. 360 degrees. 6.28..."
      },
      {
        "signature": "public const double UnsetValue = -1.23432101234321e+308",
        "modifiers": ["public", "const"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the Rhino standard Unset value. Use this value rather than Double.NaN when a bogus floating point value is required.",
    "remarks": "This is equivalent to openNURBS ON_UNSET_VALUE."
      },
      {
        "signature": "public const double ZeroTolerance = 2.3283064365386962890625e-10",
        "modifiers": ["public", "const"],
        "protected": false,
        "virtual": false,
        "summary": "Gets Rhino's Zero Tolerance constant, which is 2^-32. In cases when an absolute \"zero\" tolerance is required to compare model space coordinates, ZeroTolerance is used. The value of ZeroTolerance should be no smaller than  <b>RhinoMath.Epsilon</b> and should be several orders of magnitude smaller than <b>RhinoMath.SqrtEpsilon</b> .",
    "remarks": "This is equivalent to openNURBS ON_ZERO_TOLERANCE."
      },
      {
        "signature": "public const float UnsetSingle = -1.234321e+38f",
        "modifiers": ["public", "const"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the single precision floating point number that is considered 'unset' in Rhino.",
    "remarks": "This is equivalent to openNURBS ON_UNSET_FLOAT."
      },
      {
        "signature": "public const int UnsetIntIndex = int.MinValue + 1",
        "modifiers": ["public", "const"],
        "protected": false,
        "virtual": false,
        "summary": "When signed int values are used in a context where 0 and small negative values are valid indices and there needs to be a value that indicates the index is not set.",
    "remarks": "This is equivalent to openNURBS ON_UNSET_INT_INDEX."
      }
    ]

  },
  {
    "namespace": "Rhino",
    "name": "RhinoWindow",
    "dataType": "class",
    "summary": "Represents the top level window in Rhino",
    "baseclass": "System.Windows.Forms.IWin32Window",
    "properties": [
      {
        "signature": "IntPtr Handle",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "bool InvokeRequired",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "See Control.InvokeRequired",
        "since": "5.0",
        "property": ["get"]
      }
    ],
    "methods": [
      {
        "signature": "System.Void Invoke(System.Delegate method)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      }
    ]
  },
  {
    "namespace": "Rhino.Runtime",
    "name": "AdvancedSetting",
    "dataType": "enum",
    "summary": "Advanced setting Id",
    "values": [
      {
        "signature": "UseCompressionWhenSaving",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Use compressed buffers when saving 3dm files (default is true)."
      },
      {
        "signature": "TestAdvancedString",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "String value, defaults to \"test string\""
      },
      {
        "signature": "TestAdvancedInt",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Integer value, defaults 123"
      },
      {
        "signature": "PdfOptionalContentGroups",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "How optional content should be included when exporting PDF files"
      },
      {
        "signature": "LeaveFloatingPanelsHiddenOnMac",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Bool value used on Mac to satisfy a user request to hide floating stuff when a command starts and leave it hidden when the command ends.  This is False by default. https://mcneel.myjetbrains.com/youtrack/issue/RH-57945"
      },
      {
        "signature": "DisableFileWatchers",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Disable file watchers, using to diagnose Mac Rhino mystery crashes https://mcneel.myjetbrains.com/youtrack/issue/RH-52805"
      },
      {
        "signature": "EnableCheckForUpdates",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Auto check for update, enabled by default on Mac, does not show up in Windows https://mcneel.myjetbrains.com/youtrack/issue/RH-60427"
      },
      {
        "signature": "LeftJustifyNumericText",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Mainly an issue on Windows; there are different numeric controls scattered across the product and no consistent text alignment. This is an attempt to provide a way to control the preferred alignment style."
      },
      {
        "signature": "EnableWindowsGestures",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "https://mcneel.myjetbrains.com/youtrack/issue/RH-62173 Disable gestures for Windows views for a customer who was complaining when upgrading."
      },
      {
        "signature": "MakeInteriorNgonVertexesSelectable",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Set this to False if you only want boundary vertexes selectable when you run PointsOn. https://mcneel.myjetbrains.com/youtrack/issue/RH-62140"
      },
      {
        "signature": "MacDisplayOldVersionAutosaveWarning",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Set this to True if you want to be warned about autosave for old file versions on Mac. https://mcneel.myjetbrains.com/youtrack/issue/RH-62359"
      },
      {
        "signature": "UseNewMissingFontUI",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Set this to True if you want to be use the new missing font mapping UI. https://mcneel.myjetbrains.com/youtrack/issue/RH-62642"
      },
      {
        "signature": "ExportDocumentUserText",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Set to True to write document user text on Export and Copy/Paste. Set to False to not write document user text (default). https://mcneel.myjetbrains.com/youtrack/issue/RH-63589"
      },
      {
        "signature": "CommandsToIgnoreWhenAutoHidingToolPalettes",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "String list of command names to ignore when closing tool-palette on begin command. https://mcneel.myjetbrains.com/youtrack/issue/RH-65131"
      },
      {
        "signature": "DisplayNonOriginModelBasepointWarning",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Set this to True if you want to be warned about ModelBasepoints that are not set to the origin on open/import. https://mcneel.myjetbrains.com/youtrack/issue/RH-67520"
      },
      {
        "signature": "UseEntireWidthForTopBand",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Use the entire client width for top and bottom dock sites https://mcneel.myjetbrains.com/youtrack/issue/RH-67783"
      },
      {
        "signature": "UseMFCMenuBar",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Experimenting with using a CMFCMenuBar to host main frame menu with a CMFCVisualManager derived class for styling the menu. https://mcneel.myjetbrains.com/youtrack/issue/RH-70314"
      },
      {
        "signature": "IgnoreRUIPlatform",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Will ignore the platforms attribute in RUI files when set. Requires restarting Rhino to take affect. https://mcneel.myjetbrains.com/youtrack/issue/RH-70777"
      },
      {
        "signature": "EnableMcNeelOnlyFeatures",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Enable McNeel only features for a particular user"
      },
      {
        "signature": "UseRhinoColorsForModalDialogs",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Enable to use Eto Appearance page only"
      },
      {
        "signature": "AcadExportSelectUnexportableObjects",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Set to True to select objects that could not be exported to DWG, either becuase the object was invalid or the exporter failed for whatever reason. https://mcneel.myjetbrains.com/youtrack/issue/RH-77693"
      },
      {
        "signature": "AcadExportSortLayers",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Temporary advanced settings for 8.x so no UI is required. Will be removed in 9.x when proper UI us added. https://mcneel.myjetbrains.com/youtrack/issue/RH-78977 https://mcneel.myjetbrains.com/youtrack/issue/RH-28804 https://mcneel.myjetbrains.com/youtrack/issue/RH-48103"
      },
      {
        "signature": "AcadExportWriteEmptyLayers",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "ditto"
      },
      {
        "signature": "AcadImportLinetypeTextAsCurves",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Sets whether we get curves from the shx for linetype text or create actual text"
      },
      {
        "signature": "DisableModelAndPageUnitsDifferDialog",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Advanced settings to re-enable the units helper dialogs. see https://mcneel.myjetbrains.com/youtrack/issue/RH-81439"
      },
      {
        "signature": "DisablePageUnitsNotInchesOrMMDialog",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "ditto"
      },
      {
        "signature": "UseLegacyCurveJoiner",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "6-May-2024 Dale Fugier, https://mcneel.myjetbrains.com/youtrack/issue/RH-81815"
      },
      {
        "signature": "UseLegacyBrepCapper",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "13-Jun-2024 Dale Fugier, https://mcneel.myjetbrains.com/youtrack/issue/RH-82566"
      },
      {
        "signature": "HideFloatingWindowsOnDeactivate",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "19-Sep-2024 Dale Fugier, https://mcneel.myjetbrains.com/youtrack/issue/RH-83845"
      },
      {
        "signature": "RecordAnimationTargetFolder",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "14-Oct-2024 Nathan Letwory, https://mcneel.myjetbrains.com/youtrack/issue/RH-79386"
      },
      {
        "signature": "MRUFileCount",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Set number of max files to display in the MRU list Note that anything above 9 cannot be accessed with an accelator key. https://mcneel.myjetbrains.com/youtrack/issue/RH-78502"
      },
      {
        "signature": "NotesUseSpacesForTabs",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Allow spaces to be used in place of tabs in Notes. https://mcneel.myjetbrains.com/youtrack/issue/RH-95377"
      },
      {
        "signature": "NotesTabWidth",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Sets the number of spaces to use when NotesUseSpacesForTabs is true. https://mcneel.myjetbrains.com/youtrack/issue/RH-95377"
      },
      {
        "signature": "CaptureExceptionStackDumps",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "When true, geometry-error catch sites arm Rh::Diag throw-site capture before their try block and attach the resulting .dmp/.ips to the LogGeometryError report. Default is False because the throw-time minidump write is not free."
      },
      {
        "signature": "PatchUntrimmedNewMethod",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "When true, untrimmed four-sided patches are created with the new method. The new method is still under development."
      }
    ]

  },
  {
    "namespace": "Rhino.Runtime",
    "name": "AssemblyResolver",
    "dataType": "class",
    "summary": "Assembly Resolver for the Rhino App Domain.",
    "constructors": [
      {
        "signature": "AssemblyResolver()",
        "summary": "Initializes a new instance of the AssemblyResolver class"
      }
    ],
    "properties": [
      {
        "signature": "ResolveEventHandler CurrentDomainAssemblyResolve",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Standard resolver function used by Rhino in execution context. This is added to the Current <b>AppDomain.AssemblyResolve</b> .",
        "since": "7.9",
        "property": ["get"]
      },
      {
        "signature": "ResolveEventHandler CurrentDomainReflectionOnlyAssemblyResolve",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Standard resolver function used by Rhino in reflection-only context. This is added to the Current <b>AppDomain.ReflectionOnlyAssemblyResolve</b> .",
        "since": "7.9",
        "property": ["get"]
      }
    ],
    "methods": [
      {
        "signature": "System.Void AddSearchFile(System.String file)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Register another file with the Assembly Resolver. File must be a .NET assembly, so it should probably be a dll, rhp or exe.",
        "since": "5.0",
        "parameters": [
          {
            "name": "file",
            "type": "System.String",
            "summary": "Path of file to include during Assembly Resolver events."
          }
        ]
      },
      {
        "signature": "System.Void AddSearchFolder(System.String folder)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Register a custom folder with the Assembly Resolver. Folders will be searched recursively, so this could potentially be a very expensive operation. If at all possible, you should consider only registering individual files.",
        "since": "5.0",
        "parameters": [
          {
            "name": "folder",
            "type": "System.String",
            "summary": "Path of folder to include during Assembly Resolver events."
          }
        ]
      }
    ]
  },
  {
    "namespace": "Rhino.Runtime",
    "name": "CloudHostUtils",
    "dataType": "class",
    "summary": "Public wrapper exposing the cloud entitlement gate to cross-platform consumers. Resolves the platform service lazily on first use; falls back to a no-op host when no platform implementation is registered.",
    "constructors": [
      {
        "signature": "CloudHostUtils()",
        "summary": "Initializes a new instance of the CloudHostUtils class"
      }
    ],
    "properties": [
      {
        "signature": "string DenyReason",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Human-readable reason the entitlement was actively denied. Null both when entitled AND when the gate doesn't apply to this instance.",
        "property": ["get"]
      },
      {
        "signature": "bool IsEntitled",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "True when the running instance is entitled by its cloud provider. See <b>ICloudHost</b> remarks for tri-state semantics.",
        "property": ["get"]
      },
      {
        "signature": "string Signature",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Signed proof of entitlement returned by the cloud provider (None when not applicable).",
        "property": ["get"]
      }
    ],
    "methods": [
      {
        "signature": "System.Void CheckEntitlement()",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Performs the cloud entitlement check (and on AMI-based Marketplace products, also submits a metering record). Re-callable — each invocation runs the gate independently and the platform implementation makes no claim of idempotency. On EC2 with a Marketplace-attached product code and the right IAM role this calls AWS Marketplace MeterUsage; elsewhere this is a no-op."
      }
    ]
  },
  {
    "namespace": "Rhino.Runtime",
    "name": "CommonObject",
    "dataType": "class",
    "summary": "Base class for .NET classes that wrap C++ unmanaged Rhino classes.",
    "interfaces": ["IDisposable", "ISerializable"],
    "constructors": [
      {
        "signature": "CommonObject()",
        "modifiers": ["protected"],
        "protected": true,
        "virtual": false,
        "summary": "Allows construction from inheriting classes."
      },
      {
        "signature": "CommonObject(SerializationInfo info, StreamingContext context)",
        "modifiers": ["protected"],
        "protected": true,
        "virtual": false,
        "summary": "Protected constructor for internal use.",
        "parameters": [
          {
            "name": "info",
            "type": "System.Runtime.Serialization.SerializationInfo",
            "summary": "Serialization data."
          },
          {
            "name": "context",
            "type": "System.Runtime.Serialization.StreamingContext",
            "summary": "Serialization stream."
          }
        ]
      }
    ],
    "properties": [
      {
        "signature": "bool PerformCorruptionTesting",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Used to test ON_Object* pointers to see if they are a brep or mesh that is corrupt enough to crash Rhino.",
        "since": "6.10",
        "property": ["get", "set"]
      },
      {
        "signature": "bool Disposed",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Indicates if this object has been disposed or the document it originally belonged to has been disposed.",
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "bool HasUserData",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets True if this class has any custom information attached to it through UserData.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "bool IsDocumentControlled",
        "modifiers": ["public", "virtual"],
        "protected": false,
        "virtual": true,
        "summary": "If True this object may not be modified. Any properties or functions that attempt to modify this object when it is set to \"IsReadOnly\" will throw a NotSupportedException.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "bool IsValid",
        "modifiers": ["public", "virtual"],
        "protected": false,
        "virtual": true,
        "summary": "Tests an object to see if it is valid.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "UserDataList UserData",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "List of custom information that is attached to this class.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "ArchivableDictionary UserDictionary",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Dictionary of custom information attached to this class. The dictionary is actually user data provided as an easy to use shareable set of information.",
        "since": "5.0",
        "property": ["get"]
      }
    ],
    "methods": [
      {
        "signature": "System.UInt32 ComputeMemoryEstimate(CommonObject obj)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Computes an estimate of the number of bytes that this object is using in memory.",
        "since": "9.0",
    "remarks": "This is the same as calling GeometryBase.MemoryEstimate, but works for all CommonObject derived classes.",
        "returns": "An estimated memory footprint."
      },
      {
        "signature": "CommonObject FromBase64String(System.Int32 archive3dm, System.Int32 opennurbs, System.String base64Data)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Create a CommonObject instance from a Base64 encoded string. This is typically the values used when passing common objects around as JSON data",
        "since": "7.0"
      },
      {
        "signature": "CommonObject FromJSON(Dictionary<string, string> jsonDictionary)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Create a CommonObject instance from a JSON dictionary",
        "since": "7.0"
      },
      {
        "signature": "CommonObject FromJSON(System.String json)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Create a CommonObject instance from a JSON string",
        "since": "7.5"
      },
      {
        "signature": "System.Void ConstructConstObject(System.Object parentObject, System.Int32 subobjectIndex)",
        "modifiers": ["protected"],
        "protected": true,
        "virtual": false,
        "summary": "Assigns a parent object and a sub-object index to this.",
        "parameters": [
          {
            "name": "parentObject",
            "type": "System.Object",
            "summary": "The parent object."
          },
          {
            "name": "subobjectIndex",
            "type": "System.Int32",
            "summary": "The sub-object index."
          }
        ]
      },
      {
        "signature": "System.Void Dispose()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Actively reclaims unmanaged resources that this instance uses.",
        "since": "5.0"
      },
      {
        "signature": "System.Void Dispose(System.Boolean disposing)",
        "modifiers": ["protected", "virtual"],
        "protected": true,
        "virtual": true,
        "summary": "For derived class implementers.  \nThis method is called with argument True when class user calls Dispose(), while with argument False when     the Garbage Collector invokes the finalizer, or Finalize() method.  \nYou must reclaim all used unmanaged resources in both cases, and can use this chance to call Dispose on disposable fields if the argument is true.  \nAlso, you must call the base virtual method within your overriding method.",
        "parameters": [
          {
            "name": "disposing",
            "type": "System.Boolean",
            "summary": "True if the call comes from the Dispose() method; False if it comes from the Garbage Collector finalizer."
          }
        ]
      },
      {
        "signature": "System.Void EnsurePrivateCopy()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "If you want to keep a copy of this class around by holding onto it in a variable after a command completes, call EnsurePrivateCopy to make sure that this class is not tied to the document. You can call this function as many times as you want.",
        "since": "5.0"
      },
      {
        "signature": "System.Void GetObjectData(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context)",
        "modifiers": ["public", "virtual"],
        "protected": false,
        "virtual": true,
        "summary": "Populates a System.Runtime.Serialization.SerializationInfo with the data needed to serialize the target object.",
        "since": "5.0",
        "parameters": [
          {
            "name": "info",
            "type": "System.Runtime.Serialization.SerializationInfo",
            "summary": "The System.Runtime.Serialization.SerializationInfo to populate with data."
          },
          {
            "name": "context",
            "type": "System.Runtime.Serialization.StreamingContext",
            "summary": "The destination (see System.Runtime.Serialization.StreamingContext) for this serialization."
          }
        ]
      },
      {
        "signature": "System.Boolean IsValidWithLog(out System.String log)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Determines if an object is valid. Also provides a report on errors if this object happens not to be valid.",
        "since": "5.0",
        "parameters": [
          {
            "name": "log",
            "type": "System.String",
            "summary": "A textual log. This out parameter is assigned during this call."
          }
        ],
        "returns": "True if this object is valid; False otherwise."
      },
      {
        "signature": "System.Void NonConstOperation()",
        "modifiers": ["protected", "virtual"],
        "protected": true,
        "virtual": true,
        "summary": "For derived classes implementers.  \nDefines the necessary implementation to free the instance from being constant."
      },
      {
        "signature": "System.Void OnSwitchToNonConst()",
        "modifiers": ["protected", "virtual"],
        "protected": true,
        "virtual": true,
        "summary": "Is called when a non-constant operation first occurs."
      },
      {
        "signature": "System.String ToJSON(Rhino.FileIO.SerializationOptions options)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Create a JSON string representation of this object",
        "since": "7.0"
      }
    ]
  },
  {
    "namespace": "Rhino.Runtime",
    "name": "CorruptGeometryException",
    "dataType": "class",
    "summary": "Thrown when Rhino finds a brep or mesh that will cause a crash if used for calculations.",
    "baseclass": "Exception",
    "properties": [
      {
        "signature": "CommonObject CommonObject",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Corrupt geometry .NET class",
        "since": "6.10",
        "property": ["get", "set"]
      },
      {
        "signature": "IntPtr Pointer",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "pointer to base geometry (ON_Object*)",
        "since": "6.10",
        "property": ["get", "set"]
      }
    ]
  },
  {
    "namespace": "Rhino.Runtime",
    "name": "DocumentCollectedException",
    "dataType": "class",
    "summary": "Represents the error that happen when a class user attempts to execute a modifying operation on an object that has been added to a document.",
    "baseclass": "Exception",
    "constructors": [
      {
        "signature": "DocumentCollectedException()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Initializes a new instance of the document controlled exception class.",
        "since": "5.0"
      },
      {
        "signature": "DocumentCollectedException(string message)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Initializes a new instance of the document collected exception class.",
        "since": "6.0",
        "parameters": [
          {
            "name": "message",
            "type": "System.String",
            "summary": "A more specific message."
          }
        ]
      }
    ]
  },
  {
    "namespace": "Rhino.Runtime",
    "name": "HostUtils",
    "dataType": "class",
    "summary": "Contains static methods to deal with the runtime environment.",
    "constructors": [
      {
        "signature": "HostUtils()",
        "summary": "Initializes a new instance of the HostUtils class"
      }
    ],
    "properties": [
      {
        "signature": "string ComputerSerialNumber",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the serial number of the computer running Rhino.",
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "uint CurrentOSLanguage",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Get the current operating system language.",
        "since": "6.8",
        "property": ["get"]
      },
      {
        "signature": "Guid DeviceId",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "The DeviceId is a unique, stable ID that anonymously identifies the device that Rhino is running on. It is computed based on hardware information that should not change when the OS is upgraded, or if commonly modified hardware are added or removed from the computer. The machine-specific information is hashed using a cryptographic hash to make it anonymous.",
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "string DeviceName",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Name of the computer running Rhino. If the computer is part of a Windows Domain, the computer name has \"@[DOMAIN]\" appended.",
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "bool IsPreRelease",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Returns True when Rhino build is Beta or WIP, False otherwise",
        "since": "7.22",
        "property": ["get"]
      },
      {
        "signature": "string OperatingSystemBuildNumber",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Returns Operating System Build Number \"11763\" | \"7601\" | ... | \"Unknown\"",
        "since": "6.15",
        "property": ["get"]
      },
      {
        "signature": "string OperatingSystemEdition",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Returns Operating System Edition: \"Professional\" | \"ServerDatacenter\" | ... | \"Unknown\"",
        "since": "6.15",
        "property": ["get"]
      },
      {
        "signature": "string OperatingSystemInstallationType",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Returns Operating System Installation Type: \"Client\" | \"Server\" | \"Unknown\"",
        "since": "6.15",
        "property": ["get"]
      },
      {
        "signature": "string OperatingSystemProductName",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Returns Operating System Edition: \"Professional\" | \"ServerDatacenter\" | ... | \"Unknown\"",
        "since": "6.15",
        "property": ["get"]
      },
      {
        "signature": "string OperatingSystemVersion",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Returns Operating System Version \"6.1\" | \"6.3\" | ... | \"Unknown\"",
        "since": "6.15",
        "property": ["get"]
      },
      {
        "signature": "string RhinoAssemblyDirectory",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the Rhino system managed assembly directory.",
        "since": "8.0",
        "property": ["get"]
      },
      {
        "signature": "bool RunningAsRhinoInside",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Indicates whether Rhino is running inside another application. returns False if Rhino.exe is the top-level application. returns True if some other application is the top-level application.",
        "since": "7.0",
        "property": ["get"]
      },
      {
        "signature": "bool RunningInDarkMode",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Returns True if the host operating system is in dark mode and Rhino supports dark mode.",
        "since": "6.19",
        "property": ["get"]
      },
      {
        "signature": "bool RunningInMono",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Tests if this process is currently executing under the Mono runtime.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "bool RunningInNetCore",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Tests if this process is currently executing under the .NET Core runtime.",
        "since": "8.0",
        "property": ["get"]
      },
      {
        "signature": "bool RunningInNetFramework",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Tests if this process is currently executing under the .NET Framework runtime.",
        "since": "8.0",
        "property": ["get"]
      },
      {
        "signature": "bool RunningInRhino",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Tests if RhinoCommon is currently executing inside of the Rhino.exe process. There are other cases where RhinoCommon could be running; specifically inside of Visual Studio when something like a windows form is being worked on in the resource editor or running stand-alone when compiled to be used as a version of OpenNURBS.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "bool RunningInWindowsContainer",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Tests if this process is currently executing inside a Windows Container.",
        "since": "7.1",
        "property": ["get"]
      },
      {
        "signature": "bool RunningOniOS",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Tests if this process is currently executing on the iOS platform.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "bool RunningOnLinux",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Tests if this process is currently executing on the Linux platform.",
        "since": "9.0",
        "property": ["get"]
      },
      {
        "signature": "bool RunningOnOSX",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Tests if this process is currently executing on the Mac OSX platform.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "bool RunningOnServer",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Tests if this process is currently executing in a server environment.",
        "since": "7.8",
        "property": ["get"]
      },
      {
        "signature": "bool RunningOnWindows",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Tests if this process is currently executing on the Windows platform.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "bool SendDebugToCommandLine",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets whether debug messages are printed to the command line.",
        "since": "5.0",
        "property": ["get", "set"]
      }
    ],
    "methods": [
      {
        "signature": "System.String AutoInstallPlugInFolder(System.Boolean currentUser)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the auto install plug-in folder for machine or current user.",
        "since": "6.0",
        "parameters": [
          {
            "name": "currentUser",
            "type": "System.Boolean",
            "summary": "True if the query relates to the current user."
          }
        ],
        "returns": "The full path to the revelant auto install plug-in directory."
      },
      {
        "signature": "System.Int32 CallFromCoreRhino(System.String task)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Don't change this function in ANY way unless you chat with Steve first! This function is called by Rhino on initial startup and the signature must be exact",
        "since": "6.0"
      },
      {
        "signature": "System.Boolean CheckForRdk(System.Boolean throwOnFalse, System.Boolean usePreviousResult)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Determines if the RDK is loaded.",
        "since": "5.0",
        "parameters": [
          {
            "name": "throwOnFalse",
            "type": "System.Boolean",
            "summary": "if the RDK is not loaded, then throws a  <b>RdkNotLoadedException</b> ."
          },
          {
            "name": "usePreviousResult",
            "type": "System.Boolean",
            "summary": "if true, then the last result can be used instaed of performing a full check."
          }
        ],
        "returns": "True if the RDK is loaded; False if the RDK is not loaded. Note that the  <b>RdkNotLoadedException</b> will hinder the retrieval of any return value."
      },
      {
        "signature": "System.Void ClearFpuExceptionStatus()",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Clear FPU exception and busy flags (Intel assembly fnclex)",
        "since": "6.0"
      },
      {
        "signature": "System.Void CreateCommands(PlugIn plugin)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Parses a plugin and create all the commands defined therein.",
        "since": "5.0",
        "parameters": [
          {
            "name": "plugin",
            "type": "PlugIn",
            "summary": "Plugin to harvest for commands."
          }
        ]
      },
      {
        "signature": "System.Int32 CreateCommands(System.IntPtr pPlugIn, System.Reflection.Assembly pluginAssembly)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Parses a plugin and create all the commands defined therein.",
        "since": "5.0",
        "parameters": [
          {
            "name": "pPlugIn",
            "type": "System.IntPtr",
            "summary": "Plugin to harvest for commands."
          },
          {
            "name": "pluginAssembly",
            "type": "System.Reflection.Assembly",
            "summary": "Assembly associated with the plugin."
          }
        ],
        "returns": "The number of newly created commands."
      },
      {
        "signature": "PlugIn CreatePlugIn(System.Type pluginType, System.Boolean printDebugMessages)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Instantiates a plug-in type and registers the associated commands and classes.",
        "since": "5.0",
        "parameters": [
          {
            "name": "pluginType",
            "type": "System.Type",
            "summary": "A plug-in type. This type must derive from <b>PlugIn</b> ."
          },
          {
            "name": "printDebugMessages",
            "type": "System.Boolean",
            "summary": "True if debug messages should be printed."
          }
        ],
        "returns": "A new plug-in instance."
      },
      {
        "signature": "System.String DebugDumpToString(Rhino.Geometry.BezierCurve bezierCurve)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the debug dumps. This is a text description of the geometric contents. DebugDump() is intended for debugging and is not suitable for creating high quality text descriptions of an object.",
        "since": "5.0",
        "parameters": [
          {
            "name": "bezierCurve",
            "type": "Rhino.Geometry.BezierCurve",
            "summary": "curve to evaluate"
          }
        ],
        "returns": "A debug dump text."
      },
      {
        "signature": "System.String DebugDumpToString(Rhino.Geometry.GeometryBase geometry)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the debug dumps. This is a text description of the geometric contents. DebugDump() is intended for debugging and is not suitable for creating high quality text descriptions of an object.",
        "since": "5.0",
        "parameters": [
          {
            "name": "geometry",
            "type": "Rhino.Geometry.GeometryBase",
            "summary": "Some geometry."
          }
        ],
        "returns": "A debug dump text."
      },
      {
        "signature": "System.Void DebugString(System.String format, params System.Object[] args)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Prints a debug message to the Rhino Command Line. The message will only appear if the SendDebugToCommandLine property is set to true.",
        "since": "5.0",
        "parameters": [
          {
            "name": "format",
            "type": "System.String",
            "summary": "Message to format and print."
          },
          {
            "name": "args",
            "type": "System.Object[]",
            "summary": "An Object array containing zero or more objects to format."
          }
        ]
      },
      {
        "signature": "System.Void DebugString(System.String msg)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Prints a debug message to the Rhino Command Line. The message will only appear if the SendDebugToCommandLine property is set to true.",
        "since": "5.0",
        "parameters": [
          {
            "name": "msg",
            "type": "System.String",
            "summary": "Message to print."
          }
        ]
      },
      {
        "signature": "System.String DescribeGeometry(Rhino.Geometry.GeometryBase geometry)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Returns a description that is similar to the one in the _What command, except for not mentioning units and other attribute data. This description is translated in the current Rhino version.",
        "since": "8.0"
      },
      {
        "signature": "System.Void DisplayOleAlerts(System.Boolean display)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Defines if Ole alerts (\"Server busy\") alerts should be visualized.  \nThis function makes no sense on Mono.",
        "since": "5.0",
        "parameters": [
          {
            "name": "display",
            "type": "System.Boolean",
            "summary": "Whether alerts should be visible."
          }
        ]
      },
      {
        "signature": "System.Void ExceptionReport(System.Exception ex)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Informs RhinoCommon of an exception that has been handled but that the developer wants to screen.",
        "since": "5.0",
        "parameters": [
          {
            "name": "ex",
            "type": "System.Exception",
            "summary": "An exception."
          }
        ]
      },
      {
        "signature": "System.Void ExceptionReport(System.String source, System.Exception ex)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Informs RhinoCommon of an exception that has been handled but that the developer wants to screen.",
        "since": "5.0",
        "parameters": [
          {
            "name": "source",
            "type": "System.String",
            "summary": "An exception source text."
          },
          {
            "name": "ex",
            "type": "System.Exception",
            "summary": "An exception."
          }
        ]
      },
      {
        "signature": "System.Boolean ExecuteNamedCallback(System.String name, NamedParametersEventArgs args)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Execute a named callback",
        "since": "7.0"
      },
      {
        "signature": "System.Boolean FileNameEndsWithRhinoBackupExtension(System.String fileName)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Strip file extension from file name and check to see if it is a valid Rhino backup file extension.",
        "since": "6.0",
        "parameters": [
          {
            "name": "fileName",
            "type": "System.String",
            "summary": "File name to check."
          }
        ],
        "returns": "Returns True if the file name has an extension like 3dmbak."
      },
      {
        "signature": "System.Boolean FileNameEndsWithRhinoExtension(System.String fileName)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Strip file extension from file name and check to see if it is a valid Rhino file extension.",
        "since": "6.0",
        "parameters": [
          {
            "name": "fileName",
            "type": "System.String",
            "summary": "File name to check."
          }
        ],
        "returns": "Returns True if the file name has an extension like 3dm."
      },
      {
        "signature": "System.Boolean GetAbsolutePath(System.String relativePath, System.Boolean bRelativePathisFileName, System.String relativeTo, System.Boolean bRelativeToIsFileName, out System.String pathOut)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Call this method to convert a relative path to an absolute path relative to the specified path.",
        "since": "6.0",
        "parameters": [
          {
            "name": "relativePath",
            "type": "System.String",
            "summary": "Relative path to convert to an absolute path"
          },
          {
            "name": "bRelativePathisFileName",
            "type": "System.Boolean",
            "summary": "If True then lpsFrom is treated as a file name otherwise it is treated as a directory name"
          },
          {
            "name": "relativeTo",
            "type": "System.String",
            "summary": "File or folder the path is relative to"
          },
          {
            "name": "bRelativeToIsFileName",
            "type": "System.Boolean",
            "summary": "If True then lpsFrom is treated as a file name otherwise it is treated as a directory name"
          },
          {
            "name": "pathOut",
            "type": "System.String",
            "summary": "Reference to string which will receive the computed absolute path"
          }
        ],
        "returns": "Returns True if parameters are valid and lpsRelativePath is indeed relative to lpsRelativeTo otherwise returns false"
      },
      {
        "signature": "IEnumerable<System.IO.DirectoryInfo> GetActivePlugInVersionFolders()",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Recurses through the auto install plug-in folders and returns the directories containing \"active\" versions of plug-ins.",
        "since": "7.17",
    "remarks": "If the same package is installed in both the user and machine locations, the newest directory wins."
      },
      {
        "signature": "IEnumerable<System.IO.DirectoryInfo> GetActivePlugInVersionFolders(System.Boolean currentUser)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Recurses through the auto install plug-in folders and returns the directories containing \"active\" versions of plug-ins.",
        "since": "6.0",
        "parameters": [
          {
            "name": "currentUser",
            "type": "System.Boolean",
            "summary": "Current user (true) or machine (false)."
          }
        ]
      },
      {
        "signature": "System.String[] GetAssemblySearchPaths()",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Returns list of directory names where additional assemblies (plug-ins, DLLs, Grasshopper components) may be located",
        "since": "5.0"
      },
      {
        "signature": "System.Void GetCurrentProcessInfo(out System.String processName, out System.Version processVersion)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Returns information about the current process. If Rhino is the top level process, processName is \"Rhino\". Otherwise, processName is the name, without extension, of the main module that is executing. For example, \"compute.backend\" or \"Revit\".  processVersion is the System.Version of the running process. It is the FileVersion of the executable.",
        "since": "6.15"
      },
      {
        "signature": "Tuple<string, Type>[] GetCustomComputeEndpoints()",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Used by compute to define custom endpoints",
        "since": "7.0"
      },
      {
        "signature": "T GetPlatformService(System.String assemblyPath, System.String typeFullName)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "For internal use only. Loads an assembly for dependency injection via IPlatformServiceLocator.",
        "since": "6.0",
        "parameters": [
          {
            "name": "assemblyPath",
            "type": "System.String",
            "summary": "The relative path of the assembly, relative to the position of RhinoCommon.dll"
          },
          {
            "name": "typeFullName",
            "type": "System.String",
            "summary": "The full name of the type that is IPlatformServiceLocator. This is optional."
          }
        ],
        "returns": "An instance, or null."
      },
      {
        "signature": "System.Double GetPrinterDPI(System.String printerName, System.Boolean horizontal)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Get the output resolution for a given printer.",
        "since": "8.2",
        "parameters": [
          {
            "name": "printerName",
            "type": "System.String",
            "summary": ""
          },
          {
            "name": "horizontal",
            "type": "System.Boolean",
            "summary": "get the horizontal or vertical resolution"
          }
        ],
        "returns": "Dot per inch resolution for a given printer on success. 0 if an error occurred"
      },
      {
        "signature": "System.Boolean GetPrinterFormMargins(System.String printerName, System.String formName, System.Boolean portrait, out System.Double leftMillimeters, out System.Double topMillimeters, out System.Double rightMillimeters, out System.Double bottomMillimeters)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Get limit margins for a given form (page size) and a given printer. This is the physical limit area that a printer can print on a given page",
        "since": "8.5",
        "returns": "True on success"
      },
      {
        "signature": "System.String[] GetPrinterFormNames(System.String printerName)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Get list of form names available for a given printer",
        "since": "8.0",
        "parameters": [
          {
            "name": "printerName",
            "type": "System.String",
            "summary": "name or printer to query"
          }
        ]
      },
      {
        "signature": "System.Boolean GetPrinterFormSize(System.String printerName, System.String formName, out System.Double widthMillimeters, out System.Double heightMillimeters)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Get the size of a sheet for a given form name / printer combination",
        "since": "8.0",
        "returns": "True on success"
      },
      {
        "signature": "System.String[] GetPrinterNames()",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Get list of printers available on this system",
        "since": "8.0"
      },
      {
        "signature": "System.Reflection.Assembly GetRhinoDotNetAssembly()",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Only works on Windows. Returns None on Mac.",
        "since": "5.0",
        "returns": "An assembly."
      },
      {
        "signature": "System.Int32 GetSystemProcessorCount()",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Get the processor count on this hardware. It supports querying on CPUs with more than 64 processors (Windows).",
        "since": "7.4"
      },
      {
        "signature": "IEnumerable<string> GetSystemReferenceAssemblies()",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the system reference assemblies to use when compiling code dynamically with Roslyn. Includes RhinoCommon, Rhino.UI, and Eto.",
        "since": "8.0",
    "remarks": "Note that this list of assemblies is not guaranteed to be loadable and should only be used when compiling code dynamically.",
        "returns": "An enumeration of paths to each of the rhino system assemblies to be used for compilation"
      },
      {
        "signature": "System.Void InitializeRhinoCommon_RDK()",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Makes sure all static RhinoCommon RDK components are set up correctly. This happens automatically when the RDK is loaded, so you probably won't have to call this method.",
        "since": "6.0",
    "remarks": "Subsequent calls to this method will be ignored."
      },
      {
        "signature": "System.Void InitializeRhinoCommon()",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Makes sure all static RhinoCommon components is set up correctly. This happens automatically when a plug-in is loaded, so you probably won't have to call this method.",
        "since": "5.0",
    "remarks": "Subsequent calls to this method will be ignored."
      },
      {
        "signature": "System.Void InitializeZooClient()",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Initializes the ZooClient and Rhino license manager, this should get called automatically when RhinoCommon is loaded so you probably won't have to call this method.",
        "since": "5.6"
      },
      {
        "signature": "System.Void InPlaceConstCast(Rhino.Geometry.GeometryBase geometry, System.Boolean makeNonConst)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "DO NOT USE UNLESS YOU ARE CERTAIN ABOUT THE IMPLICATIONS.  \nThis is an expert user function which should not be needed in most     cases. This function is similar to a const_cast in C++ to allow an object     to be made temporarily modifiable without causing RhinoCommon to convert     the class from const to non-const by creating a duplicate.  \nYou must call this function with a True parameter, make your     modifications, and then restore the const flag by calling this function     again with a False parameter. If you have any questions, please     contact McNeel developer support before using!",
        "since": "5.0",
        "parameters": [
          {
            "name": "geometry",
            "type": "Rhino.Geometry.GeometryBase",
            "summary": "Some geometry."
          },
          {
            "name": "makeNonConst",
            "type": "System.Boolean",
            "summary": "A boolean value."
          }
        ]
      },
      {
        "signature": "System.Boolean IsManagedDll(System.String path)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Inspects a dll to see if it is compiled as native code or as a .NET assembly",
        "since": "6.0"
      },
      {
        "signature": "System.Boolean IsRhinoBackupFileExtension(System.String fileExtension)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Check to see if the file extension is a valid Rhino file extension.",
        "since": "6.0",
        "returns": "Return True if fileExtension is \".3dmbak\", \"3dmbak\", \".3dm.bak\", \"3dm.bak\", \".3dx.bak\" or \"3dx.bak\", ignoring case."
      },
      {
        "signature": "System.Boolean IsRhinoFileExtension(System.String fileExtension)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Check to see if the file extension is a valid Rhino file extension.",
        "since": "6.0",
        "returns": "Returns True if fileExtension is \".3dm\", \"3dm\", \".3dx\" or \"3dx\", ignoring case."
      },
      {
        "signature": "System.Reflection.Assembly LoadAssemblyFrom(System.String path)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Calls Assembly.LoadFrom in .NET 4.8. May call a different routine under .NET Core",
        "since": "8.0"
      },
      {
        "signature": "System.Reflection.Assembly LoadAssemblyFromName(System.Reflection.AssemblyName assemblyName)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Calls Assembly.Load(AssemblyName) in .NET 4.8. May call a different routine under .NET Core",
        "since": "8.32"
      },
      {
        "signature": "System.Reflection.Assembly LoadAssemblyFromStream(System.IO.Stream stream)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Calls Assembly.Load(byte[]) in .NET 4.8. May call a different routine under .NET Core",
        "since": "8.23"
      },
      {
        "signature": "System.Void LogDebugEvent(System.String message)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Logs a debug event. The function will log the filename and line number from where this function is called, in addition to the input message.",
        "since": "8.5",
        "parameters": [
          {
            "name": "message",
            "type": "System.String",
            "summary": "The event message."
          }
        ]
      },
      {
        "signature": "System.Void RecordInitInstanceTime(System.String description)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Used to help record times at startup with the -stopwatch flag to help determine bottlenecks in start up speed",
        "since": "6.0"
      },
      {
        "signature": "System.Void RegisterComputeEndpoint(System.String endpointPath, System.Type t)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Register a class that can participate as a compute endpoint",
        "since": "7.0"
      },
      {
        "signature": "System.Boolean RegisterDynamicCommand(PlugIn plugin, Commands.Command cmd)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Adds a new dynamic command to Rhino.",
        "since": "5.0",
        "parameters": [
          {
            "name": "plugin",
            "type": "PlugIn",
            "summary": "Plugin that owns the command."
          },
          {
            "name": "cmd",
            "type": "Commands.Command",
            "summary": "Command to add."
          }
        ],
        "returns": "True on success, False on failure."
      },
      {
        "signature": "System.Void RegisterNamedCallback(System.String name, EventHandler<NamedParametersEventArgs> callback)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Register a named callback",
        "since": "6.15"
      },
      {
        "signature": "System.Void RegisterStaticIDisposable(System.IDisposable disposable)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Statics do not get disposed of in .NET. If you have a static IDisposable that you want to be disposed during shutdown, add your disposable to this list.",
        "since": "9.0"
      },
      {
        "signature": "System.Void RemoveNamedCallback(System.String name)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Remove a named callback from the dictionary of callbacks",
        "since": "7.18"
      },
      {
        "signature": "System.Void RhinoCommonExceptionHandler(System.String title, System.Object sender, System.Exception ex)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "For internal use only!!! Unhanded exception handler, writes stack trace to RhinoDotNet.txt file",
        "since": "6.0",
        "parameters": [
          {
            "name": "title",
            "type": "System.String",
            "summary": "Exception title to write to text file"
          },
          {
            "name": "sender",
            "type": "System.Object",
            "summary": ""
          },
          {
            "name": "ex",
            "type": "System.Exception",
            "summary": ""
          }
        ]
      },
      {
        "signature": "System.Void SendLogMessageToCloudCallbackProc(LogMessageType msg_type, System.IntPtr pwStringClass, System.IntPtr pwStringDesc, System.IntPtr pwStringMessage)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Informs RhinoCommon of an message that has been handled but that the developer wants to screen.",
        "since": "6.4",
        "parameters": [
          {
            "name": "msg_type",
            "type": "LogMessageType",
            "summary": "The messag type"
          },
          {
            "name": "pwStringClass",
            "type": "System.IntPtr",
            "summary": "The top level message type."
          },
          {
            "name": "pwStringDesc",
            "type": "System.IntPtr",
            "summary": "Finer grained description of the message."
          },
          {
            "name": "pwStringMessage",
            "type": "System.IntPtr",
            "summary": "The message."
          }
        ]
      },
      {
        "signature": "System.Void SetInShutDown()",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Informs the runtime that the application is shutting down.",
        "since": "5.0"
      },
      {
        "signature": "System.Void ShutDownRhinoCommon_RDK()",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Makes sure all static RhinoCommon RDK components are de-initialized so they aren't calling into space when the RDK is unloaded.",
        "since": "6.0",
    "remarks": "Subsequent calls to this method will be ignored."
      },
      {
        "signature": "System.Void UnhandledThreadException(System.Object sender, System.Threading.ThreadExceptionEventArgs e)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Exception handler for exceptions occurring on the UI thread",
        "since": "6.0"
      }
    ]
  },
  {
    "namespace": "Rhino.Runtime",
    "name": "HostUtils.LogMessageType",
    "dataType": "enum",
    "summary": "Represents the type of message that is being sent to the OnSendLogMessageToCloud event",
    "since": "6.4",
    "values": [
      {
        "signature": "unknown = 0",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Unknown message type"
      },
      {
        "signature": "information = 1",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Message is informational only"
      },
      {
        "signature": "warning = 2",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Message is a warning"
      },
      {
        "signature": "error = 3",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Message is an error"
      },
      {
        "signature": "assert = 4",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Message is a debug ASSERT"
      }
    ]

  },
  {
    "namespace": "Rhino.Runtime",
    "name": "ImportOptionsSections",
    "dataType": "enum",
    "summary": "Standard CRhImportOptions sections to import",
    "values": [
      {
        "signature": "AdvancedDisplay = 0",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Alias",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Appearance",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "ChooseOneObject",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "ControlPointContextMenu",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "CursorToolTip",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Display",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "File",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "General",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Grid",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "ModelAid",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Mouse",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "NeverRepeatCommands",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "ObjectContextMenu",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "SearchPath",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "ShortcutKey",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Smarttrack",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "View",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "ViewportContextMenu",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "ToolPaletteSettings",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Tool palette settings for Mac, ignored for Windows"
      },
      {
        "signature": "Count",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Must always be the last item"
      }
    ]

  },
  {
    "namespace": "Rhino.Runtime.InProcess",
    "name": "Interop.HRESULT",
    "dataType": "class"
  },
  {
    "namespace": "Rhino.Runtime.InProcess",
    "name": "Interop.StartupInfo",
    "dataType": "struct"
  },
  {
    "namespace": "Rhino.Runtime.InProcess",
    "name": "RhinoCore",
    "dataType": "class",
    "summary": "Represents an instance of RhinoCore.DLL.",
    "interfaces": ["IDisposable"],
    "constructors": [
      {
        "signature": "RhinoCore()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Initializes a new instance of the <b>RhinoCore</b> class.",
        "since": "7.0",
    "remarks": "This constructor creates a headless instance of Rhino. No Rhino UI will be created at all."
      },
      {
        "signature": "RhinoCore(string[] args, WindowStyle windowStyle, IntPtr hostWnd)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Initializes a new instance of the <b>RhinoCore</b> class.",
        "since": "7.0",
    "remarks": "For args documentation see \"https://developer.rhino3d.com/guides/cpp/running-rhino-from-command-line/\"",
        "parameters": [
          {
            "name": "args",
            "type": "System.String[]",
            "summary": "Rhino command line parameters"
          },
          {
            "name": "windowStyle",
            "type": "WindowStyle",
            "summary": "Rhino main window initial style"
          },
          {
            "name": "hostWnd",
            "type": "System.IntPtr",
            "summary": "Host main window OS native handle"
          }
        ]
      },
      {
        "signature": "RhinoCore(string[] args, WindowStyle windowStyle)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Initializes a new instance of the <b>RhinoCore</b> class.",
        "since": "7.0",
    "remarks": "For args documentation see \"https://developer.rhino3d.com/guides/cpp/running-rhino-from-command-line/\"",
        "parameters": [
          {
            "name": "args",
            "type": "System.String[]",
            "summary": "Rhino command line parameters"
          },
          {
            "name": "windowStyle",
            "type": "WindowStyle",
            "summary": "Rhino main window initial style"
          }
        ]
      },
      {
        "signature": "RhinoCore(string[] args)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Initializes a new instance of the <b>RhinoCore</b> class.",
        "since": "7.0",
    "remarks": "For args documentation see \"https://developer.rhino3d.com/guides/cpp/running-rhino-from-command-line/\"",
        "parameters": [
          {
            "name": "args",
            "type": "System.String[]",
            "summary": "Rhino command line parameters"
          }
        ]
      }
    ],
    "methods": [
      {
        "signature": "System.Void Dispose()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "IDisposable implementation",
        "since": "7.0"
      },
      {
        "signature": "System.Boolean DoEvents()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "If a Rhino owned window is active processes all Windows messages currently in the message queue.",
        "since": "7.0",
        "returns": "Returns True if a Rhino owned window is still active or Idle tasks are pending."
      },
      {
        "signature": "System.Boolean DoIdle()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Processes all Rhino Idle tasks.",
        "since": "7.0",
        "returns": "True if Idle tasks are still pending."
      },
      {
        "signature": "T InvokeInHostContext(Func<T> func)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Invokes function in Host context",
        "since": "7.0",
        "returns": "Returns argument function return value."
      },
      {
        "signature": "System.Void InvokeInHostContext(System.Action action)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Invokes action in Host context",
        "since": "7.0"
      },
      {
        "signature": "System.Void RaiseIdle()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Raises the Idle event.",
        "since": "7.0"
      },
      {
        "signature": "System.Int32 Run()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Runs RhinoApp Message loop",
        "since": "7.0"
      }
    ]
  },
  {
    "namespace": "Rhino.Runtime.InProcess",
    "name": "WindowStyle",
    "dataType": "enum",
    "summary": "Specifies how a new window should appear when Rhino starts.",
    "since": "7.0",
    "values": [
      {
        "signature": "NoWindow = -1",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "The no window style."
      },
      {
        "signature": "Normal = 0",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "The normal, visible window style."
      },
      {
        "signature": "Hidden = 1",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "The hidden window style."
      },
      {
        "signature": "Minimized = 2",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "The minimized window style."
      },
      {
        "signature": "Maximized = 3",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "The maximized window style."
      }
    ]

  },
  {
    "namespace": "Rhino.Runtime",
    "name": "Interop",
    "dataType": "class",
    "summary": "Contains static methods to marshal objects between RhinoCommon and legacy Rhino_DotNet or C++.",
    "constructors": [
      {
        "signature": "Interop()",
        "summary": "Initializes a new instance of the Interop class"
      }
    ],
    "methods": [
      {
        "signature": "Rhino.Input.Custom.CommandLineOption CommandLineOptionFromNativePointer(System.IntPtr ptrCommandLineOption)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Create a command line option for a native pointer. Do not hold onto this class as it does not control the lifetime of the underlying pointer",
        "since": "8.0"
      },
      {
        "signature": "Geometry.GeometryBase CreateFromNativePointer(System.IntPtr pGeometry)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Constructs a RhinoCommon Geometry class from a given ON_Geomety*. The ON_Geometry* must be declared on the heap and its lifetime becomes controlled by RhinoCommon.",
        "since": "5.0",
        "parameters": [
          {
            "name": "pGeometry",
            "type": "System.IntPtr",
            "summary": "ON_Geometry*"
          }
        ],
        "returns": "The appropriate geometry class in RhinoCommon on success."
      },
      {
        "signature": "System.IntPtr FileReadOptionsConstPointer(FileIO.FileReadOptions options)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Returns the underlying const CRhinoFileReadOptions* for a Rhino.FileIO.FileReadOptions object. You should only be interested in using this function if you are writing C++ code.",
        "since": "6.0",
        "parameters": [
          {
            "name": "options",
            "type": "FileIO.FileReadOptions",
            "summary": "A FileReadOptions object."
          }
        ],
        "returns": "A pointer to the Rhino const object."
      },
      {
        "signature": "System.IntPtr FileWriteOptionsConstPointer(FileIO.FileWriteOptions options)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Returns the underlying const CRhinoFileWriteOptions* for a Rhino.FileIO.FileWriteOptions object. You should only be interested in using this function if you are writing C++ code.",
        "since": "6.0",
        "parameters": [
          {
            "name": "options",
            "type": "FileIO.FileWriteOptions",
            "summary": "A FileWriteOptions object."
          }
        ],
        "returns": "A pointer to the Rhino const object."
      },
      {
        "signature": "DocObjects.Font FontFromPointer(System.IntPtr ptrManagedFont)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Create managed Font from native ON_Font*",
        "since": "6.0"
      },
      {
        "signature": "Geometry.Brep FromOnBrep(System.Object source)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Copies a Rhino_DotNet brep to a RhinoCommon brep class.",
        "since": "5.0",
        "parameters": [
          {
            "name": "source",
            "type": "System.Object",
            "summary": "RMA.OpenNURBS.IOnBrep or RMA.OpenNURBS.OnBrep."
          }
        ],
        "returns": "RhinoCommon object on success. This will be an independent copy."
      },
      {
        "signature": "Geometry.Curve FromOnCurve(System.Object source)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Copies a Rhino_DotNet curve to a RhinoCommon curve class.",
        "since": "5.0",
        "parameters": [
          {
            "name": "source",
            "type": "System.Object",
            "summary": "RMA.OpenNURBS.IOnCurve or RMA.OpenNURBS.OnCurve."
          }
        ],
        "returns": "RhinoCommon object on success. This will be an independent copy."
      },
      {
        "signature": "Geometry.Mesh FromOnMesh(System.Object source)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Copies a Rhino_DotNet mesh to a RhinoCommon mesh class.",
        "since": "5.0",
        "parameters": [
          {
            "name": "source",
            "type": "System.Object",
            "summary": "RMA.OpenNURBS.IOnMesh or RMA.OpenNURBS.OnMesh."
          }
        ],
        "returns": "RhinoCommon object on success. This will be an independent copy."
      },
      {
        "signature": "Geometry.Surface FromOnSurface(System.Object source)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Copies a Rhino_DotNet surface to a RhinoCommon Surface class.",
        "since": "5.0",
        "parameters": [
          {
            "name": "source",
            "type": "System.Object",
            "summary": "Any of the following in the RMA.OpenNURBS namespace are acceptable. IOnSurface, OnSurface, IOnPlaneSurface, OnPlaneSurface, IOnClippingPlaneSurface, OnClippingPlaneSurface, IOnNurbsSurface, OnNurbsSurfac, IOnRevSurface, OnRevSurface, IOnSumSurface, OnSumSurface."
          }
        ],
        "returns": "RhinoCommon object on success. This will be an independent copy."
      },
      {
        "signature": "System.IntPtr NativeGeometryConstPointer(Geometry.GeometryBase geometry)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Returns the underlying const ON_Geometry* for a RhinoCommon class. You should only be interested in using this function if you are writing C++ code.",
        "since": "5.0",
        "parameters": [
          {
            "name": "geometry",
            "type": "Geometry.GeometryBase",
            "summary": "A geometry object. This can be None and in such a case <b>IntPtr.Zero</b> is returned."
          }
        ],
        "returns": "A pointer to the const geometry."
      },
      {
        "signature": "System.IntPtr NativeGeometryNonConstPointer(Geometry.GeometryBase geometry)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Returns the underlying non-const ON_Geometry* for a RhinoCommon class. You should only be interested in using this function if you are writing C++ code.",
        "since": "5.0",
        "parameters": [
          {
            "name": "geometry",
            "type": "Geometry.GeometryBase",
            "summary": "A geometry object. This can be None and in such a case <b>IntPtr.Zero</b> is returned."
          }
        ],
        "returns": "A pointer to the non-const geometry."
      },
      {
        "signature": "System.IntPtr NativeNonConstPointer(Display.DisplayPipeline pipeline)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Get CRhinoDisplayPipeline* for a DisplayPipeline instance",
        "since": "6.0"
      },
      {
        "signature": "System.IntPtr NativeNonConstPointer(Display.RhinoViewport viewport)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Get CRhinoViewport* from a RhinoViewport instance",
        "since": "6.0"
      },
      {
        "signature": "System.IntPtr NativeNonConstPointer(Display.ViewCaptureSettings settings)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Get a CRhinoPrintInfo* for a given ViewCaptureSettings class",
        "since": "6.0"
      },
      {
        "signature": "System.IntPtr NativeNonConstPointer(DocObjects.ViewportInfo viewport)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Get ON_Viewport* from a ViewportInfo instance",
        "since": "5.1"
      },
      {
        "signature": "System.IntPtr NativeNonConstPointer(Input.Custom.GetPoint getPoint)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Get CRhinoGetPoint* from a GetPoint instance",
        "since": "6.0"
      },
      {
        "signature": "System.IntPtr NativeRhinoDocPointer(RhinoDoc doc)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the C++ CRhinoDoc* for a given RhinoCommon RhinoDoc class.",
        "since": "5.0",
        "parameters": [
          {
            "name": "doc",
            "type": "RhinoDoc",
            "summary": "A document."
          }
        ],
        "returns": "A pointer value."
      },
      {
        "signature": "System.IntPtr NSFontFromFont(Rhino.DocObjects.Font font, System.Double pointSize)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Get native NSFont* from a Rhino Font. Only works on Mac",
        "since": "6.9",
        "parameters": [
          {
            "name": "font",
            "type": "Rhino.DocObjects.Font",
            "summary": ""
          },
          {
            "name": "pointSize",
            "type": "System.Double",
            "summary": "Point size"
          }
        ],
        "returns": "NSFont* on success. IntPtr.Zero on failure"
      },
      {
        "signature": "System.IntPtr NSFontFromFont(Rhino.DocObjects.Font font)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Get native NSFont* from a Rhino Font. Only works on Mac",
        "since": "6.9",
        "returns": "NSFont* on success. IntPtr.Zero on failure"
      },
      {
        "signature": "System.IntPtr PlugInPointer(PlugIns.PlugIn plugin)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Gets a C++ plug-in pointer for a given RhinoCommon plug-in.  \nThis is a Rhino SDK function.",
        "since": "5.0",
        "parameters": [
          {
            "name": "plugin",
            "type": "PlugIns.PlugIn",
            "summary": "A plug-in."
          }
        ],
        "returns": "A pointer."
      },
      {
        "signature": "System.IntPtr RhinoObjectConstPointer(DocObjects.RhinoObject rhinoObject)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Returns the underlying const CRhinoObject* for a RhinoCommon class. You should only be interested in using this function if you are writing C++ code.",
        "since": "5.0",
        "parameters": [
          {
            "name": "rhinoObject",
            "type": "DocObjects.RhinoObject",
            "summary": "A Rhino object."
          }
        ],
        "returns": "A pointer to the Rhino const object."
      },
      {
        "signature": "DocObjects.RhinoObject RhinoObjectFromPointer(System.IntPtr pRhinoObject)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Constructs a RhinoCommon Rhino object from an unmanaged C++ RhinoObject pointer.",
        "since": "5.0",
        "parameters": [
          {
            "name": "pRhinoObject",
            "type": "System.IntPtr",
            "summary": "The original pointer."
          }
        ],
        "returns": "A new Rhino object, or None if the pointer was invalid or <b>IntPtr.Zero</b> ."
      },
      {
        "signature": "System.Object ToIRhinoViewport(Display.RhinoViewport source)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Convert a Rhino.Display.Viewport to an RMA.Rhino.IRhinoViewport.",
        "since": "5.0",
        "parameters": [
          {
            "name": "source",
            "type": "Display.RhinoViewport",
            "summary": "A RhinoCommon viewport."
          }
        ],
        "returns": "Rhino_DotNet IRhinoViewport object on success. This will be an independent copy."
      },
      {
        "signature": "System.Object ToOnBrep(Geometry.Brep source)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Constructs a Rhino_DotNet OnBrep that is a copy of a given brep.",
        "since": "5.0",
        "parameters": [
          {
            "name": "source",
            "type": "Geometry.Brep",
            "summary": "A source brep."
          }
        ],
        "returns": "Rhino_DotNet object on success. This will be an independent copy."
      },
      {
        "signature": "System.Object ToOnCurve(Geometry.Curve source)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Constructs a Rhino_DotNet OnCurve that is a copy of a given curve.",
        "since": "5.0",
        "parameters": [
          {
            "name": "source",
            "type": "Geometry.Curve",
            "summary": "A RhinoCommon source curve."
          }
        ],
        "returns": "Rhino_DotNet object on success. This will be an independent copy."
      },
      {
        "signature": "System.Object ToOnMesh(Geometry.Mesh source)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Constructs a Rhino_DotNet OnMesh that is a copy of a given mesh.",
        "since": "5.0",
        "parameters": [
          {
            "name": "source",
            "type": "Geometry.Mesh",
            "summary": "A source brep."
          }
        ],
        "returns": "Rhino_DotNet object on success. This will be an independent copy."
      },
      {
        "signature": "System.Object ToOnSurface(Geometry.Surface source)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Constructs a Rhino_DotNet OnSurface that is a copy of a given curve.",
        "since": "5.0",
        "parameters": [
          {
            "name": "source",
            "type": "Geometry.Surface",
            "summary": "A source brep."
          }
        ],
        "returns": "Rhino_DotNet object on success. This will be an independent copy."
      },
      {
        "signature": "System.Object ToOnXform(Geometry.Transform source)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Constructs a Rhino_DotNet OnXform from a given RhinoCommon Transform.",
        "since": "5.0",
        "parameters": [
          {
            "name": "source",
            "type": "Geometry.Transform",
            "summary": "A RhinoCommon source transform."
          }
        ],
        "returns": "Rhino_DotNet object on success. This will be an independent copy."
      },
      {
        "signature": "System.Boolean TryCopyFromOnArc(System.Object source, out Geometry.Arc destination)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Attempts to copy the contents of a RMA.OpenNURBS.OnArc to a Rhino.Geometry.Arc.",
        "since": "5.0",
        "parameters": [
          {
            "name": "source",
            "type": "System.Object",
            "summary": "A source OnArc."
          },
          {
            "name": "destination",
            "type": "Geometry.Arc",
            "summary": "A destination arc."
          }
        ],
        "returns": "True if the operation succeeded; False otherwise."
      },
      {
        "signature": "System.Boolean TryCopyToOnArc(Geometry.Arc source, System.Object destination)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Attempts to copy the contents of a Rhino.Geometry.Arc to a RMA.OpenNURBS.OnArc.",
        "since": "5.0",
        "parameters": [
          {
            "name": "source",
            "type": "Geometry.Arc",
            "summary": "A source arc."
          },
          {
            "name": "destination",
            "type": "System.Object",
            "summary": "A destination OnArc."
          }
        ],
        "returns": "True if the operation succeeded; False otherwise."
      },
      {
        "signature": "Display.ViewCaptureSettings ViewCaptureFromPointer(System.IntPtr ptrViewCapture)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Create a ViewCaptureSettings class from a native const CRhinoPrintInfo* The pointer values are copied",
        "since": "6.0"
      }
    ]
  },
  {
    "namespace": "Rhino.Runtime.InteropWrappers",
    "name": "ClassArrayObjRef",
    "dataType": "class",
    "summary": "Represents a wrapper to an unmanaged \"array\" (list) of CRhinoObjRef instances.  \nWrapper for a C++ ON_ClassArray of CRhinoObjRef",
    "interfaces": ["IDisposable"],
    "constructors": [
      {
        "signature": "ClassArrayObjRef()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Initializes a new <b>ClassArrayObjRef</b> instance.",
        "since": "5.0"
      },
      {
        "signature": "ClassArrayObjRef(IEnumerable<ObjRef> objrefs)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Initializes a new instances from a set of ObjRefs",
        "since": "5.0",
        "parameters": [
          {
            "name": "objrefs",
            "type": "System.Collections.Generic.IEnumerable<Rhino.DocObjects.ObjRef>",
            "summary": "An array, a list or any enumerable set of Rhino object references."
          }
        ]
      },
      {
        "signature": "ClassArrayObjRef(IntPtr ptr, bool deleteOnDispose)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Construct from a pointer",
        "since": "8.0"
      }
    ],
    "properties": [
      {
        "signature": "int Count",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the number of CRhinoObjRef instances in this array.",
        "since": "5.0",
        "property": ["get"]
      }
    ],
    "methods": [
      {
        "signature": "System.Void Add(Rhino.DocObjects.ObjRef objref)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Adds an ObjRef to the list.",
        "since": "5.0",
        "parameters": [
          {
            "name": "objref",
            "type": "Rhino.DocObjects.ObjRef",
            "summary": "An ObjRef to add."
          }
        ]
      },
      {
        "signature": "System.IntPtr ConstPointer()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the constant (immutable) pointer of this array.",
        "since": "5.0",
        "returns": "The constant pointer."
      },
      {
        "signature": "System.Void Dispose()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Actively reclaims unmanaged resources that this instance uses.",
        "since": "5.0"
      },
      {
        "signature": "System.IntPtr NonConstPointer()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the non-constant pointer (for modification) of this array.",
        "since": "5.0",
        "returns": "The non-constant pointer."
      },
      {
        "signature": "Rhino.DocObjects.ObjRef[] ToNonConstArray()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Copies the unmanaged array to a managed counterpart.",
        "since": "5.0",
        "returns": "The managed array."
      }
    ]
  },
  {
    "namespace": "Rhino.Runtime.InteropWrappers",
    "name": "ClassArrayOnObjRef",
    "dataType": "class",
    "summary": "Represents a wrapper to an unmanaged \"array\" (list) of ON_ObjRef instances.  \nWrapper for a C++ ON_ClassArray of ON_ObjRef",
    "interfaces": ["IDisposable"],
    "constructors": [
      {
        "signature": "ClassArrayOnObjRef()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Initializes a new <b>ClassArrayOnObjRef</b> instance.",
        "since": "5.8"
      },
      {
        "signature": "ClassArrayOnObjRef(IEnumerable<ObjRef> objrefs)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Initializes a new instances from a set of ObjRefs",
        "since": "5.8",
        "parameters": [
          {
            "name": "objrefs",
            "type": "System.Collections.Generic.IEnumerable<Rhino.DocObjects.ObjRef>",
            "summary": "An array, a list or any enumerable set of Rhino object references."
          }
        ]
      }
    ],
    "properties": [
      {
        "signature": "int Count",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the number of ObjRef instances in this array.",
        "since": "5.8",
        "property": ["get"]
      }
    ],
    "methods": [
      {
        "signature": "System.Void Add(DocObjects.ObjRef objref)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Adds an ObjRef to the list.",
        "since": "5.8",
        "parameters": [
          {
            "name": "objref",
            "type": "DocObjects.ObjRef",
            "summary": "An ObjRef to add."
          }
        ]
      },
      {
        "signature": "System.IntPtr ConstPointer()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the constant (immutable) pointer of this array.",
        "since": "5.8",
        "returns": "The constant pointer."
      },
      {
        "signature": "System.Void Dispose()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Actively reclaims unmanaged resources that this instance uses.",
        "since": "5.8"
      },
      {
        "signature": "System.IntPtr NonConstPointer()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the non-constant pointer (for modification) of this array.",
        "since": "5.8",
        "returns": "The non-constant pointer."
      },
      {
        "signature": "DocObjects.ObjRef[] ToNonConstArray()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Copies the unmanaged array to a managed counterpart.",
        "since": "5.8",
        "returns": "The managed array."
      },
      {
        "signature": "DocObjects.ObjRef[] ToNonConstArray(RhinoDoc doc)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Copies the unmanaged array to a managed counterpart.",
        "since": "7.6",
        "parameters": [
          {
            "name": "doc",
            "type": "RhinoDoc",
            "summary": "Document containing the array of objects"
          }
        ],
        "returns": "The managed array."
      }
    ]
  },
  {
    "namespace": "Rhino.Runtime.InteropWrappers",
    "name": "ClassArrayString",
    "dataType": "class",
    "summary": "Wrapper for a C++ ON_ClassArray<ON_wString> If you are not writing C++ code then this class is not for you.",
    "interfaces": ["IDisposable"],
    "constructors": [
      {
        "signature": "ClassArrayString()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Initializes a new <b>ClassArrayString</b> instance.",
        "since": "6.0"
      }
    ],
    "properties": [
      {
        "signature": "int Count",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the number of strings in this array.",
        "since": "6.0",
        "property": ["get"]
      }
    ],
    "methods": [
      {
        "signature": "System.Void Add(System.String s)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Adds a string to the list.",
        "since": "6.0",
        "parameters": [
          {
            "name": "s",
            "type": "System.String",
            "summary": "A string to add."
          }
        ]
      },
      {
        "signature": "System.IntPtr ConstPointer()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the constant (immutable) pointer of this array.",
        "since": "6.0",
        "returns": "The constant pointer."
      },
      {
        "signature": "System.Void Dispose()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Actively reclaims unmanaged resources that this instance uses.",
        "since": "6.0"
      },
      {
        "signature": "System.Void Dispose(System.Boolean disposing)",
        "modifiers": ["protected", "virtual"],
        "protected": true,
        "virtual": true
      },
      {
        "signature": "System.IntPtr NonConstPointer()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the non-constant pointer (for modification) of this array.",
        "since": "6.0",
        "returns": "The non-constant pointer."
      },
      {
        "signature": "System.String[] ToArray()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Copies the unmanaged array to a managed counterpart.",
        "since": "6.0",
        "returns": "The managed array."
      }
    ]
  },
  {
    "namespace": "Rhino.Runtime.InteropWrappers",
    "name": "CurveSegment",
    "dataType": "struct",
    "summary": "For internal use only.",
    "properties": [
      {
        "signature": "int Index",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "The index of the curve used by this boundary element.",
        "since": "7.0",
        "property": ["get"]
      },
      {
        "signature": "bool Reversed",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "True if this piece of the curve should be reversed.",
        "since": "7.0",
        "property": ["get"]
      },
      {
        "signature": "Interval SubDomain",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "The sub-domain of the curve used by this boundary element.",
        "since": "7.0",
        "property": ["get"]
      }
    ]
  },
  {
    "namespace": "Rhino.Runtime.InteropWrappers",
    "name": "MeshPointDataStruct",
    "dataType": "struct",
    "summary": "This is only needed when passing values to the Rhino C++ core, ignore for .NET plug-ins.",
    "fields": [
      {
        "signature": "public char m_Triangle",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "This is only needed when passing values to the Rhino C++ core, ignore for .NET plug-ins."
      },
      {
        "signature": "public double m_et",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "This is only needed when passing values to the Rhino C++ core, ignore for .NET plug-ins."
      },
      {
        "signature": "public double m_Px",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "This is only needed when passing values to the Rhino C++ core, ignore for .NET plug-ins."
      },
      {
        "signature": "public double m_Py",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "This is only needed when passing values to the Rhino C++ core, ignore for .NET plug-ins."
      },
      {
        "signature": "public double m_Pz",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "This is only needed when passing values to the Rhino C++ core, ignore for .NET plug-ins."
      },
      {
        "signature": "public double m_t0",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "This is only needed when passing values to the Rhino C++ core, ignore for .NET plug-ins."
      },
      {
        "signature": "public double m_t1",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "This is only needed when passing values to the Rhino C++ core, ignore for .NET plug-ins."
      },
      {
        "signature": "public double m_t2",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "This is only needed when passing values to the Rhino C++ core, ignore for .NET plug-ins."
      },
      {
        "signature": "public double m_t3",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "This is only needed when passing values to the Rhino C++ core, ignore for .NET plug-ins."
      },
      {
        "signature": "public int m_ci_index",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "This is only needed when passing values to the Rhino C++ core, ignore for .NET plug-ins."
      },
      {
        "signature": "public int m_edge_index",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "This is only needed when passing values to the Rhino C++ core, ignore for .NET plug-ins."
      },
      {
        "signature": "public int m_face_index",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "This is only needed when passing values to the Rhino C++ core, ignore for .NET plug-ins."
      },
      {
        "signature": "public uint m_ci_type",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "This is only needed when passing values to the Rhino C++ core, ignore for .NET plug-ins."
      }
    ]

  },
  {
    "namespace": "Rhino.Runtime.InteropWrappers",
    "name": "RhDisplayPoint",
    "dataType": "struct",
    "constructors": [
      {
        "signature": "RhDisplayPoint(Point3d location)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "8.0"
      }
    ],
    "fields": [
      {
        "signature": "public float m__padding1",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "public float m__padding2",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "public float m_diameterPixels",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "public float m_innerDiameterPixels",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "public float m_rotationRadians",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "public float m_strokeWidthPixels",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "public int m_fillColor",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "public int m_strokeColor",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "public int m_style",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "public Rhino.Geometry.Point3f m_vertex",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false
      }
    ]

  },
  {
    "namespace": "Rhino.Runtime.InteropWrappers",
    "name": "SimpleArray2dex",
    "dataType": "class",
    "summary": "Wrapper for ON_SimpleArray<ON_2dex>. If you are not writing C++ code then this class is not for you.",
    "interfaces": ["IDisposable"],
    "constructors": [
      {
        "signature": "SimpleArray2dex()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Initializes a new <b>SimpleArray2dex</b> class.",
        "since": "6.0"
      },
      {
        "signature": "SimpleArray2dex(IEnumerable<IndexPair> values)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Initializes a new <b>SimpleArray2dex</b> class",
        "since": "6.0",
        "parameters": [
          {
            "name": "values",
            "type": "IEnumerable<IndexPair>",
            "summary": "initial set of integer pairs to add to the array"
          }
        ]
      }
    ],
    "properties": [
      {
        "signature": "int Count",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the amount of elements in this array.",
        "since": "6.0",
        "property": ["get"]
      }
    ],
    "methods": [
      {
        "signature": "System.IntPtr ConstPointer()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the constant (immutable) pointer of this array.",
        "since": "6.0",
        "returns": "The constant pointer."
      },
      {
        "signature": "System.Void Dispose()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Actively reclaims unmanaged resources that this instance uses.",
        "since": "6.0"
      },
      {
        "signature": "System.IntPtr NonConstPointer()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the non-constant pointer (for modification) of this array.",
        "since": "6.0",
        "returns": "The non-constant pointer."
      },
      {
        "signature": "IndexPair[] ToArray()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns the managed counterpart of the unmanaged array.",
        "since": "6.0",
        "returns": "The managed array."
      }
    ]
  },
  {
    "namespace": "Rhino.Runtime.InteropWrappers",
    "name": "SimpleArrayArrayPoint3d",
    "dataType": "class",
    "summary": "Wrapper for ON_SimpleArray<ON_PolyLine*>, ON_SimpleArray<ON_3dPointArray*> If you are not writing C++ code then this class is not for you.",
    "interfaces": ["IDisposable"],
    "constructors": [
      {
        "signature": "SimpleArrayArrayPoint3d()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Initializes a new empty <b>SimpleArrayArrayPoint3d</b> instance.",
        "since": "7.0"
      }
    ],
    "properties": [
      {
        "signature": "int Count",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the amount of polylines in this array.",
        "since": "7.0",
        "property": ["get"]
      },
      {
        "signature": "Point3d this[int index]",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets a point in a polyline."
      }
    ],
    "methods": [
      {
        "signature": "System.IntPtr ConstPointer()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the constant (immutable) pointer of this array.",
        "since": "7.0",
        "returns": "The constant pointer."
      },
      {
        "signature": "System.Void Dispose()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Actively reclaims unmanaged resources that this instance uses.",
        "since": "7.0"
      },
      {
        "signature": "System.Void Dispose(System.Boolean disposing)",
        "modifiers": ["protected", "virtual"],
        "protected": true,
        "virtual": true,
        "summary": "For derived class implementers.  \nThis method is called with argument True when class user calls Dispose(), while with argument False when     the Garbage Collector invokes the finalizer, or Finalize() method.  \nYou must reclaim all used unmanaged resources in both cases, and can use this chance to call Dispose on disposable fields if the argument is true.  \nAlso, you must call the base virtual method within your overriding method.",
        "parameters": [
          {
            "name": "disposing",
            "type": "System.Boolean",
            "summary": "True if the call comes from the Dispose() method; False if it comes from the Garbage Collector finalizer."
          }
        ]
      },
      {
        "signature": "System.IntPtr NonConstPointer()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the non-constant pointer (for modification) of this array.",
        "since": "7.0",
        "returns": "The non-constant pointer."
      },
      {
        "signature": "System.Int32 PointCountAt(System.Int32 index)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the amount of points in a polyline.",
        "since": "7.0"
      },
      {
        "signature": "Polyline PolylineAt(System.Int32 index)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets a polyline at an index.",
        "since": "8.0",
        "parameters": [
          {
            "name": "index",
            "type": "System.Int32",
            "summary": "The index."
          }
        ],
        "returns": "The polyline if successful, None otherwise."
      }
    ]
  },
  {
    "namespace": "Rhino.Runtime.InteropWrappers",
    "name": "SimpleArrayBinaryArchiveReader",
    "dataType": "class",
    "summary": "Wrapper for ON_SimpleArray<ON_BinaryArchive>. If you are not writing C++ code then this class is not for you.",
    "interfaces": ["IDisposable"],
    "constructors": [
      {
        "signature": "SimpleArrayBinaryArchiveReader()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Initializes a new <b>SimpleArrayBinaryArchiveReader</b> class.",
        "since": "6.0"
      },
      {
        "signature": "SimpleArrayBinaryArchiveReader(IntPtr p)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Initializes a new <b>SimpleArrayBinaryArchiveReader</b> class.",
        "since": "6.0"
      }
    ],
    "properties": [
      {
        "signature": "int Count",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the amount of elements in this array.",
        "since": "6.0",
        "property": ["get"]
      }
    ],
    "methods": [
      {
        "signature": "System.Void Add(BinaryArchiveReader reader)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Adds a new <b>BinaryArchiveReader</b> at the end of this array.",
        "since": "6.0"
      },
      {
        "signature": "System.IntPtr ConstPointer()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the constant (immutable) pointer of this array.",
        "since": "6.0",
        "returns": "The constant pointer."
      },
      {
        "signature": "System.Void Dispose()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Actively reclaims unmanaged resources that this instance uses.",
        "since": "6.0"
      },
      {
        "signature": "BinaryArchiveReader Get(System.Int32 index)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Get the BinaryArchiveReader at index.",
        "since": "6.0",
        "returns": "The BinaryArchiveReader at the specified index."
      },
      {
        "signature": "System.IntPtr NonConstPointer()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the non-constant pointer (for modification) of this array.",
        "since": "6.0",
        "returns": "The non-constant pointer."
      }
    ]
  },
  {
    "namespace": "Rhino.Runtime.InteropWrappers",
    "name": "SimpleArrayBrepPointer",
    "dataType": "class",
    "summary": "Wrapper for a C++ ON_SimpleArray<ON_Brep*> or ON_SimpleArray<constant ON_Brep*> If you are not writing C++ code then this class is not for you.",
    "interfaces": ["IDisposable"],
    "constructors": [
      {
        "signature": "SimpleArrayBrepPointer()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Initializes a new <b>SimpleArrayBrepPointer</b> instance.",
        "since": "5.0"
      }
    ],
    "properties": [
      {
        "signature": "int Count",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the amount of breps in this array.",
        "since": "5.0",
        "property": ["get"]
      }
    ],
    "methods": [
      {
        "signature": "System.Void Add(Geometry.Brep brep, System.Boolean asConst)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Adds a brep to the list.",
        "since": "5.0",
        "parameters": [
          {
            "name": "brep",
            "type": "Geometry.Brep",
            "summary": "A brep to add."
          },
          {
            "name": "asConst",
            "type": "System.Boolean",
            "summary": "Whether this brep should be treated as non-modifiable."
          }
        ]
      },
      {
        "signature": "System.IntPtr ConstPointer()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the constant (immutable) pointer of this array.",
        "since": "5.0",
        "returns": "The constant pointer."
      },
      {
        "signature": "System.Void Dispose()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Actively reclaims unmanaged resources that this instance uses.",
        "since": "5.0"
      },
      {
        "signature": "System.Void Dispose(System.Boolean disposing)",
        "modifiers": ["protected", "virtual"],
        "protected": true,
        "virtual": true
      },
      {
        "signature": "System.IntPtr NonConstPointer()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the non-constant pointer (for modification) of this array.",
        "since": "5.0",
        "returns": "The non-constant pointer."
      },
      {
        "signature": "Geometry.Brep[] ToNonConstArray()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Copies the unmanaged array to a managed counterpart.",
        "since": "5.0",
        "returns": "The managed array."
      }
    ]
  },
  {
    "namespace": "Rhino.Runtime.InteropWrappers",
    "name": "SimpleArrayByte",
    "dataType": "class",
    "summary": "Wrapper for ON_SimpleArray<unsigned char>. If you are not writing C++ code then this class is not for you.",
    "interfaces": ["IDisposable"],
    "constructors": [
      {
        "signature": "SimpleArrayByte()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Initializes a new <b>SimpleArrayByte</b> class.",
        "since": "7.0"
      },
      {
        "signature": "SimpleArrayByte(IEnumerable<byte> values)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Initializes a new <b>SimpleArrayByte</b> class",
        "since": "7.0",
        "parameters": [
          {
            "name": "values",
            "type": "IEnumerable<byte>",
            "summary": "initial set of integers to add to the array"
          }
        ]
      },
      {
        "signature": "SimpleArrayByte(int initialSize)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Initializes a new <b>SimpleArrayByte</b> class. Initial size of the array - all values are set to zero.",
        "since": "7.0",
        "parameters": [
          {
            "name": "initialSize",
            "type": "System.Int32",
            "summary": "Initial size of the array - all values are set to zero."
          }
        ]
      },
      {
        "signature": "SimpleArrayByte(SimpleArrayByte other)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Initializes a new <b>SimpleArrayByte</b> with the contents of another SimpleArrayByte.",
        "since": "7.0"
      }
    ],
    "properties": [
      {
        "signature": "int Count",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the amount of elements in this array.",
        "since": "7.0",
        "property": ["get"]
      }
    ],
    "methods": [
      {
        "signature": "System.IntPtr Array()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Return the raw data.",
        "since": "7.0"
      },
      {
        "signature": "System.IntPtr ConstPointer()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the constant (immutable) pointer of this array.",
        "since": "7.0",
        "returns": "The constant pointer."
      },
      {
        "signature": "System.Void CopyTo(SimpleArrayByte other)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Copies the contents of a <b>SimpleArrayByte</b> into another SimpleArrayByte.",
        "since": "7.0"
      },
      {
        "signature": "System.Void Dispose()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Actively reclaims unmanaged resources that this instance uses.",
        "since": "7.0"
      },
      {
        "signature": "System.IntPtr NonConstPointer()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the non-constant pointer (for modification) of this array.",
        "since": "7.0",
        "returns": "The non-constant pointer."
      },
      {
        "signature": "System.Byte[] ToArray()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns the managed counterpart of the unmanaged array.",
        "since": "7.0",
        "returns": "The managed array."
      }
    ]
  },
  {
    "namespace": "Rhino.Runtime.InteropWrappers",
    "name": "SimpleArrayClippingPlaneObjectPointer",
    "dataType": "class",
    "summary": "ON_SimpleArray of CRhinoClippingPlaneObject*",
    "interfaces": ["IDisposable"],
    "constructors": [
      {
        "signature": "SimpleArrayClippingPlaneObjectPointer()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Initializes a new <b>SimpleArrayClippingPlaneObjectPointer</b> instance.",
        "since": "6.7"
      }
    ],
    "properties": [
      {
        "signature": "int Count",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the amount of clipping planes in this array.",
        "since": "6.7",
        "property": ["get"]
      }
    ],
    "methods": [
      {
        "signature": "System.Void Add(DocObjects.ClippingPlaneObject clippingplane, System.Boolean asConst)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Adds a clipping plane to the list.",
        "since": "6.7",
        "parameters": [
          {
            "name": "clippingplane",
            "type": "DocObjects.ClippingPlaneObject",
            "summary": "A clipping plane to add."
          },
          {
            "name": "asConst",
            "type": "System.Boolean",
            "summary": "Whether this clipping plane should be treated as non-modifiable."
          }
        ]
      },
      {
        "signature": "System.IntPtr ConstPointer()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the constant (immutable) pointer of this array.",
        "since": "6.7",
        "returns": "The constant pointer."
      },
      {
        "signature": "System.Void Dispose()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Actively reclaims unmanaged resources that this instance uses.",
        "since": "6.7"
      },
      {
        "signature": "System.Void Dispose(System.Boolean disposing)",
        "modifiers": ["protected", "virtual"],
        "protected": true,
        "virtual": true
      },
      {
        "signature": "System.IntPtr NonConstPointer()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the non-constant pointer (for modification) of this array.",
        "since": "6.7",
        "returns": "The non-constant pointer."
      }
    ]
  },
  {
    "namespace": "Rhino.Runtime.InteropWrappers",
    "name": "SimpleArrayCurvePointer",
    "dataType": "class",
    "summary": "Wrapper for a C++ ON_SimpleArray of ON_Curve* or constant ON_Curve*.  If you are not writing C++ code, then you can ignore this class.",
    "interfaces": ["IDisposable"],
    "constructors": [
      {
        "signature": "SimpleArrayCurvePointer()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Initializes a new <b>SimpleArrayCurvePointer</b> instance.",
        "since": "5.0"
      },
      {
        "signature": "SimpleArrayCurvePointer(IEnumerable<Curve> curves)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Initializes a new <b>SimpleArrayCurvePointer</b> instance, from a set of input curves.",
        "since": "5.0",
        "parameters": [
          {
            "name": "curves",
            "type": "System.Collections.Generic.IEnumerable<Curve>",
            "summary": "A list, an array or any collection of curves that implements the enumerable interface."
          }
        ]
      }
    ],
    "methods": [
      {
        "signature": "System.IntPtr ConstPointer()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the constant (immutable) pointer of this array.",
        "since": "5.0",
        "returns": "The constant pointer."
      },
      {
        "signature": "System.Void Dispose()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Actively reclaims unmanaged resources that this instance uses.",
        "since": "5.0"
      },
      {
        "signature": "System.Void Dispose(System.Boolean disposing)",
        "modifiers": ["protected", "virtual"],
        "protected": true,
        "virtual": true,
        "summary": "For derived class implementers.  \nThis method is called with argument True when class user calls Dispose(), while with argument False when     the Garbage Collector invokes the finalizer, or Finalize() method.  \nYou must reclaim all used unmanaged resources in both cases, and can use this chance to call Dispose on disposable fields if the argument is true.  \nAlso, you must call the base virtual method within your overriding method.",
        "parameters": [
          {
            "name": "disposing",
            "type": "System.Boolean",
            "summary": "True if the call comes from the Dispose() method; False if it comes from the Garbage Collector finalizer."
          }
        ]
      },
      {
        "signature": "System.IntPtr NonConstPointer()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the non-constant pointer (for modification) of this array.",
        "since": "5.0",
        "returns": "The non-constant pointer."
      },
      {
        "signature": "Curve[] ToNonConstArray()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Copies the unmanaged array to a managed counterpart.",
        "since": "5.0",
        "returns": "The managed array."
      }
    ]
  },
  {
    "namespace": "Rhino.Runtime.InteropWrappers",
    "name": "SimpleArrayDouble",
    "dataType": "class",
    "summary": "Wrapper for ON_SimpleArray<double>. If you are not writing C++ code, then this class is not for you.",
    "interfaces": ["IDisposable"],
    "constructors": [
      {
        "signature": "SimpleArrayDouble()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Initializes a new <b>SimpleArrayDouble</b> instance.",
        "since": "5.0"
      },
      {
        "signature": "SimpleArrayDouble(IEnumerable<double> items)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Initializes a new <b>SimpleArrayDouble</b> instance, with items.",
        "since": "5.0"
      }
    ],
    "properties": [
      {
        "signature": "int Count",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the amount of elements in this array.",
        "since": "5.0",
        "property": ["get"]
      }
    ],
    "methods": [
      {
        "signature": "System.IntPtr ConstPointer()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the constant (immutable) pointer of this array.",
        "since": "5.0",
        "returns": "The constant pointer."
      },
      {
        "signature": "System.Void Dispose()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Actively reclaims unmanaged resources that this instance uses.",
        "since": "5.0"
      },
      {
        "signature": "System.IntPtr NonConstPointer()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the non-constant pointer (for modification) of this array.",
        "since": "5.0",
        "returns": "The non-constant pointer."
      },
      {
        "signature": "System.Double[] ToArray()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns the managed counterpart of the unmanaged array.",
        "since": "5.0",
        "returns": "The managed array."
      }
    ]
  },
  {
    "namespace": "Rhino.Runtime.InteropWrappers",
    "name": "SimpleArrayExtrusionPointer",
    "dataType": "class",
    "summary": "Wrapper for a C++ ON_SimpleArray<ON_Extrusion*> or ON_SimpleArray<constant ON_Extrusion*> If you are not writing C++ code then this class is not for you.",
    "interfaces": ["IDisposable"],
    "constructors": [
      {
        "signature": "SimpleArrayExtrusionPointer()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Initializes a new <b>SimpleArrayExtrusionPointer</b> instance.",
        "since": "6.0"
      }
    ],
    "properties": [
      {
        "signature": "int Count",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the amount of Extrusions in this array.",
        "since": "6.0",
        "property": ["get"]
      }
    ],
    "methods": [
      {
        "signature": "System.Void Add(Geometry.Extrusion extrusion, System.Boolean asConst)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Adds a extrusion to the list.",
        "since": "6.0",
        "parameters": [
          {
            "name": "extrusion",
            "type": "Geometry.Extrusion",
            "summary": "A extrusion to add."
          },
          {
            "name": "asConst",
            "type": "System.Boolean",
            "summary": "Whether this extrusion should be treated as non-modifiable."
          }
        ]
      },
      {
        "signature": "System.IntPtr ConstPointer()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the constant (immutable) pointer of this array.",
        "since": "6.0",
        "returns": "The constant pointer."
      },
      {
        "signature": "System.Void Dispose()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Actively reclaims unmanaged resources that this instance uses.",
        "since": "6.0"
      },
      {
        "signature": "System.Void Dispose(System.Boolean disposing)",
        "modifiers": ["protected", "virtual"],
        "protected": true,
        "virtual": true
      },
      {
        "signature": "System.IntPtr NonConstPointer()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the non-constant pointer (for modification) of this array.",
        "since": "6.0",
        "returns": "The non-constant pointer."
      },
      {
        "signature": "Geometry.Extrusion[] ToNonConstArray()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Copies the unmanaged array to a managed counterpart.",
        "since": "6.0",
        "returns": "The managed array."
      }
    ]
  },
  {
    "namespace": "Rhino.Runtime.InteropWrappers",
    "name": "SimpleArrayFloat",
    "dataType": "class",
    "summary": "Wrapper for ON_SimpleArray<float>. If you are not writing C++ code then this class is not for you.",
    "interfaces": ["IDisposable"],
    "constructors": [
      {
        "signature": "SimpleArrayFloat()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Initializes a new <b>SimpleArrayFloat</b> class.",
        "since": "7.0"
      },
      {
        "signature": "SimpleArrayFloat(IEnumerable<float> values)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Initializes a new <b>SimpleArrayFloat</b> class",
        "since": "7.0",
        "parameters": [
          {
            "name": "values",
            "type": "IEnumerable<float>",
            "summary": "initial set of integers to add to the array"
          }
        ]
      },
      {
        "signature": "SimpleArrayFloat(int initialSize)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Initializes a new <b>SimpleArrayFloat</b> class. Initial size of the array - all values are set to zero.",
        "since": "7.0",
        "parameters": [
          {
            "name": "initialSize",
            "type": "System.Int32",
            "summary": "Initial size of the array - all values are set to zero."
          }
        ]
      },
      {
        "signature": "SimpleArrayFloat(SimpleArrayFloat other)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Initializes a new <b>SimpleArrayFloat</b> with the contents of another SimpleArrayFloat.",
        "since": "7.0"
      }
    ],
    "properties": [
      {
        "signature": "int Count",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the amount of elements in this array.",
        "since": "7.0",
        "property": ["get"]
      }
    ],
    "methods": [
      {
        "signature": "System.IntPtr Array()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Return the raw data.",
        "since": "7.0"
      },
      {
        "signature": "System.IntPtr ConstPointer()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the constant (immutable) pointer of this array.",
        "since": "7.0",
        "returns": "The constant pointer."
      },
      {
        "signature": "System.Void CopyTo(SimpleArrayFloat other)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Copies the contents of a <b>SimpleArrayFloat</b> into another SimpleArrayFloat.",
        "since": "7.0"
      },
      {
        "signature": "System.Void Dispose()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Actively reclaims unmanaged resources that this instance uses.",
        "since": "7.0"
      },
      {
        "signature": "System.IntPtr NonConstPointer()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the non-constant pointer (for modification) of this array.",
        "since": "7.0",
        "returns": "The non-constant pointer."
      },
      {
        "signature": "System.Single[] ToArray()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns the managed counterpart of the unmanaged array.",
        "since": "7.0",
        "returns": "The managed array."
      }
    ]
  },
  {
    "namespace": "Rhino.Runtime.InteropWrappers",
    "name": "SimpleArrayGeometryPointer",
    "dataType": "class",
    "summary": "Wrapper for a C++ ON_SimpleArray<ON_Geometry*>* or ON_SimpleArray<constant ON_Geometry*>. If you are not writing C++ code, then this class is not for you.",
    "interfaces": ["IDisposable"],
    "constructors": [
      {
        "signature": "SimpleArrayGeometryPointer()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Initializes a new <b>SimpleArrayGeometryPointer</b> instance.",
        "since": "5.0"
      },
      {
        "signature": "SimpleArrayGeometryPointer(IEnumerable geometry)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Expects all of the items in the IEnumerable to be GeometryBase types",
        "since": "5.0"
      },
      {
        "signature": "SimpleArrayGeometryPointer(IEnumerable<GeometryBase> geometry)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Create an ON_SimpleArray<ON_Geometry*> filled with items in geometry",
        "since": "5.0"
      }
    ],
    "properties": [
      {
        "signature": "int Count",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Get the number of elements in the array",
        "since": "9.0",
        "property": ["get"]
      }
    ],
    "methods": [
      {
        "signature": "System.IntPtr ConstPointer()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the constant (immutable) pointer of this array.",
        "since": "5.0",
        "returns": "The constant pointer."
      },
      {
        "signature": "System.Void Dispose()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Actively reclaims unmanaged resources that this instance uses.",
        "since": "5.0"
      },
      {
        "signature": "System.Void Dispose(System.Boolean disposing)",
        "modifiers": ["protected", "virtual"],
        "protected": true,
        "virtual": true,
        "summary": "For derived class implementers.  \nThis method is called with argument True when class user calls Dispose(), while with argument False when     the Garbage Collector invokes the finalizer, or Finalize() method.  \nYou must reclaim all used unmanaged resources in both cases, and can use this chance to call Dispose on disposable fields if the argument is true.  \nAlso, you must call the base virtual method within your overriding method.",
        "parameters": [
          {
            "name": "disposing",
            "type": "System.Boolean",
            "summary": "True if the call comes from the Dispose() method; False if it comes from the Garbage Collector finalizer."
          }
        ]
      },
      {
        "signature": "System.IntPtr NonConstPointer()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the non-constant pointer (for modification) of this array.",
        "since": "5.0",
        "returns": "The non-constant pointer."
      },
      {
        "signature": "GeometryBase[] ToNonConstArray()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Copies the unmanaged array to a managed counterpart.",
        "since": "5.0",
        "returns": "The managed array."
      }
    ]
  },
  {
    "namespace": "Rhino.Runtime.InteropWrappers",
    "name": "SimpleArrayGuid",
    "dataType": "class",
    "summary": "Wrapper for ON_SimpleArray<ON_UUID>. If you are not writing C++ code then this class is not for you.",
    "interfaces": ["IDisposable"],
    "constructors": [
      {
        "signature": "SimpleArrayGuid()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Initializes a new <b>SimpleArrayGuid</b> class.",
        "since": "5.0"
      },
      {
        "signature": "SimpleArrayGuid(IEnumerable<Guid> values)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Initializes a new <b>SimpleArrayGuid</b> class",
        "since": "7.0",
        "parameters": [
          {
            "name": "values",
            "type": "IEnumerable<Guid>",
            "summary": "initial set of Guids to add to the array"
          }
        ]
      }
    ],
    "properties": [
      {
        "signature": "int Capacity",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "The capacity for the array",
        "since": "8.21",
        "property": ["get", "set"]
      },
      {
        "signature": "int Count",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the amount of elements in this array.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "Guid this[int index]",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Get the Guid at index"
      }
    ],
    "methods": [
      {
        "signature": "System.Void Append(System.Guid uuid)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Appends a new <b>Guid</b> at the end of this array.",
        "since": "6.0"
      },
      {
        "signature": "System.IntPtr ConstPointer()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the constant (immutable) pointer of this array.",
        "since": "5.0",
        "returns": "The constant pointer."
      },
      {
        "signature": "System.Void Dispose()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Actively reclaims unmanaged resources that this instance uses.",
        "since": "5.0"
      },
      {
        "signature": "System.IntPtr NonConstPointer()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the non-constant pointer (for modification) of this array.",
        "since": "5.0",
        "returns": "The non-constant pointer."
      },
      {
        "signature": "System.Guid[] ToArray()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns the managed counterpart of the unmanaged array.",
        "since": "5.0",
        "returns": "The managed array."
      }
    ]
  },
  {
    "namespace": "Rhino.Runtime.InteropWrappers",
    "name": "SimpleArrayGuidPointer",
    "dataType": "class",
    "summary": "Wrapper for ON_SimpleArray<ON_UUID>. If you are not writing C++ code then this class is not for you.",
    "interfaces": ["IDisposable"],
    "constructors": [
      {
        "signature": "SimpleArrayGuidPointer()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Initializes a new <b>SimpleArrayGuidPointer</b> class.",
        "since": "6.0"
      }
    ],
    "properties": [
      {
        "signature": "int Count",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the amount of elements in this array.",
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "Guid this[int index]",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Get the Guid at index"
      }
    ],
    "methods": [
      {
        "signature": "System.IntPtr ConstPointer()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the constant (immutable) pointer of this array.",
        "since": "6.0",
        "returns": "The constant pointer."
      },
      {
        "signature": "System.Void Dispose()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Actively reclaims unmanaged resources that this instance uses.",
        "since": "6.0"
      },
      {
        "signature": "System.IntPtr NonConstPointer()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the non-constant pointer (for modification) of this array.",
        "since": "6.0",
        "returns": "The non-constant pointer."
      },
      {
        "signature": "System.Guid[] ToArray()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns the managed counterpart of the unmanaged array.",
        "since": "6.0",
        "returns": "The managed array."
      }
    ]
  },
  {
    "namespace": "Rhino.Runtime.InteropWrappers",
    "name": "SimpleArrayHatchLinePointer",
    "dataType": "class",
    "summary": "Wrapper for a C++ ON_SimpleArray of ON_HatchLine*. If you are not writing C++ code, then you can ignore this class.",
    "interfaces": ["IDisposable"],
    "since": "8.0",
    "constructors": [
      {
        "signature": "SimpleArrayHatchLinePointer()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Initializes a new <b>SimpleArrayHatchLinePointer</b> instance.",
        "since": "8.0"
      },
      {
        "signature": "SimpleArrayHatchLinePointer(IEnumerable<HatchLine> hatchLines)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Initializes a new <b>SimpleArrayHatchLinePointer</b> instance, from a set of input hatch lines.",
        "since": "8.0",
        "parameters": [
          {
            "name": "hatchLines",
            "type": "System.Collections.Generic.IEnumerable<Rhino.DocObjects.HatchLine>",
            "summary": "A list, an array or any collection of curves that implements the enumerable interface."
          }
        ]
      }
    ],
    "methods": [
      {
        "signature": "System.IntPtr ConstPointer()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the constant (immutable) pointer of this array.",
        "since": "8.0",
        "returns": "The constant pointer."
      },
      {
        "signature": "System.Void Dispose()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Actively reclaims unmanaged resources that this instance uses.",
        "since": "8.0"
      },
      {
        "signature": "System.Void Dispose(System.Boolean disposing)",
        "modifiers": ["protected", "virtual"],
        "protected": true,
        "virtual": true,
        "summary": "For derived class implementers.  \nThis method is called with argument True when class user calls Dispose(), while with argument False when     the Garbage Collector invokes the finalizer, or Finalize() method.  \nYou must reclaim all used unmanaged resources in both cases, and can use this chance to call Dispose on disposable fields if the argument is true.  \nAlso, you must call the base virtual method within your overriding method.",
        "parameters": [
          {
            "name": "disposing",
            "type": "System.Boolean",
            "summary": "True if the call comes from the Dispose() method; False if it comes from the Garbage Collector finalizer."
          }
        ]
      },
      {
        "signature": "System.IntPtr NonConstPointer()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the non-constant pointer (for modification) of this array.",
        "since": "8.0",
        "returns": "The non-constant pointer."
      }
    ]
  },
  {
    "namespace": "Rhino.Runtime.InteropWrappers",
    "name": "SimpleArrayInt",
    "dataType": "class",
    "summary": "Wrapper for ON_SimpleArray<int>. If you are not writing C++ code then this class is not for you.",
    "interfaces": ["IDisposable"],
    "constructors": [
      {
        "signature": "SimpleArrayInt()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Initializes a new <b>SimpleArrayInt</b> class.",
        "since": "5.0"
      },
      {
        "signature": "SimpleArrayInt(IEnumerable<int> values)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Initializes a new <b>SimpleArrayInt</b> class",
        "since": "5.9",
        "parameters": [
          {
            "name": "values",
            "type": "IEnumerable<int>",
            "summary": "initial set of integers to add to the array"
          }
        ]
      }
    ],
    "properties": [
      {
        "signature": "int Count",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the amount of elements in this array.",
        "since": "5.0",
        "property": ["get"]
      }
    ],
    "methods": [
      {
        "signature": "System.IntPtr ConstPointer()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the constant (immutable) pointer of this array.",
        "since": "5.0",
        "returns": "The constant pointer."
      },
      {
        "signature": "System.Void Dispose()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Actively reclaims unmanaged resources that this instance uses.",
        "since": "5.0"
      },
      {
        "signature": "System.IntPtr NonConstPointer()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the non-constant pointer (for modification) of this array.",
        "since": "5.0",
        "returns": "The non-constant pointer."
      },
      {
        "signature": "System.Int32[] ToArray()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns the managed counterpart of the unmanaged array.",
        "since": "5.0",
        "returns": "The managed array."
      }
    ]
  },
  {
    "namespace": "Rhino.Runtime.InteropWrappers",
    "name": "SimpleArrayInterval",
    "dataType": "class",
    "summary": "Wrapper for ON_SimpleArray<ON_Interval>. If you are not writing C++ code then this class is not for you.",
    "interfaces": ["IDisposable"],
    "constructors": [
      {
        "signature": "SimpleArrayInterval()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Initializes a new <b>SimpleArrayInterval</b> class.",
        "since": "5.0"
      },
      {
        "signature": "SimpleArrayInterval(IEnumerable<Interval> intervals)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Create an array of intervals",
        "since": "9.0"
      }
    ],
    "properties": [
      {
        "signature": "int Count",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the amount of elements in this array.",
        "since": "5.0",
        "property": ["get"]
      }
    ],
    "methods": [
      {
        "signature": "System.Void Add(Interval interval)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Adds a new <b>Interval</b> at the end of this array.",
        "since": "6.0"
      },
      {
        "signature": "System.IntPtr ConstPointer()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the constant (immutable) pointer of this array.",
        "since": "5.0",
        "returns": "The constant pointer."
      },
      {
        "signature": "System.Void Dispose()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Actively reclaims unmanaged resources that this instance uses.",
        "since": "5.0"
      },
      {
        "signature": "System.IntPtr NonConstPointer()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the non-constant pointer (for modification) of this array.",
        "since": "5.0",
        "returns": "The non-constant pointer."
      },
      {
        "signature": "Interval[] ToArray()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns the managed counterpart of the unmanaged array.",
        "since": "5.0",
        "returns": "The managed array."
      }
    ]
  },
  {
    "namespace": "Rhino.Runtime.InteropWrappers",
    "name": "SimpleArrayIntPtr",
    "dataType": "class",
    "summary": "Wrapper for ON_SimpleArray<IntPtr>. If you are not writing C++ code then this class is not for you.",
    "interfaces": ["IDisposable"],
    "constructors": [
      {
        "signature": "SimpleArrayIntPtr()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Initializes a new <b>SimpleArrayIntPtr</b> class.",
        "since": "8.0"
      }
    ],
    "properties": [
      {
        "signature": "int Count",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the number of elements in this array.",
        "since": "8.0",
        "property": ["get"]
      }
    ],
    "methods": [
      {
        "signature": "System.IntPtr ConstPointer()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the constant (immutable) pointer of this array.",
        "since": "8.0",
        "returns": "The constant pointer."
      },
      {
        "signature": "System.Void Dispose()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Actively reclaims unmanaged resources that this instance uses.",
        "since": "8.0"
      },
      {
        "signature": "System.IntPtr NonConstPointer()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the non-constant pointer (for modification) of this array.",
        "since": "8.0",
        "returns": "The non-constant pointer."
      },
      {
        "signature": "System.IntPtr[] ToArray()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns the managed counterpart of the unmanaged array.",
        "since": "8.0",
        "returns": "The managed array."
      }
    ]
  },
  {
    "namespace": "Rhino.Runtime.InteropWrappers",
    "name": "SimpleArrayLine",
    "dataType": "class",
    "summary": "Wrapper for ON_SimpleArray<ON_Line>. If you are not writing C++ code then this class is not for you.",
    "interfaces": ["IDisposable"],
    "constructors": [
      {
        "signature": "SimpleArrayLine()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Initializes a new <b>SimpleArrayLine</b> instance.",
        "since": "5.0"
      },
      {
        "signature": "SimpleArrayLine(IEnumerable<Line> lines)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Initializes a new <b>SimpleArrayLine</b> instance from a set of lines",
        "since": "9.0"
      }
    ],
    "properties": [
      {
        "signature": "int Count",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the amount of lines in this array.",
        "since": "5.0",
        "property": ["get"]
      }
    ],
    "methods": [
      {
        "signature": "System.IntPtr ConstPointer()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the constant (immutable) pointer of this array.",
        "since": "5.0",
        "returns": "The constant pointer."
      },
      {
        "signature": "System.Void Dispose()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Actively reclaims unmanaged resources that this instance uses.",
        "since": "5.0"
      },
      {
        "signature": "System.IntPtr NonConstPointer()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the non-constant pointer (for modification) of this array.",
        "since": "5.0",
        "returns": "The non-constant pointer."
      },
      {
        "signature": "Line[] ToArray()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Copies the unmanaged array to a managed counterpart.",
        "since": "5.0",
        "returns": "The managed array."
      }
    ]
  },
  {
    "namespace": "Rhino.Runtime.InteropWrappers",
    "name": "SimpleArrayLinetypePointer",
    "dataType": "class",
    "summary": "Wrapper for a C++ ON_SimpleArray<ON_Linetype*> If you are not writing C++ code then this class is not for you.",
    "interfaces": ["IDisposable"],
    "constructors": [
      {
        "signature": "SimpleArrayLinetypePointer()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Initializes a new <b>SimpleArrayLinetypePointer</b> instance.",
        "since": "6.6"
      }
    ],
    "properties": [
      {
        "signature": "int Count",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the amount of linetypes in this array.",
        "since": "6.6",
        "property": ["get"]
      }
    ],
    "methods": [
      {
        "signature": "System.IntPtr ConstPointer()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the constant (immutable) pointer of this array.",
        "since": "6.6",
        "returns": "The constant pointer."
      },
      {
        "signature": "System.Void Dispose()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Actively reclaims unmanaged resources that this instance uses.",
        "since": "6.6"
      },
      {
        "signature": "System.Void Dispose(System.Boolean disposing)",
        "modifiers": ["protected", "virtual"],
        "protected": true,
        "virtual": true,
        "summary": "Dispose"
      },
      {
        "signature": "System.IntPtr NonConstPointer()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the non-constant pointer (for modification) of this array.",
        "since": "6.6",
        "returns": "The non-constant pointer."
      },
      {
        "signature": "DocObjects.Linetype[] ToNonConstArray()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Copies the unmanaged array to a managed counterpart.",
        "since": "6.6",
        "returns": "The managed array."
      }
    ]
  },
  {
    "namespace": "Rhino.Runtime.InteropWrappers",
    "name": "SimpleArrayMeshFace",
    "dataType": "class",
    "summary": "Wrapper for ON_SimpleArray<ON_MeshFace>. If you are not writing C++ code then this class is not for you.",
    "interfaces": ["IDisposable"],
    "constructors": [
      {
        "signature": "SimpleArrayMeshFace()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Initializes a new <b>SimpleArrayMeshFace</b> instance.",
        "since": "8.0"
      }
    ],
    "properties": [
      {
        "signature": "int Count",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the amount of mesh faces in this array.",
        "since": "8.0",
        "property": ["get"]
      }
    ],
    "methods": [
      {
        "signature": "System.IntPtr ConstPointer()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the constant (immutable) pointer of this array.",
        "since": "8.0",
        "returns": "The constant pointer."
      },
      {
        "signature": "System.Void Dispose()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Actively reclaims unmanaged resources that this instance uses.",
        "since": "8.0"
      },
      {
        "signature": "System.IntPtr NonConstPointer()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the non-constant pointer (for modification) of this array.",
        "since": "8.0",
        "returns": "The non-constant pointer."
      },
      {
        "signature": "MeshFace[] ToArray()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Copies the unmanaged array to a managed counterpart.",
        "since": "8.0",
        "returns": "The managed array."
      }
    ]
  },
  {
    "namespace": "Rhino.Runtime.InteropWrappers",
    "name": "SimpleArrayMeshPointer",
    "dataType": "class",
    "summary": "Represents a wrapper to an unmanaged array of mesh pointers.  \nWrapper for a C++ ON_SimpleArray of ON_Mesh* or constant ON_Mesh*. If you are not   writing C++ code then this class is not for you.",
    "interfaces": ["IDisposable"],
    "constructors": [
      {
        "signature": "SimpleArrayMeshPointer()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Initializes a new <b>SimpleArrayMeshPointer</b> instance.",
        "since": "5.0"
      }
    ],
    "properties": [
      {
        "signature": "int Count",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the amount of meshes in this array.",
        "since": "5.0",
        "property": ["get"]
      }
    ],
    "methods": [
      {
        "signature": "System.Void Add(Geometry.Mesh mesh, System.Boolean asConst)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Adds a mesh to the list.",
        "since": "5.0",
        "parameters": [
          {
            "name": "mesh",
            "type": "Geometry.Mesh",
            "summary": "A mesh to add."
          },
          {
            "name": "asConst",
            "type": "System.Boolean",
            "summary": "Whether this mesh should be treated as non-modifiable."
          }
        ]
      },
      {
        "signature": "System.IntPtr ConstPointer()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the constant (immutable) pointer of this array.",
        "since": "5.0",
        "returns": "The constant pointer."
      },
      {
        "signature": "System.Void Dispose()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Actively reclaims unmanaged resources that this instance uses.",
        "since": "5.0"
      },
      {
        "signature": "System.Void Dispose(System.Boolean disposing)",
        "modifiers": ["protected", "virtual"],
        "protected": true,
        "virtual": true
      },
      {
        "signature": "System.IntPtr NonConstPointer()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the non-constant pointer (for modification) of this array.",
        "since": "5.0",
        "returns": "The non-constant pointer."
      },
      {
        "signature": "Geometry.Mesh[] ToNonConstArray()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Copies the unmanaged array to a managed counterpart.",
        "since": "5.0",
        "returns": "The managed array."
      }
    ]
  },
  {
    "namespace": "Rhino.Runtime.InteropWrappers",
    "name": "SimpleArrayPlane",
    "dataType": "class",
    "summary": "Wrapper for ON_SimpleArray<ON_Plane>. If you are not writing C++ code then this class is not for you.",
    "interfaces": ["IDisposable"],
    "constructors": [
      {
        "signature": "SimpleArrayPlane()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Initializes a new <b>SimpleArrayLine</b> instance.",
        "since": "6.0"
      }
    ],
    "properties": [
      {
        "signature": "int Count",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the amount of lines in this array.",
        "since": "6.0",
        "property": ["get"]
      }
    ],
    "methods": [
      {
        "signature": "System.IntPtr ConstPointer()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the constant (immutable) pointer of this array.",
        "since": "6.0",
        "returns": "The constant pointer."
      },
      {
        "signature": "System.Void Dispose()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Actively reclaims unmanaged resources that this instance uses.",
        "since": "6.0"
      },
      {
        "signature": "System.IntPtr NonConstPointer()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the non-constant pointer (for modification) of this array.",
        "since": "6.0",
        "returns": "The non-constant pointer."
      },
      {
        "signature": "Plane[] ToArray()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Copies the unmanaged array to a managed counterpart.",
        "since": "6.0",
        "returns": "The managed array."
      }
    ]
  },
  {
    "namespace": "Rhino.Runtime.InteropWrappers",
    "name": "SimpleArrayPoint2d",
    "dataType": "class",
    "summary": "ON_SimpleArray<ON_2dPoint> class wrapper.  If you are not writing C++ code then this class is not for you.",
    "interfaces": ["IDisposable"],
    "constructors": [
      {
        "signature": "SimpleArrayPoint2d()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Initializes a new empty <b>SimpleArrayPoint3d</b> instance.",
        "since": "5.6"
      }
    ],
    "properties": [
      {
        "signature": "int Count",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the amount of points in this array.",
        "since": "5.6",
        "property": ["get"]
      }
    ],
    "methods": [
      {
        "signature": "System.IntPtr ConstPointer()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the constant (immutable) pointer of this array.",
        "since": "5.6",
        "returns": "The constant pointer."
      },
      {
        "signature": "System.Void Dispose()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Actively reclaims unmanaged resources that this instance uses.",
        "since": "5.6"
      },
      {
        "signature": "System.Void Dispose(System.Boolean disposing)",
        "modifiers": ["protected", "virtual"],
        "protected": true,
        "virtual": true,
        "summary": "For derived class implementers.  \nThis method is called with argument True when class user calls Dispose(), while with argument False when     the Garbage Collector invokes the finalizer, or Finalize() method.  \nYou must reclaim all used unmanaged resources in both cases, and can use this chance to call Dispose on disposable fields if the argument is true.  \nAlso, you must call the base virtual method within your overriding method.",
        "parameters": [
          {
            "name": "disposing",
            "type": "System.Boolean",
            "summary": "True if the call comes from the Dispose() method; False if it comes from the Garbage Collector finalizer."
          }
        ]
      },
      {
        "signature": "System.IntPtr NonConstPointer()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the non-constant pointer (for modification) of this array.",
        "since": "5.6",
        "returns": "The non-constant pointer."
      },
      {
        "signature": "Point2d[] ToArray()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Copies the unmanaged array to a managed counterpart.",
        "since": "5.6",
        "returns": "The managed array."
      }
    ]
  },
  {
    "namespace": "Rhino.Runtime.InteropWrappers",
    "name": "SimpleArrayPoint3d",
    "dataType": "class",
    "summary": "ON_SimpleArray<ON_3dPoint>, ON_3dPointArray, ON_PolyLine all have the same size This class wraps all of these C++ versions.  If you are not writing C++ code then this class is not for you.",
    "interfaces": ["IDisposable"],
    "constructors": [
      {
        "signature": "SimpleArrayPoint3d()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Initializes a new empty <b>SimpleArrayPoint3d</b> instance.",
        "since": "5.0"
      },
      {
        "signature": "SimpleArrayPoint3d(IEnumerable<Point3d> pts)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Initializes a new <b>SimpleArrayPoint3d</b> instance from a set of points",
        "since": "7.18"
      }
    ],
    "properties": [
      {
        "signature": "int Count",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the amount of points in this array.",
        "since": "5.0",
        "property": ["get"]
      }
    ],
    "methods": [
      {
        "signature": "System.Void Add(Point3d pt)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Adds a point to the list",
        "since": "8.0"
      },
      {
        "signature": "System.IntPtr ConstPointer()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the constant (immutable) pointer of this array.",
        "since": "5.0",
        "returns": "The constant pointer."
      },
      {
        "signature": "System.Void Dispose()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Actively reclaims unmanaged resources that this instance uses.",
        "since": "5.0"
      },
      {
        "signature": "System.Void Dispose(System.Boolean disposing)",
        "modifiers": ["protected", "virtual"],
        "protected": true,
        "virtual": true,
        "summary": "For derived class implementers.  \nThis method is called with argument True when class user calls Dispose(), while with argument False when     the Garbage Collector invokes the finalizer, or Finalize() method.  \nYou must reclaim all used unmanaged resources in both cases, and can use this chance to call Dispose on disposable fields if the argument is true.  \nAlso, you must call the base virtual method within your overriding method.",
        "parameters": [
          {
            "name": "disposing",
            "type": "System.Boolean",
            "summary": "True if the call comes from the Dispose() method; False if it comes from the Garbage Collector finalizer."
          }
        ]
      },
      {
        "signature": "System.IntPtr NonConstPointer()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the non-constant pointer (for modification) of this array.",
        "since": "5.0",
        "returns": "The non-constant pointer."
      },
      {
        "signature": "Point3d[] ToArray()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Copies the unmanaged array to a managed counterpart.",
        "since": "5.0",
        "returns": "The managed array."
      }
    ]
  },
  {
    "namespace": "Rhino.Runtime.InteropWrappers",
    "name": "SimpleArraySubDPointer",
    "dataType": "class",
    "summary": "Wrapper for a C++ ON_SimpleArray<ON_SubD*> or ON_SimpleArray<constant ON_SubD*> If you are not writing C++ code then this class is not for you.",
    "interfaces": ["IDisposable"],
    "constructors": [
      {
        "signature": "SimpleArraySubDPointer()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Initializes a new <b>SimpleArraySubDPointer</b> instance.",
        "since": "7.14"
      }
    ],
    "properties": [
      {
        "signature": "int Count",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the amount of subds in this array.",
        "since": "7.14",
        "property": ["get"]
      }
    ],
    "methods": [
      {
        "signature": "System.Void Add(Geometry.SubD subd, System.Boolean asConst)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Adds a subd to the list.",
        "since": "7.14",
        "parameters": [
          {
            "name": "subd",
            "type": "Geometry.SubD",
            "summary": "A subd to add."
          },
          {
            "name": "asConst",
            "type": "System.Boolean",
            "summary": "Whether this subd should be treated as non-modifiable."
          }
        ]
      },
      {
        "signature": "System.IntPtr ConstPointer()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the constant (immutable) pointer of this array.",
        "since": "7.14",
        "returns": "The constant pointer."
      },
      {
        "signature": "System.Void Dispose()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Actively reclaims unmanaged resources that this instance uses.",
        "since": "7.14"
      },
      {
        "signature": "System.Void Dispose(System.Boolean disposing)",
        "modifiers": ["protected", "virtual"],
        "protected": true,
        "virtual": true
      },
      {
        "signature": "System.IntPtr NonConstPointer()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the non-constant pointer (for modification) of this array.",
        "since": "7.14",
        "returns": "The non-constant pointer."
      },
      {
        "signature": "Geometry.SubD[] ToNonConstArray()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Copies the unmanaged array to a managed counterpart.",
        "since": "7.14",
        "returns": "The managed array."
      }
    ]
  },
  {
    "namespace": "Rhino.Runtime.InteropWrappers",
    "name": "SimpleArraySurfacePointer",
    "dataType": "class",
    "summary": "Wrapper for a C++ ON_SimpleArray of ON_Surface* or constant ON_Surface*.  If you are not writing C++ code then this class is not for you.",
    "interfaces": ["IDisposable"],
    "constructors": [
      {
        "signature": "SimpleArraySurfacePointer()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Initializes a new <b>SimpleArraySurfacePointer</b> instance.",
        "since": "5.0"
      }
    ],
    "methods": [
      {
        "signature": "System.IntPtr ConstPointer()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the constant (immutable) pointer of this array.",
        "since": "5.0",
        "returns": "The constant pointer."
      },
      {
        "signature": "System.Void Dispose()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Actively reclaims unmanaged resources that this instance uses.",
        "since": "5.0"
      },
      {
        "signature": "System.Void Dispose(System.Boolean disposing)",
        "modifiers": ["protected", "virtual"],
        "protected": true,
        "virtual": true,
        "summary": "For derived class implementers.  \nThis method is called with argument True when class user calls Dispose(), while with argument False when     the Garbage Collector invokes the finalizer, or Finalize() method.  \nYou must reclaim all used unmanaged resources in both cases, and can use this chance to call Dispose on disposable fields if the argument is true.  \nAlso, you must call the base virtual method within your overriding method.",
        "parameters": [
          {
            "name": "disposing",
            "type": "System.Boolean",
            "summary": "True if the call comes from the Dispose() method; False if it comes from the Garbage Collector finalizer."
          }
        ]
      },
      {
        "signature": "System.IntPtr NonConstPointer()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the non-constant pointer (for modification) of this array.",
        "since": "5.0",
        "returns": "The non-constant pointer."
      },
      {
        "signature": "Surface[] ToNonConstArray()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Copies the unmanaged array to a managed counterpart. Elements are made non-constant.",
        "since": "5.0",
        "returns": "The managed array."
      }
    ]
  },
  {
    "namespace": "Rhino.Runtime.InteropWrappers",
    "name": "SimpleArrayUint",
    "dataType": "class",
    "summary": "Wrapper for ON_SimpleArray<unsigned int>. If you are not writing C++ code then this class is not for you.",
    "interfaces": ["IDisposable"],
    "constructors": [
      {
        "signature": "SimpleArrayUint()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Initializes a new <b>SimpleArrayInt</b> class.",
        "since": "6.0"
      },
      {
        "signature": "SimpleArrayUint(IEnumerable<uint> values)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Initializes a new <b>SimpleArrayInt</b> class.",
        "since": "6.0",
        "parameters": [
          {
            "name": "values",
            "type": "System.Collections.Generic.IEnumerable<uint>",
            "summary": "A list, an array or any collection of unsigned integers that implements the enumerable interface."
          }
        ]
      }
    ],
    "properties": [
      {
        "signature": "int Count",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the number of elements in this array.",
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "uint UnsignedCount",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the number of elements in this array.",
        "since": "6.0",
        "property": ["get"]
      }
    ],
    "methods": [
      {
        "signature": "System.IntPtr ConstPointer()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the constant (immutable) pointer of this array.",
        "since": "6.0",
        "returns": "The constant pointer."
      },
      {
        "signature": "System.Void Dispose()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Actively reclaims unmanaged resources that this instance uses.",
        "since": "6.0"
      },
      {
        "signature": "System.IntPtr NonConstPointer()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the non-constant pointer (for modification) of this array.",
        "since": "6.0",
        "returns": "The non-constant pointer."
      },
      {
        "signature": "System.UInt32[] ToArray()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns the managed counterpart of the unmanaged array.",
        "since": "6.0",
        "returns": "The managed array."
      }
    ]
  },
  {
    "namespace": "Rhino.Runtime.InteropWrappers",
    "name": "SimpleArrayVector3d",
    "dataType": "class",
    "summary": "ON_SimpleArray<ON_3dVector>, ON_3dVectorArray all have the same size This class wraps all of these C++ versions.  If you are not writing C++ code then this class is not for you.",
    "interfaces": ["IDisposable"],
    "constructors": [
      {
        "signature": "SimpleArrayVector3d()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Initializes a new empty <b>SimpleArrayVector3d</b> instance.",
        "since": "9.0"
      },
      {
        "signature": "SimpleArrayVector3d(IEnumerable<Vector3d> vectors)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Initializes a new <b>SimpleArrayVector3d</b> instance from a set of vectors",
        "since": "9.0"
      }
    ],
    "properties": [
      {
        "signature": "int Count",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the amount of vectors in this array.",
        "since": "9.0",
        "property": ["get"]
      }
    ],
    "methods": [
      {
        "signature": "System.Void Add(Vector3d v)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Adds a vector to the list",
        "since": "9.0"
      },
      {
        "signature": "System.IntPtr ConstPointer()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the constant (immutable) pointer of this array.",
        "since": "9.0",
        "returns": "The constant pointer."
      },
      {
        "signature": "System.Void Dispose()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Actively reclaims unmanaged resources that this instance uses.",
        "since": "9.0"
      },
      {
        "signature": "System.Void Dispose(System.Boolean disposing)",
        "modifiers": ["protected", "virtual"],
        "protected": true,
        "virtual": true,
        "summary": "For derived class implementers.  \nThis method is called with argument True when class user calls Dispose(), while with argument False when     the Garbage Collector invokes the finalizer, or Finalize() method.  \nYou must reclaim all used unmanaged resources in both cases, and can use this chance to call Dispose on disposable fields if the argument is true.  \nAlso, you must call the base virtual method within your overriding method.",
        "parameters": [
          {
            "name": "disposing",
            "type": "System.Boolean",
            "summary": "True if the call comes from the Dispose() method; False if it comes from the Garbage Collector finalizer."
          }
        ]
      },
      {
        "signature": "System.IntPtr NonConstPointer()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the non-constant pointer (for modification) of this array.",
        "since": "9.0",
        "returns": "The non-constant pointer."
      },
      {
        "signature": "Vector3d[] ToArray()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Copies the unmanaged array to a managed counterpart.",
        "since": "9.0",
        "returns": "The managed array."
      }
    ]
  },
  {
    "namespace": "Rhino.Runtime.InteropWrappers",
    "name": "StdVectorByte",
    "dataType": "class",
    "summary": "Wrapper for std::vector<unsigned char>. If you are not writing C++ code then this class is not for you.",
    "interfaces": ["IDisposable"],
    "constructors": [
      {
        "signature": "StdVectorByte()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Initializes a new <b>SimpleArrayByte</b> class.",
        "since": "7.26"
      },
      {
        "signature": "StdVectorByte(IEnumerable<byte> values)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Initializes a new <b>StdVectorByte</b> class",
        "since": "7.26",
        "parameters": [
          {
            "name": "values",
            "type": "IEnumerable<byte>",
            "summary": "initial set of integers to add to the array"
          }
        ]
      },
      {
        "signature": "StdVectorByte(StdVectorByte other)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Initializes a new <b>SimpleArrayByte</b> with the contents of another SimpleArrayByte.",
        "since": "7.26"
      },
      {
        "signature": "StdVectorByte(ulong initialSize)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Initializes a new <b>SimpleArrayByte</b> class. Initial size of the array - all values are set to zero.",
        "parameters": [
          {
            "name": "initialSize",
            "type": "System.UInt64",
            "summary": "Initial size of the array - all values are set to zero."
          }
        ]
      }
    ],
    "properties": [
      {
        "signature": "ulong Count",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the amount of elements in this array.",
        "since": "7.26",
        "property": ["get"]
      }
    ],
    "methods": [
      {
        "signature": "System.IntPtr ConstPointer()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the constant (immutable) pointer of this vector.",
        "since": "7.26",
        "returns": "The constant pointer."
      },
      {
        "signature": "System.Void CopyTo(StdVectorByte other)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Copies the contents of a <b>StdVectorByte</b> into another StdVectorByte.",
        "since": "7.26"
      },
      {
        "signature": "System.Void Dispose()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Actively reclaims unmanaged resources that this instance uses.",
        "since": "7.0"
      },
      {
        "signature": "System.IntPtr Memory()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Return the raw data.",
        "since": "7.26"
      },
      {
        "signature": "System.IntPtr NonConstPointer()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the non-constant pointer (for modification) of this vector.",
        "since": "7.26",
        "returns": "The non-constant pointer."
      },
      {
        "signature": "System.Byte[] ToArray()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns the managed counterpart of the unmanaged array.",
        "since": "7.26",
        "returns": "The managed array."
      }
    ]
  },
  {
    "namespace": "Rhino.Runtime.InteropWrappers",
    "name": "StdVectorFloat",
    "dataType": "class",
    "summary": "Wrapper for ON_SimpleArray<float>. If you are not writing C++ code then this class is not for you.",
    "interfaces": ["IDisposable"],
    "constructors": [
      {
        "signature": "StdVectorFloat()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Initializes a new <b>StdVectorFloat</b> class.",
        "since": "7.26"
      },
      {
        "signature": "StdVectorFloat(IEnumerable<float> values)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Initializes a new <b>SimpleArrayFloat</b> class",
        "since": "7.26",
        "parameters": [
          {
            "name": "values",
            "type": "IEnumerable<float>",
            "summary": "initial set of integers to add to the array"
          }
        ]
      },
      {
        "signature": "StdVectorFloat(StdVectorFloat other)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Initializes a new <b>StdVectorFloat</b> with the contents of another SimpleArrayFloat.",
        "since": "7.26"
      },
      {
        "signature": "StdVectorFloat(ulong initialSize)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Initializes a new <b>StdVectorFloat</b> class. Initial size of the array - all values are set to zero.",
        "parameters": [
          {
            "name": "initialSize",
            "type": "System.UInt64",
            "summary": "Initial size of the array - all values are set to zero."
          }
        ]
      }
    ],
    "properties": [
      {
        "signature": "ulong Count",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the amount of elements in this array.",
        "since": "7.26",
        "property": ["get"]
      }
    ],
    "methods": [
      {
        "signature": "System.IntPtr ConstPointer()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the constant (immutable) pointer of this array.",
        "since": "7.26",
        "returns": "The constant pointer."
      },
      {
        "signature": "System.Void CopyTo(StdVectorFloat other)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Copies the contents of a <b>StdVectorFloat</b> into another SimpleArrayFloat.",
        "since": "7.26"
      },
      {
        "signature": "System.Void Dispose()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Actively reclaims unmanaged resources that this instance uses.",
        "since": "7.26"
      },
      {
        "signature": "System.IntPtr Memory()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Return the raw data.",
        "since": "7.26"
      },
      {
        "signature": "System.IntPtr NonConstPointer()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the non-constant pointer (for modification) of this array.",
        "since": "7.26",
        "returns": "The non-constant pointer."
      },
      {
        "signature": "System.Single[] ToArray()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns the managed counterpart of the unmanaged array.",
        "since": "7.26",
        "returns": "The managed array."
      }
    ]
  },
  {
    "namespace": "Rhino.Runtime.InteropWrappers",
    "name": "StdVectorGuid",
    "dataType": "class",
    "summary": "Wrapper for std::vector<ON_UUID>. If you are not writing C++ code then this class is not for you.",
    "interfaces": ["IDisposable"],
    "constructors": [
      {
        "signature": "StdVectorGuid()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Initializes a new <b>StdVectorGuid</b> class.",
        "since": "5.0"
      },
      {
        "signature": "StdVectorGuid(IEnumerable<Guid> values)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Initializes a new <b>StdVectorGuid</b> class",
        "since": "7.0",
        "parameters": [
          {
            "name": "values",
            "type": "IEnumerable<Guid>",
            "summary": "initial set of Guids to add to the array"
          }
        ]
      }
    ],
    "properties": [
      {
        "signature": "ulong Count",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the amount of elements in this vector.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "Guid this[ulong index]",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Get the Guid at index"
      }
    ],
    "methods": [
      {
        "signature": "System.Void Append(System.Guid uuid)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Appends a new <b>Guid</b> at the end of this vector.",
        "since": "6.0"
      },
      {
        "signature": "System.IntPtr ConstPointer()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the constant (immutable) pointer of this vector.",
        "since": "5.0",
        "returns": "The constant pointer."
      },
      {
        "signature": "System.Void Dispose()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Actively reclaims unmanaged resources that this instance uses.",
        "since": "5.0"
      },
      {
        "signature": "System.IntPtr NonConstPointer()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the non-constant pointer (for modification) of this vector.",
        "since": "5.0",
        "returns": "The non-constant pointer."
      },
      {
        "signature": "System.Guid[] ToArray()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns the managed counterpart of the unmanaged vector.",
        "since": "5.0",
        "returns": "The managed array."
      }
    ]
  },
  {
    "namespace": "Rhino.Runtime.InteropWrappers",
    "name": "StdVectorOfSharedPtrToMesh",
    "dataType": "class",
    "summary": "Represents a wrapper to an unmanaged array of mesh pointers.  \nWrapper for a C++ ON_SimpleArray of ON_Mesh* or constant ON_Mesh*. If you are not   writing C++ code then this class is not for you.",
    "interfaces": ["IDisposable"],
    "constructors": [
      {
        "signature": "StdVectorOfSharedPtrToMesh()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Initializes a new <b>StdVectorOfSharedPtrToMesh</b> instance.",
        "since": "5.0"
      }
    ],
    "properties": [
      {
        "signature": "int Count",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the amount of meshes in this array.",
        "since": "5.0",
        "property": ["get"]
      }
    ],
    "methods": [
      {
        "signature": "System.Void Add(Geometry.Mesh mesh, System.Boolean asConst)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Adds a mesh to the list.",
        "since": "5.0",
        "parameters": [
          {
            "name": "mesh",
            "type": "Geometry.Mesh",
            "summary": "A mesh to add."
          },
          {
            "name": "asConst",
            "type": "System.Boolean",
            "summary": "Whether this mesh should be treated as non-modifiable."
          }
        ]
      },
      {
        "signature": "System.IntPtr ConstPointer()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the constant (immutable) pointer of this array.",
        "since": "5.0",
        "returns": "The constant pointer."
      },
      {
        "signature": "System.Void Dispose()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Actively reclaims unmanaged resources that this instance uses.",
        "since": "5.0"
      },
      {
        "signature": "System.Void Dispose(System.Boolean disposing)",
        "modifiers": ["protected", "virtual"],
        "protected": true,
        "virtual": true
      },
      {
        "signature": "System.IntPtr NonConstPointer()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the non-constant pointer (for modification) of this array.",
        "since": "5.0",
        "returns": "The non-constant pointer."
      },
      {
        "signature": "Geometry.Mesh[] ToNonConstArray()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Copies the unmanaged array to a managed counterpart.",
        "since": "5.0",
        "returns": "The managed array."
      }
    ]
  },
  {
    "namespace": "Rhino.Runtime.InteropWrappers",
    "name": "StringHolder",
    "dataType": "class",
    "summary": "This class is used to pass strings back and forth between managed and unmanaged code.  This should not be needed by plug-ins.  \nIf you are just dealing with an ON_wString*,   use",
    "interfaces": ["IDisposable"],
    "constructors": [
      {
        "signature": "StringHolder()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Constructor",
        "since": "5.8"
      }
    ],
    "methods": [
      {
        "signature": "System.String GetString(System.IntPtr pStringHolder)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Gets managed string from unmanaged ON_wString pointer.",
        "since": "5.8",
        "returns": "Null if pStringHolder has no reference, otherwise, the string. This may be an empty string, if setting an empty string is possible."
      },
      {
        "signature": "System.IntPtr ConstPointer()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "C++ pointer used to access the ON_wString, managed plug-ins should never need this.",
        "since": "5.8"
      },
      {
        "signature": "System.Void Dispose()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "IDispose implementation",
        "since": "5.8"
      },
      {
        "signature": "System.Void Dispose(System.Boolean disposing)",
        "modifiers": ["protected", "virtual"],
        "protected": true,
        "virtual": true,
        "summary": "Called by Dispose and finalizer"
      },
      {
        "signature": "System.IntPtr NonConstPointer()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "C++ pointer used to access the ON_wString, managed plug-ins should never need this.",
        "since": "5.8"
      },
      {
        "signature": "System.String ToString()",
        "modifiers": ["public", "override"],
        "protected": false,
        "virtual": false,
        "summary": "Marshals unmanaged ON_wString to a managed .NET string"
      },
      {
        "signature": "System.String ToStringSafe()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Marshals unmanaged ON_wString to a managed .NET string and never returns null.",
        "since": "8.0"
      }
    ]
  },
  {
    "namespace": "Rhino.Runtime.InteropWrappers",
    "name": "StringWrapper",
    "dataType": "class",
    "summary": "Represents a wrapper to an unmanaged OpenNurbs string.  \nWraps a C++ ON_wString*.",
    "interfaces": ["IDisposable"],
    "constructors": [
      {
        "signature": "StringWrapper()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Initializes a new empty unmanaged string (ON_wString*).",
        "since": "5.0"
      },
      {
        "signature": "StringWrapper(string s)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Initializes a new unmanaged string with an initial value. The string s can be null.",
        "since": "5.0",
        "parameters": [
          {
            "name": "s",
            "type": "System.String",
            "summary": "The initial value, or null."
          }
        ]
      }
    ],
    "properties": [
      {
        "signature": "IntPtr ConstPointer",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the constant pointer (constant ON_wString*).",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "IntPtr NonConstPointer",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the non-constant pointer (ON_wString*).",
        "since": "5.0",
        "property": ["get"]
      }
    ],
    "methods": [
      {
        "signature": "System.String GetStringFromPointer(System.IntPtr pConstON_wString)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Get string from an ON_wString*",
        "since": "5.0"
      },
      {
        "signature": "System.Void SetStringOnPointer(System.IntPtr pON_wString, System.String s)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Set contents of an ON_wString*",
        "since": "5.0"
      },
      {
        "signature": "System.Void Dispose()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Actively reclaims unmanaged resources that this instance uses.",
        "since": "5.0"
      },
      {
        "signature": "System.Void SetString(System.String s)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Set contents of this string.",
        "since": "5.0",
        "parameters": [
          {
            "name": "s",
            "type": "System.String",
            "summary": "The new string."
          }
        ]
      },
      {
        "signature": "System.String ToString()",
        "modifiers": ["public", "override"],
        "protected": false,
        "virtual": false,
        "summary": "Returns the string contents of this wrapper.",
        "returns": "A managed string."
      }
    ]
  },
  {
    "namespace": "Rhino.Runtime",
    "name": "IPlatformServiceLocator",
    "dataType": "interface",
    "summary": "Get platform specific services that are used internally for general cross platform funtions in RhinoCommon. This includes services like localization and GUI components that have concrete implementations in the RhinoWindows or RhinoMac assemblies",
    "methods": [
      {
        "signature": "T GetService()",
        "modifiers": [],
        "protected": true,
        "virtual": false,
        "summary": "Used to get service of a specific type",
        "since": "6.0"
      }
    ]
  },
  {
    "namespace": "Rhino.Runtime",
    "name": "IShrinkWrapService",
    "dataType": "interface",
    "summary": "Internal interface used by ShrinkWrap functions",
    "methods": [
      {
        "signature": "Mesh ShrinkWrap(IEnumerable<GeometryBase> geometryBases, ShrinkWrapParameters parameters, MeshingParameters meshingParameters, System.Threading.CancellationToken cancellationToken)",
        "modifiers": [],
        "protected": true,
        "virtual": false,
        "summary": "Create a mesh from a collection of geometry base objects Null on error or incompatible settings",
        "since": "8.21"
      },
      {
        "signature": "Mesh ShrinkWrap(IEnumerable<GeometryBase> geometryBases, ShrinkWrapParameters parameters, MeshingParameters meshingParameters)",
        "modifiers": [],
        "protected": true,
        "virtual": false,
        "summary": "Create a mesh from a collection of geometry base objects Null on error or incompatible settings",
        "since": "8.3"
      },
      {
        "signature": "Mesh ShrinkWrap(IEnumerable<Mesh> meshes, ShrinkWrapParameters parameters, System.Threading.CancellationToken cancellationToken)",
        "modifiers": [],
        "protected": true,
        "virtual": false,
        "summary": "Create mesh from input meshes. Null on error or incompatible settings",
        "since": "8.21"
      },
      {
        "signature": "Mesh ShrinkWrap(IEnumerable<Mesh> meshes, ShrinkWrapParameters parameters)",
        "modifiers": [],
        "protected": true,
        "virtual": false,
        "summary": "Create mesh from input meshes. Null on error or incompatible settings",
        "since": "8.0"
      },
      {
        "signature": "Mesh ShrinkWrap(Mesh mesh, ShrinkWrapParameters parameters, System.Threading.CancellationToken cancellationToken)",
        "modifiers": [],
        "protected": true,
        "virtual": false,
        "summary": "Create a shrinkwrap from a single mesh Null on error or incompatible settings",
        "since": "8.21"
      },
      {
        "signature": "Mesh ShrinkWrap(Mesh mesh, ShrinkWrapParameters parameters)",
        "modifiers": [],
        "protected": true,
        "virtual": false,
        "summary": "Create a shrinkwrap from a single mesh Null on error or incompatible settings",
        "since": "8.0"
      },
      {
        "signature": "Mesh ShrinkWrap(PointCloud pointCloud, ShrinkWrapParameters parameters, System.Threading.CancellationToken cancellationToken)",
        "modifiers": [],
        "protected": true,
        "virtual": false,
        "summary": "Create mesh from point cloud input. Null on error or incompatible settings",
        "since": "8.21"
      },
      {
        "signature": "Mesh ShrinkWrap(PointCloud pointCloud, ShrinkWrapParameters parameters)",
        "modifiers": [],
        "protected": true,
        "virtual": false,
        "summary": "Create mesh from point cloud input. Null on error or incompatible settings",
        "since": "8.0"
      }
    ]
  },
  {
    "namespace": "Rhino.Runtime",
    "name": "IZooClientUtilities",
    "dataType": "interface",
    "summary": "Interface implemented in ZooClient and added to Rhino via dependency injection",
    "properties": [
      {
        "signature": "Image LoggedInUserAvatar",
        "modifiers": [],
        "protected": true,
        "virtual": false,
        "summary": "Returns the logged in user's avatar picture. Returns a default avatar if the user does not have an avatar or if the avatar could not be fetched.",
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "string LoggedInUserName",
        "modifiers": [],
        "protected": true,
        "virtual": false,
        "summary": "Returns the name of the logged in user, or None if the user is not logged in.",
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "bool UserIsLoggedIn",
        "modifiers": [],
        "protected": true,
        "virtual": false,
        "summary": "Returns True if the user is logged in; else returns false. A logged in user does not guarantee that the auth tokens managed by the CloudZooManager instance are valid.",
        "since": "6.0",
        "property": ["get"]
      }
    ],
    "methods": [
      {
        "signature": "System.Boolean AskUserForLicense(System.Object verify, ZooClientParameters parameters)",
        "modifiers": [],
        "protected": true,
        "virtual": false,
        "since": "6.0"
      },
      {
        "signature": "System.Boolean CheckInLicense(System.Object verify, System.Guid productId)",
        "modifiers": [],
        "protected": true,
        "virtual": false,
        "summary": "Checks in a checked out license to the owning Zoo.",
        "since": "6.0"
      },
      {
        "signature": "System.Boolean CheckOutLicense(System.Object verify, System.Guid productId)",
        "modifiers": [],
        "protected": true,
        "virtual": false,
        "summary": "Checks out a loaned out license from the owning Zoo.",
        "since": "6.0"
      },
      {
        "signature": "System.Boolean ConvertLicense(System.Object verify, System.Guid productId)",
        "modifiers": [],
        "protected": true,
        "virtual": false,
        "summary": "Converts a standalone license to a network license.",
        "since": "6.0"
      },
      {
        "signature": "System.Boolean DeleteLicense(System.Object verify, System.Guid productId)",
        "modifiers": [],
        "protected": true,
        "virtual": false,
        "summary": "31-Mar-2015 Dale Fugier, http://mcneel.myjetbrains.com/youtrack/issue/MR-1725 Deletes a license along with its license file.",
        "since": "6.0"
      },
      {
        "signature": "System.String Echo(System.Object verify, System.String message)",
        "modifiers": [],
        "protected": true,
        "virtual": false,
        "since": "6.0"
      },
      {
        "signature": "System.DateTime GetCurrentTime()",
        "modifiers": [],
        "protected": true,
        "virtual": false,
        "summary": "Gets the current time, trying to access an NTP server before using local time.",
        "since": "6.0"
      },
      {
        "signature": "System.Boolean GetLicense(System.Object verify, ZooClientParameters parameters)",
        "modifiers": [],
        "protected": true,
        "virtual": false,
        "since": "6.0"
      },
      {
        "signature": "LicenseStatus[] GetLicenseStatus(System.Object verify)",
        "modifiers": [],
        "protected": true,
        "virtual": false,
        "summary": "Returns the current status of every license for ui purposes",
        "since": "6.0"
      },
      {
        "signature": "System.Int32 GetLicenseType(System.Object verify, System.Guid productId)",
        "modifiers": [],
        "protected": true,
        "virtual": false,
        "summary": "Returns the type of a specified product license",
        "since": "6.0"
      },
      {
        "signature": "LicenseStatus GetOneLicenseStatus(System.Object verify, System.Guid productId)",
        "modifiers": [],
        "protected": true,
        "virtual": false,
        "summary": "Returns the current status of a license for ui purposes",
        "since": "6.0"
      },
      {
        "signature": "System.Boolean GetRegisteredOwnerInfo(System.Object verify, System.Guid productId, ref System.String registeredOwner, ref System.String registeredOrganization)",
        "modifiers": [],
        "protected": true,
        "virtual": false,
        "summary": "Returns the registered owner and organization of a license 4-Sept-2014 Dale Fugier, http://mcneel.myjetbrains.com/youtrack/issue/RH-28623",
        "since": "6.0"
      },
      {
        "signature": "System.Boolean Initialize(System.Object verify)",
        "modifiers": [],
        "protected": true,
        "virtual": false,
        "since": "6.0"
      },
      {
        "signature": "System.Boolean IsCheckOutEnabled(System.Object verify)",
        "modifiers": [],
        "protected": true,
        "virtual": false,
        "summary": "Returns whether or not license checkout is enabled",
        "since": "6.0"
      },
      {
        "signature": "System.Boolean LicenseOptionsHandler(System.Object verify, ZooClientParameters parameters)",
        "modifiers": [],
        "protected": true,
        "virtual": false,
        "since": "6.0"
      },
      {
        "signature": "System.Boolean LoginToCloudZoo()",
        "modifiers": [],
        "protected": true,
        "virtual": false,
        "summary": "Logs the user in to the cloud zoo. This logs out the current user and voids any existing leases.",
        "since": "6.0"
      },
      {
        "signature": "System.Boolean LogoutOfCloudZoo()",
        "modifiers": [],
        "protected": true,
        "virtual": false,
        "summary": "Logs the user out of the cloud zoo. This logs out the current user and voids any existing leases.",
        "since": "6.0"
      },
      {
        "signature": "System.Boolean ReturnLicense(System.Object verify, System.Guid productId)",
        "modifiers": [],
        "protected": true,
        "virtual": false,
        "since": "6.0"
      },
      {
        "signature": "System.Boolean ReturnLicense(System.Object verify, System.String productPath, System.Guid productId)",
        "modifiers": [],
        "protected": true,
        "virtual": false,
        "since": "6.0"
      },
      {
        "signature": "System.Void ShowBuyLicenseUi(System.Object verify, System.Guid productId)",
        "modifiers": [],
        "protected": true,
        "virtual": false,
        "since": "6.0"
      },
      {
        "signature": "System.Boolean ShowLicenseValidationUi(System.Object verify, System.String cdkey)",
        "modifiers": [],
        "protected": true,
        "virtual": false,
        "summary": "Shows user interface to validate and register a license. Returns True if the license is successfully validated; False otherwise",
        "since": "6.0"
      },
      {
        "signature": "System.Boolean ShowRhinoExpiredMessage(Rhino.Runtime.Mode mode, ref System.Int32 result)",
        "modifiers": [],
        "protected": true,
        "virtual": false,
        "since": "6.0"
      }
    ]
  },
  {
    "namespace": "Rhino.Runtime",
    "name": "LicenseStateChangedEventArgs",
    "dataType": "class",
    "summary": "Passed to LicenseStateChanged event on RhinoApp",
    "baseclass": "EventArgs",
    "constructors": [
      {
        "signature": "LicenseStateChangedEventArgs(bool callingRhinoCommonAllowed)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "LicenseStateChangedEventArgs constructor",
        "since": "7.0",
        "parameters": [
          {
            "name": "callingRhinoCommonAllowed",
            "type": "System.Boolean",
            "summary": "True when calling RhinoCommon will never raise Rhino.Runtime.NotLicesnedException; False otherwise."
          }
        ]
      }
    ],
    "properties": [
      {
        "signature": "bool CallingRhinoCommonAllowed",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "True if RhinoCommon calls will never raise Rhino.Runtime.NotLicensedException. False otherwise",
        "since": "7.0",
        "property": ["get", "set"]
      }
    ]
  },
  {
    "namespace": "Rhino.Runtime",
    "name": "LicenseTypes",
    "dataType": "enum",
    "summary": "Different licensing modes that Rhino can run in",
    "since": "6.0",
    "values": [
      {
        "signature": "Undefined = 0",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Licensing mode not define"
      },
      {
        "signature": "Standalone",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Standalone license installed on this computer."
      },
      {
        "signature": "ZooAutoDetect",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Classic Zoo license with the Zoo server automatically detected at runtime."
      },
      {
        "signature": "ZooManualDetect",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Classic Zoo license with the Zoo server specified by hostname or IP"
      },
      {
        "signature": "CloudZoo",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Cloud Zoo licenese"
      }
    ]

  },
  {
    "namespace": "Rhino.Runtime",
    "name": "Mode",
    "dataType": "enum",
    "summary": "Contains enumerated constant values to represent Rhino's Runtime Mode.",
    "values": [
      {
        "signature": "NormalMode = 0",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Running with a commercial, educational, or evaluation license ke"
      },
      {
        "signature": "ViewerMode",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Running as a viewer"
      },
      {
        "signature": "BetaMode",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Running as a Beta product"
      },
      {
        "signature": "InvalidMode = 100",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Invalid mode; this is an error condition"
      }
    ]

  },
  {
    "namespace": "Rhino.Runtime",
    "name": "NamedParametersEventArgs",
    "dataType": "class",
    "summary": "Dictionary style class used for named callbacks from C++ -> .NET",
    "baseclass": "EventArgs",
    "interfaces": ["IDisposable"],
    "constructors": [
      {
        "signature": "NamedParametersEventArgs()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Construct a new named parameter even args. You should dispose this class when you are done with it",
        "since": "7.0"
      }
    ],
    "methods": [
      {
        "signature": "System.Void Dispose()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Dispose native resources",
        "since": "7.0"
      },
      {
        "signature": "System.Void Set(System.String name, Color value)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Set a Color value for a given key name",
        "since": "7.0"
      },
      {
        "signature": "System.Void Set(System.String name, Geometry.GeometryBase value)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Set geometry for a given key name",
        "since": "7.0"
      },
      {
        "signature": "System.Void Set(System.String name, Geometry.MeshingParameters value)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Set an MeshingParameters for the specified key",
        "since": "8.0"
      },
      {
        "signature": "System.Void Set(System.String name, Geometry.Point3d value)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Set a Point3d value for a given key name",
        "since": "7.0"
      },
      {
        "signature": "System.Void Set(System.String name, Geometry.Vector3d value)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Set a Vector3d value for a given key name",
        "since": "7.0"
      },
      {
        "signature": "System.Void Set(System.String name, IEnumerable<GeometryBase> values)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Set a list of geometry for a given key name",
        "since": "7.0"
      },
      {
        "signature": "System.Void Set(System.String name, IEnumerable<Guid> guidList)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Set a list of UUIDs as a value for a given key name",
        "since": "7.0"
      },
      {
        "signature": "System.Void Set(System.String name, IEnumerable<ObjRef> values)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Set a list of ObjRef instances as a value for a given key name",
        "since": "8.0"
      },
      {
        "signature": "System.Void Set(System.String name, IEnumerable<string> strings)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Set a list of strings as a value for a given key name",
        "since": "7.0"
      },
      {
        "signature": "System.Void Set(System.String name, IEnumerable<uint> values)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Set a list of uint as a value for a given key name",
        "since": "8.0"
      },
      {
        "signature": "System.Void Set(System.String name, Point value)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Set a Point value for a given key name",
        "since": "8.0"
      },
      {
        "signature": "System.Void Set(System.String name, Rhino.Geometry.Arc value)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Set an arc for the specified key",
        "since": "8.0"
      },
      {
        "signature": "System.Void Set(System.String name, Rhino.Geometry.Line value)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Set a line for the specified key",
        "since": "8.0"
      },
      {
        "signature": "System.Void Set(System.String name, Rhino.Geometry.Plane plane)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Set a plane for the specified key",
        "since": "8.0"
      },
      {
        "signature": "System.Void Set(System.String name, Rhino.Geometry.Point3d[] pts)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Set a point array for the specified key",
        "since": "8.0"
      },
      {
        "signature": "System.Void Set(System.String name, System.Boolean value)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Set a bool value for a given key name",
        "since": "7.0"
      },
      {
        "signature": "System.Void Set(System.String name, System.Double value)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Set a double value for a given key name",
        "since": "7.0"
      },
      {
        "signature": "System.Void Set(System.String name, System.Guid value)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Set a Color value for a given key name",
        "since": "7.0"
      },
      {
        "signature": "System.Void Set(System.String name, System.Int32 value)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Set an int value for a given key name",
        "since": "7.0"
      },
      {
        "signature": "System.Void Set(System.String name, System.String value)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Set a string value for a given key name",
        "since": "7.0"
      },
      {
        "signature": "System.Void Set(System.String name, System.UInt32 value)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Set an unsigned int for a given key name",
        "since": "7.0"
      },
      {
        "signature": "System.Void SetWindowHandle(System.String name, System.IntPtr value)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Set a HWND on Windows or NSView* on Mac",
        "since": "7.0"
      },
      {
        "signature": "System.Void SetWindowImageHandle(System.String name, System.IntPtr value)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Set a HWND on Windows or NSView* on Mac",
        "since": "7.0"
      },
      {
        "signature": "System.Boolean TryGetArc(System.String name, out Rhino.Geometry.Arc value)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Get a arc for the specified key",
        "since": "8.0"
      },
      {
        "signature": "System.Boolean TryGetBool(System.String name, out System.Boolean value)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Try to get a bool value for a given key name",
        "since": "6.15"
      },
      {
        "signature": "System.Boolean TryGetColor(System.String name, out Color value)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Try to get a Color value for a given key name",
        "since": "7.0"
      },
      {
        "signature": "System.Boolean TryGetDouble(System.String name, out System.Double value)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Try to get a double value for a given key name",
        "since": "6.15"
      },
      {
        "signature": "System.Boolean TryGetGeometry(System.String name, out Geometry.GeometryBase[] values)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "7.0"
      },
      {
        "signature": "System.Boolean TryGetGuid(System.String name, out System.Guid value)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Try to get a Color value for a given key name",
        "since": "7.0"
      },
      {
        "signature": "System.Boolean TryGetGuids(System.String name, out System.Guid[] value)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Try to get a UUID array value for a given key name",
        "since": "7.0"
      },
      {
        "signature": "System.Boolean TryGetInt(System.String name, out System.Int32 value)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Try to get an int value for a given key name",
        "since": "6.15"
      },
      {
        "signature": "System.Boolean TryGetLine(System.String name, out Rhino.Geometry.Line value)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Get a line for the specified key",
        "since": "8.0"
      },
      {
        "signature": "System.Boolean TryGetMeshParameters(System.String name, out Geometry.MeshingParameters value)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Get an MeshingParameters for the specified key",
        "since": "8.0"
      },
      {
        "signature": "System.Boolean TryGetObjRefs(System.String name, out ObjRef[] value)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Try to get an array of ObjRef instances for a given key name",
        "since": "8.0"
      },
      {
        "signature": "System.Boolean TryGetPlane(System.String name, out Rhino.Geometry.Plane plane)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Get a plane for the specified key",
        "since": "8.0"
      },
      {
        "signature": "System.Boolean TryGetPoint(System.String name, out Geometry.Point3d value)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Try to get a Point3d value for a given key name",
        "since": "7.0"
      },
      {
        "signature": "System.Boolean TryGetPoint2i(System.String name, out Point value)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Try to get a Point value for a given key name",
        "since": "8.0"
      },
      {
        "signature": "System.Boolean TryGetPoints(System.String name, out Rhino.Geometry.Point3d[] pts)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets a point array for the specified key",
        "since": "8.0"
      },
      {
        "signature": "System.Boolean TryGetRhinoObjects(System.String key, out DocObjects.RhinoObject[] values)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Get array of RhinoObject for the specified key",
        "since": "7.0"
      },
      {
        "signature": "System.Boolean TryGetString(System.String name, out System.String value)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Try to get a string value for a given key name",
        "since": "6.15"
      },
      {
        "signature": "System.Boolean TryGetStrings(System.String name, out System.String[] value)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Try to get a string array for a given key name",
        "since": "7.0"
      },
      {
        "signature": "System.Boolean TryGetUints(System.String name, out System.UInt32[] value)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Try to get a uint array value for a given key name",
        "since": "8.0"
      },
      {
        "signature": "System.Boolean TryGetUnmangedPointer(System.String name, out System.IntPtr value)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets a HWND on Windows or NSVIew* on Mac",
        "since": "7.0"
      },
      {
        "signature": "System.Boolean TryGetUnsignedInt(System.String name, out System.UInt32 value)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Try to get an unsigned int for a given key name",
        "since": "7.0"
      },
      {
        "signature": "System.Boolean TryGetVector(System.String name, out Geometry.Vector3d value)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Try to get a Vector3d value for a given key name",
        "since": "7.0"
      },
      {
        "signature": "System.Boolean TryGetViewport(System.String name, out ViewportInfo viewport)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Try to get a viewport for a given key name",
        "since": "7.0"
      },
      {
        "signature": "System.Boolean TryGetWindowHandle(System.String name, out System.IntPtr value)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets a HWND on Windows or NSVIew* on Mac",
        "since": "7.0"
      },
      {
        "signature": "System.Boolean TryGetWindowImageHandle(System.String name, out System.IntPtr value)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets a HWND on Windows or NSVIew* on Mac",
        "since": "7.0"
      }
    ]
  },
  {
    "namespace": "Rhino.Runtime.Notifications",
    "name": "ButtonType",
    "dataType": "enum",
    "summary": "The type of button in a notification.",
    "since": "6.0",
    "values": [
      {
        "signature": "CancelOrClose",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Denotes either the Cancel button as well as, on some platforms, the close button if present."
      },
      {
        "signature": "Confirm",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "The Confirm buttton."
      },
      {
        "signature": "Alternate",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "The Alternate button."
      }
    ]

  },
  {
    "namespace": "Rhino.Runtime.Notifications",
    "name": "IAssemblyRestrictedObject",
    "dataType": "interface",
    "summary": "A class that implements this interface signals its clients that its instances can only be modified by certain assemblies. This is useful in cases where only certain assemblies should be able to modify an object. The actual members of an instance that are restricted are left to the discretion of the instance's class, and should be documented.",
    "methods": [
      {
        "signature": "System.Boolean Editable()",
        "modifiers": [],
        "protected": true,
        "virtual": false,
        "summary": "Determines whether an assembly can modify the instance.",
        "since": "6.3",
        "returns": "True if the instance can be edited by the assembly, otherwise returns false."
      }
    ]
  },
  {
    "namespace": "Rhino.Runtime.Notifications",
    "name": "Notification",
    "dataType": "class",
    "summary": "A Notification instance can be used to inform the user about various events. For a Notification instance to be displayed in Rhino, it must be added to the  <b>NotificationCenter</b> . When added, it will be displayed in the Notifications panel in Rhino. A Notification contains 1 to 3 buttons that are automatically wired to its <b>ButtonClicked</b> Action if it is not null. The buttons are displayed when the Notification is shown modally by either the user clicking on a particular notification in the Notifications panel, or by programatically showing it using <b>ShowModal</b> .  Currently, only process-wide notifications are supported; document specific notifications are not possible.  Notification instances contain metadata that can be added, modified, or removed during its life. The metadata is important for LINQ queries and other patterns. For example, a particular action may require that multiple notifications be modified. Thus, a LINQ query can be performed on the <b>NotificationCenter</b> using metadata to retrieve related Notification objects and modify them as a batch.  Notification objects implement <b>IAssemblyRestrictedObject</b> . By default, a Notification can be editedby any assembly, but explicitly specifing allowed assemblies in the constructor changes this behavior.  Notification objects are not thread-safe and should only be manipulated in UI thread.",
    "interfaces": ["INotifyPropertyChanged", "Rhino.Runtime.Notifications.IAssemblyRestrictedObject"],
    "constructors": [
      {
        "signature": "Notification()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Creates a new instance that can be edited by any assembly.",
        "since": "6.0"
      },
      {
        "signature": "Notification(IEnumerable<Assembly> allowedAssemblies)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Creates a new instance that can be edited by the given assemblies.",
        "since": "6.0",
    "remarks": "Specifying one or more assemblies limits certain operations with the notification object, throwing an <b>InvalidOperationException</b> if an assembly outside the ones passed tries to interact with it. Any code that tries to interact with a notification object that has restricted assemblies must be wrapped in a  <b>ExecuteAssemblyProtectedCode(Action)</b> . For performance reasons, it is imporant that such methods are kept as simple as possible.",
        "parameters": [
          {
            "name": "allowedAssemblies",
            "type": "IEnumerable<Assembly>",
            "summary": "The assemblies that will be allowed to edit the instance. If None or empty, any assembly will be able to edit this notification."
          }
        ]
      }
    ],
    "properties": [
      {
        "signature": "ICollection<Assembly> AllowedAssemblies",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "The assemblies that can modify this instance.",
        "since": "6.0",
    "remarks": "If empty, any assembly is allowed to edit the instance. You may specify additional assemblies that should have access to an instance at creation time.",
        "property": ["get", "set"]
      },
      {
        "signature": "string AlternateButtonTitle",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "The localized title of the Alternate button.",
        "since": "6.0",
    "remarks": "Notifications can 1 to 3 buttons for user input. Each button can have a localized title. With the exception of the Cancel button, setting a button title to None (the default) will prevent that button from appearing in the interface. Note that in order for buttons other than the Cancel button to be displayed, you must set a <b>ButtonClicked</b> Action.",
        "property": ["get", "set"]
      },
      {
        "signature": "Action<ButtonType> ButtonClicked",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "An Action that will be invoked whenever a button for the notification is clicked or the notification is closed.",
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "string CancelButtonTitle",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "The localized title of the Cancel button.",
        "since": "6.0",
    "remarks": "Notifications can 1 to 3 buttons for user input. Each button can have a localized title. With the exception of the Cancel button, setting a button title to None (the default) will prevent that button from appearing in the interface. Note that in order for buttons other than the Cancel button to be displayed, you must set a <b>ButtonClicked</b> Action.",
        "property": ["get", "set"]
      },
      {
        "signature": "string ConfirmButtonTitle",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "The localized title of the Confirm button.",
        "since": "6.0",
    "remarks": "Notifications can 1 to 3 buttons for user input. Each button can have a localized title. With the exception of the Cancel button, setting a button title to None (the default) will prevent that button from appearing in the interface. Note that in order for buttons other than the Cancel button to be displayed, you must set a <b>ButtonClicked</b> Action.",
        "property": ["get", "set"]
      },
      {
        "signature": "DateTime DateUpdated",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "The date the notification was last modified.",
        "since": "6.0",
    "remarks": "Only visible elements of the notification will cause this property to change. Changes in metadata or other non-visible members will have no effect on this property.",
        "property": ["get", "set"]
      },
      {
        "signature": "string Description",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "The description of the notification. The description is displayed in the Notifications panel in Rhino.",
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "string Message",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "The message of the notification. The message is shown only when the instance is displayed modally. It should contain details about the notification.",
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "IDictionary<string, string> MetadataCopy",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "A copy of all the metadata for this class.",
        "since": "6.0",
    "remarks": "Modifying the returned dictionary will have no effect on the metadata for this notification.",
        "property": ["get"]
      },
      {
        "signature": "Severity SeverityLevel",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "The severity of the notification. Changing the severity of the notification may change the way Rhino chooses to display the Notifications panel.",
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "Guid? ShowEventId",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "A field used by Rhino for displaying notifications. Not intended for public use.",
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "string Title",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "The title of the notification. The title is displayed when the notification is displayed modally in Rhino.",
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "string this[string key]",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets metadata for this instance."
      }
    ],
    "methods": [
      {
        "signature": "TResult ExecuteAssemblyProtectedCode(Func<TResult> func)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "If a <b>Notification</b> object is only allowed to be modified by certain assemblies, then any code that interacts with it must be wrapped around this method, or a <b>InvalidOperationException</b> will be thrown. For performance reasons, the code wrapped by this method should be kept as simple as possible.",
        "since": "6.3",
    "remarks": "This method is not thread-safe and should only be manipulated in UI thread.",
        "parameters": [
          {
            "name": "func",
            "type": "Func<TResult>",
            "summary": "The code to run that modifies one or more notification objects"
          }
        ]
      },
      {
        "signature": "System.Void ExecuteAssemblyProtectedCode(System.Action action)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "If a <b>Notification</b> object is only allowed to be modified by certain assemblies, then any code that interacts with it must be wrapped around this method, or a <b>InvalidOperationException</b> will be thrown. For performance reasons, the code wrapped by this method should be kept as simple as possible.",
        "since": "6.3",
    "remarks": "This method is not thread-safe and should only be manipulated in UI thread.",
        "parameters": [
          {
            "name": "action",
            "type": "System.Action",
            "summary": "The code to run that modifies one or more notification objects"
          }
        ]
      },
      {
        "signature": "System.Boolean Editable()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Determines whether an assembly can modify the instance. Any code that modifies an assembly protected notification must be wrapped in a <b>ExecuteAssemblyProtectedCode(Action)</b> method.",
        "since": "6.3",
    "remarks": "Before modifying a notification you are not sure you created (such as a notification returned from a LINQ query), you should call this method first to ensure you can indeed edit the object."
      },
      {
        "signature": "System.Void HideModal()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Tells Rhino to hide the notification if it is being currently shown as a modal.",
        "since": "6.0",
    "remarks": "If the notification is not being currently shown but is being queued by Rhino as a result of calling <b>ShowModal</b> , then the notification will be dequeued. If the notification was never queued, then this method has no effect."
      },
      {
        "signature": "System.Boolean RemoveMetadata(System.String key)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Removes metadata from this instance.",
        "since": "6.0",
        "parameters": [
          {
            "name": "key",
            "type": "System.String",
            "summary": "The key of the metadata to remove."
          }
        ],
        "returns": "True if the metada was removed; otherwise false."
      },
      {
        "signature": "System.Void ShowModal()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Tells Rhino to display the notification modally.",
        "since": "6.0",
    "remarks": "The notification will only be displayed if/once the instance is added to the <b>NotificationCenter</b> . Rhino keeps a queue of notifications that need to be shown modally, so calling this method does not mean that this particular notification will be immediately displayed."
      },
      {
        "signature": "System.String ToString()",
        "modifiers": ["public", "override"],
        "protected": false,
        "virtual": false,
        "summary": "Returns a readable string representation of the instance."
      }
    ]
  },
  {
    "namespace": "Rhino.Runtime.Notifications",
    "name": "Notification.Severity",
    "dataType": "enum",
    "summary": "Determines the severity of a notification.",
    "since": "6.0",
    "values": [
      {
        "signature": "Debug",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Least serious."
      },
      {
        "signature": "Info",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Not serious."
      },
      {
        "signature": "Warning",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Important."
      },
      {
        "signature": "Serious",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Very important."
      },
      {
        "signature": "Critical",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Extremely important."
      }
    ]

  },
  {
    "namespace": "Rhino.Runtime.Notifications",
    "name": "NotificationButtonClickedArgs",
    "dataType": "class",
    "summary": "Used when a button is clicked for a notification.",
    "baseclass": "EventArgs",
    "constructors": [
      {
        "signature": "NotificationButtonClickedArgs(Notification notification, ButtonType buttonClicked)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Creates a new instance.",
        "since": "6.0",
        "parameters": [
          {
            "name": "notification",
            "type": "Notification",
            "summary": "The notification whose button was clicked."
          },
          {
            "name": "buttonClicked",
            "type": "ButtonType",
            "summary": "The button that was clicked."
          }
        ]
      }
    ],
    "properties": [
      {
        "signature": "ButtonType ButtonClicked",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "The button that was clicked.",
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "Notification Notification",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "The notification whose button was clicked.",
        "since": "6.0",
        "property": ["get", "set"]
      }
    ]
  },
  {
    "namespace": "Rhino.Runtime.Notifications",
    "name": "NotificationCenter",
    "dataType": "class",
    "summary": "The NotificationCenter holds all <b>Notification</b> objects that are displayed in the Notifications panel by Rhino.  The NotificationCenter is not thread-safe and should only be used in the UI thread.",
    "constructors": [
      {
        "signature": "NotificationCenter()",
        "summary": "Initializes a new instance of the NotificationCenter class"
      }
    ],
    "fields": [
      {
        "signature": "public static readonly TrulyObservableOrderedSet<Notification> Notifications = new TrulyObservableOrderedSet<Notification>()",
        "modifiers": ["public", "static", "readonly"],
        "protected": false,
        "virtual": false,
        "summary": "A set containing all the <b>Notification</b> instances. Any Notification added will be displayed in the Notifications panel. Any Notification removed will be removed from the Notifications panel, and, if shown modally or queued to be shown modally, will be closed or dequeued from the modal queue."
      }
    ]

  },
  {
    "namespace": "Rhino.Runtime.Notifications",
    "name": "TrulyObservableOrderedSet<T>",
    "dataType": "class",
    "summary": "An ordered set that notifies its subscribers whenever one of its INotifyPropertyChanged elements raises its PropertyChanged event.",
    "remarks": "This class prevents the removal of elements by assemblies they cannot be edited by. At the time of removal, each element's <b>IAssemblyRestrictedObject.Editable</b> method will be invoked, and if false, an InvalidOperationException will be thrown.",
    "interfaces": ["IList<T>", "INotifyCollectionChanged"],
    "constructors": [
      {
        "signature": "TrulyObservableOrderedSet<T>(IEnumerable<T> items, IEqualityComparer<T> comparer)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Creates an instance with the given items.",
        "parameters": [
          {
            "name": "items",
            "type": "IEnumerable<T>",
            "summary": "Items that the instance will contain. If there are duplicate items, they will be removed."
          },
          {
            "name": "comparer",
            "type": "IEqualityComparer<T>",
            "summary": "custom comparerer, used to check for duplicates. If no comparer is specified, <b>EqualityComparer{T}.Default</b> is used."
          }
        ]
      },
      {
        "signature": "TrulyObservableOrderedSet<T>(IEqualityComparer<T> comparer)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Creates an empty instance."
      }
    ],
    "properties": [
      {
        "signature": "int Count",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns the total number of items in the set.",
        "property": ["get"]
      },
      {
        "signature": "bool IsReadOnly",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Always returns false.",
        "property": ["get"]
      },
      {
        "signature": "T this[int index]",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or replaces an element in the ordered set at the specified index."
      }
    ],
    "methods": [
      {
        "signature": "System.Void Add(T item)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Adds an object to the end of the ordered set if the set does not already contain the item.",
        "parameters": [
          {
            "name": "item",
            "type": "T",
            "summary": "The item to add."
          }
        ]
      },
      {
        "signature": "System.Void AddRange(IEnumerable<T> items)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Add multiple objects to the end of the ordered set. Only distinct items are added. If new items were added, one CollectionChanged event is fired."
      },
      {
        "signature": "System.Void Clear()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Clears the ordered set."
      },
      {
        "signature": "System.Boolean Contains(T item)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Determines whether an element is in the set.",
        "parameters": [
          {
            "name": "item",
            "type": "T",
            "summary": "The item to check for inclusion."
          }
        ],
        "returns": "True if the item is in the set; otherwise false."
      },
      {
        "signature": "System.Void CopyTo(T[] array, System.Int32 arrayIndex)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Copies the values of the set to an array.",
        "parameters": [
          {
            "name": "array",
            "type": "T[]",
            "summary": "The array to copy the values to."
          },
          {
            "name": "arrayIndex",
            "type": "System.Int32",
            "summary": "The index of the array to start the copy."
          }
        ]
      },
      {
        "signature": "IEnumerator<T> GetEnumerator()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns an enumerator that iterates through the set."
      },
      {
        "signature": "System.Int32 IndexOf(T item)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Searches for the specified object and returns the zero-based index of the first occurrence.",
        "parameters": [
          {
            "name": "item",
            "type": "T",
            "summary": "The item to locate."
          }
        ],
        "returns": "The zero-based index of the first occurrence of item if found; otherwise -1."
      },
      {
        "signature": "System.Void Insert(System.Int32 index, T item)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Inserts an element at the specified index.",
        "parameters": [
          {
            "name": "index",
            "type": "System.Int32",
            "summary": "The index to insert the element at."
          },
          {
            "name": "item",
            "type": "T",
            "summary": "The item to insert."
          }
        ]
      },
      {
        "signature": "System.Boolean Remove(T item)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Removes an element from the set.",
        "parameters": [
          {
            "name": "item",
            "type": "T",
            "summary": "The element to remove."
          }
        ],
        "returns": "Returns True if the element was removed; otherwise returns false."
      },
      {
        "signature": "System.Void RemoveAt(System.Int32 index)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Removes an element at the specified index from the set.",
        "parameters": [
          {
            "name": "index",
            "type": "System.Int32",
            "summary": "The index of the element to remove."
          }
        ]
      },
      {
        "signature": "System.Boolean RemoveRange(IEnumerable<T> items)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Remove a number of items. If at least one item was removed, one CollectionChanged event is fired.",
        "returns": "True if at least one item was removed"
      },
      {
        "signature": "System.Void Sort(Func<T, TKey> keySelector, System.Boolean descending)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Sorts the set.",
        "parameters": [
          {
            "name": "keySelector",
            "type": "Func<T, TKey>",
            "summary": ""
          },
          {
            "name": "descending",
            "type": "System.Boolean",
            "summary": "If true, the sort will happen in descending other; if false, it will happen in ascending order."
          }
        ]
      }
    ]
  },
  {
    "namespace": "Rhino.Runtime",
    "name": "NotLicensedException",
    "dataType": "class",
    "summary": "Exception thrown when calling functions in RhinoCommon and the application is executing without a license",
    "baseclass": "Exception",
    "constructors": [
      {
        "signature": "NotLicensedException()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Default constructor",
        "since": "7.0"
      },
      {
        "signature": "NotLicensedException(string message, Exception inner)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Create a new instance with a custom message and an inner exception",
        "since": "7.0"
      },
      {
        "signature": "NotLicensedException(string message)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Create a new instance with a custom message",
        "since": "7.0"
      }
    ]
  },
  {
    "namespace": "Rhino.Runtime",
    "name": "PythonCompiledCode",
    "dataType": "class",
    "summary": "Represents scripting compiled code.",
    "constructors": [
      {
        "signature": "PythonCompiledCode()",
        "summary": "Initializes a new instance of the PythonCompiledCode class"
      }
    ],
    "methods": [
      {
        "signature": "System.Void Execute(PythonScript scope)",
        "modifiers": ["public", "abstract"],
        "protected": false,
        "virtual": false,
        "summary": "Executes the script in a specific scope.",
        "since": "5.0",
        "parameters": [
          {
            "name": "scope",
            "type": "PythonScript",
            "summary": "The scope where the script should be executed."
          }
        ]
      }
    ]
  },
  {
    "namespace": "Rhino.Runtime",
    "name": "PythonScript",
    "dataType": "class",
    "summary": "Represents a Python script.",
    "constructors": [
      {
        "signature": "PythonScript()",
        "modifiers": ["protected"],
        "protected": true,
        "virtual": false,
        "summary": "Initializes a new instance of the <b>PythonScript</b> class."
      }
    ],
    "properties": [
      {
        "signature": "string[] SearchPaths",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Get/Set additional search paths used by the python interpreter",
        "since": "7.1",
        "property": ["get", "set"]
      },
      {
        "signature": "int ContextId",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets a context unique identified.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "Action<string> Output",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the Python script \"print()\" target.  \nBy default string output goes to the Rhino.RhinoApp.Write function.     Set Output if you want to redirect the output from python to a different function     while this script executes.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "Command ScriptContextCommand",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Command associated with this script. Used for localiation",
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "object ScriptContextDoc",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "object set to variable held in scriptcontext.doc.",
        "since": "5.0",
        "property": ["get", "set"]
      }
    ],
    "methods": [
      {
        "signature": "System.Void AddRuntimeAssembly(System.Reflection.Assembly assembly)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Add assembly to list of assemblies used by python",
        "since": "7.0"
      },
      {
        "signature": "PythonScript Create()",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Constructs a new Python script context.",
        "since": "5.0",
        "returns": "A new Python script, or None if none could be created. Rhino 4 always returns null."
      },
      {
        "signature": "System.Reflection.Assembly[] RuntimeAssemblies()",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Get list of assemblies used by python for library browser and inclusion into the runtime",
        "since": "7.0"
      },
      {
        "signature": "PythonCompiledCode Compile(System.String script)",
        "modifiers": ["public", "abstract"],
        "protected": false,
        "virtual": false,
        "summary": "Compiles a class in a quick-to-execute proxy.",
        "since": "5.0",
        "parameters": [
          {
            "name": "script",
            "type": "System.String",
            "summary": "A string text."
          }
        ],
        "returns": "A Python compiled code instance."
      },
      {
        "signature": "System.Boolean ContainsVariable(System.String name)",
        "modifiers": ["public", "abstract"],
        "protected": false,
        "virtual": false,
        "summary": "Determines if the main scripting context has a variable with a name.",
        "since": "5.0",
        "parameters": [
          {
            "name": "name",
            "type": "System.String",
            "summary": "The variable name."
          }
        ],
        "returns": "True if the variable is present."
      },
      {
        "signature": "System.Object CreateTextEditorControl(System.String script, Action<string> helpcallback)",
        "modifiers": ["public", "abstract"],
        "protected": false,
        "virtual": false,
        "summary": "Creates a control where the user is able to type Python code.",
        "since": "5.0",
        "parameters": [
          {
            "name": "script",
            "type": "System.String",
            "summary": "A starting script."
          },
          {
            "name": "helpcallback",
            "type": "Action<string>",
            "summary": "A method that is called when help is shown for a function, a class or a method."
          }
        ],
        "returns": "A Windows Forms control."
      },
      {
        "signature": "System.Object EvaluateExpression(System.String statements, System.String expression)",
        "modifiers": ["public", "abstract"],
        "protected": false,
        "virtual": false,
        "summary": "Evaluates statements and an expression in the main scripting context.",
        "since": "5.0",
        "parameters": [
          {
            "name": "statements",
            "type": "System.String",
            "summary": "One or several statements."
          },
          {
            "name": "expression",
            "type": "System.String",
            "summary": "An expression."
          }
        ],
        "returns": "The expression result."
      },
      {
        "signature": "System.Boolean ExecuteFile(System.String path)",
        "modifiers": ["public", "abstract"],
        "protected": false,
        "virtual": false,
        "summary": "Executes a Python file. The file is executed in a new, __main__ scope.",
        "since": "5.0",
        "parameters": [
          {
            "name": "path",
            "type": "System.String",
            "summary": "The path to the file."
          }
        ],
        "returns": "True if the file executed. This method can throw scripting-runtime based exceptions."
      },
      {
        "signature": "System.Boolean ExecuteFileInScope(System.String path)",
        "modifiers": ["public", "abstract"],
        "protected": false,
        "virtual": false,
        "summary": "Executes a Python file in the calling script scope. All old variables are kept.",
        "since": "7.0",
        "parameters": [
          {
            "name": "path",
            "type": "System.String",
            "summary": "The path to the file."
          }
        ],
        "returns": "True if the file executed. This method can throw scripting-runtime based exceptions."
      },
      {
        "signature": "System.Boolean ExecuteScript(System.String script)",
        "modifiers": ["public", "abstract"],
        "protected": false,
        "virtual": false,
        "summary": "Executes a Python string.",
        "since": "5.0",
        "parameters": [
          {
            "name": "script",
            "type": "System.String",
            "summary": "A Python text."
          }
        ],
        "returns": "True if the file executed. This method can throw scripting-runtime based exceptions."
      },
      {
        "signature": "System.String[] GetSearchPaths()",
        "modifiers": ["protected", "abstract"],
        "protected": true,
        "virtual": false,
        "summary": "Protected helper function for static SearchPaths"
      },
      {
        "signature": "System.String GetStackTraceFromException(System.Exception ex)",
        "modifiers": ["public", "abstract"],
        "protected": false,
        "virtual": false,
        "summary": "Retrieves a meaningful representation of the call stack.",
        "since": "5.0",
        "parameters": [
          {
            "name": "ex",
            "type": "System.Exception",
            "summary": "An exception that was thrown by some of the methods in this class."
          }
        ],
        "returns": "A string that represents the Python exception."
      },
      {
        "signature": "System.Object GetVariable(System.String name)",
        "modifiers": ["public", "abstract"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the object associated with a variable name in the main scripting context.",
        "since": "5.0",
        "parameters": [
          {
            "name": "name",
            "type": "System.String",
            "summary": "A variable name."
          }
        ],
        "returns": "The variable object."
      },
      {
        "signature": "System.Collections.Generic.IEnumerable<string> GetVariableNames()",
        "modifiers": ["public", "abstract"],
        "protected": false,
        "virtual": false,
        "summary": "Retrieves all variable names in the script.",
        "since": "5.0",
        "returns": "An enumerable set with all names of the variables."
      },
      {
        "signature": "System.Void RemoveVariable(System.String name)",
        "modifiers": ["public", "abstract"],
        "protected": false,
        "virtual": false,
        "summary": "Removes a defined variable from the main scripting context.",
        "since": "5.0",
        "parameters": [
          {
            "name": "name",
            "type": "System.String",
            "summary": "The variable name."
          }
        ]
      },
      {
        "signature": "System.Void SetIntellisenseVariable(System.String name, System.Object value)",
        "modifiers": ["public", "virtual"],
        "protected": false,
        "virtual": true,
        "summary": "Sets a variable for runtime introspection.",
        "since": "5.0",
        "parameters": [
          {
            "name": "name",
            "type": "System.String",
            "summary": "A variable name."
          },
          {
            "name": "value",
            "type": "System.Object",
            "summary": "A variable value."
          }
        ]
      },
      {
        "signature": "System.Void SetSearchPaths(System.String[] paths)",
        "modifiers": ["protected", "abstract"],
        "protected": true,
        "virtual": false,
        "summary": "Protected helper function for static SearchPaths"
      },
      {
        "signature": "System.Void SetupScriptContext(System.Object doc)",
        "modifiers": ["public", "virtual"],
        "protected": false,
        "virtual": true,
        "summary": "Setups the script context. Use a RhinoDoc instance unless unsure.",
        "since": "6.0",
        "parameters": [
          {
            "name": "doc",
            "type": "System.Object",
            "summary": "Document."
          }
        ]
      },
      {
        "signature": "System.Void SetVariable(System.String name, System.Object value)",
        "modifiers": ["public", "abstract"],
        "protected": false,
        "virtual": false,
        "summary": "Sets a variable with a name and an object. Object can be None (Nothing in Visual Basic).",
        "since": "5.0",
        "parameters": [
          {
            "name": "name",
            "type": "System.String",
            "summary": "A valid variable name in Python."
          },
          {
            "name": "value",
            "type": "System.Object",
            "summary": "A valid value for that variable name."
          }
        ]
      }
    ]
  },
  {
    "namespace": "Rhino.Runtime",
    "name": "RdkNotLoadedException",
    "dataType": "class",
    "summary": "Is thrown when the RDK is not loaded.",
    "baseclass": "Exception",
    "constructors": [
      {
        "signature": "RdkNotLoadedException()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Initializes a new instance of the RDK not loaded exception with a standard message.",
        "since": "5.0"
      }
    ]
  },
  {
    "namespace": "Rhino.Runtime.RhinoAccounts",
    "name": "IOAuth2Token",
    "dataType": "interface",
    "summary": "Represents an OAuth2 Token that can be used for authorization purposes.",
    "properties": [
      {
        "signature": "DateTime? Exp",
        "modifiers": [],
        "protected": true,
        "virtual": false,
        "summary": "The expiration of the token. Expired tokens will be considered invalid by the Rhino Accounts server.",
        "since": "7.0",
    "remarks": "An OAuth2 Token can be invalidated at any time even if it has not expired.",
        "property": ["get"]
      },
      {
        "signature": "bool IsExpired",
        "modifiers": [],
        "protected": true,
        "virtual": false,
        "summary": "True if the token is expired; False otherwise.",
        "since": "7.0",
        "property": ["get"]
      },
      {
        "signature": "string RawToken",
        "modifiers": [],
        "protected": true,
        "virtual": false,
        "summary": "The raw token that can be passed to various servers for authorization.",
        "since": "7.0",
        "property": ["get"]
      },
      {
        "signature": "IReadOnlyCollection<string> Scope",
        "modifiers": [],
        "protected": true,
        "virtual": false,
        "summary": "The scope of the token.",
        "since": "7.0",
        "property": ["get"]
      }
    ]
  },
  {
    "namespace": "Rhino.Runtime.RhinoAccounts",
    "name": "IOpenIDConnectToken",
    "dataType": "interface",
    "summary": "This class represents an OpenIDConnect token issued from an OpenID provider. The token is immutable.",
    "properties": [
      {
        "signature": "IReadOnlyDictionary<string, RhinoAccountsGroup> AdminGroups",
        "modifiers": [],
        "protected": true,
        "virtual": false,
        "summary": "Returns all the groups the user is an admin of.",
        "since": "7.0",
        "property": ["get"]
      },
      {
        "signature": "IReadOnlyDictionary<string, RhinoAccountsGroup> AllGroups",
        "modifiers": [],
        "protected": true,
        "virtual": false,
        "summary": "Returns all the groups the user is a member of.",
        "since": "7.0",
        "property": ["get"]
      },
      {
        "signature": "string AtHash",
        "modifiers": [],
        "protected": true,
        "virtual": false,
        "summary": "Access Token hash value. Its value is the base64url encoding of the left-most half of the hash of the octets of the ASCII representation of the access_token value, where the hash algorithm used is the hash algorithm used in the alg Header Parameter of the ID Token's JOSE Header. For instance, if the alg is RS256, hash the access_token value with SHA-256, then take the left-most 128 bits and base64url encode them. The at_hash value is a case sensitive string.",
        "since": "7.0",
        "property": ["get"]
      },
      {
        "signature": "string Aud",
        "modifiers": [],
        "protected": true,
        "virtual": false,
        "summary": "The id of the client (the audience) this token is intended for.",
        "since": "7.0",
        "property": ["get"]
      },
      {
        "signature": "DateTime? AuthTime",
        "modifiers": [],
        "protected": true,
        "virtual": false,
        "summary": "Time when the End-User authentication occurred",
        "since": "7.0",
        "property": ["get"]
      },
      {
        "signature": "IReadOnlyCollection<string> Emails",
        "modifiers": [],
        "protected": true,
        "virtual": false,
        "summary": "All the emails belonging to the account the token represents.",
        "since": "7.0",
        "property": ["get"]
      },
      {
        "signature": "bool? EmailVerified",
        "modifiers": [],
        "protected": true,
        "virtual": false,
        "summary": "True if all the emails in the account have been verified; False otherwise.",
        "since": "7.0",
        "property": ["get"]
      },
      {
        "signature": "DateTime? Exp",
        "modifiers": [],
        "protected": true,
        "virtual": false,
        "summary": "The date the token expires.",
        "since": "7.0",
        "property": ["get"]
      },
      {
        "signature": "DateTime? Iat",
        "modifiers": [],
        "protected": true,
        "virtual": false,
        "summary": "The date the token was issued.",
        "since": "7.0",
        "property": ["get"]
      },
      {
        "signature": "bool IsExpired",
        "modifiers": [],
        "protected": true,
        "virtual": false,
        "summary": "True if the token is expired; False otherwise.",
        "since": "7.0",
        "property": ["get"]
      },
      {
        "signature": "string Iss",
        "modifiers": [],
        "protected": true,
        "virtual": false,
        "summary": "The id of the entity that issued the token.",
        "since": "7.0",
        "property": ["get"]
      },
      {
        "signature": "bool IsUpdated",
        "modifiers": [],
        "protected": true,
        "virtual": false,
        "summary": "True if the token has been updated; False otherwise.",
        "since": "7.0",
        "property": ["get"]
      },
      {
        "signature": "string Locale",
        "modifiers": [],
        "protected": true,
        "virtual": false,
        "summary": "The local of the user this token represents.  ISO 639-1 Alpha-2 [ISO639‑1] language code and an ISO 3166-1 Alpha-2 [ISO3166‑1] country code in, separated by a dash.",
        "since": "7.0",
        "property": ["get"]
      },
      {
        "signature": "IReadOnlyDictionary<string, RhinoAccountsGroup> MemberGroups",
        "modifiers": [],
        "protected": true,
        "virtual": false,
        "summary": "Returns all the groups the user is a member of, but not an admin or an owner.",
        "since": "7.0",
        "property": ["get"]
      },
      {
        "signature": "string Name",
        "modifiers": [],
        "protected": true,
        "virtual": false,
        "summary": "The name of the user this token represents.",
        "since": "7.0",
        "property": ["get"]
      },
      {
        "signature": "string Nonce",
        "modifiers": [],
        "protected": true,
        "virtual": false,
        "summary": "String value used to associate a Client session with an ID Token, and to mitigate replay attacks",
        "since": "7.0",
        "property": ["get"]
      },
      {
        "signature": "IReadOnlyDictionary<string, RhinoAccountsGroup> OwnerGroups",
        "modifiers": [],
        "protected": true,
        "virtual": false,
        "summary": "Returns all the groups the user is an owner of.",
        "since": "7.0",
        "property": ["get"]
      },
      {
        "signature": "string Phone",
        "modifiers": [],
        "protected": true,
        "virtual": false,
        "summary": "The phone of the user this token represents.",
        "since": "7.0",
        "property": ["get"]
      },
      {
        "signature": "string Picture",
        "modifiers": [],
        "protected": true,
        "virtual": false,
        "summary": "The url of a picture/avatar/icon of the user this token represents.",
        "since": "7.0",
        "property": ["get"]
      },
      {
        "signature": "string RawToken",
        "modifiers": [],
        "protected": true,
        "virtual": false,
        "summary": "The raw OpenIDConnect token.",
        "since": "7.0",
        "property": ["get"]
      },
      {
        "signature": "string Sub",
        "modifiers": [],
        "protected": true,
        "virtual": false,
        "summary": "The unique id for the subject this token represents.",
        "since": "7.0",
        "property": ["get"]
      },
      {
        "signature": "DateTime? UpdatedAt",
        "modifiers": [],
        "protected": true,
        "virtual": false,
        "summary": "The last time the token was updated.",
        "since": "7.0",
        "property": ["get"]
      }
    ]
  },
  {
    "namespace": "Rhino.Runtime.RhinoAccounts",
    "name": "IRhinoAccountsManager",
    "dataType": "interface",
    "summary": "Performs various Rhino Accounts-related tasks.",
    "methods": [
      {
        "signature": "System.Void ExecuteProtectedCode(Action<SecretKey> protectedCode)",
        "modifiers": [],
        "protected": true,
        "virtual": false,
        "summary": "Any synchronous method in the <b>IRhinoAccountsManager</b> class must be executed within the function passed to this method, or an <b>InvalidOperationException</b> will be thrown.",
        "since": "7.0",
    "remarks": "The code within the function passed must be kept as breif as possible for performance and security reasons.",
        "parameters": [
          {
            "name": "protectedCode",
            "type": "Action<SecretKey>",
            "summary": "A function returning an awaitable task that has a <b>SecretKey</b> passed to it. You will need to pass this secret key to any method you wish to call within <b>IRhinoAccountsManager</b> ."
          }
        ]
      },
      {
        "signature": "System.Threading.Tasks.Task ExecuteProtectedCodeAsync(Func<SecretKey, Task> protectedCode)",
        "modifiers": [],
        "protected": true,
        "virtual": false,
        "summary": "Any asynchronous method in the <b>IRhinoAccountsManager</b> class must be executed within the function passed to this method, or an <b>InvalidOperationException</b> will be thrown.",
    "remarks": "The code within the function passed must be kept as breif as possible for performance and security reasons.",
        "parameters": [
          {
            "name": "protectedCode",
            "type": "Func<SecretKey, Task>",
            "summary": "A function returning an awaitable task that has a <b>SecretKey</b> passed to it. You will need to pass this secret key to any method you wish to call within <b>IRhinoAccountsManager</b> ."
          }
        ]
      },
      {
        "signature": "Task<Tuple<IOpenIDConnectToken, IOAuth2Token>> GetAuthTokensAsync(System.String clientId, System.String clientSecret, IEnumerable<string> scope, System.String prompt, System.Int32? maxAge, System.Boolean showUI, IProgress<RhinoAccoountsProgressInfo> progress, SecretKey secretKey, System.Threading.CancellationToken cancellationToken)",
        "modifiers": [],
        "protected": true,
        "virtual": false,
        "summary": "Asynchronously retrieves auth tokens with the given criteria from the Rhino Accounts server.",
        "parameters": [
          {
            "name": "clientId",
            "type": "System.String",
            "summary": "The unique id of the client registered in Rhino Accounts."
          },
          {
            "name": "clientSecret",
            "type": "System.String",
            "summary": "The secret of the client registered in Rhino Accounts"
          },
          {
            "name": "scope",
            "type": "IEnumerable<string>",
            "summary": "The scope desired for the tokens. Valid scope values can be found in the Rhino Accounts documentation."
          },
          {
            "name": "prompt",
            "type": "System.String",
            "summary": "The prompt of the request. See Rhino Accounts documentation for details. You may pass None if no prompt is desired."
          },
          {
            "name": "maxAge",
            "type": "System.Int32?",
            "summary": "The maxAge of the request. See Rhino Accounts documentation for details. You may pass None if no maxAge should be enforced."
          },
          {
            "name": "showUI",
            "type": "System.Boolean",
            "summary": "True if the user should see a UI showing the progress of the operation and a way to cancel it, or False if the UI should not be displayed. If false, it is strongly recommended that you pass aobject and display your own UI to the user."
          },
          {
            "name": "progress",
            "type": "IProgress<RhinoAccoountsProgressInfo>",
            "summary": "An object that will report the progress of the operation to the caller. If no progress is needed, you may pass null."
          },
          {
            "name": "secretKey",
            "type": "SecretKey",
            "summary": "A special key that was handed to you in <b>ExecuteProtectedCodeAsync(Func{SecretKey, Task})</b>"
          },
          {
            "name": "cancellationToken",
            "type": "System.Threading.CancellationToken",
            "summary": "A token that can be used to signal that the operation should be cancelled."
          }
        ],
        "returns": "The auth tokens requested."
      },
      {
        "signature": "Task<Tuple<IOpenIDConnectToken, IOAuth2Token>> GetAuthTokensAsync(System.String clientId, System.String clientSecret, SecretKey secretKey, System.Threading.CancellationToken cancellationToken)",
        "modifiers": [],
        "protected": true,
        "virtual": false,
        "summary": "Asynchronously retrieves auth tokens with the given criteria from the Rhino Accounts server.",
        "since": "7.0",
    "remarks": "This method includes a default scope of 'openid', 'email', 'profile', and 'groups'. It should be suffifient for most workflows. This method shows the user a UI showing them the progress of the operation, and allows them to cancel it at any time. It also stores the retrieved tokens in a secure cache so they can be retrieved in the future by calling <b>TryGetAuthTokens(string, SecretKey)</b>",
        "parameters": [
          {
            "name": "clientId",
            "type": "System.String",
            "summary": "The unique id of the client registered in Rhino Accounts."
          },
          {
            "name": "clientSecret",
            "type": "System.String",
            "summary": "The secret of the client registered in Rhino Accounts"
          },
          {
            "name": "secretKey",
            "type": "SecretKey",
            "summary": "A special key that was handed to you in <b>ExecuteProtectedCodeAsync(Func{SecretKey, Task})</b>"
          },
          {
            "name": "cancellationToken",
            "type": "System.Threading.CancellationToken",
            "summary": "A token that can be used to signal that the operation should be cancelled."
          }
        ],
        "returns": "The auth tokens requested."
      },
      {
        "signature": "System.Threading.Tasks.Task RevokeAuthTokenAsync(IOAuth2Token oauth2Token, SecretKey secretKey, System.Threading.CancellationToken cancellationToken)",
        "modifiers": [],
        "protected": true,
        "virtual": false,
        "summary": "Invalidates/revokes an <b>IOAuth2Token</b> object from the Rhino Accounts server.",
        "since": "7.0",
    "remarks": "If the OAuth 2 token is stored in the local cache, it will be removed from the cache as well.",
        "parameters": [
          {
            "name": "oauth2Token",
            "type": "IOAuth2Token",
            "summary": "The token to revoke."
          },
          {
            "name": "secretKey",
            "type": "SecretKey",
            "summary": "A special key that was handed to you in <b>ExecuteProtectedCodeAsync(Func{SecretKey, Task})</b>"
          },
          {
            "name": "cancellationToken",
            "type": "System.Threading.CancellationToken",
            "summary": "A token that can be used to signal that the operation should be cancelled."
          }
        ]
      },
      {
        "signature": "Tuple<IOpenIDConnectToken, IOAuth2Token> TryGetAuthTokens(System.String clientId, IEnumerable<string> scope, SecretKey secretKey)",
        "modifiers": [],
        "protected": true,
        "virtual": false,
        "summary": "Attempts to return cached auth tokens that match the given criteria if any have been stored in cache.",
        "since": "7.0",
        "parameters": [
          {
            "name": "clientId",
            "type": "System.String",
            "summary": "The unique id of the client registered in Rhino Accounts."
          },
          {
            "name": "scope",
            "type": "IEnumerable<string>",
            "summary": "The scope desired for the tokens. Valid scope values can be found in the Rhino Accounts documentation."
          },
          {
            "name": "secretKey",
            "type": "SecretKey",
            "summary": "A special key that was handed to you in <b>ExecuteProtectedCodeAsync(Func{SecretKey, Task})</b>"
          }
        ],
        "returns": "Cached tokens matching the exact criteria passed, or None if none can be found matching the criteria."
      },
      {
        "signature": "Tuple<IOpenIDConnectToken, IOAuth2Token> TryGetAuthTokens(System.String clientId, SecretKey secretKey)",
        "modifiers": [],
        "protected": true,
        "virtual": false,
        "summary": "Attempts to return cached auth tokens that match the given criteria if any have been stored in cache.",
        "since": "7.0",
        "parameters": [
          {
            "name": "clientId",
            "type": "System.String",
            "summary": "The unique id of the client registered in Rhino Accounts."
          },
          {
            "name": "secretKey",
            "type": "SecretKey",
            "summary": "A special key that was handed to you in <b>ExecuteProtectedCodeAsync(Func{SecretKey, Task})</b>"
          }
        ],
        "returns": "Cached tokens matching the exact criteria passed, or None if none can be found matching the criteria."
      },
      {
        "signature": "Task<IOpenIDConnectToken> UpdateOpenIDConnectTokenAsync(IOpenIDConnectToken currentToken, IOAuth2Token oauth2Token, SecretKey secretKey, System.Threading.CancellationToken cancellationToken)",
        "modifiers": [],
        "protected": true,
        "virtual": false,
        "summary": "Updates an OpenID Connect token so that it contains the latest user information by contacting the Rhino Account's server userinfo endpoint using a compatible O",
        "since": "7.0",
    "remarks": "If the OpenID Connect token is currently stored in the local cache, it will be updated to reflect the new token.",
        "parameters": [
          {
            "name": "currentToken",
            "type": "IOpenIDConnectToken",
            "summary": "The existing OpenID Connect token that you wish to updated with the latest user information."
          },
          {
            "name": "oauth2Token",
            "type": "IOAuth2Token",
            "summary": "A valid OAuth2 token used for authorization. The OAuth2 token must have been issued together with the OpenID Connect token passed or a <b>RhinoAccountsAuthTokenMismatchException</b> will be thrown."
          },
          {
            "name": "secretKey",
            "type": "SecretKey",
            "summary": "A special key that was handed to you in <b>ExecuteProtectedCodeAsync(Func{SecretKey, Task})</b>"
          },
          {
            "name": "cancellationToken",
            "type": "System.Threading.CancellationToken",
            "summary": "A token that can be used to signal that the operation should be cancelled."
          }
        ],
        "returns": "The updated OpenIDConnectToken based on the original token passed to this method."
      }
    ]
  },
  {
    "namespace": "Rhino.Runtime.RhinoAccounts",
    "name": "ProgressState",
    "dataType": "enum",
    "summary": "Describes the state of progress.",
    "since": "7.0",
    "values": [
      {
        "signature": "AwaitingLogin",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "The task is awaiting for the user to login."
      },
      {
        "signature": "RetrievingTokens",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "The task is now negotiating with the remote server for auth tokens."
      },
      {
        "signature": "AwaitingRedirect",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "The task is now waiting for redirection to occur."
      },
      {
        "signature": "Other",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Other"
      }
    ]

  },
  {
    "namespace": "Rhino.Runtime.RhinoAccounts",
    "name": "RhinoAccoountsProgressInfo",
    "dataType": "class",
    "summary": "This class is designed to convey the progress of an asynchronous operation through .NET's <b>IProgress{T}</b> interface. It can be used by callers of such tasks to relay the tasks' progress, as well as useful metadata information that may be of interest.",
    "constructors": [
      {
        "signature": "RhinoAccoountsProgressInfo(ProgressState state, Dictionary<object, object> metadata, string customDescription)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Creates a new instance.",
        "parameters": [
          {
            "name": "state",
            "type": "ProgressState",
            "summary": "The state to report."
          },
          {
            "name": "metadata",
            "type": "Dictionary<object, object>",
            "summary": "Optional. Any metadata of interest that may be used by the caller of a task."
          },
          {
            "name": "customDescription",
            "type": "System.String",
            "summary": "Optional. If a non-None value is passed, it will override the default description of the instance."
          }
        ]
      }
    ],
    "properties": [
      {
        "signature": "string Description",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "A localized description of the state that may be shown to the user of the application.",
        "since": "7.0",
        "property": ["get", "set"]
      },
      {
        "signature": "Dictionary<object, object> Metadata",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Any metadata of interest that may be used by the caller of a task.",
        "since": "7.0",
        "property": ["get"]
      },
      {
        "signature": "ProgressState State",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "The state to report.",
        "since": "7.0",
        "property": ["get", "set"]
      }
    ]
  },
  {
    "namespace": "Rhino.Runtime.RhinoAccounts",
    "name": "RhinoAccountsAuthTokenMismatchException",
    "dataType": "class",
    "summary": "Exception thrown when the currently logged in user is different from the newly logged in user.",
    "baseclass": "Rhino.Runtime.RhinoAccounts.RhinoAccountsException",
    "constructors": [
      {
        "signature": "RhinoAccountsAuthTokenMismatchException(Exception innerException)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Generates a new instance of the exception.",
        "since": "7.0",
        "parameters": [
          {
            "name": "innerException",
            "type": "System.Exception",
            "summary": "The inner exception."
          }
        ]
      },
      {
        "signature": "RhinoAccountsAuthTokenMismatchException(string message, Exception innerException)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Generates a new instance of the exception.",
        "since": "7.0",
        "parameters": [
          {
            "name": "message",
            "type": "System.String",
            "summary": "The message of the exception."
          },
          {
            "name": "innerException",
            "type": "System.Exception",
            "summary": "The inner exception."
          }
        ]
      },
      {
        "signature": "RhinoAccountsAuthTokenMismatchException(string currentUsername, string newUsername, Exception innerException)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Generates a new instance of the exception.",
        "since": "7.0",
        "parameters": [
          {
            "name": "currentUsername",
            "type": "System.String",
            "summary": "The name of the currently logged in user."
          },
          {
            "name": "newUsername",
            "type": "System.String",
            "summary": "The name of the newly logged in user."
          },
          {
            "name": "innerException",
            "type": "System.Exception",
            "summary": "The inner exception."
          }
        ]
      }
    ]
  },
  {
    "namespace": "Rhino.Runtime.RhinoAccounts",
    "name": "RhinoAccountsCannotListenException",
    "dataType": "class",
    "summary": "Exception thrown when there is no port available on the machine for Rhino to listen for Rhino Accounts' response.",
    "baseclass": "Rhino.Runtime.RhinoAccounts.RhinoAccountsException",
    "constructors": [
      {
        "signature": "RhinoAccountsCannotListenException(Exception innerException)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Generates a new instance of the exception.",
        "since": "7.0",
        "parameters": [
          {
            "name": "innerException",
            "type": "System.Exception",
            "summary": "The inner exception."
          }
        ]
      },
      {
        "signature": "RhinoAccountsCannotListenException(string message, Exception innerException)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Generates a new instance of the exception.",
        "since": "7.0",
        "parameters": [
          {
            "name": "message",
            "type": "System.String",
            "summary": "The message of the exception."
          },
          {
            "name": "innerException",
            "type": "System.Exception",
            "summary": "The inner exception."
          }
        ]
      }
    ]
  },
  {
    "namespace": "Rhino.Runtime.RhinoAccounts",
    "name": "RhinoAccountsException",
    "dataType": "class",
    "summary": "Base exception for all Rhino Accounts operations.",
    "baseclass": "Exception",
    "constructors": [
      {
        "signature": "RhinoAccountsException(Exception innerException)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Generates a new instance of the exception.",
        "since": "7.0",
        "parameters": [
          {
            "name": "innerException",
            "type": "System.Exception",
            "summary": "The inner exception."
          }
        ]
      },
      {
        "signature": "RhinoAccountsException(string message, Exception innerException)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Generates a new instance of the exception.",
        "since": "7.0",
        "parameters": [
          {
            "name": "message",
            "type": "System.String",
            "summary": "The message of the exception."
          },
          {
            "name": "innerException",
            "type": "System.Exception",
            "summary": "The inner exception."
          }
        ]
      }
    ]
  },
  {
    "namespace": "Rhino.Runtime.RhinoAccounts",
    "name": "RhinoAccountsGroup",
    "dataType": "class",
    "summary": "Represents a Rhino Accounts group.",
    "constructors": [
      {
        "signature": "RhinoAccountsGroup(string id, string name)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Represents a group in Rhino Accounts. Groups are a collection of individual members that can share resources.",
        "since": "7.0"
      }
    ],
    "properties": [
      {
        "signature": "string Id",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "The id of the group. The id is unique to a group within Rhino Accounts.",
        "since": "7.0",
        "property": ["get"]
      },
      {
        "signature": "string Name",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "The name of the group. The name can be changed at anytime by group members.",
        "since": "7.0",
        "property": ["get"]
      }
    ]
  },
  {
    "namespace": "Rhino.Runtime.RhinoAccounts",
    "name": "RhinoAccountsInvalidResponseException",
    "dataType": "class",
    "summary": "Exception thrown when the response returned by Rhino Accounts is not valid.",
    "baseclass": "Rhino.Runtime.RhinoAccounts.RhinoAccountsException",
    "constructors": [
      {
        "signature": "RhinoAccountsInvalidResponseException(Exception innerException)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Generates a new instance of the exception.",
        "since": "7.0",
        "parameters": [
          {
            "name": "innerException",
            "type": "System.Exception",
            "summary": "The inner exception."
          }
        ]
      },
      {
        "signature": "RhinoAccountsInvalidResponseException(string message, Exception innerException)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Generates a new instance of the exception.",
        "since": "7.0",
        "parameters": [
          {
            "name": "message",
            "type": "System.String",
            "summary": "The message of the exception."
          },
          {
            "name": "innerException",
            "type": "System.Exception",
            "summary": "The inner exception."
          }
        ]
      }
    ]
  },
  {
    "namespace": "Rhino.Runtime.RhinoAccounts",
    "name": "RhinoAccountsInvalidStateException",
    "dataType": "class",
    "summary": "Occurs when the state returned by the Rhino Accounts server is not the same as the one sent to the server. It usually indicates the request has been tampered with.",
    "baseclass": "Rhino.Runtime.RhinoAccounts.RhinoAccountsException",
    "constructors": [
      {
        "signature": "RhinoAccountsInvalidStateException(Exception innerException)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Generates a new instance of the exception.",
        "since": "7.0",
        "parameters": [
          {
            "name": "innerException",
            "type": "System.Exception",
            "summary": "The inner exception."
          }
        ]
      },
      {
        "signature": "RhinoAccountsInvalidStateException(string message, Exception innerException)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Generates a new instance of the exception.",
        "since": "7.0",
        "parameters": [
          {
            "name": "message",
            "type": "System.String",
            "summary": "The message of the exception."
          },
          {
            "name": "innerException",
            "type": "System.Exception",
            "summary": "The inner exception."
          }
        ]
      }
    ]
  },
  {
    "namespace": "Rhino.Runtime.RhinoAccounts",
    "name": "RhinoAccountsInvalidTokenException",
    "dataType": "class",
    "summary": "Exception thrown when the token returned by Rhino Accounts is not valid.",
    "baseclass": "Rhino.Runtime.RhinoAccounts.RhinoAccountsException",
    "constructors": [
      {
        "signature": "RhinoAccountsInvalidTokenException(Exception innerException)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Generates a new instance of the exception.",
        "since": "7.0",
        "parameters": [
          {
            "name": "innerException",
            "type": "System.Exception",
            "summary": "The inner exception."
          }
        ]
      },
      {
        "signature": "RhinoAccountsInvalidTokenException(string message, Exception innerException)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Generates a new instance of the exception.",
        "since": "7.0",
        "parameters": [
          {
            "name": "message",
            "type": "System.String",
            "summary": "The message of the exception."
          },
          {
            "name": "innerException",
            "type": "System.Exception",
            "summary": "The inner exception."
          }
        ]
      }
    ]
  },
  {
    "namespace": "Rhino.Runtime.RhinoAccounts",
    "name": "RhinoAccountsManager",
    "dataType": "class",
    "summary": "Performs various Rhino Accounts-related tasks.",
    "constructors": [
      {
        "signature": "RhinoAccountsManager()",
        "summary": "Initializes a new instance of the RhinoAccountsManager class"
      }
    ],
    "methods": [
      {
        "signature": "System.Void ExecuteProtectedCode(Action<SecretKey> protectedCode)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Any synchronous method in the <b>IRhinoAccountsManager</b> class must be executed within the function passed to this method, or an <b>InvalidOperationException</b> will be thrown.",
        "since": "7.0",
    "remarks": "The code within the function passed must be kept as breif as possible for performance and security reasons.",
        "parameters": [
          {
            "name": "protectedCode",
            "type": "Action<SecretKey>",
            "summary": "A function returning an awaitable task that has a <b>SecretKey</b> passed to it. You will need to pass this secret key to any method you wish to call within <b>IRhinoAccountsManager</b> ."
          }
        ]
      },
      {
        "signature": "System.Threading.Tasks.Task ExecuteProtectedCodeAsync(Func<SecretKey, Task> protectedCode)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Any asynchronous method in the <b>IRhinoAccountsManager</b> class must be executed within the function passed to this method, or an <b>InvalidOperationException</b> will be thrown.",
    "remarks": "The code within the function passed must be kept as breif as possible for performance and security reasons.",
        "parameters": [
          {
            "name": "protectedCode",
            "type": "Func<SecretKey, Task>",
            "summary": "A function returning an awaitable task that has a <b>SecretKey</b> passed to it. You will need to pass this secret key to any method you wish to call within <b>IRhinoAccountsManager</b> ."
          }
        ]
      },
      {
        "signature": "Task<Tuple<IOpenIDConnectToken, IOAuth2Token>> GetAuthTokensAsync(System.String clientId, System.String clientSecret, IEnumerable<string> scope, System.String prompt, System.Int32? maxAge, System.Boolean showUI, IProgress<RhinoAccoountsProgressInfo> progress, SecretKey secretKey, System.Threading.CancellationToken cancellationToken)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Asynchronously retrieves auth tokens with the given criteria from the Rhino Accounts server.",
        "parameters": [
          {
            "name": "clientId",
            "type": "System.String",
            "summary": "The unique id of the client registered in Rhino Accounts."
          },
          {
            "name": "clientSecret",
            "type": "System.String",
            "summary": "The secret of the client registered in Rhino Accounts"
          },
          {
            "name": "scope",
            "type": "IEnumerable<string>",
            "summary": "The scope desired for the tokens. Valid scope values can be found in the Rhino Accounts documentation."
          },
          {
            "name": "prompt",
            "type": "System.String",
            "summary": "The prompt of the request. See Rhino Accounts documentation for details. You may pass None if no prompt is desired."
          },
          {
            "name": "maxAge",
            "type": "System.Int32?",
            "summary": "The maxAge of the request. See Rhino Accounts documentation for details. You may pass None if no maxAge should be enforced."
          },
          {
            "name": "showUI",
            "type": "System.Boolean",
            "summary": "True if the user should see a UI showing the progress of the operation and a way to cancel it, or False if the UI should not be displayed. If false, it is strongly recommended that you pass aobject and display your own UI to the user."
          },
          {
            "name": "progress",
            "type": "IProgress<RhinoAccoountsProgressInfo>",
            "summary": "An object that will report the progress of the operation to the caller. If no progress is needed, you may pass null."
          },
          {
            "name": "secretKey",
            "type": "SecretKey",
            "summary": "A special key that was handed to you in <b>ExecuteProtectedCodeAsync(Func{SecretKey, Task})</b>"
          },
          {
            "name": "cancellationToken",
            "type": "System.Threading.CancellationToken",
            "summary": "A token that can be used to signal that the operation should be cancelled."
          }
        ],
        "returns": "The auth tokens requested."
      },
      {
        "signature": "Task<Tuple<IOpenIDConnectToken, IOAuth2Token>> GetAuthTokensAsync(System.String clientId, System.String clientSecret, SecretKey secretKey, System.Threading.CancellationToken cancellationToken)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Asynchronously retrieves auth tokens with the given criteria from the Rhino Accounts server.",
        "since": "7.0",
    "remarks": "This method includes a default scope of 'openid', 'email', 'profile', and 'groups'. It should be suffifient for most workflows. This method shows the user a UI showing them the progress of the operation, and allows them to cancel it at any time. It also stores the retrieved tokens in a secure cache so they can be retrieved in the future by calling <b>TryGetAuthTokens(string, SecretKey)</b>",
        "parameters": [
          {
            "name": "clientId",
            "type": "System.String",
            "summary": "The unique id of the client registered in Rhino Accounts."
          },
          {
            "name": "clientSecret",
            "type": "System.String",
            "summary": "The secret of the client registered in Rhino Accounts"
          },
          {
            "name": "secretKey",
            "type": "SecretKey",
            "summary": "A special key that was handed to you in <b>ExecuteProtectedCodeAsync(Func{SecretKey, Task})</b>"
          },
          {
            "name": "cancellationToken",
            "type": "System.Threading.CancellationToken",
            "summary": "A token that can be used to signal that the operation should be cancelled."
          }
        ],
        "returns": "The auth tokens requested."
      },
      {
        "signature": "System.Threading.Tasks.Task RevokeAuthTokenAsync(IOAuth2Token oauth2Token, SecretKey secretKey, System.Threading.CancellationToken cancellationToken)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Invalidates/revokes an <b>IOAuth2Token</b> object from the Rhino Accounts server.",
        "since": "7.0",
    "remarks": "If the OAuth 2 token is stored in the local cache, it will be removed from the cache as well.",
        "parameters": [
          {
            "name": "oauth2Token",
            "type": "IOAuth2Token",
            "summary": "The token to revoke."
          },
          {
            "name": "secretKey",
            "type": "SecretKey",
            "summary": "A special key that was handed to you in <b>ExecuteProtectedCodeAsync(Func{SecretKey, Task})</b>"
          },
          {
            "name": "cancellationToken",
            "type": "System.Threading.CancellationToken",
            "summary": "A token that can be used to signal that the operation should be cancelled."
          }
        ]
      },
      {
        "signature": "Tuple<IOpenIDConnectToken, IOAuth2Token> TryGetAuthTokens(System.String clientId, IEnumerable<string> scope, SecretKey secretKey)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Attempts to return cached auth tokens that match the given criteria if any have been stored in cache.",
        "since": "7.0",
        "parameters": [
          {
            "name": "clientId",
            "type": "System.String",
            "summary": "The unique id of the client registered in Rhino Accounts."
          },
          {
            "name": "scope",
            "type": "IEnumerable<string>",
            "summary": "The scope desired for the tokens. Valid scope values can be found in the Rhino Accounts documentation."
          },
          {
            "name": "secretKey",
            "type": "SecretKey",
            "summary": "A special key that was handed to you in <b>ExecuteProtectedCodeAsync(Func{SecretKey, Task})</b>"
          }
        ],
        "returns": "Cached tokens matching the exact criteria passed, or None if none can be found matching the criteria."
      },
      {
        "signature": "Tuple<IOpenIDConnectToken, IOAuth2Token> TryGetAuthTokens(System.String clientId, SecretKey secretKey)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Attempts to return cached auth tokens that match the given criteria if any have been stored in cache.",
        "since": "7.0",
        "parameters": [
          {
            "name": "clientId",
            "type": "System.String",
            "summary": "The unique id of the client registered in Rhino Accounts."
          },
          {
            "name": "secretKey",
            "type": "SecretKey",
            "summary": "A special key that was handed to you in <b>ExecuteProtectedCodeAsync(Func{SecretKey, Task})</b>"
          }
        ],
        "returns": "Cached tokens matching the exact criteria passed, or None if none can be found matching the criteria."
      },
      {
        "signature": "Task<IOpenIDConnectToken> UpdateOpenIDConnectTokenAsync(IOpenIDConnectToken currentToken, IOAuth2Token oauth2Token, SecretKey secretKey, System.Threading.CancellationToken cancellationToken)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Updates an OpenID Connect token so that it contains the latest user information by contacting the Rhino Account's server userinfo endpoint using a compatible O",
        "since": "7.0",
    "remarks": "If the OpenID Connect token is currently stored in the local cache, it will be updated to reflect the new token.",
        "parameters": [
          {
            "name": "currentToken",
            "type": "IOpenIDConnectToken",
            "summary": "The existing OpenID Connect token that you wish to updated with the latest user information."
          },
          {
            "name": "oauth2Token",
            "type": "IOAuth2Token",
            "summary": "A valid OAuth2 token used for authorization. The OAuth2 token must have been issued together with the OpenID Connect token passed or a <b>RhinoAccountsAuthTokenMismatchException</b> will be thrown."
          },
          {
            "name": "secretKey",
            "type": "SecretKey",
            "summary": "A special key that was handed to you in <b>ExecuteProtectedCodeAsync(Func{SecretKey, Task})</b>"
          },
          {
            "name": "cancellationToken",
            "type": "System.Threading.CancellationToken",
            "summary": "A token that can be used to signal that the operation should be cancelled."
          }
        ],
        "returns": "The updated OpenIDConnectToken based on the original token passed to this method."
      }
    ]
  },
  {
    "namespace": "Rhino.Runtime.RhinoAccounts",
    "name": "RhinoAccountsOperationInProgressException",
    "dataType": "class",
    "summary": "Exception thrown when there is already a Rhino Accounts operation taking place.",
    "baseclass": "Rhino.Runtime.RhinoAccounts.RhinoAccountsException",
    "constructors": [
      {
        "signature": "RhinoAccountsOperationInProgressException(Assembly assembly, Exception innerException)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Generates a new instance of the exception.",
        "since": "7.0",
        "parameters": [
          {
            "name": "assembly",
            "type": "System.Reflection.Assembly",
            "summary": "The assembly that is currently performing an operation."
          },
          {
            "name": "innerException",
            "type": "System.Exception",
            "summary": "The inner exception."
          }
        ]
      },
      {
        "signature": "RhinoAccountsOperationInProgressException(string message, Exception innerException)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Generates a new instance of the exception.",
        "since": "7.0",
        "parameters": [
          {
            "name": "message",
            "type": "System.String",
            "summary": "The message of the exception."
          },
          {
            "name": "innerException",
            "type": "System.Exception",
            "summary": "The inner exception."
          }
        ]
      }
    ]
  },
  {
    "namespace": "Rhino.Runtime.RhinoAccounts",
    "name": "RhinoAccountsProxyException",
    "dataType": "class",
    "summary": "Exception thrown when there is a problem with a proxy setting during a Rhino Accounts operation.",
    "baseclass": "Rhino.Runtime.RhinoAccounts.RhinoAccountsException",
    "constructors": [
      {
        "signature": "RhinoAccountsProxyException(Exception innerException)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Generates a new instance of the exception.",
        "since": "7.0",
        "parameters": [
          {
            "name": "innerException",
            "type": "System.Exception",
            "summary": "The inner exception."
          }
        ]
      },
      {
        "signature": "RhinoAccountsProxyException(string message, Exception innerException)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Generates a new instance of the exception.",
        "since": "7.0",
        "parameters": [
          {
            "name": "message",
            "type": "System.String",
            "summary": "The message of the exception."
          },
          {
            "name": "innerException",
            "type": "System.Exception",
            "summary": "The inner exception."
          }
        ]
      }
    ]
  },
  {
    "namespace": "Rhino.Runtime.RhinoAccounts",
    "name": "RhinoAccountsServerException",
    "dataType": "class",
    "summary": "Exception thrown when the Rhino Accounts server returned an unsuccessful HTTP response with a code of 400 or greater.",
    "baseclass": "Rhino.Runtime.RhinoAccounts.RhinoAccountsException",
    "constructors": [
      {
        "signature": "RhinoAccountsServerException(Exception innerException)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Generates a new instance of the exception.",
        "since": "7.0",
        "parameters": [
          {
            "name": "innerException",
            "type": "System.Exception",
            "summary": "The inner exception."
          }
        ]
      },
      {
        "signature": "RhinoAccountsServerException(string message, Exception innerException)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Generates a new instance of the exception.",
        "since": "7.0",
        "parameters": [
          {
            "name": "message",
            "type": "System.String",
            "summary": "The message of the exception."
          },
          {
            "name": "innerException",
            "type": "System.Exception",
            "summary": "The inner exception."
          }
        ]
      }
    ]
  },
  {
    "namespace": "Rhino.Runtime.RhinoAccounts",
    "name": "RhinoAccountsServerNotReachableException",
    "dataType": "class",
    "summary": "Exception thrown when the Rhino Accounts server cannot be reached due to a network problem.",
    "baseclass": "Rhino.Runtime.RhinoAccounts.RhinoAccountsException",
    "constructors": [
      {
        "signature": "RhinoAccountsServerNotReachableException(Exception innerException)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Generates a new instance of the exception.",
        "since": "7.0",
        "parameters": [
          {
            "name": "innerException",
            "type": "System.Exception",
            "summary": "The inner exception."
          }
        ]
      },
      {
        "signature": "RhinoAccountsServerNotReachableException(string message, Exception innerException)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Generates a new instance of the exception.",
        "since": "7.0",
        "parameters": [
          {
            "name": "message",
            "type": "System.String",
            "summary": "The message of the exception."
          },
          {
            "name": "innerException",
            "type": "System.Exception",
            "summary": "The inner exception."
          }
        ]
      }
    ]
  },
  {
    "namespace": "Rhino.Runtime.RhinoAccounts",
    "name": "SecretKey",
    "dataType": "class",
    "summary": "An instance of this of this class is given to the function you pass to ExceuteProtectedCodeAsync and must be passed to any method of the RhinoAccountsManager that requires it. Failure to do so will throw an <b>InvalidOperationException</b> ."
  },
  {
    "namespace": "Rhino.Runtime",
    "name": "RiskyAction",
    "dataType": "class",
    "summary": "Defines risky actions that need to be reported in crash exceptions",
    "interfaces": ["IDisposable"],
    "constructors": [
      {
        "signature": "RiskyAction(string description, string file, string member, int line)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Always create this in a using block",
        "since": "6.0"
      }
    ],
    "methods": [
      {
        "signature": "System.Void Dispose()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "IDisposable implementation",
        "since": "6.0"
      }
    ]
  },
  {
    "namespace": "Rhino.Runtime",
    "name": "Skin",
    "dataType": "class",
    "summary": "Represents a customized environment that changes the appearance of Rhino.  \nSkin DLLs must contain a single class that derives from the Skin class.",
    "constructors": [
      {
        "signature": "Skin()",
        "modifiers": ["protected"],
        "protected": true,
        "virtual": false,
        "summary": "Initializes a new instance of the <b>Skin</b> class."
      }
    ],
    "properties": [
      {
        "signature": "Skin ActiveSkin",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Any time Rhino is running there is at most one skin being used (and possibly no skin).  If a RhinoCommon based Skin class is being used, use ActiveSkin to get at the instance of this Skin class. May return null if no Skin is being used or if the skin is not a RhinoCommon based skin.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "string ApplicationName",
        "modifiers": ["protected", "virtual"],
        "protected": true,
        "virtual": true,
        "summary": "If you want to provide a custom name for your skin.",
        "property": ["get"]
      },
      {
        "signature": "Bitmap MainRhinoIcon",
        "modifiers": ["protected", "virtual"],
        "protected": true,
        "virtual": true,
        "summary": "If you want to provide a custom icon for your skin.",
        "property": ["get"]
      },
      {
        "signature": "PersistentSettings Settings",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets access to the skin persistent settings.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "string SettingsDirectory",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Get the skin's settings directory. This is the directory where the skin's persistent settings files are saved, matching the location used by <b>Settings</b> . Note, this does not verify the directory exists.",
        "since": "9.0",
        "property": ["get"]
      }
    ],
    "methods": [
      {
        "signature": "System.Void DismissBootSplash()",
        "modifiers": ["protected", "static"],
        "protected": true,
        "virtual": false,
        "summary": "Tells the platform's boot splash to dismiss, if one is up. Call this from a Skin subclass once its own window is on screen. No-op on platforms that have no boot splash.",
        "since": "9.0"
      },
      {
        "signature": "RhinoDoc OpenNewDocument(System.String templatePath)",
        "modifiers": ["protected", "static"],
        "protected": true,
        "virtual": false,
        "summary": "Creates a new <b>RhinoDoc</b> from the given template (or a blank document when the path is null/empty/missing) and brings up its document window. Must be called on the main UI thread.",
        "since": "9.0",
        "parameters": [
          {
            "name": "templatePath",
            "type": "System.String",
            "summary": "Path to a template file, or null/empty for a blank document."
          }
        ],
        "returns": "The new <b>RhinoDoc</b> , or None on failure."
      },
      {
        "signature": "System.Void SetBootSplashProgress(System.Int32 value)",
        "modifiers": ["protected", "static"],
        "protected": true,
        "virtual": false,
        "summary": "Pushes a progress value to the platform's boot splash so it can paint a progress bar. The value is treated as a percentage and clamped to 0..100 on the native side. No-op on platforms that have no boot splash, and harmless if the splash is already gone.",
        "since": "9.0",
        "parameters": [
          {
            "name": "value",
            "type": "System.Int32",
            "summary": "Progress percentage in the range 0..100."
          }
        ]
      },
      {
        "signature": "System.Void HideSplash()",
        "modifiers": ["protected", "virtual"],
        "protected": true,
        "virtual": true,
        "summary": "Is called when the splash screen should be hidden."
      },
      {
        "signature": "System.Void OnBeginLoadAtStartPlugIns(System.Int32 expectedCount)",
        "modifiers": ["protected", "virtual"],
        "protected": true,
        "virtual": true,
        "summary": "Is called when the first plug-in that loads at start-up is going to be loaded.",
        "parameters": [
          {
            "name": "expectedCount",
            "type": "System.Int32",
            "summary": "The complete amount of plug-ins."
          }
        ]
      },
      {
        "signature": "System.Void OnBeginLoadPlugIn(System.String description)",
        "modifiers": ["protected", "virtual"],
        "protected": true,
        "virtual": true,
        "summary": "Is called when a specific plug-in is going to be loaded.",
        "parameters": [
          {
            "name": "description",
            "type": "System.String",
            "summary": "The plug-in description."
          }
        ]
      },
      {
        "signature": "System.Void OnBuiltInCommandsRegistered()",
        "modifiers": ["protected", "virtual"],
        "protected": true,
        "virtual": true,
        "summary": "Is called when built-in commands are registered."
      },
      {
        "signature": "System.Void OnEndLoadAtStartPlugIns()",
        "modifiers": ["protected", "virtual"],
        "protected": true,
        "virtual": true,
        "summary": "Is called after all of the load at start plug-ins have been loaded."
      },
      {
        "signature": "System.Void OnEndLoadPlugIn()",
        "modifiers": ["protected", "virtual"],
        "protected": true,
        "virtual": true,
        "summary": "Is called after each plug-in has been loaded."
      },
      {
        "signature": "System.Void OnLicenseCheckCompleted()",
        "modifiers": ["protected", "virtual"],
        "protected": true,
        "virtual": true,
        "summary": "Is called when the license check is completed."
      },
      {
        "signature": "System.Void OnMainFrameWindowCreated()",
        "modifiers": ["protected", "virtual"],
        "protected": true,
        "virtual": true,
        "summary": "Is called when the main frame window is created."
      },
      {
        "signature": "System.Void ShowChooseRecent()",
        "modifiers": ["protected", "virtual"],
        "protected": true,
        "virtual": true,
        "summary": "Called when the host requests the Skin's \"choose recent\" UI. Default implementation is empty.",
        "since": "9.0"
      },
      {
        "signature": "System.Void ShowChooseTemplate()",
        "modifiers": ["protected", "virtual"],
        "protected": true,
        "virtual": true,
        "summary": "Called when the host requests the Skin's \"choose template\" UI (e.g. from the File > New Using Template menu item). Default implementation is empty.",
        "since": "9.0"
      },
      {
        "signature": "System.Void ShowHelp()",
        "modifiers": ["protected", "virtual"],
        "protected": true,
        "virtual": true,
        "summary": "Called when the \"help\" splash screen should be shown. Default implementation just calls ShowSplash()"
      },
      {
        "signature": "System.Void ShowSplash()",
        "modifiers": ["protected", "virtual"],
        "protected": true,
        "virtual": true,
        "summary": "Is called when the splash screen should be shown."
      }
    ]
  },
  {
    "namespace": "Rhino.Runtime",
    "name": "TextFields",
    "dataType": "class",
    "summary": "This Class Processes Text Field Functions",
    "constructors": [
      {
        "signature": "TextFields()",
        "summary": "Initializes a new instance of the TextFields class"
      }
    ],
    "methods": [
      {
        "signature": "System.Double Area(System.String id, System.String unitSystem)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Returns the area value for a selected object id in a specified unit system",
        "since": "7.0"
      },
      {
        "signature": "System.Double Area(System.String id)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Returns the area value for a selected object id",
        "since": "7.0"
      },
      {
        "signature": "System.String BlockAttributeText(System.String key, System.String prompt, System.String defaultValue)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "User text associated with a block",
        "since": "7.0"
      },
      {
        "signature": "System.String BlockDescription(System.String definitionNameOrId)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Returns a block definition description",
        "since": "8.0"
      },
      {
        "signature": "System.String BlockInsertionCoordinate(System.String blockId, System.String axis)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Returns the insertion coordinate of a block instance. If the field is being evaluated from text inside a block instance, the immediate parent block instance is used.",
        "since": "9.0"
      },
      {
        "signature": "System.Int32 BlockInstanceCount(System.String instanceDefinitionNameOrId)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Returns the number of block instances found in the document with the specified block definition name or the instance reference id.",
        "since": "7.0"
      },
      {
        "signature": "System.String BlockInstanceName(System.String blockId)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Returns the block definition name of a block instance Use BlockName Instead",
        "since": "7.0"
      },
      {
        "signature": "System.String BlockName(System.String blockId)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Returns the block definition name of a block instance",
        "since": "8.0"
      },
      {
        "signature": "System.Double CurveLength(System.String id, System.String unitSystem)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Get length of a curve given a string id in a specified unit system. UnitSystem enumeration as string",
        "since": "7.0"
      },
      {
        "signature": "System.Double CurveLength(System.String id)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Get length of a curve given a string id",
        "since": "7.0"
      },
      {
        "signature": "System.String Date()",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Current date",
        "since": "7.0"
      },
      {
        "signature": "System.String Date(System.String dateFormat, System.String languageId)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Current Date in a specific format and language",
        "since": "7.0"
      },
      {
        "signature": "System.String Date(System.String dateFormat)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Current date in a specified format",
        "since": "7.0"
      },
      {
        "signature": "System.String DateModified()",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Date the document was last edited",
        "since": "7.0"
      },
      {
        "signature": "System.String DateModified(System.String dateFormat, System.String languageId)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Date the document was last edited in a specific format and language in local time",
        "since": "7.0"
      },
      {
        "signature": "System.String DateModified(System.String dateFormat)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Date the document was last edited in a specified format",
        "since": "7.0"
      },
      {
        "signature": "System.String DetailScale(System.String detailId, System.String scaleFormat)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Returns a detail views scale",
        "since": "7.0"
      },
      {
        "signature": "System.String DocumentText(System.String key)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Return document user string for a given key",
        "since": "7.0"
      },
      {
        "signature": "System.String FileName()",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Return full path to the document",
        "since": "7.0"
      },
      {
        "signature": "System.String FileName(System.String options)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Return path to the document",
        "since": "7.0"
      },
      {
        "signature": "InstanceAttributeField[] GetInstanceAttributeFields(InstanceDefinition idef)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "7.0"
      },
      {
        "signature": "InstanceAttributeField[] GetInstanceAttributeFields(System.String str)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Gets an array of block attribute definitions associated with a TextObject.",
        "since": "7.0",
        "parameters": [
          {
            "name": "str",
            "type": "System.String",
            "summary": "TextObject to check for block attribute definitions"
          }
        ],
        "returns": "Will return a empty array if text is None or there is no attributes otherwise; returns a list of one or more attribute definitions embedded in the text string."
      },
      {
        "signature": "InstanceAttributeField[] GetInstanceAttributeFields(TextObject text)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Gets an array of block attribute definitions associated with a TextObject.",
        "since": "7.0",
        "parameters": [
          {
            "name": "text",
            "type": "TextObject",
            "summary": "TextObject to check for block attribute definitions"
          }
        ],
        "returns": "Will return a empty array if text is None or there is no attributes otherwise; returns a list of one or more attribute definitions embedded in the text string."
      },
      {
        "signature": "System.String LayerName(System.String layerId)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Returns the name of a layer based on the layers guid",
        "since": "7.0"
      },
      {
        "signature": "System.String LayoutUserText(System.String layoutId, System.String key)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Returns user text value from a layout id Key",
        "since": "7.0"
      },
      {
        "signature": "System.String LayoutUserText(System.String key)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Returns a value from the active layouts user text strings for the specified key.",
        "since": "7.0"
      },
      {
        "signature": "System.String ModelUnits()",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "7.0"
      },
      {
        "signature": "System.String Notes()",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Notes for a RhinoDoc",
        "since": "7.0"
      },
      {
        "signature": "System.Int32 NumPages()",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Number of layout pages in a document",
        "since": "7.0"
      },
      {
        "signature": "System.String ObjectLayer(System.String id)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Return an object's layer name",
        "since": "7.0"
      },
      {
        "signature": "System.String ObjectName()",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Returns an attached Text objects attribute name.",
        "since": "7.5"
      },
      {
        "signature": "System.String ObjectName(System.String id)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Return an object's name",
        "since": "7.0"
      },
      {
        "signature": "System.String ObjectPageName(System.String id)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Returns the layout page name the object resides on",
        "since": "8.0"
      },
      {
        "signature": "System.Int32 ObjectPageNumber(System.String id)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Returns the layout page number the object resides on",
        "since": "8.0"
      },
      {
        "signature": "System.Double PageHeight()",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Return the current layout page height in the layout units",
        "since": "7.0"
      },
      {
        "signature": "System.String PageName()",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Return the current layout page name",
        "since": "7.0"
      },
      {
        "signature": "System.String PageName(System.String id)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Return the page name for the specified View ID",
        "since": "7.0"
      },
      {
        "signature": "System.Int32 PageNumber()",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Returns the current layouts page number",
        "since": "7.0"
      },
      {
        "signature": "System.Double PageWidth()",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Return the current layout page width in the layout units",
        "since": "7.0"
      },
      {
        "signature": "System.String PaperName()",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Returns the layouts selected paper name example Letter / A4 / A6",
        "since": "7.0"
      },
      {
        "signature": "System.String PointCoordinate(System.String pointId, System.String axis)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "returns the location of a 3d point",
        "since": "7.0"
      },
      {
        "signature": "System.Boolean TryFormat(System.String text, RhinoDoc doc, out System.String result)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Formats the contents of a text string with field expressions and returns the result",
        "since": "8.0",
        "parameters": [
          {
            "name": "text",
            "type": "System.String",
            "summary": "The text formula to format"
          },
          {
            "name": "doc",
            "type": "RhinoDoc",
            "summary": "The Rhino document to evaluate"
          },
          {
            "name": "result",
            "type": "System.String",
            "summary": "The result of the formatted expression. Otherwise, if the text is null or the evaluation process fails, the result will be empty."
          }
        ],
        "returns": "Returns True if the expression is formatted properly; Otherwise False."
      },
      {
        "signature": "System.Boolean TryParse(System.String text, RhinoDoc doc, out List<string> result)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Evaluates the contents of a text string with field expressions and returns the result",
        "since": "8.0",
        "parameters": [
          {
            "name": "text",
            "type": "System.String",
            "summary": "The text formula to parse and evaluate"
          },
          {
            "name": "doc",
            "type": "RhinoDoc",
            "summary": "The Rhino document to evaluate"
          },
          {
            "name": "result",
            "type": "List<string>",
            "summary": "The result of the evaluated expression. Otherwise, if the text is null or the evaluation process fails, the result will be empty."
          }
        ],
        "returns": "Returns True if the expression is evaluated properly; Otherwise False."
      },
      {
        "signature": "System.String UserText(System.String id, System.String key, System.String prompt, System.String defaultValue)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "User text associated with an object, block or layout",
        "since": "7.0"
      },
      {
        "signature": "System.String UserText(System.String id, System.String key, System.String prompt)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "User text associated with an object, block or layout",
        "since": "7.0"
      },
      {
        "signature": "System.String UserText(System.String id, System.String key)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "User text associated with an object, block or layout",
        "since": "7.0"
      },
      {
        "signature": "System.Double Volume(System.String id, System.String unitSystem, System.String allowOpenObjects)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Returns a volume from an object Id. If allowOpenObjects = False objects which are open will return 0.0 as a volume.",
        "since": "7.8"
      },
      {
        "signature": "System.Double Volume(System.String id, System.String opt)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Returns a volume; if the opt param is a bool \"true/false\" or \"1/0\" then open objects are inspected or ignored. if the opt param is a unit system as a string \"millimeter\" then the volume will be returned if the object is closed and in the specified unit system. Open objects return 0",
        "since": "7.0"
      },
      {
        "signature": "System.Double Volume(System.String id)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Returns the volume for the selected object id open objects return 0 volume",
        "since": "7.0"
      }
    ]
  },
  {
    "namespace": "Rhino.Runtime",
    "name": "TextFields.InstanceAttributeField",
    "dataType": "class",
    "constructors": [
      {
        "signature": "TextFields.InstanceAttributeField(string key, string prompt, string defaultValue)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Block attribute definition.",
        "since": "7.0",
        "parameters": [
          {
            "name": "key",
            "type": "System.String",
            "summary": "Attribute key"
          },
          {
            "name": "prompt",
            "type": "System.String",
            "summary": "Prompt displayed by the UI when inserting a block"
          },
          {
            "name": "defaultValue",
            "type": "System.String",
            "summary": "Default value used when inserting a block"
          }
        ]
      }
    ],
    "properties": [
      {
        "signature": "string DefaultValue",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Default value used when inserting a block",
        "since": "7.0",
        "property": ["get"]
      },
      {
        "signature": "string Key",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Attribute key",
        "since": "7.0",
        "property": ["get"]
      },
      {
        "signature": "string Prompt",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Prompt displayed by the UI when inserting a block",
        "since": "7.0",
        "property": ["get"]
      }
    ]
  },
  {
    "namespace": "Rhino.Runtime",
    "name": "ViewCaptureWriter",
    "dataType": "class",
    "summary": "Callback system used by SVG and PDF exporter to generate documents. Not intended for general SDK usage",
    "constructors": [
      {
        "signature": "ViewCaptureWriter(double dpi, Size pageSize)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0"
      }
    ],
    "properties": [
      {
        "signature": "double Dpi",
        "modifiers": ["protected"],
        "protected": true,
        "virtual": false,
        "property": ["get"]
      },
      {
        "signature": "Size PageSize",
        "modifiers": ["protected"],
        "protected": true,
        "virtual": false,
        "property": ["get"]
      }
    ],
    "methods": [
      {
        "signature": "System.Void Draw(System.IntPtr constPtrPrintInfo, RhinoDoc doc)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.15"
      },
      {
        "signature": "System.Void DrawBitmap(Bitmap bitmap, System.Double m11, System.Double m12, System.Double m21, System.Double m22, System.Double dx, System.Double dy)",
        "modifiers": ["protected", "abstract"],
        "protected": true,
        "virtual": false
      },
      {
        "signature": "System.Void DrawCircle(PointF center, System.Single diameter, Color fillColor, Pen stroke)",
        "modifiers": ["protected", "abstract"],
        "protected": true,
        "virtual": false
      },
      {
        "signature": "System.Void DrawGradientHatch(Display.DisplayPipeline pipeline, Hatch hatch, Rhino.DocObjects.HatchPattern pattern, Color[] gradientColors, System.Single[] gradientStops, Point3d gradientPoint1, Point3d gradientPoint2, System.Boolean linearGradient, Color boundaryColor, System.Double pointScale, System.Double effectiveHatchScale)",
        "modifiers": ["protected", "abstract"],
        "protected": true,
        "virtual": false
      },
      {
        "signature": "System.Void DrawPath(PathPoint[] points, Pen pen, System.Boolean linearGradient, Display.ColorStop[] stops, Point2d[] gradientPoints, System.Double pointScale)",
        "modifiers": ["protected", "abstract"],
        "protected": true,
        "virtual": false
      },
      {
        "signature": "System.Void DrawRectangle(RectangleF rect, Color fillColor, System.Single strokeWidth, Color strokeColor, System.Single cornerRadius)",
        "modifiers": ["protected", "abstract"],
        "protected": true,
        "virtual": false
      },
      {
        "signature": "System.Void DrawScreenText(System.String text, Color textColor, System.Double x, System.Double y, System.Single angle, System.Int32 horizontalAlignment, System.Single heightPoints, DocObjects.Font font)",
        "modifiers": ["protected", "abstract"],
        "protected": true,
        "virtual": false
      },
      {
        "signature": "System.Void FillPolygon(PointF[] points, Color fillColor)",
        "modifiers": ["protected", "abstract"],
        "protected": true,
        "virtual": false
      },
      {
        "signature": "System.Void Flush()",
        "modifiers": ["protected"],
        "protected": true,
        "virtual": false
      },
      {
        "signature": "System.Void PopClipPath()",
        "modifiers": ["protected"],
        "protected": true,
        "virtual": false
      },
      {
        "signature": "System.Void PushClipPath(PathPoint[] points)",
        "modifiers": ["protected"],
        "protected": true,
        "virtual": false
      },
      {
        "signature": "System.Void PushClipPath(RectangleF rect)",
        "modifiers": ["protected"],
        "protected": true,
        "virtual": false
      },
      {
        "signature": "System.Void SetClipPath(PathPoint[] points)",
        "modifiers": ["protected", "abstract"],
        "protected": true,
        "virtual": false
      },
      {
        "signature": "System.Boolean SupportsArc()",
        "modifiers": ["protected", "virtual"],
        "protected": true,
        "virtual": true
      }
    ]
  },
  {
    "namespace": "Rhino.Runtime",
    "name": "ViewCaptureWriter.PathPoint",
    "dataType": "struct",
    "properties": [
      {
        "signature": "PointF Location",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "PointType PointType",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get", "set"]
      }
    ]
  },
  {
    "namespace": "Rhino.Runtime",
    "name": "ViewCaptureWriter.Pen",
    "dataType": "class",
    "constructors": [
      {
        "signature": "ViewCaptureWriter.Pen()",
        "summary": "Initializes a new instance of the ViewCaptureWriter.Pen class"
      }
    ],
    "properties": [
      {
        "signature": "LineCapStyle Cap",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "Color Color",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "LineJoinStyle Join",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "float[] Pattern",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "8.0",
        "property": ["get", "set"]
      },
      {
        "signature": "float Width",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get", "set"]
      }
    ]
  },
  {
    "namespace": "Rhino.Runtime",
    "name": "ViewCaptureWriter.PointType",
    "dataType": "enum",
    "since": "6.0",
    "values": [
      {
        "signature": "Move",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Line",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "CubicBezier",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Close",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Arc",
        "modifiers": [],
        "protected": false,
        "virtual": false
      }
    ]

  },
  {
    "namespace": "Rhino.Runtime",
    "name": "ZooClientParameters",
    "dataType": "class",
    "summary": "ZooClientParameters is a read-only set of parameters that control the flow of licensing inside ZooClient. Because this class flows through a number of other classes, functions, and UI, it is read-only so that inadvertent changes are not made to the data as it propagates from the caller.",
    "constructors": [
      {
        "signature": "ZooClientParameters(Guid productGuid, Guid licenseGuid, string productTitle, int productBuildType, LicenseCapabilities capabilities, string licenseEntryTextMask, string productPath, object parentWindow, LicenseTypes selectedLicenseType, ValidateProductKeyDelegate validateProductKey, OnLeaseChangedDelegate onLeaseChangedDelegate, VerifyLicenseKeyDelegate verifyLicenseKeyDelegate, VerifyPreviousVersionLicenseDelegate verifyPreviousVersionLicenseKeyDelegate)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "ZooClientParameters Constructor",
        "since": "6.0",
        "parameters": [
          {
            "name": "productGuid",
            "type": "System.Guid",
            "summary": "Guid used by ZooClient to identify the plug-in requesting a license from ZooClient. This Guid may be used by different versions of the plug-in. If different licenses are used by different versions of the plug-in, the plug-in must also specify a LicenseGuid."
          },
          {
            "name": "licenseGuid",
            "type": "System.Guid",
            "summary": "Guid used by ZooClient to identify the license saved by ZooClient. This differs from ProductGuid because different versions of a plug-in with the same Plug-in ID may need different licenses."
          },
          {
            "name": "productTitle",
            "type": "System.String",
            "summary": "Title of product displayed in user interface"
          },
          {
            "name": "productBuildType",
            "type": "System.Int32",
            "summary": ""
          },
          {
            "name": "capabilities",
            "type": "LicenseCapabilities",
            "summary": "Enum that declares whether this product supports evalation, licensing, purchasing, and cloud zoo"
          },
          {
            "name": "licenseEntryTextMask",
            "type": "System.String",
            "summary": "Text mask used to limit input. EG: RH50-AAAA-AAAA-AAAA-AAAA-AAAA"
          },
          {
            "name": "productPath",
            "type": "System.String",
            "summary": "Full path to DLL implementing product"
          },
          {
            "name": "parentWindow",
            "type": "System.Object",
            "summary": "Object used to parent UI DLLs"
          },
          {
            "name": "selectedLicenseType",
            "type": "LicenseTypes",
            "summary": "Type of license currently used by this product"
          },
          {
            "name": "validateProductKey",
            "type": "ValidateProductKeyDelegate",
            "summary": "Delegate called to validate the structure of a license key"
          },
          {
            "name": "onLeaseChangedDelegate",
            "type": "OnLeaseChangedDelegate",
            "summary": "Delegate called when a cloud zoo lease changes"
          },
          {
            "name": "verifyLicenseKeyDelegate",
            "type": "VerifyLicenseKeyDelegate",
            "summary": "Delegate called to verify the structure of a license key"
          },
          {
            "name": "verifyPreviousVersionLicenseKeyDelegate",
            "type": "VerifyPreviousVersionLicenseDelegate",
            "summary": "Delegate called to verify the structure of an upgrade license key"
          }
        ]
      }
    ],
    "properties": [
      {
        "signature": "LicenseCapabilities Capabilities",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "LicenseCapabilities flags that set options for how licenses can be obtained for this product",
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "string LicenseEntryTextMask",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Text mask in the form @\"RH4A-AAAA-AAAA-AAAA-AAAA-AAAA\" that informs the user what numbers they are looking for",
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "Guid LicenseGuid",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Guid used by ZooClient to identify the license saved by ZooClient. This differs from ProductGuid because different versions of a plug-in with the same Plug-in ID may need different licenses.",
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "OnLeaseChangedDelegate OnLeaseChanged",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Delegate called by ZooClient when a cloud zoo lease is changed",
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "object ParentWindow",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Parent window assigned to any licensing dialogs that appear. If null, the Rhino main window is used.",
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "int ProductBuildType",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Product build type. Must be one of LicenseBuildType values.",
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "Guid ProductGuid",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Guid used by ZooClient to identify the plug-in requesting a license from ZooClient. This Guid may be used by different versions of the plug-in. If different licenses are used by different versions of the plug-in, the plug-in must also specify a LicenseGuid.",
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "string ProductPath",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Path to the application calling ZooClient",
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "string ProductTitle",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Title of the product, \"Rhinoceros 6\" for example.",
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "LicenseTypes SelectedLicenseType",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "License type selected by default when user is prompted to enter a license key",
        "since": "6.0",
        "property": ["get", "set"]
      }
    ],
    "methods": [
      {
        "signature": "ValidateResult VerifyLicenseKey(System.String licenseKey, System.String validationCode, System.DateTime validationCodeInstallDate, System.Boolean gracePeriodExpired, out LicenseData licenseData)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Called by GetLicense to ensure that the license key entered by the user is legitimate and can be used.",
        "since": "6.0",
        "parameters": [
          {
            "name": "licenseKey",
            "type": "System.String",
            "summary": "License key string entered by user"
          },
          {
            "name": "validationCode",
            "type": "System.String",
            "summary": "Validation code entered by user (only if a previous call to VerifyLicenseKey set LicenseData.RequiresOnlineValidation to true)."
          },
          {
            "name": "validationCodeInstallDate",
            "type": "System.DateTime",
            "summary": "Date that validation code was entered by user (only if a previous call to VerifyLicenseKey set LicenseData.RequiresOnlineValidation to true)."
          },
          {
            "name": "gracePeriodExpired",
            "type": "System.Boolean",
            "summary": "Date by which license validation must complete successfully."
          },
          {
            "name": "licenseData",
            "type": "LicenseData",
            "summary": "Output parameter where return data about the license is set."
          }
        ]
      },
      {
        "signature": "System.Boolean VerifyPreviousVersionLicense(System.String license, System.String previousVersionLicense, out System.String errorMessage)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "When a caller calls GetLicense, ZooClient may call VerifyPreviousVersionLicense to ensure previousVersionLicense is legitimate and can be used to upgrade license.",
        "since": "6.0",
        "parameters": [
          {
            "name": "license",
            "type": "System.String",
            "summary": "License key for current product. This was returned by a previous call to VerifyLicenseKey or ValidateProductKey."
          },
          {
            "name": "previousVersionLicense",
            "type": "System.String",
            "summary": "License key entered by user to show upgrade eligibility for license."
          },
          {
            "name": "errorMessage",
            "type": "System.String",
            "summary": "Error message to be displayed to user if something isn't correct."
          }
        ]
      }
    ]
  },
  {
    "namespace": "Rhino",
    "name": "RuntimeEnvironment",
    "dataType": "enum",
    "summary": "ON::RuntimeEnvironment identifies a runtime environment (operating system). This value is saved in binary archives so appropriate adjustments to resources provided by runtime environments, like fonts, can be made when an archive created in one runtime environment is used in another.",
    "values": [
      {
        "signature": "Unset =  0",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "ON::RuntimeEnvironment::Unset indicates no runtime is set."
      },
      {
        "signature": "None = 1",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "ON::RuntimeEnvironment::None indicates no runtime. This is a different condition from ON::Runtime::Unset."
      },
      {
        "signature": "Windows = 2",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "ON::RuntimeEnvironment::Windows indicates some version of Microsoft Windows."
      },
      {
        "signature": "Apple = 3",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "ON::RuntimeEnvironment::Apple indicates some version of Apple OS X or iOS."
      },
      {
        "signature": "Android =  4",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "ON::RuntimeEnvironment::Android indicates some version of Google Android."
      },
      {
        "signature": "Linux = 5",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "ON::RuntimeEnvironment::Linux indicates some version of Linux."
      },
      {
        "signature": "WebAssembly = 6",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "ON::RuntimeEnvironment::WebAssembly indicates some version of WASM / WebAssembly."
      }
    ]

  },
  {
    "namespace": "Rhino",
    "name": "ScaleValue",
    "dataType": "class",
    "summary": "Represents a scale with associated LengthValues and string representations of the scale. This allows for going back and forth from numerical representations of a scale and a string representation without \"guessing\" at the initial scale.",
    "interfaces": ["IDisposable"],
    "constructors": [
      {
        "signature": "ScaleValue()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Default constructor",
        "since": "6.0"
      }
    ],
    "properties": [
      {
        "signature": "double LeftToRightScale",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "LeftLengthValue / RightLengthValue",
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "double RightToLeftScale",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "RightLengthValue / LeftLengthValue",
        "since": "6.0",
        "property": ["get"]
      }
    ],
    "methods": [
      {
        "signature": "ScaleValue Create(LengthValue left, LengthValue right, ScaleStringFormat format)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Create from 2 length values",
        "since": "6.0"
      },
      {
        "signature": "ScaleValue Create(System.String s, StringParserSettings ps)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Create from string",
        "since": "6.0"
      },
      {
        "signature": "ScaleValue OneToOne()",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Make a new ScaleValue set to OneToOne",
        "since": "6.0"
      },
      {
        "signature": "System.Void Dispose()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "actively reclaim native allocated ON_SacleValue*",
        "since": "6.0"
      },
      {
        "signature": "System.Boolean IsUnset()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Test IsUnset",
        "since": "6.0"
      },
      {
        "signature": "LengthValue LeftLengthValue()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Get the Left LengthValue from Scale",
        "since": "6.0"
      },
      {
        "signature": "LengthValue RightLengthValue()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Get the Right LengthValue from Scale",
        "since": "6.0"
      }
    ]
  },
  {
    "namespace": "Rhino",
    "name": "ScaleValue.ScaleStringFormat",
    "dataType": "enum",
    "summary": "Specifies preferred formats for automatically created string descriptions of a scale value.",
    "values": [
      {
        "signature": "None = 0",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "No preference for automatically created string descriptions of a scale value."
      },
      {
        "signature": "RatioFormat = 1",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Prefer the ratio format using a colon, like \"1:4\" or \"4:1\"."
      },
      {
        "signature": "EquationFormat = 2",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Prefer the equation format using an equal sign, like \"1 = 4\" or \"4 = 1\"."
      },
      {
        "signature": "FractionFormat = 3",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Prefer the fraction format using a slash, like \"1/4\" or \"4/1\"."
      },
      {
        "signature": "Unset = 0xFF",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "ON_ScaleValue::ScaleStringFormat::Unset is used to indicate no preference is set. This condition is different from ON_ScaleValue::ScaleStringFormat::None."
      }
    ]

  },
  {
    "namespace": "Rhino",
    "name": "Symbols",
    "dataType": "class",
    "summary": "Characters used for different 'drafting style' symbols",
    "constructors": [
      {
        "signature": "Symbols()",
        "summary": "Initializes a new instance of the Symbols class"
      }
    ],
    "properties": [
      {
        "signature": "char DegreeSymbol",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Degree symbol used for angles",
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "char DiameterSymbol",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Diameter symbol",
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "char PlusMinusSymbol",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Plus-Minus tolerance symbol",
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "char RadiusSymbol",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Radius symbol",
        "since": "6.0",
        "property": ["get"]
      }
    ]
  },
  {
    "namespace": "Rhino.UI",
    "name": "CommandPromptChangedEventArgs",
    "dataType": "class",
    "summary": "Event args for the CommandPromptChanged event",
    "baseclass": "EventArgs",
    "properties": [
      {
        "signature": "CommandLineOption[] Options",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Active command line options",
        "since": "9.0",
        "property": ["get"]
      },
      {
        "signature": "string Prompt",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Command line prompt text",
        "since": "9.0",
        "property": ["get"]
      },
      {
        "signature": "string PromptDefault",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Default command line prompt text",
        "since": "9.0",
        "property": ["get"]
      }
    ]
  },
  {
    "namespace": "Rhino.UI",
    "name": "ControlHorizontalAlignment",
    "dataType": "enum",
    "summary": "Horizontal alignment settings for control with respect to it's parent",
    "values": [
      {
        "signature": "Left = 0",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Center = 1",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Right = 2",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Stretch = 3",
        "modifiers": [],
        "protected": false,
        "virtual": false
      }
    ]

  },
  {
    "namespace": "Rhino.UI.Controls",
    "name": "CollapsibleSectionHolderImpl",
    "dataType": "class",
    "interfaces": ["IMPL_CALLBACKS", "IDisposable"],
    "constructors": [
      {
        "signature": "CollapsibleSectionHolderImpl(ICollapsibleSectionHolder client)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0"
      }
    ],
    "properties": [
      {
        "signature": "IntPtr CppPointer",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get"]
      }
    ],
    "methods": [
      {
        "signature": "ICollapsibleSectionHolder Find(System.IntPtr cpp)",
        "modifiers": ["static", "public"],
        "protected": false,
        "virtual": false,
        "since": "6.0"
      },
      {
        "signature": "ICollapsibleSectionHolder NewNativeWrapper(System.IntPtr cpp)",
        "modifiers": ["static", "public"],
        "protected": false,
        "virtual": false,
        "since": "6.0"
      },
      {
        "signature": "System.Void Dispose()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0"
      },
      {
        "signature": "System.Boolean IsSameObject(System.IntPtr cpp)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0"
      }
    ]
  },
  {
    "namespace": "Rhino.UI.Controls",
    "name": "CollapsibleSectionImpl",
    "dataType": "class",
    "interfaces": ["IMPL_CALLBACKS", "IDisposable"],
    "constructors": [
      {
        "signature": "CollapsibleSectionImpl(ICollapsibleSection section)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0"
      }
    ],
    "properties": [
      {
        "signature": "IntPtr CppPointer",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "IRdkViewModel ViewModel",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get", "set"]
      }
    ],
    "methods": [
      {
        "signature": "System.Void CreateHostedSection(ICollapsibleSection section)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "6.0"
      },
      {
        "signature": "ICollapsibleSection Find(System.IntPtr cpp)",
        "modifiers": ["static", "public"],
        "protected": false,
        "virtual": false,
        "since": "6.0"
      },
      {
        "signature": "ICollapsibleSection GetSibling(ICollapsibleSection section, System.Guid siblingSectionId)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "6.0"
      },
      {
        "signature": "ICollapsibleSection[] GetSiblings(ICollapsibleSection section)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "6.0"
      },
      {
        "signature": "ICollapsibleSection NewNativeWrapper(System.IntPtr cpp)",
        "modifiers": ["static", "public"],
        "protected": false,
        "virtual": false,
        "since": "6.0"
      },
      {
        "signature": "System.Void __InternalSetParent(System.IntPtr parent)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0"
      },
      {
        "signature": "System.Void Dispose()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0"
      },
      {
        "signature": "System.Boolean IsSameObject(System.IntPtr cpp)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0"
      },
      {
        "signature": "System.Void ReplaceClient(ICollapsibleSection client)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0"
      }
    ],
    "events": [
      {
        "signature": "EventHandler ViewModelActivated",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0"
      },
      {
        "signature": "EventHandler<Rhino.UI.Controls.DataSource.EventArgs> DataChanged",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0"
      }
    ]

  },
  {
    "namespace": "Rhino.UI.Controls",
    "name": "CollapsibleSectionImpl.Factory",
    "dataType": "class",
    "baseclass": "Rhino.UI.Controls.FactoryBase",
    "constructors": [
      {
        "signature": "CollapsibleSectionImpl.Factory()",
        "summary": "Initializes a new instance of the CollapsibleSectionImpl.Factory class"
      }
    ]
  },
  {
    "namespace": "Rhino.UI.Controls",
    "name": "CollapsibleSectionViewModel",
    "dataType": "class",
    "summary": "Derive from this class to implement your own view model that wraps around a built in implementation of IRdkViewModel.  Use GetData etc to implement your properties.",
    "baseclass": "Rhino.UI.Controls.IRdkViewModel",
    "constructors": [
      {
        "signature": "CollapsibleSectionViewModel(ICollapsibleSection section)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Construct from your section - the view model should be a member of the section",
        "since": "6.0"
      }
    ],
    "properties": [
      {
        "signature": "IntPtr CppPointer",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get"]
      }
    ],
    "methods": [
      {
        "signature": "System.Void Commit(System.Guid uuidDataType)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0"
      },
      {
        "signature": "System.Void Discard(System.Guid uuidDataType)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0"
      },
      {
        "signature": "System.Object GetData(System.Guid uuidDataType, System.Boolean bForWrite, System.Boolean bAutoChangeBracket)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Call for an interface to data",
        "since": "6.0"
      },
      {
        "signature": "UndoRecord UndoHelper(System.String description)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Helper function to ease the use of undo records",
        "since": "6.0",
        "returns": "Return the undo record"
      }
    ]
  },
  {
    "namespace": "Rhino.UI.Controls",
    "name": "ContentUI",
    "dataType": "class",
    "summary": "This class represents the user interface (UI) of a content. A content's UI appears inside an editor which is represented by IRhRdkContentEditor.The UI is the part of the editor which allows the user to view and modify the persistent state of the selected content(s). This interface is implemented by RDK internally in the core content class, CRhRdkCoreContent. If you do not override CRhRdkCoreContent::CreateUI() you do not have to concern yourself with the details.If however, you do want to override CreateUI() to create your own custom UI, then you must derive your UI class from CRhRdkCustomContentUI and implement this interface to support your own UI design. \\note CRhRdkCustomContentUI implements some of this interface for you.",
    "interfaces": ["IDisposable"],
    "constructors": [
      {
        "signature": "ContentUI(IntPtr pContentUI)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "ContentUI constructor",
        "since": "7.11"
      }
    ],
    "properties": [
      {
        "signature": "IntPtr CppPointer",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "7.11",
        "property": ["get"]
      }
    ],
    "methods": [
      {
        "signature": "ICollapsibleSectionHolder ContentUIHolder()",
        "modifiers": ["public", "virtual"],
        "protected": false,
        "virtual": true,
        "summary": "Returns the holder that contains the UI sections, if this is an expandable content UI with sections inside holders. Returns None for custom UIs.",
        "since": "7.11"
      },
      {
        "signature": "System.Void Dispose()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "7.11"
      },
      {
        "signature": "System.Guid EditorUuid()",
        "modifiers": ["public", "virtual"],
        "protected": false,
        "virtual": true,
        "summary": "Get the unique identifier of the editor that the UI is being displayed in.",
        "since": "7.11"
      },
      {
        "signature": "System.Boolean IsCreated()",
        "modifiers": ["public", "virtual"],
        "protected": false,
        "virtual": true,
        "summary": "Returns True if the UI is created, else false",
        "since": "7.11"
      },
      {
        "signature": "System.Boolean IsShown()",
        "modifiers": ["public", "virtual"],
        "protected": false,
        "virtual": true,
        "summary": "Returns True if the UI is being shown, else false",
        "since": "7.11"
      },
      {
        "signature": "System.Guid Uuid()",
        "modifiers": ["public", "virtual"],
        "protected": false,
        "virtual": true,
        "summary": "Get the unique identifier of the UI.",
        "since": "7.11"
      }
    ],
    "fields": [
      {
        "signature": "protected IntPtr m_cpp",
        "modifiers": ["protected"],
        "protected": true,
        "virtual": false
      }
    ]

  },
  {
    "namespace": "Rhino.UI.Controls.DataSource",
    "name": "EventArgs",
    "dataType": "class",
    "baseclass": "System.EventArgs",
    "properties": [
      {
        "signature": "Guid DataType",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get", "set"]
      }
    ]
  },
  {
    "namespace": "Rhino.UI.Controls.DataSource",
    "name": "EventInfoArgs",
    "dataType": "class",
    "baseclass": "System.EventArgs",
    "properties": [
      {
        "signature": "Guid DataType",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "IntPtr EventInfoPtr",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get", "set"]
      }
    ]
  },
  {
    "namespace": "Rhino.UI.Controls.DataSource",
    "name": "ProviderIds",
    "dataType": "class",
    "constructors": [
      {
        "signature": "ProviderIds()",
        "summary": "Initializes a new instance of the ProviderIds class"
      }
    ],
    "properties": [
      {
        "signature": "Guid ContentChildSlot",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "6.1",
        "property": ["get"]
      },
      {
        "signature": "Guid ContentDatabase",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "Guid ContentDisplayCollection",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "Guid ContentEditorSettings",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "Guid ContentLookup",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "Guid ContentParam",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "Guid ContentPreviewRendered",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "Guid ContentSelection",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "Guid ContentSelectionForSetParams",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "7.7",
        "property": ["get"]
      },
      {
        "signature": "Guid ContentUIs",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "Guid ContentUpdatePreviewMarkersEventInfo",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "Guid CurrentEnvironment",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "Guid Decals",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "6.5",
        "property": ["get"]
      },
      {
        "signature": "Guid Dithering",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "Guid GroundPlane",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "Guid ImageFileInfo",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "6.2",
        "property": ["get"]
      },
      {
        "signature": "Guid ImageFileInfo_V8",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "8.0",
        "property": ["get"]
      },
      {
        "signature": "Guid LinearWorkflow",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "Guid NamedItem",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "6.10",
        "property": ["get"]
      },
      {
        "signature": "Guid NewContentControlAssignBy",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "Guid NullGuid",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "Guid PreviewSettings",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "Guid RdkEdit",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "6.5",
        "property": ["get"]
      },
      {
        "signature": "Guid RdkRendering",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "6.8",
        "property": ["get"]
      },
      {
        "signature": "Guid RdkRenderingGamma",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "6.8",
        "property": ["get"]
      },
      {
        "signature": "Guid RdkRenderingPostEffectBloom",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "7.0",
        "property": ["get"]
      },
      {
        "signature": "Guid RdkRenderingPostEffectDOF",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "6.10",
        "property": ["get"]
      },
      {
        "signature": "Guid RdkRenderingPostEffectFog",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "6.10",
        "property": ["get"]
      },
      {
        "signature": "Guid RdkRenderingPostEffectGlare",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "6.10",
        "property": ["get"]
      },
      {
        "signature": "Guid RdkRenderingPostEffectGlow",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "6.10",
        "property": ["get"]
      },
      {
        "signature": "Guid RdkRenderingPostEffects",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "6.8",
        "property": ["get"]
      },
      {
        "signature": "Guid RdkRenderingProgress",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "6.8",
        "property": ["get"]
      },
      {
        "signature": "Guid RdkRenderingToneMapping",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "6.8",
        "property": ["get"]
      },
      {
        "signature": "Guid RenderChannels",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "7.0",
        "property": ["get"]
      },
      {
        "signature": "Guid RhinoSettings",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "Guid SelectionNavigator",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "Guid Skylight",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "Guid Sun",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "Guid Undo",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "6.11",
        "property": ["get"]
      },
      {
        "signature": "Guid UndoRecord",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get"]
      }
    ]
  },
  {
    "namespace": "Rhino.UI.Controls",
    "name": "Delegates",
    "dataType": "class"
  },
  {
    "namespace": "Rhino.UI.Controls",
    "name": "ExpandableContentUI",
    "dataType": "class",
    "summary": "This class extends ContentUI to represent the default user interface which the RDK provides for a content.This is the UI created by the default implementation of CRhRdkCoreContent::CreateUI(). The main feature of this implementation is a 'holder' containing one or more expandable 'sections' (AKA 'roll-ups').",
    "baseclass": "Rhino.UI.Controls.ContentUI",
    "interfaces": ["IDisposable"],
    "methods": [
      {
        "signature": "System.Void AddSection(ICollapsibleSection pSection, IRdkViewModel vm)",
        "modifiers": ["public", "virtual"],
        "protected": false,
        "virtual": true,
        "summary": "Add a section to the UI with a custom controller. Called \\e before Create().",
        "since": "7.11"
      },
      {
        "signature": "System.Void AddSection(ICollapsibleSection pSection)",
        "modifiers": ["public", "virtual"],
        "protected": false,
        "virtual": true,
        "summary": "Add a section to the UI. Called \\e before Create(). A generic controller is attached.",
        "since": "7.11"
      }
    ]
  },
  {
    "namespace": "Rhino.UI.Controls",
    "name": "FactoryBase",
    "dataType": "class",
    "summary": "Base class for CollapsibleSection and ViewModel factories used by the RDK UI",
    "methods": [
      {
        "signature": "System.Type[] Register()",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Call this function during startup of current assembly to load classes with factory creation support are registed",
        "since": "6.0"
      },
      {
        "signature": "System.Type[] Register(PlugIns.PlugIn plugin)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Call this function during the startup of your plug-in to ensure that all classes that support factory creation are registed",
        "since": "6.0"
      },
      {
        "signature": "System.IntPtr Get(System.Guid id)",
        "modifiers": ["public", "virtual"],
        "protected": false,
        "virtual": true,
        "summary": "Override this method to return a new instance of your class for the given ID",
        "since": "6.0"
      }
    ]
  },
  {
    "namespace": "Rhino.UI.Controls",
    "name": "ICollapsibleSection",
    "dataType": "interface",
    "properties": [
      {
        "signature": "Color BackgroundColor",
        "modifiers": [],
        "protected": true,
        "virtual": false,
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool Collapsible",
        "modifiers": [],
        "protected": true,
        "virtual": false,
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "LocalizeStringPair CommandOptionName",
        "modifiers": [],
        "protected": true,
        "virtual": false,
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "int Height",
        "modifiers": [],
        "protected": true,
        "virtual": false,
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "bool Hidden",
        "modifiers": [],
        "protected": true,
        "virtual": false,
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "Guid Id",
        "modifiers": [],
        "protected": true,
        "virtual": false,
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "bool InitiallyExpanded",
        "modifiers": [],
        "protected": true,
        "virtual": false,
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "Guid PlugInId",
        "modifiers": [],
        "protected": true,
        "virtual": false,
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "string SettingsTag",
        "modifiers": [],
        "protected": true,
        "virtual": false,
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "IRdkViewModel ViewModel",
        "modifiers": [],
        "protected": true,
        "virtual": false,
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "Guid ViewModelId",
        "modifiers": [],
        "protected": true,
        "virtual": false,
        "since": "6.0",
        "property": ["get"]
      }
    ],
    "methods": [
      {
        "signature": "System.Int32 RunScript(IRdkViewModel vm)",
        "modifiers": [],
        "protected": true,
        "virtual": false,
        "since": "6.0"
      }
    ]
  },
  {
    "namespace": "Rhino.UI.Controls",
    "name": "ICollapsibleSection2",
    "dataType": "interface",
    "methods": [
      {
        "signature": "System.Boolean EnableHeaderButton(System.Int32 index, System.Boolean bEnable)",
        "modifiers": [],
        "protected": true,
        "virtual": false,
        "since": "7.4"
      },
      {
        "signature": "IHeaderButtonHandler NewHeaderButtonHandler()",
        "modifiers": [],
        "protected": true,
        "virtual": false,
        "since": "7.4"
      },
      {
        "signature": "System.Void OnAttachedToHolder(ICollapsibleSectionHolder2 holder)",
        "modifiers": [],
        "protected": true,
        "virtual": false,
        "since": "7.4"
      },
      {
        "signature": "System.Void OnAttachingToHolder(ICollapsibleSectionHolder2 holder)",
        "modifiers": [],
        "protected": true,
        "virtual": false,
        "since": "7.4"
      },
      {
        "signature": "System.Void OnDetachedFromHolder(ICollapsibleSectionHolder2 holder)",
        "modifiers": [],
        "protected": true,
        "virtual": false,
        "since": "7.4"
      },
      {
        "signature": "System.Void OnDetachingFromHolder(ICollapsibleSectionHolder2 holder)",
        "modifiers": [],
        "protected": true,
        "virtual": false,
        "since": "7.4"
      },
      {
        "signature": "System.Boolean ShowHeaderButton(System.Int32 index, System.Boolean bShow)",
        "modifiers": [],
        "protected": true,
        "virtual": false,
        "since": "7.4"
      }
    ]
  },
  {
    "namespace": "Rhino.UI.Controls",
    "name": "ICollapsibleSection3",
    "dataType": "interface",
    "methods": [
      {
        "signature": "System.Void UpdateView(System.UInt32 flags)",
        "modifiers": [],
        "protected": true,
        "virtual": false,
        "since": "7.7"
      }
    ]
  },
  {
    "namespace": "Rhino.UI.Controls",
    "name": "ICollapsibleSectionHolder",
    "dataType": "interface",
    "properties": [
      {
        "signature": "Color BackgroundColor",
        "modifiers": [],
        "protected": true,
        "virtual": false,
        "since": "6.0",
        "property": ["set"]
      },
      {
        "signature": "int BottomMargin",
        "modifiers": [],
        "protected": true,
        "virtual": false,
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "string EmptyText",
        "modifiers": [],
        "protected": true,
        "virtual": false,
        "since": "6.0",
        "property": ["set"]
      },
      {
        "signature": "int LeftMargin",
        "modifiers": [],
        "protected": true,
        "virtual": false,
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "int RightMargin",
        "modifiers": [],
        "protected": true,
        "virtual": false,
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "int ScrollPosition",
        "modifiers": [],
        "protected": true,
        "virtual": false,
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "int SectionCount",
        "modifiers": [],
        "protected": true,
        "virtual": false,
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "IEnumerable<ICollapsibleSection> Sections",
        "modifiers": [],
        "protected": true,
        "virtual": false,
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "string SettingsPathSubKey",
        "modifiers": [],
        "protected": true,
        "virtual": false,
        "since": "6.0",
        "property": ["set"]
      },
      {
        "signature": "int TopMargin",
        "modifiers": [],
        "protected": true,
        "virtual": false,
        "since": "6.0",
        "property": ["get", "set"]
      }
    ],
    "methods": [
      {
        "signature": "System.Void Add(ICollapsibleSection section)",
        "modifiers": [],
        "protected": true,
        "virtual": false,
        "since": "6.0"
      },
      {
        "signature": "System.Void ExpandSection(ICollapsibleSection section, System.Boolean expand, System.Boolean ensureVisible)",
        "modifiers": [],
        "protected": true,
        "virtual": false,
        "since": "6.0"
      },
      {
        "signature": "System.Boolean IsSectionExpanded(ICollapsibleSection section)",
        "modifiers": [],
        "protected": true,
        "virtual": false,
        "since": "6.0"
      },
      {
        "signature": "System.Void Remove(ICollapsibleSection section)",
        "modifiers": [],
        "protected": true,
        "virtual": false,
        "since": "6.0"
      },
      {
        "signature": "ICollapsibleSection SectionAt(System.Int32 index)",
        "modifiers": [],
        "protected": true,
        "virtual": false,
        "since": "6.0"
      },
      {
        "signature": "System.Void UpdateAllViews(System.Int32 flags)",
        "modifiers": [],
        "protected": true,
        "virtual": false,
        "since": "6.0"
      }
    ]
  },
  {
    "namespace": "Rhino.UI.Controls",
    "name": "ICollapsibleSectionHolder2",
    "dataType": "interface",
    "methods": [
      {
        "signature": "System.Boolean EnableHeaderButton(ICollapsibleSection s, System.Int32 index, System.Boolean bEnable)",
        "modifiers": [],
        "protected": true,
        "virtual": false,
        "since": "7.4"
      },
      {
        "signature": "System.Void SetFullHeightSection(ICollapsibleSection sec)",
        "modifiers": [],
        "protected": true,
        "virtual": false,
        "since": "7.4"
      },
      {
        "signature": "System.Boolean ShowHeaderButton(ICollapsibleSection s, System.Int32 index, System.Boolean bShow)",
        "modifiers": [],
        "protected": true,
        "virtual": false,
        "since": "7.4"
      }
    ]
  },
  {
    "namespace": "Rhino.UI.Controls",
    "name": "IHasCppImplementation",
    "dataType": "interface",
    "properties": [
      {
        "signature": "IntPtr CppPointer",
        "modifiers": [],
        "protected": true,
        "virtual": false,
        "since": "6.0",
        "property": ["get"]
      }
    ]
  },
  {
    "namespace": "Rhino.UI.Controls",
    "name": "IHeaderButtonHandler",
    "dataType": "interface",
    "summary": "This interface represents a handler for putting custom buttons on the header of IRhinoUiSection.",
    "methods": [
      {
        "signature": "System.Boolean ButtonDetails(System.Int32 index, ref System.Drawing.Bitmap iconOut, ref System.String sToolTipOut)",
        "modifiers": [],
        "protected": true,
        "virtual": false,
        "summary": "Implement this method to describe custom buttons on the section header. RDK calls this method continually increasing iIndex until it returns \\e false",
        "since": "7.4",
        "parameters": [
          {
            "name": "index",
            "type": "System.Int32",
            "summary": "index is the button index starting at zero and increasing with each call."
          },
          {
            "name": "iconOut",
            "type": "System.Drawing.Bitmap",
            "summary": "iconOut accepts the button's imagery, or 'icon'. If an icon is not required, do not set this parameter."
          },
          {
            "name": "sToolTipOut",
            "type": "System.String",
            "summary": "sToolTipOut accepts the button's tool-tip. If a tool-tip is not required, do not set this parameter."
          }
        ],
        "returns": "\\e True if button is required, \\e False to stop."
      },
      {
        "signature": "Rectangle ButtonRect(System.Int32 index, Rectangle rectHeader)",
        "modifiers": [],
        "protected": true,
        "virtual": false,
        "summary": "Implement this method to get the rectangle of a button on the header window.",
        "since": "7.4",
        "parameters": [
          {
            "name": "index",
            "type": "System.Int32",
            "summary": "index is the index of the button."
          },
          {
            "name": "rectHeader",
            "type": "Rectangle",
            "summary": "rectHeader is the usable area of the header where the buttons can be placed."
          }
        ],
        "returns": "The rectangle of the button."
      },
      {
        "signature": "System.Void DeleteThis()",
        "modifiers": [],
        "protected": true,
        "virtual": false,
        "since": "7.4"
      },
      {
        "signature": "System.Boolean OnButtonClicked(System.Int32 index)",
        "modifiers": [],
        "protected": true,
        "virtual": false,
        "summary": "Implement this method to handle a button click.",
        "since": "7.4",
        "parameters": [
          {
            "name": "index",
            "type": "System.Int32",
            "summary": "index is the index of the button that was clicked"
          }
        ],
        "returns": "\\e True if handled successfully, else \\e false."
      }
    ]
  },
  {
    "namespace": "Rhino.UI.Controls",
    "name": "InternalRdkViewModel.EventPriority",
    "dataType": "enum",
    "values": [
      {
        "signature": "Low",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Normal",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "High",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "RealTime",
        "modifiers": [],
        "protected": false,
        "virtual": false
      }
    ]

  },
  {
    "namespace": "Rhino.UI.Controls",
    "name": "InternalRdkViewModel.NewUndoRecord",
    "dataType": "class",
    "interfaces": ["IDisposable"]
  },
  {
    "namespace": "Rhino.UI.Controls",
    "name": "InternalRdkViewModelFactory",
    "dataType": "class",
    "baseclass": "Rhino.UI.Controls.FactoryBase",
    "constructors": [
      {
        "signature": "InternalRdkViewModelFactory()",
        "summary": "Initializes a new instance of the InternalRdkViewModelFactory class"
      }
    ]
  },
  {
    "namespace": "Rhino.UI.Controls",
    "name": "IRdkViewModel",
    "dataType": "interface",
    "methods": [
      {
        "signature": "System.Void Commit(System.Guid uuidDataType)",
        "modifiers": [],
        "protected": true,
        "virtual": false,
        "since": "6.0"
      },
      {
        "signature": "System.Void Discard(System.Guid uuidDataType)",
        "modifiers": [],
        "protected": true,
        "virtual": false,
        "since": "6.0"
      },
      {
        "signature": "System.Object GetData(System.Guid uuidDataType, System.Boolean bForWrite, System.Boolean bAutoChangeBracket)",
        "modifiers": [],
        "protected": true,
        "virtual": false,
        "since": "6.0"
      }
    ]
  },
  {
    "namespace": "Rhino.UI.Controls",
    "name": "IWindow",
    "dataType": "interface",
    "properties": [
      {
        "signature": "LocalizeStringPair Caption",
        "modifiers": [],
        "protected": true,
        "virtual": false,
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "bool Created",
        "modifiers": [],
        "protected": true,
        "virtual": false,
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "bool Enabled",
        "modifiers": [],
        "protected": true,
        "virtual": false,
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "IntPtr Parent",
        "modifiers": [],
        "protected": true,
        "virtual": false,
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool Shown",
        "modifiers": [],
        "protected": true,
        "virtual": false,
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "IntPtr Window",
        "modifiers": [],
        "protected": true,
        "virtual": false,
        "since": "6.0",
        "property": ["get"]
      }
    ],
    "methods": [
      {
        "signature": "System.Void Move(System.Drawing.Rectangle pos, System.Boolean bRepaint, System.Boolean bRepaintBorder)",
        "modifiers": [],
        "protected": true,
        "virtual": false,
        "since": "6.0"
      }
    ]
  },
  {
    "namespace": "Rhino.UI.Controls.Thumbnaillist",
    "name": "ThumbnailList",
    "dataType": "class",
    "baseclass": "Eto.Forms.Panel",
    "interfaces": ["IThumbnailList"],
    "constructors": [
      {
        "signature": "ThumbnailList()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false
      }
    ],
    "properties": [
      {
        "signature": "ContentEditingContext CEC",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "property": ["get", "set"]
      },
      {
        "signature": "bool Created",
        "modifiers": ["public", "virtual"],
        "protected": false,
        "virtual": true,
        "property": ["get"]
      },
      {
        "signature": "bool Enabled",
        "modifiers": ["public", "new", "virtual"],
        "protected": false,
        "virtual": true,
        "property": ["get", "set"]
      },
      {
        "signature": "string EnglishCaption",
        "modifiers": ["public", "virtual"],
        "protected": false,
        "virtual": true,
        "property": ["get"]
      },
      {
        "signature": "bool Hidden",
        "modifiers": ["public", "virtual"],
        "protected": false,
        "virtual": true,
        "property": ["get", "set"]
      },
      {
        "signature": "IntPtr HolderParent",
        "modifiers": ["public", "virtual"],
        "protected": false,
        "virtual": true,
        "property": ["set"]
      },
      {
        "signature": "string LocalCaption",
        "modifiers": ["public", "virtual"],
        "protected": false,
        "virtual": true,
        "property": ["get"]
      },
      {
        "signature": "bool Shown",
        "modifiers": ["public", "new", "virtual"],
        "protected": false,
        "virtual": true,
        "property": ["get", "set"]
      },
      {
        "signature": "RdkThumbnaillistViewModel ViewModel",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "property": ["get"]
      }
    ],
    "methods": [
      {
        "signature": "System.Void Add(ref IRhRdkThumbnail t)",
        "modifiers": ["public", "virtual"],
        "protected": false,
        "virtual": true
      },
      {
        "signature": "System.Void Clear()",
        "modifiers": ["public", "virtual"],
        "protected": false,
        "virtual": true
      },
      {
        "signature": "Rhino.Render.RenderContent ContentFromThumbId(ref System.Guid uuidThumb)",
        "modifiers": ["public", "virtual"],
        "protected": false,
        "virtual": true
      },
      {
        "signature": "System.Void Dispose(System.Boolean disposing)",
        "modifiers": ["protected", "override"],
        "protected": true,
        "virtual": false
      },
      {
        "signature": "IRhRdkThumbnail Get(ref System.Guid u)",
        "modifiers": ["public", "virtual"],
        "protected": false,
        "virtual": true
      },
      {
        "signature": "System.Void GetGridMetrics(ref System.Int32 w, ref System.Int32 h, ref System.Int32 ox, ref System.Int32 oy)",
        "modifiers": ["public", "virtual"],
        "protected": false,
        "virtual": true
      },
      {
        "signature": "IRhRdkContentThumbnailList_Sizes GetSize()",
        "modifiers": ["public", "virtual"],
        "protected": false,
        "virtual": true
      },
      {
        "signature": "System.Void GetStatisticsHeaderHeight()",
        "modifiers": ["public", "virtual"],
        "protected": false,
        "virtual": true
      },
      {
        "signature": "IRhRdkThumbnailList_Modes Mode()",
        "modifiers": ["public", "virtual"],
        "protected": false,
        "virtual": true
      },
      {
        "signature": "System.Void Move(System.Drawing.Rectangle rect, System.Boolean bRepaint, System.Boolean bRepaintNC)",
        "modifiers": ["public", "virtual"],
        "protected": false,
        "virtual": true
      },
      {
        "signature": "System.Boolean PropagateSelectedAppearance()",
        "modifiers": ["public", "virtual"],
        "protected": false,
        "virtual": true
      },
      {
        "signature": "System.Void SaveMetaDataToDocument()",
        "modifiers": ["public", "virtual"],
        "protected": false,
        "virtual": true
      },
      {
        "signature": "Rhino.Render.PreviewAppearance SelectedAppearance()",
        "modifiers": ["public", "virtual"],
        "protected": false,
        "virtual": true
      },
      {
        "signature": "System.Void SetClientText(System.String w)",
        "modifiers": ["public", "virtual"],
        "protected": false,
        "virtual": true
      },
      {
        "signature": "System.Void SetCustomBitmapSize(System.Int32 w, System.Int32 h)",
        "modifiers": ["public", "virtual"],
        "protected": false,
        "virtual": true
      },
      {
        "signature": "System.Void SetMode(IRhRdkThumbnailList_Modes m, System.Boolean b)",
        "modifiers": ["public", "virtual"],
        "protected": false,
        "virtual": true
      },
      {
        "signature": "System.Void SetSearchPattern(System.String w)",
        "modifiers": ["public", "virtual"],
        "protected": false,
        "virtual": true
      },
      {
        "signature": "System.Void SetSettingsPath(System.String w)",
        "modifiers": ["public", "virtual"],
        "protected": false,
        "virtual": true
      },
      {
        "signature": "System.Void SetShowLabels(System.Boolean b)",
        "modifiers": ["public", "virtual"],
        "protected": false,
        "virtual": true
      },
      {
        "signature": "IRhRdkThumbnailList_Shapes Shape()",
        "modifiers": ["public", "virtual"],
        "protected": false,
        "virtual": true
      },
      {
        "signature": "System.Boolean ShowLabels()",
        "modifiers": ["public", "virtual"],
        "protected": false,
        "virtual": true
      },
      {
        "signature": "System.Guid UUID()",
        "modifiers": ["public", "virtual"],
        "protected": false,
        "virtual": true
      },
      {
        "signature": "System.Void ViewModelActivated()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false
      }
    ],
    "fields": [
      {
        "signature": "public Eto.Forms.StackLayout m_stack",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false
      }
    ]

  },
  {
    "namespace": "Rhino.UI.Controls.Thumbnaillist",
    "name": "ThumbnailList.IHandler",
    "dataType": "interface"
  },
  {
    "namespace": "Rhino.UI.Controls.ThumbnailUI",
    "name": "IRhRdkContentThumbnail",
    "dataType": "interface",
    "methods": [
      {
        "signature": "Rhino.Render.RenderContent ChildContent()",
        "modifiers": [],
        "protected": true,
        "virtual": false,
        "since": "6.0",
        "deprecated": "6.6"
      },
      {
        "signature": "System.Guid GroupId()",
        "modifiers": [],
        "protected": true,
        "virtual": false,
        "since": "6.0",
        "deprecated": "6.6"
      },
      {
        "signature": "Rhino.Render.RenderContent TopLevelContent()",
        "modifiers": [],
        "protected": true,
        "virtual": false,
        "since": "6.0",
        "deprecated": "6.6"
      }
    ]
  },
  {
    "namespace": "Rhino.UI.Controls.ThumbnailUI",
    "name": "IRhRdkContentThumbnailList_Sizes",
    "dataType": "enum",
    "since": "6.0",
    "deprecated": "6.6",
    "values": [
      {
        "signature": "Tiny",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Tiny thumbnails."
      },
      {
        "signature": "Small",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Small thumbnails."
      },
      {
        "signature": "Medium",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Medium thumbnails."
      },
      {
        "signature": "Large",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Large thumbnails."
      },
      {
        "signature": "Custom",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Custom-sized thumbnails."
      }
    ]

  },
  {
    "namespace": "Rhino.UI.Controls.ThumbnailUI",
    "name": "IRhRdkThumbnail",
    "dataType": "interface",
    "methods": [
      {
        "signature": "System.Void Dib(ref System.Drawing.Bitmap dibOut)",
        "modifiers": [],
        "protected": true,
        "virtual": false,
        "since": "6.0",
        "deprecated": "6.6"
      },
      {
        "signature": "System.Drawing.Bitmap GetDib()",
        "modifiers": [],
        "protected": true,
        "virtual": false,
        "since": "6.0",
        "deprecated": "6.6"
      },
      {
        "signature": "System.Void GetDisplayRect(ref RectangleF rectOut)",
        "modifiers": [],
        "protected": true,
        "virtual": false,
        "since": "6.0",
        "deprecated": "6.6"
      },
      {
        "signature": "System.Guid Id()",
        "modifiers": [],
        "protected": true,
        "virtual": false,
        "since": "6.0",
        "deprecated": "6.6"
      },
      {
        "signature": "System.Boolean IsHot()",
        "modifiers": [],
        "protected": true,
        "virtual": false,
        "since": "6.0",
        "deprecated": "6.6"
      },
      {
        "signature": "System.Boolean IsSelected()",
        "modifiers": [],
        "protected": true,
        "virtual": false,
        "since": "6.0",
        "deprecated": "6.6"
      },
      {
        "signature": "System.String Label()",
        "modifiers": [],
        "protected": true,
        "virtual": false,
        "since": "6.0",
        "deprecated": "6.6"
      }
    ]
  },
  {
    "namespace": "Rhino.UI.Controls.ThumbnailUI",
    "name": "IRhRdkThumbnailList",
    "dataType": "interface",
    "methods": [
      {
        "signature": "System.Void Add(Thumbnail t)",
        "modifiers": [],
        "protected": true,
        "virtual": false,
        "since": "6.0",
        "deprecated": "6.6"
      },
      {
        "signature": "System.Void Clear()",
        "modifiers": [],
        "protected": true,
        "virtual": false,
        "since": "6.0",
        "deprecated": "6.6"
      },
      {
        "signature": "IRhRdkThumbnail Get(ref System.Guid u)",
        "modifiers": [],
        "protected": true,
        "virtual": false,
        "since": "6.0",
        "deprecated": "6.6"
      },
      {
        "signature": "System.Void GetGridMetrics(ref System.Int32 w, ref System.Int32 h, ref System.Int32 ox, ref System.Int32 oy)",
        "modifiers": [],
        "protected": true,
        "virtual": false,
        "since": "6.0",
        "deprecated": "6.6"
      },
      {
        "signature": "IRhRdkContentThumbnailList_Sizes GetSize()",
        "modifiers": [],
        "protected": true,
        "virtual": false,
        "since": "6.0",
        "deprecated": "6.6"
      },
      {
        "signature": "System.Void GetStatisticsHeaderHeight()",
        "modifiers": [],
        "protected": true,
        "virtual": false,
        "since": "6.0",
        "deprecated": "6.6"
      },
      {
        "signature": "IRhRdkThumbnailList_Modes Mode()",
        "modifiers": [],
        "protected": true,
        "virtual": false,
        "since": "6.0",
        "deprecated": "6.6"
      },
      {
        "signature": "System.Void SetClientText(System.String w)",
        "modifiers": [],
        "protected": true,
        "virtual": false,
        "since": "6.0",
        "deprecated": "6.6"
      },
      {
        "signature": "System.Void SetCustomBitmapSize(System.Int32 w, System.Int32 h)",
        "modifiers": [],
        "protected": true,
        "virtual": false,
        "since": "6.0",
        "deprecated": "6.6"
      },
      {
        "signature": "System.Void SetMode(IRhRdkThumbnailList_Modes m, System.Boolean b)",
        "modifiers": [],
        "protected": true,
        "virtual": false,
        "since": "6.0",
        "deprecated": "6.6"
      },
      {
        "signature": "System.Void SetShowLabels(System.Boolean b)",
        "modifiers": [],
        "protected": true,
        "virtual": false,
        "since": "6.0",
        "deprecated": "6.6"
      },
      {
        "signature": "IRhRdkThumbnailList_Shapes Shape()",
        "modifiers": [],
        "protected": true,
        "virtual": false,
        "since": "6.0",
        "deprecated": "6.6"
      },
      {
        "signature": "System.Boolean ShowLabels()",
        "modifiers": [],
        "protected": true,
        "virtual": false,
        "since": "6.0",
        "deprecated": "6.6"
      },
      {
        "signature": "System.Guid UUID()",
        "modifiers": [],
        "protected": true,
        "virtual": false,
        "since": "6.0",
        "deprecated": "6.6"
      }
    ]
  },
  {
    "namespace": "Rhino.UI.Controls.ThumbnailUI",
    "name": "IRhRdkThumbnailList_Modes",
    "dataType": "enum",
    "since": "6.0",
    "deprecated": "6.6",
    "values": [
      {
        "signature": "Grid",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Big thumbnails like Explorer icon mode (default)."
      },
      {
        "signature": "List",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Small thumbnails and info on right like Explorer report mode."
      },
      {
        "signature": "Tree",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Tree view mode."
      }
    ]

  },
  {
    "namespace": "Rhino.UI.Controls.ThumbnailUI",
    "name": "IRhRdkThumbnailList_Shapes",
    "dataType": "enum",
    "since": "6.0",
    "deprecated": "6.6",
    "values": [
      {
        "signature": "Square",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Square thumbnails."
      },
      {
        "signature": "Wide",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Wide thumbnails."
      }
    ]

  },
  {
    "namespace": "Rhino.UI.Controls.ThumbnailUI",
    "name": "ThumbData",
    "dataType": "class",
    "constructors": [
      {
        "signature": "ThumbData()",
        "summary": "Initializes a new instance of the ThumbData class"
      }
    ],
    "properties": [
      {
        "signature": "List<ThumbData> Children",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "deprecated": "6.6",
        "property": ["get", "set"]
      },
      {
        "signature": "RenderContent Content",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "deprecated": "6.6",
        "property": ["get", "set"]
      },
      {
        "signature": "Guid Id",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "deprecated": "6.6",
        "property": ["get", "set"]
      },
      {
        "signature": "Bitmap Image",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "deprecated": "6.6",
        "property": ["get", "set"]
      },
      {
        "signature": "string Intensity",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "deprecated": "6.6",
        "property": ["get", "set"]
      },
      {
        "signature": "bool InUse",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "deprecated": "6.6",
        "property": ["get", "set"]
      },
      {
        "signature": "Color4f> InUseColor",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "deprecated": "6.6",
        "property": ["get", "set"]
      },
      {
        "signature": "string Name",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "deprecated": "6.6",
        "property": ["get", "set"]
      },
      {
        "signature": "ThumbData Parent",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "deprecated": "6.6",
        "property": ["get", "set"]
      },
      {
        "signature": "PreviewAppearance PreviewAppearance",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "deprecated": "6.6",
        "property": ["get", "set"]
      },
      {
        "signature": "bool Selected",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "deprecated": "6.6",
        "property": ["get", "set"]
      },
      {
        "signature": "List<string> Tags",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "deprecated": "6.6",
        "property": ["get", "set"]
      },
      {
        "signature": "bool TopLevel",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "deprecated": "6.6",
        "property": ["get"]
      },
      {
        "signature": "string Type",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "deprecated": "6.6",
        "property": ["get", "set"]
      }
    ],
    "methods": [
      {
        "signature": "System.Int32 GetPreviewHeigth(Rhino.Render.DataSources.Sizes thumb_size, Rhino.Render.DataSources.Shapes shape)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "deprecated": "6.6"
      },
      {
        "signature": "System.Int32 GetPreviewWidth(Rhino.Render.DataSources.Sizes thumb_size, Rhino.Render.DataSources.Shapes shape)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "deprecated": "6.6"
      }
    ]
  },
  {
    "namespace": "Rhino.UI.Controls.ThumbnailUI",
    "name": "Thumbnail",
    "dataType": "class",
    "baseclass": "Rhino.UI.Controls.ThumbnailUI.IRhRdkThumbnail",
    "interfaces": ["IDisposable"],
    "constructors": [
      {
        "signature": "Thumbnail(IntPtr pRdkThumbnail)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Constructor for Thumbnail",
        "since": "6.0",
        "deprecated": "6.6"
      }
    ],
    "properties": [
      {
        "signature": "IntPtr CppPointer",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Thumbnail c++ pointer",
        "since": "6.0",
        "deprecated": "6.6",
        "property": ["get"]
      }
    ],
    "methods": [
      {
        "signature": "System.Void Dib(ref Bitmap dibOut)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "deprecated": "6.6"
      },
      {
        "signature": "System.Void Dispose()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Dispose for Thumbnail",
        "since": "6.0",
        "deprecated": "6.6"
      },
      {
        "signature": "System.Drawing.Bitmap GetDib()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "deprecated": "6.6"
      },
      {
        "signature": "System.Void GetDisplayRect(ref RectangleF rectOut)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "deprecated": "6.6"
      },
      {
        "signature": "System.Guid Id()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "deprecated": "6.6"
      },
      {
        "signature": "System.Boolean IsHot()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "deprecated": "6.6"
      },
      {
        "signature": "System.Boolean IsSelected()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "deprecated": "6.6"
      },
      {
        "signature": "System.String Label()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "deprecated": "6.6"
      }
    ]
  },
  {
    "namespace": "Rhino.UI.Controls.ThumbnailUI",
    "name": "ThumbnailViewModelFactory",
    "dataType": "class",
    "baseclass": "Rhino.UI.Controls.InternalRdkViewModelFactory",
    "constructors": [
      {
        "signature": "ThumbnailViewModelFactory()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "deprecated": "6.6"
      }
    ],
    "methods": [
      {
        "signature": "System.IntPtr Get(System.Guid id)",
        "modifiers": ["public", "override"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "deprecated": "6.6"
      }
    ]
  },
  {
    "namespace": "Rhino.UI.Controls",
    "name": "UndoRecord",
    "dataType": "class",
    "summary": "Undo Record",
    "interfaces": ["IDisposable"],
    "constructors": [
      {
        "signature": "UndoRecord(string description, IRdkViewModel viewModel)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "UndoRecord Constructor",
        "since": "6.0"
      }
    ],
    "methods": [
      {
        "signature": "System.Void Dispose()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "UndoRecord Dispose",
        "since": "6.0"
      },
      {
        "signature": "System.Void Dispose(System.Boolean disposing)",
        "modifiers": ["protected", "virtual"],
        "protected": true,
        "virtual": true,
        "summary": "UndoRecord Dispose"
      }
    ]
  },
  {
    "namespace": "Rhino.UI",
    "name": "ControlVerticalAlignment",
    "dataType": "enum",
    "summary": "Vertical alignment settings for control with respect to it's parent",
    "values": [
      {
        "signature": "Top = 0",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Center = 1",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Bottom = 2",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Stretch = 3",
        "modifiers": [],
        "protected": false,
        "virtual": false
      }
    ]

  },
  {
    "namespace": "Rhino.UI",
    "name": "CursorStyle",
    "dataType": "enum",
    "summary": "Standard mouse cursors in Rhino",
    "values": [
      {
        "signature": "Default = 0",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Wait = 1",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Wait"
      },
      {
        "signature": "CrossHair = 2",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Hand = 3",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Rotate = 4",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Magnify = 5",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "ArrowCopy = 6",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "arrow with +"
      },
      {
        "signature": "CrosshairCopy = 7",
        "modifiers": [],
        "protected": false,
        "virtual": false
      }
    ]

  },
  {
    "namespace": "Rhino.UI",
    "name": "Dialogs",
    "dataType": "class",
    "constructors": [
      {
        "signature": "Dialogs()",
        "summary": "Initializes a new instance of the Dialogs class"
      }
    ],
    "methods": [
      {
        "signature": "System.Void KillSplash()",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Destroy the splash screen if it is being displayed.",
        "since": "5.0"
      },
      {
        "signature": "System.Void SetCustomColorDialog(EventHandler<GetColorEventArgs> handler)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "System.Void ShowAboutDialog(System.Boolean forceSimpleDialog)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "6.0"
      },
      {
        "signature": "System.Boolean[] ShowCheckListBox(System.String title, System.String message, System.Collections.IList items, IList<bool> checkState)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Displays Rhino's check list box.",
        "since": "5.0",
        "parameters": [
          {
            "name": "title",
            "type": "System.String",
            "summary": "The dialog title."
          },
          {
            "name": "message",
            "type": "System.String",
            "summary": "The dialog message."
          },
          {
            "name": "items",
            "type": "System.Collections.IList",
            "summary": "A list of items to show."
          },
          {
            "name": "checkState",
            "type": "IList<bool>",
            "summary": "A list of true/False boolean values."
          }
        ],
        "returns": "An array or boolean values determining if the user checked the corresponding box. On error, null."
      },
      {
        "signature": "System.Boolean ShowColorDialog(ref Display.Color4f color, System.Boolean allowAlpha)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Displays the standard modal color picker dialog for floating point colors.",
        "since": "5.0",
        "parameters": [
          {
            "name": "color",
            "type": "Display.Color4f",
            "summary": "The initial color to set the picker to and also accepts the user's choice."
          },
          {
            "name": "allowAlpha",
            "type": "System.Boolean",
            "summary": "Specifies if the color picker should allow changes to the alpha channel or not."
          }
        ],
        "returns": "True if a color was picked, False if the user canceled the picker dialog."
      },
      {
        "signature": "System.Boolean ShowColorDialog(ref System.Drawing.Color color, System.Boolean includeButtonColors, System.String dialogTitle, NamedColorList namedColorList)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Display Rhino's color selection dialog.",
        "since": "5.0",
        "parameters": [
          {
            "name": "color",
            "type": "System.Drawing.Color",
            "summary": "[in/out] Default color for dialog, and will receive new color if function returns true."
          },
          {
            "name": "includeButtonColors",
            "type": "System.Boolean",
            "summary": "Display button face and text options at top of named color list."
          },
          {
            "name": "dialogTitle",
            "type": "System.String",
            "summary": "The title of the dialog."
          },
          {
            "name": "namedColorList",
            "type": "NamedColorList",
            "summary": "If not None and contains one or more named colors the Rhino color dialog named color list will be replaces with this list."
          }
        ],
        "returns": "True if the color changed. False if the color has not changed or the user pressed cancel."
      },
      {
        "signature": "System.Boolean ShowColorDialog(ref System.Drawing.Color color, System.Boolean includeButtonColors, System.String dialogTitle)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Display Rhino's color selection dialog.",
        "since": "5.0",
        "parameters": [
          {
            "name": "color",
            "type": "System.Drawing.Color",
            "summary": "[in/out] Default color for dialog, and will receive new color if function returns true."
          },
          {
            "name": "includeButtonColors",
            "type": "System.Boolean",
            "summary": "Display button face and text options at top of named color list."
          },
          {
            "name": "dialogTitle",
            "type": "System.String",
            "summary": "The title of the dialog."
          }
        ],
        "returns": "True if the color changed. False if the color has not changed or the user pressed cancel."
      },
      {
        "signature": "System.Boolean ShowColorDialog(ref System.Drawing.Color color)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Display Rhino's color selection dialog.",
        "since": "5.0",
        "parameters": [
          {
            "name": "color",
            "type": "System.Drawing.Color",
            "summary": "[in/out] Default color for dialog, and will receive new color if function returns true."
          }
        ],
        "returns": "True if the color changed. False if the color has not changed or the user pressed cancel."
      },
      {
        "signature": "System.Boolean ShowColorDialog(System.Object parent, ref Display.Color4f color, System.Boolean allowAlpha, NamedColorList namedColorList, OnColorChangedEvent colorCallback)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Displays the standard modal color picker dialog for floating point colors.",
        "since": "6.0",
        "parameters": [
          {
            "name": "parent",
            "type": "System.Object",
            "summary": "Parent window for this dialog, should always pass this if calling from a form or user control."
          },
          {
            "name": "color",
            "type": "Display.Color4f",
            "summary": "The initial color to set the picker to and also accepts the user's choice."
          },
          {
            "name": "allowAlpha",
            "type": "System.Boolean",
            "summary": "Specifies if the color picker should allow changes to the alpha channel or not."
          },
          {
            "name": "namedColorList",
            "type": "NamedColorList",
            "summary": "If not None and contains at least one named color this list will replace the standard Rhino Color list displayed by the rhino color dialog."
          },
          {
            "name": "colorCallback",
            "type": "OnColorChangedEvent",
            "summary": "May be optionally passed to ShowColorDialog and will get called when the color value changes in the color dialog."
          }
        ],
        "returns": "True if a color was picked, False if the user canceled the picker dialog."
      },
      {
        "signature": "System.Boolean ShowColorDialog(System.Object parent, ref Display.Color4f color, System.Boolean allowAlpha, OnColorChangedEvent colorCallback)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Displays the standard modal color picker dialog for floating point colors.",
        "since": "6.0",
        "parameters": [
          {
            "name": "parent",
            "type": "System.Object",
            "summary": "Parent window for this dialog, should always pass this if calling from a form or user control."
          },
          {
            "name": "color",
            "type": "Display.Color4f",
            "summary": "The initial color to set the picker to and also accepts the user's choice."
          },
          {
            "name": "allowAlpha",
            "type": "System.Boolean",
            "summary": "Specifies if the color picker should allow changes to the alpha channel or not."
          },
          {
            "name": "colorCallback",
            "type": "OnColorChangedEvent",
            "summary": "May be optionally passed to ShowColorDialog and will get called when the color value changes in the color dialog."
          }
        ],
        "returns": "True if a color was picked, False if the user canceled the picker dialog."
      },
      {
        "signature": "System.Boolean ShowColorDialog(System.Object parent, ref Display.Color4f color, System.Boolean allowAlpha)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Displays the standard modal color picker dialog for floating point colors.",
        "since": "6.0",
        "parameters": [
          {
            "name": "parent",
            "type": "System.Object",
            "summary": "Parent window for this dialog, should always pass this if calling from a form or user control."
          },
          {
            "name": "color",
            "type": "Display.Color4f",
            "summary": "The initial color to set the picker to and also accepts the user's choice."
          },
          {
            "name": "allowAlpha",
            "type": "System.Boolean",
            "summary": "Specifies if the color picker should allow changes to the alpha channel or not."
          }
        ],
        "returns": "True if a color was picked, False if the user canceled the picker dialog."
      },
      {
        "signature": "System.Boolean ShowColorDialog(System.Windows.Forms.IWin32Window parent, ref Display.Color4f color, System.Boolean allowAlpha)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Displays the standard modal color picker dialog for floating point colors.",
        "since": "5.0",
        "deprecated": "6.0",
        "obsolete": "Use ShowColorDialog",
        "parameters": [
          {
            "name": "parent",
            "type": "System.Windows.Forms.IWin32Window",
            "summary": "Parent window for this dialog, should always pass this if calling from a form or user control."
          },
          {
            "name": "color",
            "type": "Display.Color4f",
            "summary": "The initial color to set the picker to and also accepts the user's choice."
          },
          {
            "name": "allowAlpha",
            "type": "System.Boolean",
            "summary": "Specifies if the color picker should allow changes to the alpha channel or not."
          }
        ],
        "returns": "True if a color was picked, False if the user canceled the picker dialog."
      },
      {
        "signature": "System.Object ShowComboListBox(System.String title, System.String message, System.Collections.IList items)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Displays Rhino's combo list box.",
        "since": "5.0",
        "parameters": [
          {
            "name": "title",
            "type": "System.String",
            "summary": "The dialog title."
          },
          {
            "name": "message",
            "type": "System.String",
            "summary": "The dialog message."
          },
          {
            "name": "items",
            "type": "System.Collections.IList",
            "summary": "A list of items to show."
          }
        ],
        "returns": "selected item.  \nNone if the user canceled."
      },
      {
        "signature": "System.Int32 ShowContextMenu(IEnumerable<string> items, System.Drawing.Point screenPoint, IEnumerable<int> modes)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Creates an ETO ContextMenu from an array of strings. Use the modes array to enable/disable menu items",
        "since": "5.0"
      },
      {
        "signature": "System.Boolean ShowEditBox(System.String title, System.String message, System.String defaultText, System.Boolean multiline, out System.String text)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Displays Rhino's string edit box.",
        "since": "5.0",
        "parameters": [
          {
            "name": "title",
            "type": "System.String",
            "summary": "The dialog title."
          },
          {
            "name": "message",
            "type": "System.String",
            "summary": "The dialog message."
          },
          {
            "name": "defaultText",
            "type": "System.String",
            "summary": "The default text."
          },
          {
            "name": "multiline",
            "type": "System.Boolean",
            "summary": "Set True for multi line editing."
          },
          {
            "name": "text",
            "type": "System.String",
            "summary": "The modified text."
          }
        ],
        "returns": "True of OK was clicked, False otherwise."
      },
      {
        "signature": "System.Boolean ShowLayerMaterialDialog(RhinoDoc doc, IEnumerable<int> layerIndices)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Show a modal dialog to edit the material in the layer specified in layerIndices.",
        "since": "8.0",
        "parameters": [
          {
            "name": "doc",
            "type": "RhinoDoc",
            "summary": "Rhino document"
          },
          {
            "name": "layerIndices",
            "type": "IEnumerable<int>",
            "summary": "True if the new layer button will be visible."
          }
        ],
        "returns": "True if the dialog was closed with the OK button. False if the dialog was closed with escape."
      },
      {
        "signature": "System.Guid ShowLineTypes(System.String title, System.String message, RhinoDoc doc, System.Guid selectedLineTypeId)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "8.0"
      },
      {
        "signature": "System.Object ShowLineTypes(System.String title, System.String message, RhinoDoc doc)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Displays Rhino's LineType list box.",
        "since": "6.7",
        "parameters": [
          {
            "name": "title",
            "type": "System.String",
            "summary": "The dialog title."
          },
          {
            "name": "message",
            "type": "System.String",
            "summary": "The dialog message."
          },
          {
            "name": "doc",
            "type": "RhinoDoc",
            "summary": "The active document."
          }
        ],
        "returns": "The id of the selected item if successful, None on cancel."
      },
      {
        "signature": "System.Object ShowListBox(System.String title, System.String message, System.Collections.IList items, System.Object selectedItem)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Displays Rhino's list box.",
        "since": "5.0",
        "parameters": [
          {
            "name": "title",
            "type": "System.String",
            "summary": "The dialog title."
          },
          {
            "name": "message",
            "type": "System.String",
            "summary": "The dialog message."
          },
          {
            "name": "items",
            "type": "System.Collections.IList",
            "summary": "A list of items to show."
          },
          {
            "name": "selectedItem",
            "type": "System.Object",
            "summary": "The item to preselect."
          }
        ],
        "returns": "The selected item if successful, None on cancel."
      },
      {
        "signature": "System.Object ShowListBox(System.String title, System.String message, System.Collections.IList items)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Displays Rhino's list box.",
        "since": "5.0",
        "parameters": [
          {
            "name": "title",
            "type": "System.String",
            "summary": "The dialog title."
          },
          {
            "name": "message",
            "type": "System.String",
            "summary": "The dialog message."
          },
          {
            "name": "items",
            "type": "System.Collections.IList",
            "summary": "A list of items to show."
          }
        ],
        "returns": "The selected item if successful, None on cancel."
      },
      {
        "signature": "ShowMessageResult ShowMessage(System.Object parent, System.String message, System.String title, ShowMessageButton buttons, ShowMessageIcon icon, ShowMessageDefaultButton defaultButton, ShowMessageOptions options, ShowMessageMode mode)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Same as System.Windows.Forms.MessageBox.Show but using a message box tailored to Rhino.",
        "since": "6.0",
        "parameters": [
          {
            "name": "parent",
            "type": "System.Object",
            "summary": "Parent window"
          },
          {
            "name": "message",
            "type": "System.String",
            "summary": "Message box text content."
          },
          {
            "name": "title",
            "type": "System.String",
            "summary": "Message box title text."
          },
          {
            "name": "buttons",
            "type": "ShowMessageButton",
            "summary": "Which buttons to display in the message box."
          },
          {
            "name": "icon",
            "type": "ShowMessageIcon",
            "summary": "Which icon to display in the message box."
          },
          {
            "name": "defaultButton",
            "type": "ShowMessageDefaultButton",
            "summary": "Which button is the default button."
          },
          {
            "name": "options",
            "type": "ShowMessageOptions",
            "summary": "Additional message box options."
          },
          {
            "name": "mode",
            "type": "ShowMessageMode",
            "summary": "The modality of the message box."
          }
        ],
        "returns": "One of the ShowMessageBoxResult values."
      },
      {
        "signature": "ShowMessageResult ShowMessage(System.String message, System.String title, ShowMessageButton buttons, ShowMessageIcon icon)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Same as System.Windows.Forms.MessageBox.Show but using a message box tailored to Rhino.",
        "since": "6.0",
        "parameters": [
          {
            "name": "message",
            "type": "System.String",
            "summary": "Message box text content."
          },
          {
            "name": "title",
            "type": "System.String",
            "summary": "Message box title text."
          },
          {
            "name": "buttons",
            "type": "ShowMessageButton",
            "summary": "Which buttons to display in the message box."
          },
          {
            "name": "icon",
            "type": "ShowMessageIcon",
            "summary": "Which icon to display in the message box."
          }
        ],
        "returns": "One of the ShowMessageBoxResult values."
      },
      {
        "signature": "ShowMessageResult ShowMessage(System.String message, System.String title)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Same as System.Windows.Forms.MessageBox.Show but using a message box tailored to Rhino.",
        "since": "6.0",
        "parameters": [
          {
            "name": "message",
            "type": "System.String",
            "summary": "Message box text content."
          },
          {
            "name": "title",
            "type": "System.String",
            "summary": "Message box title text."
          }
        ],
        "returns": "One of the ShowMessageBoxResult values."
      },
      {
        "signature": "System.Windows.Forms.DialogResult ShowMessageBox(System.String message, System.String title, System.Windows.Forms.MessageBoxButtons buttons, System.Windows.Forms.MessageBoxIcon icon)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Same as System.Windows.Forms.MessageBox.Show but using a message box tailored to Rhino.",
        "since": "5.0",
        "deprecated": "6.0",
        "obsolete": "Use ShowMessage"
      },
      {
        "signature": "System.Windows.Forms.DialogResult ShowMessageBox(System.String message, System.String title)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Same as System.Windows.Forms.MessageBox.Show but using a message box tailored to Rhino.",
        "since": "5.0",
        "deprecated": "6.0",
        "obsolete": "Use ShowMessage"
      },
      {
        "signature": "System.String[] ShowMultiListBox(System.String title, System.String message, IList<string> items, IList<string> defaults)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Displays Rhino's multiple selection list box.",
        "since": "5.12",
        "parameters": [
          {
            "name": "title",
            "type": "System.String",
            "summary": "The dialog title."
          },
          {
            "name": "message",
            "type": "System.String",
            "summary": "The dialog message."
          },
          {
            "name": "items",
            "type": "IList<string>",
            "summary": "A list of items to show."
          },
          {
            "name": "defaults",
            "type": "IList<string>",
            "summary": "The items to preselect."
          }
        ],
        "returns": "The selected items if successful, None on cancel."
      },
      {
        "signature": "System.Boolean ShowNumberBox(System.String title, System.String message, ref System.Double number, System.Double minimum, System.Double maximum)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Displays Rhino's number edit box.",
        "since": "5.0",
        "parameters": [
          {
            "name": "title",
            "type": "System.String",
            "summary": "The dialog title."
          },
          {
            "name": "message",
            "type": "System.String",
            "summary": "The dialog message."
          },
          {
            "name": "number",
            "type": "System.Double",
            "summary": "The default and return value."
          },
          {
            "name": "minimum",
            "type": "System.Double",
            "summary": "The minimum allowable value."
          },
          {
            "name": "maximum",
            "type": "System.Double",
            "summary": "The maximum allowable value."
          }
        ],
        "returns": "True of OK was clicked, False otherwise."
      },
      {
        "signature": "System.Boolean ShowNumberBox(System.String title, System.String message, ref System.Double number)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Displays Rhino's number edit box.",
        "since": "5.0",
        "parameters": [
          {
            "name": "title",
            "type": "System.String",
            "summary": "The dialog title."
          },
          {
            "name": "message",
            "type": "System.String",
            "summary": "The dialog message."
          },
          {
            "name": "number",
            "type": "System.Double",
            "summary": "The default and return value."
          }
        ],
        "returns": "True of OK was clicked, False otherwise."
      },
      {
        "signature": "System.Double ShowPrintWidths(System.String title, System.String message, System.Double selectedWidth)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Shows the print widths dialogs",
        "since": "8.0",
        "returns": "The selected print width"
      },
      {
        "signature": "System.Double ShowPrintWidths(System.String title, System.String message)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Shows the print widths dialogs",
        "since": "8.0",
        "returns": "The selected print width"
      },
      {
        "signature": "System.String[] ShowPropertyListBox(System.String title, System.String message, List<KeyValuePair<string, string>> items)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Displays Rhino's property list box.",
        "since": "8.0",
        "parameters": [
          {
            "name": "title",
            "type": "System.String",
            "summary": "The dialog title."
          },
          {
            "name": "message",
            "type": "System.String",
            "summary": "The dialog message."
          },
          {
            "name": "items",
            "type": "List<KeyValuePair<string, string>>",
            "summary": "A list of key value pairs"
          }
        ],
        "returns": "A list of property values if successful, None otherwise."
      },
      {
        "signature": "System.String[] ShowPropertyListBox(System.String title, System.String message, System.Collections.IList items, IList<string> values)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Displays Rhino's property list box.",
        "since": "5.0",
        "parameters": [
          {
            "name": "title",
            "type": "System.String",
            "summary": "The dialog title."
          },
          {
            "name": "message",
            "type": "System.String",
            "summary": "The dialog message."
          },
          {
            "name": "items",
            "type": "System.Collections.IList",
            "summary": "A list of property names."
          },
          {
            "name": "values",
            "type": "IList<string>",
            "summary": "A list of property values."
          }
        ],
        "returns": "A list of property values if successful, None otherwise."
      },
      {
        "signature": "System.Boolean ShowSelectLayerDialog(ref System.Int32 layerIndex, System.String dialogTitle, System.Boolean showNewLayerButton, System.Boolean showSetCurrentButton, ref System.Boolean initialSetCurrentState)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Displays Rhino's single layer selection dialog.",
        "since": "5.0",
        "parameters": [
          {
            "name": "layerIndex",
            "type": "System.Int32",
            "summary": "Initial layer for the dialog, and will receive selected layer if function returns DialogResult.OK."
          },
          {
            "name": "dialogTitle",
            "type": "System.String",
            "summary": "The dialog title."
          },
          {
            "name": "showNewLayerButton",
            "type": "System.Boolean",
            "summary": "True if the new layer button will be visible."
          },
          {
            "name": "showSetCurrentButton",
            "type": "System.Boolean",
            "summary": "True if the set current button will be visible."
          },
          {
            "name": "initialSetCurrentState",
            "type": "System.Boolean",
            "summary": "True if the current state will be initially set."
          }
        ],
        "returns": "True if the dialog was closed with the OK button. False if the dialog was closed with escape."
      },
      {
        "signature": "System.Boolean ShowSelectLinetypeDialog(ref System.Int32 linetypeIndex, System.Boolean displayByLayer)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Displays Rhino's single linetype selection dialog.",
        "since": "6.0",
        "parameters": [
          {
            "name": "linetypeIndex",
            "type": "System.Int32",
            "summary": "Initial linetype for the dialog, and will receive selected linetype if function returns true."
          },
          {
            "name": "displayByLayer",
            "type": "System.Boolean",
            "summary": "Displays the \"ByLayer\" linetype in the list. Defaults to false."
          }
        ],
        "returns": "True if the dialog was closed with the OK button. False if the dialog was closed with escape."
      },
      {
        "signature": "System.Boolean ShowSelectMultipleLayersDialog(IEnumerable<int> defaultLayerIndices, System.String dialogTitle, System.Boolean showNewLayerButton, out System.Int32[] layerIndices)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "5.9",
        "returns": "True if the dialog was closed with the OK button. False if the dialog was closed with escape."
      },
      {
        "signature": "System.Windows.Forms.DialogResult ShowSemiModal(System.Windows.Forms.Form form)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Show a windows form that is modal in the sense that this function does not return until the form is closed, but also allows for interaction with other elements of the Rhino user interface.",
        "since": "5.0",
        "deprecated": "6.0",
        "parameters": [
          {
            "name": "form",
            "type": "System.Windows.Forms.Form",
            "summary": "The form must have buttons that are assigned to the \"AcceptButton\" and \"CancelButton\"."
          }
        ],
        "returns": "One of the System.Windows.Forms.DialogResult values."
      },
      {
        "signature": "System.Boolean ShowSunDialog(Render.Sun sun)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Show the modal sun dialog.",
        "since": "6.0",
        "returns": "Returns True if the user clicked OK, or False if the user canceled."
      },
      {
        "signature": "System.Void ShowTextDialog(System.String message, System.String title)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Display a text dialog similar to the dialog used for the \"What\" command.",
        "since": "5.0",
        "parameters": [
          {
            "name": "message",
            "type": "System.String",
            "summary": "Text to display as the message content."
          },
          {
            "name": "title",
            "type": "System.String",
            "summary": "Test to display as the form title."
          }
        ]
      }
    ]
  },
  {
    "namespace": "Rhino.UI",
    "name": "DirectionGripUserInterfaceObject",
    "dataType": "class",
    "summary": "A point plus direction arrows that represents a grip constrained to a line",
    "baseclass": "Rhino.UI.GripUserInterfaceObject",
    "constructors": [
      {
        "signature": "DirectionGripUserInterfaceObject(Point3d location, Vector3d direction)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Create a direction grip located at location and constrained to a direction",
        "since": "9.0",
        "parameters": [
          {
            "name": "location",
            "type": "Rhino.Geometry.Point3d",
            "summary": "Grip location"
          },
          {
            "name": "direction",
            "type": "Rhino.Geometry.Vector3d",
            "summary": "Line constraint for the grip"
          }
        ]
      }
    ],
    "properties": [
      {
        "signature": "float ArrowRadius",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Size of direction end shape",
        "property": ["get", "set"]
      },
      {
        "signature": "GripUserInterfaceObjectShape ArrowShape",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Shape used for end of direction line",
        "since": "9.0",
        "property": ["get", "set"]
      },
      {
        "signature": "float DirectionLineLength",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Length of direction line in pixel units",
        "since": "9.0",
        "property": ["get", "set"]
      },
      {
        "signature": "Vector3d GripDirection",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Constrained direction of grip",
        "since": "9.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool GripPointVisible",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Is the grip point itself drawn",
        "since": "9.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool OneWay",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Is the grip a single direction grip",
        "since": "9.0",
        "property": ["get", "set"]
      }
    ],
    "methods": [
      {
        "signature": "System.Boolean ArrowsVisibleInViewport(Rhino.Display.RhinoViewport viewport)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Are the arrows visible for a given viewport. Projections that cause the arrows to be end on are projections where arrows are not drawn.",
        "since": "9.0",
        "returns": "True if the arrow are visible for a given viewport."
      }
    ]
  },
  {
    "namespace": "Rhino.UI",
    "name": "DistanceDisplayMode",
    "dataType": "enum",
    "since": "5.0",
    "values": [
      {
        "signature": "Decimal = 0",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Fractional = 1",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "FeetInches = 2",
        "modifiers": [],
        "protected": false,
        "virtual": false
      }
    ]

  },
  {
    "namespace": "Rhino.UI",
    "name": "DrawingUtilities",
    "dataType": "class",
    "summary": "RhinoCommon Drawing Utilities",
    "constructors": [
      {
        "signature": "DrawingUtilities()",
        "summary": "Initializes a new instance of the DrawingUtilities class"
      }
    ],
    "methods": [
      {
        "signature": "Bitmap BitmapFromIconResource(System.String resourceName, Size bitmapSize, System.Reflection.Assembly assembly)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Load a Icon from an embedded resource and convert it to a bitmap of the specified size.  Will look for a icon image that is greater than or equal to the requested size, if all images are less than the requested size the largest image will be used.",
        "since": "6.0",
        "parameters": [
          {
            "name": "resourceName",
            "type": "System.String",
            "summary": ""
          },
          {
            "name": "bitmapSize",
            "type": "Size",
            "summary": "Desired bitmap size"
          },
          {
            "name": "assembly",
            "type": "System.Reflection.Assembly",
            "summary": "The assembly containing the manifest resource, will use the calling assembly if null."
          }
        ]
      },
      {
        "signature": "Bitmap BitmapFromIconResource(System.String resourceName, System.Reflection.Assembly assembly)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Load a Icon from an embedded resource and convert it to a bitmap of the specified size.  Will look for a icon image that is greater than or equal to the requested size, if all images are less than the requested size the largest image will be used.",
        "since": "6.12",
        "parameters": [
          {
            "name": "resourceName",
            "type": "System.String",
            "summary": ""
          },
          {
            "name": "assembly",
            "type": "System.Reflection.Assembly",
            "summary": "The assembly containing the manifest resource, will use the calling assembly if null."
          }
        ]
      },
      {
        "signature": "Bitmap BitmapFromSvg(System.String svg, System.Int32 width, System.Int32 height, System.Boolean adjustForDarkMode)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Create bitmap of a given size from an svg string",
        "since": "8.0",
        "parameters": [
          {
            "name": "svg",
            "type": "System.String",
            "summary": "A valid svg string"
          },
          {
            "name": "width",
            "type": "System.Int32",
            "summary": "Width of the svg in pixels"
          },
          {
            "name": "height",
            "type": "System.Int32",
            "summary": "Height of the svg in pixels"
          },
          {
            "name": "adjustForDarkMode",
            "type": "System.Boolean",
            "summary": "If True dark mode specific attributes will be used in the svg"
          }
        ],
        "returns": "A"
      },
      {
        "signature": "Bitmap BitmapFromSvg(System.String svg, System.Int32 width, System.Int32 height)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Create bitmap of a given size from an svg string",
        "since": "7.6",
        "parameters": [
          {
            "name": "svg",
            "type": "System.String",
            "summary": "A valid svg string"
          },
          {
            "name": "width",
            "type": "System.Int32",
            "summary": "Width of the svg in pixels"
          },
          {
            "name": "height",
            "type": "System.Int32",
            "summary": "Height of the svg in pixels"
          }
        ]
      },
      {
        "signature": "List<Rhino.Geometry.Point2f[]> CreateCurvePreviewGeometry(Rhino.Geometry.Curve curve, Rhino.DocObjects.Linetype linetype, System.Int32 width, System.Int32 height)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Create a series of closed polyline loops representing a curve and a linetype combination.",
        "since": "8.0"
      },
      {
        "signature": "List<Rhino.Geometry.Point2f[]> CreateLinetypePreviewGeometryEx(Rhino.Geometry.Curve curve, Rhino.DocObjects.Linetype linetype, System.Int32 width, System.Int32 height, System.Double linetypeScale, System.Int32 kind)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Preview geometry for a linetype on a curve, by channel, mirroring the viewport renderer. kind 0 returns the dash silhouette polygons with the line cleared under each shape (these are meant to be filled); kind 1 returns curve shape outlines (meant to be stroked); kind 2 returns text and surface shape outlines (meant to be filled with an even-odd rule).",
        "since": "9.0",
        "parameters": [
          {
            "name": "curve",
            "type": "Rhino.Geometry.Curve",
            "summary": ""
          },
          {
            "name": "linetype",
            "type": "Rhino.DocObjects.Linetype",
            "summary": ""
          },
          {
            "name": "width",
            "type": "System.Int32",
            "summary": ""
          },
          {
            "name": "height",
            "type": "System.Int32",
            "summary": ""
          },
          {
            "name": "linetypeScale",
            "type": "System.Double",
            "summary": "Scale applied to shape size and spacing, matching the preview's pattern scale."
          },
          {
            "name": "kind",
            "type": "System.Int32",
            "summary": "0 = dashes (fill), 1 = curve shapes (stroke), 2 = text/surface shapes (even-odd fill)."
          }
        ]
      },
      {
        "signature": "Bitmap CreateMeshPreviewImage(IEnumerable<Mesh> meshes, IEnumerable<Color> colors, Size size)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Creates a preview image of one or more meshes.",
        "since": "6.0",
        "parameters": [
          {
            "name": "meshes",
            "type": "IEnumerable<Geometry.Mesh>",
            "summary": "The meshes."
          },
          {
            "name": "colors",
            "type": "IEnumerable<Color>",
            "summary": "The draw colors, one for each mesh."
          },
          {
            "name": "size",
            "type": "Size",
            "summary": "The size of the preview image."
          }
        ],
        "returns": "A bitmap if successful, None otherwise."
      },
      {
        "signature": "Bitmap CreateMeshPreviewImage(Rhino.Geometry.Mesh mesh, Color color, Size size)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Creates a preview image of a mesh.",
        "since": "6.0",
        "parameters": [
          {
            "name": "mesh",
            "type": "Rhino.Geometry.Mesh",
            "summary": "The mesh."
          },
          {
            "name": "color",
            "type": "Color",
            "summary": "The draw color."
          },
          {
            "name": "size",
            "type": "Size",
            "summary": "The size of the preview image."
          }
        ],
        "returns": "A bitmap if successful, None otherwise."
      },
      {
        "signature": "Bitmap CreateMeshPreviewImage(RhinoDoc doc, IEnumerable<Mesh> meshes, IEnumerable<Color> colors, Size size)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Creates a preview image of one or more meshes.",
        "since": "7.0",
        "parameters": [
          {
            "name": "doc",
            "type": "RhinoDoc",
            "summary": "The active document."
          },
          {
            "name": "meshes",
            "type": "IEnumerable<Geometry.Mesh>",
            "summary": "The meshes."
          },
          {
            "name": "colors",
            "type": "IEnumerable<Color>",
            "summary": "The draw colors, one for each mesh."
          },
          {
            "name": "size",
            "type": "Size",
            "summary": "The size of the preview image."
          }
        ],
        "returns": "A bitmap if successful, None otherwise."
      },
      {
        "signature": "System.Void DarkModeConvertPixel(ref System.Byte r, ref System.Byte g, ref System.Byte b)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Attempt to adjust pixels to an image that works for dark mode",
        "since": "8.0",
        "parameters": [
          {
            "name": "r",
            "type": "System.Byte",
            "summary": "Red"
          },
          {
            "name": "g",
            "type": "System.Byte",
            "summary": "Green"
          },
          {
            "name": "b",
            "type": "System.Byte",
            "summary": "Vlue"
          }
        ]
      },
      {
        "signature": "System.Void DarkModeConvertPixels(ref System.Byte[] rgbaBytes)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Attempt to adjust pixels to an image that works for dark mode",
        "since": "8.0"
      },
      {
        "signature": "Icon IconFromResource(System.String resourceName, Size size, System.Reflection.Assembly assembly)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Load a Icon from an embedded resource.",
        "since": "6.0",
        "parameters": [
          {
            "name": "resourceName",
            "type": "System.String",
            "summary": "The case-sensitive name of the icon manifest resource being requested."
          },
          {
            "name": "size",
            "type": "Size",
            "summary": "The desired size of the icon."
          },
          {
            "name": "assembly",
            "type": "System.Reflection.Assembly",
            "summary": "The assembly containing the manifest resource, will use the calling assembly if null."
          }
        ],
        "returns": "The Icon resource if found and loaded otherwise null."
      },
      {
        "signature": "Icon IconFromResource(System.String resourceName, System.Reflection.Assembly assembly)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Load a Icon from an embedded resource.",
        "since": "6.0",
        "parameters": [
          {
            "name": "resourceName",
            "type": "System.String",
            "summary": "The case-sensitive name of the icon manifest resource being requested."
          },
          {
            "name": "assembly",
            "type": "System.Reflection.Assembly",
            "summary": "The assembly containing the manifest resource, will use the calling assembly if null."
          }
        ],
        "returns": "The Icon resource if found and loaded otherwise null."
      },
      {
        "signature": "Image ImageFromResource(System.String resourceName, System.Reflection.Assembly assembly)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Load a Image from an embedded resource.",
        "since": "6.0",
        "parameters": [
          {
            "name": "resourceName",
            "type": "System.String",
            "summary": "The case-sensitive name of the image manifest resource being requested."
          },
          {
            "name": "assembly",
            "type": "System.Reflection.Assembly",
            "summary": "The assembly containing the manifest resource, will use the calling assembly if null."
          }
        ],
        "returns": "The Image resource if found and loaded otherwise null."
      },
      {
        "signature": "Bitmap LoadBitmapWithScaleDown(System.String iconName, System.Int32 sizeDesired, System.Reflection.Assembly assembly)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Loads an icon from an embedded resource and converts it to a bitmap. If the icon is not a standard size, this function scales down a larger image.",
        "since": "6.0",
        "parameters": [
          {
            "name": "iconName",
            "type": "System.String",
            "summary": "The case-sensitive name of the icon manifest resource being requested."
          },
          {
            "name": "sizeDesired",
            "type": "System.Int32",
            "summary": "The desired size, in pixels, of the icon."
          },
          {
            "name": "assembly",
            "type": "System.Reflection.Assembly",
            "summary": "The assembly containing the manifest resource."
          }
        ],
        "returns": "The icon converted to a bitmap if successful, None otherwise."
      },
      {
        "signature": "Icon LoadIconWithScaleDown(System.String iconName, System.Int32 sizeDesired, System.Reflection.Assembly assembly)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Loads an icon from an embedded resource. If the icon is not a standard size, this function scales down a larger image.",
        "since": "6.0",
        "parameters": [
          {
            "name": "iconName",
            "type": "System.String",
            "summary": "The case-sensitive name of the icon manifest resource being requested."
          },
          {
            "name": "sizeDesired",
            "type": "System.Int32",
            "summary": "The desired size, in pixels, of the icon."
          },
          {
            "name": "assembly",
            "type": "System.Reflection.Assembly",
            "summary": "The assembly containing the manifest resource."
          }
        ],
        "returns": "The icon if successful, None otherwise."
      },
      {
        "signature": "System.Int32 MakeArgb(System.Byte a, System.Byte r, System.Byte g, System.Byte b)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Stores a color into an integer from 4 bytes.",
        "since": "8.0",
        "parameters": [
          {
            "name": "a",
            "type": "System.Byte",
            "summary": "Alpha (between 0 and 255)"
          },
          {
            "name": "r",
            "type": "System.Byte",
            "summary": "Red (between 0 and 255)"
          },
          {
            "name": "g",
            "type": "System.Byte",
            "summary": "Green (between 0 and 255)"
          },
          {
            "name": "b",
            "type": "System.Byte",
            "summary": "Blue (between 0 and 255)"
          }
        ],
        "returns": "An integer containing the ARGB data"
      },
      {
        "signature": "System.Byte[] PixelsFromSvg(System.String svg, System.Int32 width, System.Int32 height, System.Boolean premultiplyAlpha, Color backgroundColor, System.Boolean adjustForDarkMode)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Get array of bytes that represent RGBA values for an image of a given size created from SVG",
        "since": "8.0",
        "parameters": [
          {
            "name": "svg",
            "type": "System.String",
            "summary": "A valid svg string"
          },
          {
            "name": "width",
            "type": "System.Int32",
            "summary": "Width of the svg in pixels"
          },
          {
            "name": "height",
            "type": "System.Int32",
            "summary": "Height of the svg in pixels"
          },
          {
            "name": "premultiplyAlpha",
            "type": "System.Boolean",
            "summary": "Pre-lends the background color with the pixels based on their alpha value"
          },
          {
            "name": "backgroundColor",
            "type": "Color",
            "summary": "Background color - pass Color.Empty if you don't know what to pass."
          },
          {
            "name": "adjustForDarkMode",
            "type": "System.Boolean",
            "summary": "If True swaps any available attributes for their dark mode counterparts>"
          }
        ],
        "returns": "Null on an exception, an array of <b>Color</b> as bytes otherwise"
      },
      {
        "signature": "System.Byte[] PixelsFromSvg(System.String svg, System.Int32 width, System.Int32 height, System.Boolean premultiplyAlpha, Color backgroundColor)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Get array of bytes that represent RGBA values for an image of a given size created from SVG",
        "since": "8.0",
        "parameters": [
          {
            "name": "svg",
            "type": "System.String",
            "summary": "A valid svg string"
          },
          {
            "name": "width",
            "type": "System.Int32",
            "summary": "Width of the svg in pixels"
          },
          {
            "name": "height",
            "type": "System.Int32",
            "summary": "Height of the svg in pixels"
          },
          {
            "name": "premultiplyAlpha",
            "type": "System.Boolean",
            "summary": "Pre-lends the background color with the pixels based on their alpha value"
          },
          {
            "name": "backgroundColor",
            "type": "Color",
            "summary": "Background color - pass Color.Empty if you don't know what to pass."
          }
        ],
        "returns": "Null on an exception, an array of <b>Color</b> as bytes otherwise"
      },
      {
        "signature": "System.Void SvgToRhinoDibIntPtr(System.String svg, System.Int32 width, System.Int32 height, System.Boolean adjustForDarkMode, System.IntPtr pRhinoDib)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Create bitmap of a given size from an svg string",
        "since": "8.0"
      }
    ]
  },
  {
    "namespace": "Rhino.UI",
    "name": "Fonts",
    "dataType": "class",
    "summary": "Rhino.Rumtime.UI",
    "constructors": [
      {
        "signature": "Fonts()",
        "summary": "Initializes a new instance of the Fonts class"
      }
    ],
    "properties": [
      {
        "signature": "Font BoldHeadingFont",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Returns a font that is 1.2x NormalFont and Bold",
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "Font HeadingFont",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Returns a font used for dialog headings. 1.2x the size of NormalFont.",
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "Font NormalFont",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Returns the normal font used for dialog boxes and buttons.",
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "Font SmallFont",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Returns a font use for small text in dialog boxes. 0.8x the size of NormalFont.",
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "Font TitleFont",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Returns a font used for dialog titles. 2x the size of NormalFont, and bold.",
        "since": "6.0",
        "property": ["get"]
      }
    ],
    "methods": [
      {
        "signature": "Font GetUiFont(Style style, Size size)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "GetUiFont provides access to a set of unmanaged fonts used by Rhino.",
        "since": "6.0",
        "parameters": [
          {
            "name": "style",
            "type": "Style",
            "summary": "Normal, Bold, Italic"
          },
          {
            "name": "size",
            "type": "Size",
            "summary": "One of several preset enumerable sizes"
          }
        ]
      }
    ]
  },
  {
    "namespace": "Rhino.UI",
    "name": "Fonts.Size",
    "dataType": "enum",
    "summary": "Size for UI font.",
    "values": [
      {
        "signature": "Small",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "0.8 x Normal"
      },
      {
        "signature": "Normal",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "1.0 x Normal"
      },
      {
        "signature": "Large",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "1.2 x Normal"
      },
      {
        "signature": "Title",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "2.0 x Normal"
      }
    ]

  },
  {
    "namespace": "Rhino.UI",
    "name": "Fonts.Style",
    "dataType": "enum",
    "summary": "Style for UI font.",
    "values": [
      {
        "signature": "Regular = 0",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Normal"
      },
      {
        "signature": "Bold = 1",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Bold"
      },
      {
        "signature": "Italic = 2",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Italic"
      },
      {
        "signature": "Underline = 4",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Underline"
      },
      {
        "signature": "Strikeout = 8",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Strikeout"
      }
    ]

  },
  {
    "namespace": "Rhino.UI",
    "name": "GetColorEventArgs",
    "dataType": "class",
    "baseclass": "EventArgs",
    "properties": [
      {
        "signature": "bool IncludeButtonColors",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "Color InputColor",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "Color SelectedColor",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "string Title",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0",
        "property": ["get"]
      }
    ]
  },
  {
    "namespace": "Rhino.UI",
    "name": "GripUserInterfaceObject",
    "dataType": "class",
    "summary": "A point style user interface widget that can be dragged in world space",
    "baseclass": "Rhino.UI.UserInterfaceObjectBase",
    "constructors": [
      {
        "signature": "GripUserInterfaceObject()",
        "modifiers": ["protected"],
        "protected": true,
        "virtual": false
      },
      {
        "signature": "GripUserInterfaceObject(Point3d location)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "9.0"
      }
    ],
    "properties": [
      {
        "signature": "Color GripColor",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "9.0",
        "property": ["get", "set"]
      },
      {
        "signature": "Color GripFillColor",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "9.0",
        "property": ["get", "set"]
      },
      {
        "signature": "Point3d GripLocation",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "9.0",
        "property": ["get", "set"]
      },
      {
        "signature": "float GripRadius",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "9.0",
        "property": ["get", "set"]
      },
      {
        "signature": "GripUserInterfaceObjectShape GripShape",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "9.0",
        "property": ["get", "set"]
      },
      {
        "signature": "float GripShapeRotationRadians",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "9.0",
        "property": ["get", "set"]
      },
      {
        "signature": "float GripStrokeWidth",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "9.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool ObjectSnapCursorsEnabled",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "9.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool ObjectSnapPermitted",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "9.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool OnObjectCursorsEnabled",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "9.0",
        "property": ["get", "set"]
      }
    ],
    "methods": [
      {
        "signature": "System.Void ClearSnapPoints()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "9.0"
      },
      {
        "signature": "System.Void Constrain(Rhino.Geometry.Arc arc)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "9.0"
      },
      {
        "signature": "System.Void Constrain(Rhino.Geometry.Circle circle)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "9.0"
      },
      {
        "signature": "System.Void Constrain(Rhino.Geometry.Curve curve)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "9.0"
      },
      {
        "signature": "System.Void Constrain(Rhino.Geometry.Line line)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "9.0"
      },
      {
        "signature": "System.Void OnDrag(Rhino.Geometry.Point3d newLocation, MouseState mouse)",
        "modifiers": ["protected", "virtual"],
        "protected": true,
        "virtual": true
      },
      {
        "signature": "System.Void SetSnapPoints(IEnumerable<Point3d> points)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "9.0"
      }
    ]
  },
  {
    "namespace": "Rhino.UI",
    "name": "GripUserInterfaceObjectShape",
    "dataType": "enum",
    "summary": "Grip shapes available for GripUserInterfaceObject classes",
    "since": "9.0",
    "values": [
      {
        "signature": "Circle = 0",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Square = 1",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Triangle = 2",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "X = 3",
        "modifiers": [],
        "protected": false,
        "virtual": false
      }
    ]

  },
  {
    "namespace": "Rhino.UI.Gumball",
    "name": "GumballAppearanceSettings",
    "dataType": "class",
    "constructors": [
      {
        "signature": "GumballAppearanceSettings()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      }
    ],
    "properties": [
      {
        "signature": "int ArcThickness",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "in pixels.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "int ArrowHeadLength",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "in pixels.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "int ArrowHeadWidth",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "in pixels.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "int AxisThickness",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "in pixels.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "Color ColorMenuButton",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "Color ColorX",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Default is Red.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "Color ColorY",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Default is Green.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "Color ColorZ",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Default is Blue.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "int FreeTranslate",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "When FreeTranslate is 1, the center translation control can be dragged in any direction and moves the object the gumball controls. When FreeTranslate is 2, the center translation control can be dragged in any direction and moves the object the gumball itself. The default value is 2.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "int MenuDistance",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Distance of menu ball from center.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool MenuEnabled",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "When MenuEnabled is true, the menu \"button\" is drawn on the gumball. The default setting is true.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "int MenuSize",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Radius of menu circle.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "int PlanarTranslationGripCorner",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "in pixels.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "int PlanarTranslationGripSize",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "in pixels.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "int Radius",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "in pixels.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool RelocateEnabled",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "When RelocateEnabled is true, the user can reposition the gumball by tapping the control key while dragging.  Once the repostion drag is terminated by releasing the/ mouse button, ordinary editing resumes. The default setting is true.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool RotateXEnabled",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "When RotateX is true, the X rotation control is available. The default setting is true.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool RotateYEnabled",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "When RotateY is true, the Y rotation control is available. The default setting is true.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool RotateZEnabled",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "When RotateZ is true, the Z rotation control is available. The default setting is true.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "int ScaleGripSize",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "in pixels.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool ScaleXEnabled",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "When ScaleXEnabled is true, the X scale control is available. The default setting is true.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool ScaleYEnabled",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "When ScaleYEnabled is true, the Y scale control is available. The default setting is true.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool ScaleZEnabled",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "When ScaleZEnabled is true, the Z scale control is available. The default setting is true.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool TranslateXEnabled",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "TranslateXEnabled is true, the X axis translation control is available. The default setting is true.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool TranslateXYEnabled",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "When TranslateXY is true, the XY plane translation control is available in appropriate views. The default setting is true.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool TranslateYEnabled",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "TranslateYEnabled is true, the Y axis translation control is available. The default setting is true.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool TranslateYZEnabled",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "When TranslateYZ is true, the YZ plane translation control is available in appropriate views. The default setting is true.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool TranslateZEnabled",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "TranslateZEnabled is true, the Z axis translation control is available. The default setting is true.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool TranslateZXEnabled",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "When TranslateZX is true, the ZX plane translation control is available in appropriate views. The default setting is true.",
        "since": "5.0",
        "property": ["get", "set"]
      }
    ]
  },
  {
    "namespace": "Rhino.UI.Gumball",
    "name": "GumballDisplayConduit",
    "dataType": "class",
    "interfaces": ["IDisposable"],
    "constructors": [
      {
        "signature": "GumballDisplayConduit()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0",
        "deprecated": "8.0"
      },
      {
        "signature": "GumballDisplayConduit(ActiveSpace space)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "8.0"
      }
    ],
    "properties": [
      {
        "signature": "GumballObject BaseGumball",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Starting location.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "bool Enabled",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "GumballObject Gumball",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "Transform GumballTransform",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "The gumball transformation is the transformation calculated by comparing the current gumball to the starting BaseGumball.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "bool InRelocate",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "GumballPickResult PickResult",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "The initial mouse down event sets PickResult.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "Transform PreTransform",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "The pre-transform is a transformation that needs to be applied before the gumball transformation.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "Transform TotalTransform",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "The total transformation is GumballTransform * PreTransform.",
        "since": "5.0",
        "property": ["get"]
      }
    ],
    "methods": [
      {
        "signature": "System.Void CheckShiftAndControlKeys()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "System.Void Dispose()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "System.Void Dispose(System.Boolean disposing)",
        "modifiers": ["protected", "virtual"],
        "protected": true,
        "virtual": true
      },
      {
        "signature": "System.Boolean PickGumball(Rhino.Input.Custom.PickContext pickContext, Rhino.Input.Custom.GetPoint getPoint)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "System.Void SetBaseGumball(GumballObject gumball, GumballAppearanceSettings appearanceSettings)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Contents of the gumball are copied to the base gumball of this class.",
        "since": "5.0",
        "parameters": [
          {
            "name": "gumball",
            "type": "GumballObject",
            "summary": "The gumball source."
          },
          {
            "name": "appearanceSettings",
            "type": "GumballAppearanceSettings",
            "summary": "The gumball appearance and behavior settings. Argument can be null."
          }
        ]
      },
      {
        "signature": "System.Void SetBaseGumball(GumballObject gumball)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Contents of the gumball are copied to the base gumball of this class.",
        "since": "5.0",
        "parameters": [
          {
            "name": "gumball",
            "type": "GumballObject",
            "summary": "The gumball source."
          }
        ]
      },
      {
        "signature": "System.Boolean UpdateGumball(Plane frame)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "8.19"
      },
      {
        "signature": "System.Boolean UpdateGumball(Point3d point, Line worldLine)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      }
    ]
  },
  {
    "namespace": "Rhino.UI.Gumball",
    "name": "GumballFrame",
    "dataType": "struct",
    "properties": [
      {
        "signature": "Plane Plane",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "Vector3d ScaleGripDistance",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "GumballScaleMode ScaleMode",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0",
        "property": ["get", "set"]
      }
    ]
  },
  {
    "namespace": "Rhino.UI.Gumball",
    "name": "GumballMode",
    "dataType": "enum",
    "summary": "Transformation modes for gumballs.",
    "since": "5.0",
    "values": [
      {
        "signature": "None = 0",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Menu  = 1",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Gumball menu button was picked."
      },
      {
        "signature": "TranslateFree = 2",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Unconstrained translation."
      },
      {
        "signature": "TranslateX = 3",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Translation along a single axis."
      },
      {
        "signature": "TranslateY = 4",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Translation along a single axis."
      },
      {
        "signature": "TranslateZ = 5",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Translation along a single axis."
      },
      {
        "signature": "TranslateXY = 6",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Translation in a plane."
      },
      {
        "signature": "TranslateYZ = 7",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Translation in a plane."
      },
      {
        "signature": "TranslateZX = 8",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Translation in a plane."
      },
      {
        "signature": "ScaleX = 9",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Scale along a single axis."
      },
      {
        "signature": "ScaleY = 10",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Scale along a single axis."
      },
      {
        "signature": "ScaleZ = 11",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Scale along a single axis."
      },
      {
        "signature": "ScaleXY = 12",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Scale in a plane."
      },
      {
        "signature": "ScaleYZ = 13",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Scale in a plane."
      },
      {
        "signature": "ScaleZX = 14",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Scale in a plane."
      },
      {
        "signature": "RotateX = 15",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Rotation around a single axis."
      },
      {
        "signature": "RotateY = 16",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Rotation around a single axis."
      },
      {
        "signature": "RotateZ = 17",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Rotation around a single axis."
      },
      {
        "signature": "ExtrudeX = 18",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Extrusion along a single axis."
      },
      {
        "signature": "ExtrudeY = 19",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Extrusion along a single axis."
      },
      {
        "signature": "ExtrudeZ = 20",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Extrusion along a single axis."
      },
      {
        "signature": "CutX = 21",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Cutting extrusion along the gumball X axis."
      },
      {
        "signature": "CutY = 22",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Cutting extrusion along the gumball Y axis."
      },
      {
        "signature": "CutZ = 23",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Cutting extrusion along the gumball Z axis."
      }
    ]

  },
  {
    "namespace": "Rhino.UI.Gumball",
    "name": "GumballObject",
    "dataType": "class",
    "interfaces": ["IDisposable"],
    "constructors": [
      {
        "signature": "GumballObject()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      }
    ],
    "properties": [
      {
        "signature": "GumballFrame Frame",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0",
        "property": ["get", "set"]
      }
    ],
    "methods": [
      {
        "signature": "System.Void Dispose()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "System.Void Dispose(System.Boolean disposing)",
        "modifiers": ["protected", "virtual"],
        "protected": true,
        "virtual": true
      },
      {
        "signature": "System.Boolean SetFromArc(Arc arc)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "System.Boolean SetFromBoundingBox(BoundingBox boundingBox)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "System.Boolean SetFromBoundingBox(Plane frame, BoundingBox frameBoundingBox)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Sets the gumball bounding box with respect to a frame.",
        "since": "5.0",
        "parameters": [
          {
            "name": "frame",
            "type": "Plane",
            "summary": "The frame."
          },
          {
            "name": "frameBoundingBox",
            "type": "BoundingBox",
            "summary": "Bounding box with respect to frame."
          }
        ],
        "returns": "True if input is valid and gumball is set. False if input is not valid. In this case, gumball is set to the default."
      },
      {
        "signature": "System.Boolean SetFromCircle(Circle circle)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "System.Boolean SetFromCurve(Curve curve)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "System.Boolean SetFromEllipse(Ellipse ellipse)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "System.Boolean SetFromExtrusion(Extrusion extrusion)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "System.Boolean SetFromHatch(Hatch hatch)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "System.Boolean SetFromLight(Light light)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "System.Boolean SetFromLine(Line line)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "System.Boolean SetFromPlane(Plane plane)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      }
    ]
  },
  {
    "namespace": "Rhino.UI.Gumball",
    "name": "GumballPickResult",
    "dataType": "class",
    "properties": [
      {
        "signature": "GumballMode Mode",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0",
        "property": ["get"]
      }
    ],
    "methods": [
      {
        "signature": "System.Void SetToDefault()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      }
    ]
  },
  {
    "namespace": "Rhino.UI.Gumball",
    "name": "GumballScaleMode",
    "dataType": "enum",
    "since": "5.0",
    "values": [
      {
        "signature": "Independent = 0",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "XY = 1",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "YZ = 2",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "ZX = 3",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "XYZ = 4",
        "modifiers": [],
        "protected": false,
        "virtual": false
      }
    ]

  },
  {
    "namespace": "Rhino.UI",
    "name": "IDialogService",
    "dataType": "interface",
    "methods": [
      {
        "signature": "System.IntPtr ObjectToWindowHandle(System.Object window, System.Boolean useMainRhinoWindowWhenNull)",
        "modifiers": [],
        "protected": true,
        "virtual": false,
        "since": "6.0"
      },
      {
        "signature": "System.Boolean ShowColorDialog(System.Object parent, ref Display.Color4f color, System.Boolean allowAlpha, Dialogs.OnColorChangedEvent colorCallback)",
        "modifiers": [],
        "protected": true,
        "virtual": false,
        "since": "7.0"
      },
      {
        "signature": "System.String[] ShowMultiListBox(System.String title, System.String message, IList<string> items, IList<string> defaults)",
        "modifiers": [],
        "protected": true,
        "virtual": false,
        "since": "6.0"
      },
      {
        "signature": "System.Object WrapAsIWin32Window(System.IntPtr handle)",
        "modifiers": [],
        "protected": true,
        "virtual": false,
        "since": "6.0"
      }
    ]
  },
  {
    "namespace": "Rhino.UI",
    "name": "IHelp",
    "dataType": "interface",
    "summary": "Implement this class to add help to a modeless UI panel.",
    "properties": [
      {
        "signature": "string HelpUrl",
        "modifiers": [],
        "protected": true,
        "virtual": false,
        "summary": "Help topic URL which gets passed to RhinoHelp.Show",
        "since": "6.0",
        "property": ["get"]
      }
    ]
  },
  {
    "namespace": "Rhino.UI",
    "name": "ILocalizationService",
    "dataType": "interface",
    "methods": [
      {
        "signature": "System.String LocalizeCommandName(System.Reflection.Assembly assembly, System.Int32 languageId, System.String english)",
        "modifiers": [],
        "protected": true,
        "virtual": false,
        "since": "6.0"
      },
      {
        "signature": "System.String LocalizeDialogItem(System.Reflection.Assembly assembly, System.Int32 languageId, System.String key, System.String english)",
        "modifiers": [],
        "protected": true,
        "virtual": false,
        "since": "6.0"
      },
      {
        "signature": "System.Void LocalizeForm(System.Reflection.Assembly assembly, System.Int32 languageId, System.Object formOrUserControl)",
        "modifiers": [],
        "protected": true,
        "virtual": false,
        "since": "6.0"
      },
      {
        "signature": "System.String LocalizeString(System.Reflection.Assembly assembly, System.Int32 languageId, System.String english, System.Int32 contextId)",
        "modifiers": [],
        "protected": true,
        "virtual": false,
        "since": "6.0"
      }
    ]
  },
  {
    "namespace": "Rhino.UI",
    "name": "IPanel",
    "dataType": "interface",
    "summary": "Implement this interface when you want to be notified of when a panel is shown, hidden or closed.",
    "methods": [
      {
        "signature": "System.Void PanelClosing(System.UInt32 documentSerialNumber, System.Boolean onCloseDocument)",
        "modifiers": [],
        "protected": true,
        "virtual": false,
        "since": "6.0"
      },
      {
        "signature": "System.Void PanelHidden(System.UInt32 documentSerialNumber, ShowPanelReason reason)",
        "modifiers": [],
        "protected": true,
        "virtual": false,
        "since": "6.0"
      },
      {
        "signature": "System.Void PanelShown(System.UInt32 documentSerialNumber, ShowPanelReason reason)",
        "modifiers": [],
        "protected": true,
        "virtual": false,
        "since": "6.0"
      }
    ]
  },
  {
    "namespace": "Rhino.UI",
    "name": "IPanelsService",
    "dataType": "interface",
    "summary": "For internal use, the IPanels service is implemented in RhinoWindows or RhinoMac as appropriate and handles the communication with core Rhino",
    "methods": [
      {
        "signature": "System.Boolean CreateDockBar(System.Object options)",
        "modifiers": [],
        "protected": true,
        "virtual": false,
        "since": "8.0"
      },
      {
        "signature": "System.Void DestroyNativeWindow(System.Object host, System.Object nativeObject, System.Boolean disposeOfNativeObject)",
        "modifiers": [],
        "protected": true,
        "virtual": false,
        "since": "6.1"
      },
      {
        "signature": "System.Boolean DockBarIdInUse(System.Guid barId)",
        "modifiers": [],
        "protected": true,
        "virtual": false,
        "since": "8.0"
      },
      {
        "signature": "System.Boolean DockBarIsVisible(System.Guid barId)",
        "modifiers": [],
        "protected": true,
        "virtual": false,
        "since": "8.0"
      },
      {
        "signature": "System.Void FactoryResetSettings()",
        "modifiers": [],
        "protected": true,
        "virtual": false,
        "since": "8.0"
      },
      {
        "signature": "System.Boolean Float(System.Guid barId, System.Drawing.Point point)",
        "modifiers": [],
        "protected": true,
        "virtual": false,
        "since": "8.0"
      },
      {
        "signature": "System.Boolean ResizeFloating(System.Guid barId, System.Drawing.Size size)",
        "modifiers": [],
        "protected": true,
        "virtual": false,
        "since": "8.0"
      },
      {
        "signature": "System.Void SetF1Hook(System.Object nativeObject, System.EventHandler hook)",
        "modifiers": [],
        "protected": true,
        "virtual": false,
        "since": "6.1"
      },
      {
        "signature": "System.Boolean ShowDockBar(System.Guid barId, System.Boolean show)",
        "modifiers": [],
        "protected": true,
        "virtual": false,
        "since": "8.0"
      },
      {
        "signature": "System.Boolean StartDraggingDockBar(System.Guid barId, System.Drawing.Point mouseDownPoint, System.Drawing.Point screenStartPoint)",
        "modifiers": [],
        "protected": true,
        "virtual": false,
        "since": "8.0"
      },
      {
        "signature": "System.Boolean SupportedType(System.Type type, out System.String exceptionMessage)",
        "modifiers": [],
        "protected": true,
        "virtual": false,
        "since": "6.1"
      },
      {
        "signature": "System.Boolean ToggleDocking(System.Guid barId)",
        "modifiers": [],
        "protected": true,
        "virtual": false,
        "since": "8.0"
      },
      {
        "signature": "System.Boolean UnhookDeleteAndDestroyDockBar(System.Guid id)",
        "modifiers": [],
        "protected": true,
        "virtual": false,
        "since": "8.0"
      }
    ]
  },
  {
    "namespace": "Rhino.UI",
    "name": "IRhinoUiDialogService",
    "dataType": "interface",
    "summary": "Used by Rhino.UI.Dialogs to access generic Eto dialogs from Rhino Common",
    "methods": [
      {
        "signature": "System.Void DetectColorScheme(out System.Boolean defaultLightMode, out System.Boolean defaultDarkMode)",
        "modifiers": [],
        "protected": true,
        "virtual": false,
        "since": "8.2"
      },
      {
        "signature": "Icon IconFromResourceId(System.Reflection.Assembly iconAssembly, System.String iconResourceId)",
        "modifiers": [],
        "protected": true,
        "virtual": false,
        "since": "8.0"
      },
      {
        "signature": "System.Boolean SetToDefaultColorScheme(System.Boolean dark)",
        "modifiers": [],
        "protected": true,
        "virtual": false,
        "since": "8.2"
      },
      {
        "signature": "System.Boolean[] ShowCheckListBox(System.String title, System.String message, System.Collections.IList items, IList<bool> checkState)",
        "modifiers": [],
        "protected": true,
        "virtual": false,
        "since": "6.0"
      },
      {
        "signature": "System.Object ShowComboListBox(System.String title, System.String message, System.Collections.IList items)",
        "modifiers": [],
        "protected": true,
        "virtual": false,
        "since": "6.0"
      },
      {
        "signature": "System.Boolean ShowEditBox(System.String title, System.String message, System.String defaultText, System.Boolean multiline, out System.String text)",
        "modifiers": [],
        "protected": true,
        "virtual": false,
        "since": "6.0"
      },
      {
        "signature": "System.Guid ShowLineTypes(System.String title, System.String message, RhinoDoc doc, System.Guid selectedLinetypeId)",
        "modifiers": [],
        "protected": true,
        "virtual": false,
        "since": "8.0"
      },
      {
        "signature": "System.Object ShowLineTypes(System.String title, System.String message, RhinoDoc doc)",
        "modifiers": [],
        "protected": true,
        "virtual": false,
        "since": "6.7"
      },
      {
        "signature": "System.Object ShowListBox(System.String title, System.String message, System.Collections.IList items, System.Object selectedItem)",
        "modifiers": [],
        "protected": true,
        "virtual": false,
        "since": "6.0"
      },
      {
        "signature": "System.String[] ShowMultiListBox(IList<string> items, System.String message, System.String title, IList<string> defaults)",
        "modifiers": [],
        "protected": true,
        "virtual": false,
        "since": "6.10"
      },
      {
        "signature": "System.Boolean ShowNumberBox(System.String title, System.String message, ref System.Double number, System.Double minimum, System.Double maximum)",
        "modifiers": [],
        "protected": true,
        "virtual": false,
        "since": "6.0"
      },
      {
        "signature": "System.Int32 ShowPopupMenu(System.String[] arrItems, System.Int32[] arrModes, System.Int32? screenPointX, System.Int32? screenPointY)",
        "modifiers": [],
        "protected": true,
        "virtual": false
      },
      {
        "signature": "System.Double ShowPrintWidths(System.String title, System.String message, System.Double selectedWidth)",
        "modifiers": [],
        "protected": true,
        "virtual": false,
        "since": "8.0"
      },
      {
        "signature": "System.Double ShowPrintWidths(System.String title, System.String message)",
        "modifiers": [],
        "protected": true,
        "virtual": false,
        "since": "8.0"
      },
      {
        "signature": "System.String[] ShowPropertyListBox(System.String title, System.String message, List<KeyValuePair<string,string>> items)",
        "modifiers": [],
        "protected": true,
        "virtual": false
      },
      {
        "signature": "System.String[] ShowPropertyListBox(System.String title, System.String message, System.Collections.IList items, IList<string> values)",
        "modifiers": [],
        "protected": true,
        "virtual": false,
        "since": "8.0"
      }
    ]
  },
  {
    "namespace": "Rhino.UI",
    "name": "IStackedDialogPageService",
    "dataType": "interface",
    "summary": "For internal use, the IStackedDialogPageService service is implemented in RhinoWindows or RhinoMac as appropriate and handles the communication with core Rhino",
    "methods": [
      {
        "signature": "System.IntPtr GetImageHandle(System.Drawing.Icon icon, System.Boolean canBeNull)",
        "modifiers": [],
        "protected": true,
        "virtual": false,
        "summary": "Convert image to platform specific unmanaged pointer",
        "since": "6.1"
      },
      {
        "signature": "System.IntPtr GetImageHandle(System.Drawing.Image image, System.Boolean canBeNull)",
        "modifiers": [],
        "protected": true,
        "virtual": false,
        "summary": "Convert image to platform specific unmanaged pointer",
        "since": "6.0"
      },
      {
        "signature": "System.IntPtr GetNativePageWindow(System.Object pageObject, System.Boolean isRhinoPanel, System.Boolean applyPanelStyles, out System.Object nativeWindowObject, out System.Object host)",
        "modifiers": [],
        "protected": true,
        "virtual": false,
        "summary": "Get the unmanaged pointer associated with the pages content control",
        "since": "6.1"
      },
      {
        "signature": "System.IntPtr GetNativePageWindow(System.Object nativeWindowObject, System.Boolean isRhinoPanel, System.Boolean applyPanelStyles, out System.Object host)",
        "modifiers": [],
        "protected": true,
        "virtual": false,
        "summary": "Get the unmanaged pointer associated with the pages content control",
        "since": "6.0"
      },
      {
        "signature": "System.IntPtr NativeHandle(System.Object host)",
        "modifiers": [],
        "protected": true,
        "virtual": false,
        "summary": "Gets the native window handle associated with the host object if there is one.",
        "since": "8.4"
      },
      {
        "signature": "System.Void RedrawPageControl(System.Object pageControl)",
        "modifiers": [],
        "protected": true,
        "virtual": false,
        "summary": "Redraw the specified control.",
        "since": "6.0",
        "parameters": [
          {
            "name": "pageControl",
            "type": "System.Object",
            "summary": "Control to redraw"
          }
        ]
      },
      {
        "signature": "System.Boolean SetNativeParent(System.IntPtr hwndParent, System.Object host)",
        "modifiers": [],
        "protected": true,
        "virtual": false,
        "summary": "Sets the parent on a host returned from GetNativePageWindow",
        "since": "8.3"
      },
      {
        "signature": "System.Boolean TryGetControlMinimumSize(System.Object controlObject, out System.Drawing.SizeF size)",
        "modifiers": [],
        "protected": true,
        "virtual": false,
        "summary": "Get the minimum size associated with a control object",
        "since": "6.5",
        "parameters": [
          {
            "name": "controlObject",
            "type": "System.Object",
            "summary": "The control object to check for minimum size."
          },
          {
            "name": "size",
            "type": "System.Drawing.SizeF",
            "summary": "The minimum size of the control if provided."
          }
        ],
        "returns": "Returns True if get control minimum size found, False otherwise."
      }
    ]
  },
  {
    "namespace": "Rhino.UI",
    "name": "KeyboardKey",
    "dataType": "enum",
    "summary": "Keyboard key recognized by shortcuts",
    "since": "8.12",
    "values": [
      {
        "signature": "None = 0",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "No key"
      },
      {
        "signature": "Tab = 0x09",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Tab key"
      },
      {
        "signature": "PageUp = 0x21",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "PageUp key"
      },
      {
        "signature": "PageDown = 0x22",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "PageDown key"
      },
      {
        "signature": "End = 0x23",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "End key"
      },
      {
        "signature": "Home = 0x24",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Home key"
      },
      {
        "signature": "Num0 = 48",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "0 key"
      },
      {
        "signature": "Num1 = 49",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "1 key"
      },
      {
        "signature": "Num2 = 50",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "2 key"
      },
      {
        "signature": "Num3 = 51",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "3 key"
      },
      {
        "signature": "Num4 = 52",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "4 key"
      },
      {
        "signature": "Num5 = 53",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "5 key"
      },
      {
        "signature": "Num6 = 54",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "6 key"
      },
      {
        "signature": "Num7 = 55",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "7 key"
      },
      {
        "signature": "Num8 = 56",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "8 key"
      },
      {
        "signature": "Num9 = 57",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "9 key"
      },
      {
        "signature": "A = 65",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "A key"
      },
      {
        "signature": "B = 66",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "B key"
      },
      {
        "signature": "C = 67",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "C key"
      },
      {
        "signature": "D = 68",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "D key"
      },
      {
        "signature": "E = 69",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "E key"
      },
      {
        "signature": "F = 70",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "F key"
      },
      {
        "signature": "G = 71",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "G key"
      },
      {
        "signature": "H = 72",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "H key"
      },
      {
        "signature": "I = 73",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "I key"
      },
      {
        "signature": "J = 74",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "J key"
      },
      {
        "signature": "K = 75",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "K key"
      },
      {
        "signature": "L = 76",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "L key"
      },
      {
        "signature": "M = 77",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "M key"
      },
      {
        "signature": "N = 78",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "N key"
      },
      {
        "signature": "O = 79",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "O key"
      },
      {
        "signature": "P = 80",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "P key"
      },
      {
        "signature": "Q = 81",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Q key"
      },
      {
        "signature": "R = 82",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "R key"
      },
      {
        "signature": "S = 83",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "S key"
      },
      {
        "signature": "T = 84",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "T key"
      },
      {
        "signature": "U = 85",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "U key"
      },
      {
        "signature": "V = 86",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "V key"
      },
      {
        "signature": "W = 87",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "W key"
      },
      {
        "signature": "X = 88",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "X key"
      },
      {
        "signature": "Y = 89",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Y key"
      },
      {
        "signature": "Z = 90",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Z key"
      },
      {
        "signature": "F1 = 0x70",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "F1 key"
      },
      {
        "signature": "F2 = 0x71",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "F2 key"
      },
      {
        "signature": "F3 = 0x72",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "F3 key"
      },
      {
        "signature": "F4 = 0x73",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "F4 key"
      },
      {
        "signature": "F5 = 0x74",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "F5 key"
      },
      {
        "signature": "F6 = 0x75",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "F6 key"
      },
      {
        "signature": "F7 = 0x76",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "F7 key"
      },
      {
        "signature": "F8 = 0x77",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "F8 key"
      },
      {
        "signature": "F9 = 0x78",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "F9 key"
      },
      {
        "signature": "F10 = 0x79",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "F10 key"
      },
      {
        "signature": "F11 = 0x7A",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "F11 key"
      },
      {
        "signature": "F12 = 0x7B",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "F12 key"
      },
      {
        "signature": "Semicolon = 0xBA",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "; key"
      },
      {
        "signature": "Equal = 0xBB",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "+ key"
      },
      {
        "signature": "Comma = 0xBC",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": ", key"
      },
      {
        "signature": "Minus = 0xBD",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "- key"
      },
      {
        "signature": "Period = 0xBE",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": ". key"
      },
      {
        "signature": "Slash = 0xBF",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "/ key"
      },
      {
        "signature": "Grave = 0xC0",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Backtick key"
      },
      {
        "signature": "LeftBracket = 0xDB",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "[ key"
      },
      {
        "signature": "BackSlash = 0xDC",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Back slash key"
      },
      {
        "signature": "RightBracket = 0xDD",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "] key"
      },
      {
        "signature": "Quote = 0xDE",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Quote key"
      }
    ]

  },
  {
    "namespace": "Rhino.UI",
    "name": "LOC",
    "dataType": "class",
    "summary": "Used a placeholder which is used by LocalizationProcessor application to create contextId mapped localized strings.",
    "constructors": [
      {
        "signature": "LOC()",
        "summary": "Initializes a new instance of the LOC class"
      }
    ],
    "methods": [
      {
        "signature": "System.String COMMANDNAME(System.String english)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Command names that need to be localized should call this function. The COMMANDNAME function doesn't actually do anything but return the original string. The LocalizationProcessor application walks through the source code of a project and looks for LOC.COMMANDNAME and builds a record for each command name for the translators that can be used by developers in a commands overridden Rhino.Commands.Command.LocalName which should call Rhino.UI.Localization.LocalizeCommandName(EnglishName)",
        "since": "5.0",
        "parameters": [
          {
            "name": "english",
            "type": "System.String",
            "summary": "[in] The English string to localize."
          }
        ]
      },
      {
        "signature": "LocalizeStringPair CON(System.String english, System.Int32 contextid)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "DO NOT use this function, it is a trap to determine where context IDs have been copied from other, already extracted, strings.",
        "since": "7.0",
        "deprecated": "7.1",
        "obsolete": "Don't copy and paste context IDs\", true",
        "parameters": [
          {
            "name": "english",
            "type": "System.String",
            "summary": "The English name."
          },
          {
            "name": "contextid",
            "type": "System.Int32",
            "summary": "Copied context id."
          }
        ],
        "returns": "English name."
      },
      {
        "signature": "LocalizeStringPair CON(System.String english, System.Object assemblyFromObject)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Command option name strings that need to be localized should call this function. The CON function doesn't actually do anything but return the original string. The LocalizationProcessor application walks through the source code of a project and looks for LOC.CON. The function is then replaced with a call to Localization.LocalizeCommandOptionName using a unique context ID.",
        "since": "5.0",
        "parameters": [
          {
            "name": "english",
            "type": "System.String",
            "summary": "[in] The English string to localize."
          },
          {
            "name": "assemblyFromObject",
            "type": "System.Object",
            "summary": "[in] The object that identifies the assembly that owns the command option name."
          }
        ],
        "returns": "Returns localized string pair with both the English and local names set to the English value."
      },
      {
        "signature": "LocalizeStringPair CON(System.String english)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Command option name strings that need to be localized should call this function. The CON function doesn't actually do anything but return the original string. The LocalizationProcessor application walks through the source code of a project and looks for LOC.CON. The function is then replaced with a call to Localization.LocalizeCommandOptionName using a unique context ID.",
        "since": "5.0",
        "parameters": [
          {
            "name": "english",
            "type": "System.String",
            "summary": "[in] The English string to localize."
          }
        ],
        "returns": "Returns localized string pair with both the English and local names set to the English value."
      },
      {
        "signature": "LocalizeStringPair COV(System.String english, System.Object assemblyFromObject)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Command option name strings that need to be localized should call this function. The COV function doesn't actually do anything but return the original string. The LocalizationProcessor application walks through the source code of a project and looks for LOC.COV. The function is then replaced with a call to Localization.LocalizeCommandOptionValue using a unique context ID.",
        "since": "5.0",
        "parameters": [
          {
            "name": "english",
            "type": "System.String",
            "summary": "[in] The English string to localize."
          },
          {
            "name": "assemblyFromObject",
            "type": "System.Object",
            "summary": "[in] The object that identifies the assembly that owns the command option value."
          }
        ],
        "returns": "Returns localized string pair with both the English and local names set to the English value."
      },
      {
        "signature": "LocalizeStringPair COV(System.String english)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Command option name strings that need to be localized should call this function. The COV function doesn't actually do anything but return the original string. The LocalizationProcessor application walks through the source code of a project and looks for LOC.COV. The function is then replaced with a call to Localization.LocalizeCommandOptionValue using a unique context ID.",
        "since": "5.0",
        "parameters": [
          {
            "name": "english",
            "type": "System.String",
            "summary": "[in] The English string to localize."
          }
        ],
        "returns": "Returns localized string pair with both the English and local names set to the English value."
      },
      {
        "signature": "System.String STR(System.String english, System.Int32 contextid)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "DO NOT use this function, it is a trap to determine where context IDs have been copied from other, already extracted, strings.",
        "since": "7.0",
        "deprecated": "7.1",
        "obsolete": "Don't copy and paste context IDs\", true",
        "parameters": [
          {
            "name": "english",
            "type": "System.String",
            "summary": "The English name."
          },
          {
            "name": "contextid",
            "type": "System.Int32",
            "summary": "Copied context id."
          }
        ],
        "returns": "English name."
      },
      {
        "signature": "System.String STR(System.String english, System.Object assemblyOrObject)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Similar to <b>string.Format(string, object)</b> function.",
        "since": "5.0",
        "parameters": [
          {
            "name": "english",
            "type": "System.String",
            "summary": "The English name."
          },
          {
            "name": "assemblyOrObject",
            "type": "System.Object",
            "summary": "Unused."
          }
        ],
        "returns": "English name."
      },
      {
        "signature": "System.String STR(System.String english)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Strings that need to be localized should call this function. The STR function doesn't actually do anything but return the original string. The LocalizationProcessor application walks through the source code of a project and looks for LOC.STR. The function is then replaced with a call to Localization.LocalizeString using a unique context ID.",
        "since": "5.0",
        "parameters": [
          {
            "name": "english",
            "type": "System.String",
            "summary": "[in] The English string to localize."
          }
        ]
      }
    ]
  },
  {
    "namespace": "Rhino.UI",
    "name": "Localization",
    "dataType": "class",
    "constructors": [
      {
        "signature": "Localization()",
        "summary": "Initializes a new instance of the Localization class"
      }
    ],
    "properties": [
      {
        "signature": "int CurrentLanguageId",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "bool RunningAsEnglish",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get"]
      }
    ],
    "methods": [
      {
        "signature": "System.String FormatArea(System.Double area, UnitSystem units, Rhino.DocObjects.DimensionStyle dimStyle, System.Boolean alternate)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Format an Area string from a number",
        "since": "7.0"
      },
      {
        "signature": "System.String FormatDistanceAndTolerance(System.Double distance, UnitSystem units, Rhino.DocObjects.DimensionStyle dimStyle, System.Boolean alternate)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "7.0",
        "parameters": [
          {
            "name": "distance",
            "type": "System.Double",
            "summary": ""
          },
          {
            "name": "units",
            "type": "UnitSystem",
            "summary": ""
          },
          {
            "name": "dimStyle",
            "type": "Rhino.DocObjects.DimensionStyle",
            "summary": ""
          },
          {
            "name": "alternate",
            "type": "System.Boolean",
            "summary": "primary or alternate"
          }
        ]
      },
      {
        "signature": "System.String FormatNumber(System.Double x, LengthUnit units, DistanceDisplayMode mode, System.Int32 precision, System.Boolean appendUnitSystemName)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Get a string version of a number in a given unit system / display mode.",
        "since": "9.0",
        "parameters": [
          {
            "name": "x",
            "type": "System.Double",
            "summary": "The number to format into a string."
          },
          {
            "name": "units",
            "type": "LengthUnit",
            "summary": "The length unit for the number."
          },
          {
            "name": "mode",
            "type": "DistanceDisplayMode",
            "summary": "How the number should be formatted."
          },
          {
            "name": "precision",
            "type": "System.Int32",
            "summary": "The precision of the number."
          },
          {
            "name": "appendUnitSystemName",
            "type": "System.Boolean",
            "summary": "Adds unit system name to the end of the number."
          }
        ],
        "returns": "The formatted number."
      },
      {
        "signature": "System.String FormatNumber(System.Double x, UnitSystem units, DistanceDisplayMode mode, System.Int32 precision, System.Boolean appendUnitSystemName)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Get a string version of a number in a given unit system / display mode.",
        "since": "5.0",
        "parameters": [
          {
            "name": "x",
            "type": "System.Double",
            "summary": "The number to format into a string."
          },
          {
            "name": "units",
            "type": "UnitSystem",
            "summary": "The unit system for the number."
          },
          {
            "name": "mode",
            "type": "DistanceDisplayMode",
            "summary": "How the number should be formatted."
          },
          {
            "name": "precision",
            "type": "System.Int32",
            "summary": "The precision of the number."
          },
          {
            "name": "appendUnitSystemName",
            "type": "System.Boolean",
            "summary": "Adds unit system name to the end of the number."
          }
        ],
        "returns": "The formatted number."
      },
      {
        "signature": "System.String FormatNumber(System.Double x)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Get a string version of a number.",
        "since": "8.0",
        "parameters": [
          {
            "name": "x",
            "type": "System.Double",
            "summary": "The number to format into a string."
          }
        ],
        "returns": "The formatted number."
      },
      {
        "signature": "System.String FormatVolume(System.Double volume, UnitSystem units, Rhino.DocObjects.DimensionStyle dimStyle, System.Boolean alternate)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Format a Volume string from a number",
        "since": "7.0"
      },
      {
        "signature": "System.Boolean GetLanguages(out SimpleArrayInt ids, out ClassArrayString names)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "8.0"
      },
      {
        "signature": "System.String LocalizeCommandName(System.String english, System.Object assemblyOrObject)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "System.String LocalizeCommandName(System.String english)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Commands that need to be localized should call this function.",
        "since": "5.0",
        "parameters": [
          {
            "name": "english",
            "type": "System.String",
            "summary": "The localized command name."
          }
        ]
      },
      {
        "signature": "LocalizeStringPair LocalizeCommandOptionName(System.String english, System.Int32 wrongcontextId, System.Int32 contextId)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "DO NOT use this function, it is a trap to determine where context IDs have been copied from other, already extracted, strings.",
        "since": "7.0",
        "deprecated": "7.1",
        "obsolete": "Don't copy and paste context IDs\", true",
        "parameters": [
          {
            "name": "english",
            "type": "System.String",
            "summary": "The text in English."
          },
          {
            "name": "wrongcontextId",
            "type": "System.Int32",
            "summary": "The copied ID."
          },
          {
            "name": "contextId",
            "type": "System.Int32",
            "summary": "The context ID."
          }
        ],
        "returns": "The english string."
      },
      {
        "signature": "LocalizeStringPair LocalizeCommandOptionName(System.String english, System.Int32 contextId)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "LocalizeStringPair LocalizeCommandOptionName(System.String english, System.Object assemblyOrObject, System.Int32 contextId)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "LocalizeStringPair LocalizeCommandOptionValue(System.String english, System.Int32 contextId)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "LocalizeStringPair LocalizeCommandOptionValue(System.String english, System.Object assemblyOrObject, System.Int32 contextId)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      },
      {
        "signature": "System.String LocalizeDialogItem(System.Object assemblyOrObject, System.String key, System.String english)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Look in the dialog item list for the specified key and return the translated localized string if the key is found otherwise return the English string.",
        "since": "5.5",
        "parameters": [
          {
            "name": "assemblyOrObject",
            "type": "System.Object",
            "summary": "An assembly or an object from an assembly."
          },
          {
            "name": "key",
            "type": "System.String",
            "summary": ""
          },
          {
            "name": "english",
            "type": "System.String",
            "summary": "The text in English."
          }
        ],
        "returns": "Look in the dialog item list for the specified key and return the translated localized string if the key is found otherwise return the English string."
      },
      {
        "signature": "System.Void LocalizeForm(System.Object formOrUserControl)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Look in the dialog item list for the specified key and return the translated localized string if the key is found otherwise return the English string.",
        "since": "6.0"
      },
      {
        "signature": "System.String LocalizeString(System.String english, System.Int32 wrongcontextId, System.Int32 contextId)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "DO NOT use this function, it is a trap to determine where context IDs have been copied from other, already extracted, strings.",
        "since": "7.0",
        "deprecated": "7.1",
        "obsolete": "Don't copy and paste context IDs\", true",
        "parameters": [
          {
            "name": "english",
            "type": "System.String",
            "summary": "The text in English."
          },
          {
            "name": "wrongcontextId",
            "type": "System.Int32",
            "summary": "The copied ID."
          },
          {
            "name": "contextId",
            "type": "System.Int32",
            "summary": "The context ID."
          }
        ],
        "returns": "The english string."
      },
      {
        "signature": "System.String LocalizeString(System.String english, System.Int32 contextId)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Returns localized version of a given English string. This function should be auto-generated by the RmaLDotNetLocalizationProcessor application for every function that uses RMASTR.",
        "since": "5.0",
        "parameters": [
          {
            "name": "english",
            "type": "System.String",
            "summary": "The text in English."
          },
          {
            "name": "contextId",
            "type": "System.Int32",
            "summary": "The context ID."
          }
        ],
        "returns": "The localized string."
      },
      {
        "signature": "System.String LocalizeString(System.String english, System.Object assemblyOrObject, System.Int32 contextId)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Returns localized version of a given English string. This function should be auto-generated by the RmaLDotNetLocalizationProcessor application for every function that uses RMASTR.",
        "since": "5.0",
        "parameters": [
          {
            "name": "english",
            "type": "System.String",
            "summary": "The text in English."
          },
          {
            "name": "assemblyOrObject",
            "type": "System.Object",
            "summary": "An assembly or an object from an assembly."
          },
          {
            "name": "contextId",
            "type": "System.Int32",
            "summary": "The context ID."
          }
        ],
        "returns": "The localized string."
      },
      {
        "signature": "System.Int32 LogicalSort(System.String string1, System.String string2)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Compares two strings. Digits in the strings are considered as numerical content rather than text. This test is not case-sensitive.",
        "since": "8.32",
        "parameters": [
          {
            "name": "string1",
            "type": "System.String",
            "summary": "First string to be compared."
          },
          {
            "name": "string2",
            "type": "System.String",
            "summary": "Second string to be compared."
          }
        ],
        "returns": "Returns zero if the strings are identical. Returns 1 if string1 has a greater value than string2. Returns -1 if string1 has a lesser value than string2."
      },
      {
        "signature": "System.Boolean SetLanguageId(System.Int32 id)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Sets the Id used for Localization in RhinoCommon.  Only useful for when using RhinoCommon outside of the Rhino process",
        "since": "5.0",
        "returns": "True if the language id could be set"
      },
      {
        "signature": "System.String UnitSystemName(UnitSystem units, System.Boolean capitalize, System.Boolean singular, System.Boolean abbreviate)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Gets localized unit system name.  Uses current application locale id.",
        "since": "5.0",
        "parameters": [
          {
            "name": "units",
            "type": "UnitSystem",
            "summary": "The unit system."
          },
          {
            "name": "capitalize",
            "type": "System.Boolean",
            "summary": "True if the name should be capitalized."
          },
          {
            "name": "singular",
            "type": "System.Boolean",
            "summary": "True if the name is expressed for a singular element."
          },
          {
            "name": "abbreviate",
            "type": "System.Boolean",
            "summary": "True if name should be the abbreviation."
          }
        ],
        "returns": "The unit system name."
      }
    ]
  },
  {
    "namespace": "Rhino.UI",
    "name": "LocalizeStringPair",
    "dataType": "class",
    "summary": "Pair of strings used for localization.",
    "constructors": [
      {
        "signature": "LocalizeStringPair(string english, string local)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      }
    ],
    "properties": [
      {
        "signature": "string English",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "string Local",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0",
        "property": ["get", "set"]
      }
    ],
    "methods": [
      {
        "signature": "System.String ToString()",
        "modifiers": ["public", "override"],
        "protected": false,
        "virtual": false
      }
    ]
  },
  {
    "namespace": "Rhino.UI",
    "name": "ModifierKey",
    "dataType": "enum",
    "summary": "Keyboard keys typically used in combination with other keys",
    "since": "6.0",
    "values": [
      {
        "signature": "None = 0",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "No key"
      },
      {
        "signature": "Control = 1",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Ctrl key on Windows"
      },
      {
        "signature": "MacCommand = 1",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Command key on Mac. This is treated the same as Control key on Windows"
      },
      {
        "signature": "Shift = 2",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Shift key"
      },
      {
        "signature": "Alt = 4",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Alt key"
      },
      {
        "signature": "MacControl = 8",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Control key on Mac"
      }
    ]

  },
  {
    "namespace": "Rhino.UI",
    "name": "MouseButton",
    "dataType": "enum",
    "since": "6.0",
    "values": [
      {
        "signature": "None = 0",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Left = 1",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Right = 2",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Middle = 4",
        "modifiers": [],
        "protected": false,
        "virtual": false
      }
    ]

  },
  {
    "namespace": "Rhino.UI",
    "name": "MouseCallback",
    "dataType": "class",
    "summary": "Used for intercepting mouse events in the Rhino views.",
    "constructors": [
      {
        "signature": "MouseCallback()",
        "summary": "Initializes a new instance of the MouseCallback class"
      }
    ],
    "properties": [
      {
        "signature": "bool Enabled",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0",
        "property": ["get", "set"]
      }
    ],
    "methods": [
      {
        "signature": "System.Void OnEndMouseDown(MouseCallbackEventArgs e)",
        "modifiers": ["protected", "virtual"],
        "protected": true,
        "virtual": true,
        "summary": "Called at the end of handling of a mouse down event in Rhino. All of the default Rhino mouse down functionality has already been executed unless a MouseCallback has set Cancel to True for the event arguments. You can tell if this is the case by inspecting the Cancel property in the event arguments parameter. Base class implementation of this function does nothing"
      },
      {
        "signature": "System.Void OnEndMouseMove(MouseCallbackEventArgs e)",
        "modifiers": ["protected", "virtual"],
        "protected": true,
        "virtual": true,
        "summary": "Called at the end of handling of a mouse move event in Rhino. All of the default Rhino mouse move functionality has already been executed unless a MouseCallback has set Cancel to True for the event arguments. You can tell if this is the case by inspecting the Cancel property in the event arguments parameter. Base class implementation of this function does nothing."
      },
      {
        "signature": "System.Void OnEndMouseUp(MouseCallbackEventArgs e)",
        "modifiers": ["protected", "virtual"],
        "protected": true,
        "virtual": true,
        "summary": "Called at the end of handling of a mouse up event in Rhino. All of the default Rhino mouse down functionality has already been executed unless a MouseCallback has set Cancel to True for the event arguments. You can tell if this is the case by inspecting the Cancel property in the event arguments parameter. Base class implementation of this function does nothing"
      },
      {
        "signature": "System.Void OnMouseDoubleClick(MouseCallbackEventArgs e)",
        "modifiers": ["protected", "virtual"],
        "protected": true,
        "virtual": true
      },
      {
        "signature": "System.Void OnMouseDown(MouseCallbackEventArgs e)",
        "modifiers": ["protected", "virtual"],
        "protected": true,
        "virtual": true,
        "summary": "Called at the beginning of handling of a mouse down event in Rhino. If you don't want the default Rhino functionality to be run, then set Cancel to True on the passed in event arguments Base class implementation of this function does nothing"
      },
      {
        "signature": "System.Void OnMouseEnter(MouseCallbackEventArgs e)",
        "modifiers": ["protected", "virtual"],
        "protected": true,
        "virtual": true
      },
      {
        "signature": "System.Void OnMouseHover(MouseCallbackEventArgs e)",
        "modifiers": ["protected", "virtual"],
        "protected": true,
        "virtual": true
      },
      {
        "signature": "System.Void OnMouseLeave(MouseCallbackEventArgs e)",
        "modifiers": ["protected", "virtual"],
        "protected": true,
        "virtual": true
      },
      {
        "signature": "System.Void OnMouseMove(MouseCallbackEventArgs e)",
        "modifiers": ["protected", "virtual"],
        "protected": true,
        "virtual": true,
        "summary": "Called at the beginning of handling of a mouse move event in Rhino. If you don't want the default Rhino functionality to be run, then set Cancel to True on the passed in event arguments. Base class implementation of this function does nothing."
      },
      {
        "signature": "System.Void OnMouseUp(MouseCallbackEventArgs e)",
        "modifiers": ["protected", "virtual"],
        "protected": true,
        "virtual": true,
        "summary": "Called at the beginning of handling of a mouse up event in Rhino. If you don't want the default Rhino functionality to be run, then set Cancel to True on the passed in event arguments Base class implementation of this function does nothing"
      }
    ]
  },
  {
    "namespace": "Rhino.UI",
    "name": "MouseCallbackEventArgs",
    "dataType": "class",
    "baseclass": "System.ComponentModel.CancelEventArgs",
    "properties": [
      {
        "signature": "MouseButtons Button",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "bool CtrlKeyDown",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "MouseButton MouseButton",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "bool ShiftKeyDown",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "RhinoView View",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "Point ViewportPoint",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0",
        "property": ["get"]
      }
    ],
    "methods": [
      {
        "signature": "Gumball.GumballMode IsOverGumball()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "8.8"
      }
    ]
  },
  {
    "namespace": "Rhino.UI",
    "name": "MouseCursor",
    "dataType": "class",
    "summary": "Contains static methods to control the mouse icon.",
    "constructors": [
      {
        "signature": "MouseCursor()",
        "summary": "Initializes a new instance of the MouseCursor class"
      }
    ],
    "properties": [
      {
        "signature": "Point2d Location",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Retrieves the position of the mouse cursor, in screen coordinates",
        "since": "5.8",
        "property": ["get"]
      }
    ],
    "methods": [
      {
        "signature": "System.Void SetToolTip(System.String tooltip)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Sets a cursor tooltip string shown next to the mouse cursor. Overrides all cursor tooltip panes.",
        "since": "5.0",
        "parameters": [
          {
            "name": "tooltip",
            "type": "System.String",
            "summary": "The text to show."
          }
        ]
      }
    ]
  },
  {
    "namespace": "Rhino.UI",
    "name": "MouseState",
    "dataType": "class",
    "summary": "Current mouse state when used in UserInterfaceObject virtual functions",
    "baseclass": "EventArgs",
    "properties": [
      {
        "signature": "MouseButton Button",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Which button or buttons are currently pressed",
        "since": "9.0",
        "property": ["get"]
      },
      {
        "signature": "Line FrustumLine",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Line in frustum that the active mouse position covers",
        "since": "9.0",
        "property": ["get"]
      },
      {
        "signature": "RhinoView View",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "View that is being used mouse tests",
        "since": "9.0",
        "property": ["get"]
      }
    ],
    "methods": [
      {
        "signature": "System.Boolean IsMouseOver(Geometry.Curve curve, out System.Double t)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Test if the mouse is over a curve",
        "since": "9.0",
        "parameters": [
          {
            "name": "curve",
            "type": "Geometry.Curve",
            "summary": "curve to test"
          },
          {
            "name": "t",
            "type": "System.Double",
            "summary": "parameter along curve is returned here if the mouse is over the curve"
          }
        ],
        "returns": "True if mouse is over a curve"
      },
      {
        "signature": "System.Boolean IsMouseOver(Geometry.Line line)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Test if the mouse is currently over a 3d line",
        "since": "9.0",
        "parameters": [
          {
            "name": "line",
            "type": "Geometry.Line",
            "summary": "the line to test"
          }
        ],
        "returns": "True if the mouse is over line"
      },
      {
        "signature": "System.Boolean IsMouseOver(Geometry.Point3d point)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Test if the mouse is currently over a 3d location",
        "since": "9.0",
        "parameters": [
          {
            "name": "point",
            "type": "Geometry.Point3d",
            "summary": "Location to test"
          }
        ],
        "returns": "True if the mouse is over point"
      }
    ]
  },
  {
    "namespace": "Rhino.UI",
    "name": "NamedColor",
    "dataType": "class",
    "summary": "An entry with name and color for the <b>NamedColorList</b>",
    "constructors": [
      {
        "signature": "NamedColor(string name, Color color)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Initializes a new instance of the ColorListEntry with the specified name and color.",
        "since": "7.0",
        "parameters": [
          {
            "name": "name",
            "type": "System.String",
            "summary": "Name of this color"
          },
          {
            "name": "color",
            "type": "System.Drawing.Color",
            "summary": "Color value"
          }
        ]
      }
    ],
    "properties": [
      {
        "signature": "Color Color",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the color for this entry.",
        "since": "7.0",
        "property": ["get"]
      },
      {
        "signature": "string Name",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the name of this color to show to the user.",
        "since": "7.0",
        "property": ["get"]
      }
    ]
  },
  {
    "namespace": "Rhino.UI",
    "name": "NamedColorList",
    "dataType": "class",
    "summary": "A list of color name/value pairs.",
    "baseclass": "List<NamedColor>",
    "constructors": [
      {
        "signature": "NamedColorList(string name, IEnumerable<NamedColor> entries)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Initializes a new instance of the ColorList with the specified name and entries.",
        "since": "7.0",
        "parameters": [
          {
            "name": "name",
            "type": "System.String",
            "summary": "Name of the list (required)"
          },
          {
            "name": "entries",
            "type": "IEnumerable<NamedColor>",
            "summary": "Initial set of color entries for the list"
          }
        ]
      },
      {
        "signature": "NamedColorList(string name)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Initializes a new instance of the ColorList with the specified name.",
        "since": "7.0",
        "parameters": [
          {
            "name": "name",
            "type": "System.String",
            "summary": "Name of the list (required)"
          }
        ]
      }
    ],
    "properties": [
      {
        "signature": "NamedColorList Default",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Get the Rhino applications named color list.",
        "since": "7.0",
        "property": ["get"]
      },
      {
        "signature": "string Name",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "The name of the color list, which may be displayed to the user.",
        "since": "7.0",
        "property": ["get", "set"]
      }
    ]
  },
  {
    "namespace": "Rhino.UI",
    "name": "ObjectPropertiesPage",
    "dataType": "class",
    "summary": "Base class used to add object property user interface panels",
    "constructors": [
      {
        "signature": "ObjectPropertiesPage()",
        "summary": "Initializes a new instance of the ObjectPropertiesPage class"
      }
    ],
    "properties": [
      {
        "signature": "bool AllObjectsMustBeSupported",
        "modifiers": ["public", "virtual"],
        "protected": false,
        "virtual": true,
        "summary": "Returns False which only requires a single item of SupportedTypes to be selected.  Override if you wish to change the above behavior.",
        "since": "6.7",
        "property": ["get"]
      },
      {
        "signature": "string EnglishPageTitle",
        "modifiers": ["public", "abstract"],
        "protected": false,
        "virtual": false,
        "summary": "English string used to describe this page",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "Icon Icon",
        "modifiers": ["public", "virtual"],
        "protected": false,
        "virtual": true,
        "summary": "(OBSOLETE - Override PageIcon instead) Icon to display in the object properties tab control",
        "since": "5.0",
        "obsolete": "Override PageIcon instead",
        "property": ["get"]
      },
      {
        "signature": "int Index",
        "modifiers": ["public", "virtual"],
        "protected": false,
        "virtual": true,
        "summary": "The page navigation control adds buttons in the order the pages are processed, override this method and return a sort index to move the button to the beginning of the list.  By default this returns -1 which puts the button at the end of the list.",
        "since": "7.0",
        "property": ["get"]
      },
      {
        "signature": "string LocalPageTitle",
        "modifiers": ["public", "virtual"],
        "protected": false,
        "virtual": true,
        "summary": "Localized page description string, returns the EnglishPageTitle by default.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "object PageControl",
        "modifiers": ["public", "virtual"],
        "protected": false,
        "virtual": true,
        "summary": "The control that represents this page. Rhino Windows supports classes that implement the IWin32Windows interface, are derived from System.Windows.FrameworkElement or Eto.Forms.Control.  Mac Rhino supports controls that are derived from NSview or Eto.Forms.Control.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "string PageIconEmbeddedResourceString",
        "modifiers": ["public", "virtual"],
        "protected": false,
        "virtual": true,
        "summary": "Resource string for a embedded icon resource in the assembly containing the page instance.  If this returns a valid resource and Rhino can load the icon the loaded icon will get used directly otherwise; the PageIcon method will get called.",
        "since": "6.4",
        "property": ["get"]
      },
      {
        "signature": "PropertyPageType PageType",
        "modifiers": ["public", "virtual"],
        "protected": false,
        "virtual": true,
        "summary": "Override this and return the page you want to replace a specific object properties page.",
        "since": "5.11",
        "property": ["get"]
      },
      {
        "signature": "RhinoObject[] SelectedObjects",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Return a list of Rhino objects to be processed by this object properties page",
        "since": "5.11",
        "property": ["get"]
      },
      {
        "signature": "ObjectType SupportedTypes",
        "modifiers": ["public", "virtual"],
        "protected": false,
        "virtual": true,
        "summary": "Override to specify which objects this page supports",
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "bool SupportsSubObjects",
        "modifiers": ["public", "virtual"],
        "protected": false,
        "virtual": true,
        "summary": "If your object properties page supports sub-object selection, you should override this method and return true.  This is ignored for view pages.  The default implementation returns false.",
        "since": "6.0",
        "property": ["get"]
      }
    ],
    "methods": [
      {
        "signature": "System.Boolean AnySelectedObject()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Return True if any of the selected objects match the given type",
        "since": "6.0"
      },
      {
        "signature": "System.Boolean AnySelectedObject(System.Boolean allMustMatch)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Return True if any of the selected objects match the given type",
        "since": "6.7",
        "parameters": [
          {
            "name": "allMustMatch",
            "type": "System.Boolean",
            "summary": "If True then every selected object must match the object type otherwise; only a single object has to be of the specified type"
          }
        ]
      },
      {
        "signature": "T[] GetSelectedObjects()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Get selected objects of a given type",
        "since": "6.0"
      },
      {
        "signature": "RhinoObject[] GetSelectedObjects(ObjectType filter)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Get selected objects that match a given filter",
        "since": "6.0"
      },
      {
        "signature": "System.Void InitializeControls(RhinoObject rhObj)",
        "modifiers": ["public", "virtual"],
        "protected": false,
        "virtual": true,
        "summary": "Called on the active page after the selected objects list has changed to notify the page to initialize its content to reflect the new object list.",
        "since": "5.0",
        "deprecated": "6.0",
        "obsolete": "InitializeControls is obsolete, override UpdatePage instead"
      },
      {
        "signature": "System.Void ModifyPage(Action<ObjectPropertiesPageEventArgs> callbackAction)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Call this method when the page is ready to modify the selected objects list.  Rhino will suspend UpdatePageNotfictaion, call the passed action then restore UpdatePageNotfictaion.",
        "since": "6.0",
        "parameters": [
          {
            "name": "callbackAction",
            "type": "Action<ObjectPropertiesPageEventArgs>",
            "summary": "Called when it is safe to modify objects."
          }
        ]
      },
      {
        "signature": "System.Boolean OnActivate(System.Boolean active)",
        "modifiers": ["public", "virtual"],
        "protected": false,
        "virtual": true,
        "summary": "Called when this page is activated/deactivated.",
        "since": "5.0",
        "parameters": [
          {
            "name": "active",
            "type": "System.Boolean",
            "summary": "If True then this page is on top otherwise it is about to be hidden."
          }
        ],
        "returns": "If True then the page is hidden and the requested page is not activated otherwise will not allow you to change the current page. Default returns true.  The return value is currently ignored."
      },
      {
        "signature": "System.Void OnCreateParent(System.IntPtr hwndParent)",
        "modifiers": ["public", "virtual"],
        "protected": false,
        "virtual": true,
        "summary": "Called when the parent container is initially created.",
        "since": "5.0"
      },
      {
        "signature": "System.Void OnHelp()",
        "modifiers": ["public", "virtual"],
        "protected": false,
        "virtual": true,
        "summary": "Called when the F1 key or help button is pressed, override to display plug-in specific help for this page.",
        "since": "5.0"
      },
      {
        "signature": "System.Void OnSizeParent(System.Int32 width, System.Int32 height)",
        "modifiers": ["public", "virtual"],
        "protected": false,
        "virtual": true,
        "summary": "Called when the parent containers client rectangle size has changed and the PageControl has been resized.",
        "since": "5.0"
      },
      {
        "signature": "System.Drawing.Icon PageIcon(System.Drawing.Size sizeInPixels)",
        "modifiers": ["public", "virtual"],
        "protected": false,
        "virtual": true,
        "summary": "Icon to display in the object properties tab control.  Will not get called if PageIconEmbeddedResourceString is overridden and provides a string for a successfully loaded icon resource.",
        "since": "6.0",
        "parameters": [
          {
            "name": "sizeInPixels",
            "type": "System.Drawing.Size",
            "summary": "The requested icon size in pixels, DPI scaling has been applied.  The default value is 24 X DPI scale."
          }
        ]
      },
      {
        "signature": "Commands.Result RunScript(ObjectPropertiesPageEventArgs e)",
        "modifiers": ["public", "virtual"],
        "protected": false,
        "virtual": true,
        "summary": "This method is called when scripting the Rhino Properties command and choosing this page.",
        "since": "6.0",
        "parameters": [
          {
            "name": "e",
            "type": "ObjectPropertiesPageEventArgs",
            "summary": "Provides access to the selected object list and document."
          }
        ]
      },
      {
        "signature": "Commands.Result RunScript(RhinoDoc doc, RhinoObject[] objectList)",
        "modifiers": ["public", "virtual"],
        "protected": false,
        "virtual": true,
        "summary": "This method is called when scripting the Rhino Properties command and choosing this page.",
        "since": "6.0",
        "deprecated": "6.0",
        "obsolete": "RunScript",
        "parameters": [
          {
            "name": "doc",
            "type": "RhinoDoc",
            "summary": "Active <b>RhinoDoc</b>"
          },
          {
            "name": "objectList",
            "type": "RhinoObject[]",
            "summary": "List of objects selected by the Properties command."
          }
        ]
      },
      {
        "signature": "System.Boolean ShouldDisplay(ObjectPropertiesPageEventArgs e)",
        "modifiers": ["public", "virtual"],
        "protected": false,
        "virtual": true,
        "summary": "Called when the selected objects list changes, return True if the object list contains one or more object the page can modify.",
        "since": "6.0"
      },
      {
        "signature": "System.Boolean ShouldDisplay(RhinoObject rhObj)",
        "modifiers": ["public", "virtual"],
        "protected": false,
        "virtual": true,
        "summary": "Called when the selected objects list changes, return True if the object list contains one or more object the page can modify.",
        "since": "5.0",
        "deprecated": "6.0",
        "obsolete": "ShouldDisplay"
      },
      {
        "signature": "System.Void UpdatePage(ObjectPropertiesPageEventArgs e)",
        "modifiers": ["public", "virtual"],
        "protected": false,
        "virtual": true,
        "summary": "Called on the active page after the selected objects list has changed to notify the page to initialize its content to reflect the new object list.",
        "since": "6.0"
      }
    ]
  },
  {
    "namespace": "Rhino.UI",
    "name": "ObjectPropertiesPageCollection",
    "dataType": "class",
    "summary": "Passed to Rhino.PlugIns.PlugIn.ObjectPropertiesPages to allow a plug-in to add custom ObjectPropertiesPage pages to the Rhino properties panel.",
    "properties": [
      {
        "signature": "RhinoDoc Document",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Document associated with the Rhino properties panel.",
        "since": "7.0",
        "property": ["get"]
      },
      {
        "signature": "uint DocumentRuntimeSerialNumber",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Document associated with the Rhino properties panel.",
        "since": "7.0",
        "property": ["get"]
      }
    ],
    "methods": [
      {
        "signature": "System.Void Add(ObjectPropertiesPage page)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Custom page to add",
        "since": "7.0"
      }
    ]
  },
  {
    "namespace": "Rhino.UI",
    "name": "ObjectPropertiesPageEventArgs",
    "dataType": "class",
    "constructors": [
      {
        "signature": "ObjectPropertiesPageEventArgs(ObjectPropertiesPage page)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Used by <b>ObjectPropertiesPage</b> to notify the page when updating, modifying or determining if the page should be included in the navigation bar",
        "since": "6.0",
        "parameters": [
          {
            "name": "page",
            "type": "ObjectPropertiesPage",
            "summary": "Page sending the message"
          }
        ]
      }
    ],
    "properties": [
      {
        "signature": "uint DocRuntimeSerialNumber",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Document containing the objects and views",
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "RhinoDoc Document",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Document containing the objects and views",
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "uint EventRuntimeSerialNumber",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the runtime serial number.",
        "since": "6.14",
        "property": ["get"]
      },
      {
        "signature": "int ObjectCount",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "RhinoObject[] Objects",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Return a list of Rhino objects to be processed by this object properties page",
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "uint ObjectTypes",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "ObjectPropertiesPage Page",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "The page sending these arguments",
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "RhinoView View",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Active view",
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "RhinoViewport Viewport",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Active viewport",
        "since": "6.0",
        "property": ["get"]
      }
    ],
    "methods": [
      {
        "signature": "T[] GetObjects()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Get selected objects of a given type",
        "since": "6.0"
      },
      {
        "signature": "RhinoObject[] GetObjects(ObjectType filter)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Get selected objects that match a given filter",
        "since": "6.0"
      },
      {
        "signature": "System.Boolean IncludesObjectsType()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Return True if any of the selected objects match the given type",
        "since": "6.0"
      },
      {
        "signature": "System.Boolean IncludesObjectsType(ObjectType objectTypes, System.Boolean allMustMatch)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.7",
        "parameters": [
          {
            "name": "objectTypes",
            "type": "ObjectType",
            "summary": ""
          },
          {
            "name": "allMustMatch",
            "type": "System.Boolean",
            "summary": "If True then every selected object must match the object type otherwise; only a single object has to be of the specified type"
          }
        ]
      },
      {
        "signature": "System.Boolean IncludesObjectsType(ObjectType objectTypes)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0"
      },
      {
        "signature": "System.Boolean IncludesObjectsType(System.Boolean allMustMatch)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Return True if any of the selected objects match the given type",
        "since": "6.7",
        "parameters": [
          {
            "name": "allMustMatch",
            "type": "System.Boolean",
            "summary": "If True then every selected object must match the object type otherwise; only a single object has to be of the specified type"
          }
        ]
      }
    ]
  },
  {
    "namespace": "Rhino.UI",
    "name": "OpenFileDialog",
    "dataType": "class",
    "summary": "Similar to the System.Windows.Forms.OpenFileDialog, but with customized Rhino user interface.",
    "constructors": [
      {
        "signature": "OpenFileDialog()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Create a new open file dialog.",
        "since": "5.0"
      }
    ],
    "properties": [
      {
        "signature": "string DefaultExt",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "The default file name extension. The returned string does not include the period.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "string FileName",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets a string containing the file name selected in the file dialog box.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "string[] FileNames",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the names of all of the selected files in the dialog box",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "string Filter",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the current file name filter string, which determines the choices that appear in the \"Save as file type\" or \"Files of type\" box in the dialog box. See System.Windows.Forms.FileDialog for details.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "string InitialDirectory",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the initial directory displayed by the file dialog box.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool MultiSelect",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets a value indicating whether the dialog box allows multiple files to be selected",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "string Title",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the file dialog box title.",
        "since": "5.0",
        "property": ["get", "set"]
      }
    ],
    "methods": [
      {
        "signature": "System.Windows.Forms.DialogResult ShowDialog()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0",
        "deprecated": "6.0",
        "obsolete": "Use ShowOpenDialog"
      },
      {
        "signature": "System.Boolean ShowOpenDialog()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Show the actual dialog to allow the user to select a file.",
        "since": "5.10",
        "returns": "True if a file was selected. False if the dialog was canceled"
      }
    ]
  },
  {
    "namespace": "Rhino.UI",
    "name": "OptionPageButtons",
    "dataType": "enum",
    "summary": "Standard IRhinoOptionsPageButton",
    "values": [
      {
        "signature": "None = 0x00000000",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Don't display any of the standard buttons."
      },
      {
        "signature": "DefaultButton = 0x00000001",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "The \"Restore Defaults\" button located at the bottom of the host."
      },
      {
        "signature": "ApplyButton   = 0x00000002",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "The \"Apply\" button located at the bottom of the host."
      }
    ]

  },
  {
    "namespace": "Rhino.UI",
    "name": "OptionsDialogPage",
    "dataType": "class",
    "baseclass": "Rhino.UI.StackedDialogPage",
    "constructors": [
      {
        "signature": "OptionsDialogPage(string englishPageTitle)",
        "modifiers": ["protected"],
        "protected": true,
        "virtual": false
      }
    ],
    "properties": [
      {
        "signature": "PageType OptionsPageType",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "17 March 2021 John Morse For internal use in determining the page type.  RhinoMac uses this to ensure pages are sized properly when hosting them.",
        "since": "8.0",
        "property": ["get", "set"]
      }
    ],
    "methods": [
      {
        "signature": "Commands.Result RunScript(RhinoDoc doc, Commands.RunMode mode)",
        "modifiers": ["public", "virtual"],
        "protected": false,
        "virtual": true,
        "since": "5.0"
      }
    ]
  },
  {
    "namespace": "Rhino.UI",
    "name": "OptionsDialogPage.PageType",
    "dataType": "enum",
    "summary": "17 March 2021 John Morse For internal use in determining the page type.  RhinoMac uses this to ensure pages are sized properly when hosting them.",
    "since": "8.0",
    "values": [
      {
        "signature": "Options",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "DocumentProperties",
        "modifiers": [],
        "protected": false,
        "virtual": false
      }
    ]

  },
  {
    "namespace": "Rhino.UI",
    "name": "PanelEventArgs",
    "dataType": "class",
    "summary": "Panels.Show event arguments",
    "baseclass": "EventArgs",
    "constructors": [
      {
        "signature": "PanelEventArgs(Guid panelId, uint documentSerialNumber)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0"
      }
    ],
    "properties": [
      {
        "signature": "RhinoDoc Document",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "uint DocumentSerialNumber",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "Guid PanelId",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Class Id for panel being shown or hidden",
        "since": "6.0",
        "property": ["get", "set"]
      }
    ]
  },
  {
    "namespace": "Rhino.UI",
    "name": "PanelIds",
    "dataType": "class",
    "summary": "Standard Rhino panel ids.",
    "constructors": [
      {
        "signature": "PanelIds()",
        "summary": "Initializes a new instance of the PanelIds class"
      }
    ],
    "properties": [
      {
        "signature": "Guid BoxEdit",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Rhino BoxEdit panel.",
        "since": "7.20",
        "property": ["get"]
      },
      {
        "signature": "Guid ContextHelp",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Rhino Context-Sensitive Help panel.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "Guid Display",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Rhino Display Properties panel.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "Guid Environment",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Rhino Environment panel.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "Guid FileExplorer",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Rhino File Explorer panel.",
        "since": "8.0",
        "property": ["get"]
      },
      {
        "signature": "Guid GroundPlane",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Rhino Ground Plane panel.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "Guid Layers",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Rhino Layer panel.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "Guid Libraries",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Rhino Render Libraries panel.",
        "since": "5.9",
        "property": ["get"]
      },
      {
        "signature": "Guid LightManager",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Rhino Lights panel.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "Guid Materials",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Rhino Materials panel.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "Guid Notes",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Rhino Notes panel.",
        "since": "5.9",
        "property": ["get"]
      },
      {
        "signature": "Guid ObjectProperties",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Rhino Object Properties panel.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "Guid Rendering",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Rhino Rendering Properties panel.",
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "Guid Sun",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Rhino Sun panel.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "Guid Texture",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Rhino Texture panel.",
        "since": "5.3",
        "property": ["get"]
      }
    ]
  },
  {
    "namespace": "Rhino.UI",
    "name": "Panels",
    "dataType": "class",
    "summary": "Access to Rhino panels and register custom panels",
    "constructors": [
      {
        "signature": "Panels()",
        "summary": "Initializes a new instance of the Panels class"
      }
    ],
    "properties": [
      {
        "signature": "string EtoPanelStyleName",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Style applied to Eto controls hosted by the Rhino.UI.Panels and Rhino.UI.ObjectProperties systems.",
        "since": "6.15",
        "property": ["get"]
      },
      {
        "signature": "Size IconSize",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the panel icon size in logical units.",
        "since": "6.12",
        "property": ["get"]
      },
      {
        "signature": "Size IconSizeInPixels",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the panel icon size in pixels.",
        "since": "8.0",
        "property": ["get"]
      },
      {
        "signature": "Size ScaledIconSize",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the panel icon size in pixels with DPI scaling applied.",
        "since": "6.12",
        "property": ["get"]
      }
    ],
    "methods": [
      {
        "signature": "System.Void ChangePanelIcon(System.Type panelType, System.Drawing.Icon icon)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Update the icon used for a panel tab.",
        "since": "6.0",
        "parameters": [
          {
            "name": "panelType",
            "type": "System.Type",
            "summary": ""
          },
          {
            "name": "icon",
            "type": "System.Drawing.Icon",
            "summary": "New icon to use"
          }
        ]
      },
      {
        "signature": "System.Void ChangePanelIcon(System.Type panelType, System.String fullPathToResource)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Update the icon used for a panel tab.",
        "since": "6.0",
        "parameters": [
          {
            "name": "panelType",
            "type": "System.Type",
            "summary": ""
          },
          {
            "name": "fullPathToResource",
            "type": "System.String",
            "summary": "Full path to the new icon resource"
          }
        ]
      },
      {
        "signature": "System.Void ClosePanel(System.Guid panelId, RhinoDoc doc)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Will close or hide the specified panel type, in Windows Rhino, if it is the only visible tab the tab dock bar will be closed as well.  In Mac Rhino it will always close the modeless dialog hosting the panel.",
        "since": "7.3",
        "parameters": [
          {
            "name": "panelId",
            "type": "System.Guid",
            "summary": "Class type Id of the panel to close."
          },
          {
            "name": "doc",
            "type": "RhinoDoc",
            "summary": "Document associated with panel you wish to close."
          }
        ]
      },
      {
        "signature": "System.Void ClosePanel(System.Guid panelId)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Will close or hide the specified panel type, in Windows Rhino, if it is the only visible tab the tab dock bar will be closed as well.  In Mac Rhino it will always close the modeless dialog hosting the panel.",
        "since": "5.0",
        "parameters": [
          {
            "name": "panelId",
            "type": "System.Guid",
            "summary": "Class type Id of the panel to close."
          }
        ]
      },
      {
        "signature": "System.Void ClosePanel(System.Type panelType, RhinoDoc doc)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Will close or hide the specified panel type, in Windows Rhino, if it is the only visible tab the tab dock bar will be closed as well.  In Mac Rhino it will always close the modeless dialog hosting the panel.",
        "since": "7.3",
        "parameters": [
          {
            "name": "panelType",
            "type": "System.Type",
            "summary": "Class type of the panel to close."
          },
          {
            "name": "doc",
            "type": "RhinoDoc",
            "summary": "Document associated with panel you wish to close."
          }
        ]
      },
      {
        "signature": "System.Void ClosePanel(System.Type panelType)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Will close or hide the specified panel type, in Windows Rhino, if it is the only visible tab the tab dock bar will be closed as well.  In Mac Rhino it will always close the modeless dialog hosting the panel.",
        "since": "5.0",
        "parameters": [
          {
            "name": "panelType",
            "type": "System.Type",
            "summary": "Class type of the panel to close."
          }
        ]
      },
      {
        "signature": "System.Boolean DockBarIdInUse(System.Guid dockBarId)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "For internal use, call this method to see if a dock bar Id is currently being used by any Rhino dock bar. Rhino",
        "since": "8.0"
      },
      {
        "signature": "System.Boolean FloatPanel(System.Guid panelTypeId, FloatPanelMode mode)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Mac support: Display the specified panel in a floating window on Mac, the floating window will only contain the specified panel.  Windows support: On Windows this will show or hide the floating container containing the specified panel.  If the tab is docked with other tabs it will be floated in a new container.",
        "since": "6.2",
        "parameters": [
          {
            "name": "panelTypeId",
            "type": "System.Guid",
            "summary": "Guid for the panel type to show/hide."
          },
          {
            "name": "mode",
            "type": "FloatPanelMode",
            "summary": "Show, hide or toggle the visibility state of the specified panel"
          }
        ],
        "returns": "Returntrueif the panel visibility state was changed,falseotherwise."
      },
      {
        "signature": "System.Boolean FloatPanel(System.Type panelType, FloatPanelMode mode)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Mac support: Display the specified panel in a floating window on Mac, the floating window will only contain the specified panel.  Windows support: On Windows this will show or hide the floating container containing the specified panel.  If the tab is docked with other tabs it will be floated in a new container.",
        "since": "6.2",
        "parameters": [
          {
            "name": "panelType",
            "type": "System.Type",
            "summary": "Panel type to show/hide."
          },
          {
            "name": "mode",
            "type": "FloatPanelMode",
            "summary": "Show, hide or toggle the visibility state of the specified panel"
          }
        ],
        "returns": "Returntrueif the panel visibility state was changed,falseotherwise."
      },
      {
        "signature": "System.Guid[] GetOpenPanelIds()",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Get a list of the currently open panel tabs in Windows Rhino, on Mac Rhino it will be a list of the currently visible modeless panel dialogs.",
        "since": "5.0",
        "returns": "Returns an array of panel class Id's for the currently open panels, if there are no open panels it will be an empty array."
      },
      {
        "signature": "T GetPanel()",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Return an instance of a .Net panel",
        "since": "6.0",
        "deprecated": "6.0",
        "obsolete": "Obsolete method, use GetPanel<MyClass>"
      },
      {
        "signature": "T GetPanel(RhinoDoc rhinoDoc)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Return an instance of a .Net panel",
        "since": "6.0",
        "parameters": [
          {
            "name": "rhinoDoc",
            "type": "RhinoDoc",
            "summary": "Runtime document Id associated with the requested panel."
          }
        ]
      },
      {
        "signature": "System.Object GetPanel(System.Guid panelId, RhinoDoc rhinoDoc)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Will return an instance of a .Net panel if the panel has been displayed at least once.  Panel instances are not created until a panel is displayed.",
        "since": "6.0",
        "parameters": [
          {
            "name": "panelId",
            "type": "System.Guid",
            "summary": "Class Id of the panel to search for."
          },
          {
            "name": "rhinoDoc",
            "type": "RhinoDoc",
            "summary": "Runtime document Id associated with the requested panel."
          }
        ],
        "returns": "Returns the one and only instance of a panel if it has been properly registered and displayed at least once.  If the panel has never been displayed then None will be returned even if the panel is properly registered."
      },
      {
        "signature": "System.Object GetPanel(System.Guid panelId, System.UInt32 documentSerialNumber)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Will return an instance of a .Net panel if the panel has been displayed at least once.  Panel instances are not created until a panel is displayed.",
        "since": "6.0",
        "parameters": [
          {
            "name": "panelId",
            "type": "System.Guid",
            "summary": "Class Id of the panel to search for."
          },
          {
            "name": "documentSerialNumber",
            "type": "System.UInt32",
            "summary": "Runtime document Id associated with the requested panel."
          }
        ],
        "returns": "Returns the one and only instance of a panel if it has been properly registered and displayed at least once.  If the panel has never been displayed then None will be returned even if the panel is properly registered."
      },
      {
        "signature": "System.Object GetPanel(System.Guid panelId)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Will return an instance of a .Net panel if the panel has been displayed at least once.  Panel instances are not created until a panel is displayed.",
        "since": "5.0",
        "deprecated": "6.0",
        "obsolete": "Obsolete method, use GetPanel<MyClass>",
        "parameters": [
          {
            "name": "panelId",
            "type": "System.Guid",
            "summary": "Class Id of the panel to search for."
          }
        ],
        "returns": "Returns the one and only instance of a panel if it has been properly registered and displayed at least once.  If the panel has never been displayed then None will be returned even if the panel is properly registered."
      },
      {
        "signature": "T GetPanel(System.UInt32 documentSerialNumber)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Return an instance of a .Net panel",
        "since": "6.0",
        "parameters": [
          {
            "name": "documentSerialNumber",
            "type": "System.UInt32",
            "summary": "Runtime document Id associated with the requested panel."
          }
        ]
      },
      {
        "signature": "T[] GetPanels(RhinoDoc doc)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "since": "6.3"
      },
      {
        "signature": "object  GetPanels(System.Guid panelId, RhinoDoc doc)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the panels.",
        "since": "6.3",
        "parameters": [
          {
            "name": "panelId",
            "type": "System.Guid",
            "summary": "Panel identifier."
          },
          {
            "name": "doc",
            "type": "RhinoDoc",
            "summary": "Document."
          }
        ],
        "returns": "The panels."
      },
      {
        "signature": "System.Object[] GetPanels(System.Guid panelId, System.UInt32 documentRuntimeSerialNumber)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the panels.",
        "since": "6.3",
        "parameters": [
          {
            "name": "panelId",
            "type": "System.Guid",
            "summary": "Panel identifier."
          },
          {
            "name": "documentRuntimeSerialNumber",
            "type": "System.UInt32",
            "summary": "Document runtime serial number."
          }
        ],
        "returns": "The panels."
      },
      {
        "signature": "T [] GetPanels(System.UInt32 documentRuntimeSerialNumber)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the panels.",
        "since": "6.3",
        "parameters": [
          {
            "name": "documentRuntimeSerialNumber",
            "type": "System.UInt32",
            "summary": "Document runtime serial number."
          }
        ],
        "returns": "The panels."
      },
      {
        "signature": "System.Boolean IsHiding(ShowPanelReason reason)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Check to see if reason is equal to any of the show events",
        "since": "6.0"
      },
      {
        "signature": "System.Boolean IsPanelVisible(System.Guid panelId, System.Boolean isSelectedTab)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Check to see if a panel is currently visible, if isSelectedTab is True then the tab must be the active tab as well.",
        "since": "6.0",
        "parameters": [
          {
            "name": "panelId",
            "type": "System.Guid",
            "summary": "Class Id for the panel to check."
          },
          {
            "name": "isSelectedTab",
            "type": "System.Boolean",
            "summary": "This parameter is ignored on Mac.  If Windows and True the panel must be visible in a container and if it is a tabbed container it must be the active tab to be true."
          }
        ],
        "returns": "On Windows: The return value is dependent on the isSelectedTab value.  If isSelectedTab is True then the panel must be included in a visible tabbed container and must also be the active tab to be true.  If isSelectedTab is False then the panel only has to be included in a visible tabbed container to be true. On Mac: isSelected is ignored and True is returned if the panel appears in any inspector panel."
      },
      {
        "signature": "System.Boolean IsPanelVisible(System.Guid panelId)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Check to see if a panel is currently visible, on Windows this means you can see the tab, it does not necessarily mean it is the current tab.",
        "since": "5.0",
        "parameters": [
          {
            "name": "panelId",
            "type": "System.Guid",
            "summary": "Class Id for the panel to check."
          }
        ],
        "returns": "Returns True if the tab is visible otherwise it returns false."
      },
      {
        "signature": "System.Boolean IsPanelVisible(System.Type panelType, System.Boolean isSelectedTab)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Check to see if a panel is currently visible, if isSelectedTab is True then the tab must be the active tab as well.",
        "since": "6.0",
        "parameters": [
          {
            "name": "panelType",
            "type": "System.Type",
            "summary": "Type of panel to check for, this type must include a GUID attribute."
          },
          {
            "name": "isSelectedTab",
            "type": "System.Boolean",
            "summary": "This parameter is ignored on Mac.  If Windows and True the panel must be visible in a container and if it is a tabbed container it must be the active tab to be true."
          }
        ],
        "returns": "On Windows: The return value is dependent on the isSelectedTab value.  If isSelectedTab is True then the panel must be included in a visible tabbed container and must also be the active tab to be true.  If isSelectedTab is False then the panel only has to be included in a visible tabbed container to be true. On Mac: isSelected is ignored and True is returned if the panel appears in any inspector panel."
      },
      {
        "signature": "System.Boolean IsPanelVisible(System.Type panelType)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Check to see if a panel is currently visible, on Windows this means you can see the tab, it does not necessarily mean it is the current tab.",
        "since": "5.0",
        "parameters": [
          {
            "name": "panelType",
            "type": "System.Type",
            "summary": "Type of panel to check for, this type must include a GUID attribute."
          }
        ],
        "returns": "Returns True if panelType is non None and the tab is visible otherwise it returns false."
      },
      {
        "signature": "System.Boolean IsShowing(ShowPanelReason reason)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Check to see if reason is equal to any of the hide events",
        "since": "6.0"
      },
      {
        "signature": "System.Void OnClosePanel(System.Guid panelId, System.UInt32 documentSerialNumber)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Call this method to raise the Closed event",
        "since": "6.0",
        "parameters": [
          {
            "name": "panelId",
            "type": "System.Guid",
            "summary": "Panel identifier."
          },
          {
            "name": "documentSerialNumber",
            "type": "System.UInt32",
            "summary": "The document associated with the closed panel."
          }
        ]
      },
      {
        "signature": "System.Void OnShowPanel(System.Guid panelId, System.UInt32 documentSerialNumber, System.Boolean show)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Call this method to raise the Show event",
        "since": "6.0",
        "parameters": [
          {
            "name": "panelId",
            "type": "System.Guid",
            "summary": ""
          },
          {
            "name": "documentSerialNumber",
            "type": "System.UInt32",
            "summary": "The document associated with the shown/hidden panel."
          },
          {
            "name": "show",
            "type": "System.Boolean",
            "summary": ""
          }
        ]
      },
      {
        "signature": "System.Void OpenPanel(System.Guid panelId, System.Boolean makeSelectedPanel)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Open the specified panel in its current or default location and if it is in a dock bar containing more than one tab, make it the current tab.",
        "since": "6.0",
        "parameters": [
          {
            "name": "panelId",
            "type": "System.Guid",
            "summary": "Class type Id for the panel to open."
          },
          {
            "name": "makeSelectedPanel",
            "type": "System.Boolean",
            "summary": "If True then the panel is set as the active tab after opening it otherwise; the panel is opened but not set as the active tab."
          }
        ]
      },
      {
        "signature": "System.Guid OpenPanel(System.Guid dockBarId, System.Guid panelId, System.Boolean makeSelectedPanel)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "In Mac Rhino this will just call the version of OpenPanel that takes a class type Id.  In Windows Rhino this will look for a dock bar with the specified Id and open or move the specified panel to that dock bar.",
        "since": "6.0",
        "parameters": [
          {
            "name": "dockBarId",
            "type": "System.Guid",
            "summary": "Id of the dock bar hosting one or more panels."
          },
          {
            "name": "panelId",
            "type": "System.Guid",
            "summary": "Class type Id for the panel to open."
          },
          {
            "name": "makeSelectedPanel",
            "type": "System.Boolean",
            "summary": "If True then the panel is set as the active tab after opening it otherwise; the panel is opened but not set as the active tab."
          }
        ],
        "returns": "Returns True if the"
      },
      {
        "signature": "System.Guid OpenPanel(System.Guid dockBarId, System.Guid panelId)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "In Mac Rhino this will just call the version of OpenPanel that takes a class type Id.  In Windows Rhino this will look for a dock bar with the specified Id and open or move the specified panel to that dock bar.",
        "since": "5.12",
        "parameters": [
          {
            "name": "dockBarId",
            "type": "System.Guid",
            "summary": "Id of the dock bar hosting one or more panels."
          },
          {
            "name": "panelId",
            "type": "System.Guid",
            "summary": "Class type Id for the panel to open."
          }
        ],
        "returns": "Returns True if the"
      },
      {
        "signature": "System.Guid OpenPanel(System.Guid dockBarId, System.Type panelType, System.Boolean makeSelectedPanel)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "In Mac Rhino this will just call the version of OpenPanel that takes a class type Id.  In Windows Rhino this will look for a dock bar with the specified Id and open or move the specified panel to that dock bar.",
        "since": "6.0",
        "parameters": [
          {
            "name": "dockBarId",
            "type": "System.Guid",
            "summary": "Id of the dock bar hosting one or more panels."
          },
          {
            "name": "panelType",
            "type": "System.Type",
            "summary": "Class type for the panel to open."
          },
          {
            "name": "makeSelectedPanel",
            "type": "System.Boolean",
            "summary": "If True then the panel is set as the active tab after opening it otherwise; the panel is opened but not set as the active tab."
          }
        ],
        "returns": "Returns True if the"
      },
      {
        "signature": "System.Guid OpenPanel(System.Guid dockBarId, System.Type panelType)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "In Mac Rhino this will just call the version of OpenPanel that takes a class type Id.  In Windows Rhino this will look for a dock bar with the specified Id and open or move the specified panel to that dock bar.",
        "since": "5.12",
        "parameters": [
          {
            "name": "dockBarId",
            "type": "System.Guid",
            "summary": "Id of the dock bar hosting one or more panels."
          },
          {
            "name": "panelType",
            "type": "System.Type",
            "summary": "Class type for the panel to open."
          }
        ],
        "returns": "Returns True if the"
      },
      {
        "signature": "System.Void OpenPanel(System.Guid panelId)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Open the specified panel in its current or default location and if it is in a dock bar containing more than one tab, make it the current tab.",
        "since": "5.0",
        "parameters": [
          {
            "name": "panelId",
            "type": "System.Guid",
            "summary": "Class type Id for the panel to open."
          }
        ]
      },
      {
        "signature": "System.Void OpenPanel(System.Type panelType, System.Boolean makeSelectedPanel)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Open the specified panel in its current or default location and if it is in a dock bar containing more than one tab, make it the current tab.",
        "since": "6.0",
        "parameters": [
          {
            "name": "panelType",
            "type": "System.Type",
            "summary": "Class type of the panel to open."
          },
          {
            "name": "makeSelectedPanel",
            "type": "System.Boolean",
            "summary": "If True then the panel is set as the active tab after opening it otherwise; the panel is opened but not set as the active tab."
          }
        ]
      },
      {
        "signature": "System.Void OpenPanel(System.Type panelType)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Open the specified panel in its current or default location and if it is in a dock bar containing more than one tab, make it the current tab.",
        "since": "5.0",
        "parameters": [
          {
            "name": "panelType",
            "type": "System.Type",
            "summary": "Class type of the panel to open."
          }
        ]
      },
      {
        "signature": "System.Boolean OpenPanelAsSibling(System.Guid panelId, System.Guid siblingPanelId, System.Boolean makeSelectedPanel)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "In Mac Rhino this will currently just call OpenPanel, in Windows Rhino this will look for a dock bar which contains the sibling panel and add this panel to that dock bar as necessary, if the panel was in another dock bar it will be moved to this dock bar.",
        "since": "6.0",
        "parameters": [
          {
            "name": "panelId",
            "type": "System.Guid",
            "summary": "The class Id of the panel type to open."
          },
          {
            "name": "siblingPanelId",
            "type": "System.Guid",
            "summary": "The class Id of the sibling panel."
          },
          {
            "name": "makeSelectedPanel",
            "type": "System.Boolean",
            "summary": "If True then the panel is set as the active tab after opening it otherwise; the panel is opened but not set as the active tab."
          }
        ],
        "returns": "Returns True if the panel was successfully opened."
      },
      {
        "signature": "System.Boolean OpenPanelAsSibling(System.Guid panelId, System.Guid siblingPanelId)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "In Mac Rhino this will currently just call OpenPanel, in Windows Rhino this will look for a dock bar which contains the sibling panel and add this panel to that dock bar as necessary, if the panel was in another dock bar it will be moved to this dock bar.",
        "since": "5.0",
        "parameters": [
          {
            "name": "panelId",
            "type": "System.Guid",
            "summary": "The class Id of the panel type to open."
          },
          {
            "name": "siblingPanelId",
            "type": "System.Guid",
            "summary": "The class Id of the sibling panel."
          }
        ],
        "returns": "Returns True if the panel was successfully opened."
      },
      {
        "signature": "System.Guid PanelDockBar(System.Guid panelId)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Will always return Guid.Empty in Mac Rhino.  In Windows Rhino it will look for the dock bar which contains the specified panel class Id and return the dock bar Id.",
        "since": "5.12",
        "parameters": [
          {
            "name": "panelId",
            "type": "System.Guid",
            "summary": "Panel class Id for of the panel to look for."
          }
        ],
        "returns": "Always returns Guid.Empty on Mac Rhino.  On Windows Rhino it will return the Id for the dock bar which host the specified panel or Guid.Empty if the panel is not currently visible."
      },
      {
        "signature": "System.Guid PanelDockBar(System.Type panelType)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Will always return Guid.Empty in Mac Rhino.  In Windows Rhino it will look for the dock bar which contains the specified panel class Id and return the dock bar Id.",
        "since": "5.12",
        "parameters": [
          {
            "name": "panelType",
            "type": "System.Type",
            "summary": "Panel class for of the panel to look for."
          }
        ],
        "returns": "Always returns Guid.Empty on Mac Rhino.  On Windows Rhino it will return the Id for the dock bar which host the specified panel or Guid.Empty if the panel is not currently visible."
      },
      {
        "signature": "System.Guid[] PanelDockBars(System.Guid panelId)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Will always return a empty array in Mac Rhino.  In Windows Rhino it will look for any panel dock bars that contain the specified panel class Id and return the dock bar Id's.",
        "since": "6.1",
        "parameters": [
          {
            "name": "panelId",
            "type": "System.Guid",
            "summary": "Panel class Id for of the panel to look for."
          }
        ],
        "returns": "Always returns Guid.Empty on Mac Rhino.  On Windows Rhino it will return the Id for the dock bar which host the specified panel or Guid.Empty if the panel is not currently visible."
      },
      {
        "signature": "System.Void RegisterPanel(PlugIns.PlugIn plugIn, System.Type type, System.String caption, System.Drawing.Icon icon, PanelType panelType)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Call once to register a panel type which will get dynamically created and embedded in a Rhino docking/floating location.",
        "since": "6.1",
        "parameters": [
          {
            "name": "plugIn",
            "type": "PlugIns.PlugIn",
            "summary": "Plug-in restringing the panel"
          },
          {
            "name": "type",
            "type": "System.Type",
            "summary": "Type of the control object to be displayed in the panel"
          },
          {
            "name": "caption",
            "type": "System.String",
            "summary": "Panel caption also used as a tool-tip.  On Windows the panel may be displayed using the icon, caption or both.  On Mac the icon will be used and the caption will be the tool-tip."
          },
          {
            "name": "icon",
            "type": "System.Drawing.Icon",
            "summary": "The panel icon.  On Windows the panel may be displayed using the icon, caption or both.  On Mac the icon will be used and the caption will be the tool-tip."
          },
          {
            "name": "panelType",
            "type": "PanelType",
            "summary": "See <b>PanelType</b>"
          }
        ]
      },
      {
        "signature": "System.Void RegisterPanel(PlugIns.PlugIn plugin, System.Type panelType, System.String caption, System.Drawing.Icon icon)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "You typically register your panel class in your plug-in's OnLoad function.  This will register your custom call with Rhino, Rhino will create an instance of your class the first time your panel is created and embed this instance of your class in a panel container.",
        "since": "5.0",
        "parameters": [
          {
            "name": "plugin",
            "type": "PlugIns.PlugIn",
            "summary": "Plug-in this panel is associated with"
          },
          {
            "name": "panelType",
            "type": "System.Type",
            "summary": "Class type to construct when a panel is shown.  If your class is derived from Eto.Forms.Control it will work on both the Mac and Windows version of Rhino.  In addition Windows Rhino will support any class types that implement the IWin32Window interface or that are derived from System.Windows.FrameworkElement.  Mac Rhino will also support classes that are derived from NsView.  In addition to the type requirements the class must have a public constructor with no parameters or a constructor with a single uint that represents the document serial number and have a GuidAttribute applied with a unique Id.  n Windows there is only one panel created which gets recycled for each new document.  On the Mac a panel will be created for each open document and destroyed when the document closes.  In certain situations in Mac Rhino a panel may get created and destroyed multiple times when opening/closing a panel while editing a document."
          },
          {
            "name": "caption",
            "type": "System.String",
            "summary": "Displays in the panel tab on Windows or at the top of the modeless window on Mac."
          },
          {
            "name": "icon",
            "type": "System.Drawing.Icon",
            "summary": "The panel icon.  On Windows the panel may be displayed using the icon, caption or both.  On Mac the icon will be used and the caption will be the tool-tip."
          }
        ]
      },
      {
        "signature": "System.Void RegisterPanel(PlugIns.PlugIn plugIn, System.Type type, System.String caption, System.Reflection.Assembly iconAssembly, System.String iconResourceId, PanelType panelType)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "You typically register your panel class in your plug-in's OnLoad function.  This will register your custom call with Rhino, Rhino will create an instance of your class the first time your panel is created and embed this instance of your class in a panel container.",
        "since": "8.0",
        "parameters": [
          {
            "name": "plugIn",
            "type": "PlugIns.PlugIn",
            "summary": "Plug-in this panel is associated with"
          },
          {
            "name": "type",
            "type": "System.Type",
            "summary": "Class type to construct when a panel is shown.  If your class is derived from Eto.Forms.Control it will work on both the Mac and Windows version of Rhino.  In addition Windows Rhino will support any class types that implement the IWin32Window interface or that are derived from System.Windows.FrameworkElement.  Mac Rhino will also support classes that are derived from NsView.  In addition to the type requirements the class must have a public constructor with no parameters or a constructor with a single uint that represents the document serial number and have a GuidAttribute applied with a unique Id.  n Windows there is only one panel created which gets recycled for each new document.  On the Mac a panel will be created for each open document and destroyed when the document closes.  In certain situations in Mac Rhino a panel may get created and destroyed multiple times when opening/closing a panel while editing a document."
          },
          {
            "name": "caption",
            "type": "System.String",
            "summary": "Displays in the panel tab on Windows or at the top of the modeless window on Mac."
          },
          {
            "name": "iconAssembly",
            "type": "System.Reflection.Assembly",
            "summary": "Assembly conataining the iconResourceId, if None it is assumed the iconResourceId is a starndard Rhino resource and the Rhino.UI assembly will be used. assembly will be used"
          },
          {
            "name": "iconResourceId",
            "type": "System.String",
            "summary": "The resource Id string used to load the panel icon from the iconAssembly. On Windows the panel may be displayed using the icon, caption or both. On Mac the icon will be used and the caption will be the tool-tip."
          },
          {
            "name": "panelType",
            "type": "PanelType",
            "summary": "See <b>PanelType</b>"
          }
        ]
      }
    ]
  },
  {
    "namespace": "Rhino.UI",
    "name": "Panels.FloatPanelMode",
    "dataType": "enum",
    "summary": "Used by the FloatPanel method to determine if the floating panel should be shown or hidden.",
    "since": "6.2",
    "values": [
      {
        "signature": "Show",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Show the floating panel"
      },
      {
        "signature": "Hide",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Hide the floating panel"
      },
      {
        "signature": "Toggle",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Toggle the visibility state"
      }
    ]

  },
  {
    "namespace": "Rhino.UI",
    "name": "PanelType",
    "dataType": "enum",
    "summary": "Panel type",
    "since": "6.1",
    "values": [
      {
        "signature": "PerDoc",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Default panel type, creates a panel instance per document"
      },
      {
        "signature": "System",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "A System panel may appear in one or more container but the panel will be used for all open documents"
      }
    ]

  },
  {
    "namespace": "Rhino.UI",
    "name": "PropertyPageType",
    "dataType": "enum",
    "summary": "IRhinoProperties page type",
    "values": [
      {
        "signature": "Material = 0",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Replace the material page with this page; only works for the current render plug - in."
      },
      {
        "signature": "Light",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Replace the light page with this page; only works for the current render plug-in."
      },
      {
        "signature": "Custom",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "User-defined custom object page."
      },
      {
        "signature": "ObjectProperties",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "For internal use only."
      },
      {
        "signature": "Dimension",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "If page is provided by Rhino and only dimensions are selected, activate this page."
      },
      {
        "signature": "Leader",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "If page is provided by Rhino and leaders are selected, activate this page."
      },
      {
        "signature": "Text",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "If page is provided by Rhino and only text objects are selected, activate this page."
      },
      {
        "signature": "Hatch",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "If page is provided by Rhino and only hatch objects are selected, activate this page."
      },
      {
        "signature": "Dot",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "If page is provided by Rhino and only dot objects are selected, activate this page."
      },
      {
        "signature": "TextureMapping",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Replace the texture mapping page with this page; only works for the current render plug-in."
      },
      {
        "signature": "Detail",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "If page is provided by Rhino and only detail objects are selected, activate this page."
      },
      {
        "signature": "ClippingPlane",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "If page is provided by Rhino and only clipping plane objects are selected, activate this page."
      },
      {
        "signature": "NamedView",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "If page is provided by Rhino and only named view widget objects are selected, activate this page."
      },
      {
        "signature": "Decal",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Decals user interface"
      },
      {
        "signature": "View",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Page is a view properties page and uses view properties methods. Does not use object properties methods."
      },
      {
        "signature": "PageCount",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Reserved, do not use."
      }
    ]

  },
  {
    "namespace": "Rhino.UI",
    "name": "RhinoGetPlotWidthArgs",
    "dataType": "enum",
    "summary": "Argument flags passed to methods used to get Rhino plot width lists",
    "values": [
      {
        "signature": "NoArgs = 0",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Just get the standard or default width list"
      },
      {
        "signature": "ByLayer = 1",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Include a By Layer option"
      },
      {
        "signature": "ByParent = 2",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Include a By Parent option"
      },
      {
        "signature": "HairLine = 4",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Include a hairline width option"
      },
      {
        "signature": "Default = 8",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Include a default width option"
      },
      {
        "signature": "None = 0x20",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Include a no print option"
      },
      {
        "signature": "All = 0xFFFFFFF",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Include everything"
      }
    ]

  },
  {
    "namespace": "Rhino.UI",
    "name": "RhinoHelp",
    "dataType": "class",
    "summary": "Provides access to the built in Rhino help system",
    "constructors": [
      {
        "signature": "RhinoHelp()",
        "summary": "Initializes a new instance of the RhinoHelp class"
      }
    ],
    "methods": [
      {
        "signature": "System.Boolean Show(System.String helpLink)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Call this method to display standard Rhino help",
        "since": "6.0",
        "parameters": [
          {
            "name": "helpLink",
            "type": "System.String",
            "summary": "Rhino help links are formatted like this: http://docs.mcneel.com/rhino/6/help/en-us/index.htm#commands/line.htm This parameter would be equal to \"#commands/line.htm\" in the link above.  Rhino will calculate the string up to and including the index.html and append this value to the end."
          }
        ]
      }
    ]
  },
  {
    "namespace": "Rhino.UI",
    "name": "RhinoPageInterop",
    "dataType": "class",
    "summary": "For internal use only, provides access to unmanaged core Rhino.",
    "constructors": [
      {
        "signature": "RhinoPageInterop()",
        "summary": "Initializes a new instance of the RhinoPageInterop class"
      }
    ],
    "methods": [
      {
        "signature": "System.IntPtr NewPropertiesPanelPagePointer(ObjectPropertiesPage page, System.UInt32 rhinoDocRuntimeSn)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "For internal use only, provides access to unmanaged core",
        "since": "6.0"
      },
      {
        "signature": "StackedDialogPage StackedDialogPageFromUnmanagedPointer(System.IntPtr pointer)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "For internal use only, provides access to unmanaged core",
        "since": "6.4"
      }
    ]
  },
  {
    "namespace": "Rhino.UI",
    "name": "RhinoPlotWidthType",
    "dataType": "enum",
    "summary": "Supported plot width special types",
    "values": [
      {
        "signature": "ByLayer",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Plot width from layer"
      },
      {
        "signature": "ByParent",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Plot width from parent object"
      },
      {
        "signature": "Hairline",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "System hairline plot width"
      },
      {
        "signature": "Default",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Use default plot width"
      },
      {
        "signature": "None",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Don't print"
      },
      {
        "signature": "Varies",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Multiple objects selected with different types/widths"
      },
      {
        "signature": "Width",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Standard or custom width"
      }
    ]

  },
  {
    "namespace": "Rhino.UI",
    "name": "RhinoPlotWidthValue",
    "dataType": "enum",
    "summary": "Default width values used by UI objects to represent different states",
    "values": [
      {
        "signature": "Default  =   0",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Use default plot width"
      },
      {
        "signature": "None     =  -1",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Don't print"
      },
      {
        "signature": "ByLayer  = -10",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Plot width from layer"
      },
      {
        "signature": "ByParent = -15",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Plot width from parent object"
      },
      {
        "signature": "Varies   = -20",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Multiple objects selected with different types/widths"
      }
    ]

  },
  {
    "namespace": "Rhino.UI",
    "name": "RotationGripUserInterfaceObject",
    "dataType": "class",
    "summary": "A point plus arc that represents a grip used for rotational dragging",
    "baseclass": "Rhino.UI.GripUserInterfaceObject",
    "constructors": [
      {
        "signature": "RotationGripUserInterfaceObject(Plane plane, double radius)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Create a rotation grip that is aligned to a plane with a defined radius in pixels",
        "since": "9.0",
        "parameters": [
          {
            "name": "plane",
            "type": "Rhino.Geometry.Plane",
            "summary": "Plane for rotation. Origin of the plane is the center of rotation. ZAxis of plane is axis that rotation occurs around. XAxis of plane is vector along which the grip is located."
          },
          {
            "name": "radius",
            "type": "System.Double",
            "summary": "Radius of rotation circle in pixel distance"
          }
        ]
      }
    ],
    "properties": [
      {
        "signature": "bool GripPointVisible",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Is the grip point itself drawn",
        "since": "9.0",
        "property": ["get", "set"]
      }
    ],
    "methods": [
      {
        "signature": "System.Boolean ArcVisibleInViewport(Rhino.Display.RhinoViewport viewport)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "If the arc for a given viewport visible.",
        "since": "9.0"
      },
      {
        "signature": "System.Void OnRotationDrag(System.Double angle, MouseState mouse)",
        "modifiers": ["protected", "virtual"],
        "protected": true,
        "virtual": true,
        "summary": "Called when dragging a rotation grip. Angle is the amount that the plane will be rotated when dragging",
        "parameters": [
          {
            "name": "angle",
            "type": "System.Double",
            "summary": "signed angle of rotation amout"
          },
          {
            "name": "mouse",
            "type": "MouseState",
            "summary": "mouse state while dragging"
          }
        ]
      }
    ]
  },
  {
    "namespace": "Rhino.UI",
    "name": "RuiUpdateUi",
    "dataType": "class",
    "baseclass": "EventArgs",
    "properties": [
      {
        "signature": "bool Checked",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Set to True to enable menu item or False to check menu item",
        "since": "5.11",
        "property": ["get", "set"]
      },
      {
        "signature": "bool Enabled",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Set to True to enable menu item or False to disable menu item",
        "since": "5.11",
        "property": ["get", "set"]
      },
      {
        "signature": "Guid FileId",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Id of the RUI file that owns this menu item",
        "since": "5.11",
        "property": ["get"]
      },
      {
        "signature": "IntPtr MenuHandle",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Windows menu handle of menu that contains this item",
        "since": "5.11",
        "property": ["get"]
      },
      {
        "signature": "Guid MenuId",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Id of the menu that owns this menu item",
        "since": "5.11",
        "property": ["get"]
      },
      {
        "signature": "int MenuIndex",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Zero based index of item in the Windows menu",
        "since": "5.11",
        "property": ["get"]
      },
      {
        "signature": "Guid MenuItemId",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Id of the menu item that owns this menu item",
        "since": "5.11",
        "property": ["get"]
      },
      {
        "signature": "bool RadioChecked",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Set to True to enable menu item or False to check menu item",
        "since": "5.11",
        "property": ["get", "set"]
      },
      {
        "signature": "string Text",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Menu item text",
        "since": "5.11",
        "property": ["get", "set"]
      },
      {
        "signature": "uint WindowsMenuItemId",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Windows menu item ID",
        "since": "5.11",
        "property": ["get"]
      }
    ],
    "methods": [
      {
        "signature": "System.Boolean RegisterMenuItem(System.Guid file, System.Guid menu, System.Guid item, UpdateMenuItemEventHandler callBack)",
        "modifiers": ["static", "public"],
        "protected": false,
        "virtual": false,
        "summary": "Register menu item update delegate",
        "since": "5.11",
        "parameters": [
          {
            "name": "file",
            "type": "System.Guid",
            "summary": "Menu file Id"
          },
          {
            "name": "menu",
            "type": "System.Guid",
            "summary": "Menu Id"
          },
          {
            "name": "item",
            "type": "System.Guid",
            "summary": "Menu item Id"
          },
          {
            "name": "callBack",
            "type": "UpdateMenuItemEventHandler",
            "summary": ""
          }
        ],
        "returns": "True if Registered otherwise false"
      },
      {
        "signature": "System.Boolean RegisterMenuItem(System.String fileId, System.String menuId, System.String itemId, UpdateMenuItemEventHandler callBack)",
        "modifiers": ["static", "public"],
        "protected": false,
        "virtual": false,
        "summary": "Register menu item update delegate",
        "since": "5.11",
        "parameters": [
          {
            "name": "fileId",
            "type": "System.String",
            "summary": "Menu file Id"
          },
          {
            "name": "menuId",
            "type": "System.String",
            "summary": "Menu Id"
          },
          {
            "name": "itemId",
            "type": "System.String",
            "summary": "Menu item Id"
          },
          {
            "name": "callBack",
            "type": "UpdateMenuItemEventHandler",
            "summary": ""
          }
        ],
        "returns": "True if Registered otherwise false"
      }
    ]
  },
  {
    "namespace": "Rhino.UI",
    "name": "SaveFileDialog",
    "dataType": "class",
    "summary": "Similar to the System.Windows.Forms.SaveFileDialog, but with customized Rhino user interface.",
    "constructors": [
      {
        "signature": "SaveFileDialog()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0"
      }
    ],
    "properties": [
      {
        "signature": "string DefaultExt",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "The default file name extension. The returned string does not include the period.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "string FileName",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets a string containing the file name selected in the file dialog box.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "string Filter",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the current file name filter string, which determines the choices that appear in the \"Save as file type\" or \"Files of type\" box in the dialog box. See System.Windows.Forms.FileDialog for details.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "string InitialDirectory",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the initial directory displayed by the file dialog box.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "string Title",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets or sets the file dialog box title.",
        "since": "5.0",
        "property": ["get", "set"]
      }
    ],
    "methods": [
      {
        "signature": "System.Windows.Forms.DialogResult ShowDialog()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.0",
        "deprecated": "6.0",
        "obsolete": "Use ShowSaveDialog"
      },
      {
        "signature": "System.Boolean ShowSaveDialog()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.10",
        "returns": "True if a file was selected. False if the dialog was canceled"
      }
    ]
  },
  {
    "namespace": "Rhino.UI",
    "name": "ShowMessageButton",
    "dataType": "enum",
    "since": "6.0",
    "values": [
      {
        "signature": "OK = 0",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "OKCancel = 1",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "AbortRetryIgnore = 2",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "YesNoCancel = 3",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "YesNo = 4",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "RetryCancel = 5",
        "modifiers": [],
        "protected": false,
        "virtual": false
      }
    ]

  },
  {
    "namespace": "Rhino.UI",
    "name": "ShowMessageDefaultButton",
    "dataType": "enum",
    "since": "6.0",
    "values": [
      {
        "signature": "Button1 = 0",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Button2 = 256",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Button3 = 512",
        "modifiers": [],
        "protected": false,
        "virtual": false
      }
    ]

  },
  {
    "namespace": "Rhino.UI",
    "name": "ShowMessageIcon",
    "dataType": "enum",
    "since": "6.0",
    "values": [
      {
        "signature": "None = 0",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Error = 16",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Hand = 16",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Stop = 16",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Question = 32",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Exclamation = 48",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Warning = 48",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Information = 64",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Asterisk = 64",
        "modifiers": [],
        "protected": false,
        "virtual": false
      }
    ]

  },
  {
    "namespace": "Rhino.UI",
    "name": "ShowMessageMode",
    "dataType": "enum",
    "since": "6.0",
    "values": [
      {
        "signature": "ApplicationModal = 0",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "SystemModal = 4096",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "TaskModal = 8192",
        "modifiers": [],
        "protected": false,
        "virtual": false
      }
    ]

  },
  {
    "namespace": "Rhino.UI",
    "name": "ShowMessageOptions",
    "dataType": "enum",
    "since": "6.0",
    "values": [
      {
        "signature": "None = 0",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "SetForeground = 65536",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "DefaultDesktopOnly = 131072",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "TopMost = 262144",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "RightAlign = 524288",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "RtlReading = 1048576",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "ServiceNotification = 2097152",
        "modifiers": [],
        "protected": false,
        "virtual": false
      }
    ]

  },
  {
    "namespace": "Rhino.UI",
    "name": "ShowMessageResult",
    "dataType": "enum",
    "since": "6.0",
    "values": [
      {
        "signature": "None = 0",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "OK = 1",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Cancel = 2",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Abort = 3",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Retry = 4",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Ignore = 5",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "Yes = 6",
        "modifiers": [],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "No = 7",
        "modifiers": [],
        "protected": false,
        "virtual": false
      }
    ]

  },
  {
    "namespace": "Rhino.UI",
    "name": "ShowPanelEventArgs",
    "dataType": "class",
    "summary": "Panels.Show event arguments",
    "baseclass": "Rhino.UI.PanelEventArgs",
    "constructors": [
      {
        "signature": "ShowPanelEventArgs(Guid panelId, uint documentSerialNumber, bool show)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "6.0"
      }
    ],
    "properties": [
      {
        "signature": "bool Show",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Will be True if showing or False if hiding",
        "since": "6.0",
        "property": ["get", "set"]
      }
    ]
  },
  {
    "namespace": "Rhino.UI",
    "name": "ShowPanelReason",
    "dataType": "enum",
    "summary": "OnShowDockbar event type",
    "values": [
      {
        "signature": "Show",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Dock bar shown or made visible"
      },
      {
        "signature": "Hide",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Dock bar hidden, no longer visible"
      },
      {
        "signature": "HideOnDeactivate",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Dock bar temporarily hidden because the main Rhino application is no longer active."
      },
      {
        "signature": "ShowOnDeactivate",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "Dock bar that was temporarily hidden when the main Rhino application was deactivated is now being shown."
      }
    ]

  },
  {
    "namespace": "Rhino.UI",
    "name": "StackedDialogPage",
    "dataType": "class",
    "summary": "Base class to inherit from for the addition of stacked dialog pages.",
    "constructors": [
      {
        "signature": "StackedDialogPage(string englishPageTitle)",
        "modifiers": ["protected"],
        "protected": true,
        "virtual": false,
        "summary": "Protected constructor"
      }
    ],
    "properties": [
      {
        "signature": "List<StackedDialogPage> Children",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "List of child (sub) pages of this page",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "string EnglishPageTitle",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "English string used when scripting this page and a user prefixes a command option with \"_\"",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "IntPtr Handle",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "When running on Windows return the window handle for the parent of this page otherwise; return IntPtr.Zero.",
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "bool HasChildren",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Will be True if this page contains sub pages.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "string LocalPageTitle",
        "modifiers": ["public", "virtual"],
        "protected": false,
        "virtual": true,
        "summary": "Localized page title that will appear on a tab or other page navigation control.  This is also uses as a command line option when scripting this page.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "bool Modified",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Check to see if the page has been marked as modified or not.  Marking the page as modified will cause the Apply button to get enabled if this is currently the visible page and the page includes the Apply button.",
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "Color NavigationTextColor",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Currently only used by Windows Rhino.  If this is set to True then the tree control item text be drawn using this color.  Set the color to System.Drawing.Color.Empty to use the default color.",
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool NavigationTextIsBold",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Currently only used by Windows Rhino.  If this is set to True then the tree control item text will be bold.",
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "object PageControl",
        "modifiers": ["public", "virtual"],
        "protected": false,
        "virtual": true,
        "summary": "Return the control that represents this page. Rhino Windows supports classes that implement the IWin32Windows interface or are derived from some form of System.Windows.FrameworkElement or Eto.Forms.Control.  Mac Rhino supports controls that are derived from NSview or Eto.Forms.Control.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "Image PageImage",
        "modifiers": ["public", "virtual"],
        "protected": false,
        "virtual": true,
        "summary": "Optionally override to provide a image to display in the Mac Rhino UI",
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "bool ShowApplyButton",
        "modifiers": ["public", "virtual"],
        "protected": false,
        "virtual": true,
        "summary": "Called when this page is activated",
        "since": "6.0",
        "property": ["get"]
      },
      {
        "signature": "bool ShowDefaultsButton",
        "modifiers": ["public", "virtual"],
        "protected": false,
        "virtual": true,
        "summary": "Called when this page is activated.",
        "since": "5.0",
        "property": ["get"]
      }
    ],
    "methods": [
      {
        "signature": "System.Void AddChildPage(StackedDialogPage pageToAdd)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Currently only supported on Windows.  Call this method to add a child page to a page after the parent dialog has been created.",
        "since": "6.0"
      },
      {
        "signature": "System.Void MakeActivePage()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Make this page the active, visible page",
        "since": "6.0"
      },
      {
        "signature": "System.Boolean OnActivate(System.Boolean active)",
        "modifiers": ["public", "virtual"],
        "protected": false,
        "virtual": true,
        "summary": "Called when this page is activated/deactivated.",
        "since": "5.0",
        "parameters": [
          {
            "name": "active",
            "type": "System.Boolean",
            "summary": "If True then this page is on top otherwise it is about to be hidden."
          }
        ],
        "returns": "If True then the page is hidden and the requested page is not activated otherwise will not allow you to change the current page. Default returns true"
      },
      {
        "signature": "System.Boolean OnApply()",
        "modifiers": ["public", "virtual"],
        "protected": false,
        "virtual": true,
        "summary": "Called when stacked dialog OK button is pressed.",
        "since": "5.0",
        "returns": "If return value is True then the dialog will be closed. A return of False means there was an error and dialog remains open so page can be properly updated."
      },
      {
        "signature": "System.Void OnCancel()",
        "modifiers": ["public", "virtual"],
        "protected": false,
        "virtual": true,
        "summary": "Called when stacked dialog Cancel button is pressed.",
        "since": "5.0"
      },
      {
        "signature": "System.Void OnCreateParent(System.IntPtr hwndParent)",
        "modifiers": ["public", "virtual"],
        "protected": false,
        "virtual": true,
        "summary": "Called when the parent window has been created on Windows platforms only.",
        "since": "5.0"
      },
      {
        "signature": "System.Void OnDefaults()",
        "modifiers": ["public", "virtual"],
        "protected": false,
        "virtual": true,
        "summary": "Called when stacked dialog Defaults button is pressed (see ShowDefaultsButton).",
        "since": "5.0"
      },
      {
        "signature": "System.Void OnHelp()",
        "modifiers": ["public", "virtual"],
        "protected": false,
        "virtual": true,
        "summary": "Called when the parent dialog requests help for this page.",
        "since": "5.0"
      },
      {
        "signature": "System.Void OnSizeParent(System.Int32 width, System.Int32 height)",
        "modifiers": ["public", "virtual"],
        "protected": false,
        "virtual": true,
        "summary": "Called when the parent window has been resized",
        "since": "5.0"
      },
      {
        "signature": "System.Void RemovePage()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Remove this page from the dialog box",
        "since": "6.0"
      },
      {
        "signature": "System.Boolean SetActivePageTo(System.String pageName, System.Boolean documentPropertiesPage)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "7.5"
      },
      {
        "signature": "System.Void SetEnglishPageTitle(System.String newPageTile)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Change the title passed to the constructor and, this will cause LocalPageTitle to get called also.",
        "since": "6.0"
      }
    ]
  },
  {
    "namespace": "Rhino.UI",
    "name": "StatusBar",
    "dataType": "class",
    "summary": "Contains static methods to control the application status bar.",
    "constructors": [
      {
        "signature": "StatusBar()",
        "summary": "Initializes a new instance of the StatusBar class"
      }
    ],
    "methods": [
      {
        "signature": "System.Void ClearMessagePane()",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Removes the message from the message pane.",
        "since": "5.0"
      },
      {
        "signature": "System.Void HideProgressMeter()",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Ends, or hides, Rhino's status bar progress meter.",
        "since": "5.0"
      },
      {
        "signature": "System.Void HideProgressMeter(System.UInt32 docSerialNumber)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Ends, or hides, Rhino's status bar progress meter.",
        "since": "6.12",
        "parameters": [
          {
            "name": "docSerialNumber",
            "type": "System.UInt32",
            "summary": "The document runtime serial number."
          }
        ]
      },
      {
        "signature": "System.Void SetDistancePane(System.Double distance)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Sets the distance pane to a distance value.",
        "since": "5.0",
        "parameters": [
          {
            "name": "distance",
            "type": "System.Double",
            "summary": "The distance value."
          }
        ]
      },
      {
        "signature": "System.Void SetMessagePane(System.String message)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Sets the message pane to a message.",
        "since": "5.0",
        "parameters": [
          {
            "name": "message",
            "type": "System.String",
            "summary": "The message value."
          }
        ]
      },
      {
        "signature": "System.Void SetNumberPane(System.Double number)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Sets the number pane to a number value",
        "since": "6.0"
      },
      {
        "signature": "System.Void SetPointPane(Point3d point)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Sets the point pane to a point value.",
        "since": "5.0",
        "parameters": [
          {
            "name": "point",
            "type": "Point3d",
            "summary": "The point value."
          }
        ]
      },
      {
        "signature": "System.Int32 ShowProgressMeter(System.Int32 lowerLimit, System.Int32 upperLimit, System.String label, System.Boolean embedLabel, System.Boolean showPercentComplete)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Starts, or shows, Rhino's status bar progress meter.",
        "since": "5.0",
        "parameters": [
          {
            "name": "lowerLimit",
            "type": "System.Int32",
            "summary": "The lower limit of the progress meter's range."
          },
          {
            "name": "upperLimit",
            "type": "System.Int32",
            "summary": "The upper limit of the progress meter's range."
          },
          {
            "name": "label",
            "type": "System.String",
            "summary": "The short description of the progress (e.g. \"Calculating\", \"Meshing\", etc)"
          },
          {
            "name": "embedLabel",
            "type": "System.Boolean",
            "summary": "If true, then the label will be embedded in the progress meter. If false, then the label will appear to the left of the progress meter."
          },
          {
            "name": "showPercentComplete",
            "type": "System.Boolean",
            "summary": "If true, then the percent complete will appear in the progress meter."
          }
        ],
        "returns": "1 - The progress meter was created successfully. 0 - The progress meter was not created. -1 - The progress meter was not created because some other process has already created it."
      },
      {
        "signature": "System.Int32 ShowProgressMeter(System.UInt32 docSerialNumber, System.Int32 lowerLimit, System.Int32 upperLimit, System.String label, System.Boolean embedLabel, System.Boolean showPercentComplete)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Starts, or shows, Rhino's status bar progress meter.",
        "since": "6.12",
        "parameters": [
          {
            "name": "docSerialNumber",
            "type": "System.UInt32",
            "summary": "The document runtime serial number."
          },
          {
            "name": "lowerLimit",
            "type": "System.Int32",
            "summary": "The lower limit of the progress meter's range."
          },
          {
            "name": "upperLimit",
            "type": "System.Int32",
            "summary": "The upper limit of the progress meter's range."
          },
          {
            "name": "label",
            "type": "System.String",
            "summary": "The short description of the progress (e.g. \"Calculating\", \"Meshing\", etc)"
          },
          {
            "name": "embedLabel",
            "type": "System.Boolean",
            "summary": "If true, then the label will be embedded in the progress meter. If false, then the label will appear to the left of the progress meter."
          },
          {
            "name": "showPercentComplete",
            "type": "System.Boolean",
            "summary": "If true, then the percent complete will appear in the progress meter."
          }
        ],
        "returns": "1 - The progress meter was created successfully. 0 - The progress meter was not created. -1 - The progress meter was not created because some other process has already created it."
      },
      {
        "signature": "System.Int32 UpdateProgressMeter(System.Int32 position, System.Boolean absolute)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Sets the current position of Rhino's status bar progress meter.",
        "since": "5.0",
        "parameters": [
          {
            "name": "position",
            "type": "System.Int32",
            "summary": "The new value. This can be stated in absolute terms, or relative compared to the current position.  \nThe interval bounds are specified when you first show the bar."
          },
          {
            "name": "absolute",
            "type": "System.Boolean",
            "summary": "If true, then the progress meter is moved to position. If false, then the progress meter is moved position from the current position (relative)."
          }
        ],
        "returns": "The previous position if successful."
      },
      {
        "signature": "System.Int32 UpdateProgressMeter(System.String label, System.Int32 position, System.Boolean absolute)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Sets the label and current position of Rhino's status bar progress meter.",
        "since": "8.6",
        "parameters": [
          {
            "name": "label",
            "type": "System.String",
            "summary": "The short description of the progress (e.g. \"Calculating\", \"Meshing\", etc)"
          },
          {
            "name": "position",
            "type": "System.Int32",
            "summary": "The new value. This can be stated in absolute terms, or relative compared to the current position. The interval bounds are specified when you first show the bar. Note, if value is <b>RhinoMath.UnsetIntIndex</b> , only the label is updated."
          },
          {
            "name": "absolute",
            "type": "System.Boolean",
            "summary": "If true, then the progress meter is moved to position. If false, then the progress meter is moved position from the current position (relative)."
          }
        ],
        "returns": "The previous position if successful."
      },
      {
        "signature": "System.Int32 UpdateProgressMeter(System.UInt32 docSerialNumber, System.Int32 position, System.Boolean absolute)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Sets the current position of Rhino's status bar progress meter.",
        "since": "6.12",
        "parameters": [
          {
            "name": "docSerialNumber",
            "type": "System.UInt32",
            "summary": "The document runtime serial number."
          },
          {
            "name": "position",
            "type": "System.Int32",
            "summary": "The new value. This can be stated in absolute terms, or relative compared to the current position.  \nThe interval bounds are specified when you first show the bar."
          },
          {
            "name": "absolute",
            "type": "System.Boolean",
            "summary": "If true, then the progress meter is moved to position. If false, then the progress meter is moved position from the current position (relative)."
          }
        ],
        "returns": "The previous position if successful."
      },
      {
        "signature": "System.Int32 UpdateProgressMeter(System.UInt32 docSerialNumber, System.String label, System.Int32 position, System.Boolean absolute)",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Sets the label and current position of Rhino's status bar progress meter.",
        "since": "8.6",
        "parameters": [
          {
            "name": "docSerialNumber",
            "type": "System.UInt32",
            "summary": "The document runtime serial number."
          },
          {
            "name": "label",
            "type": "System.String",
            "summary": "The short description of the progress (e.g. \"Calculating\", \"Meshing\", etc)"
          },
          {
            "name": "position",
            "type": "System.Int32",
            "summary": "The new value. This can be stated in absolute terms, or relative compared to the current position. The interval bounds are specified when you first show the bar. Note, if value is <b>RhinoMath.UnsetIntIndex</b> , only the label is updated."
          },
          {
            "name": "absolute",
            "type": "System.Boolean",
            "summary": "If true, then the progress meter is moved to position. If false, then the progress meter is moved position from the current position (relative)."
          }
        ],
        "returns": "The previous position if successful."
      }
    ]
  },
  {
    "namespace": "Rhino.UI",
    "name": "TextDotUserInterfaceObject",
    "dataType": "class",
    "summary": "User interface object that draws as a text dot",
    "baseclass": "Rhino.UI.UserInterfaceObjectBase",
    "constructors": [
      {
        "signature": "TextDotUserInterfaceObject(Point3d location, string text)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Create a text dot styled user interface object at a defined location and text",
        "since": "9.0",
        "parameters": [
          {
            "name": "location",
            "type": "Rhino.Geometry.Point3d",
            "summary": "Location of object"
          },
          {
            "name": "text",
            "type": "System.String",
            "summary": "Text content for dot"
          }
        ]
      }
    ],
    "properties": [
      {
        "signature": "Color DotBackgroundColor",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Text dot background color",
        "since": "9.0",
        "property": ["get", "set"]
      },
      {
        "signature": "Color DotBorderColor",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Text dot border color",
        "since": "9.0",
        "property": ["get", "set"]
      },
      {
        "signature": "int MouseOverTextHeight",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Font height used when the mouse is over the dot. The default behavior is to grow the dot a small amount when the mouse is over to help the user know that the dot is acts as a user interface object",
        "since": "9.0",
        "property": ["get", "set"]
      },
      {
        "signature": "string Text",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Text content for grip",
        "since": "9.0",
        "property": ["get", "set"]
      },
      {
        "signature": "Color TextColor",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Text color used for dot text",
        "since": "9.0",
        "property": ["get", "set"]
      },
      {
        "signature": "int TextHeight",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Font height for text",
        "since": "9.0",
        "property": ["get", "set"]
      }
    ]
  },
  {
    "namespace": "Rhino.UI",
    "name": "Toolbar",
    "dataType": "class",
    "summary": "Represents a toolbar in a Rhino toolbar, or .RUI, file.",
    "since": "5.0",
    "properties": [
      {
        "signature": "Size BitmapSize",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Gets and sets the size of the toolbar image.",
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "Size TabSize",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Gets and sets the size of the toolbar tab.",
        "since": "6.0",
        "property": ["get", "set"]
      },
      {
        "signature": "Guid Id",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the id of the toolbar.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "string Name",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the name of the toolbar.",
        "since": "5.0",
        "property": ["get"]
      }
    ]
  },
  {
    "namespace": "Rhino.UI",
    "name": "ToolbarFile",
    "dataType": "class",
    "summary": "Represents a Rhino toolbar, or .RUI, file.",
    "since": "5.0",
    "properties": [
      {
        "signature": "int GroupCount",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Get the number of toolbar groups in the toolbar file.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "Guid Id",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the id of the toolbar file.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "string Name",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the name, or alias, of the toolbar file.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "string Path",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the full path to the toolbar file.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "int ToolbarCount",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Get the number of toolbars in the toolbar file.",
        "since": "5.0",
        "property": ["get"]
      }
    ],
    "methods": [
      {
        "signature": "System.Boolean Close(System.Boolean prompt)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Closes the toolbar file.",
        "since": "5.0",
        "parameters": [
          {
            "name": "prompt",
            "type": "System.Boolean",
            "summary": "Set True if you want to be prompted to cllose the file."
          }
        ],
        "returns": "True if successful, False otherwie."
      },
      {
        "signature": "ToolbarGroup GetGroup(System.Int32 index)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets a toolbar group.",
        "since": "5.0",
        "parameters": [
          {
            "name": "index",
            "type": "System.Int32",
            "summary": "The index of the toolbar group."
          }
        ],
        "returns": "The toolbar group if successful, None otherwise."
      },
      {
        "signature": "ToolbarGroup GetGroup(System.String name)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets a toolbar group.",
        "since": "5.0",
        "parameters": [
          {
            "name": "name",
            "type": "System.String",
            "summary": "The name of the toolbar group."
          }
        ],
        "returns": "The toolbar group if successful, None otherwise."
      },
      {
        "signature": "System.String GetSvg(System.Guid imageId, System.Boolean darkMode)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the SVG string for an image in this toolbar file.",
        "parameters": [
          {
            "name": "imageId",
            "type": "System.Guid",
            "summary": "The id of the image. This is the same id returned for a macro's bitmap."
          },
          {
            "name": "darkMode",
            "type": "System.Boolean",
            "summary": "Set to True to get the dark-mode SVG. When the image only has a light SVG, its custom dark-mode attributes are applied to produce the result."
          }
        ],
        "returns": "The SVG string, or an empty string if the image was not found or has no SVG representation."
      },
      {
        "signature": "Toolbar GetToolbar(System.Int32 index)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets a toolbar.",
        "parameters": [
          {
            "name": "index",
            "type": "System.Int32",
            "summary": "The index of the toolbar."
          }
        ],
        "returns": "The toolbar if successful, None otherwise."
      },
      {
        "signature": "System.Boolean Save()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Saves the toolbar file.",
        "since": "5.0"
      },
      {
        "signature": "System.Boolean SaveAs(System.String path)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Saves the toolbar file to a different path.",
        "since": "5.0"
      }
    ]
  },
  {
    "namespace": "Rhino.UI",
    "name": "ToolbarFileCollection",
    "dataType": "class",
    "summary": "Represents a collection of Rhino toolbars, or .RUI, files.",
    "interfaces": ["IEnumerable<ToolbarFile>"],
    "since": "5.0",
    "properties": [
      {
        "signature": "bool MruSidebarIsVisible",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Returns True if the most-recently-used sizebar is visible.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool SidebarIsVisible",
        "modifiers": ["public", "static"],
        "protected": false,
        "virtual": false,
        "summary": "Returns True if the sizebar is visible.",
        "since": "5.0",
        "property": ["get", "set"]
      },
      {
        "signature": "int Count",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Get tne number of open toolbar files.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "ToolbarFile this[int index]",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets an open toolbar file by index.",
        "since": "5.0"
      }
    ],
    "methods": [
      {
        "signature": "ToolbarFile FindByName(System.String name, System.Boolean ignoreCase)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets an open toolbar file by name, or alias.",
        "since": "5.0",
        "parameters": [
          {
            "name": "name",
            "type": "System.String",
            "summary": "The name, or alias, of the toolbar file."
          },
          {
            "name": "ignoreCase",
            "type": "System.Boolean",
            "summary": "True to ignore case during the comparison; otherwise, false."
          }
        ],
        "returns": "The toolbar if successful, None otherwise."
      },
      {
        "signature": "ToolbarFile FindByPath(System.String path)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets an open toolbar by full path.",
        "since": "5.0",
        "parameters": [
          {
            "name": "path",
            "type": "System.String",
            "summary": "The full path to the toolbar file."
          }
        ]
      },
      {
        "signature": "IEnumerator<ToolbarFile> GetEnumerator()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets a toolbar file enumerator.",
        "since": "5.0",
        "returns": "The enumerator."
      },
      {
        "signature": "ToolbarFile Open(System.String path)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Opens a toolbar file.",
        "since": "5.0",
        "parameters": [
          {
            "name": "path",
            "type": "System.String",
            "summary": "The full path to the toolbar file."
          }
        ],
        "returns": "The toolbar if successful, None otherwise."
      }
    ]
  },
  {
    "namespace": "Rhino.UI",
    "name": "ToolbarGroup",
    "dataType": "class",
    "summary": "Represents a toolbar group in a Rhino toolbar, or .RUI, file.",
    "since": "5.0",
    "properties": [
      {
        "signature": "Guid Id",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the id of the toolbar group.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "bool IsDocked",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Returns True if the toolbar group is docked.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "string Name",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the name of the toolbar group.",
        "since": "5.0",
        "property": ["get"]
      },
      {
        "signature": "bool Visible",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets and sets a toolbar group's visibility.",
        "since": "5.0",
        "property": ["get", "set"]
      }
    ]
  },
  {
    "namespace": "Rhino.UI",
    "name": "UserInterfaceButton",
    "dataType": "class",
    "baseclass": "Rhino.UI.UserInterfaceControl",
    "constructors": [
      {
        "signature": "UserInterfaceButton()",
        "summary": "Initializes a new instance of the UserInterfaceButton class"
      }
    ],
    "methods": [
      {
        "signature": "System.Void OnMouseClick(MouseState mouse)",
        "modifiers": ["protected", "override"],
        "protected": true,
        "virtual": false
      }
    ]
  },
  {
    "namespace": "Rhino.UI",
    "name": "UserInterfaceControl",
    "dataType": "class",
    "summary": "User interface controls are in-viewport control that act similar to controls you would find in most GUI frameworks. These are 2d screen aligned controls like buttons, labels and sliders",
    "baseclass": "Rhino.UI.UserInterfaceObjectBase",
    "constructors": [
      {
        "signature": "UserInterfaceControl(Point location, Size size)",
        "modifiers": ["protected"],
        "protected": true,
        "virtual": false,
        "since": "9.0"
      }
    ],
    "properties": [
      {
        "signature": "ControlHorizontalAlignment HorizontalAlignment",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "property": ["get", "set"]
      },
      {
        "signature": "PointF Location",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "9.0",
        "property": ["get", "set"]
      },
      {
        "signature": "SizeF Size",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "9.0",
        "property": ["get", "set"]
      },
      {
        "signature": "string Text",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "property": ["get", "set"]
      },
      {
        "signature": "Point3d? TrackingPoint",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "3d location that control \"sticks\" to if not null",
        "since": "9.0",
        "property": ["get", "set"]
      },
      {
        "signature": "ControlVerticalAlignment VerticalAlignment",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "property": ["get", "set"]
      }
    ],
    "methods": [
      {
        "signature": "RectangleF ComputedRectangle(Rhino.Display.RhinoView view, System.Boolean logicalPixels)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false
      },
      {
        "signature": "System.Void SetSvg(System.String svg)",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "9.0"
      }
    ]
  },
  {
    "namespace": "Rhino.UI",
    "name": "UserInterfaceIcon",
    "dataType": "class",
    "baseclass": "Rhino.UI.UserInterfaceControl",
    "constructors": [
      {
        "signature": "UserInterfaceIcon()",
        "summary": "Initializes a new instance of the UserInterfaceIcon class"
      }
    ]
  },
  {
    "namespace": "Rhino.UI",
    "name": "UserInterfaceObjectBase",
    "dataType": "class",
    "summary": "Base class for all on screen user interface widgets",
    "constructors": [
      {
        "signature": "UserInterfaceObjectBase()",
        "modifiers": ["protected"],
        "protected": true,
        "virtual": false
      }
    ],
    "properties": [
      {
        "signature": "bool BoundToActiveView",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "9.0",
        "property": ["get", "set"]
      },
      {
        "signature": "bool Visible",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Is the user interface object visible? Objects that are not visible will not be drawn and will not receive mouse events",
        "property": ["get", "set"]
      }
    ],
    "methods": [
      {
        "signature": "System.Boolean IsMouseOver(MouseState mouse)",
        "modifiers": ["protected", "virtual"],
        "protected": true,
        "virtual": true,
        "summary": "Called to test if the mouse is actively over this object",
        "returns": "Return True if the mouse is over this object"
      },
      {
        "signature": "System.Boolean IsRegistered()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Is this user interface object active",
        "since": "9.0"
      },
      {
        "signature": "System.Void OnDraw(Rhino.Display.DrawEventArgs args)",
        "modifiers": ["protected", "virtual"],
        "protected": true,
        "virtual": true,
        "summary": "All user interface objects are drawn and can customize their look with the OnDraw function"
      },
      {
        "signature": "System.Void OnMouseClick(MouseState mouse)",
        "modifiers": ["protected", "virtual"],
        "protected": true,
        "virtual": true,
        "summary": "Called during a mouse click event on this object"
      },
      {
        "signature": "System.Void OnMouseDoubleClick(MouseState mouse)",
        "modifiers": ["protected", "virtual"],
        "protected": true,
        "virtual": true,
        "summary": "Called during a mouse double click event on this object"
      },
      {
        "signature": "System.Void OnMouseDown(MouseState mouse)",
        "modifiers": ["protected", "virtual"],
        "protected": true,
        "virtual": true,
        "summary": "Called when the mouse goes down on this object",
        "parameters": [
          {
            "name": "mouse",
            "type": "MouseState",
            "summary": "Current mouse state when this event occurs"
          }
        ]
      },
      {
        "signature": "System.Void OnMouseEnter(MouseState mouse)",
        "modifiers": ["protected", "virtual"],
        "protected": true,
        "virtual": true,
        "summary": "Called when the mouse goes over this object"
      },
      {
        "signature": "System.Void OnMouseLeave(MouseState mouse)",
        "modifiers": ["protected", "virtual"],
        "protected": true,
        "virtual": true,
        "summary": "Called when the mouse leaves this object"
      },
      {
        "signature": "System.Void OnMouseMove(MouseState mouse)",
        "modifiers": ["protected", "virtual"],
        "protected": true,
        "virtual": true,
        "summary": "Called when the mouse is moved"
      },
      {
        "signature": "System.Void OnMouseUp(MouseState mouse)",
        "modifiers": ["protected", "virtual"],
        "protected": true,
        "virtual": true,
        "summary": "Called when the mouse is released on this object"
      },
      {
        "signature": "System.Boolean RegisterForAllDocuments()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Make this object visible for all documents. Typically you will only have user interface objects work with single documents. For that case, call doc.ViewUserInterface.Add",
        "since": "9.0"
      },
      {
        "signature": "System.Void Unregister()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Unregister this object",
        "since": "9.0"
      }
    ]
  },
  {
    "namespace": "Rhino.UI",
    "name": "UserInterfaceSlider",
    "dataType": "class",
    "summary": "Sliders allow dragging a grip back and forth along a defined range",
    "baseclass": "Rhino.UI.UserInterfaceControl",
    "constructors": [
      {
        "signature": "UserInterfaceSlider()",
        "summary": "Initializes a new instance of the UserInterfaceSlider class"
      }
    ],
    "properties": [
      {
        "signature": "bool AllowValueAfterRangeEnd",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Set to True if you want to allow dragging of the slider grip after the end of the defined range.",
        "property": ["get", "set"]
      },
      {
        "signature": "bool AllowValueBeforeRangeStart",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Set to True if you want to allow dragging of the slider grip before the start of the defined range.",
        "property": ["get", "set"]
      },
      {
        "signature": "int DigitPrecision",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Number of digits of precision for the slider. If you want the slider to only represent integer values, set the Digits value to 0.",
        "property": ["get", "set"]
      },
      {
        "signature": "bool DisplayValue",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Should the slider display the current value as text on the screen",
        "property": ["get", "set"]
      },
      {
        "signature": "bool HorizontalOrientation",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "property": ["get", "set"]
      },
      {
        "signature": "Interval Range",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "The range of acceptable values for the slider",
        "property": ["get", "set"]
      },
      {
        "signature": "double Value",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Current value that the slider represents",
        "property": ["get", "set"]
      }
    ],
    "methods": [
      {
        "signature": "System.Void OnValueChanged()",
        "modifiers": ["protected", "virtual"],
        "protected": true,
        "virtual": true,
        "summary": "Called when the slider's value changes. The default implementation calls the ValueChanged event"
      },
      {
        "signature": "System.String ValueAsFormattedString()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Formatted string shown based on value and digit precision"
      }
    ]
  },
  {
    "namespace": "Rhino.UI",
    "name": "WaitCursor",
    "dataType": "class",
    "interfaces": ["IDisposable"],
    "constructors": [
      {
        "signature": "WaitCursor()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.1"
      }
    ],
    "methods": [
      {
        "signature": "System.Void Clear()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.1"
      },
      {
        "signature": "System.Void Dispose()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.1"
      },
      {
        "signature": "System.Void Set()",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "since": "5.1"
      }
    ]
  },
  {
    "namespace": "Rhino",
    "name": "UnitsChangedWithScalingEventArgs",
    "dataType": "class",
    "summary": "Provides information about UnitsChangedWithScaling events.",
    "baseclass": "EventArgs",
    "since": "7.20",
    "properties": [
      {
        "signature": "RhinoDoc Document",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the document for this event. This field might be null.",
        "since": "7.20",
        "property": ["get"]
      },
      {
        "signature": "uint DocumentSerialNumber",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Gets the uniques document serial number for this event.",
        "since": "7.20",
        "property": ["get"]
      },
      {
        "signature": "double Scale",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "The scale factor.",
        "since": "7.20",
        "property": ["get"]
      }
    ]
  },
  {
    "namespace": "Rhino",
    "name": "UnitSystem",
    "dataType": "enum",
    "summary": "ON::LengthUnitSystem identifies a length unit system United States customary length units references: http://www.nist.gov/pml/wmd/metric/upload/frn-59-5442-1959.pdf http://en.wikipedia.org/wiki/United_States_customary_units http://en.wikipedia.org/wiki/International_yard_and_pound",
    "values": [
      {
        "signature": "None =  0",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "ON::LengthUnitSystem::None indicates no length unit system. The scale factor when converting between a specified unit system and None is always 1.0. ON::LengthUnitSystem::None is used as a unit system for models and instance definitions that should be imported or referenced with no scaling applied."
      },
      {
        "signature": "Angstroms = 12",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "1 angstroms = 1.0e-10 meters"
      },
      {
        "signature": "Nanometers = 13",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "1 nanometer = 1.0e-9 meters"
      },
      {
        "signature": "Microns =  1",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "1 micron = 1.0e-6 meters"
      },
      {
        "signature": "Millimeters =  2",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "1 millimeter = 1.0e-3 meters"
      },
      {
        "signature": "Centimeters =  3",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "1 centimeter = 1.0e-2 meters"
      },
      {
        "signature": "Decimeters = 14",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "1 decimeter = 1.0e-1 meters"
      },
      {
        "signature": "Meters =  4",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "SI meter length unit"
      },
      {
        "signature": "Dekameters = 15",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "1 dekameter = 1.0e+1 meters"
      },
      {
        "signature": "Hectometers = 16",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "1 hectometer = 1.0e+2 meters"
      },
      {
        "signature": "Kilometers =  5",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "1 kilometer = 1.0e+3 meters"
      },
      {
        "signature": "Megameters = 17",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "1 megameter = 1.0e+6 meters"
      },
      {
        "signature": "Gigameters = 18",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "1 gigameter = 1.0e+9 meters"
      },
      {
        "signature": "Microinches =  6",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "1 microinches = 2.54e-8 meters = 1.0e-6 inches"
      },
      {
        "signature": "Mils =  7",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "1 mil = 2.54e-5 meters = 0.001 inches"
      },
      {
        "signature": "Inches =  8",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "1 inch = 0.0254 meters = 1/12 foot"
      },
      {
        "signature": "Feet =  9",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "1 foot = 0.3048  meters (12 inches)"
      },
      {
        "signature": "Yards = 19",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "1 foot = 0.3048 meters = 12 inches"
      },
      {
        "signature": "Miles = 10",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "1 US statute mile = 1609.344 meters = 5280 feet"
      },
      {
        "signature": "PrinterPoints = 20",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "1 printer point = 1/72 inch"
      },
      {
        "signature": "PrinterPicas = 21",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "1 printer pica = 1/6 inch"
      },
      {
        "signature": "NauticalMiles = 22",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "1 nautical mile = 1852 meters Approximately 1 minute of arc on a terrestrial great circle. Reference: http://en.wikipedia.org/wiki/Nautical_mile"
      },
      {
        "signature": "AstronomicalUnits = 23",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "1 astronomical unit = 1.4959787e+11 meters An astronomical unit (au) is the mean distance from the center of the earth to the center of the sun. References: http://en.wikipedia.org/wiki/Astronomical_unit (1.4959787e+11 meters) http://units.nist.gov/Pubs/SP811/appenB9.htm (1.495979e+11 meters)"
      },
      {
        "signature": "LightYears = 24",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "1 light year = 9.4607304725808e+15 meters A light year is the distance light travels in one Julian year. The speed of light is exactly 299792458 meters/second. A Julian year is exactly 365.25 * 86400 seconds and is approximately the time it takes for one earth orbit. References: http://en.wikipedia.org/wiki/Light_year (9.4607304725808e+15 meters) http://units.nist.gov/Pubs/SP811/appenB9.htm (9.46073e+15 meters)"
      },
      {
        "signature": "Parsecs = 25",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "1 parsec = 3.08567758e+16 meters References: http://en.wikipedia.org/wiki/Parsec (3.08567758e+16 meters) http://units.nist.gov/Pubs/SP811/appenB9.htm (3.085678e+16)"
      },
      {
        "signature": "CustomUnits = 11",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "The name of a custom unit and the conversion to meters are saved in the ON_UnitSystem class."
      },
      {
        "signature": "Unset = 255",
        "modifiers": [],
        "protected": false,
        "virtual": false,
        "summary": "The ON::LengthUnitSystem::Unset is used to indicate no unit system is set. This is a different condition from ON::LengthUnitSystem::None."
      }
    ]

  },
  {
    "namespace": "Rhino.Runtime",
    "name": "ExceptionReportDelegate",
    "dataType": "delegate",
        "signature": "delegate void ExceptionReportDelegate(string source, Exception ex);",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Represents a reference to a method that will be called when an exception occurs."
      }
,
  {
    "namespace": "Rhino.Runtime",
    "name": "SendLogMessageToCloudDelegate",
    "dataType": "delegate",
        "signature": "delegate void SendLogMessageToCloudDelegate(LogMessageType msg_type, string sClass, string sDesc, string sMessage);",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Represents a reference to a method that will be called when an exception occurs."
      }
,
  {
    "namespace": "Rhino.UI",
    "name": "OnColorChangedEvent",
    "dataType": "delegate",
        "signature": "delegate void OnColorChangedEvent(Display.Color4f color);",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "May be optionally passed to ShowColorDialog and will get called when the color value changes in the color dialog."
      }
,
  {
    "namespace": "Rhino.DocObjects.Custom",
    "name": "TurnOnGripsEventHandler",
    "dataType": "delegate",
        "signature": "delegate void TurnOnGripsEventHandler(Rhino.DocObjects.RhinoObject rhObj);",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false
      }
,
  {
    "namespace": "Rhino.PlugIns",
    "name": "SaveFileHandler",
    "dataType": "delegate",
        "signature": "delegate bool SaveFileHandler(string fileName, bool includeAlpha, RenderWindow renderWindow);",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Called when a user chooses to save a rendered scene as this custom file type."
      }
,
  {
    "namespace": "Rhino.PlugIns",
    "name": "ValidateProductKeyDelegate",
    "dataType": "delegate",
        "signature": "delegate ValidateResult ValidateProductKeyDelegate(string productKey, out LicenseData licenseData);",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Validates a product key or license."
      }
,
  {
    "namespace": "Rhino.PlugIns",
    "name": "VerifyLicenseKeyDelegate",
    "dataType": "delegate",
        "signature": "delegate ValidateResult VerifyLicenseKeyDelegate(  \nstring licenseKey, string validationCode, DateTime validationCodeInstallDate, bool gracePeriodExpired, out LicenseData licenseData);",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Called by Rhino to verify a license key. For details, see http://developer.rhino3d.com/guides/rhinocommon/rhinocommon-zoo-plugins/"
      }
,
  {
    "namespace": "Rhino.PlugIns",
    "name": "OnLeaseChangedDelegate",
    "dataType": "delegate",
        "signature": "delegate void OnLeaseChangedDelegate(LicenseLeaseChangedEventArgs args, out Icon icon);",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Called by Rhino to signal that a lease from Rhino Accounts has changed. If LicenseLeaseChangedEventArgs.Lease is null, then the server has signaled that this product is no longer licensed. Your plug-in must change behavior to behave appropriately."
      }
,
  {
    "namespace": "Rhino.PlugIns",
    "name": "VerifyPreviousVersionLicenseDelegate",
    "dataType": "delegate",
        "signature": "delegate bool VerifyPreviousVersionLicenseDelegate(  \nstring license, string previousVersionLicense, out string errorMessage);",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Called by GetLicense/AskUserForLicense to verify that a previous version license."
      }
,
  {
    "namespace": "Rhino.Commands",
    "name": "RunCommandDelegate",
    "dataType": "delegate",
        "signature": "delegate Result RunCommandDelegate(RhinoDoc doc, RunMode mode, object data);",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false
      }
,
  {
    "namespace": "Rhino.UI",
    "name": "UpdateMenuItemEventHandler",
    "dataType": "delegate",
        "signature": "delegate void UpdateMenuItemEventHandler(object sender, RuiUpdateUi cmdui);",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "Menu item update delegate"
      }
,
  {
    "namespace": "Rhino.Runtime",
    "name": "SetClipRectProc",
    "dataType": "delegate",
        "signature": "delegate void SetClipRectProc(ref int left, ref int top, ref int right, ref int bottom);",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false
      }
,
  {
    "namespace": "Rhino.Runtime",
    "name": "FillProc",
    "dataType": "delegate",
        "signature": "delegate void FillProc(int topl, int bottoml, int topr, int bottomr);",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false
      }
,
  {
    "namespace": "Rhino.Runtime",
    "name": "VectorPolylineProc",
    "dataType": "delegate",
        "signature": "delegate void VectorPolylineProc(int argb, float thickness, int dashed, int capStyle, int joinStyle, int count, IntPtr points);",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false
      }
,
  {
    "namespace": "Rhino.Runtime",
    "name": "VectorArcProc",
    "dataType": "delegate",
        "signature": "delegate void VectorArcProc(int argb, float thickness, int dashed, ref Arc arc);",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false
      }
,
  {
    "namespace": "Rhino.Runtime",
    "name": "VectorStringProc",
    "dataType": "delegate",
        "signature": "delegate void VectorStringProc(IntPtr constPtrString, int argbTextColor, double x, double y, float angle, int alignment, float heightPixels, IntPtr constPtrFont);",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false
      }
,
  {
    "namespace": "Rhino.Runtime",
    "name": "VectorFillPolygonProc",
    "dataType": "delegate",
        "signature": "delegate void VectorFillPolygonProc(int argb, int count, IntPtr points);",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false
      }
,
  {
    "namespace": "Rhino.Runtime",
    "name": "VectorPathProc",
    "dataType": "delegate",
        "signature": "delegate void VectorPathProc(int begin, IntPtr brush, IntPtr screenLine, IntPtr stops);",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false
      }
,
  {
    "namespace": "Rhino.Runtime",
    "name": "VectorPointProc",
    "dataType": "delegate",
        "signature": "delegate void VectorPointProc(int style, float screenX, float screenY, int fillArgb, int strokeArgb,  \nfloat diameterPixels, float innerDiameterPixels, float strokeWidthPixels, float rotationRadians);",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false
      }
,
  {
    "namespace": "Rhino.Runtime",
    "name": "VectorBitmapProc",
    "dataType": "delegate",
        "signature": "delegate void VectorBitmapProc(IntPtr hBmp, double m11, double m12, double m21, double m22, double dx, double dy);",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false
      }
,
  {
    "namespace": "Rhino.Runtime",
    "name": "VectorRoundedRectProc",
    "dataType": "delegate",
        "signature": "delegate void VectorRoundedRectProc(float centerX, float centerY, float pixelWidth, float pixelHeight, float cornerRadius,  \nint strokeColor, float strokeWidth, int fillColor);",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false
      }
,
  {
    "namespace": "Rhino.Runtime",
    "name": "VectorClipPathProc",
    "dataType": "delegate",
        "signature": "delegate void VectorClipPathProc(IntPtr loops, int asBeziers);",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false
      }
,
  {
    "namespace": "Rhino.Runtime",
    "name": "VectorGradientProc",
    "dataType": "delegate",
        "signature": "delegate void VectorGradientProc(IntPtr pEngine, IntPtr pHatch, float strokeWidth, IntPtr pHatchPattern, int gradientCount, IntPtr colors,  \nIntPtr stops, IntPtr points, int linearGradient, int boundaryColor, double effectiveHatchScale);",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false
      }
,
  {
    "namespace": "Rhino",
    "name": "KeyboardHookEvent",
    "dataType": "delegate",
        "signature": "delegate void KeyboardHookEvent(int key);",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false,
        "summary": "KeyboardEvent delegate"
      }
,
  {
    "namespace": "Rhino.Input.Custom",
    "name": "GetObjectGeometryFilter",
    "dataType": "delegate",
        "signature": "delegate bool GetObjectGeometryFilter(RhinoObject rhObject, GeometryBase geometry, ComponentIndex componentIndex);",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false
      }
,
  {
    "namespace": "Rhino.UI.Controls",
    "name": "CREATEHOSTFROMCPPPROC",
    "dataType": "delegate",
        "signature": "delegate IntPtr CREATEHOSTFROMCPPPROC(IntPtr client);",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false
      }
,
  {
    "namespace": "Rhino.UI.Controls",
    "name": "CREATEFROMCPPPROC",
    "dataType": "delegate",
        "signature": "  delegate IntPtr CREATEFROMCPPPROC(IntPtr hwndParent, IntPtr contentUIPointer);",
        "modifiers": ["public"],
        "protected": false,
        "virtual": false
      }

]

