Class JPanelSculptor

  • All Implemented Interfaces:
    java.awt.event.ActionListener, java.awt.event.FocusListener, java.awt.event.ItemListener, java.awt.event.KeyListener, java.awt.image.ImageObserver, java.awt.MenuContainer, java.io.Serializable, java.util.EventListener, javax.accessibility.Accessible

    public class JPanelSculptor
    extends JPanelRendererJ3D

    Title: JPanelSculptor

    Description: Sculptor panel draws the sculptor and apply the sculptor to the whole volume region.

    Author:
    Alexandra Bokinsky, Ph.D.
    See Also:
    Serialized Form
    • Nested Class Summary

      Nested Classes 
      Modifier and Type Class Description
      (package private) class  JPanelSculptor.DrawingPanel
      Wrapper in order to hold the control panel layout in the JScrollPane.
      • Nested classes/interfaces inherited from class javax.swing.JPanel

        javax.swing.JPanel.AccessibleJPanel
      • Nested classes/interfaces inherited from class javax.swing.JComponent

        javax.swing.JComponent.AccessibleJComponent
      • Nested classes/interfaces inherited from class java.awt.Container

        java.awt.Container.AccessibleAWTContainer
      • Nested classes/interfaces inherited from class java.awt.Component

        java.awt.Component.AccessibleAWTComponent, java.awt.Component.BaselineResizeBehavior, java.awt.Component.BltBufferStrategy, java.awt.Component.FlipBufferStrategy
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      void actionPerformed​(java.awt.event.ActionEvent e)
      Command processor to handle the geodesic button events.
      void applySculptRegion()
      Cull the sculpt region through the 3D volume.
      void clearSculptRegion()
      clearwSculptRegion: called when the "Clear Outline" Button is pressed.
      void disposeLocal​(boolean flag)
      Sets all variables to null, disposes, and garbage collects.
      void drawSculptRegion()
      drawSculptRegion: called when the "Draw Sculpt Outline" Button is pressed.
      protected void finalize()
      Calls disposeLocal.
      javax.swing.JPanel getMainPanel()
      Get the main control panel.
      void init()
      Initialize the buttons layout.
      void invertSculptRegion()
      clearwSculptRegion: called when the "Clear Outline" Button is pressed.
      void resizePanel​(int panelWidth, int frameHeight)
      Resizig the control panel with ViewJFrameVolumeView's frame width and height.
      void setFrameSize​(int width, int height)
      Initialize the sculpt region size.
      void setSculptShape​(int shape)
      Set the sculpt shape, either lines or rectangle.
      void setVolumeSculptor​(VolumeRenderer _rayBasedRender)
      Initialize the raycast based volume render with the sculptor.
      void undoSculptRegion()
      undoSculptRegion: called when the "Undo Sculpt" Button is pressed.
      • Methods inherited from class javax.swing.JPanel

        getAccessibleContext, getUI, getUIClassID, paramString, setUI, updateUI
      • Methods inherited from class javax.swing.JComponent

        addAncestorListener, addNotify, addVetoableChangeListener, computeVisibleRect, contains, createToolTip, disable, enable, firePropertyChange, firePropertyChange, firePropertyChange, fireVetoableChange, getActionForKeyStroke, getActionMap, getAlignmentX, getAlignmentY, getAncestorListeners, getAutoscrolls, getBaseline, getBaselineResizeBehavior, getBorder, getBounds, getClientProperty, getComponentGraphics, getComponentPopupMenu, getConditionForKeyStroke, getDebugGraphicsOptions, getDefaultLocale, getFontMetrics, getGraphics, getHeight, getInheritsPopupMenu, getInputMap, getInputMap, getInputVerifier, getInsets, getInsets, getListeners, getLocation, getMaximumSize, getMinimumSize, getNextFocusableComponent, getPopupLocation, getPreferredSize, getRegisteredKeyStrokes, getRootPane, getSize, getToolTipLocation, getToolTipText, getToolTipText, getTopLevelAncestor, getTransferHandler, getVerifyInputWhenFocusTarget, getVetoableChangeListeners, getVisibleRect, getWidth, getX, getY, grabFocus, hide, isDoubleBuffered, isLightweightComponent, isManagingFocus, isOpaque, isOptimizedDrawingEnabled, isPaintingForPrint, isPaintingOrigin, isPaintingTile, isRequestFocusEnabled, isValidateRoot, paint, paintBorder, paintChildren, paintComponent, paintImmediately, paintImmediately, print, printAll, printBorder, printChildren, printComponent, processComponentKeyEvent, processKeyBinding, processKeyEvent, processMouseEvent, processMouseMotionEvent, putClientProperty, registerKeyboardAction, registerKeyboardAction, removeAncestorListener, removeNotify, removeVetoableChangeListener, repaint, repaint, requestDefaultFocus, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, resetKeyboardActions, reshape, revalidate, scrollRectToVisible, setActionMap, setAlignmentX, setAlignmentY, setAutoscrolls, setBackground, setBorder, setComponentPopupMenu, setDebugGraphicsOptions, setDefaultLocale, setDoubleBuffered, setEnabled, setFocusTraversalKeys, setFont, setForeground, setInheritsPopupMenu, setInputMap, setInputVerifier, setMaximumSize, setMinimumSize, setNextFocusableComponent, setOpaque, setPreferredSize, setRequestFocusEnabled, setToolTipText, setTransferHandler, setUI, setVerifyInputWhenFocusTarget, unregisterKeyboardAction, update
      • Methods inherited from class java.awt.Container

        add, add, add, add, add, addContainerListener, addImpl, addPropertyChangeListener, addPropertyChangeListener, applyComponentOrientation, areFocusTraversalKeysSet, countComponents, deliverEvent, doLayout, findComponentAt, findComponentAt, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getComponentZOrder, getContainerListeners, getFocusTraversalKeys, getFocusTraversalPolicy, getLayout, getMousePosition, insets, invalidate, isAncestorOf, isFocusCycleRoot, isFocusCycleRoot, isFocusTraversalPolicyProvider, isFocusTraversalPolicySet, layout, list, list, locate, minimumSize, paintComponents, preferredSize, printComponents, processContainerEvent, processEvent, remove, remove, removeAll, removeContainerListener, setComponentZOrder, setFocusCycleRoot, setFocusTraversalPolicy, setFocusTraversalPolicyProvider, setLayout, transferFocusDownCycle, validate, validateTree
      • Methods inherited from class java.awt.Component

        action, add, addComponentListener, addFocusListener, addHierarchyBoundsListener, addHierarchyListener, addInputMethodListener, addKeyListener, addMouseListener, addMouseMotionListener, addMouseWheelListener, bounds, checkImage, checkImage, coalesceEvents, contains, createImage, createImage, createVolatileImage, createVolatileImage, disableEvents, dispatchEvent, enable, enableEvents, enableInputMethods, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, getBackground, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusCycleRootAncestor, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getForeground, getGraphicsConfiguration, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputContext, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getLocale, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMousePosition, getMouseWheelListeners, getName, getParent, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getToolkit, getTreeLock, gotFocus, handleEvent, hasFocus, imageUpdate, inside, isBackgroundSet, isCursorSet, isDisplayable, isEnabled, isFocusable, isFocusOwner, isFocusTraversable, isFontSet, isForegroundSet, isLightweight, isMaximumSizeSet, isMinimumSizeSet, isPreferredSizeSet, isShowing, isValid, isVisible, keyDown, keyUp, list, list, list, location, lostFocus, mouseDown, mouseDrag, mouseEnter, mouseExit, mouseMove, mouseUp, move, nextFocus, paintAll, postEvent, prepareImage, prepareImage, processComponentEvent, processFocusEvent, processHierarchyBoundsEvent, processHierarchyEvent, processInputMethodEvent, processMouseWheelEvent, remove, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, removePropertyChangeListener, removePropertyChangeListener, repaint, repaint, repaint, requestFocus, requestFocus, requestFocusInWindow, resize, resize, setBounds, setBounds, setComponentOrientation, setCursor, setDropTarget, setFocusable, setFocusTraversalKeysEnabled, setIgnoreRepaint, setLocale, setLocation, setLocation, setMixingCutoutShape, setName, setSize, setSize, show, show, size, toString, transferFocus, transferFocusBackward, transferFocusUpCycle
      • Methods inherited from class java.lang.Object

        clone, equals, getClass, hashCode, notify, notifyAll, wait, wait, wait
      • Methods inherited from interface java.awt.event.FocusListener

        focusGained, focusLost
      • Methods inherited from interface java.awt.event.ItemListener

        itemStateChanged
      • Methods inherited from interface java.awt.event.KeyListener

        keyPressed, keyReleased, keyTyped
    • Field Detail

      • serialVersionUID

        private static final long serialVersionUID
        Use serialVersionUID for interoperability.
        See Also:
        Constant Field Values
      • m_iSculptHeight

        int m_iSculptHeight
        DOCUMENT ME!
      • m_iSculptWidth

        int m_iSculptWidth
        Window information for Sculpting:.
      • lineButton

        private javax.swing.JToggleButton lineButton
        Line shape button.
      • m_kApplySculptButton

        private javax.swing.JButton m_kApplySculptButton
        Button to apply sculpt region to the volume.
      • m_kClearDrawOutlineButton

        private javax.swing.JButton m_kClearDrawOutlineButton
        Button for clearing the sculpt region.
      • m_kDrawOutlineButton

        private javax.swing.JToggleButton m_kDrawOutlineButton
        Toggle button is down while the mouse is used to draw the sculpt outline.
      • m_kInvertOutlineButton

        private javax.swing.JButton m_kInvertOutlineButton
        Button for inverting the sculpt region.
      • m_kSaveSculptButton

        private javax.swing.JButton m_kSaveSculptButton
        Button to save the sculpt image.
      • m_kTextureSculptor

        private TextureSculptor m_kTextureSculptor
        DOCUMENT ME!
      • m_kUndoSculptButton

        private javax.swing.JButton m_kUndoSculptButton
        Button to undo the sculpt and restor the original volume.
      • m_kVolumeSculptor

        private VolumeSculptor m_kVolumeSculptor
        Sculptor object enables, draws and sculpts the volume based on the outline region drawn on screen. Handles drawing the sculpt region.
      • mainPanel

        private javax.swing.JPanel mainPanel
        Control panel for volume sculpting.
      • rectButton

        private javax.swing.JToggleButton rectButton
        Rectangle shape button.
      • scroller

        private javax.swing.JScrollPane scroller
        The scroll pane holding the panel content. Useful when the screen is small.
      • surRender

        private SurfaceRender surRender
        SurfaceRender reference.
    • Constructor Detail

      • JPanelSculptor

        public JPanelSculptor​(RenderViewBase parent)
        Contructor. Called from the surface render to create the sculptor control panel.
        Parameters:
        parent - surface render
    • Method Detail

      • actionPerformed

        public void actionPerformed​(java.awt.event.ActionEvent e)
        Command processor to handle the geodesic button events.
        Specified by:
        actionPerformed in interface java.awt.event.ActionListener
        Specified by:
        actionPerformed in class JPanelRendererBase
        Parameters:
        e - ActionEvent
      • applySculptRegion

        public void applySculptRegion()
        Cull the sculpt region through the 3D volume.
      • clearSculptRegion

        public void clearSculptRegion()
        clearwSculptRegion: called when the "Clear Outline" Button is pressed.
      • disposeLocal

        public void disposeLocal​(boolean flag)
        Sets all variables to null, disposes, and garbage collects.
        Parameters:
        flag - dispose super or not, not used now.
      • drawSculptRegion

        public void drawSculptRegion()
        drawSculptRegion: called when the "Draw Sculpt Outline" Button is pressed.
      • getMainPanel

        public javax.swing.JPanel getMainPanel()
        Get the main control panel.
        Specified by:
        getMainPanel in class JPanelRendererBase
        Returns:
        mainPanel main control panel
      • init

        public void init()
        Initialize the buttons layout.
      • invertSculptRegion

        public void invertSculptRegion()
        clearwSculptRegion: called when the "Clear Outline" Button is pressed.
      • resizePanel

        public void resizePanel​(int panelWidth,
                                int frameHeight)
        Resizig the control panel with ViewJFrameVolumeView's frame width and height.
        Overrides:
        resizePanel in class JPanelRendererBase
        Parameters:
        panelWidth - panel width
        frameHeight - panel height
      • setFrameSize

        public void setFrameSize​(int width,
                                 int height)
        Initialize the sculpt region size. ViewJFrameVolumeView call this method to init the region.
        Parameters:
        width - region width
        height - region height
      • setSculptShape

        public void setSculptShape​(int shape)
        Set the sculpt shape, either lines or rectangle.
        Parameters:
        shape - shape number, 0 for lines, 1 for rectangle.
      • setVolumeSculptor

        public void setVolumeSculptor​(VolumeRenderer _rayBasedRender)
        Initialize the raycast based volume render with the sculptor.
        Parameters:
        _rayBasedRender - VolumeRenderer
      • undoSculptRegion

        public void undoSculptRegion()
        undoSculptRegion: called when the "Undo Sculpt" Button is pressed.
      • finalize

        protected void finalize()
                         throws java.lang.Throwable
        Calls disposeLocal.
        Overrides:
        finalize in class JPanelRendererBase
        Throws:
        java.lang.Throwable - DOCUMENT ME!