Full text: Proceedings, XXth congress (Part 3)

  
International Archives of the Photogrammetry, Remote Sensing and Spatial Information Sciences, Vol XXXV, Part B3. Istanbul 2004 
and Wang, 1999; Molenaar, 1992). In the topological 
model for geometric elements, are used as the elementary 
data types of geometrical part, and the relationships 
between geometric elements and object types are 
determined by five rules. FDS is a complete vector 
structure and shows powerful specifications for the 
presentation of topology, position and shape. The 
topology representation is benetical for topology queries 
among the geometric elements of an object, but to 
generate a FDS description of 3D objects is difficult, 
because FDS requires topological definitions between 
point and arc, arc and edge, edge and surface, edge and 
edge, etc., (Gruen and Wang, 1999). To overcome this 
situation, a modified facet model based on B-Rep, V3D 
has been proposed in (Gruen and Wang, 1999). This data 
model can be generated easily and is designed to adapt 
images as well. 
Our visualization and query tool for 3D city models, 
presented in this paper depends on the V3D model. This 
model can easily be represented by relational database 
approaches by using relational tables. In the next chapter, 
we give description of geometric and topological 
modelling structure of objects in our tool which is still 
under development. 
2. IMPLEMENTATION OF DATA STRUCTURE IN 
OUR 3D VISUALIZATION TOOL 
In our tool, as being primitive geometric objects we use point, 
line, surface and body objects (houseObject / solid object) as 
defined in V3D model. A body object is decomposed into 
surface objects (facets), a surface object is decomposed into line 
(edge) objects and line object is decomposed into point (vertex) 
objects hierarchically. And these are all defined as object 
classes. We define a house object as follows: 
struct houseObject 
int houseld; 
int wallRed,wallGreen,wallBlue; 
int roofRed,roofGreen,roofBlue; 
float labelX; 
float labelY ; 
float labelZ; 
Points* housePoints; 
CellArray *wallCells; 
CellArray *roofCells; 
PolyData *houseWalls; 
PolyData *houseRoofs; 
PolyDataMapper *houseWallMapper; 
PolyDataMapper *houseRoofMapper; 
Actor *houseWallActor; 
Actor *houseRoofActor; 
struct houseObject* nextHouse; 
struct houseObject* prevHouse; 
i 
j^ 
As seen in the structure definition, one house object contains all 
of the geometrical and topological information implicitly as a 
whole. In the structure, “Points” variable represents all of the 
vertex points of a house with point ids and point coordinates. 
“CellArray” variable represent all of the cells (faces) of the 
house with cell ids. PolyData uses points and cells and forms 
the houseObject in a polygonal model which is obtained with 
the integration of the points and cells. As being optional it is 
560 
provided to construct the cell links with the member function of 
the class PolyData. Thus, PolyData object will represent the 
links of the cells (i.e. linking topology of the cells) too. 
PolyDataMapper is used to prepare the PolyData for rendering 
purposes. Actor is used to manage rendering operations of the 
mapper such as rotation, scaling, coloring etc. Finally, actors 
are rendered in the rendering window on the screen. At this 
point, geometry and topolgy of the house object with its 
geometric primitives haven't been stored explicitly in a 
database yet. But however, at this point, it is possible to render 
house object and query some geometric properties of the 
houseObject's geometric primitives. For example, coordinates 
and id number of a picked/selected point with mouse from the 
render window, can be shown on the screen. As the same way, a 
picked cell’s id and its point ids can be listed too, and so etc. 
For the explicit storage of the topological relations between 
edges, faces, etc., user should ask the software to “build 
topology”. This will be explained in detail in the following 
sections. 
“houseld” member variable is the id code of a house object. 
This id number is used to link an object attribute table with 
thematic information related to house object, (e.g. surface area, 
volume of house, etc.). “labelX, labelY, labelZ” variables 
define the center of gravity of the bounding box of the 
houseObject. This label coordinate values are used for picking 
(selection) operations on the screen and finding related 
record(s) in the related attribute table(s). When one picks one or 
more house objects on the screen, bounding box(es) of the 
picked object(s) is/are returned with min and max coordinate 
values of the corner points. And label coordinates of the 
selected objects are computed and corresponding houseObject 
is searched in the memory and when found, houseld of the 
found object is handled. With this information, link between 
object geometry and attribute tables is constructed. Label 
coordinates serve as opposite work of houseld. In the house 
object structure, wall and roof geometry and topology are 
defined seperately and together. Thus, it is possible to make 
analysis and queries related to roofs and in a flexible way. 
Color components are used to represent the selection color of 
the house object. When a house object is selected it changes 
color with selection color defined by the user, and when 
unselected, it takes its original color properties. 
With the above structure, it is possible to selecet indivudial 
parts of house, such as edges, faces, vertex points etc. Thus this 
property facilitates the indivual queries of the decomposed 
cells. Deletion of an existing part or adding new components 
are also easy with this description. CellArray class instance 
variable represents the definition of each facet cells and their 
topological links. 
In the memory, we organize all house objects in a double sided 
binary tree. In Figure 1, we give the organisation of the house 
objects in a binary tree model. 
In 
  
In 
an 
thi 
th 
se 
ad 
lin 
Ne 
me 
 
	        
Waiting...

Note to user

Dear user,

In response to current developments in the web technology used by the Goobi viewer, the software no longer supports your browser.

Please use one of the following browsers to display this page correctly.

Thank you.