Class LogoDemoView
- All Implemented Interfaces:
edu.cnu.mdi.feedback.IFeedbackProvider,edu.cnu.mdi.sim.ISimulationHost,edu.cnu.mdi.sim.SimulationListener,edu.cnu.mdi.transfer.IFileDropHandler,ActionListener,ComponentListener,FocusListener,MouseListener,ImageObserver,MenuContainer,Serializable,EventListener,Accessible,RootPaneContainer,WindowConstants
The logo itself is three overlapping rectangular "window" panes — this
view recreates that motif directly in 3D as three lit Quad3D
panels, arranged like stacked cards and rotated as a rigid group. As the
group turns, each panel's diffuse and specular shading sweeps visibly,
which is exactly what a flat, unlit scene cannot show — this view exists
primarily to exercise the Phong lighting path added to Quad3D (and,
via the same mechanism, Sphere, Cube, and Cylinder).
Architecturally this is the simplest possible SimulationView3D: the
simulation thread has no numerical model to integrate, so LogoSimulation.step does nothing but advance an animation angle at a
self-paced rate. All scene mutation happens in onSimulationRefresh(edu.cnu.mdi.sim.SimulationContext),
on the EDT, exactly like the Aizawa and Kinetics demos. The view uses that
angle to rotate about a slowly precessing axis, giving the lit pane normals
a much richer set of orientations than a simple turntable spin.
- See Also:
-
Nested Class Summary
Nested classes/interfaces inherited from class edu.cnu.mdi.mdi3D.view3D.SimulationView3D
SimulationView3D.ControlPanelFactory, SimulationView3D.DiagnosticFactoryNested classes/interfaces inherited from class javax.swing.JInternalFrame
JInternalFrame.AccessibleJInternalFrame, JInternalFrame.JDesktopIconNested classes/interfaces inherited from class javax.swing.JComponent
JComponent.AccessibleJComponentNested classes/interfaces inherited from class java.awt.Container
Container.AccessibleAWTContainerNested classes/interfaces inherited from class java.awt.Component
Component.AccessibleAWTComponent, Component.BaselineResizeBehavior, Component.BltBufferStrategy, Component.FlipBufferStrategy -
Field Summary
Fields inherited from class edu.cnu.mdi.mdi3D.view3D.SimulationView3D
controlPanel, diagnostics, diagnosticsSplitPane, engineFields inherited from class edu.cnu.mdi.mdi3D.view3D.PlainView3D
_panel3DFields inherited from class edu.cnu.mdi.view.BaseView
container, desktop, infoDialog, properties, scrollPane, statusWP, viewPopupMenu, VIEWPROPNAME, virtualItemFields inherited from class javax.swing.JInternalFrame
closable, CONTENT_PANE_PROPERTY, desktopIcon, FRAME_ICON_PROPERTY, frameIcon, GLASS_PANE_PROPERTY, iconable, IS_CLOSED_PROPERTY, IS_ICON_PROPERTY, IS_MAXIMUM_PROPERTY, IS_SELECTED_PROPERTY, isClosed, isIcon, isMaximum, isSelected, LAYERED_PANE_PROPERTY, maximizable, MENU_BAR_PROPERTY, resizable, ROOT_PANE_PROPERTY, rootPane, rootPaneCheckingEnabled, title, TITLE_PROPERTYFields inherited from class javax.swing.JComponent
listenerList, TOOL_TIP_TEXT_KEY, ui, UNDEFINED_CONDITION, WHEN_ANCESTOR_OF_FOCUSED_COMPONENT, WHEN_FOCUSED, WHEN_IN_FOCUSED_WINDOWFields inherited from class java.awt.Component
accessibleContext, BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENTFields inherited from interface java.awt.image.ImageObserver
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTHFields inherited from interface javax.swing.WindowConstants
DISPOSE_ON_CLOSE, DO_NOTHING_ON_CLOSE, EXIT_ON_CLOSE, HIDE_ON_CLOSE -
Constructor Summary
ConstructorsConstructorDescriptionConstruct the logo demo view using its canonical default properties.LogoDemoView(Object... keyVals) Legacy compatibility constructor using alternating key/value pairs.LogoDemoView(Properties props) Construct the logo demo view using the supplied properties. -
Method Summary
Modifier and TypeMethodDescriptionstatic LogoDemoViewCompatibility factory method to create the demo view with its standard title and layout.static edu.cnu.mdi.view.ViewConfiguration<LogoDemoView> Get the lazy-creation configuration for this view.Get the simulation instance with the correct type.edu.cnu.mdi.view.AbstractViewInfoprotected Panel3Dmake3DPanel(float angleX, float angleY, float angleZ, float xDist, float yDist, float zDist) Create the 3D panel for this view.protected voidonSimulationRefresh(edu.cnu.mdi.sim.SimulationContext ctx) Called on every engine refresh request, immediately before this class repaints or refreshes the 3D panel in response.Methods inherited from class edu.cnu.mdi.mdi3D.view3D.SimulationView3D
getDiagnosticsComponent, getSimulationEngine, onCancelRequested, onDone, onFail, onInit, onMessage, onPause, onProgress, onReady, onRefresh, onResume, onRun, onSimulationCancelRequested, onSimulationDone, onSimulationFail, onSimulationInit, onSimulationMessage, onSimulationPause, onSimulationProgress, onSimulationReady, onSimulationResume, onSimulationRun, onSimulationStateChange, onStateChange, replaceEngine, requestEngineReset, startAndRunMethods inherited from class edu.cnu.mdi.mdi3D.view3D.PlainView3D
actionPerformed, addMenus, componentMoved, componentResized, componentShown, focusGained, getImageComponent, refresh, request3DRefresh, resolveContainerMethods inherited from class edu.cnu.mdi.view.BaseView
addWestPanel, applyFocusFix, center, checkBooleanProperty, componentHidden, enableFileDrop, enableFileDrop, filesDropped, focusLost, getAnnotationLayer, getCenterComponent, getConfigurationProperties, getConnectionLayer, getDefaultLayer, getFeedbackStrings, getFileFilter, getIContainer, getInfoButton, getInsets, getIntProperty, getName, getParentFrame, getProperties, getPropertyName, getScrollPane, getSpecialClip, getToolBar, getViewPopupMenu, getVirtualItem, handleMagnify, hoverClosed, hoverUpdate, initFeedback, initFeedback, isOnTop, isScrollable, isViewVisible, mouseClicked, mouseEntered, mouseExited, mousePressed, mouseReleased, offset, onFirstRealize, prepareForExit, rightClicked, setAfterDraw, setBeforeDraw, setBooleanProperty, setFileFilter, setFromProperties, setIntProperty, setVirtualItem, viewInfoMethods inherited from class javax.swing.JInternalFrame
addImpl, addInternalFrameListener, createRootPane, dispose, doDefaultCloseAction, fireInternalFrameEvent, getAccessibleContext, getContentPane, getDefaultCloseOperation, getDesktopIcon, getDesktopPane, getFocusCycleRootAncestor, getFocusOwner, getFrameIcon, getGlassPane, getInternalFrameListeners, getJMenuBar, getLastCursor, getLayer, getLayeredPane, getMenuBar, getMostRecentFocusOwner, getNormalBounds, getRootPane, getTitle, getUI, getUIClassID, getWarningString, hide, isClosable, isClosed, isFocusCycleRoot, isIcon, isIconifiable, isMaximizable, isMaximum, isResizable, isRootPaneCheckingEnabled, isSelected, moveToBack, moveToFront, pack, paintComponent, paramString, remove, removeInternalFrameListener, reshape, restoreSubcomponentFocus, setClosable, setClosed, setContentPane, setCursor, setDefaultCloseOperation, setDesktopIcon, setFocusCycleRoot, setFrameIcon, setGlassPane, setIcon, setIconifiable, setJMenuBar, setLayer, setLayer, setLayeredPane, setLayout, setMaximizable, setMaximum, setMenuBar, setNormalBounds, setResizable, setRootPane, setRootPaneCheckingEnabled, setSelected, setTitle, setUI, show, toBack, toFront, updateUIMethods 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, getListeners, getLocation, getMaximumSize, getMinimumSize, getNextFocusableComponent, getPopupLocation, getPreferredSize, getRegisteredKeyStrokes, getSize, getToolTipLocation, getToolTipText, getToolTipText, getTopLevelAncestor, getTransferHandler, getVerifyInputWhenFocusTarget, getVetoableChangeListeners, getVisibleRect, getWidth, getX, getY, grabFocus, isDoubleBuffered, isLightweightComponent, isManagingFocus, isOpaque, isOptimizedDrawingEnabled, isPaintingForPrint, isPaintingOrigin, isPaintingTile, isRequestFocusEnabled, isValidateRoot, paint, paintBorder, paintChildren, 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, 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, setVisible, unregisterKeyboardAction, updateMethods inherited from class java.awt.Container
add, add, add, add, add, addContainerListener, addPropertyChangeListener, addPropertyChangeListener, applyComponentOrientation, areFocusTraversalKeysSet, countComponents, deliverEvent, doLayout, findComponentAt, findComponentAt, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getComponentZOrder, getContainerListeners, getFocusTraversalKeys, getFocusTraversalPolicy, getLayout, getMousePosition, insets, invalidate, isAncestorOf, isFocusCycleRoot, isFocusTraversalPolicyProvider, isFocusTraversalPolicySet, layout, list, list, locate, minimumSize, paintComponents, preferredSize, printComponents, processContainerEvent, processEvent, remove, removeAll, removeContainerListener, setComponentZOrder, setFocusTraversalPolicy, setFocusTraversalPolicyProvider, transferFocusDownCycle, validate, validateTreeMethods 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, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getForeground, getGraphicsConfiguration, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputContext, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getLocale, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMousePosition, getMouseWheelListeners, 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, setDropTarget, setFocusable, setFocusTraversalKeysEnabled, setIgnoreRepaint, setLocale, setLocation, setLocation, setMixingCutoutShape, setName, setSize, setSize, show, size, toString, transferFocus, transferFocusBackward, transferFocusUpCycleMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitMethods inherited from interface edu.cnu.mdi.sim.ISimulationHost
cancelSimulation, getSimulationContext, getSimulationState, pauseSimulation, resumeSimulation, runSimulation, startSimulation, stopSimulationMethods inherited from interface edu.cnu.mdi.sim.SimulationListener
onCompleted
-
Constructor Details
-
LogoDemoView
public LogoDemoView()Construct the logo demo view using its canonical default properties. -
LogoDemoView
Construct the logo demo view using the supplied properties.- Parameters:
props- the properties used to configure the view
-
LogoDemoView
Legacy compatibility constructor using alternating key/value pairs.- Parameters:
keyVals- alternating property key/value pairs
-
-
Method Details
-
getConfiguration
Get the lazy-creation configuration for this view.- Returns:
- the view configuration for lazy creation
-
getViewInfo
public edu.cnu.mdi.view.AbstractViewInfo getViewInfo()- Overrides:
getViewInfoin classedu.cnu.mdi.view.BaseView
-
make3DPanel
protected Panel3D make3DPanel(float angleX, float angleY, float angleZ, float xDist, float yDist, float zDist) Description copied from class:PlainView3DCreate the 3D panel for this view.- Specified by:
make3DPanelin classPlainView3D- Parameters:
angleX- initial x rotation angleangleY- initial y rotation angleangleZ- initial z rotation anglexDist- initial camera x offsetyDist- initial camera y offsetzDist- initial camera z offset- Returns:
- the created 3D panel
-
createLogoView
Compatibility factory method to create the demo view with its standard title and layout.- Returns:
- a new default-configured logo demo view
-
onSimulationRefresh
protected void onSimulationRefresh(edu.cnu.mdi.sim.SimulationContext ctx) Description copied from class:SimulationView3DCalled on every engine refresh request, immediately before this class repaints or refreshes the 3D panel in response.- Overrides:
onSimulationRefreshin classSimulationView3D- Parameters:
ctx- simulation context
-
getSimulation
Get the simulation instance with the correct type.- Returns:
- the logo simulation
-