- doxygen documentation files

- added first docs to map.hpp
This commit is contained in:
Andreas Volz 2007-08-12 21:05:45 +00:00
parent 99d04bbf08
commit 59977745a0
6 changed files with 1876 additions and 9 deletions

1252
docs/doxygen/Doxyfile Normal file

File diff suppressed because it is too large Load diff

358
docs/doxygen/doxygen.css Normal file
View file

@ -0,0 +1,358 @@
BODY,H1,H2,H3,H4,H5,H6,P,CENTER,TD,TH,UL,DL,DIV {
font-family: Geneva, Arial, Helvetica, sans-serif;
}
BODY,TD {
font-size: 90%;
}
H1 {
text-align: center;
font-size: 160%;
}
H2 {
font-size: 120%;
}
H3 {
font-size: 100%;
}
CAPTION { font-weight: bold }
DIV.qindex {
width: 100%;
background-color: #e8eef2;
border: 1px solid #84b0c7;
text-align: center;
margin: 2px;
padding: 2px;
line-height: 140%;
}
DIV.nav {
width: 100%;
background-color: #e8eef2;
border: 1px solid #84b0c7;
text-align: center;
margin: 2px;
padding: 2px;
line-height: 140%;
}
DIV.navtab {
background-color: #e8eef2;
border: 1px solid #84b0c7;
text-align: center;
margin: 2px;
margin-right: 15px;
padding: 2px;
}
TD.navtab {
font-size: 70%;
}
A.qindex {
text-decoration: none;
font-weight: bold;
color: #1A419D;
}
A.qindex:visited {
text-decoration: none;
font-weight: bold;
color: #1A419D
}
A.qindex:hover {
text-decoration: none;
background-color: #ddddff;
}
A.qindexHL {
text-decoration: none;
font-weight: bold;
background-color: #6666cc;
color: #fbfbfb;
border: 1px double #9295C2;
}
A.qindexHL:hover {
text-decoration: none;
background-color: #6666cc;
color: #fbfbfb;
}
A.qindexHL:visited { text-decoration: none; background-color: #6666cc; color: #fbfbfb }
A.el { text-decoration: none; font-weight: bold }
A.elRef { font-weight: bold }
A.code:link { text-decoration: none; font-weight: normal; color: #0000FF}
A.code:visited { text-decoration: none; font-weight: normal; color: #0000FF}
A.codeRef:link { font-weight: normal; color: #0000FF}
A.codeRef:visited { font-weight: normal; color: #0000FF}
A:hover { text-decoration: none; background-color: #f2f2ff }
DL.el { margin-left: -1cm }
.fragment {
font-family: monospace, fixed;
font-size: 95%;
}
PRE.fragment {
border: 1px solid #CCCCCC;
background-color: #f5f5f5;
margin-top: 4px;
margin-bottom: 4px;
margin-left: 2px;
margin-right: 8px;
padding-left: 6px;
padding-right: 6px;
padding-top: 4px;
padding-bottom: 4px;
}
DIV.ah { background-color: black; font-weight: bold; color: #fbfbfb; margin-bottom: 3px; margin-top: 3px }
DIV.groupHeader {
margin-left: 16px;
margin-top: 12px;
margin-bottom: 6px;
font-weight: bold;
}
DIV.groupText { margin-left: 16px; font-style: italic; font-size: 90% }
BODY {
background: white;
color: black;
margin-right: 20px;
margin-left: 20px;
}
TD.indexkey {
background-color: #e8eef2;
font-weight: bold;
padding-right : 10px;
padding-top : 2px;
padding-left : 10px;
padding-bottom : 2px;
margin-left : 0px;
margin-right : 0px;
margin-top : 2px;
margin-bottom : 2px;
border: 1px solid #CCCCCC;
}
TD.indexvalue {
background-color: #e8eef2;
font-style: italic;
padding-right : 10px;
padding-top : 2px;
padding-left : 10px;
padding-bottom : 2px;
margin-left : 0px;
margin-right : 0px;
margin-top : 2px;
margin-bottom : 2px;
border: 1px solid #CCCCCC;
}
TR.memlist {
background-color: #f0f0f0;
}
P.formulaDsp { text-align: center; }
IMG.formulaDsp { }
IMG.formulaInl { vertical-align: middle; }
SPAN.keyword { color: #008000 }
SPAN.keywordtype { color: #604020 }
SPAN.keywordflow { color: #e08000 }
SPAN.comment { color: #800000 }
SPAN.preprocessor { color: #806020 }
SPAN.stringliteral { color: #002080 }
SPAN.charliteral { color: #008080 }
.mdescLeft {
padding: 0px 8px 4px 8px;
font-size: 80%;
font-style: italic;
background-color: #FAFAFA;
border-top: 1px none #E0E0E0;
border-right: 1px none #E0E0E0;
border-bottom: 1px none #E0E0E0;
border-left: 1px none #E0E0E0;
margin: 0px;
}
.mdescRight {
padding: 0px 8px 4px 8px;
font-size: 80%;
font-style: italic;
background-color: #FAFAFA;
border-top: 1px none #E0E0E0;
border-right: 1px none #E0E0E0;
border-bottom: 1px none #E0E0E0;
border-left: 1px none #E0E0E0;
margin: 0px;
}
.memItemLeft {
padding: 1px 0px 0px 8px;
margin: 4px;
border-top-width: 1px;
border-right-width: 1px;
border-bottom-width: 1px;
border-left-width: 1px;
border-top-color: #E0E0E0;
border-right-color: #E0E0E0;
border-bottom-color: #E0E0E0;
border-left-color: #E0E0E0;
border-top-style: solid;
border-right-style: none;
border-bottom-style: none;
border-left-style: none;
background-color: #FAFAFA;
font-size: 80%;
}
.memItemRight {
padding: 1px 8px 0px 8px;
margin: 4px;
border-top-width: 1px;
border-right-width: 1px;
border-bottom-width: 1px;
border-left-width: 1px;
border-top-color: #E0E0E0;
border-right-color: #E0E0E0;
border-bottom-color: #E0E0E0;
border-left-color: #E0E0E0;
border-top-style: solid;
border-right-style: none;
border-bottom-style: none;
border-left-style: none;
background-color: #FAFAFA;
font-size: 80%;
}
.memTemplItemLeft {
padding: 1px 0px 0px 8px;
margin: 4px;
border-top-width: 1px;
border-right-width: 1px;
border-bottom-width: 1px;
border-left-width: 1px;
border-top-color: #E0E0E0;
border-right-color: #E0E0E0;
border-bottom-color: #E0E0E0;
border-left-color: #E0E0E0;
border-top-style: none;
border-right-style: none;
border-bottom-style: none;
border-left-style: none;
background-color: #FAFAFA;
font-size: 80%;
}
.memTemplItemRight {
padding: 1px 8px 0px 8px;
margin: 4px;
border-top-width: 1px;
border-right-width: 1px;
border-bottom-width: 1px;
border-left-width: 1px;
border-top-color: #E0E0E0;
border-right-color: #E0E0E0;
border-bottom-color: #E0E0E0;
border-left-color: #E0E0E0;
border-top-style: none;
border-right-style: none;
border-bottom-style: none;
border-left-style: none;
background-color: #FAFAFA;
font-size: 80%;
}
.memTemplParams {
padding: 1px 0px 0px 8px;
margin: 4px;
border-top-width: 1px;
border-right-width: 1px;
border-bottom-width: 1px;
border-left-width: 1px;
border-top-color: #E0E0E0;
border-right-color: #E0E0E0;
border-bottom-color: #E0E0E0;
border-left-color: #E0E0E0;
border-top-style: solid;
border-right-style: none;
border-bottom-style: none;
border-left-style: none;
color: #606060;
background-color: #FAFAFA;
font-size: 80%;
}
.search { color: #003399;
font-weight: bold;
}
FORM.search {
margin-bottom: 0px;
margin-top: 0px;
}
INPUT.search { font-size: 75%;
color: #000080;
font-weight: normal;
background-color: #e8eef2;
}
TD.tiny { font-size: 75%;
}
a {
color: #1A41A8;
}
a:visited {
color: #2A3798;
}
.dirtab { padding: 4px;
border-collapse: collapse;
border: 1px solid #84b0c7;
}
TH.dirtab { background: #e8eef2;
font-weight: bold;
}
HR { height: 1px;
border: none;
border-top: 1px solid black;
}
/* Style for detailed member documentation */
.memtemplate {
font-size: 80%;
color: #606060;
font-weight: normal;
}
.memnav {
background-color: #e8eef2;
border: 1px solid #84b0c7;
text-align: center;
margin: 2px;
margin-right: 15px;
padding: 2px;
}
.memitem {
padding: 4px;
background-color: #eef3f5;
border-width: 1px;
border-style: solid;
border-color: #dedeee;
-moz-border-radius: 8px 8px 8px 8px;
}
.memname {
white-space: nowrap;
font-weight: bold;
}
.memdoc{
padding-left: 10px;
}
.memproto {
background-color: #d5e1e8;
width: 100%;
border-width: 1px;
border-style: solid;
border-color: #84b0c7;
font-weight: bold;
-moz-border-radius: 8px 8px 8px 8px;
}
.paramkey {
text-align: right;
}
.paramtype {
white-space: nowrap;
}
.paramname {
color: #602020;
font-style: italic;
white-space: nowrap;
}
/* End Styling for detailed member documentation */
/* for the tree view */
.ftvtree {
font-family: sans-serif;
margin:0.5em;
}
.directory { font-size: 9pt; font-weight: bold; }
.directory h3 { margin: 0px; margin-top: 1em; font-size: 11pt; }
.directory > h3 { margin-top: 0; }
.directory p { margin: 0px; white-space: nowrap; }
.directory div { display: none; margin: 0px; }
.directory img { vertical-align: -30%; }

16
docs/doxygen/header.html Normal file
View file

@ -0,0 +1,16 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
<title>Mapnik: Main Page</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head>
<body>
<div class=nav>
<table bgcolor=#4f96d2 border=0 align=center><tr>
<td><img src=images/mapnik-logo.png alt=Mapnik></td>
<td width=100% align=center>
C++ API DOCUMENTATION
</td>
</tr></table>
</div>

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.4 KiB

102
docs/doxygen/tabs.css Normal file
View file

@ -0,0 +1,102 @@
/* tabs styles, based on http://www.alistapart.com/articles/slidingdoors */
DIV.tabs
{
float : left;
width : 100%;
background : url("tab_b.gif") repeat-x bottom;
margin-bottom : 4px;
}
DIV.tabs UL
{
margin : 0px;
padding-left : 10px;
list-style : none;
}
DIV.tabs LI, DIV.tabs FORM
{
display : inline;
margin : 0px;
padding : 0px;
}
DIV.tabs FORM
{
float : right;
}
DIV.tabs A
{
float : left;
background : url("tab_r.gif") no-repeat right top;
border-bottom : 1px solid #84B0C7;
font-size : x-small;
font-weight : bold;
text-decoration : none;
}
DIV.tabs A:hover
{
background-position: 100% -150px;
}
DIV.tabs A:link, DIV.tabs A:visited,
DIV.tabs A:active, DIV.tabs A:hover
{
color: #1A419D;
}
DIV.tabs SPAN
{
float : left;
display : block;
background : url("tab_l.gif") no-repeat left top;
padding : 5px 9px;
white-space : nowrap;
}
DIV.tabs INPUT
{
float : right;
display : inline;
font-size : 1em;
}
DIV.tabs TD
{
font-size : x-small;
font-weight : bold;
text-decoration : none;
}
/* Commented Backslash Hack hides rule from IE5-Mac \*/
DIV.tabs SPAN {float : none;}
/* End IE5-Mac hack */
DIV.tabs A:hover SPAN
{
background-position: 0% -150px;
}
DIV.tabs LI#current A
{
background-position: 100% -150px;
border-width : 0px;
}
DIV.tabs LI#current SPAN
{
background-position: 0% -150px;
padding-bottom : 6px;
}
DIV.nav
{
background : none;
border : none;
border-bottom : 1px solid #84B0C7;
}

View file

@ -27,7 +27,6 @@
#include <mapnik/feature_type_style.hpp> #include <mapnik/feature_type_style.hpp>
#include <mapnik/datasource.hpp> #include <mapnik/datasource.hpp>
#include <mapnik/layer.hpp> #include <mapnik/layer.hpp>
#include <boost/optional/optional.hpp>
namespace mapnik namespace mapnik
{ {
@ -42,50 +41,190 @@ namespace mapnik
std::map<std::string,feature_type_style> styles_; std::map<std::string,feature_type_style> styles_;
std::vector<Layer> layers_; std::vector<Layer> layers_;
Envelope<double> currentExtent_; Envelope<double> currentExtent_;
public: public:
typedef std::map<std::string,feature_type_style>::const_iterator const_style_iterator; typedef std::map<std::string,feature_type_style>::const_iterator const_style_iterator;
typedef std::map<std::string,feature_type_style>::iterator style_iterator; typedef std::map<std::string,feature_type_style>::iterator style_iterator;
/*! \brief Default constructor.
*
* Creates a map with these parameters:
* - width = 400
* - height = 400
* - projection = "+proj=latlong +datum=WGS84"
*/
Map(); Map();
Map(int width, int height, std::string const& srs="+proj=latlong +datum=WGS84");
Map(const Map& rhs);
Map& operator=(const Map& rhs);
std::map<std::string,feature_type_style> const& styles() const;
std::map<std::string,feature_type_style> & styles();
/*! \brief Constructor
* @param width Initial map width.
* @param height Initial map height.
* @param srs Initial map projection.
*/
Map(int width, int height, std::string const& srs="+proj=latlong +datum=WGS84");
/*! \brief Copy Constructur.
*
* @param rhs Map to copy from.
*/
Map(const Map& rhs);
/*! \brief Assignment operator
*
* TODO: to be documented
*
*/
Map& operator=(const Map& rhs);
/*! \brief Get first iterator in styles.
* @return Constant style iterator.
*/
const_style_iterator begin_styles() const; const_style_iterator begin_styles() const;
/*! \brief Get last iterator in styles.
* @return Constant style iterator.
*/
const_style_iterator end_styles() const; const_style_iterator end_styles() const;
/*! \brief Get first iterator in styles.
* @return Non-constant style iterator.
*/
style_iterator begin_styles(); style_iterator begin_styles();
/*! \brief Get last iterator in styles.
* @return Non-constant style iterator.
*/
style_iterator end_styles(); style_iterator end_styles();
/*! \brief Insert a style in the map.
* @param name The name of the style.
* @param style The style to insert.
* @return true If success.
* @return false If no success.
*/
bool insert_style(std::string const& name,feature_type_style const& style); bool insert_style(std::string const& name,feature_type_style const& style);
/*! \brief Remove a style from the map.
* @param The name of the style.
*/
void remove_style(const std::string& name); void remove_style(const std::string& name);
/*! \brief Find a style.
* @param name The name of the style.
* @return The style if found. If not found return the default map style.
*/
feature_type_style const& find_style(std::string const& name) const; feature_type_style const& find_style(std::string const& name) const;
/*! \brief Get number of all layers.
*/
size_t layerCount() const; size_t layerCount() const;
/*! \brief Add a layer to the map.
* @param l The layer to add.
*/
void addLayer(const Layer& l); void addLayer(const Layer& l);
/*! \brief Get a layer.
* @param index Layer number.
* @return Constant layer.
*/
const Layer& getLayer(size_t index) const; const Layer& getLayer(size_t index) const;
/*! \brief Get a layer.
* @param index Layer number.
* @return Non-constant layer.
*/
Layer& getLayer(size_t index); Layer& getLayer(size_t index);
/*! \brief Remove a layer.
* @param index Layer number.
*/
void removeLayer(size_t index); void removeLayer(size_t index);
/*! \brief Get all layers.
* @return Constant layers.
*/
std::vector<Layer> const& layers() const; std::vector<Layer> const& layers() const;
/*! \brief Get all layers.
* @return Non-constant layers.
*/
std::vector<Layer> & layers(); std::vector<Layer> & layers();
/*! \brief Remove all layers and styles from the map.
*/
void remove_all(); void remove_all();
/*! \brief Get map width.
*/
unsigned getWidth() const; unsigned getWidth() const;
/*! \brief Get map height.
*/
unsigned getHeight() const; unsigned getHeight() const;
/*! \brief Set map width.
*/
void setWidth(unsigned width); void setWidth(unsigned width);
/*! \brief Set map height.
*/
void setHeight(unsigned height); void setHeight(unsigned height);
/*! \brief Resize the map.
*/
void resize(unsigned width,unsigned height); void resize(unsigned width,unsigned height);
/*! \brief Get the map projection.
* @return Map projection.
*/
std::string const& srs() const; std::string const& srs() const;
/*! \brief Set the map projection.
* @param srs Map projection.
*/
void set_srs(std::string const& srs); void set_srs(std::string const& srs);
void set_background(const Color& c);
boost::optional<Color> const& background() const; /*! \brief Set the map background color.
void zoom(double zoom); * @param c Background color.
*/
void setBackground(const Color& c);
/*! \brief Get the map background color.
* @return Background color.
*/
const Color& getBackground() const;
/*! \brief Zoom the map at the current position.
* @param factor The factor how much the map is zoomed in or out.
*/
void zoom(double factor);
/*! \brief Zoom the map to a bounding box.
*
* Aspect is handled automatic if not fitting to width/height.
* @param box The bounding box where to zoom.
*/
void zoomToBox(const Envelope<double>& box); void zoomToBox(const Envelope<double>& box);
/*! \brief Zoom the map to show all data.
*/
void zoom_all(); void zoom_all();
void pan(int x,int y); void pan(int x,int y);
void pan_and_zoom(int x,int y,double zoom); void pan_and_zoom(int x,int y,double zoom);
/*! \brief Get current bounding box.
* @return The current bounding box.
*/
const Envelope<double>& getCurrentExtent() const; const Envelope<double>& getCurrentExtent() const;
double scale() const; double scale() const;
CoordTransform view_transform() const; CoordTransform view_transform() const;
featureset_ptr query_point(unsigned index, double x, double y) const; featureset_ptr query_point(unsigned index, double x, double y) const;
featureset_ptr query_map_point(unsigned index, double x, double y) const; featureset_ptr query_map_point(unsigned index, double x, double y) const;
~Map(); ~Map();
private: private: