.. role:: clio-readonly
   :class: clio-flag clio-flag-readonly

.. role:: clio-static
   :class: clio-flag clio-flag-static


##############
CuttingService
##############

.. js:class:: wvc.CuttingService

   Service class for managing cutting plane operations in 3D models.
   
   This service provides a high-level interface for creating, managing, and manipulating cutting planes and cutting sections. It acts as a bridge between the UI components and the underlying HOOPS Web Viewer cutting functionality.
   
   Key features:
   
   
   - Cutting section management (create, activate, deactivate, clear)
   - Cutting plane operations (add, remove, update, visibility control)
   - Visual property management (color, opacity, reference geometry)
   - Capping geometry configuration
   - Event dispatching for UI synchronization
   - Face selection integration for plane creation
   
   .. rubric:: Examples
   
   
   .. code-block:: typescript
   
      // Create and configure cutting service
      const cuttingService = new CuttingService(cuttingManager);
      
      // Add event listeners
      cuttingService.addEventListener('hoops-cutting-plane-change', (event) => {
        console.log('Plane changed:', event.detail);
      });
      
      // Create a cutting plane
      const plane = new Plane();
      plane.normal = new Point3(1, 0, 0);
      plane.d = 10;
      
      const cuttingPlane = {
        plane,
        color: { r: 1, g: 0, b: 0 },
        opacity: 0.5
      };
      
      cuttingService.addCuttingPlane(0, cuttingPlane);
   
   .. code-block:: typescript
   
      // Configure capping geometry
      await cuttingService.setCappingGeometryVisibility(true);
      await cuttingService.setCappingFaceColor('#ff0000');
      await cuttingService.setCappingLineColor('#000000');
   
   .. rubric:: Events
   
   
   **hoops-cutting-sections-change**
   
   
      When cutting sections are loaded or changed
   
   
   **hoops-cutting-section-added**
   
   
      When a new cutting section is added
   
   
   **hoops-cutting-section-removed**
   
   
      When a cutting section is removed
   
   
   **hoops-cutting-section-change**
   
   
      When a cutting section state changes
   
   
   **hoops-cutting-plane-added**
   
   
      When a cutting plane is added to a section
   
   
   **hoops-cutting-plane-removed**
   
   
      When a cutting plane is removed
   
   
   **hoops-cutting-plane-change**
   
   
      When a cutting plane is modified
   
   
   **hoops-capping-geometry-visibility-changed**
   
   
      When capping geometry visibility changes
   
   
   **hoops-capping-face-color-changed**
   
   
      When capping face color changes
   
   
   **hoops-capping-line-color-changed**
   
   
      When capping line color changes
   
   
   **hoops-cutting-face-selection-change**
   
   
      When face selection changes
   
   
   **hoops-cutting-service-reset**
   
   
      When the service is reset with a new cutting manager
   
   
   
   Index
   =====
   
   .. rubric:: Constructors
   
   
   .. rst-class:: api-xref-list
   
   
   * :js:func:`~wvc.CuttingService.constructor`
   
   .. rubric:: Properties
   
   
   .. rst-class:: api-xref-list
   
   
   * :js:data:`~wvc.CuttingService.DefaultConfig`
   * :js:data:`~wvc.CuttingService.serviceName`
   
   .. rubric:: Accessors
   
   
   .. rst-class:: api-xref-list
   
   
   * :js:func:`~wvc.CuttingService.cuttingManager`
   
   .. rubric:: Methods
   
   
   .. rst-class:: api-xref-list
   
   
   * :js:meth:`~wvc.CuttingService.addCuttingPlane`
   * :js:meth:`~wvc.CuttingService.clearCuttingSection`
   * :js:meth:`~wvc.CuttingService.getCappingFaceColor`
   * :js:meth:`~wvc.CuttingService.getCappingGeometryVisibility`
   * :js:meth:`~wvc.CuttingService.getCappingLineColor`
   * :js:meth:`~wvc.CuttingService.getCuttingPlane`
   * :js:meth:`~wvc.CuttingService.getCuttingPlaneCount`
   * :js:meth:`~wvc.CuttingService.getCuttingPlanes`
   * :js:meth:`~wvc.CuttingService.getCuttingSection`
   * :js:meth:`~wvc.CuttingService.getCuttingSectionCount`
   * :js:meth:`~wvc.CuttingService.getCuttingSections`
   * :js:meth:`~wvc.CuttingService.getModelBounding`
   * :js:meth:`~wvc.CuttingService.getSelectedFace`
   * :js:meth:`~wvc.CuttingService.removeCuttingPlane`
   * :js:meth:`~wvc.CuttingService.resetConfiguration`
   * :js:meth:`~wvc.CuttingService.setCappingFaceColor`
   * :js:meth:`~wvc.CuttingService.setCappingGeometryVisibility`
   * :js:meth:`~wvc.CuttingService.setCappingLineColor`
   * :js:meth:`~wvc.CuttingService.setCuttingPlaneColor`
   * :js:meth:`~wvc.CuttingService.setCuttingPlaneLineColor`
   * :js:meth:`~wvc.CuttingService.setCuttingPlaneOpacity`
   * :js:meth:`~wvc.CuttingService.setCuttingPlaneVisibility`
   * :js:meth:`~wvc.CuttingService.setCuttingSectionGeometryVisibility`
   * :js:meth:`~wvc.CuttingService.setCuttingSectionState`
   * :js:meth:`~wvc.CuttingService.setModelBounding`
   * :js:meth:`~wvc.CuttingService.updateCuttingPlane`
   
   



.. rst-class:: kind-group kind-constructors

.. rubric:: Constructors
   :class: kind-group-title


.. js:method:: wvc.CuttingService.constructor

      .. rst-class:: sig-pretty-signature
      
         | CuttingService(**cuttingManager**\ : *ICuttingManager*\ ): :js:class:`CuttingService <wvc.CuttingService>`
      
      Constructs a new CuttingService instance.
      
      **Parameters**
      
      
         **cuttingManager**\ : *ICuttingManager*
      
      
            Optional HOOPS Web Viewer cutting manager to use for operations
      
      
      
      **Returns**\ : :js:class:`CuttingService <wvc.CuttingService>`
      
      .. rubric:: Examples
      
      
      .. code-block:: typescript
      
         // Create service with cutting manager
         const service = new CuttingService(viewer.cuttingManager);
         
         // Create service without manager (can be set later)
         const service = new CuttingService();
         service.cuttingManager = viewer.cuttingManager;
      



.. rst-class:: kind-group kind-properties

.. rubric:: Properties
   :class: kind-group-title


.. js:data:: wvc.CuttingService.DefaultConfig

      .. rst-class:: clio-flags
      
         :clio-static:`static`
         :clio-readonly:`readonly`
      
      .. rst-class:: sig-pretty-signature
      
         | DefaultConfig: :js:data:`CuttingServiceConfiguration <wvc.CuttingServiceConfiguration>`
      
      Default configuration values for the cutting service.
      



.. js:data:: wvc.CuttingService.serviceName

      .. rst-class:: clio-flags
      
         :clio-readonly:`readonly`
      
      .. rst-class:: sig-pretty-signature
      
         | serviceName: *"CuttingService"*
      
      The service identifier for this cutting service.
      



.. rst-class:: kind-group kind-accessors

.. rubric:: Accessors
   :class: kind-group-title


.. js:method:: wvc.CuttingService.cuttingManager

      .. rst-class:: sig-pretty-signature
      
         | *get* cuttingManager(): (*undefined* | *ICuttingManager*\ )
      
      Gets the current HOOPS Web Viewer cutting manager.
      
      **Returns**\ : (*undefined* \| *ICuttingManager*\ )
      
      
         The cutting manager instance, or undefined if not set
      
      
      .. rst-class:: sig-pretty-signature
      
         | *set* cuttingManager(**cuttingManager**\ : (*undefined* | *ICuttingManager*\ )): *void*
      
      Sets the HOOPS Web Viewer cutting manager.
      
      Unbinds from the previous cutting manager (if any) and binds to the new one. Dispatches a 'hoops-cutting-service-reset' event when the manager changes.
      
      **Parameters**
      
      
         **cuttingManager**\ : (*undefined* \| *ICuttingManager*\ )
      
      
            The new cutting manager instance, or undefined to clear
      
      
      
      **Returns**\ : *void*
      
      .. rubric:: Events
      
      
      **hoops-cutting-service-reset**
      
      
         When the cutting manager is changed
      
      



.. rst-class:: kind-group kind-methods

.. rubric:: Methods
   :class: kind-group-title


.. js:method:: wvc.CuttingService.addCuttingPlane

      .. rst-class:: sig-pretty-signature
      
         | addCuttingPlane(**sectionIndex**\ : *number*\ , **cuttingPlane**\ : :js:data:`CuttingPlane <wvc.CuttingPlane>`\ ): *Promise*
      
      Adds a cutting plane to a cutting section.
      
      **Parameters**
      
      
         **sectionIndex**\ : *number*
      
      
            The index of the cutting section to add the plane to
      
      
         **cuttingPlane**\ : :js:data:`CuttingPlane <wvc.CuttingPlane>`
      
      
            The CuttingPlane object containing plane definition and visual properties
      
      
      
      **Returns**\ : *Promise*
      
      .. rubric:: Examples
      
      
      .. code-block:: typescript
      
         const plane = new Plane();
         plane.normal = new Point3(1, 0, 0);
         plane.d = 0;
         
         const cuttingPlane = {
           plane,
           color: { r: 1, g: 0, b: 0 },
           opacity: 0.5
         };
         
         service.addCuttingPlane(0, cuttingPlane);
      
      .. rubric:: Events
      
      
      **hoops-cutting-plane-added**
      
      
         When the plane is successfully added
      
      
      .. rubric:: Throws
      
      
      Error if cutting manager is not set or section index is invalid
      



.. js:method:: wvc.CuttingService.clearCuttingSection

      .. rst-class:: sig-pretty-signature
      
         | clearCuttingSection(**sectionIndex**\ : *number*\ ): *Promise*
      
      Clears all cutting planes from the specified cutting section.
      
      **Parameters**
      
      
         **sectionIndex**\ : *number*
      
      
            The index of the cutting section to clear
      
      
      
      **Returns**\ : *Promise*
      
      .. rubric:: Events
      
      
      **hoops-cutting-section-change**
      
      
         When the section is cleared
      
      
      .. rubric:: Throws
      
      
      Error if cutting manager is not set or section index is invalid
      



.. js:method:: wvc.CuttingService.getCappingFaceColor

      .. rst-class:: sig-pretty-signature
      
         | getCappingFaceColor(): (*undefined* | *string*\ )
      
      Gets the current capping face color.
      
      **Returns**\ : (*undefined* \| *string*\ )
      
      
         The capping face color as a hex string, or default value if no cutting manager is set
      
      



.. js:method:: wvc.CuttingService.getCappingGeometryVisibility

      .. rst-class:: sig-pretty-signature
      
         | getCappingGeometryVisibility(): *boolean*
      
      Gets the current capping geometry visibility state.
      
      **Returns**\ : *boolean*
      
      
         True if capping geometry is visible, false otherwise, or default value if no cutting manager is set
      
      



.. js:method:: wvc.CuttingService.getCappingLineColor

      .. rst-class:: sig-pretty-signature
      
         | getCappingLineColor(): (*undefined* | *string*\ )
      
      Gets the current capping line color.
      
      **Returns**\ : (*undefined* \| *string*\ )
      
      
         The capping line color as a hex string, or default value if no cutting manager is set
      
      



.. js:method:: wvc.CuttingService.getCuttingPlane

      .. rst-class:: sig-pretty-signature
      
         | getCuttingPlane(**sectionIndex**\ : *number*\ , **planeIndex**\ : *number*\ ): (*undefined* | :js:data:`CuttingPlane <wvc.CuttingPlane>`\ )
      
      Gets a specific cutting plane from a cutting section.
      
      **Parameters**
      
      
         **sectionIndex**\ : *number*
      
      
            The index of the cutting section
      
      
         **planeIndex**\ : *number*
      
      
            The index of the cutting plane within the section
      
      
      
      **Returns**\ : (*undefined* \| :js:data:`CuttingPlane <wvc.CuttingPlane>`\ )
      
      
         The CuttingPlane object at the specified indices, or undefined if not found
      
      



.. js:method:: wvc.CuttingService.getCuttingPlaneCount

      .. rst-class:: sig-pretty-signature
      
         | getCuttingPlaneCount(**sectionIndex**\ : *number*\ ): *number*
      
      Gets the number of cutting planes in a cutting section.
      
      **Parameters**
      
      
         **sectionIndex**\ : *number*
      
      
            The index of the cutting section
      
      
      
      **Returns**\ : *number*
      
      
         The number of cutting planes in the section, or 0 if section not found
      
      



.. js:method:: wvc.CuttingService.getCuttingPlanes

      .. rst-class:: sig-pretty-signature
      
         | getCuttingPlanes(**sectionIndex**\ : *number*\ ): :js:data:`CuttingPlane <wvc.CuttingPlane>`\ []
      
      Gets all cutting planes from a cutting section.
      
      **Parameters**
      
      
         **sectionIndex**\ : *number*
      
      
            The index of the cutting section
      
      
      
      **Returns**\ : :js:data:`CuttingPlane <wvc.CuttingPlane>`\ []
      
      
         Array of CuttingPlane objects representing all planes in the section
      
      



.. js:method:: wvc.CuttingService.getCuttingSection

      .. rst-class:: sig-pretty-signature
      
         | getCuttingSection(**index**\ : *number*\ ): (*undefined* | :js:data:`Section <wvc.Section>`\ )
      
      Gets a cutting section by index.
      
      **Parameters**
      
      
         **index**\ : *number*
      
      
            The index of the cutting section to retrieve
      
      
      
      **Returns**\ : (*undefined* \| :js:data:`Section <wvc.Section>`\ )
      
      
         The Section object at the specified index, or undefined if not found
      
      



.. js:method:: wvc.CuttingService.getCuttingSectionCount

      .. rst-class:: sig-pretty-signature
      
         | getCuttingSectionCount(): *number*
      
      Gets the total number of cutting sections.
      
      **Returns**\ : *number*
      
      
         The number of cutting sections, or 0 if no cutting manager is set
      
      



.. js:method:: wvc.CuttingService.getCuttingSections

      .. rst-class:: sig-pretty-signature
      
         | getCuttingSections(): :js:data:`Section <wvc.Section>`\ []
      
      Gets all cutting sections.
      
      **Returns**\ : :js:data:`Section <wvc.Section>`\ []
      
      
         Array of Section objects representing all cutting sections
      
      



.. js:method:: wvc.CuttingService.getModelBounding

      .. rst-class:: sig-pretty-signature
      
         | getModelBounding(): *Box*
      
      Gets the current model bounding box.
      
      **Returns**\ : *Box*
      
      
         The model's bounding box, or an empty Box if not set
      
      



.. js:method:: wvc.CuttingService.getSelectedFace

      .. rst-class:: sig-pretty-signature
      
         | getSelectedFace(): (*undefined* | :js:data:`SelectedFace <wvc.SelectedFace>`\ )
      
      Gets the currently selected face for creating cutting planes.
      
      **Returns**\ : (*undefined* \| :js:data:`SelectedFace <wvc.SelectedFace>`\ )
      
      
         The selected face data, or undefined if no face is selected
      
      



.. js:method:: wvc.CuttingService.removeCuttingPlane

      .. rst-class:: sig-pretty-signature
      
         | removeCuttingPlane(**sectionIndex**\ : *number*\ , **planeIndex**\ : *number*\ ): *Promise*
      
      Removes a cutting plane from a cutting section.
      
      **Parameters**
      
      
         **sectionIndex**\ : *number*
      
      
            The index of the cutting section containing the plane
      
      
         **planeIndex**\ : *number*
      
      
            The index of the cutting plane to remove
      
      
      
      **Returns**\ : *Promise*
      
      .. rubric:: Events
      
      
      **hoops-cutting-plane-removed**
      
      
         When the plane is successfully removed
      
      
      .. rubric:: Throws
      
      
      Error if cutting manager is not set, section index is invalid, or plane index is invalid
      



.. js:method:: wvc.CuttingService.resetConfiguration

      .. rst-class:: sig-pretty-signature
      
         | resetConfiguration(**obj**\ : *object*\ ): *Promise*
      
      Resets the cutting service configuration to default values or provided configuration.
      
      **Parameters**
      
      
         **obj**\ : *object*
      
      
            Optional configuration object to apply, or undefined to use default configuration
      
      
      
      **Returns**\ : *Promise*
      
      .. rubric:: Examples
      
      
      .. code-block:: typescript
      
         // Reset to default configuration
         await service.resetConfiguration();
         
         // Apply custom configuration
         await service.resetConfiguration({
           cappingGeometryVisibility: false,
           cappingFaceColor: '#ff0000',
           cappingLineColor: '#000000'
         });
      
      .. rubric:: Throws
      
      
      Error if cutting manager is not set or configuration object is invalid
      



.. js:method:: wvc.CuttingService.setCappingFaceColor

      .. rst-class:: sig-pretty-signature
      
         | setCappingFaceColor(**color**\ : *string*\ ): *Promise*
      
      Sets the capping face color.
      
      **Parameters**
      
      
         **color**\ : *string*
      
      
            The color as a hex string (e.g., "#ff0000"), or undefined to use default
      
      
      
      **Returns**\ : *Promise*
      
      .. rubric:: Events
      
      
      **hoops-capping-face-color-changed**
      
      
         When face color changes
      
      
      .. rubric:: Throws
      
      
      Error if cutting manager is not set
      



.. js:method:: wvc.CuttingService.setCappingGeometryVisibility

      .. rst-class:: sig-pretty-signature
      
         | setCappingGeometryVisibility(**cappingGeometryVisibility**\ : *boolean*\ ): *Promise*
      
      Sets the capping geometry visibility state.
      
      **Parameters**
      
      
         **cappingGeometryVisibility**\ : *boolean*
      
      
            True to show capping geometry, false to hide
      
      
      
      **Returns**\ : *Promise*
      
      .. rubric:: Events
      
      
      **hoops-capping-geometry-visibility-changed**
      
      
         When visibility state changes
      
      
      .. rubric:: Throws
      
      
      Error if cutting manager is not set
      



.. js:method:: wvc.CuttingService.setCappingLineColor

      .. rst-class:: sig-pretty-signature
      
         | setCappingLineColor(**color**\ : *string*\ ): *Promise*
      
      Sets the capping line color.
      
      **Parameters**
      
      
         **color**\ : *string*
      
      
            The color as a hex string (e.g., "#000000"), or undefined to use default
      
      
      
      **Returns**\ : *Promise*
      
      .. rubric:: Events
      
      
      **hoops-capping-line-color-changed**
      
      
         When line color changes
      
      
      .. rubric:: Throws
      
      
      Error if cutting manager is not set
      



.. js:method:: wvc.CuttingService.setCuttingPlaneColor

      .. rst-class:: sig-pretty-signature
      
         | setCuttingPlaneColor(**sectionIndex**\ : *number*\ , **planeIndex**\ : *number*\ , **color**\ : *IColor*\ ): *void*
      
      Sets the face color of a specific cutting plane.
      
      **Parameters**
      
      
         **sectionIndex**\ : *number*
      
      
            The index of the cutting section containing the plane
      
      
         **planeIndex**\ : *number*
      
      
            The index of the cutting plane to modify
      
      
         **color**\ : *IColor*
      
      
            The new face color (RGB values between 0 and 1)
      
      
      
      **Returns**\ : *void*
      
      .. rubric:: Events
      
      
      **hoops-cutting-plane-change**
      
      
         When the plane color changes
      
      
      .. rubric:: Throws
      
      
      Error if cutting manager is not set, section index is invalid, or plane index is invalid
      



.. js:method:: wvc.CuttingService.setCuttingPlaneLineColor

      .. rst-class:: sig-pretty-signature
      
         | setCuttingPlaneLineColor(**sectionIndex**\ : *number*\ , **planeIndex**\ : *number*\ , **lineColor**\ : *IColor*\ ): *void*
      
      Sets the line color of a specific cutting plane.
      
      **Parameters**
      
      
         **sectionIndex**\ : *number*
      
      
            The index of the cutting section containing the plane
      
      
         **planeIndex**\ : *number*
      
      
            The index of the cutting plane to modify
      
      
         **lineColor**\ : *IColor*
      
      
            The new line color (RGB values between 0 and 1)
      
      
      
      **Returns**\ : *void*
      
      .. rubric:: Events
      
      
      **hoops-cutting-plane-change**
      
      
         When the plane line color changes
      
      
      .. rubric:: Throws
      
      
      Error if cutting manager is not set, section index is invalid, or plane index is invalid
      



.. js:method:: wvc.CuttingService.setCuttingPlaneOpacity

      .. rst-class:: sig-pretty-signature
      
         | setCuttingPlaneOpacity(**sectionIndex**\ : *number*\ , **planeIndex**\ : *number*\ , **opacity**\ : *number*\ ): *void*
      
      Sets the opacity of a specific cutting plane.
      
      **Parameters**
      
      
         **sectionIndex**\ : *number*
      
      
            The index of the cutting section containing the plane
      
      
         **planeIndex**\ : *number*
      
      
            The index of the cutting plane to modify
      
      
         **opacity**\ : *number*
      
      
            The new opacity value (between 0.0 and 1.0)
      
      
      
      **Returns**\ : *void*
      
      .. rubric:: Events
      
      
      **hoops-cutting-plane-change**
      
      
         When the plane opacity changes
      
      
      .. rubric:: Throws
      
      
      Error if cutting manager is not set, section index is invalid, or plane index is invalid
      



.. js:method:: wvc.CuttingService.setCuttingPlaneVisibility

      .. rst-class:: sig-pretty-signature
      
         | setCuttingPlaneVisibility(**sectionIndex**\ : *number*\ , **planeIndex**\ : *number*\ , **visible**\ : *boolean*\ ): *Promise*
      
      Sets the visibility of reference geometry for a specific cutting plane.
      
      **Parameters**
      
      
         **sectionIndex**\ : *number*
      
      
            The index of the cutting section containing the plane
      
      
         **planeIndex**\ : *number*
      
      
            The index of the cutting plane to modify
      
      
         **visible**\ : *boolean*
      
      
            True to show reference geometry, false to hide
      
      
      
      **Returns**\ : *Promise*
      
      .. rubric:: Events
      
      
      **hoops-cutting-plane-change**
      
      
         When the plane visibility changes
      
      
      .. rubric:: Throws
      
      
      Error if cutting manager is not set, section index is invalid, or plane index is invalid
      



.. js:method:: wvc.CuttingService.setCuttingSectionGeometryVisibility

      .. rst-class:: sig-pretty-signature
      
         | setCuttingSectionGeometryVisibility(**sectionIndex**\ : *number*\ , **hidden**\ : *boolean*\ ): *Promise*
      
      Sets the reference geometry visibility for a cutting section.
      
      **Parameters**
      
      
         **sectionIndex**\ : *number*
      
      
            The index of the cutting section to modify
      
      
         **hidden**\ : *boolean*
      
      
            True to hide reference geometry, false to show
      
      
      
      **Returns**\ : *Promise*
      
      .. rubric:: Events
      
      
      **hoops-cutting-section-change**
      
      
         When the section visibility changes
      
      
      .. rubric:: Throws
      
      
      Error if cutting manager is not set or section index is invalid
      



.. js:method:: wvc.CuttingService.setCuttingSectionState

      .. rst-class:: sig-pretty-signature
      
         | setCuttingSectionState(**sectionIndex**\ : *number*\ , **active**\ : *boolean*\ ): *Promise*
      
      Sets the active state of a cutting section.
      
      **Parameters**
      
      
         **sectionIndex**\ : *number*
      
      
            The index of the cutting section to modify
      
      
         **active**\ : *boolean*
      
      
            True to activate the section, false to deactivate
      
      
      
      **Returns**\ : *Promise*
      
      .. rubric:: Events
      
      
      **hoops-cutting-section-change**
      
      
         When the section state changes
      
      
      .. rubric:: Throws
      
      
      Error if cutting manager is not set or section index is invalid
      



.. js:method:: wvc.CuttingService.setModelBounding

      .. rst-class:: sig-pretty-signature
      
         | setModelBounding(**modelBounding**\ : *Box*\ ): *void*
      
      Sets the model bounding box.
      
      **Parameters**
      
      
         **modelBounding**\ : *Box*
      
      
            The new model bounding box
      
      
      
      **Returns**\ : *void*
      



.. js:method:: wvc.CuttingService.updateCuttingPlane

      .. rst-class:: sig-pretty-signature
      
         | updateCuttingPlane(**sectionIndex**\ : *number*\ , **planeIndex**\ : *number*\ , **cuttingPlane**\ : *Partial*\ ): *Promise*
      
      Updates properties of an existing cutting plane.
      
      This method allows partial updates to cutting plane properties including plane geometry, visual properties (color, opacity), and reference geometry. The plane normal is automatically normalized for proper reference geometry alignment.
      
      **Parameters**
      
      
         **sectionIndex**\ : *number*
      
      
            The index of the cutting section containing the plane
      
      
         **planeIndex**\ : *number*
      
      
            The index of the cutting plane to update
      
      
         **cuttingPlane**\ : *Partial*
      
      
            Partial CuttingPlane object with properties to update
      
      
      
      **Returns**\ : *Promise*
      
      .. rubric:: Examples
      
      
      .. code-block:: typescript
      
         // Update only the color
         service.updateCuttingPlane(0, 0, {
           color: { r: 0, g: 1, b: 0 }
         });
         
         // Update plane position and opacity
         const newPlane = new Plane();
         newPlane.normal = new Point3(0, 1, 0);
         newPlane.d = 5;
         
         service.updateCuttingPlane(0, 0, {
           plane: newPlane,
           opacity: 0.8
         });
      
      .. rubric:: Events
      
      
      **hoops-cutting-plane-change**
      
      
         When the plane is successfully updated
      
      
      .. rubric:: Throws
      
      
      Error if cutting manager is not set, section index is invalid, or plane index is invalid
      




