Personal tools
You are here: Home Development Documents gvSIG desktop 1.9 Plugins 3D Extension Overview
Document Actions

Overview

by Rafael Gaitan last modified 2010-06-01 22:44

Overview of the 3D plug-ins and libraries for gvSIG3D.

Components

Given the set of funcional requirements, the system is built by four basic components.

  1. 3D Extension
  2. Core of gvSIG
  3. Temporal Data
  4. Animation
3D Extension
Includes all the related functionalities of 3D rendering, 3D layer properties, 3D navigation, printing of 3D views and 3D edition, and also includes the GUI components associated with this functionalities.
gvSIG Core
Contains those functionalities that are needed to extend to 3D the capabilities of gvSIG. Independently of the use in a 3D view. The subcomponents that should include are: 3D Geometry, I/O of 3D data, 3D simbology and 3D geoprocess.
Temporal Data.
Will Contain the elements (or the necessary modification to the current components) to access to the information sources with a temporal dimension: filters and temporal layers.
Animation

Will Contain the necessary elements to create, render and export animations, merging a defined set of type of animations: Visibility of layers, temporal data, changes in 2D and 3D views.

On each component folder we do a more in depth description of their functionalities. Next we present a general component graph that shows the relations between the previous explained components and the user interaction.

images/gvSIG3D_Componentes.png

The graph shows how the user interacts directly with the user interface developed for the plug-in. However, the goal is that all the new functionalities will be integrated in the main application, so the users don't change the way that they interact with gvSIG. To achieve this, the GUI components of the extension will be specializations or implementations of the current object and basic GUI classes of the system. This includes: layer system, file system, connexion of data servers, etc.. And we will maintain synchronized the functionalities of 3D and 2D views, including those 3D specifics.

The work for temporal data and animation functions will be available for 2D and 3D views.

Architecture

In the next image, we show a architecture diagram of 3D extension. We show where will be each of the development components built. In the diagram is possible to see three big levels. In the low part we found those component without dependencies with layers or driver (subdriver). In the medium part it's located FMap -with drivers, layers,...-. At the top part it's shown all GUI components.

Subdriver Level
Beginning with the low level, will be built an Animation library (libAnimation) that will contain all the framework where is defined common animation elements (tracks, intervals, keyframes, etc.). In this level we also find the 3D framework for 3D rendering, called OSGVirtualPlanets, that makes use of native libraries. Finally there will exist a component that will allow us to load 3D models based on libGPE.
FMap Level

Inside FMap level there will be components attached inside gvSIG core. These components will allow a model representation of 3D Geometries and 3D symbols an a model definition for temporal layers with their filters. These elements should be inside gvSIG core to allow rendering of 3D objects and temporal data also in 2D views.

In the same level (but not inside the gvSIG core), we will build the extensions that implements the functionality of animation and 3D. These components ar completely independent of the GUI. For Animation, it will be splitted by the type of animation: 2D animation (extAnimation2D), View animation (extAnimationCommon) including temporal animation and layer visibility, and finally 3D animation (extAnimation3D).

A different component (lib3DMap), will include the functions to manage 3D layers, navigation, edition and print for 3D. Another extension will include the geoprocess tools specific for 3D, that will be registered in the geoprocessing manager of gvSIG.

Nivel GUI
At the GUI level there will be two extensions: (i) extAnimationGUI will create GUI elements to control animations (for 2D and 3D) and other called ext3DGUI that will create GUI components of the 3D view.
images/diagBloques.png

Powered by Plone CMS, the Open Source Content Management System

This site conforms to the following standards: