Ask a question from expert

Ask now

C/C++ Programming OSG Application | Assignment

8 Pages2543 Words452 Views
   

Added on  2019-09-27

C/C++ Programming OSG Application | Assignment

   Added on 2019-09-27

BookmarkShareRelated Documents
Key Skills to be AssessedC/C++ programmingApplication of a structured OO framework for graphics applicationsCritical Evaluation of tools usedThe Assessment TaskFor your resit assignment you should review your previous feedback for this assignment and address the issues raised in it. Your task is produce a OSG based viewer application that allows you to load and explore a structured scene file and enact, within this environment, object creation and manipulation, scene graph manipulation and user interaction.Your basic viewer application should use the OSG framework to deliver a programme that will load a scene file (in a standard format) as a command line instruction to the programme. Once loaded the visual rendition of this data should be explorable and navigable using the standard navigation tools supported by the scene graph library. As the scene description can be modified during the operation of the application, the viewer should be capable of saving a scene description file (in response to a key press, without overwriting the source file). The functionality of this basic viewer should also be extended to allow the following features.1. Scene Graph Manipulation and Interaction. You are provided with a scene description file (raaRobot.osg, available on blackboard) which has the scene description for a multi jointed robotic arm. This should be used as the source file for running the viewer. The robot arm within the file is created in a structured manner, with the spatial relationships between parts defined as part of the data structure. In this each matrix transformation node that controls the orientation of a part is named (*_Rotator or *_Locator). Youshould create an extended node visitor that will traverse the scene graph and present the name (where available), and type, for each node visited to the console.Your application should match the basic layout of the sample application provided, with 4 to 8 robots arranged in a ring layout. The basic control mechanisms should enable the robots rotate around the ring, and perform synchronised actions in response to key presses. This will require basic scene composition to re-use the single instance of the loaded model. Interaction with the robot, to create animation, through the use of the identified transformation nodes will require production of classes and structures that extend the OSG framework for detecting user input and directing it to the appropriate arm and body section for manipulation. This can be achieved in several ways, with the ideal being a generic reusable approach that decorates theSG with updater nodes (based on osg::NodeCallback). An ideal solution will enable the individual arm parts to:Move in response to a specific key press (translation of the body and rotation of the arms).
C/C++ Programming OSG Application | Assignment_1
Highlight the arm part (and only the specific part) under control.Constrain the motion within defined limits.Highlight when the arm is constrained by the motion limits. Advanced control of the robot. In this part of the assignment you should extend the application to enable recording and playback of the actions undertaken by the robotic troop. This should enable simple record of the control path in response to a key press to stop and start recording. Playback should be started and stopped with a key press and should loop repeatedly until stopped. The actions should be recorded in a time context and playback should maintain both the order of events and the relative timing of actions. Enhanced/improved environment. The initial scene is a little sparse for dancing robots. You should add content into this to both create static structure and add dynamic content (disco lights, procedurally generated shapes created at the control robot's hand position, floor plane, etc). Advanced scene enhancement should include provision of functionality for displaying a historical trail of the hand movement for each robot’s hand. Additional features that could also be considered would be the inclusion of the ability to save and re-load recorded animation paths,the use of mouse for selection and/or control of the robot’s parts, and enhanced navigation modes. In addition, to the technical aspects of this assignment, you are also required to produce a report (Guideline 2 pages (1000 words)) that compares and critically evaluates the use of C/OpenGL against C++/OSG in the production of this application. This may refer to the similar implementation undertaken for the 1st assignment.Recommended ReadingThe OSG website (www.openscenegraph.org) will be invaluable in helping you to complete this assignment. Key areas within this site are the reference documentation and the example programmes Equipment and Facilities to be UsedThe university laboratory computers are installed with MS Visual Studio 20XX. OSG is a freely available open source toolkit, that can be downloaded for use on personal systems. A basic template, with OSG installed is provided as a starting example for the assignment. During tutorials in Sem2, an outline for home installation of OSG has been given. Marking scheme
C/C++ Programming OSG Application | Assignment_2
The work will be assessed using a marking grid comprising 5 equally weighted components (provided below). 4 of these (Programming structure and design, Viewer Implementation, Object Creation and Manipulation, and Scene Graph Manipulation and Interaction relate to the programming element of the assignment, while the last, Critical Evaluation, relates to the written element. Assessment criteria0-19%20-39%40-59%60-79%80-100%Level 6AssessmentScaleExtremelyPoorVerypoorPoorUnsatisfactoryAdequateFairGoodVeryGoodExcellentOutstandingProgramming, structure and designLittle or no generic code reuse, with the majority of functionality bespoke to the task. Poor use of formatting (white space etc)Inconsistency in naming styles and conventions Hard coded static structures used throughout.Some use of accepted C++ file structure for classes and functionsInconsistent formatting of codeElements of generic functionality, allowing some reuse, but inconsistently appliedUse of bespoke classes and structures to handle and manage scene and interactionWell defined and decomposed code structure with all classes adhering to C++ file structure and file based decomposition of functions.Constant and clear formatting of all code throughout Generic code used in all cases, where possible.Some use of toolkit classes in a specialised form to achieve functional goalsEvidence of planned and optimised class based structure that encapsulatesmulti-functional, generic , reusable structures in all cases.Decomposition of programme features to generic control pipelines for each feature set.Refined class structure, based on toolkit specialisation, for all functional goalsUse of own file I/O functionality to save and restore animation pathsUse of appropriate data structures for recording each motion stepUse of advanced language features (eg templates, stl, etc) for the creation of refined data structures and algorithmsRefined and effective use ofdata structures and algorithms throughoutUse of own file I/O functionality to save and restore state of applicationUse of own file I/O functionality to save and restore animation pathsUse of appropriate data structures for recording motion control eventsUse of refined data
C/C++ Programming OSG Application | Assignment_3

End of preview

Want to access all the pages? Upload your documents or become a member.