SlideShare a Scribd company logo
1 of 7
Download to read offline
Drawing Splines on 3D. Java Version

             A project by

         Rodolfo Cartas Ayala
       rodolfocartas@gmail.com


             Submitted to

         Dr. Raffaele de Amicis



            January 8, 2007
User’s Manual

Execution
On Windows and Mac OS X double click the provided jar file. To launch from
console, type

       java –jar curve2.jar

The application requires Java 1.5 and Java 3D 1.31 installed. It also requires the
colorchooser.jar and parallel_camera_parameters.jar files mapped in the system’s
classpath. Both files are included in the distribution.

The Toolbar
              Navigation/                               Parallel
              Selection         Copy           Cut      Perspective




                       Draw           Delete         Join     Drawing
                                                              Plane
Navigation/Selection Button
When this mode is active, clicking on a curve will select it allowing further
modifications. Clicking on the canvas allows you to navigate the scene. Rotation,
zooming, and translation are done pressing different mouse buttons.



              Left clicking rotates the scene.

              Rotating the mouse wheel zooms in and out.

              Right clicking translates the scene.

Draw Button
To draw, simply turn on this mode and click on the canvas. To finish drawing a
curve, double click at the termination point. The curve properties can be changed
using the properties panel.
Multiple selections can be done pressing the SHIFT key and clicking on each
curve.

Copy Button
In this mode a copy of a curve is creating when clicking on it.

Delete Button
In this mode a curve is deleted from the scene when clicked.

Cut Button
A curve can be cut clicking on two points belonging to it. The clicked point will be
shown.

Join Button
To join two curves with a hermite curve, click on the start and end of the curves to
join.

Parallel Perspective
When clicked the canvas will show the scene using parallel perspective.

Drawing plane
When active and in drawing mode, this will show a plane where curves are drawn.
The drawing plane can be modified using the following keys:

       T      Shows a perpendicular plane to the current one.
       =      Rotates the plane left.
       -      Rotates the plane right.

The Properties Panel
     Curve Type
       Thickness
          Color

Curve Type
Five types of curves are provided: Hermite Spline, Four Point Spline, Bezier Spline,
Cubic B-Spline, and Cardinal Hermite Spline. The first two require four points to be
drawn. The rest can be drawn with at least two points and up to twenty points.

Thickness
Selects the thickness of the curve.

Color
Select the color of a curve.
Modifying Curves
Changing properties
To change the properties of a curve just select it and then use the properties panel
to change type, thickness, or color.

Translating
To rotate a curve first, select it and then right click on it. A contextual menu
appears, click on the translate option. A green bounding box appears. To translate,
keep pressed the mouse’s right button over the box and move it.




Rotating
To rotate a curve first, select it and then right click on it. A contextual menu
appears, click on the rotate option. A blue bounding box appears. To rotate, keep
pressed the mouse’s left button over the box and move it.
Scaling
To rotate a curve first, select it and then right click on it. A contextual menu
appears, click on the translate option. A dialog appears, enter the scaling factor and
click ok.


Grouping
To group a set of curve, multiple select them and then go to Selection>Grouping.
When clicking on any of the curve a white box containing the curves will appear.
Translation, Rotation, and Scaling can be applied to the group. To ungroup, select
the group, and then go to Selection>Ungroup.


Saving and opening scenes
Use the Open and Save options of the File Menu to save the scene to a file. Files are
written in XML.
System Model

Main Classes
The following class diagram shows the core classes in the system. User input and
scene graph management.




      DrawingFrame: A Swing component used to capture the mouse wheel
      events.
      CurvesCanvas: Class inheriting from Canvas3D. This class manages the
      scene graph.
      Control: This class bridges widget events to the drawing subsystem through
      the Canvas.
      DrawingBehavior: Processes events to draw curves. It then creates
      CurveGroups that contain a Spline, the generalization of a Curve. This
      CurveGroups are added to the scene graph.
Spline Subsystem




The Spline abstract class implements functionality to manage geometries and
callbacks       to      the      Behavior       Subsystem        through       the
GraphicalSelectableObjectInterface. All classes inheriting from Spline must
implement the calculation of points and other special functions such as cutting or
derivative calculation.

The CurveGroup inherits from BranchGroup and is used to store a Spline and
behaviors that modify the Spline appeareance.


Behavior Subsystem




CurvesPickBehavior accepts mouse events and picks the objects clicked.
CurveClickerBehavior stores the last object clicked.
DrawingBehavior gets the mouse event and creates Splines.
JoinBehavior and CutBehavior use the object stores by their parent to implement
curve joining and cutting.
KeyboardBehavior process key presses to modify the drawing plane.
ModeConstants is used to store constants for DrawingBehavior.

More Related Content

What's hot

Rhino 3D Primer
Rhino 3D PrimerRhino 3D Primer
Rhino 3D Primer
NYCCTfab
 
Duspviz Rhino Tutorial
Duspviz Rhino TutorialDuspviz Rhino Tutorial
Duspviz Rhino Tutorial
DUSPviz
 
Roland Primer 3D Scanner
Roland Primer 3D ScannerRoland Primer 3D Scanner
Roland Primer 3D Scanner
NYCCTfab
 
Skills Development Notes in Photoshop
Skills Development Notes in PhotoshopSkills Development Notes in Photoshop
Skills Development Notes in Photoshop
idlemindz
 
Skills developmetn photoshop
Skills developmetn photoshopSkills developmetn photoshop
Skills developmetn photoshop
idlemindz
 

What's hot (19)

Flash Tutorial
Flash TutorialFlash Tutorial
Flash Tutorial
 
Catia Part07
Catia Part07Catia Part07
Catia Part07
 
Maya
MayaMaya
Maya
 
DUSPviz Rhino 3D Workshop
DUSPviz Rhino 3D WorkshopDUSPviz Rhino 3D Workshop
DUSPviz Rhino 3D Workshop
 
Rhino 3D Primer
Rhino 3D PrimerRhino 3D Primer
Rhino 3D Primer
 
Google sketch up
Google sketch upGoogle sketch up
Google sketch up
 
Duspviz Rhino Tutorial
Duspviz Rhino TutorialDuspviz Rhino Tutorial
Duspviz Rhino Tutorial
 
3 d adobe illustrator
3 d adobe illustrator3 d adobe illustrator
3 d adobe illustrator
 
Using The Toolbox
Using The ToolboxUsing The Toolbox
Using The Toolbox
 
Roland Primer 3D Scanner
Roland Primer 3D ScannerRoland Primer 3D Scanner
Roland Primer 3D Scanner
 
Laser Cutting: Advanced Joinery
Laser Cutting: Advanced JoineryLaser Cutting: Advanced Joinery
Laser Cutting: Advanced Joinery
 
Skills Development Notes in Photoshop
Skills Development Notes in PhotoshopSkills Development Notes in Photoshop
Skills Development Notes in Photoshop
 
Skills developmetn photoshop
Skills developmetn photoshopSkills developmetn photoshop
Skills developmetn photoshop
 
Photoshop dimensional looking sphere
Photoshop dimensional looking spherePhotoshop dimensional looking sphere
Photoshop dimensional looking sphere
 
Illustrator's basic shapes part 1
Illustrator's basic shapes part 1Illustrator's basic shapes part 1
Illustrator's basic shapes part 1
 
88 brilliant little tips for Photoshop
88 brilliant little tips for Photoshop88 brilliant little tips for Photoshop
88 brilliant little tips for Photoshop
 
Lesson 3 motion tween
Lesson 3 motion tweenLesson 3 motion tween
Lesson 3 motion tween
 
Illustrator's basic shapes part 2 & combining shapes
Illustrator's basic shapes part 2 & combining shapesIllustrator's basic shapes part 2 & combining shapes
Illustrator's basic shapes part 2 & combining shapes
 
Pop Art Technique
Pop Art TechniquePop Art Technique
Pop Art Technique
 

Viewers also liked (6)

Using the Mouse
Using the MouseUsing the Mouse
Using the Mouse
 
El mouse
El mouseEl mouse
El mouse
 
Mouse
MouseMouse
Mouse
 
Computer mouse.pptx
Computer mouse.pptxComputer mouse.pptx
Computer mouse.pptx
 
COMPUTER MEMORY : TYPES & FUNCTIONS
COMPUTER MEMORY : TYPES & FUNCTIONSCOMPUTER MEMORY : TYPES & FUNCTIONS
COMPUTER MEMORY : TYPES & FUNCTIONS
 
Mouse
MouseMouse
Mouse
 

Similar to Drawing Splines on 3D

Google sketchup8
Google sketchup8Google sketchup8
Google sketchup8
Trianz King
 
Resizing images
Resizing imagesResizing images
Resizing images
Dean Kiley
 
Finding modes of_a_cantilever_beam_in_nx7
Finding modes of_a_cantilever_beam_in_nx7Finding modes of_a_cantilever_beam_in_nx7
Finding modes of_a_cantilever_beam_in_nx7
Laura Bendula
 
Paths, Masks And Blend Modes
Paths, Masks And Blend ModesPaths, Masks And Blend Modes
Paths, Masks And Blend Modes
Shan
 

Similar to Drawing Splines on 3D (20)

Maya
MayaMaya
Maya
 
3Dimention_lessonA_introMayaModeling.pptx
3Dimention_lessonA_introMayaModeling.pptx3Dimention_lessonA_introMayaModeling.pptx
3Dimention_lessonA_introMayaModeling.pptx
 
Google sketchup8
Google sketchup8Google sketchup8
Google sketchup8
 
Geometers Sketchpad Helpful Hints
Geometers Sketchpad Helpful HintsGeometers Sketchpad Helpful Hints
Geometers Sketchpad Helpful Hints
 
Tutorial
TutorialTutorial
Tutorial
 
Design tools 2
Design tools 2Design tools 2
Design tools 2
 
Poser presentation1
Poser presentation1Poser presentation1
Poser presentation1
 
Cinema 4D R20 ESSENTIALS
Cinema 4D R20 ESSENTIALSCinema 4D R20 ESSENTIALS
Cinema 4D R20 ESSENTIALS
 
Resizing images
Resizing imagesResizing images
Resizing images
 
how to use design by software.pptx
how to use design by software.pptxhow to use design by software.pptx
how to use design by software.pptx
 
Introduction- The Basics of Photoshop CS6
Introduction- The Basics of Photoshop CS6Introduction- The Basics of Photoshop CS6
Introduction- The Basics of Photoshop CS6
 
Finding modes of_a_cantilever_beam_in_nx7
Finding modes of_a_cantilever_beam_in_nx7Finding modes of_a_cantilever_beam_in_nx7
Finding modes of_a_cantilever_beam_in_nx7
 
Photoshop basics
Photoshop basicsPhotoshop basics
Photoshop basics
 
ETECH_WEEK7-Image-Manipulation-Techniques-1.pdf
ETECH_WEEK7-Image-Manipulation-Techniques-1.pdfETECH_WEEK7-Image-Manipulation-Techniques-1.pdf
ETECH_WEEK7-Image-Manipulation-Techniques-1.pdf
 
Paths, Masks And Blend Modes
Paths, Masks And Blend ModesPaths, Masks And Blend Modes
Paths, Masks And Blend Modes
 
PIVOT ANIMATOR - USER GUIDE - VIDEO EDITING AND MAKING SOFTWARE
PIVOT ANIMATOR - USER GUIDE - VIDEO EDITING AND MAKING SOFTWARE PIVOT ANIMATOR - USER GUIDE - VIDEO EDITING AND MAKING SOFTWARE
PIVOT ANIMATOR - USER GUIDE - VIDEO EDITING AND MAKING SOFTWARE
 
Working with google sketch up
Working with google sketch upWorking with google sketch up
Working with google sketch up
 
Photoshop tools
Photoshop toolsPhotoshop tools
Photoshop tools
 
Inkscape Beginner Tutorial: How to Make a Yoga Class Flyer
Inkscape Beginner Tutorial: How to Make a Yoga Class FlyerInkscape Beginner Tutorial: How to Make a Yoga Class Flyer
Inkscape Beginner Tutorial: How to Make a Yoga Class Flyer
 
Chap39
Chap39Chap39
Chap39
 

More from graphitech

A graphic library and an application for simple curve manipolation
A graphic library and an application for simple curve manipolationA graphic library and an application for simple curve manipolation
A graphic library and an application for simple curve manipolation
graphitech
 

More from graphitech (20)

A graphic library and an application for simple curve manipolation
A graphic library and an application for simple curve manipolationA graphic library and an application for simple curve manipolation
A graphic library and an application for simple curve manipolation
 
A graphic library and an application for simple curve manipolation
A graphic library and an application for simple curve manipolationA graphic library and an application for simple curve manipolation
A graphic library and an application for simple curve manipolation
 
A graphic library and an application for simple curve manipolation
A graphic library and an application for simple curve manipolationA graphic library and an application for simple curve manipolation
A graphic library and an application for simple curve manipolation
 
A graphic library and an application for simple curve manipolation
A graphic library and an application for simple curve manipolationA graphic library and an application for simple curve manipolation
A graphic library and an application for simple curve manipolation
 
Rescue Mission
Rescue MissionRescue Mission
Rescue Mission
 
Rescue Mission
Rescue MissionRescue Mission
Rescue Mission
 
Mashup - Sustainability
Mashup - SustainabilityMashup - Sustainability
Mashup - Sustainability
 
Mashup - Sustainability
Mashup - SustainabilityMashup - Sustainability
Mashup - Sustainability
 
Multiple Screens
Multiple ScreensMultiple Screens
Multiple Screens
 
Multiple Screens
Multiple ScreensMultiple Screens
Multiple Screens
 
Graph Matching
Graph MatchingGraph Matching
Graph Matching
 
Shape Analysis
Shape AnalysisShape Analysis
Shape Analysis
 
Human Interaction Library
Human Interaction LibraryHuman Interaction Library
Human Interaction Library
 
Human Interaction Library
Human Interaction LibraryHuman Interaction Library
Human Interaction Library
 
WebCams Mapping on Nasa World Wind
WebCams Mapping on Nasa World WindWebCams Mapping on Nasa World Wind
WebCams Mapping on Nasa World Wind
 
Street Builder
Street BuilderStreet Builder
Street Builder
 
Street Builder
Street BuilderStreet Builder
Street Builder
 
Live Video in World Wind
Live Video in World WindLive Video in World Wind
Live Video in World Wind
 
Live Video in World Wind
Live Video in World WindLive Video in World Wind
Live Video in World Wind
 
Terrain Modification
Terrain ModificationTerrain Modification
Terrain Modification
 

Recently uploaded

The basics of sentences session 3pptx.pptx
The basics of sentences session 3pptx.pptxThe basics of sentences session 3pptx.pptx
The basics of sentences session 3pptx.pptx
heathfieldcps1
 
Call Girls in Uttam Nagar (delhi) call me [🔝9953056974🔝] escort service 24X7
Call Girls in  Uttam Nagar (delhi) call me [🔝9953056974🔝] escort service 24X7Call Girls in  Uttam Nagar (delhi) call me [🔝9953056974🔝] escort service 24X7
Call Girls in Uttam Nagar (delhi) call me [🔝9953056974🔝] escort service 24X7
9953056974 Low Rate Call Girls In Saket, Delhi NCR
 
Spellings Wk 4 and Wk 5 for Grade 4 at CAPS
Spellings Wk 4 and Wk 5 for Grade 4 at CAPSSpellings Wk 4 and Wk 5 for Grade 4 at CAPS
Spellings Wk 4 and Wk 5 for Grade 4 at CAPS
AnaAcapella
 

Recently uploaded (20)

Basic Intentional Injuries Health Education
Basic Intentional Injuries Health EducationBasic Intentional Injuries Health Education
Basic Intentional Injuries Health Education
 
The basics of sentences session 3pptx.pptx
The basics of sentences session 3pptx.pptxThe basics of sentences session 3pptx.pptx
The basics of sentences session 3pptx.pptx
 
Unit 3 Emotional Intelligence and Spiritual Intelligence.pdf
Unit 3 Emotional Intelligence and Spiritual Intelligence.pdfUnit 3 Emotional Intelligence and Spiritual Intelligence.pdf
Unit 3 Emotional Intelligence and Spiritual Intelligence.pdf
 
Beyond_Borders_Understanding_Anime_and_Manga_Fandom_A_Comprehensive_Audience_...
Beyond_Borders_Understanding_Anime_and_Manga_Fandom_A_Comprehensive_Audience_...Beyond_Borders_Understanding_Anime_and_Manga_Fandom_A_Comprehensive_Audience_...
Beyond_Borders_Understanding_Anime_and_Manga_Fandom_A_Comprehensive_Audience_...
 
How to Manage Call for Tendor in Odoo 17
How to Manage Call for Tendor in Odoo 17How to Manage Call for Tendor in Odoo 17
How to Manage Call for Tendor in Odoo 17
 
SOC 101 Demonstration of Learning Presentation
SOC 101 Demonstration of Learning PresentationSOC 101 Demonstration of Learning Presentation
SOC 101 Demonstration of Learning Presentation
 
HMCS Vancouver Pre-Deployment Brief - May 2024 (Web Version).pptx
HMCS Vancouver Pre-Deployment Brief - May 2024 (Web Version).pptxHMCS Vancouver Pre-Deployment Brief - May 2024 (Web Version).pptx
HMCS Vancouver Pre-Deployment Brief - May 2024 (Web Version).pptx
 
On_Translating_a_Tamil_Poem_by_A_K_Ramanujan.pptx
On_Translating_a_Tamil_Poem_by_A_K_Ramanujan.pptxOn_Translating_a_Tamil_Poem_by_A_K_Ramanujan.pptx
On_Translating_a_Tamil_Poem_by_A_K_Ramanujan.pptx
 
COMMUNICATING NEGATIVE NEWS - APPROACHES .pptx
COMMUNICATING NEGATIVE NEWS - APPROACHES .pptxCOMMUNICATING NEGATIVE NEWS - APPROACHES .pptx
COMMUNICATING NEGATIVE NEWS - APPROACHES .pptx
 
dusjagr & nano talk on open tools for agriculture research and learning
dusjagr & nano talk on open tools for agriculture research and learningdusjagr & nano talk on open tools for agriculture research and learning
dusjagr & nano talk on open tools for agriculture research and learning
 
Call Girls in Uttam Nagar (delhi) call me [🔝9953056974🔝] escort service 24X7
Call Girls in  Uttam Nagar (delhi) call me [🔝9953056974🔝] escort service 24X7Call Girls in  Uttam Nagar (delhi) call me [🔝9953056974🔝] escort service 24X7
Call Girls in Uttam Nagar (delhi) call me [🔝9953056974🔝] escort service 24X7
 
Simple, Complex, and Compound Sentences Exercises.pdf
Simple, Complex, and Compound Sentences Exercises.pdfSimple, Complex, and Compound Sentences Exercises.pdf
Simple, Complex, and Compound Sentences Exercises.pdf
 
HMCS Max Bernays Pre-Deployment Brief (May 2024).pptx
HMCS Max Bernays Pre-Deployment Brief (May 2024).pptxHMCS Max Bernays Pre-Deployment Brief (May 2024).pptx
HMCS Max Bernays Pre-Deployment Brief (May 2024).pptx
 
80 ĐỀ THI THỬ TUYỂN SINH TIẾNG ANH VÀO 10 SỞ GD – ĐT THÀNH PHỐ HỒ CHÍ MINH NĂ...
80 ĐỀ THI THỬ TUYỂN SINH TIẾNG ANH VÀO 10 SỞ GD – ĐT THÀNH PHỐ HỒ CHÍ MINH NĂ...80 ĐỀ THI THỬ TUYỂN SINH TIẾNG ANH VÀO 10 SỞ GD – ĐT THÀNH PHỐ HỒ CHÍ MINH NĂ...
80 ĐỀ THI THỬ TUYỂN SINH TIẾNG ANH VÀO 10 SỞ GD – ĐT THÀNH PHỐ HỒ CHÍ MINH NĂ...
 
REMIFENTANIL: An Ultra short acting opioid.pptx
REMIFENTANIL: An Ultra short acting opioid.pptxREMIFENTANIL: An Ultra short acting opioid.pptx
REMIFENTANIL: An Ultra short acting opioid.pptx
 
Understanding Accommodations and Modifications
Understanding  Accommodations and ModificationsUnderstanding  Accommodations and Modifications
Understanding Accommodations and Modifications
 
Spellings Wk 4 and Wk 5 for Grade 4 at CAPS
Spellings Wk 4 and Wk 5 for Grade 4 at CAPSSpellings Wk 4 and Wk 5 for Grade 4 at CAPS
Spellings Wk 4 and Wk 5 for Grade 4 at CAPS
 
How to Add New Custom Addons Path in Odoo 17
How to Add New Custom Addons Path in Odoo 17How to Add New Custom Addons Path in Odoo 17
How to Add New Custom Addons Path in Odoo 17
 
Interdisciplinary_Insights_Data_Collection_Methods.pptx
Interdisciplinary_Insights_Data_Collection_Methods.pptxInterdisciplinary_Insights_Data_Collection_Methods.pptx
Interdisciplinary_Insights_Data_Collection_Methods.pptx
 
TỔNG ÔN TẬP THI VÀO LỚP 10 MÔN TIẾNG ANH NĂM HỌC 2023 - 2024 CÓ ĐÁP ÁN (NGỮ Â...
TỔNG ÔN TẬP THI VÀO LỚP 10 MÔN TIẾNG ANH NĂM HỌC 2023 - 2024 CÓ ĐÁP ÁN (NGỮ Â...TỔNG ÔN TẬP THI VÀO LỚP 10 MÔN TIẾNG ANH NĂM HỌC 2023 - 2024 CÓ ĐÁP ÁN (NGỮ Â...
TỔNG ÔN TẬP THI VÀO LỚP 10 MÔN TIẾNG ANH NĂM HỌC 2023 - 2024 CÓ ĐÁP ÁN (NGỮ Â...
 

Drawing Splines on 3D

  • 1. Drawing Splines on 3D. Java Version A project by Rodolfo Cartas Ayala rodolfocartas@gmail.com Submitted to Dr. Raffaele de Amicis January 8, 2007
  • 2. User’s Manual Execution On Windows and Mac OS X double click the provided jar file. To launch from console, type java –jar curve2.jar The application requires Java 1.5 and Java 3D 1.31 installed. It also requires the colorchooser.jar and parallel_camera_parameters.jar files mapped in the system’s classpath. Both files are included in the distribution. The Toolbar Navigation/ Parallel Selection Copy Cut Perspective Draw Delete Join Drawing Plane Navigation/Selection Button When this mode is active, clicking on a curve will select it allowing further modifications. Clicking on the canvas allows you to navigate the scene. Rotation, zooming, and translation are done pressing different mouse buttons. Left clicking rotates the scene. Rotating the mouse wheel zooms in and out. Right clicking translates the scene. Draw Button To draw, simply turn on this mode and click on the canvas. To finish drawing a curve, double click at the termination point. The curve properties can be changed using the properties panel.
  • 3. Multiple selections can be done pressing the SHIFT key and clicking on each curve. Copy Button In this mode a copy of a curve is creating when clicking on it. Delete Button In this mode a curve is deleted from the scene when clicked. Cut Button A curve can be cut clicking on two points belonging to it. The clicked point will be shown. Join Button To join two curves with a hermite curve, click on the start and end of the curves to join. Parallel Perspective When clicked the canvas will show the scene using parallel perspective. Drawing plane When active and in drawing mode, this will show a plane where curves are drawn. The drawing plane can be modified using the following keys: T Shows a perpendicular plane to the current one. = Rotates the plane left. - Rotates the plane right. The Properties Panel Curve Type Thickness Color Curve Type Five types of curves are provided: Hermite Spline, Four Point Spline, Bezier Spline, Cubic B-Spline, and Cardinal Hermite Spline. The first two require four points to be drawn. The rest can be drawn with at least two points and up to twenty points. Thickness Selects the thickness of the curve. Color Select the color of a curve.
  • 4. Modifying Curves Changing properties To change the properties of a curve just select it and then use the properties panel to change type, thickness, or color. Translating To rotate a curve first, select it and then right click on it. A contextual menu appears, click on the translate option. A green bounding box appears. To translate, keep pressed the mouse’s right button over the box and move it. Rotating To rotate a curve first, select it and then right click on it. A contextual menu appears, click on the rotate option. A blue bounding box appears. To rotate, keep pressed the mouse’s left button over the box and move it.
  • 5. Scaling To rotate a curve first, select it and then right click on it. A contextual menu appears, click on the translate option. A dialog appears, enter the scaling factor and click ok. Grouping To group a set of curve, multiple select them and then go to Selection>Grouping. When clicking on any of the curve a white box containing the curves will appear. Translation, Rotation, and Scaling can be applied to the group. To ungroup, select the group, and then go to Selection>Ungroup. Saving and opening scenes Use the Open and Save options of the File Menu to save the scene to a file. Files are written in XML.
  • 6. System Model Main Classes The following class diagram shows the core classes in the system. User input and scene graph management. DrawingFrame: A Swing component used to capture the mouse wheel events. CurvesCanvas: Class inheriting from Canvas3D. This class manages the scene graph. Control: This class bridges widget events to the drawing subsystem through the Canvas. DrawingBehavior: Processes events to draw curves. It then creates CurveGroups that contain a Spline, the generalization of a Curve. This CurveGroups are added to the scene graph.
  • 7. Spline Subsystem The Spline abstract class implements functionality to manage geometries and callbacks to the Behavior Subsystem through the GraphicalSelectableObjectInterface. All classes inheriting from Spline must implement the calculation of points and other special functions such as cutting or derivative calculation. The CurveGroup inherits from BranchGroup and is used to store a Spline and behaviors that modify the Spline appeareance. Behavior Subsystem CurvesPickBehavior accepts mouse events and picks the objects clicked. CurveClickerBehavior stores the last object clicked. DrawingBehavior gets the mouse event and creates Splines. JoinBehavior and CutBehavior use the object stores by their parent to implement curve joining and cutting. KeyboardBehavior process key presses to modify the drawing plane. ModeConstants is used to store constants for DrawingBehavior.