/// <summary>
 /// Gets the layer to show.
 /// </summary>
 /// <param name="layerName">Name of layer to show(see Remarks)</param>
 /// <returns></returns>
 /// <remarks>Before calling this method, call IEModelViewControl::LayerName to get the name of the layer to show.</remarks>
 public bool GetShowLayer(string layerName)
 {
     VerifyOcx();
     return(Ocx.GetShowLayerName(layerName));
 }
        /// <summary>
        /// Loads the model from data from an XML source.
        /// </summary>
        /// <param name="XMLDoc">Pointer to the an MSXML DOMDocument object (MSXML2.DOMDocument40)</param>
        public void LoadXMLBuffer(object XMLDoc)
        {
            VerifyOcx();

            Ocx.LoadXMLBuffer(XMLDoc);
        }
 /// <summary>
 /// Displays the Send As dialog.
 /// </summary>
 public void ShowSend()
 {
     VerifyOcx();
     Ocx.ShowSend();
 }
 /// <summary>
 /// Redraws the scene graph.
 /// </summary>
 public void UpdateScene()
 {
     VerifyOcx();
     Ocx.UpdateScene();
 }
 /// <summary>
 /// Shows or hides a 3D pointer in the active view in the graphics area.
 /// </summary>
 /// <param name="show">True to show the 3D Pointer, false to hide it</param>
 /// <param name="StartX">x coordinate of the position of the sphere and the start point of the line</param>
 /// <param name="StartY">y coordinate of the position of the sphere and the start point of the line</param>
 /// <param name="StartZ">z coordinate of the position of the sphere and the start point of the line</param>
 /// <param name="EndX">x coordinate of the end point of the line</param>
 /// <param name="EndY">y coordinate of the end point of the line</param>
 /// <param name="EndZ">z coordinate of the end point of the line</param>
 public void Show3DPointer(bool show, float StartX, float StartY, float StartZ, float EndX, float EndY, float EndZ)
 {
     VerifyOcx();
     Ocx.Show3DPointer(show, StartX, StartY, StartZ, EndX, EndY, EndZ);
 }
 /// <summary>
 /// Maximizes the drawing to fill the screen.
 /// </summary>
 /// <param name="fullscreen"></param>
 public void ShowFullScreen(bool fullscreen)
 {
     VerifyOcx();
     Ocx.ShowFullScreen(fullscreen);
 }
 /// <summary>
 /// Clear all selections.
 /// <see cref="http://help.solidworks.com/2018/english/api/emodelapi/eDrawings.Interop.EModelViewControl~eDrawings.Interop.EModelViewControl.IEModelViewControl~ClearSelections.html"/>
 /// </summary>
 public void ClearSelections()
 {
     VerifyOcx();
     Ocx.ClearSelections();
 }
 /// <summary>
 /// Shows the specified ToolTip.
 /// </summary>
 /// <param name="ToolTipID"></param>
 public void ShowToolTip(int ToolTipID)
 {
     VerifyOcx();
     Ocx.ShowToolTip(ToolTipID);
 }
 /// <summary>
 /// Sets the state of animation.
 /// <see cref="http://help.solidworks.com/2018/english/api/emodelapi/eDrawings.Interop.EModelViewControl~eDrawings.Interop.EModelViewControl.IEModelViewControl~Animate.html"/>
 /// </summary>
 /// <param name="Animating">Animate option as defined in EMVAnimateAction
 /// <see cref="http://help.solidworks.com/2018/english/api/emodelapi/eDrawings.Interop.EModelViewControl~eDrawings.Interop.EModelViewControl.EMVAnimateAction.html"/>
 /// </param>
 public void Animate(EMVAnimateAction Animating)
 {
     VerifyOcx();
     Ocx.Animate((int)Animating);
 }
 /// <summary>
 /// Prints the eDrawings file.
 /// <see cref="http://help.solidworks.com/2018/english/api/emodelapi/eDrawings.Interop.EModelViewControl~eDrawings.Interop.EModelViewControl.IEModelViewControl~Print5.html"/>
 /// </summary>
 /// <param name="ShowDialog">True to show the Print dialog, false to not</param>
 /// <param name="FileNameInPrintQueue">Document name to show in the printer queue for this eDrawings file (see Remarks)</param>
 /// <param name="Shaded">True to print shaded, false to not print shaded</param>
 /// <param name="DraftQuality">True to print draft quality, false to print regular quality</param>
 /// <param name="Color">True to print in grayscale on black-and-white printers, false to print black and white (lines, edges, and text are black, and shaded data is grayscale)</param>
 /// <param name="printType">Scale the eDrawings file as defined in <see cref="EMVPrintType"/> (see Remarks)</param>
 /// <param name="scale">Scaling factor; this argument is valid only when printType is set to eScaled</param>
 /// <param name="centerOffsetX">Offset in thousands of an inch; this argument is valid only when printType is set to eScaled</param>
 /// <param name="centerOffsetY">Offset in thousands of an inch; this argument is valid only when printType is set to eScaled</param>
 /// <param name="printAll">True to print all pages, false to not</param>
 /// <param name="pageFirst">Page number of first page to print; this argument is valid only when printAll is set to false</param>
 /// <param name="pageLast">Page number of last page to print; this argument is valid only when printAll is set to false</param>
 /// <param name="PrintToFileName">Page number of last page to print; this argument is valid only when printAll is set to false</param>
 public void Print5(bool ShowDialog, string FileNameInPrintQueue, bool Shaded, bool DraftQuality, bool Color, EMVPrintType printType, double scale, int centerOffsetX, int centerOffsetY, bool printAll, int pageFirst, int pageLast, string PrintToFileName)
 {
     VerifyOcx();
     Ocx.Print5(ShowDialog, FileNameInPrintQueue, Shaded, DraftQuality, Color, (int)printType, scale, centerOffsetX, centerOffsetY, printAll, pageFirst, pageLast, PrintToFileName);
 }
 /// <summary>
 /// Opens the specified markup (*.markup) eDrawings file.
 /// <see cref="http://help.solidworks.com/2018/english/api/emodelapi/eDrawings.Interop.EModelViewControl~eDrawings.Interop.EModelViewControl.IEModelViewControl~OpenMarkupFile.html"/>
 /// </summary>
 /// <param name="inFileName">Fully qualified path and file name</param>
 public void OpenMarkupFile(string inFileName)
 {
     VerifyOcx();
     Ocx.OpenMarkupFile(inFileName);
 }
        //TODO More Properties



        #endregion

        #region Public Method

        /// <summary>
        /// Open the specified eDrawing file
        /// <see cref="http://help.solidworks.com/2018/english/api/emodelapi/eDrawings.Interop.EModelViewControl~eDrawings.Interop.EModelViewControl.IEModelViewControl~OpenDoc.html"/>
        /// </summary>
        /// <param name="FileName">Fully qualified path and file name (see Remarks)</param>
        /// <param name="IsTemp">True to delete the local copy of a remote non-eDrawings file when that file is closed, false to keep the local copy</param>
        /// <param name="PromptToSave">True to show a dialog if the user exits without saving the file, false to not show a dialog</param>
        /// <param name="ReadOnly">True if the file is read-only, false if not</param>
        /// <param name="CommandString">Specify an empty string (""); do not specify Nothing, Empty, or vbNullString</param>
        public void OpenDoc(string FileName, bool IsTemp, bool PromptToSave, bool ReadOnly, string CommandString = "")
        {
            VerifyOcx();
            Ocx.OpenDoc(FileName, IsTemp, PromptToSave, ReadOnly, CommandString);
        }
 /// <summary>
 /// Sets the layer to show.
 /// </summary>
 /// <param name="layerName">Name of layer to show(see Remarks)</param>
 /// <param name="value"></param>
 /// <remarks>
 /// Before calling this method, call IEModelViewControl::LayerName to get the name of the layer to show.</remarks>
 public void SetShowLayerName(string layerName, bool value)
 {
     VerifyOcx();
     Ocx.SetShowLayerName(layerName, value);
 }
        /// <summary>
        /// Refreshes the eDrawings window.
        /// <see cref="http://help.solidworks.com/2018/english/api/emodelapi/eDrawings.Interop.EModelViewControl~eDrawings.Interop.EModelViewControl.IEModelViewControl~Refresh.html"/>
        /// </summary>
        public void OcxRefresh()
        {
            VerifyOcx();

            Ocx.Refresh();
        }
 /// <summary>
 /// Closes the active eDrawings document.
 /// <see cref="http://help.solidworks.com/2018/english/api/emodelapi/eDrawings.Interop.EModelViewControl~eDrawings.Interop.EModelViewControl.IEModelViewControl~CloseActiveDoc.html"/>
 /// </summary>
 /// <param name="commandString">Specify an empty string (""); do not specify Nothing, Empty, or vbNullString</param>
 public void CloseActiveDoc(string commandString = "")
 {
     VerifyOcx();
     Ocx.CloseActiveDoc(commandString);
 }
 /// <summary>
 /// Saves the eDrawings file.
 /// <see cref="http://help.solidworks.com/2018/english/api/emodelapi/eDrawings.Interop.EModelViewControl~eDrawings.Interop.EModelViewControl.IEModelViewControl~Save.html"/>
 /// </summary>
 /// <param name="SaveName">Fully qualified path and file name to which to save the data (see Remarks)</param>
 /// <param name="SaveAs">
 /// <list type="table">
 /// <item>True => A dialog is displayed prompting the user to specify where to save the file. SaveName is ignored.
 /// </item>
 /// <item>False => If SaveName is specified, then the active document is saved to that location and file.
 /// If SaveName is empty, then the active document is saved to the location and file from which it was opened.</item>
 /// </list>
 /// </param>
 /// <param name="CommandString">Specify an empty string (""); do not specify Nothing, Empty, or vbNullString</param>
 public void Save(string SaveName, bool SaveAs, string CommandString = "")
 {
     VerifyOcx();
     Ocx.Save(SaveName, SaveAs, CommandString);
 }
        /// <summary>
        /// Creates an instance of an eDrawings add-in object, such as IEModelViewMarkupControl.
        /// <see cref="http://help.solidworks.com/2018/english/api/emodelapi/eDrawings.Interop.EModelViewControl~eDrawings.Interop.EModelViewControl.IEModelViewControl~CoCreateInstance.html"/>
        /// </summary>
        /// <param name="CLSIDString">Class ID for an eDrawings add-in</param>
        /// <returns>Pointer to the add-in object</returns>
        /// <example>
        /// <code>
        /// Dim m_Markup as EModelViewMarkup.EModelMarkupControl
        /// Set m_Markup = EModelViewControl1.CoCreateInstance("EModelViewMarkup.EmodelMarkupControl")
        /// </code>
        /// </example>
        public object CoCreateInstance(string CLSIDString)
        {
            VerifyOcx();

            return(Ocx.CoCreateInstance(CLSIDString));
        }
 /// <summary>
 /// Selects the first component intersected by a ray that starts at the specified point in the specified direction vector.
 /// </summary>
 /// <param name="StartX">x coordinate of start point</param>
 /// <param name="StartY">y coordinate of start point</param>
 /// <param name="StartZ">z coordinate of start point</param>
 /// <param name="DirectionX">x coordinate of direction vector</param>
 /// <param name="DirectionY">y coordinate of direction vector</param>
 /// <param name="DirectionZ">z coordinate of direction vector</param>
 public void SelectByRay(float StartX, float StartY, float StartZ, float DirectionX, float DirectionY, float DirectionZ)
 {
     VerifyOcx();
     Ocx.SelectByRay(StartX, StartY, StartZ, DirectionX, DirectionY, DirectionZ);
 }
        /// <summary>
        /// Creates a ToolTip at the specified location.
        /// <see cref="help.solidworkls.com/2018/english/api/emodelapi/eDrawings.Interop.EModelViewControl~eDrawings.Interop.EModelViewControl.IEModelViewControl~CreateTooltip.html"/>
        /// </summary>
        /// <param name="TipTitle">Title for ToolTip; only the ToolTip text is displayed if you set TipTitle to an empty string ("")</param>
        /// <param name="TipText">Text for ToolTip; only the ToolTip title is displayed if you set TipText to an empty string ("")</param>
        /// <param name="ShowAtMousePostion">True to show the ToolTip at the cursor's location, false to show the ToolTip at the specified location</param>
        /// <param name="XCoordinate">x coordinate for the ToolTip location</param>
        /// <param name="YCoordinate">y coordinate for the ToolTip location</param>
        /// <returns>ID of ToolTip</returns>
        public int CreateToolTip(string TipTitle, string TipText, bool ShowAtMousePostion, int XCoordinate, int YCoordinate)
        {
            VerifyOcx();

            return(Ocx.CreateTooltip(TipTitle, TipText, ShowAtMousePostion, XCoordinate, YCoordinate));
        }
 /// <summary>
 /// Index number of the configuration to display
 /// </summary>
 /// <param name="ConfigurationIndex"></param>
 public void ShowConfiguration(int ConfigurationIndex)
 {
     VerifyOcx();
     Ocx.ShowConfiguration(ConfigurationIndex);
 }
        /// <summary>
        /// Gets the name of the selected component.
        /// <see cref="http://help.solidworks.com/2018/english/api/emodelapi/eDrawings.Interop.EModelViewControl~eDrawings.Interop.EModelViewControl.IEModelViewControl~GetSelectedComponentName.html"/>
        /// </summary>
        /// <returns>Name of the selected component or an empty string if a component is not selected</returns>
        /// <remarks>
        /// To select a component, call IEModelViewControl::SelectByRay before calling this method.
        /// </remarks>
        public string GetSelectedComponentName()
        {
            VerifyOcx();

            return(Ocx.GetSelectedComponentName());
        }
 /// <summary>
 /// Displays eDrawings Help.
 /// </summary>
 public void ShowHelp()
 {
     VerifyOcx();
     Ocx.ShowHelp();
 }
        /// <summary>
        /// Hides all ToolTips.
        /// <see cref="http://help.solidworks.com/2018/english/api/emodelapi/eDrawings.Interop.EModelViewControl~eDrawings.Interop.EModelViewControl.IEModelViewControl~HideAllTooltips.html"/>
        /// </summary>
        public void HideAllTooltips()
        {
            VerifyOcx();

            Ocx.HideAllTooltips();
        }
 /// <summary>
 /// Displays the specified drawing sheet
 /// </summary>
 /// <param name="SheetIndex">Index number of the drawing sheet to display</param>
 public void ShowSheet(int SheetIndex)
 {
     VerifyOcx();
     Ocx.ShowSheet(SheetIndex);
 }
        /// <summary>
        /// Hides the specified ToolTip.
        /// </summary>
        /// <param name="ToolTipID">ID of the ToolTip</param>
        public void HideToolTip(int ToolTipID)
        {
            VerifyOcx();

            Ocx.HideToolTip(ToolTipID);
        }
 /// <summary>
 /// Sets the Page Setup parameters for printing.
 /// </summary>
 /// <param name="Orientation">Page orientation as defined in <see cref="EMVPrintOrientation"/></param>
 /// <param name="PaperSize">Use Windows printer constants (see Remarks)</param>
 /// <param name="PaperLength">Custom size in thousandths of an inch, if you are not using a standard paper size</param>
 /// <param name="PaperWidth">Custom size in thousandths of an inch</param>
 /// <param name="Copies">Number of copies</param>
 /// <param name="Source">Paper tray source; use Windows printer constants</param>
 /// <param name="Printer">Printer name </param>
 /// <param name="TopMargin">Top margin in thousandths of an inch or 0 to use printer's margin</param>
 /// <param name="BottomMargin">Bottom margin in thousandths of an inch or 0 to use printer's margin</param>
 /// <param name="LeftMargin">Left margin in thousandths of an inch or 0 to use printer's margin</param>
 /// <param name="RightMargin">Right margin in thousandths of an inch or 0 to use printer's margin</param>
 public void SetPageSetupOptions(EMVPrintOrientation Orientation, int PaperSize, int PaperLength, int PaperWidth, int Copies, int Source, string Printer, int TopMargin, int BottomMargin, int LeftMargin, int RightMargin)
 {
     VerifyOcx();
     Ocx.SetPageSetupOptions(Orientation, PaperSize, PaperLength, PaperWidth, Copies, Source, Printer, TopMargin, BottomMargin, LeftMargin, RightMargin);
 }
 /// <summary>
 /// Gets the value of the specified mass property.
 /// </summary>
 public double GetMassProperty(EMVMassProperty massProperty)
 {
     VerifyOcx();
     return(Ocx.MassProperty((int)massProperty));
 }