Commit 9ca73f6c authored by Jan Möbius's avatar Jan Möbius
Browse files

Added Scenegraph docu section.

Added Scenegraph docu image
Changed maximal canvas size for tikz images to 40cm.



git-svn-id: http://www.openflipper.org/svnrepo/OpenFlipper/branches/Free@13817 383ad7c9-94d9-4d36-a494-682f7c89f535
parent bbbb9025
/** \page OpenFlipperSceneGraph OpenFlipper SceneGraph
*
* \section OFSceneGraph_Overview Overview
* OpenFlipper has an integrated scenegraph which is used to render the scene. There are various nodes available,
* which are used to transform the scene, set OpenGL status flags, render objects or react on user interaction.
* When OpenFlipper is started, it generates a predefined scenegraph structure, that can be extended by the programmer.
* The following figure shows the basic setup:
*
* \image html GlobalSceneGraph.png
*
*\section OFSceneGraph_adding Adding additional scenegraph nodes
*
*
*/
......@@ -145,6 +145,7 @@
* - \subpage pluginExamples
* - \subpage interfaces
* - \subpage objectDataStructure
* - \subpage OpenFlipperSceneGraph
* - \subpage OpenFlipperIterators
* - \subpage adding_empty_objects
*/
......@@ -5,6 +5,7 @@
\tikzstyle{action}=[rectangle, draw=black, rounded corners, fill=red!60!white, drop shadow,text centered, text=black, text width=6.5cm]
\tikzstyle{userNode}=[rectangle, draw=black, rounded corners, fill=red!20!white, drop shadow,text centered, text=black, text width=6cm]
\tikzstyle{objectNode}=[rectangle, draw=black, rounded corners, fill=yellow!20!white, drop shadow,text centered, text=black, text width=6cm]
\tikzstyle{flow}=[->, >= triangle 90, very thick]
\tikzstyle{InvisibleGroup} = [fill=orange!30!white,rectangle,rounded corners,draw,inner sep =0.4cm]
......@@ -32,6 +33,7 @@
\nodepart{second}{User added global status nodes(No rendering, only status!)}
};
\node (AdditionalGlobalStatusNodes) [action, rectangle split, rectangle split parts=2, right = of UserGlobalStatusNode]
{
\textbf{Adding additional Global StatusNodes}
......@@ -44,7 +46,7 @@
\nodepart{second}{The root node for all rendered nodes.(sceneGraphRootNodeGlobal\_) \\ PluginFunctions::getSceneGraphRootNode() }
};
\node (CoreNodes) [predefinedNode, rectangle split, rectangle split parts=2 , below= of RenderedRootNode,yshift=-0.3cm]
\node (CoreNodes) [predefinedNode, rectangle split, rectangle split parts=2 , below left= of RenderedRootNode,yshift=-0.5cm]
{
\textbf{Separator for core nodes}
\nodepart{second}{This is a separator node for all objects which are created by the core.}
......@@ -62,6 +64,12 @@
\nodepart{second}{Global nodes added by the user}
};
\node (LassoSelectionNode) [predefinedNode, rectangle split, rectangle split parts=2 , right= of UserGlobalNode,yshift=0cm]
{
\textbf{Lasso Selection Node}
\nodepart{second}{Node of the selection plugin.}
};
\node (AdditionalGlobalNodes) [action, rectangle split, rectangle split parts=2, below = of UserGlobalNode]
{
\textbf{Adding additional Global Nodes}
......@@ -69,14 +77,13 @@
};
\node (DataSeparatorNode) [predefinedNode, rectangle split, rectangle split parts=2 , below left= of RenderedRootNode,yshift=-0.5cm]
\node (DataSeparatorNode) [predefinedNode, rectangle split, rectangle split parts=2 , below = of RenderedRootNode,yshift=-0.3cm]
{
\textbf{Data Separator Node}
\nodepart{second}{This is a separator node for all objects in the scene. \\ (dataSeparatorNode\_)}
};
\node (ClippingNode) [predefinedNode, rectangle split, rectangle split parts=2 , below= of DataSeparatorNode]
{
\textbf{Clipping Node}
......@@ -101,6 +108,23 @@
\nodepart{second}{This is the root of all Objects in OpenFlipper(dataRootNode\_). \\ PluginFuncions::getRootNode() }
};
\node (Object1Node) [objectNode, rectangle split, rectangle split parts=2 , below left= of DataRootNode,yshift=-0.5cm]
{
\textbf{Object Separator Node}
\nodepart{second}{ Toplevel separator node for one object }
};
\node (Object2Node) [objectNode, rectangle split, rectangle split parts=2 , below= of DataRootNode,yshift=-0.3cm]
{
\textbf{Object Separator Node}
\nodepart{second}{ Toplevel separator node for one object }
};
\node (Object3Node) [objectNode, rectangle split, rectangle split parts=2 , below right = of DataRootNode,yshift=-0.5cm]
{
\textbf{Object Separator Node}
\nodepart{second}{ Toplevel separator node for one object }
};
\draw[flow] (RootNode.south) -- ++(0,0) -| (LightNodes.north);
\draw[flow] (LightNodes.south) -- ++(0,0) -| (UserGlobalStatusNode.north);
......@@ -108,6 +132,7 @@
\draw[flow] (AdditionalGlobalStatusNodes.west) -- ++(0,0) |- (UserGlobalStatusNode.east);
\draw[flow] (RenderedRootNode.south) -- ++(0,-0.3) -| (DataSeparatorNode.north);
\draw[flow] (RenderedRootNode.south) -- ++(0,-0.3) -| (CoreNodes.north);
\draw[flow] (RenderedRootNode.south) -- ++(0,-0.3) -| (LassoSelectionNode.north);
\draw[flow] (CoreNodes.south) -- ++(0,-0.3) -| (CoordsysNode.north);
\draw[flow] (RenderedRootNode.south) -- ++(0,-0.3) -| (UserGlobalNode.north);
\draw[flow] (AdditionalGlobalNodes.north) -- ++(0,0) |- (UserGlobalNode.south);
......@@ -115,6 +140,9 @@
\draw[flow] (ClippingNode.south) -- ++(0,0) -| (UserObjectStatusNode.north);
\draw[flow] (AdditionalObjectStatusNodes.west) -- ++(0,0) |- (UserObjectStatusNode.east);
\draw[flow] (UserObjectStatusNode.south) -- ++(0,0) -| (DataRootNode.north);
\draw[flow] (DataRootNode.south) -- ++(0,-0.3) -| (Object1Node.north);
\draw[flow] (DataRootNode.south) -- ++(0,-0.3) -| (Object2Node.north);
\draw[flow] (DataRootNode.south) -- ++(0,-0.3) -| (Object3Node.north);
%\begin{pgfonlayer}{background}
%\node[InvisibleGroup,fit=(current bounding box) ] (Invisible) {};
......
......@@ -11,7 +11,9 @@ echo "
\usetikzlibrary{backgrounds,positioning,shapes,shadows,arrows,calc,fit}
\def\huge{\fontsize{15pt}{17pt}\selectfont}
\setlength{\textwidth}{40cm}
\setlength{\textheight}{40cm}
\setlength{\pdfpagewidth}{40cm}
\setlength{\pdfpageheight}{40cm}
\begin{document}
\definecolor{awhite}{RGB}{254,254,254}
\definecolor{acgorange}{RGB}{240,112,48}
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment