Menu

Mesh_Editor_Prototype

Jordan Deyton Dasha Taylor Patterson
Attachments
MeshEditor20140220.png (81739 bytes)
MeshEditor20140306.png (117178 bytes)
MeshEditor20140313.png (109725 bytes)
NekGeoEditView.png (120594 bytes)
There is a newer version of this page. You can find it here.

This page serves as a starting point for discussion of the new prototype Editor for generating 2D meshes for Nek5000. A new Editor in NiCE will be created, and it will use jMonkeyEngine 3 to create 2D meshes.

Eclipse Views

jMonkeyEngine 3

Primary Components

Below are the primary components the user sees and/or interacts with in the jME display.

  • Player - The player is restricted to the terrain grid. When the player moves, the camera should move with the player. You can consider the player to be at the very center of the camera's frustrum.
  • Camera - Centered on and locked to the player, the camera looks down on the xz-plane. It can be zoomed in and out.
  • Cursor - The cursor is the primary interaction tool available to the user. It can be moved freely, but it should generally be visible to the camera.
  • Grid - The grid is the backdrop. You can think of it as the terrain upon which the player moves.
  • Element(s) - These are the geometric figures (quads or hexes) the user can generate and manipulate.

Notes

Player

  • Restricted to the terrain/grid area
  • Adjustable speed (e.g., by holding shift)
  • Should not interfere with other components (elements or cursor)
  • Needs keyboard/mouse controls to move around (pans the camera)
  • Should be able to reset or center the player to the origin, cursor, or element

Camera

  • Locked to the player (in the chase cam?), looking down onto the xz-plane from above
  • Needs keyboard/mouse controls for zoom (zooms the camera)
  • Should be able to reset zoom

Cursor

  • Needs to handle collisions with elements and their edges
  • Supplies context information on hover and/or click
  • Multi-select/lasso tool
  • Need to process proximity to edge of camera's frustrum (which triggers camera panning)
  • Probably should never go off screen
  • Customization
    • appearance
    • color
    • size
    • opacity

Grid

  • Base size is 512x512
  • Major/minor grid lines
  • Customization
    • units
    • frequency (in units)
    • color
    • thickness

Elements

Elements will probably require some creative use of the node/geometry methodology used in jME.

  • Click and drag inside elements to move them
  • Click and drag on/near the edges and vertices to move them
  • Can be duplicated, transformed (rotate, translate, scale), or distorted
  • Can be created from template
  • Can be created by selecting n points on the grid

Heads-Up Display (HUD)

The HUD may display some of the features below at a given time:

  • Cursor location
  • Units
  • The total number of elements
  • The number of selected elements
  • Point locations (when creating or modifying an element)
  • x and z differences from starting point when dragging (e.g., during element distortion, moving, or rotating [angle difference]).

Other

  • Import/Export of a session or configuration of elements
  • We may want snap-to-grid functionality for some actions

Open Questions

This section is for unanswered questions that need to be addressed in the prototype.

  • What is the best way to handle turning element edges into curves? We need to consider hit-testing between the cursor and the edge and how to present the change to the user, e.g., Visio-style markers that you can drag from the two end-points to alter the curve.

Want the latest updates on software, tech news, and AI?
Get latest updates about software, tech news, and AI from SourceForge directly in your inbox once a month.