pull in actual psimpl src

This commit is contained in:
Alfred Melch 2019-07-20 10:45:41 +02:00
parent 1ca4dbf890
commit f3693f357a
87 changed files with 8861 additions and 2983 deletions

View File

@ -10,5 +10,4 @@ psimpl.wasm psimpl.js: psimpl.cpp
-s MODULARIZE=1 \
-s EXPORT_ES6=1 \
-o psimpl.js \
-I ../ \
psimpl.cpp

View File

@ -1,7 +1,7 @@
#include <stdio.h>
#include <emscripten/bind.h>
#include <emscripten/val.h>
#include "psimpl/psimpl.h"
#include "../psimpl_v7_src/psimpl.h"
using namespace emscripten;

View File

@ -1,782 +0,0 @@
/* ***** BEGIN LICENSE BLOCK *****
* Version: MPL 1.1
*
* The contents of this file are subject to the Mozilla Public License Version
* 1.1 (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
* http://www.mozilla.org/MPL/
*
* Software distributed under the License is distributed on an "AS IS" basis,
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
* for the specific language governing rights and limitations under the
* License.
*
* The Original Code is
* 'psimpl - generic n-dimensional polyline simplification'.
*
* The Initial Developer of the Original Code is
* Elmar de Koning.
* Portions created by the Initial Developer are Copyright (C) 2010-2011
* the Initial Developer. All Rights Reserved.
*
* Contributor(s):
*
* ***** END LICENSE BLOCK ***** */
/*
psimpl - generic n-dimensional polyline simplification
Copyright (C) 2010-2011 Elmar de Koning, edekoning@gmail.com
This file is part of psimpl, and is hosted at SourceForge:
http://sourceforge.net/projects/psimpl/
*/
#include "DPWorker.h"
#include "psimpl_reference.h"
#include "../lib/psimpl.h"
#include <cmath>
#include <QtCore/QTime>
namespace psimpl {
DPWorker::DPWorker (QObject* inParent) :
QObject (inParent)
{
// note: disable this line during testing
srand ((unsigned)QTime::currentTime ().msec ());
}
void DPWorker::Generate (int inCount) {
emit SignalGeneratingPolyline ();
QTime t;
t.start ();
mGeneratedCoords.resize (inCount*2);
mSimplifiedCoords.clear ();
qreal miny = inCount;
qreal maxy = -inCount;
const qreal PI = std::atan (1.0) * 4;
qreal step = 2 * PI / inCount;
int a = 1 + (rand () % 2); // [1, 3]
int b = 2 + (rand () % 3); // [2, 5]
int c = 3 + (rand () % 7); // [3, 10]
// generate a random line
for (int i=0; i<inCount; i++) {
mGeneratedCoords [i*2] = i;
qreal tmp1 = cos (step * i * a) / 3;
qreal tmp2 = sin (step * i * b) / 5;
qreal tmp3 = sin (step * i * c) / 10;
mGeneratedCoords [i*2+1] = tmp1 + tmp2 + tmp3;
miny = qMin (miny, mGeneratedCoords [i*2+1]);
maxy = qMax (maxy, mGeneratedCoords [i*2+1]);
}
// translate the line to (0,0) and scale the line to (2 * inCount, inCount)
qreal scaley = (inCount-1) / (maxy-miny);
for (int i=0; i<inCount; i++) {
mGeneratedCoords [i*2+1] = (mGeneratedCoords [i*2+1] - miny) * 0.5 * scaley;
}
//mGeneratedCoords.push_back(0);
emit SignalGeneratedPolyline (t.elapsed (), mGeneratedCoords);
}
void DPWorker::SimplifyNP (Container cont, int n) {
QTime t;
int duration = 0;
mSimplifiedCoords.clear ();
switch (cont) {
case ARRAY_FLOAT:
{
// convert
emit SignalConvertingPolyline ();
float* generatedPoints = new float [mGeneratedCoords.size ()];
for (int c=0; c<mGeneratedCoords.size (); c++) {
generatedPoints [c] = mGeneratedCoords [c];
}
// simplify
emit SignalSimplifyingPolyline ();
const float* begin = generatedPoints;
const float* end = generatedPoints + mGeneratedCoords.size ();
t.start ();
simplify_nth_point <2> (begin, end, n,
std::back_inserter (mSimplifiedCoords));
duration = t.elapsed ();
// done
emit SignalCleaningConvertedPolyline ();
delete [] generatedPoints;
break;
}
case QVECTOR_DOUBLE:
{
// simplify
emit SignalSimplifyingPolyline ();
QVector <qreal>::const_iterator begin = mGeneratedCoords.constBegin ();
QVector <qreal>::const_iterator end = mGeneratedCoords.constEnd ();
t.start ();
simplify_nth_point <2> (begin, end, n,
std::back_inserter (mSimplifiedCoords));
duration = t.elapsed ();
break;
}
case VECTOR_DOUBLE:
{
// convert
emit SignalConvertingPolyline ();
std::vector <double> generatedPoints = mGeneratedCoords.toStdVector ();
// simplify
emit SignalSimplifyingPolyline ();
std::vector <double>::const_iterator begin = generatedPoints.begin ();
std::vector <double>::const_iterator end = generatedPoints.end ();
t.start ();
simplify_nth_point <2> (begin, end, n,
std::back_inserter (mSimplifiedCoords));
duration = t.elapsed ();
emit SignalCleaningConvertedPolyline ();
break;
}
case LIST_LONGLONG:
{
// convert
emit SignalConvertingPolyline ();
std::list <long long> generatedPoints;
foreach (double coord, mGeneratedCoords) {
generatedPoints.push_back (coord);
}
// simplify
emit SignalSimplifyingPolyline ();
std::list <long long>::const_iterator begin = generatedPoints.begin ();
std::list <long long>::const_iterator end = generatedPoints.end ();
t.start ();
simplify_nth_point <2> (begin, end, n,
std::back_inserter (mSimplifiedCoords));
duration = t.elapsed ();
emit SignalCleaningConvertedPolyline ();
break;
}
default:
break;
}
DoSignalSimplifiedPolyline (duration);
}
void DPWorker::SimplifyRD (Container cont, QString tol) {
QTime t;
int duration = 0;
mSimplifiedCoords.clear ();
switch (cont) {
case ARRAY_FLOAT:
{
// convert
emit SignalConvertingPolyline ();
float* generatedPoints = new float [mGeneratedCoords.size ()];
for (int c=0; c<mGeneratedCoords.size (); c++) {
generatedPoints [c] = mGeneratedCoords [c];
}
// simplify
emit SignalSimplifyingPolyline ();
const float* begin = generatedPoints;
const float* end = generatedPoints + mGeneratedCoords.size ();
t.start ();
simplify_radial_distance <2> (begin, end, tol.toFloat(),
std::back_inserter (mSimplifiedCoords));
duration = t.elapsed ();
// done
emit SignalCleaningConvertedPolyline ();
delete [] generatedPoints;
break;
}
case QVECTOR_DOUBLE:
{
// simplify
emit SignalSimplifyingPolyline ();
QVector <qreal>::const_iterator begin = mGeneratedCoords.constBegin ();
QVector <qreal>::const_iterator end = mGeneratedCoords.constEnd ();
t.start ();
simplify_radial_distance <2> (begin, end, tol.toDouble (),
std::back_inserter (mSimplifiedCoords));
duration = t.elapsed ();
break;
}
case VECTOR_DOUBLE:
{
// convert
emit SignalConvertingPolyline ();
std::vector <double> generatedPoints = mGeneratedCoords.toStdVector ();
// simplify
emit SignalSimplifyingPolyline ();
std::vector <double>::const_iterator begin = generatedPoints.begin ();
std::vector <double>::const_iterator end = generatedPoints.end ();
t.start ();
simplify_radial_distance <2> (begin, end, tol.toDouble (),
std::back_inserter (mSimplifiedCoords));
duration = t.elapsed ();
emit SignalCleaningConvertedPolyline ();
break;
}
case LIST_LONGLONG:
{
// convert
emit SignalConvertingPolyline ();
std::list <long long> generatedPoints;
foreach (double coord, mGeneratedCoords) {
generatedPoints.push_back (coord);
}
// simplify
emit SignalSimplifyingPolyline ();
std::list <long long>::const_iterator begin = generatedPoints.begin ();
std::list <long long>::const_iterator end = generatedPoints.end ();
t.start ();
simplify_radial_distance <2> (begin, end, tol.toLongLong (),
std::back_inserter (mSimplifiedCoords));
duration = t.elapsed ();
emit SignalCleaningConvertedPolyline ();
break;
}
default:
break;
}
DoSignalSimplifiedPolyline (duration);
}
void DPWorker::SimplifyPD (Container cont, QString tol, int repeat) {
QTime t;
int duration = 0;
mSimplifiedCoords.clear ();
switch (cont) {
case ARRAY_FLOAT:
{
// convert
emit SignalConvertingPolyline ();
float* generatedPoints = new float [mGeneratedCoords.size ()];
for (int c=0; c<mGeneratedCoords.size (); c++) {
generatedPoints [c] = mGeneratedCoords [c];
}
// simplify
emit SignalSimplifyingPolyline ();
const float* begin = generatedPoints;
const float* end = generatedPoints + mGeneratedCoords.size ();
t.start ();
simplify_perpendicular_distance <2> (begin, end, tol.toFloat(), repeat,
std::back_inserter (mSimplifiedCoords));
duration = t.elapsed ();
// done
emit SignalCleaningConvertedPolyline ();
delete [] generatedPoints;
break;
}
case QVECTOR_DOUBLE:
{
// simplify
emit SignalSimplifyingPolyline ();
QVector <qreal>::const_iterator begin = mGeneratedCoords.constBegin ();
QVector <qreal>::const_iterator end = mGeneratedCoords.constEnd ();
t.start ();
simplify_perpendicular_distance <2> (begin, end, tol.toDouble (), repeat,
std::back_inserter (mSimplifiedCoords));
duration = t.elapsed ();
break;
}
case VECTOR_DOUBLE:
{
// convert
emit SignalConvertingPolyline ();
std::vector <double> generatedPoints = mGeneratedCoords.toStdVector ();
// simplify
emit SignalSimplifyingPolyline ();
std::vector <double>::const_iterator begin = generatedPoints.begin ();
std::vector <double>::const_iterator end = generatedPoints.end ();
t.start ();
simplify_perpendicular_distance <2> (begin, end, tol.toDouble (), repeat,
std::back_inserter (mSimplifiedCoords));
duration = t.elapsed ();
emit SignalCleaningConvertedPolyline ();
break;
}
case LIST_LONGLONG:
{
// convert
emit SignalConvertingPolyline ();
std::list <long long> generatedPoints;
foreach (double coord, mGeneratedCoords) {
generatedPoints.push_back (coord);
}
// simplify
emit SignalSimplifyingPolyline ();
std::list <long long>::const_iterator begin = generatedPoints.begin ();
std::list <long long>::const_iterator end = generatedPoints.end ();
t.start ();
simplify_perpendicular_distance <2> (begin, end, tol.toLongLong (), repeat,
std::back_inserter (mSimplifiedCoords));
duration = t.elapsed ();
emit SignalCleaningConvertedPolyline ();
break;
}
default:
break;
}
DoSignalSimplifiedPolyline (duration);
}
void DPWorker::SimplifyRW (Container cont, QString tol)
{
QTime t;
int duration = 0;
mSimplifiedCoords.clear ();
switch (cont) {
case ARRAY_FLOAT:
{
// convert
emit SignalConvertingPolyline ();
float* generatedPoints = new float [mGeneratedCoords.size ()];
for (int c=0; c<mGeneratedCoords.size (); c++) {
generatedPoints [c] = mGeneratedCoords [c];
}
// simplify
emit SignalSimplifyingPolyline ();
const float* begin = generatedPoints;
const float* end = generatedPoints + mGeneratedCoords.size ();
t.start ();
simplify_reumann_witkam <2> (begin, end, tol.toFloat(),
std::back_inserter (mSimplifiedCoords));
duration = t.elapsed ();
// done
emit SignalCleaningConvertedPolyline ();
delete [] generatedPoints;
break;
}
case QVECTOR_DOUBLE:
{
// simplify
emit SignalSimplifyingPolyline ();
QVector <qreal>::const_iterator begin = mGeneratedCoords.constBegin ();
QVector <qreal>::const_iterator end = mGeneratedCoords.constEnd ();
t.start ();
simplify_reumann_witkam <2> (begin, end, tol.toDouble (),
std::back_inserter (mSimplifiedCoords));
duration = t.elapsed ();
break;
}
case VECTOR_DOUBLE:
{
// convert
emit SignalConvertingPolyline ();
std::vector <double> generatedPoints = mGeneratedCoords.toStdVector ();
// simplify
emit SignalSimplifyingPolyline ();
std::vector <double>::const_iterator begin = generatedPoints.begin ();
std::vector <double>::const_iterator end = generatedPoints.end ();
t.start ();
simplify_reumann_witkam <2> (begin, end, tol.toDouble (),
std::back_inserter (mSimplifiedCoords));
duration = t.elapsed ();
emit SignalCleaningConvertedPolyline ();
break;
}
case LIST_LONGLONG:
{
// convert
emit SignalConvertingPolyline ();
std::list <long long> generatedPoints;
foreach (double coord, mGeneratedCoords) {
generatedPoints.push_back (coord);
}
// simplify
emit SignalSimplifyingPolyline ();
std::list <long long>::const_iterator begin = generatedPoints.begin ();
std::list <long long>::const_iterator end = generatedPoints.end ();
t.start ();
simplify_reumann_witkam <2> (begin, end, tol.toLongLong (),
std::back_inserter (mSimplifiedCoords));
duration = t.elapsed ();
emit SignalCleaningConvertedPolyline ();
break;
}
default:
break;
}
DoSignalSimplifiedPolyline (duration);
}
void DPWorker::SimplifyOp (Container cont, QString minTol, QString maxTol) {
QTime t;
int duration = 0;
mSimplifiedCoords.clear ();
switch (cont) {
case ARRAY_FLOAT:
{
// convert
emit SignalConvertingPolyline ();
float* generatedPoints = new float [mGeneratedCoords.size ()];
for (int c=0; c<mGeneratedCoords.size (); c++) {
generatedPoints [c] = mGeneratedCoords [c];
}
// simplify
emit SignalSimplifyingPolyline ();
const float* begin = generatedPoints;
const float* end = generatedPoints + mGeneratedCoords.size ();
t.start ();
simplify_opheim <2> (begin, end, minTol.toFloat(), maxTol.toFloat(),
std::back_inserter (mSimplifiedCoords));
duration = t.elapsed ();
// done
emit SignalCleaningConvertedPolyline ();
delete [] generatedPoints;
break;
}
case QVECTOR_DOUBLE:
{
// simplify
emit SignalSimplifyingPolyline ();
QVector <qreal>::const_iterator begin = mGeneratedCoords.constBegin ();
QVector <qreal>::const_iterator end = mGeneratedCoords.constEnd ();
t.start ();
simplify_opheim <2> (begin, end, minTol.toDouble(), maxTol.toDouble(),
std::back_inserter (mSimplifiedCoords));
duration = t.elapsed ();
break;
}
case VECTOR_DOUBLE:
{
// convert
emit SignalConvertingPolyline ();
std::vector <double> generatedPoints = mGeneratedCoords.toStdVector ();
// simplify
emit SignalSimplifyingPolyline ();
std::vector <double>::const_iterator begin = generatedPoints.begin ();
std::vector <double>::const_iterator end = generatedPoints.end ();
t.start ();
simplify_opheim <2> (begin, end, minTol.toDouble(), maxTol.toDouble(),
std::back_inserter (mSimplifiedCoords));
duration = t.elapsed ();
emit SignalCleaningConvertedPolyline ();
break;
}
case LIST_LONGLONG:
{
// convert
emit SignalConvertingPolyline ();
std::list <long long> generatedPoints;
foreach (double coord, mGeneratedCoords) {
generatedPoints.push_back (coord);
}
// simplify
emit SignalSimplifyingPolyline ();
std::list <long long>::const_iterator begin = generatedPoints.begin ();
std::list <long long>::const_iterator end = generatedPoints.end ();
t.start ();
simplify_opheim <2> (begin, end, minTol.toLongLong(), maxTol.toLongLong(),
std::back_inserter (mSimplifiedCoords));
duration = t.elapsed ();
emit SignalCleaningConvertedPolyline ();
break;
}
default:
break;
}
DoSignalSimplifiedPolyline (duration);
}
void DPWorker::SimplifyLa (Container cont, QString tol, int size) {
QTime t;
int duration = 0;
mSimplifiedCoords.clear ();
switch (cont) {
case ARRAY_FLOAT:
{
// convert
emit SignalConvertingPolyline ();
float* generatedPoints = new float [mGeneratedCoords.size ()];
for (int c=0; c<mGeneratedCoords.size (); c++) {
generatedPoints [c] = mGeneratedCoords [c];
}
// simplify
emit SignalSimplifyingPolyline ();
const float* begin = generatedPoints;
const float* end = generatedPoints + mGeneratedCoords.size ();
t.start ();
simplify_lang <2> (begin, end, tol.toFloat(), size,
std::back_inserter (mSimplifiedCoords));
duration = t.elapsed ();
// done
emit SignalCleaningConvertedPolyline ();
delete [] generatedPoints;
break;
}
case QVECTOR_DOUBLE:
{
// simplify
emit SignalSimplifyingPolyline ();
QVector <qreal>::const_iterator begin = mGeneratedCoords.constBegin ();
QVector <qreal>::const_iterator end = mGeneratedCoords.constEnd ();
t.start ();
simplify_lang <2> (begin, end, tol.toDouble(), size,
std::back_inserter (mSimplifiedCoords));
duration = t.elapsed ();
break;
}
case VECTOR_DOUBLE:
{
// convert
emit SignalConvertingPolyline ();
std::vector <double> generatedPoints = mGeneratedCoords.toStdVector ();
// simplify
emit SignalSimplifyingPolyline ();
std::vector <double>::const_iterator begin = generatedPoints.begin ();
std::vector <double>::const_iterator end = generatedPoints.end ();
t.start ();
simplify_lang <2> (begin, end, tol.toDouble(), size,
std::back_inserter (mSimplifiedCoords));
duration = t.elapsed ();
emit SignalCleaningConvertedPolyline ();
break;
}
case LIST_LONGLONG:
{
// convert
emit SignalConvertingPolyline ();
std::list <long long> generatedPoints;
foreach (double coord, mGeneratedCoords) {
generatedPoints.push_back (coord);
}
// simplify
emit SignalSimplifyingPolyline ();
std::list <long long>::const_iterator begin = generatedPoints.begin ();
std::list <long long>::const_iterator end = generatedPoints.end ();
t.start ();
simplify_lang <2> (begin, end, tol.toLongLong(), size,
std::back_inserter (mSimplifiedCoords));
duration = t.elapsed ();
emit SignalCleaningConvertedPolyline ();
break;
}
default:
break;
}
DoSignalSimplifiedPolyline (duration);
}
void DPWorker::SimplifyDP (Container cont, QString tol) {
QTime t;
int duration = 0;
mSimplifiedCoords.clear ();
switch (cont) {
case ARRAY_FLOAT:
{
// convert
emit SignalConvertingPolyline ();
float* generatedPoints = new float [mGeneratedCoords.size ()];
for (int c=0; c<mGeneratedCoords.size (); c++) {
generatedPoints [c] = mGeneratedCoords [c];
}
// simplify
emit SignalSimplifyingPolyline ();
const float* begin = generatedPoints;
const float* end = generatedPoints + mGeneratedCoords.size ();
t.start ();
simplify_douglas_peucker <2> (begin, end, tol.toFloat(),
std::back_inserter (mSimplifiedCoords));
duration = t.elapsed ();
// done
emit SignalCleaningConvertedPolyline ();
delete [] generatedPoints;
break;
}
case QVECTOR_DOUBLE:
{
// simplify
emit SignalSimplifyingPolyline ();
QVector <qreal>::const_iterator begin = mGeneratedCoords.constBegin ();
QVector <qreal>::const_iterator end = mGeneratedCoords.constEnd ();
t.start ();
simplify_douglas_peucker <2> (begin, end, tol.toDouble (),
std::back_inserter (mSimplifiedCoords));
duration = t.elapsed ();
break;
}
case VECTOR_DOUBLE:
{
// convert
emit SignalConvertingPolyline ();
std::vector <double> generatedPoints = mGeneratedCoords.toStdVector ();
// simplify
emit SignalSimplifyingPolyline ();
std::vector <double>::const_iterator begin = generatedPoints.begin ();
std::vector <double>::const_iterator end = generatedPoints.end ();
t.start ();
simplify_douglas_peucker <2> (begin, end, tol.toDouble (),
std::back_inserter (mSimplifiedCoords));
duration = t.elapsed ();
emit SignalCleaningConvertedPolyline ();
break;
}
case LIST_LONGLONG:
{
// convert
emit SignalConvertingPolyline ();
std::list <long long> generatedPoints;
foreach (double coord, mGeneratedCoords) {
generatedPoints.push_back (coord);
}
// simplify
emit SignalSimplifyingPolyline ();
std::list <long long>::const_iterator begin = generatedPoints.begin ();
std::list <long long>::const_iterator end = generatedPoints.end ();
t.start ();
simplify_douglas_peucker <2> (begin, end, tol.toLongLong (),
std::back_inserter (mSimplifiedCoords));
duration = t.elapsed ();
emit SignalCleaningConvertedPolyline ();
break;
}
default:
break;
}
DoSignalSimplifiedPolyline (duration);
}
void DPWorker::SimplifyDP_variant (Container cont, int count) {
QTime t;
int duration = 0;
mSimplifiedCoords.clear ();
switch (cont) {
case ARRAY_FLOAT:
{
// convert
emit SignalConvertingPolyline ();
float* generatedPoints = new float [mGeneratedCoords.size ()];
for (int c=0; c<mGeneratedCoords.size (); c++) {
generatedPoints [c] = mGeneratedCoords [c];
}
// simplify
emit SignalSimplifyingPolyline ();
const float* begin = generatedPoints;
const float* end = generatedPoints + mGeneratedCoords.size ();
t.start ();
simplify_douglas_peucker_n <2> (begin, end, count,
std::back_inserter (mSimplifiedCoords));
duration = t.elapsed ();
// done
emit SignalCleaningConvertedPolyline ();
delete [] generatedPoints;
break;
}
case QVECTOR_DOUBLE:
{
// simplify
emit SignalSimplifyingPolyline ();
QVector <qreal>::const_iterator begin = mGeneratedCoords.constBegin ();
QVector <qreal>::const_iterator end = mGeneratedCoords.constEnd ();
t.start ();
simplify_douglas_peucker_n <2> (begin, end, count,
std::back_inserter (mSimplifiedCoords));
duration = t.elapsed ();
break;
}
case VECTOR_DOUBLE:
{
// convert
emit SignalConvertingPolyline ();
std::vector <double> generatedPoints = mGeneratedCoords.toStdVector ();
// simplify
emit SignalSimplifyingPolyline ();
std::vector <double>::const_iterator begin = generatedPoints.begin ();
std::vector <double>::const_iterator end = generatedPoints.end ();
t.start ();
simplify_douglas_peucker_n <2> (begin, end, count,
std::back_inserter (mSimplifiedCoords));
duration = t.elapsed ();
emit SignalCleaningConvertedPolyline ();
break;
}
case LIST_LONGLONG:
{
// convert
emit SignalConvertingPolyline ();
std::list <long long> generatedPoints;
foreach (double coord, mGeneratedCoords) {
generatedPoints.push_back (coord);
}
// simplify
emit SignalSimplifyingPolyline ();
std::list <long long>::const_iterator begin = generatedPoints.begin ();
std::list <long long>::const_iterator end = generatedPoints.end ();
t.start ();
simplify_douglas_peucker_n <2> (begin, end, count,
std::back_inserter (mSimplifiedCoords));
duration = t.elapsed ();
emit SignalCleaningConvertedPolyline ();
break;
}
default:
break;
}
DoSignalSimplifiedPolyline (duration);
}
void DPWorker::SimplifyDP_reference (QString tol) {
mSimplifiedCoords.clear();
// convert generated polyline to Point array
emit SignalConvertingPolyline ();
int pointCount = mGeneratedCoords.size () / 2;
classic::Point* generatedPoints = new classic::Point [pointCount];
classic::Point* simplifiedPoints = new classic::Point [pointCount];
for (int i=0; i<pointCount; i++) {
generatedPoints [i].x = mGeneratedCoords [i*2];
generatedPoints [i].y = mGeneratedCoords [i*2+1];
}
emit SignalSimplifyingPolyline ();
QTime t;
t.start ();
// simplify
int simplCount = classic::poly_simplify (tol.toFloat (), generatedPoints,
pointCount, simplifiedPoints);
int duration = t.elapsed ();
// convert simplified Point array to simplified polyline
mSimplifiedCoords.resize (simplCount * 2);
for (int i=0; i<simplCount; i++) {
mSimplifiedCoords [i*2] = simplifiedPoints [i].x;
mSimplifiedCoords [i*2+1] = simplifiedPoints [i].y;
}
// done
delete [] generatedPoints;
delete [] simplifiedPoints;
DoSignalSimplifiedPolyline (duration);
}
void DPWorker::DoSignalSimplifiedPolyline (qreal duration) {
bool validStatistics = false;
math::Statistics stats =
compute_positional_error_statistics <2> (
mGeneratedCoords.constBegin (), mGeneratedCoords.constEnd (),
mSimplifiedCoords.constBegin (), mSimplifiedCoords.constEnd (), &validStatistics);
if (validStatistics) {
emit SignalSimplifiedPolyline (duration, mSimplifiedCoords, stats.max, stats.sum, stats.mean, stats.std);
}
else {
emit SignalSimplifiedPolyline (duration, mSimplifiedCoords);
}
}
} // namespace psimpl

View File

@ -1,101 +0,0 @@
/* ***** BEGIN LICENSE BLOCK *****
* Version: MPL 1.1
*
* The contents of this file are subject to the Mozilla Public License Version
* 1.1 (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
* http://www.mozilla.org/MPL/
*
* Software distributed under the License is distributed on an "AS IS" basis,
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
* for the specific language governing rights and limitations under the
* License.
*
* The Original Code is
* 'psimpl - generic n-dimensional polyline simplification'.
*
* The Initial Developer of the Original Code is
* Elmar de Koning.
* Portions created by the Initial Developer are Copyright (C) 2010-2011
* the Initial Developer. All Rights Reserved.
*
* Contributor(s):
*
* ***** END LICENSE BLOCK ***** */
/*
psimpl - generic n-dimensional polyline simplification
Copyright (C) 2010-2011 Elmar de Koning, edekoning@gmail.com
This file is part of psimpl, and is hosted at SourceForge:
http://sourceforge.net/projects/psimpl/
*/
#ifndef DPWORKER_H
#define DPWORKER_H
#include <QtCore/QObject>
#include <QtCore/QVector>
namespace psimpl {
typedef enum CONTAINER
{
ARRAY_FLOAT,
QVECTOR_DOUBLE,
VECTOR_DOUBLE,
LIST_LONGLONG,
} Container;
/*!
\brief Worker class for generating and simplifying polylines.
Polylines are always generated in a QVector <qreal> container. Before simplification the
polyline is converted to the specified container type. This allows for easy adding of new
container types.
*/
class DPWorker : public QObject
{
Q_OBJECT
public:
DPWorker (QObject* inParent = 0);
void Generate (int inCount);
void SimplifyNP (Container cont, int n);
void SimplifyRD (Container cont, QString tol);
void SimplifyPD (Container cont, QString tol, int repeat);
void SimplifyRW (Container cont, QString tol);
void SimplifyOp (Container cont, QString minTol, QString maxTol);
void SimplifyLa (Container cont, QString tol, int size);
void SimplifyDP (Container cont, QString tol);
void SimplifyDP_variant (Container cont, int count);
void SimplifyDP_reference (QString tol);
int GetGeneratedPointCount () { return mGeneratedCoords.size () / 2; }
int GetSimplifiedGeneratedPointCount () { return mSimplifiedCoords.size () / 2; }
private:
void DoSignalSimplifiedPolyline (qreal duration);
signals:
void SignalGeneratingPolyline ();
void SignalConvertingPolyline ();
void SignalSimplifyingPolyline ();
void SignalCleaningConvertedPolyline ();
void SignalGeneratedPolyline (int duration, QVector <qreal>& polyline);
void SignalSimplifiedPolyline (int duration, QVector <qreal>& polyline);
void SignalSimplifiedPolyline (int duration, QVector <qreal>& polyline, double max, double sum, double mean, double std);
private:
QVector <qreal> mGeneratedCoords;
QVector <qreal> mSimplifiedCoords;
};
} // namespace psimpl
#endif // DPWORKER_H

View File

@ -1,256 +0,0 @@
/* ***** BEGIN LICENSE BLOCK *****
* Version: MPL 1.1
*
* The contents of this file are subject to the Mozilla Public License Version
* 1.1 (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
* http://www.mozilla.org/MPL/
*
* Software distributed under the License is distributed on an "AS IS" basis,
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
* for the specific language governing rights and limitations under the
* License.
*
* The Original Code is
* 'psimpl - generic n-dimensional polyline simplification'.
*
* The Initial Developer of the Original Code is
* Elmar de Koning.
* Portions created by the Initial Developer are Copyright (C) 2010-2011
* the Initial Developer. All Rights Reserved.
*
* Contributor(s):
*
* ***** END LICENSE BLOCK ***** */
/*
psimpl - generic n-dimensional polyline simplification
Copyright (C) 2010-2011 Elmar de Koning, edekoning@gmail.com
This file is part of psimpl, and is hosted at SourceForge:
http://sourceforge.net/projects/psimpl/
*/
#include "MainWindow.h"
#include "ui_MainWindow.h"
#include "DPWorker.h"
#include <cmath>
#include <QtGui/QToolButton>
namespace psimpl {
MainWindow::MainWindow (QWidget *parent) :
QMainWindow (parent),
ui (new Ui::MainWindow)
{
mWorker = new DPWorker (this);
ui->setupUi (this);
ui->polyTypeComboBox->setCurrentIndex(VECTOR_DOUBLE);
#ifndef _DEBUG
ui->algorithmComboBox->removeItem (DOUGLAS_PEUCKER_REFERENCE);
#endif
connect (mWorker, SIGNAL (SignalGeneratingPolyline ()),
this, SLOT (SlotGeneratingPolyline ()));
connect (mWorker, SIGNAL (SignalConvertingPolyline ()),
this, SLOT (SlotConvertingPolyline ()));
connect (mWorker, SIGNAL (SignalSimplifyingPolyline ()),
this, SLOT (SlotSimplifyingPolyline ()));
connect (mWorker, SIGNAL (SignalCleaningConvertedPolyline ()),
this, SLOT (SlotCleaningConvertedPolyline ()));
connect (mWorker, SIGNAL (SignalGeneratedPolyline (int, QVector <qreal>&)),
this, SLOT (SlotGeneratedPolyline (int, QVector <qreal>&)));
connect (mWorker, SIGNAL (SignalSimplifiedPolyline (int, QVector <qreal>&)),
this, SLOT (SlotSimplifiedPolyline (int, QVector <qreal>&)));
connect (mWorker, SIGNAL (SignalSimplifiedPolyline (int, QVector <qreal>&, double, double, double, double)),
this, SLOT (SlotSimplifiedPolyline (int, QVector <qreal>&, double, double, double, double)));
}
MainWindow::~MainWindow ()
{
delete ui;
delete mWorker;
}
void MainWindow::changeEvent (QEvent *e)
{
QMainWindow::changeEvent (e);
switch (e->type ()) {
case QEvent::LanguageChange:
ui->retranslateUi (this);
break;
default:
break;
}
}
void MainWindow::EnableButtons ()
{
ui->generatePushButton->setEnabled (true);
ui->simplifyPushButton->setEnabled (true);
ui->togglePushButton->setEnabled(
ui->generatedPolylineCheckBox->isChecked () !=
ui->simplifiedPolylineCheckBox->isChecked ());
}
void MainWindow::DisableButtons ()
{
ui->generatePushButton->setDisabled (true);
ui->simplifyPushButton->setDisabled (true);
ui->togglePushButton->setDisabled (true);
}
void MainWindow::on_generatePushButton_clicked ()
{
QApplication::setOverrideCursor (QCursor (Qt::WaitCursor));
DisableButtons ();
mWorker->Generate (ui->polyPointCountSpinBox->value ());
}
void MainWindow::on_simplifyPushButton_clicked ()
{
QApplication::setOverrideCursor (QCursor (Qt::WaitCursor));
DisableButtons ();
switch (ui->algorithmComboBox->currentIndex ())
{
case NTH_POINT:
mWorker->SimplifyNP ((Container)ui->polyTypeComboBox->currentIndex (), ui->npSpinBox->value ());
break;
case RADIAL_DISTANCE:
mWorker->SimplifyRD ((Container)ui->polyTypeComboBox->currentIndex (), ui->rdLineEdit->text ());
break;
case PERPENDICULAR_DISTANCE:
mWorker->SimplifyPD ((Container)ui->polyTypeComboBox->currentIndex (), ui->pdLineEdit->text (), ui->pdSpinBox->value ());
break;
case REUMANN_WITKAM:
mWorker->SimplifyRW ((Container)ui->polyTypeComboBox->currentIndex (), ui->rwLineEdit->text ());
break;
case OPHEIM:
mWorker->SimplifyOp ((Container)ui->polyTypeComboBox->currentIndex (), ui->minOpLineEdit->text (), ui->maxOpLineEdit->text ());
break;
case LANG:
mWorker->SimplifyLa ((Container)ui->polyTypeComboBox->currentIndex (), ui->laLineEdit->text (), ui->lookAheadLaSpinBox->value ());
break;
case DOUGLAS_PEUCKER:
mWorker->SimplifyDP ((Container)ui->polyTypeComboBox->currentIndex (), ui->dpLineEdit->text ());
break;
case DOUGLAS_PEUCKER_VARIANT:
mWorker->SimplifyDP_variant ((Container)ui->polyTypeComboBox->currentIndex (), ui->dpvSpinBox->value ());
break;
case DOUGLAS_PEUCKER_REFERENCE:
mWorker->SimplifyDP_reference (ui->dprLineEdit->text ());
break;
}
}
void MainWindow::on_algorithmComboBox_currentIndexChanged (int index)
{
if (index == DOUGLAS_PEUCKER_REFERENCE) {
ui->polyTypeComboBox->setCurrentIndex (ARRAY_FLOAT);
ui->polyTypeComboBox->setDisabled (true);
}
else {
ui->polyTypeComboBox->setEnabled (true);
}
}
void MainWindow::on_generatedPolylineCheckBox_toggled (bool checked)
{
ui->renderArea->SetVisibleGeneratedPolyline (checked);
ui->togglePushButton->setDisabled(
ui->generatedPolylineCheckBox->isChecked () ==
ui->simplifiedPolylineCheckBox->isChecked ());
update();
}
void MainWindow::on_simplifiedPolylineCheckBox_toggled (bool checked)
{
ui->renderArea->SetVisibleSimplifiedPolyline (checked);
ui->togglePushButton->setDisabled(
ui->generatedPolylineCheckBox->isChecked () ==
ui->simplifiedPolylineCheckBox->isChecked ());
update();
}
void MainWindow::on_keepAspectRatioCheckBox_toggled (bool checked)
{
ui->renderArea->SetKeepAspectRatio (checked);
update();
}
void MainWindow::SlotGeneratingPolyline () {
ui->statusBar->showMessage ("Generating polyline...");
}
void MainWindow::SlotConvertingPolyline () {
ui->statusBar->showMessage (QString ("Converting polyline to '%1'...").arg (ui->polyTypeComboBox->currentText ()));
}
void MainWindow::SlotSimplifyingPolyline () {
ui->statusBar->showMessage ("Simplifying polyline...");
}
void MainWindow::SlotCleaningConvertedPolyline () {
ui->statusBar->showMessage ("Deleting converted polyline...");
}
void MainWindow::SlotGeneratedPolyline (int duration, QVector <qreal>& polyline)
{
ui->statusBar->showMessage (QString ("Generation took %1 ms").arg (duration));
ui->renderArea->SetGeneratedPolyline (polyline);
ui->simplGroupBox->setEnabled (true);
EnableButtons ();
QApplication::restoreOverrideCursor ();
update();
}
void MainWindow::SlotSimplifiedPolyline (int duration, QVector <qreal>& polyline)
{
int pointCount = polyline.count () / 2;
ui->maxValueLabel->setText ("-");
ui->sumValueLabel->setText ("-");
ui->meanValueLabel->setText ("-");
ui->stdValueLabel->setText ("-");
ui->statusBar->showMessage (
QString ("Simplification took %1 ms; %2 (%3%) points remaining").
arg (duration).
arg (pointCount).
arg (100.0 * pointCount / mWorker->GetGeneratedPointCount()));
ui->renderArea->SetSimplifiedPolyline(polyline);
EnableButtons ();
QApplication::restoreOverrideCursor ();
update();
}
void MainWindow::SlotSimplifiedPolyline (int duration, QVector <qreal>& polyline, double max, double sum, double mean, double std)
{
int pointCount = polyline.count () / 2;
ui->maxValueLabel->setText (QString::number (max));
ui->sumValueLabel->setText (QString::number (sum));
ui->meanValueLabel->setText (QString::number (mean));
ui->stdValueLabel->setText (QString::number (std));
ui->statusBar->showMessage (
QString ("Simplification took %1 ms; %2 (%3%) points remaining").
arg (duration).
arg (pointCount).
arg (100.0 * pointCount / mWorker->GetGeneratedPointCount()));
ui->renderArea->SetSimplifiedPolyline(polyline);
EnableButtons ();
QApplication::restoreOverrideCursor ();
update();
}
} // namespace psimpl

View File

@ -1,106 +0,0 @@
/* ***** BEGIN LICENSE BLOCK *****
* Version: MPL 1.1
*
* The contents of this file are subject to the Mozilla Public License Version
* 1.1 (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
* http://www.mozilla.org/MPL/
*
* Software distributed under the License is distributed on an "AS IS" basis,
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
* for the specific language governing rights and limitations under the
* License.
*
* The Original Code is
* 'psimpl - generic n-dimensional polyline simplification'.
*
* The Initial Developer of the Original Code is
* Elmar de Koning.
* Portions created by the Initial Developer are Copyright (C) 2010-2011
* the Initial Developer. All Rights Reserved.
*
* Contributor(s):
*
* ***** END LICENSE BLOCK ***** */
/*
psimpl - generic n-dimensional polyline simplification
Copyright (C) 2010-2011 Elmar de Koning, edekoning@gmail.com
This file is part of psimpl, and is hosted at SourceForge:
http://sourceforge.net/projects/psimpl/
*/
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <QtGui/QMainWindow>
namespace Ui {
class MainWindow;
}
namespace psimpl {
class DPWorker;
typedef enum ALGORITHM
{
NTH_POINT,
RADIAL_DISTANCE,
PERPENDICULAR_DISTANCE,
REUMANN_WITKAM,
OPHEIM,
LANG,
DOUGLAS_PEUCKER,
DOUGLAS_PEUCKER_VARIANT,
DOUGLAS_PEUCKER_REFERENCE,
} Algorithm;
/*!
\brief Mainwindow where polylines can be generated and simplified.
Multiple simplification algorithms, implementations and container types can be experimented
with.
*/
class MainWindow : public QMainWindow {
Q_OBJECT
public:
MainWindow (QWidget *parent = 0);
~MainWindow ();
protected:
void changeEvent (QEvent *e);
private:
void EnableButtons ();
void DisableButtons ();
private:
Ui::MainWindow *ui;
DPWorker* mWorker;
private slots:
void on_simplifiedPolylineCheckBox_toggled(bool checked);
void on_generatedPolylineCheckBox_toggled(bool checked);
void on_keepAspectRatioCheckBox_toggled(bool checked);
void on_simplifyPushButton_clicked ();
void on_algorithmComboBox_currentIndexChanged(int index);
void on_generatePushButton_clicked ();
void SlotGeneratingPolyline ();
void SlotConvertingPolyline ();
void SlotSimplifyingPolyline ();
void SlotCleaningConvertedPolyline ();
void SlotGeneratedPolyline (int duration, QVector <qreal>& polyline);
void SlotSimplifiedPolyline (int duration, QVector <qreal>& polyline);
void SlotSimplifiedPolyline (int duration, QVector <qreal>& polyline, double max, double sum, double mean, double std);
};
} // namespace psimpl
#endif // MAINWINDOW_H

View File

@ -1,855 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>MainWindow</class>
<widget class="QMainWindow" name="MainWindow">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>800</width>
<height>600</height>
</rect>
</property>
<property name="windowTitle">
<string>psimpl v7 - generic n-dimensional polyline simplification</string>
</property>
<property name="locale">
<locale language="English" country="UnitedStates"/>
</property>
<widget class="QWidget" name="centralWidget">
<layout class="QVBoxLayout" name="verticalLayout_2">
<item>
<widget class="QLabel" name="label">
<property name="text">
<string>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
p, li { white-space: pre-wrap; }
&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;&quot;&gt;
&lt;p align=&quot;center&quot; style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:10pt; font-weight:600;&quot;&gt;psimple v7&lt;/span&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt; &lt;/span&gt;&lt;span style=&quot; font-size:8pt; color:#000000;&quot;&gt;© Copyright 2010 - 2011 &lt;/span&gt;&lt;a href=&quot;edekoning@gmail.com&quot;&gt;&lt;span style=&quot; font-size:8pt; text-decoration: underline; color:#0000ff;&quot;&gt;Elmar de Koning&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt;; License - &lt;/span&gt;&lt;a href=&quot;http://www.opensource.org/licenses/mozilla1.1.php&quot;&gt;&lt;span style=&quot; font-size:8pt; text-decoration: underline; color:#0000ff;&quot;&gt;MPL 1.1&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt;; Website - &lt;/span&gt;&lt;a href=&quot;http://psimpl.sf.net&quot;&gt;&lt;span style=&quot; font-size:8pt; text-decoration: underline; color:#0000ff;&quot;&gt;psimpl.sf.net&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt;; Article - &lt;/span&gt;&lt;a href=&quot;http://www.codeproject.com/KB/recipes/PolylineSimplification.aspx&quot;&gt;&lt;span style=&quot; font-size:8pt; text-decoration: underline; color:#0000ff;&quot;&gt;CodeProject&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
</property>
<property name="openExternalLinks">
<bool>true</bool>
</property>
<property name="textInteractionFlags">
<set>Qt::LinksAccessibleByKeyboard|Qt::LinksAccessibleByMouse</set>
</property>
</widget>
</item>
<item>
<widget class="psimpl::RenderArea" name="renderArea">
<property name="sizePolicy">
<sizepolicy hsizetype="Expanding" vsizetype="Expanding">
<horstretch>0</horstretch>
<verstretch>3</verstretch>
</sizepolicy>
</property>
<property name="frameShape">
<enum>QFrame::StyledPanel</enum>
</property>
<property name="frameShadow">
<enum>QFrame::Sunken</enum>
</property>
</widget>
</item>
<item>
<layout class="QHBoxLayout" name="horizontalLayout">
<item>
<widget class="QGroupBox" name="polyGroupBox">
<property name="sizePolicy">
<sizepolicy hsizetype="Maximum" vsizetype="Preferred">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="title">
<string>Polyline</string>
</property>
<layout class="QGridLayout" name="gridLayout_2">
<item row="1" column="0">
<widget class="QLabel" name="polyTypeLabel">
<property name="text">
<string>Type</string>
</property>
<property name="alignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
</property>
</widget>
</item>
<item row="1" column="1">
<widget class="QComboBox" name="polyTypeComboBox">
<item>
<property name="text">
<string>float []</string>
</property>
</item>
<item>
<property name="text">
<string>QVector &lt;double&gt;</string>
</property>
</item>
<item>
<property name="text">
<string>std::vector &lt;double&gt;</string>
</property>
</item>
<item>
<property name="text">
<string>std::list &lt;long long&gt;</string>
</property>
</item>
</widget>
</item>
<item row="4" column="1">
<widget class="QPushButton" name="generatePushButton">
<property name="sizePolicy">
<sizepolicy hsizetype="Expanding" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="text">
<string>Generate</string>
</property>
</widget>
</item>
<item row="0" column="0">
<widget class="QLabel" name="polyPointCountLabel">
<property name="text">
<string>Point count</string>
</property>
<property name="alignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
</property>
</widget>
</item>
<item row="0" column="1">
<widget class="QSpinBox" name="polyPointCountSpinBox">
<property name="minimum">
<number>2</number>
</property>
<property name="maximum">
<number>10000000</number>
</property>
<property name="singleStep">
<number>10000</number>
</property>
<property name="value">
<number>100000</number>
</property>
</widget>
</item>
<item row="2" column="1">
<spacer name="verticalSpacer_13">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
</layout>
</widget>
</item>
<item>
<widget class="QGroupBox" name="simplGroupBox">
<property name="enabled">
<bool>true</bool>
</property>
<property name="sizePolicy">
<sizepolicy hsizetype="Maximum" vsizetype="Preferred">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="title">
<string>Simplification</string>
</property>
<layout class="QGridLayout" name="gridLayout">
<item row="0" column="1">
<widget class="QComboBox" name="algorithmComboBox">
<item>
<property name="text">
<string>Nth point</string>
</property>
</item>
<item>
<property name="text">
<string>Radial distance</string>
</property>
</item>
<item>
<property name="text">
<string>Perpendicular distance</string>
</property>
</item>
<item>
<property name="text">
<string>Reumann-Witkam</string>
</property>
</item>
<item>
<property name="text">
<string>Opheim</string>
</property>
</item>
<item>
<property name="text">
<string>Lang</string>
</property>
</item>
<item>
<property name="text">
<string>Douglas-Peucker</string>
</property>
</item>
<item>
<property name="text">
<string>Douglas-Peucker (variant)</string>
</property>
</item>
<item>
<property name="text">
<string>Douglas-Peucker (reference)</string>
</property>
</item>
</widget>
</item>
<item row="0" column="0">
<widget class="QLabel" name="algorithmLabel">
<property name="text">
<string>Algorithm</string>
</property>
<property name="alignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
</property>
</widget>
</item>
<item row="2" column="1">
<widget class="QPushButton" name="simplifyPushButton">
<property name="enabled">
<bool>false</bool>
</property>
<property name="text">
<string>Simplify</string>
</property>
</widget>
</item>
<item row="1" column="1">
<widget class="QStackedWidget" name="editStackedWidget">
<property name="currentIndex">
<number>0</number>
</property>
<widget class="QWidget" name="npPage_2">
<layout class="QVBoxLayout" name="verticalLayout_16">
<property name="margin">
<number>0</number>
</property>
<item>
<widget class="QSpinBox" name="npSpinBox">
<property name="maximum">
<number>10000000</number>
</property>
</widget>
</item>
</layout>
</widget>
<widget class="QWidget" name="rdPage_2">
<layout class="QVBoxLayout" name="verticalLayout">
<property name="margin">
<number>0</number>
</property>
<item>
<widget class="QLineEdit" name="rdLineEdit">
<property name="text">
<string>0</string>
</property>
</widget>
</item>
</layout>
</widget>
<widget class="QWidget" name="pdPage_2">
<layout class="QVBoxLayout" name="verticalLayout_15">
<property name="margin">
<number>0</number>
</property>
<item>
<widget class="QLineEdit" name="pdLineEdit">
<property name="text">
<string>0</string>
</property>
</widget>
</item>
<item>
<widget class="QSpinBox" name="pdSpinBox">
<property name="maximum">
<number>1000000</number>
</property>
<property name="value">
<number>1</number>
</property>
</widget>
</item>
</layout>
</widget>
<widget class="QWidget" name="rwPage_2">
<layout class="QVBoxLayout" name="verticalLayout_6">
<property name="margin">
<number>0</number>
</property>
<item>
<widget class="QLineEdit" name="rwLineEdit">
<property name="inputMask">
<string/>
</property>
<property name="text">
<string>0</string>
</property>
</widget>
</item>
</layout>
</widget>
<widget class="QWidget" name="opPage_2">
<layout class="QVBoxLayout" name="verticalLayout_18">
<property name="margin">
<number>0</number>
</property>
<item>
<widget class="QLineEdit" name="minOpLineEdit">
<property name="text">
<string>0</string>
</property>
</widget>
</item>
<item>
<widget class="QLineEdit" name="maxOpLineEdit">
<property name="text">
<string>0</string>
</property>
</widget>
</item>
</layout>
</widget>
<widget class="QWidget" name="laPage_2">
<layout class="QVBoxLayout" name="verticalLayout_20">
<property name="margin">
<number>0</number>
</property>
<item>
<widget class="QLineEdit" name="laLineEdit">
<property name="text">
<string>0</string>
</property>
</widget>
</item>
<item>
<widget class="QSpinBox" name="lookAheadLaSpinBox">
<property name="maximum">
<number>10000000</number>
</property>
<property name="value">
<number>1</number>
</property>
</widget>
</item>
</layout>
</widget>
<widget class="QWidget" name="dpPage_2">
<layout class="QVBoxLayout" name="verticalLayout_8">
<property name="margin">
<number>0</number>
</property>
<item>
<widget class="QLineEdit" name="dpLineEdit">
<property name="text">
<string>0</string>
</property>
</widget>
</item>
</layout>
</widget>
<widget class="QWidget" name="dpvPage_2">
<layout class="QVBoxLayout" name="verticalLayout_7">
<property name="margin">
<number>0</number>
</property>
<item>
<widget class="QSpinBox" name="dpvSpinBox">
<property name="minimum">
<number>0</number>
</property>
<property name="maximum">
<number>10000000</number>
</property>
<property name="singleStep">
<number>10</number>
</property>
<property name="value">
<number>0</number>
</property>
</widget>
</item>
</layout>
</widget>
<widget class="QWidget" name="dprPage_2">
<layout class="QVBoxLayout" name="verticalLayout_12">
<property name="margin">
<number>0</number>
</property>
<item>
<widget class="QLineEdit" name="dprLineEdit">
<property name="text">
<string>0</string>
</property>
</widget>
</item>
</layout>
</widget>
</widget>
</item>
<item row="1" column="0">
<widget class="QStackedWidget" name="labelStackedWidget">
<property name="currentIndex">
<number>0</number>
</property>
<widget class="QWidget" name="npPage">
<layout class="QVBoxLayout" name="verticalLayout_14">
<property name="margin">
<number>0</number>
</property>
<item>
<widget class="QLabel" name="npLabel">
<property name="text">
<string>n</string>
</property>
<property name="alignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
</property>
</widget>
</item>
</layout>
</widget>
<widget class="QWidget" name="rdPage">
<layout class="QVBoxLayout" name="verticalLayout_4">
<property name="margin">
<number>0</number>
</property>
<item>
<widget class="QLabel" name="rdLabel">
<property name="text">
<string>Radial distance</string>
</property>
<property name="alignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
</property>
</widget>
</item>
</layout>
</widget>
<widget class="QWidget" name="pdPage">
<layout class="QVBoxLayout" name="verticalLayout_13">
<property name="margin">
<number>0</number>
</property>
<item>
<widget class="QLabel" name="pdLabel">
<property name="text">
<string>Perpendicular distance</string>
</property>
<property name="alignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
</property>
</widget>
</item>
<item>
<widget class="QLabel" name="repeatLabel">
<property name="text">
<string>Repeat count</string>
</property>
<property name="alignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
</property>
</widget>
</item>
</layout>
</widget>
<widget class="QWidget" name="rwPage">
<layout class="QVBoxLayout" name="verticalLayout_5">
<property name="margin">
<number>0</number>
</property>
<item>
<widget class="QLabel" name="rwLabel">
<property name="text">
<string>Perpendicular distance</string>
</property>
<property name="alignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
</property>
</widget>
</item>
</layout>
</widget>
<widget class="QWidget" name="opPage">
<layout class="QVBoxLayout" name="verticalLayout_17">
<property name="margin">
<number>0</number>
</property>
<item>
<widget class="QLabel" name="minOpLabel">
<property name="text">
<string>Minimum distance</string>
</property>
<property name="alignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
</property>
</widget>
</item>
<item>
<widget class="QLabel" name="maxOpLabel">
<property name="text">
<string>Maximum distance</string>
</property>
<property name="alignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
</property>
</widget>
</item>
</layout>
</widget>
<widget class="QWidget" name="laPage">
<layout class="QVBoxLayout" name="verticalLayout_19">
<property name="margin">
<number>0</number>
</property>
<item>
<widget class="QLabel" name="laLabel">
<property name="text">
<string>Perpendicular distance</string>
</property>
<property name="alignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
</property>
</widget>
</item>
<item>
<widget class="QLabel" name="lookAheadLaLabel">
<property name="text">
<string>Look ahead</string>
</property>
<property name="alignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
</property>
</widget>
</item>
</layout>
</widget>
<widget class="QWidget" name="dpPage">
<layout class="QVBoxLayout" name="verticalLayout_9">
<property name="margin">
<number>0</number>
</property>
<item>
<widget class="QLabel" name="dpLabel">
<property name="text">
<string>Perpendicular distance</string>
</property>
<property name="alignment">
<set>Qt::AlignCenter</set>
</property>
</widget>
</item>
</layout>
</widget>
<widget class="QWidget" name="dpvPage">
<layout class="QVBoxLayout" name="verticalLayout_10">
<property name="margin">
<number>0</number>
</property>
<item>
<widget class="QLabel" name="dpvLabel">
<property name="text">
<string>Point count</string>
</property>
<property name="alignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
</property>
</widget>
</item>
</layout>
</widget>
<widget class="QWidget" name="dprPage">
<layout class="QVBoxLayout" name="verticalLayout_11">
<property name="margin">
<number>0</number>
</property>
<item>
<widget class="QLabel" name="dprLabel">
<property name="text">
<string>Perpendicular distance</string>
</property>
<property name="alignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
</property>
</widget>
</item>
</layout>
</widget>
</widget>
</item>
</layout>
</widget>
</item>
<item>
<widget class="QGroupBox" name="graphiscGroupBox">
<property name="title">
<string>Graphics</string>
</property>
<layout class="QVBoxLayout" name="verticalLayout_3">
<item>
<widget class="QCheckBox" name="generatedPolylineCheckBox">
<property name="text">
<string>Generated Polyline</string>
</property>
<property name="checked">
<bool>true</bool>
</property>
</widget>
</item>
<item>
<widget class="QCheckBox" name="simplifiedPolylineCheckBox">
<property name="text">
<string>Simplified Polyline</string>
</property>
<property name="checked">
<bool>false</bool>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="togglePushButton">
<property name="text">
<string>Toggle</string>
</property>
</widget>
</item>
<item>
<widget class="QCheckBox" name="keepAspectRatioCheckBox">
<property name="text">
<string>Keep aspect ratio</string>
</property>
<property name="checked">
<bool>true</bool>
</property>
</widget>
</item>
</layout>
</widget>
</item>
<item>
<widget class="QGroupBox" name="positionalErrorGroupBox">
<property name="toolTip">
<string>Positional errors are only calculated for doubles!</string>
</property>
<property name="title">
<string>Positional error</string>
</property>
<layout class="QGridLayout" name="gridLayout_3">
<item row="0" column="0">
<widget class="QLabel" name="sumLabel">
<property name="text">
<string>Sum</string>
</property>
<property name="alignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
</property>
</widget>
</item>
<item row="1" column="0">
<widget class="QLabel" name="maxLabel">
<property name="text">
<string>Max</string>
</property>
<property name="alignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
</property>
</widget>
</item>
<item row="2" column="0">
<widget class="QLabel" name="meanLabel">
<property name="text">
<string>Mean</string>
</property>
<property name="alignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
</property>
</widget>
</item>
<item row="3" column="0">
<widget class="QLabel" name="stdLabel">
<property name="text">
<string>Std</string>
</property>
<property name="alignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
</property>
</widget>
</item>
<item row="0" column="1">
<widget class="QLabel" name="sumValueLabel">
<property name="text">
<string>-</string>
</property>
</widget>
</item>
<item row="1" column="1">
<widget class="QLabel" name="maxValueLabel">
<property name="text">
<string>-</string>
</property>
</widget>
</item>
<item row="2" column="1">
<widget class="QLabel" name="meanValueLabel">
<property name="text">
<string>-</string>
</property>
</widget>
</item>
<item row="3" column="1">
<widget class="QLabel" name="stdValueLabel">
<property name="text">
<string>-</string>
</property>
</widget>
</item>
</layout>
</widget>
</item>
<item>
<spacer name="horizontalSpacer">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
</layout>
</item>
</layout>
</widget>
<widget class="QStatusBar" name="statusBar"/>
<action name="aboutAction">
<property name="text">
<string>?</string>
</property>
<property name="toolTip">
<string>About psimpl</string>
</property>
<property name="shortcut">
<string>F1</string>
</property>
</action>
</widget>
<layoutdefault spacing="6" margin="11"/>
<customwidgets>
<customwidget>
<class>psimpl::RenderArea</class>
<extends>QFrame</extends>
<header>RenderArea.h</header>
<container>1</container>
</customwidget>
</customwidgets>
<tabstops>
<tabstop>polyPointCountSpinBox</tabstop>
<tabstop>polyTypeComboBox</tabstop>
<tabstop>generatePushButton</tabstop>
<tabstop>algorithmComboBox</tabstop>
<tabstop>npSpinBox</tabstop>
<tabstop>rdLineEdit</tabstop>
<tabstop>pdLineEdit</tabstop>
<tabstop>pdSpinBox</tabstop>
<tabstop>rwLineEdit</tabstop>
<tabstop>dpLineEdit</tabstop>
<tabstop>dpvSpinBox</tabstop>
<tabstop>dprLineEdit</tabstop>
<tabstop>simplifyPushButton</tabstop>
<tabstop>generatedPolylineCheckBox</tabstop>
<tabstop>simplifiedPolylineCheckBox</tabstop>
</tabstops>
<resources/>
<connections>
<connection>
<sender>togglePushButton</sender>
<signal>clicked()</signal>
<receiver>generatedPolylineCheckBox</receiver>
<slot>toggle()</slot>
<hints>
<hint type="sourcelabel">
<x>674</x>
<y>559</y>
</hint>
<hint type="destinationlabel">
<x>674</x>
<y>504</y>
</hint>
</hints>
</connection>
<connection>
<sender>togglePushButton</sender>
<signal>clicked()</signal>
<receiver>simplifiedPolylineCheckBox</receiver>
<slot>toggle()</slot>
<hints>
<hint type="sourcelabel">
<x>674</x>
<y>559</y>
</hint>
<hint type="destinationlabel">
<x>674</x>
<y>529</y>
</hint>
</hints>
</connection>
<connection>
<sender>algorithmComboBox</sender>
<signal>currentIndexChanged(int)</signal>
<receiver>labelStackedWidget</receiver>
<slot>setCurrentIndex(int)</slot>
<hints>
<hint type="sourcelabel">
<x>256</x>
<y>503</y>
</hint>
<hint type="destinationlabel">
<x>210</x>
<y>519</y>
</hint>
</hints>
</connection>
<connection>
<sender>algorithmComboBox</sender>
<signal>currentIndexChanged(int)</signal>
<receiver>editStackedWidget</receiver>
<slot>setCurrentIndex(int)</slot>
<hints>
<hint type="sourcelabel">
<x>281</x>
<y>490</y>
</hint>
<hint type="destinationlabel">
<x>279</x>
<y>512</y>
</hint>
</hints>
</connection>
</connections>
</ui>

View File

@ -1,41 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<VisualStudioToolFile
Name="QT rules"
Version="8.00"
>
<Rules>
<CustomBuildRule
Name="UIC"
DisplayName="UI compiler"
CommandLine="$(QTDIR)\bin\uic $(InputPath) -o $(InputDir)\ui_$(InputName).h"
Outputs="$(InputDir)\ui_$(InputName).h"
FileExtensions="*.ui"
ExecutionDescription="Uic&apos;ing $(InputFileName)"
>
<Properties>
</Properties>
</CustomBuildRule>
<CustomBuildRule
Name="MOC"
DisplayName="MOC compiler"
CommandLine="$(QTDIR)\bin\moc $(InputPath) -o $(InputDir)\moc_$(InputName).cpp"
Outputs="$(InputDir)\moc_$(InputName).cpp"
FileExtensions="*.moc"
ExecutionDescription="Moc&apos;ing $(InputFileName)"
>
<Properties>
</Properties>
</CustomBuildRule>
<CustomBuildRule
Name="RCC"
DisplayName="RCC compiler"
CommandLine="$(QTDIR)\bin\rcc $(InputPath) -o $(InputDir)\qrc_$(InputName).cpp -name $(ProjectName)"
Outputs="$(InputDir)\qrc_$(InputName).cpp"
FileExtensions="*.qrc"
ExecutionDescription="RCC&apos;ing $(InputFileName)"
>
<Properties>
</Properties>
</CustomBuildRule>
</Rules>
</VisualStudioToolFile>

View File

@ -1,123 +0,0 @@
/* ***** BEGIN LICENSE BLOCK *****
* Version: MPL 1.1
*
* The contents of this file are subject to the Mozilla Public License Version
* 1.1 (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
* http://www.mozilla.org/MPL/
*
* Software distributed under the License is distributed on an "AS IS" basis,
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
* for the specific language governing rights and limitations under the
* License.
*
* The Original Code is
* 'psimpl - generic n-dimensional polyline simplification'.
*
* The Initial Developer of the Original Code is
* Elmar de Koning.
* Portions created by the Initial Developer are Copyright (C) 2010-2011
* the Initial Developer. All Rights Reserved.
*
* Contributor(s):
*
* ***** END LICENSE BLOCK ***** */
/*
psimpl - generic n-dimensional polyline simplification
Copyright (C) 2010-2011 Elmar de Koning, edekoning@gmail.com
This file is part of psimpl, and is hosted at SourceForge:
http://sourceforge.net/projects/psimpl/
*/
#include "RenderArea.h"
#include <QtGui/QPainter>
namespace psimpl {
RenderArea::RenderArea (QWidget *inParent, Qt::WindowFlags inFlags) :
QFrame (inParent, inFlags),
mDrawGeneratedPolyline (true),
mDrawSimplifiedPolyline (false),
mKeepAspectRatio (true)
{
}
void RenderArea::paintEvent(QPaintEvent * /*inEvent*/) {
if (!mGeneratedPolyline.elementCount ())
return;
QRectF rect = mGeneratedPolyline.boundingRect ();
if (!rect.isValid ())
return;
QPainter painter (this);
if (mKeepAspectRatio) {
qreal scale = qMin ((width () - 1) / rect.width (), (height () - 1) / rect.height ());
painter.translate ((width () - (rect.width () * scale)) / 2.0,
(height () - (rect.height () * scale)) / 2.0);
painter.scale (scale, scale);
painter.translate (-rect.left (), -rect.top ());
}
else {
painter.scale ((width () - 1) / rect.width (), (height () - 1) / rect.height ());
painter.translate (-rect.left (), -rect.top ());
}
if (mDrawGeneratedPolyline) {
painter.setPen (Qt::darkBlue);
painter.drawPath (mGeneratedPolyline);
}
if (!mSimplifiedPolyline.elementCount ())
return;
if (mDrawSimplifiedPolyline) {
painter.setPen (Qt::darkRed);
painter.drawPath (mSimplifiedPolyline);
}
}
QPainterPath RenderArea::Convert (QVector <qreal>& polyline)
{
// limit paths to max 100.000 points to speed up drawing
const int threshold = 100000;
QPainterPath path;
if (polyline.empty ()) {
return path;
}
int pointCount = polyline.size () / 2;
qreal skipStep = (qreal) (pointCount - threshold) / (qreal) threshold;
qreal skipValue = skipStep;
path.moveTo(polyline [0], polyline [1]);
for (int i=1; i<pointCount; i++) {
if (skipValue > 1.0) {
skipValue -= 1.0;
}
else {
path.lineTo (polyline [i*2], polyline [i*2+1]);
skipValue += skipStep;
}
}
int elemCount = path.elementCount ();
elemCount++;
return path;
}
void RenderArea::SetGeneratedPolyline (QVector <qreal>& polyline)
{
mSimplifiedPolyline = QPainterPath ();
mGeneratedPolyline = Convert (polyline);
}
void RenderArea::SetSimplifiedPolyline (QVector <qreal>& polyline)
{
mSimplifiedPolyline = Convert (polyline);
}
} // namespace psimpl

View File

@ -1,76 +0,0 @@
/* ***** BEGIN LICENSE BLOCK *****
* Version: MPL 1.1
*
* The contents of this file are subject to the Mozilla Public License Version
* 1.1 (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
* http://www.mozilla.org/MPL/
*
* Software distributed under the License is distributed on an "AS IS" basis,
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
* for the specific language governing rights and limitations under the
* License.
*
* The Original Code is
* 'psimpl - generic n-dimensional polyline simplification'.
*
* The Initial Developer of the Original Code is
* Elmar de Koning.
* Portions created by the Initial Developer are Copyright (C) 2010-2011
* the Initial Developer. All Rights Reserved.
*
* Contributor(s):
*
* ***** END LICENSE BLOCK ***** */
/*
psimpl - generic n-dimensional polyline simplification
Copyright (C) 2010-2011 Elmar de Koning, edekoning@gmail.com
This file is part of psimpl, and is hosted at SourceForge:
http://sourceforge.net/projects/psimpl/
*/
#ifndef RENDERAREA_H
#define RENDERAREA_H
#include <QtGui/QFrame>
#include <QtGui/QPainterPath>
namespace psimpl {
/*!
\brief A frame that can draw polylines and their simplification.
Note that the point count of each polyline is always limited to 100.000 to speed up drawing.
*/
class RenderArea : public QFrame
{
public:
RenderArea (QWidget *inParent = 0, Qt::WindowFlags inFlags = 0);
void SetGeneratedPolyline (QVector <qreal>& polyline);
void SetSimplifiedPolyline (QVector <qreal>& polyline);
void SetVisibleGeneratedPolyline (bool visible) { mDrawGeneratedPolyline = visible; }
void SetVisibleSimplifiedPolyline (bool visible) { mDrawSimplifiedPolyline = visible; }
void SetKeepAspectRatio (bool keep) { mKeepAspectRatio = keep; }
protected:
void paintEvent (QPaintEvent *inEvent);
private:
QPainterPath Convert (QVector <qreal>& polyline);
private:
QPainterPath mGeneratedPolyline;
QPainterPath mSimplifiedPolyline;
bool mDrawGeneratedPolyline;
bool mDrawSimplifiedPolyline;
bool mKeepAspectRatio;
};
} // namespace psimpl
#endif // RENDERAREA_H

View File

@ -1,43 +0,0 @@
/* ***** BEGIN LICENSE BLOCK *****
* Version: MPL 1.1
*
* The contents of this file are subject to the Mozilla Public License Version
* 1.1 (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
* http://www.mozilla.org/MPL/
*
* Software distributed under the License is distributed on an "AS IS" basis,
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
* for the specific language governing rights and limitations under the
* License.
*
* The Original Code is
* 'psimpl - generic n-dimensional polyline simplification'.
*
* The Initial Developer of the Original Code is
* Elmar de Koning.
* Portions created by the Initial Developer are Copyright (C) 2010-2011
* the Initial Developer. All Rights Reserved.
*
* Contributor(s):
*
* ***** END LICENSE BLOCK ***** */
/*
psimpl - generic n-dimensional polyline simplification
Copyright (C) 2010-2011 Elmar de Koning, edekoning@gmail.com
This file is part of psimpl, and is hosted at SourceForge:
http://sourceforge.net/projects/psimpl/
*/
#include <QtGui/QApplication>
#include "MainWindow.h"
int main (int argc, char *argv [])
{
QApplication a (argc, argv);
psimpl::MainWindow w;
w.show ();
return a.exec ();
}

View File

@ -1,22 +0,0 @@
# -------------------------------------------------
# Project created by QtCreator 2010-06-05T12:09:26
# -------------------------------------------------
TARGET = psimpl-demo
TEMPLATE = app
VERSION = 7
SOURCES += main.cpp \
MainWindow.cpp \
DPWorker.cpp \
RenderArea.cpp
HEADERS += MainWindow.h \
DPWorker.h \
RenderArea.h \
psimpl_reference.h \
psimpl.h \
../lib/psimpl.h
FORMS += MainWindow.ui
OTHER_FILES += \
resource.rc \
../README.txt \
../LICENSE.txt
RC_FILE = resource.rc

View File

@ -1,304 +0,0 @@
<?xml version="1.0" encoding="Windows-1252"?>
<VisualStudioProject
ProjectType="Visual C++"
Version="9,00"
Name="psimpl"
ProjectGUID="{B27BE17F-AC18-4797-9E81-1C04D37B8AC4}"
RootNamespace="DouglasPeucker"
Keyword="Win32Proj"
TargetFrameworkVersion="196613"
>
<Platforms>
<Platform
Name="Win32"
/>
</Platforms>
<ToolFiles>
<ToolFile
RelativePath=".\QTRules.rules"
/>
</ToolFiles>
<Configurations>
<Configuration
Name="Debug|Win32"
OutputDirectory="$(SolutionDir)$(ConfigurationName)"
IntermediateDirectory="$(ConfigurationName)"
ConfigurationType="1"
CharacterSet="1"
>
<Tool
Name="VCPreBuildEventTool"
/>
<Tool
Name="MOC"
/>
<Tool
Name="RCC"
/>
<Tool
Name="VCCustomBuildTool"
/>
<Tool
Name="UIC"
/>
<Tool
Name="VCXMLDataGeneratorTool"
/>
<Tool
Name="VCWebServiceProxyGeneratorTool"
/>
<Tool
Name="VCMIDLTool"
/>
<Tool
Name="VCCLCompilerTool"
Optimization="0"
AdditionalIncludeDirectories="$(QTDIR)/include"
PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE"
MinimalRebuild="true"
BasicRuntimeChecks="3"
RuntimeLibrary="3"
UsePrecompiledHeader="0"
WarningLevel="4"
DebugInformationFormat="4"
/>
<Tool
Name="VCManagedResourceCompilerTool"
/>
<Tool
Name="VCResourceCompilerTool"
/>
<Tool
Name="VCPreLinkEventTool"
/>
<Tool
Name="VCLinkerTool"
AdditionalDependencies="qtmaind.lib qtcored4.lib qtguid4.lib"
OutputFile="$(OutDir)\$(ProjectName)-demod.exe"
LinkIncremental="2"
AdditionalLibraryDirectories="$(QTDIR)/lib"
GenerateDebugInformation="true"
SubSystem="1"
TargetMachine="1"
/>
<Tool
Name="VCALinkTool"
/>
<Tool
Name="VCManifestTool"
/>
<Tool
Name="VCXDCMakeTool"
/>
<Tool
Name="VCBscMakeTool"
/>
<Tool
Name="VCFxCopTool"
/>
<Tool
Name="VCAppVerifierTool"
/>
<Tool
Name="VCPostBuildEventTool"
/>
</Configuration>
<Configuration
Name="Release|Win32"
OutputDirectory="$(SolutionDir)$(ConfigurationName)"
IntermediateDirectory="$(ConfigurationName)"
ConfigurationType="1"
CharacterSet="1"
WholeProgramOptimization="1"
>
<Tool
Name="VCPreBuildEventTool"
/>
<Tool
Name="MOC"
/>
<Tool
Name="RCC"
/>
<Tool
Name="VCCustomBuildTool"
/>
<Tool
Name="UIC"
/>
<Tool
Name="VCXMLDataGeneratorTool"
/>
<Tool
Name="VCWebServiceProxyGeneratorTool"
/>
<Tool
Name="VCMIDLTool"
/>
<Tool
Name="VCCLCompilerTool"
Optimization="2"
EnableIntrinsicFunctions="true"
AdditionalIncludeDirectories="$(QTDIR)/include"
PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE"
RuntimeLibrary="2"
EnableFunctionLevelLinking="true"
UsePrecompiledHeader="0"
WarningLevel="4"
DebugInformationFormat="3"
/>
<Tool
Name="VCManagedResourceCompilerTool"
/>
<Tool
Name="VCResourceCompilerTool"
/>
<Tool
Name="VCPreLinkEventTool"
/>
<Tool
Name="VCLinkerTool"
AdditionalDependencies="qtmain.lib qtcore4.lib qtgui4.lib"
OutputFile="$(OutDir)\$(ProjectName)-demo.exe"
LinkIncremental="1"
AdditionalLibraryDirectories="$(QTDIR)/lib"
GenerateDebugInformation="true"
SubSystem="1"
OptimizeReferences="2"
EnableCOMDATFolding="2"
TargetMachine="1"
/>
<Tool
Name="VCALinkTool"
/>
<Tool
Name="VCManifestTool"
/>
<Tool
Name="VCXDCMakeTool"
/>
<Tool
Name="VCBscMakeTool"
/>
<Tool
Name="VCFxCopTool"
/>
<Tool
Name="VCAppVerifierTool"
/>
<Tool
Name="VCPostBuildEventTool"
/>
</Configuration>
</Configurations>
<References>
</References>
<Files>
<Filter
Name="doc"
>
<File
RelativePath="..\doc\Doxyfile"
>
</File>
</Filter>
<Filter
Name="demo"
>
<File
RelativePath=".\DPWorker.cpp"
>
</File>
<File
RelativePath=".\DPWorker.h"
>
<FileConfiguration
Name="Debug|Win32"
>
<Tool
Name="MOC"
/>
</FileConfiguration>
<FileConfiguration
Name="Release|Win32"
>
<Tool
Name="MOC"
/>
</FileConfiguration>
</File>
<File
RelativePath=".\main.cpp"
>
</File>
<File
RelativePath=".\MainWindow.cpp"
>
</File>
<File
RelativePath=".\MainWindow.h"
>
<FileConfiguration
Name="Debug|Win32"
>
<Tool
Name="MOC"
/>
</FileConfiguration>
<FileConfiguration
Name="Release|Win32"
>
<Tool
Name="MOC"
/>
</FileConfiguration>
</File>
<File
RelativePath=".\MainWindow.ui"
>
</File>
<File
RelativePath=".\moc_DPWorker.cpp"
>
</File>
<File
RelativePath=".\moc_MainWindow.cpp"
>
</File>
<File
RelativePath=".\psimpl_reference.h"
>
</File>
<File
RelativePath=".\RenderArea.cpp"
>
</File>
<File
RelativePath=".\RenderArea.h"
>
</File>
<File
RelativePath=".\ui_MainWindow.h"
>
</File>
</Filter>
<Filter
Name="lib"
>
<File
RelativePath="..\lib\psimpl.h"
>
</File>
</Filter>
<File
RelativePath="..\LICENSE.txt"
>
</File>
<File
RelativePath="..\README.txt"
>
</File>
</Files>
<Globals>
</Globals>
</VisualStudioProject>

View File

@ -1,238 +0,0 @@
/* ***** BEGIN LICENSE BLOCK *****
* Version: MPL 1.1
*
* The contents of this file are subject to the Mozilla Public License Version
* 1.1 (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
* http://www.mozilla.org/MPL/
*
* Software distributed under the License is distributed on an "AS IS" basis,
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
* for the specific language governing rights and limitations under the
* License.
*
* The Original Code is
* 'psimpl - generic n-dimensional polyline simplification'.
*
* The Initial Developer of the Original Code is
* Elmar de Koning.
* Portions created by the Initial Developer are Copyright (C) 2010-2011
* the Initial Developer. All Rights Reserved.
*
* Contributor(s):
*
* ***** END LICENSE BLOCK ***** */
/*
psimpl - generic n-dimensional polyline simplification
Copyright (C) 2010-2011 Elmar de Koning, edekoning@gmail.com
This file is part of psimpl, and is hosted at SourceForge:
http://sourceforge.net/projects/psimpl/
*/
#ifndef PSIMPL_CLASSIC_H
#define PSIMPL_CLASSIC_H
#include <stack>
namespace psimpl {
namespace classic {
// Contains a minimal modified version of the Douglas-Peucker recursive simplification
// routine as available from www.softsurfer.com. Modifications include:
// - Removed recursion by using a stack
// - Added minimal Point, Vector, and Segment classes as needed by the algorithm
// minimal point class
class Point {
public:
Point () :
x (0.f),
y (0.f)
{}
Point (float x, float y) :
x (x),
y (y)
{}
float x, y;
};
// reuse the point class for a vector
typedef Point Vector;
// operators as needed by the algorithm
Point operator+ (const Point& P, const Vector& V) {
return Point (P.x+V.x, P.y+V.y);
}
Vector operator- (const Point& P0, const Point& P1) {
return Vector (P0.x-P1.x, P0.y-P1.y);
}
Vector operator* (double s, const Vector& V) {
return Vector (s*V.x, s*V.y);
}
// minimal segment class
class Segment {
public:
Segment (const Point& P0, const Point& P1) :
P0(P0),
P1(P1)
{}
Point P0;
Point P1;
};
// define the stack and sub poly that are used to replace the original recusion
typedef std::pair< int, int > SubPoly;
typedef std::stack< SubPoly > Stack;
// Copyright 2002, softSurfer (www.softsurfer.com)
// This code may be freely used and modified for any purpose
// providing that this copyright notice is included with it.
// SoftSurfer makes no warranty for this code, and cannot be held
// liable for any real or imagined damage resulting from its use.
// Users of this code must verify correctness for their application.
// Assume that classes are already given for the objects:
// Point and Vector with
// coordinates {float x, y, z;} // as many as are needed
// operators for:
// == to test equality
// != to test inequality
// (Vector)0 = (0,0,0) (null vector)
// Point = Point ± Vector
// Vector = Point - Point
// Vector = Vector ± Vector
// Vector = Scalar * Vector (scalar product)
// Vector = Vector * Vector (cross product)
// Segment with defining endpoints {Point P0, P1;}
//===================================================================
// dot product (3D) which allows vector operations in arguments
#define __dot(u,v) ((u).x * (v).x + (u).y * (v).y)
#define __norm2(v) __dot(v,v) // norm2 = squared length of vector
#define __norm(v) sqrt(__norm2(v)) // norm = length of vector
#define __d2(u,v) __norm2(u-v) // distance squared = norm2 of difference
#define __d(u,v) __norm(u-v) // distance = norm of difference
// simplifyDP():
// This is the Douglas-Peucker recursive simplification routine
// It just marks vertices that are part of the simplified polyline
// for approximating the polyline subchain v[j] to v[k].
// Input: tol = approximation tolerance
// v[] = polyline array of vertex points
// j,k = indices for the subchain v[j] to v[k]
// Output: mk[] = array of markers matching vertex array v[]
void
simplifyDP( Stack& stack, float tol, Point* v, int j, int k, int* mk )
{
if (k <= j+1) // there is nothing to simplify
return;
// check for adequate approximation by segment S from v[j] to v[k]
int maxi = j; // index of vertex farthest from S
float maxd2 = 0; // distance squared of farthest vertex
float tol2 = tol * tol; // tolerance squared
Segment S (v[j], v[k]); // segment from v[j] to v[k]
Vector u = S.P1 - S.P0; // segment direction vector
double cu = __dot(u,u); // segment length squared
// test each vertex v[i] for max distance from S
// compute using the Feb 2001 Algorithm's dist_Point_to_Segment()
// Note: this works in any dimension (2D, 3D, ...)
Vector w;
Point Pb; // base of perpendicular from v[i] to S
double b, cw, dv2; // dv2 = distance v[i] to S squared
for (int i=j+1; i<k; i++)
{
// compute distance squared
w = v[i] - S.P0;
cw = __dot(w,u);
if ( cw <= 0 )
dv2 = __d2(v[i], S.P0);
else if ( cu <= cw )
dv2 = __d2(v[i], S.P1);
else {
b = cw / cu;
Pb = S.P0 + b * u;
dv2 = __d2(v[i], Pb);
}
// test with current max distance squared
if (dv2 <= maxd2)
continue;
// v[i] is a new max vertex
maxi = i;
maxd2 = dv2;
}
if (maxd2 > tol2) // error is worse than the tolerance
{
// split the polyline at the farthest vertex from S
mk[maxi] = 1; // mark v[maxi] for the simplified polyline
// recursively simplify the two subpolylines at v[maxi]
stack.push( std::make_pair (j, maxi));
stack.push( std::make_pair (maxi, k));
}
// else the approximation is OK, so ignore intermediate vertices
return;
}
// poly_simplify():
// Input: tol = approximation tolerance
// V[] = polyline array of vertex points
// n = the number of points in V[]
// Output: sV[]= simplified polyline vertices (max is n)
// Return: m = the number of points in sV[]
int
poly_simplify(float tol, Point* V, int n, Point* sV )
{
int i, k, m, pv; // misc counters
float tol2 = tol * tol; // tolerance squared
Point* vt = new Point[n]; // vertex buffer
int* mk = new int[n]; // marker buffer
for (i=0; i<n; i++) {
mk[i] = 0;
}
// STAGE 1. Vertex Reduction within tolerance of prior vertex cluster
vt[0] = V[0]; // start at the beginning
for (i=k=1, pv=0; i<n; i++) {
if (__d2(V[i], V[pv]) < tol2)
continue;
vt[k++] = V[i];
pv = i;
}
if (pv < n-1)
vt[k++] = V[n-1]; // finish at the end
// STAGE 2. Douglas-Peucker polyline simplification
mk[0] = mk[k-1] = 1; // mark the first and last vertices
Stack stack; // use a stack i.s.o. recursion (NEW)
stack.push( std::make_pair( 0, k-1 )); // add complete poly
while (!stack.empty()) {
SubPoly subPoly = stack.top(); // take a sub poly
stack.pop(); // and simplify it
simplifyDP( stack, tol, vt, subPoly.first, subPoly.second, mk );
}
// copy marked vertices to the output simplified polyline
for (i=m=0; i<k; i++) {
if (mk[i])
sV[m++] = vt[i];
}
delete vt;
delete mk;
return m; // m vertices in simplified polyline
}
//===================================================================
}
}
#endif // PSIMPL_CLASSIC_H

View File

@ -1,34 +0,0 @@
# if defined(UNDER_CE)
# include <winbase.h>
# else
# include <winver.h>
# endif
VS_VERSION_INFO VERSIONINFO
FILEVERSION 7,0,0,0
PRODUCTVERSION 7,0,0,0
FILEFLAGSMASK 0x3fL
#ifdef _DEBUG
FILEFLAGS VS_FF_DEBUG
#else
FILEFLAGS 0x0L
#endif
FILEOS VOS__WINDOWS32
FILETYPE VFT_DLL
FILESUBTYPE 0x0L
BEGIN
BLOCK "StringFileInfo"
BEGIN
BLOCK "040904B0"
BEGIN
VALUE "CompanyName", "Elmar de Koning\0"
VALUE "FileDescription", "psimpl demo application\0"
VALUE "FileVersion", "7.0.0.0\0"
VALUE "LegalCopyright", "Copyright (C) 2010-2011 Elmar de Koning\0"
VALUE "OriginalFilename", "psimpl-demo.exe\0"
VALUE "ProductName", "psimpl - generic n-dimensional polyline simplification\0"
END
END
END
/* End of Version info */

View File

@ -0,0 +1,85 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<title>psimpl: Class List</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript">
$(document).ready(initResizable);
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<!-- Generated by Doxygen 1.7.4 -->
<div id="top">
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td style="padding-left: 0.5em;">
<div id="projectname">psimpl&#160;<span id="projectnumber">7</span></div>
</td>
</tr>
</tbody>
</table>
</div>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="namespaces.html"><span>Namespaces</span></a></li>
<li class="current"><a href="annotated.html"><span>Classes</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
<li><a href="dirs.html"><span>Directories</span></a></li>
</ul>
</div>
<div id="navrow2" class="tabs2">
<ul class="tablist">
<li class="current"><a href="annotated.html"><span>Class&#160;List</span></a></li>
<li><a href="classes.html"><span>Class&#160;Index</span></a></li>
<li><a href="functions.html"><span>Class&#160;Members</span></a></li>
</ul>
</div>
</div>
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
initNavTree('annotated.html','');
</script>
<div id="doc-content">
<div class="header">
<div class="headertitle">
<div class="title">Class List</div> </div>
</div>
<div class="contents">
<div class="textblock">Here are the classes, structs, unions and interfaces with brief descriptions:</div><table>
<tr><td class="indexkey"><a class="el" href="classpsimpl_1_1_polyline_simplification_1_1_d_p_helper.html">psimpl::PolylineSimplification&lt; DIM, InputIterator, OutputIterator &gt;::DPHelper</a></td><td class="indexvalue">Douglas-Peucker approximation helper class </td></tr>
<tr><td class="indexkey"><a class="el" href="structpsimpl_1_1_polyline_simplification_1_1_d_p_helper_1_1_key_info.html">psimpl::PolylineSimplification&lt; DIM, InputIterator, OutputIterator &gt;::DPHelper::KeyInfo</a></td><td class="indexvalue">Defines the key of a polyline </td></tr>
<tr><td class="indexkey"><a class="el" href="classpsimpl_1_1_polyline_simplification.html">psimpl::PolylineSimplification&lt; DIM, InputIterator, OutputIterator &gt;</a></td><td class="indexvalue">Provides various simplification algorithms for n-dimensional simple polylines </td></tr>
<tr><td class="indexkey"><a class="el" href="classpsimpl_1_1util_1_1scoped__array.html">psimpl::util::scoped_array&lt; T &gt;</a></td><td class="indexvalue">A smart pointer for holding a dynamically allocated array </td></tr>
<tr><td class="indexkey"><a class="el" href="structpsimpl_1_1math_1_1_statistics.html">psimpl::math::Statistics</a></td><td class="indexvalue">POD structure for storing several statistical values </td></tr>
<tr><td class="indexkey"><a class="el" href="structpsimpl_1_1_polyline_simplification_1_1_d_p_helper_1_1_sub_poly.html">psimpl::PolylineSimplification&lt; DIM, InputIterator, OutputIterator &gt;::DPHelper::SubPoly</a></td><td class="indexvalue">Defines a sub polyline </td></tr>
<tr><td class="indexkey"><a class="el" href="structpsimpl_1_1_polyline_simplification_1_1_d_p_helper_1_1_sub_poly_alt.html">psimpl::PolylineSimplification&lt; DIM, InputIterator, OutputIterator &gt;::DPHelper::SubPolyAlt</a></td><td class="indexvalue">Defines a sub polyline including its key </td></tr>
</table>
</div>
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="footer">Generated on Fri Jun 24 2011 14:56:29 for psimpl by&#160;
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.4 </li>
</ul>
</div>
</body>
</html>

Binary file not shown.

After

Width:  |  Height:  |  Size: 705 B

View File

@ -0,0 +1,83 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<title>psimpl: Class Index</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript">
$(document).ready(initResizable);
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<!-- Generated by Doxygen 1.7.4 -->
<div id="top">
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td style="padding-left: 0.5em;">
<div id="projectname">psimpl&#160;<span id="projectnumber">7</span></div>
</td>
</tr>
</tbody>
</table>
</div>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="namespaces.html"><span>Namespaces</span></a></li>
<li class="current"><a href="annotated.html"><span>Classes</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
<li><a href="dirs.html"><span>Directories</span></a></li>
</ul>
</div>
<div id="navrow2" class="tabs2">
<ul class="tablist">
<li><a href="annotated.html"><span>Class&#160;List</span></a></li>
<li class="current"><a href="classes.html"><span>Class&#160;Index</span></a></li>
<li><a href="functions.html"><span>Class&#160;Members</span></a></li>
</ul>
</div>
</div>
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
initNavTree('classes.html','');
</script>
<div id="doc-content">
<div class="header">
<div class="headertitle">
<div class="title">Class Index</div> </div>
</div>
<div class="contents">
<div class="qindex"><a class="qindex" href="#letter_D">D</a>&#160;|&#160;<a class="qindex" href="#letter_K">K</a>&#160;|&#160;<a class="qindex" href="#letter_P">P</a>&#160;|&#160;<a class="qindex" href="#letter_S">S</a></div>
<table align="center" width="95%" border="0" cellspacing="0" cellpadding="0">
<tr><td><a name="letter_D"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;D&#160;&#160;</div></td></tr></table>
</td><td><a class="el" href="structpsimpl_1_1_polyline_simplification_1_1_d_p_helper_1_1_key_info.html">PolylineSimplification::DPHelper::KeyInfo</a> (<a class="el" href="namespacepsimpl.html">psimpl</a>)&#160;&#160;&#160;</td><td><a class="el" href="classpsimpl_1_1_polyline_simplification.html">PolylineSimplification</a> (<a class="el" href="namespacepsimpl.html">psimpl</a>)&#160;&#160;&#160;</td><td><a class="el" href="classpsimpl_1_1util_1_1scoped__array.html">scoped_array</a> (<a class="el" href="namespacepsimpl_1_1util.html">psimpl::util</a>)&#160;&#160;&#160;</td><td><a class="el" href="structpsimpl_1_1_polyline_simplification_1_1_d_p_helper_1_1_sub_poly.html">PolylineSimplification::DPHelper::SubPoly</a> (<a class="el" href="namespacepsimpl.html">psimpl</a>)&#160;&#160;&#160;</td></tr><tr><td><a class="el" href="classpsimpl_1_1_polyline_simplification_1_1_d_p_helper.html">PolylineSimplification::DPHelper</a> (<a class="el" href="namespacepsimpl.html">psimpl</a>)&#160;&#160;&#160;</td><td><a name="letter_P"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;P&#160;&#160;</div></td></tr></table>
</td><td><a name="letter_S"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;S&#160;&#160;</div></td></tr></table>
</td><td><a class="el" href="structpsimpl_1_1math_1_1_statistics.html">Statistics</a> (<a class="el" href="namespacepsimpl_1_1math.html">psimpl::math</a>)&#160;&#160;&#160;</td><td><a class="el" href="structpsimpl_1_1_polyline_simplification_1_1_d_p_helper_1_1_sub_poly_alt.html">PolylineSimplification::DPHelper::SubPolyAlt</a> (<a class="el" href="namespacepsimpl.html">psimpl</a>)&#160;&#160;&#160;</td></tr><tr><td><a name="letter_K"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;K&#160;&#160;</div></td></tr></table>
</td></tr></table><div class="qindex"><a class="qindex" href="#letter_D">D</a>&#160;|&#160;<a class="qindex" href="#letter_K">K</a>&#160;|&#160;<a class="qindex" href="#letter_P">P</a>&#160;|&#160;<a class="qindex" href="#letter_S">S</a></div>
</div>
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="footer">Generated on Fri Jun 24 2011 14:56:29 for psimpl by&#160;
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.4 </li>
</ul>
</div>
</body>
</html>

View File

@ -0,0 +1,97 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<title>psimpl: Member List</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript">
$(document).ready(initResizable);
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<!-- Generated by Doxygen 1.7.4 -->
<div id="top">
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td style="padding-left: 0.5em;">
<div id="projectname">psimpl&#160;<span id="projectnumber">7</span></div>
</td>
</tr>
</tbody>
</table>
</div>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="namespaces.html"><span>Namespaces</span></a></li>
<li class="current"><a href="annotated.html"><span>Classes</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
<li><a href="dirs.html"><span>Directories</span></a></li>
</ul>
</div>
<div id="navrow2" class="tabs2">
<ul class="tablist">
<li><a href="annotated.html"><span>Class&#160;List</span></a></li>
<li><a href="classes.html"><span>Class&#160;Index</span></a></li>
<li><a href="functions.html"><span>Class&#160;Members</span></a></li>
</ul>
</div>
</div>
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
initNavTree('classpsimpl_1_1_polyline_simplification.html','');
</script>
<div id="doc-content">
<div class="header">
<div class="headertitle">
<div class="title">psimpl::PolylineSimplification&lt; DIM, InputIterator, OutputIterator &gt; Member List</div> </div>
</div>
<div class="contents">
This is the complete list of members for <a class="el" href="classpsimpl_1_1_polyline_simplification.html">psimpl::PolylineSimplification&lt; DIM, InputIterator, OutputIterator &gt;</a>, including all inherited members.<table>
<tr class="memlist"><td><a class="el" href="classpsimpl_1_1_polyline_simplification.html#a825677c1dbe228d8904846ea2781ee19">Advance</a>(InputIterator &amp;it, diff_type n=1)</td><td><a class="el" href="classpsimpl_1_1_polyline_simplification.html">psimpl::PolylineSimplification&lt; DIM, InputIterator, OutputIterator &gt;</a></td><td><code> [inline, private]</code></td></tr>
<tr class="memlist"><td><a class="el" href="classpsimpl_1_1_polyline_simplification.html#a9c2510b3c8466f2080b924629e8ce2e6">AdvanceCopy</a>(InputIterator it, diff_type n=1)</td><td><a class="el" href="classpsimpl_1_1_polyline_simplification.html">psimpl::PolylineSimplification&lt; DIM, InputIterator, OutputIterator &gt;</a></td><td><code> [inline, private]</code></td></tr>
<tr class="memlist"><td><a class="el" href="classpsimpl_1_1_polyline_simplification.html#a5af6938c7d84c84f20c4981a51228865">Backward</a>(InputIterator &amp;it, unsigned &amp;remaining)</td><td><a class="el" href="classpsimpl_1_1_polyline_simplification.html">psimpl::PolylineSimplification&lt; DIM, InputIterator, OutputIterator &gt;</a></td><td><code> [inline, private]</code></td></tr>
<tr class="memlist"><td><a class="el" href="classpsimpl_1_1_polyline_simplification.html#a6b3ed5157f5bf51ef7be179896cd2903">ComputePositionalErrors2</a>(InputIterator original_first, InputIterator original_last, InputIterator simplified_first, InputIterator simplified_last, OutputIterator result, bool *valid=0)</td><td><a class="el" href="classpsimpl_1_1_polyline_simplification.html">psimpl::PolylineSimplification&lt; DIM, InputIterator, OutputIterator &gt;</a></td><td><code> [inline]</code></td></tr>
<tr class="memlist"><td><a class="el" href="classpsimpl_1_1_polyline_simplification.html#a10af204d445105a8a4cbc81bd0563cb1">ComputePositionalErrorStatistics</a>(InputIterator original_first, InputIterator original_last, InputIterator simplified_first, InputIterator simplified_last, bool *valid=0)</td><td><a class="el" href="classpsimpl_1_1_polyline_simplification.html">psimpl::PolylineSimplification&lt; DIM, InputIterator, OutputIterator &gt;</a></td><td><code> [inline]</code></td></tr>
<tr class="memlist"><td><a class="el" href="classpsimpl_1_1_polyline_simplification.html#a46fd020dc9f03e4b44bf95f256a06b1a">CopyKey</a>(InputIterator key, OutputIterator &amp;result)</td><td><a class="el" href="classpsimpl_1_1_polyline_simplification.html">psimpl::PolylineSimplification&lt; DIM, InputIterator, OutputIterator &gt;</a></td><td><code> [inline, private]</code></td></tr>
<tr class="memlist"><td><a class="el" href="classpsimpl_1_1_polyline_simplification.html#acd517bb1803b28ad69aa9012ac2577e5">CopyKeyAdvance</a>(InputIterator &amp;key, OutputIterator &amp;result)</td><td><a class="el" href="classpsimpl_1_1_polyline_simplification.html">psimpl::PolylineSimplification&lt; DIM, InputIterator, OutputIterator &gt;</a></td><td><code> [inline, private]</code></td></tr>
<tr class="memlist"><td><a class="el" href="classpsimpl_1_1_polyline_simplification.html#a5a3b5d1a275e366f2c0bab770140507c">diff_type</a> typedef</td><td><a class="el" href="classpsimpl_1_1_polyline_simplification.html">psimpl::PolylineSimplification&lt; DIM, InputIterator, OutputIterator &gt;</a></td><td><code> [private]</code></td></tr>
<tr class="memlist"><td><a class="el" href="classpsimpl_1_1_polyline_simplification.html#a75954f25bc0d99e0a756611ffa2b5fda">DouglasPeucker</a>(InputIterator first, InputIterator last, value_type tol, OutputIterator result)</td><td><a class="el" href="classpsimpl_1_1_polyline_simplification.html">psimpl::PolylineSimplification&lt; DIM, InputIterator, OutputIterator &gt;</a></td><td><code> [inline]</code></td></tr>
<tr class="memlist"><td><a class="el" href="classpsimpl_1_1_polyline_simplification.html#ae309320bd688e6752c8d1e70ff58e4c1">DouglasPeuckerN</a>(InputIterator first, InputIterator last, unsigned count, OutputIterator result)</td><td><a class="el" href="classpsimpl_1_1_polyline_simplification.html">psimpl::PolylineSimplification&lt; DIM, InputIterator, OutputIterator &gt;</a></td><td><code> [inline]</code></td></tr>
<tr class="memlist"><td><a class="el" href="classpsimpl_1_1_polyline_simplification.html#ab371de18bbb855cbd2912ceea5260519">Forward</a>(InputIterator &amp;it, unsigned n, unsigned &amp;remaining)</td><td><a class="el" href="classpsimpl_1_1_polyline_simplification.html">psimpl::PolylineSimplification&lt; DIM, InputIterator, OutputIterator &gt;</a></td><td><code> [inline, private]</code></td></tr>
<tr class="memlist"><td><a class="el" href="classpsimpl_1_1_polyline_simplification.html#a34f6cdc9223e0e99c671e07a15086e3e">Lang</a>(InputIterator first, InputIterator last, value_type tol, unsigned look_ahead, OutputIterator result)</td><td><a class="el" href="classpsimpl_1_1_polyline_simplification.html">psimpl::PolylineSimplification&lt; DIM, InputIterator, OutputIterator &gt;</a></td><td><code> [inline]</code></td></tr>
<tr class="memlist"><td><a class="el" href="classpsimpl_1_1_polyline_simplification.html#ace21c52fe251f03dc87d17e2627f83ed">NthPoint</a>(InputIterator first, InputIterator last, unsigned n, OutputIterator result)</td><td><a class="el" href="classpsimpl_1_1_polyline_simplification.html">psimpl::PolylineSimplification&lt; DIM, InputIterator, OutputIterator &gt;</a></td><td><code> [inline]</code></td></tr>
<tr class="memlist"><td><a class="el" href="classpsimpl_1_1_polyline_simplification.html#a0b9bf4a27ef12a4eb103266f50c6eb7e">Opheim</a>(InputIterator first, InputIterator last, value_type min_tol, value_type max_tol, OutputIterator result)</td><td><a class="el" href="classpsimpl_1_1_polyline_simplification.html">psimpl::PolylineSimplification&lt; DIM, InputIterator, OutputIterator &gt;</a></td><td><code> [inline]</code></td></tr>
<tr class="memlist"><td><a class="el" href="classpsimpl_1_1_polyline_simplification.html#a2b10f2aeaec1cb48eb053b2b9f632c9c">PerpendicularDistance</a>(InputIterator first, InputIterator last, value_type tol, unsigned repeat, OutputIterator result)</td><td><a class="el" href="classpsimpl_1_1_polyline_simplification.html">psimpl::PolylineSimplification&lt; DIM, InputIterator, OutputIterator &gt;</a></td><td><code> [inline]</code></td></tr>
<tr class="memlist"><td><a class="el" href="classpsimpl_1_1_polyline_simplification.html#a54fec7f2139b6ec1b82ca884fc402f2f">PerpendicularDistance</a>(InputIterator first, InputIterator last, value_type tol, OutputIterator result)</td><td><a class="el" href="classpsimpl_1_1_polyline_simplification.html">psimpl::PolylineSimplification&lt; DIM, InputIterator, OutputIterator &gt;</a></td><td><code> [inline]</code></td></tr>
<tr class="memlist"><td><a class="el" href="classpsimpl_1_1_polyline_simplification.html#a08f998ecc4af984c070603b489b3ce28">ptr_diff_type</a> typedef</td><td><a class="el" href="classpsimpl_1_1_polyline_simplification.html">psimpl::PolylineSimplification&lt; DIM, InputIterator, OutputIterator &gt;</a></td><td><code> [private]</code></td></tr>
<tr class="memlist"><td><a class="el" href="classpsimpl_1_1_polyline_simplification.html#aa9f3491a3aa88e3b795705045053a649">RadialDistance</a>(InputIterator first, InputIterator last, value_type tol, OutputIterator result)</td><td><a class="el" href="classpsimpl_1_1_polyline_simplification.html">psimpl::PolylineSimplification&lt; DIM, InputIterator, OutputIterator &gt;</a></td><td><code> [inline]</code></td></tr>
<tr class="memlist"><td><a class="el" href="classpsimpl_1_1_polyline_simplification.html#ae938c132f029b4e8e828f5e6c7ee4b16">ReumannWitkam</a>(InputIterator first, InputIterator last, value_type tol, OutputIterator result)</td><td><a class="el" href="classpsimpl_1_1_polyline_simplification.html">psimpl::PolylineSimplification&lt; DIM, InputIterator, OutputIterator &gt;</a></td><td><code> [inline]</code></td></tr>
<tr class="memlist"><td><a class="el" href="classpsimpl_1_1_polyline_simplification.html#aacad79ca2e6dc004483838f460ab8df1">value_type</a> typedef</td><td><a class="el" href="classpsimpl_1_1_polyline_simplification.html">psimpl::PolylineSimplification&lt; DIM, InputIterator, OutputIterator &gt;</a></td><td><code> [private]</code></td></tr>
</table></div>
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="footer">Generated on Fri Jun 24 2011 14:56:29 for psimpl by&#160;
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.4 </li>
</ul>
</div>
</body>
</html>

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,80 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<title>psimpl: Member List</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript">
$(document).ready(initResizable);
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<!-- Generated by Doxygen 1.7.4 -->
<div id="top">
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td style="padding-left: 0.5em;">
<div id="projectname">psimpl&#160;<span id="projectnumber">7</span></div>
</td>
</tr>
</tbody>
</table>
</div>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="namespaces.html"><span>Namespaces</span></a></li>
<li class="current"><a href="annotated.html"><span>Classes</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
<li><a href="dirs.html"><span>Directories</span></a></li>
</ul>
</div>
<div id="navrow2" class="tabs2">
<ul class="tablist">
<li><a href="annotated.html"><span>Class&#160;List</span></a></li>
<li><a href="classes.html"><span>Class&#160;Index</span></a></li>
<li><a href="functions.html"><span>Class&#160;Members</span></a></li>
</ul>
</div>
</div>
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
initNavTree('classpsimpl_1_1_polyline_simplification_1_1_d_p_helper.html','');
</script>
<div id="doc-content">
<div class="header">
<div class="headertitle">
<div class="title">psimpl::PolylineSimplification&lt; DIM, InputIterator, OutputIterator &gt;::DPHelper Member List</div> </div>
</div>
<div class="contents">
This is the complete list of members for <a class="el" href="classpsimpl_1_1_polyline_simplification_1_1_d_p_helper.html">psimpl::PolylineSimplification&lt; DIM, InputIterator, OutputIterator &gt;::DPHelper</a>, including all inherited members.<table>
<tr class="memlist"><td><a class="el" href="classpsimpl_1_1_polyline_simplification_1_1_d_p_helper.html#a19ef5bd5a4ff343e4defbe3765215c28">Approximate</a>(const value_type *coords, ptr_diff_type coordCount, value_type tol, unsigned char *keys)</td><td><a class="el" href="classpsimpl_1_1_polyline_simplification_1_1_d_p_helper.html">psimpl::PolylineSimplification&lt; DIM, InputIterator, OutputIterator &gt;::DPHelper</a></td><td><code> [inline, static]</code></td></tr>
<tr class="memlist"><td><a class="el" href="classpsimpl_1_1_polyline_simplification_1_1_d_p_helper.html#afd49bef5d20db1ef171f9dcfc297e953">ApproximateN</a>(const value_type *coords, ptr_diff_type coordCount, unsigned countTol, unsigned char *keys)</td><td><a class="el" href="classpsimpl_1_1_polyline_simplification_1_1_d_p_helper.html">psimpl::PolylineSimplification&lt; DIM, InputIterator, OutputIterator &gt;::DPHelper</a></td><td><code> [inline, static]</code></td></tr>
<tr class="memlist"><td><a class="el" href="classpsimpl_1_1_polyline_simplification_1_1_d_p_helper.html#ab1e1bf2f9c562d9ea784466129ce0b19">FindKey</a>(const value_type *coords, ptr_diff_type first, ptr_diff_type last)</td><td><a class="el" href="classpsimpl_1_1_polyline_simplification_1_1_d_p_helper.html">psimpl::PolylineSimplification&lt; DIM, InputIterator, OutputIterator &gt;::DPHelper</a></td><td><code> [inline, private, static]</code></td></tr>
</table></div>
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="footer">Generated on Fri Jun 24 2011 14:56:29 for psimpl by&#160;
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.4 </li>
</ul>
</div>
</body>
</html>

View File

@ -0,0 +1,269 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<title>psimpl: psimpl::PolylineSimplification&lt; DIM, InputIterator, OutputIterator &gt;::DPHelper Class Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript">
$(document).ready(initResizable);
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<!-- Generated by Doxygen 1.7.4 -->
<div id="top">
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td style="padding-left: 0.5em;">
<div id="projectname">psimpl&#160;<span id="projectnumber">7</span></div>
</td>
</tr>
</tbody>
</table>
</div>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="namespaces.html"><span>Namespaces</span></a></li>
<li class="current"><a href="annotated.html"><span>Classes</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
<li><a href="dirs.html"><span>Directories</span></a></li>
</ul>
</div>
<div id="navrow2" class="tabs2">
<ul class="tablist">
<li><a href="annotated.html"><span>Class&#160;List</span></a></li>
<li><a href="classes.html"><span>Class&#160;Index</span></a></li>
<li><a href="functions.html"><span>Class&#160;Members</span></a></li>
</ul>
</div>
</div>
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
initNavTree('classpsimpl_1_1_polyline_simplification_1_1_d_p_helper.html','');
</script>
<div id="doc-content">
<div class="header">
<div class="summary">
<a href="#nested-classes">Classes</a> &#124;
<a href="#pub-static-methods">Static Public Member Functions</a> &#124;
<a href="#pri-static-methods">Static Private Member Functions</a> </div>
<div class="headertitle">
<div class="title">psimpl::PolylineSimplification&lt; DIM, InputIterator, OutputIterator &gt;::DPHelper Class Reference</div> </div>
</div>
<div class="contents">
<!-- doxytag: class="psimpl::PolylineSimplification::DPHelper" -->
<p>Douglas-Peucker approximation helper class.
<a href="classpsimpl_1_1_polyline_simplification_1_1_d_p_helper.html#details">More...</a></p>
<p><a href="classpsimpl_1_1_polyline_simplification_1_1_d_p_helper-members.html">List of all members.</a></p>
<table class="memberdecls">
<tr><td colspan="2"><h2><a name="nested-classes"></a>
Classes</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structpsimpl_1_1_polyline_simplification_1_1_d_p_helper_1_1_key_info.html">KeyInfo</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Defines the key of a polyline. <a href="structpsimpl_1_1_polyline_simplification_1_1_d_p_helper_1_1_key_info.html#details">More...</a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structpsimpl_1_1_polyline_simplification_1_1_d_p_helper_1_1_sub_poly.html">SubPoly</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Defines a sub polyline. <a href="structpsimpl_1_1_polyline_simplification_1_1_d_p_helper_1_1_sub_poly.html#details">More...</a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structpsimpl_1_1_polyline_simplification_1_1_d_p_helper_1_1_sub_poly_alt.html">SubPolyAlt</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Defines a sub polyline including its key. <a href="structpsimpl_1_1_polyline_simplification_1_1_d_p_helper_1_1_sub_poly_alt.html#details">More...</a><br/></td></tr>
<tr><td colspan="2"><h2><a name="pub-static-methods"></a>
Static Public Member Functions</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpsimpl_1_1_polyline_simplification_1_1_d_p_helper.html#a19ef5bd5a4ff343e4defbe3765215c28">Approximate</a> (const <a class="el" href="classpsimpl_1_1_polyline_simplification.html#aacad79ca2e6dc004483838f460ab8df1">value_type</a> *coords, <a class="el" href="classpsimpl_1_1_polyline_simplification.html#a08f998ecc4af984c070603b489b3ce28">ptr_diff_type</a> coordCount, <a class="el" href="classpsimpl_1_1_polyline_simplification.html#aacad79ca2e6dc004483838f460ab8df1">value_type</a> tol, unsigned char *keys)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Performs Douglas-Peucker approximation. <a href="#a19ef5bd5a4ff343e4defbe3765215c28"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpsimpl_1_1_polyline_simplification_1_1_d_p_helper.html#afd49bef5d20db1ef171f9dcfc297e953">ApproximateN</a> (const <a class="el" href="classpsimpl_1_1_polyline_simplification.html#aacad79ca2e6dc004483838f460ab8df1">value_type</a> *coords, <a class="el" href="classpsimpl_1_1_polyline_simplification.html#a08f998ecc4af984c070603b489b3ce28">ptr_diff_type</a> coordCount, unsigned countTol, unsigned char *keys)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Performs Douglas-Peucker approximation. <a href="#afd49bef5d20db1ef171f9dcfc297e953"></a><br/></td></tr>
<tr><td colspan="2"><h2><a name="pri-static-methods"></a>
Static Private Member Functions</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static <a class="el" href="structpsimpl_1_1_polyline_simplification_1_1_d_p_helper_1_1_key_info.html">KeyInfo</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpsimpl_1_1_polyline_simplification_1_1_d_p_helper.html#ab1e1bf2f9c562d9ea784466129ce0b19">FindKey</a> (const <a class="el" href="classpsimpl_1_1_polyline_simplification.html#aacad79ca2e6dc004483838f460ab8df1">value_type</a> *coords, <a class="el" href="classpsimpl_1_1_polyline_simplification.html#a08f998ecc4af984c070603b489b3ce28">ptr_diff_type</a> first, <a class="el" href="classpsimpl_1_1_polyline_simplification.html#a08f998ecc4af984c070603b489b3ce28">ptr_diff_type</a> last)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Finds the key for the given sub polyline. <a href="#ab1e1bf2f9c562d9ea784466129ce0b19"></a><br/></td></tr>
</table>
<hr/><a name="details" id="details"></a><h2>Detailed Description</h2>
<div class="textblock"><h3>template&lt;unsigned DIM, class InputIterator, class OutputIterator&gt;<br/>
class psimpl::PolylineSimplification&lt; DIM, InputIterator, OutputIterator &gt;::DPHelper</h3>
<p>Douglas-Peucker approximation helper class. </p>
<p>Contains helper implentations for Douglas-Peucker approximation that operate solely on value_type arrays and value_type pointers. Note that the <a class="el" href="classpsimpl_1_1_polyline_simplification.html" title="Provides various simplification algorithms for n-dimensional simple polylines.">PolylineSimplification</a> class only operates on iterators. </p>
</div><hr/><h2>Member Function Documentation</h2>
<a class="anchor" id="a19ef5bd5a4ff343e4defbe3765215c28"></a><!-- doxytag: member="psimpl::PolylineSimplification::DPHelper::Approximate" ref="a19ef5bd5a4ff343e4defbe3765215c28" args="(const value_type *coords, ptr_diff_type coordCount, value_type tol, unsigned char *keys)" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;unsigned DIM, class InputIterator, class OutputIterator&gt; </div>
<table class="memname">
<tr>
<td class="memname">static void <a class="el" href="classpsimpl_1_1_polyline_simplification.html">psimpl::PolylineSimplification</a>&lt; DIM, InputIterator, OutputIterator &gt;::DPHelper::Approximate </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classpsimpl_1_1_polyline_simplification.html#aacad79ca2e6dc004483838f460ab8df1">value_type</a> *&#160;</td>
<td class="paramname"><em>coords</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="classpsimpl_1_1_polyline_simplification.html#a08f998ecc4af984c070603b489b3ce28">ptr_diff_type</a>&#160;</td>
<td class="paramname"><em>coordCount</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="classpsimpl_1_1_polyline_simplification.html#aacad79ca2e6dc004483838f460ab8df1">value_type</a>&#160;</td>
<td class="paramname"><em>tol</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">unsigned char *&#160;</td>
<td class="paramname"><em>keys</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td><code> [inline, static]</code></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Performs Douglas-Peucker approximation. </p>
<dl><dt><b>Parameters:</b></dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">coords</td><td>array of polyline coordinates </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">coordCount</td><td>number of coordinates in coords [] </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">tol</td><td>approximation tolerance </td></tr>
<tr><td class="paramdir">[out]</td><td class="paramname">keys</td><td>indicates for each polyline point if it is a key </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="afd49bef5d20db1ef171f9dcfc297e953"></a><!-- doxytag: member="psimpl::PolylineSimplification::DPHelper::ApproximateN" ref="afd49bef5d20db1ef171f9dcfc297e953" args="(const value_type *coords, ptr_diff_type coordCount, unsigned countTol, unsigned char *keys)" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;unsigned DIM, class InputIterator, class OutputIterator&gt; </div>
<table class="memname">
<tr>
<td class="memname">static void <a class="el" href="classpsimpl_1_1_polyline_simplification.html">psimpl::PolylineSimplification</a>&lt; DIM, InputIterator, OutputIterator &gt;::DPHelper::ApproximateN </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classpsimpl_1_1_polyline_simplification.html#aacad79ca2e6dc004483838f460ab8df1">value_type</a> *&#160;</td>
<td class="paramname"><em>coords</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="classpsimpl_1_1_polyline_simplification.html#a08f998ecc4af984c070603b489b3ce28">ptr_diff_type</a>&#160;</td>
<td class="paramname"><em>coordCount</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">unsigned&#160;</td>
<td class="paramname"><em>countTol</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">unsigned char *&#160;</td>
<td class="paramname"><em>keys</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td><code> [inline, static]</code></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Performs Douglas-Peucker approximation. </p>
<dl><dt><b>Parameters:</b></dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">coords</td><td>array of polyline coordinates </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">coordCount</td><td>number of coordinates in coords [] </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">countTol</td><td>point count tolerance </td></tr>
<tr><td class="paramdir">[out]</td><td class="paramname">keys</td><td>indicates for each polyline point if it is a key </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="ab1e1bf2f9c562d9ea784466129ce0b19"></a><!-- doxytag: member="psimpl::PolylineSimplification::DPHelper::FindKey" ref="ab1e1bf2f9c562d9ea784466129ce0b19" args="(const value_type *coords, ptr_diff_type first, ptr_diff_type last)" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;unsigned DIM, class InputIterator, class OutputIterator&gt; </div>
<table class="memname">
<tr>
<td class="memname">static <a class="el" href="structpsimpl_1_1_polyline_simplification_1_1_d_p_helper_1_1_key_info.html">KeyInfo</a> <a class="el" href="classpsimpl_1_1_polyline_simplification.html">psimpl::PolylineSimplification</a>&lt; DIM, InputIterator, OutputIterator &gt;::DPHelper::FindKey </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classpsimpl_1_1_polyline_simplification.html#aacad79ca2e6dc004483838f460ab8df1">value_type</a> *&#160;</td>
<td class="paramname"><em>coords</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="classpsimpl_1_1_polyline_simplification.html#a08f998ecc4af984c070603b489b3ce28">ptr_diff_type</a>&#160;</td>
<td class="paramname"><em>first</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="classpsimpl_1_1_polyline_simplification.html#a08f998ecc4af984c070603b489b3ce28">ptr_diff_type</a>&#160;</td>
<td class="paramname"><em>last</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td><code> [inline, static, private]</code></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Finds the key for the given sub polyline. </p>
<p>Finds the point in the range [first, last] that is furthest away from the segment (first, last). This point is called the key.</p>
<dl><dt><b>Parameters:</b></dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">coords</td><td>array of polyline coordinates </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">first</td><td>the first coordinate of the first polyline point </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">last</td><td>the first coordinate of the last polyline point </td></tr>
</table>
</dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>the index of the key and its distance, or last when a key could not be found </dd></dl>
</div>
</div>
<hr/>The documentation for this class was generated from the following file:<ul>
<li>D:/Code/Projects/psimpl/trunk/lib/<a class="el" href="psimpl_8h_source.html">psimpl.h</a></li>
</ul>
</div>
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="namespacepsimpl.html">psimpl</a> </li>
<li class="navelem"><a class="el" href="classpsimpl_1_1_polyline_simplification.html">PolylineSimplification</a> </li>
<li class="navelem"><a class="el" href="classpsimpl_1_1_polyline_simplification_1_1_d_p_helper.html">DPHelper</a> </li>
<li class="footer">Generated on Fri Jun 24 2011 14:56:29 for psimpl by&#160;
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.4 </li>
</ul>
</div>
</body>
</html>

View File

@ -0,0 +1,86 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<title>psimpl: Member List</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript">
$(document).ready(initResizable);
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<!-- Generated by Doxygen 1.7.4 -->
<div id="top">
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td style="padding-left: 0.5em;">
<div id="projectname">psimpl&#160;<span id="projectnumber">7</span></div>
</td>
</tr>
</tbody>
</table>
</div>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="namespaces.html"><span>Namespaces</span></a></li>
<li class="current"><a href="annotated.html"><span>Classes</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
<li><a href="dirs.html"><span>Directories</span></a></li>
</ul>
</div>
<div id="navrow2" class="tabs2">
<ul class="tablist">
<li><a href="annotated.html"><span>Class&#160;List</span></a></li>
<li><a href="classes.html"><span>Class&#160;Index</span></a></li>
<li><a href="functions.html"><span>Class&#160;Members</span></a></li>
</ul>
</div>
</div>
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
initNavTree('classpsimpl_1_1util_1_1scoped__array.html','');
</script>
<div id="doc-content">
<div class="header">
<div class="headertitle">
<div class="title">psimpl::util::scoped_array&lt; T &gt; Member List</div> </div>
</div>
<div class="contents">
This is the complete list of members for <a class="el" href="classpsimpl_1_1util_1_1scoped__array.html">psimpl::util::scoped_array&lt; T &gt;</a>, including all inherited members.<table>
<tr class="memlist"><td><a class="el" href="classpsimpl_1_1util_1_1scoped__array.html#a804949986114cac19e44e959ed55202a">array</a></td><td><a class="el" href="classpsimpl_1_1util_1_1scoped__array.html">psimpl::util::scoped_array&lt; T &gt;</a></td><td><code> [private]</code></td></tr>
<tr class="memlist"><td><a class="el" href="classpsimpl_1_1util_1_1scoped__array.html#a7a4c3a0d4593dd10ddf6d695f2086e67">get</a>() const </td><td><a class="el" href="classpsimpl_1_1util_1_1scoped__array.html">psimpl::util::scoped_array&lt; T &gt;</a></td><td><code> [inline]</code></td></tr>
<tr class="memlist"><td><a class="el" href="classpsimpl_1_1util_1_1scoped__array.html#a9d2203f20dd342720a9a26fd329e6266">operator=</a>(const scoped_array &amp;)</td><td><a class="el" href="classpsimpl_1_1util_1_1scoped__array.html">psimpl::util::scoped_array&lt; T &gt;</a></td><td><code> [private]</code></td></tr>
<tr class="memlist"><td><a class="el" href="classpsimpl_1_1util_1_1scoped__array.html#a5fe6ffe5f442f5d8c5c24ef010b276d7">operator[]</a>(int offset)</td><td><a class="el" href="classpsimpl_1_1util_1_1scoped__array.html">psimpl::util::scoped_array&lt; T &gt;</a></td><td><code> [inline]</code></td></tr>
<tr class="memlist"><td><a class="el" href="classpsimpl_1_1util_1_1scoped__array.html#aa60ac752fe4ebe0a19b9b3e5fd02051c">operator[]</a>(int offset) const </td><td><a class="el" href="classpsimpl_1_1util_1_1scoped__array.html">psimpl::util::scoped_array&lt; T &gt;</a></td><td><code> [inline]</code></td></tr>
<tr class="memlist"><td><a class="el" href="classpsimpl_1_1util_1_1scoped__array.html#a7ca257c64e882a9a5973146de5c8055f">scoped_array</a>(unsigned n)</td><td><a class="el" href="classpsimpl_1_1util_1_1scoped__array.html">psimpl::util::scoped_array&lt; T &gt;</a></td><td><code> [inline]</code></td></tr>
<tr class="memlist"><td><a class="el" href="classpsimpl_1_1util_1_1scoped__array.html#a5a6f140a2398b3a2551b5803f521f5d9">scoped_array</a>(const scoped_array &amp;)</td><td><a class="el" href="classpsimpl_1_1util_1_1scoped__array.html">psimpl::util::scoped_array&lt; T &gt;</a></td><td><code> [private]</code></td></tr>
<tr class="memlist"><td><a class="el" href="classpsimpl_1_1util_1_1scoped__array.html#ac97beeefa4563f9b9096df6fac32ce39">swap</a>(scoped_array &amp;b)</td><td><a class="el" href="classpsimpl_1_1util_1_1scoped__array.html">psimpl::util::scoped_array&lt; T &gt;</a></td><td><code> [inline]</code></td></tr>
<tr class="memlist"><td><a class="el" href="classpsimpl_1_1util_1_1scoped__array.html#abc7ca2793c23699c0ba855856af436e8">~scoped_array</a>()</td><td><a class="el" href="classpsimpl_1_1util_1_1scoped__array.html">psimpl::util::scoped_array&lt; T &gt;</a></td><td><code> [inline]</code></td></tr>
</table></div>
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="footer">Generated on Fri Jun 24 2011 14:56:29 for psimpl by&#160;
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.4 </li>
</ul>
</div>
</body>
</html>

View File

@ -0,0 +1,284 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<title>psimpl: psimpl::util::scoped_array&lt; T &gt; Class Template Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript">
$(document).ready(initResizable);
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<!-- Generated by Doxygen 1.7.4 -->
<div id="top">
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td style="padding-left: 0.5em;">
<div id="projectname">psimpl&#160;<span id="projectnumber">7</span></div>
</td>
</tr>
</tbody>
</table>
</div>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="namespaces.html"><span>Namespaces</span></a></li>
<li class="current"><a href="annotated.html"><span>Classes</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
<li><a href="dirs.html"><span>Directories</span></a></li>
</ul>
</div>
<div id="navrow2" class="tabs2">
<ul class="tablist">
<li><a href="annotated.html"><span>Class&#160;List</span></a></li>
<li><a href="classes.html"><span>Class&#160;Index</span></a></li>
<li><a href="functions.html"><span>Class&#160;Members</span></a></li>
</ul>
</div>
</div>
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
initNavTree('classpsimpl_1_1util_1_1scoped__array.html','');
</script>
<div id="doc-content">
<div class="header">
<div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="#pri-methods">Private Member Functions</a> &#124;
<a href="#pri-attribs">Private Attributes</a> </div>
<div class="headertitle">
<div class="title">psimpl::util::scoped_array&lt; T &gt; Class Template Reference</div> </div>
</div>
<div class="contents">
<!-- doxytag: class="psimpl::util::scoped_array" -->
<p>A smart pointer for holding a dynamically allocated array.
<a href="classpsimpl_1_1util_1_1scoped__array.html#details">More...</a></p>
<p><code>#include &lt;<a class="el" href="psimpl_8h_source.html">psimpl.h</a>&gt;</code></p>
<p><a href="classpsimpl_1_1util_1_1scoped__array-members.html">List of all members.</a></p>
<table class="memberdecls">
<tr><td colspan="2"><h2><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpsimpl_1_1util_1_1scoped__array.html#a7ca257c64e882a9a5973146de5c8055f">scoped_array</a> (unsigned n)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpsimpl_1_1util_1_1scoped__array.html#abc7ca2793c23699c0ba855856af436e8">~scoped_array</a> ()</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">T &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpsimpl_1_1util_1_1scoped__array.html#a5fe6ffe5f442f5d8c5c24ef010b276d7">operator[]</a> (int offset)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">const T &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpsimpl_1_1util_1_1scoped__array.html#aa60ac752fe4ebe0a19b9b3e5fd02051c">operator[]</a> (int offset) const </td></tr>
<tr><td class="memItemLeft" align="right" valign="top">T *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpsimpl_1_1util_1_1scoped__array.html#a7a4c3a0d4593dd10ddf6d695f2086e67">get</a> () const </td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpsimpl_1_1util_1_1scoped__array.html#ac97beeefa4563f9b9096df6fac32ce39">swap</a> (<a class="el" href="classpsimpl_1_1util_1_1scoped__array.html">scoped_array</a> &amp;b)</td></tr>
<tr><td colspan="2"><h2><a name="pri-methods"></a>
Private Member Functions</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpsimpl_1_1util_1_1scoped__array.html#a5a6f140a2398b3a2551b5803f521f5d9">scoped_array</a> (const <a class="el" href="classpsimpl_1_1util_1_1scoped__array.html">scoped_array</a> &amp;)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classpsimpl_1_1util_1_1scoped__array.html">scoped_array</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpsimpl_1_1util_1_1scoped__array.html#a9d2203f20dd342720a9a26fd329e6266">operator=</a> (const <a class="el" href="classpsimpl_1_1util_1_1scoped__array.html">scoped_array</a> &amp;)</td></tr>
<tr><td colspan="2"><h2><a name="pri-attribs"></a>
Private Attributes</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">T *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpsimpl_1_1util_1_1scoped__array.html#a804949986114cac19e44e959ed55202a">array</a></td></tr>
</table>
<hr/><a name="details" id="details"></a><h2>Detailed Description</h2>
<div class="textblock"><h3>template&lt;typename T&gt;<br/>
class psimpl::util::scoped_array&lt; T &gt;</h3>
<p>A smart pointer for holding a dynamically allocated array. </p>
<p>Similar to boost::scoped_array. </p>
</div><hr/><h2>Constructor &amp; Destructor Documentation</h2>
<a class="anchor" id="a7ca257c64e882a9a5973146de5c8055f"></a><!-- doxytag: member="psimpl::util::scoped_array::scoped_array" ref="a7ca257c64e882a9a5973146de5c8055f" args="(unsigned n)" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T&gt; </div>
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classpsimpl_1_1util_1_1scoped__array.html">psimpl::util::scoped_array</a>&lt; T &gt;::<a class="el" href="classpsimpl_1_1util_1_1scoped__array.html">scoped_array</a> </td>
<td>(</td>
<td class="paramtype">unsigned&#160;</td>
<td class="paramname"><em>n</em></td><td>)</td>
<td><code> [inline]</code></td>
</tr>
</table>
</div>
<div class="memdoc">
</div>
</div>
<a class="anchor" id="abc7ca2793c23699c0ba855856af436e8"></a><!-- doxytag: member="psimpl::util::scoped_array::~scoped_array" ref="abc7ca2793c23699c0ba855856af436e8" args="()" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T&gt; </div>
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classpsimpl_1_1util_1_1scoped__array.html">psimpl::util::scoped_array</a>&lt; T &gt;::~<a class="el" href="classpsimpl_1_1util_1_1scoped__array.html">scoped_array</a> </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td><code> [inline]</code></td>
</tr>
</table>
</div>
<div class="memdoc">
</div>
</div>
<a class="anchor" id="a5a6f140a2398b3a2551b5803f521f5d9"></a><!-- doxytag: member="psimpl::util::scoped_array::scoped_array" ref="a5a6f140a2398b3a2551b5803f521f5d9" args="(const scoped_array &amp;)" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T&gt; </div>
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classpsimpl_1_1util_1_1scoped__array.html">psimpl::util::scoped_array</a>&lt; T &gt;::<a class="el" href="classpsimpl_1_1util_1_1scoped__array.html">scoped_array</a> </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classpsimpl_1_1util_1_1scoped__array.html">scoped_array</a>&lt; T &gt; &amp;&#160;</td>
<td class="paramname"></td><td>)</td>
<td><code> [private]</code></td>
</tr>
</table>
</div>
<div class="memdoc">
</div>
</div>
<hr/><h2>Member Function Documentation</h2>
<a class="anchor" id="a7a4c3a0d4593dd10ddf6d695f2086e67"></a><!-- doxytag: member="psimpl::util::scoped_array::get" ref="a7a4c3a0d4593dd10ddf6d695f2086e67" args="() const " -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T&gt; </div>
<table class="memname">
<tr>
<td class="memname">T* <a class="el" href="classpsimpl_1_1util_1_1scoped__array.html">psimpl::util::scoped_array</a>&lt; T &gt;::get </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const<code> [inline]</code></td>
</tr>
</table>
</div>
<div class="memdoc">
</div>
</div>
<a class="anchor" id="a9d2203f20dd342720a9a26fd329e6266"></a><!-- doxytag: member="psimpl::util::scoped_array::operator=" ref="a9d2203f20dd342720a9a26fd329e6266" args="(const scoped_array &amp;)" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T&gt; </div>
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classpsimpl_1_1util_1_1scoped__array.html">scoped_array</a>&amp; <a class="el" href="classpsimpl_1_1util_1_1scoped__array.html">psimpl::util::scoped_array</a>&lt; T &gt;::operator= </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classpsimpl_1_1util_1_1scoped__array.html">scoped_array</a>&lt; T &gt; &amp;&#160;</td>
<td class="paramname"></td><td>)</td>
<td><code> [private]</code></td>
</tr>
</table>
</div>
<div class="memdoc">
</div>
</div>
<a class="anchor" id="aa60ac752fe4ebe0a19b9b3e5fd02051c"></a><!-- doxytag: member="psimpl::util::scoped_array::operator[]" ref="aa60ac752fe4ebe0a19b9b3e5fd02051c" args="(int offset) const " -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T&gt; </div>
<table class="memname">
<tr>
<td class="memname">const T&amp; <a class="el" href="classpsimpl_1_1util_1_1scoped__array.html">psimpl::util::scoped_array</a>&lt; T &gt;::operator[] </td>
<td>(</td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>offset</em></td><td>)</td>
<td> const<code> [inline]</code></td>
</tr>
</table>
</div>
<div class="memdoc">
</div>
</div>
<a class="anchor" id="a5fe6ffe5f442f5d8c5c24ef010b276d7"></a><!-- doxytag: member="psimpl::util::scoped_array::operator[]" ref="a5fe6ffe5f442f5d8c5c24ef010b276d7" args="(int offset)" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T&gt; </div>
<table class="memname">
<tr>
<td class="memname">T&amp; <a class="el" href="classpsimpl_1_1util_1_1scoped__array.html">psimpl::util::scoped_array</a>&lt; T &gt;::operator[] </td>
<td>(</td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>offset</em></td><td>)</td>
<td><code> [inline]</code></td>
</tr>
</table>
</div>
<div class="memdoc">
</div>
</div>
<a class="anchor" id="ac97beeefa4563f9b9096df6fac32ce39"></a><!-- doxytag: member="psimpl::util::scoped_array::swap" ref="ac97beeefa4563f9b9096df6fac32ce39" args="(scoped_array &amp;b)" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T&gt; </div>
<table class="memname">
<tr>
<td class="memname">void <a class="el" href="classpsimpl_1_1util_1_1scoped__array.html">psimpl::util::scoped_array</a>&lt; T &gt;::swap </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classpsimpl_1_1util_1_1scoped__array.html">scoped_array</a>&lt; T &gt; &amp;&#160;</td>
<td class="paramname"><em>b</em></td><td>)</td>
<td><code> [inline]</code></td>
</tr>
</table>
</div>
<div class="memdoc">
</div>
</div>
<hr/><h2>Member Data Documentation</h2>
<a class="anchor" id="a804949986114cac19e44e959ed55202a"></a><!-- doxytag: member="psimpl::util::scoped_array::array" ref="a804949986114cac19e44e959ed55202a" args="" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T&gt; </div>
<table class="memname">
<tr>
<td class="memname">T* <a class="el" href="classpsimpl_1_1util_1_1scoped__array.html">psimpl::util::scoped_array</a>&lt; T &gt;::<a class="el" href="classpsimpl_1_1util_1_1scoped__array.html#a804949986114cac19e44e959ed55202a">array</a><code> [private]</code></td>
</tr>
</table>
</div>
<div class="memdoc">
</div>
</div>
<hr/>The documentation for this class was generated from the following file:<ul>
<li>D:/Code/Projects/psimpl/trunk/lib/<a class="el" href="psimpl_8h_source.html">psimpl.h</a></li>
</ul>
</div>
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="namespacepsimpl.html">psimpl</a> </li>
<li class="navelem"><a class="el" href="namespacepsimpl_1_1util.html">util</a> </li>
<li class="navelem"><a class="el" href="classpsimpl_1_1util_1_1scoped__array.html">scoped_array</a> </li>
<li class="footer">Generated on Fri Jun 24 2011 14:56:29 for psimpl by&#160;
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.4 </li>
</ul>
</div>
</body>
</html>

Binary file not shown.

After

Width:  |  Height:  |  Size: 126 B

View File

@ -0,0 +1,75 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<title>psimpl: D:/Code/Projects/psimpl/trunk/lib/ Directory Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript">
$(document).ready(initResizable);
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<!-- Generated by Doxygen 1.7.4 -->
<div id="top">
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td style="padding-left: 0.5em;">
<div id="projectname">psimpl&#160;<span id="projectnumber">7</span></div>
</td>
</tr>
</tbody>
</table>
</div>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="namespaces.html"><span>Namespaces</span></a></li>
<li><a href="annotated.html"><span>Classes</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
<li><a href="dirs.html"><span>Directories</span></a></li>
</ul>
</div>
</div>
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
initNavTree('dir_f9993e17f36afaef24d7a404e932861e.html','');
</script>
<div id="doc-content">
<div class="header">
<div class="headertitle">
<div class="title">lib Directory Reference</div> </div>
</div>
<div class="contents">
<table class="memberdecls">
<tr><td colspan="2"><h2><a name="files"></a>
Files</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="psimpl_8h.html">psimpl.h</a> <a href="psimpl_8h_source.html">[code]</a></td></tr>
</table>
</div>
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="dir_f9993e17f36afaef24d7a404e932861e.html">lib</a> </li>
<li class="footer">Generated on Fri Jun 24 2011 14:56:29 for psimpl by&#160;
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.4 </li>
</ul>
</div>
</body>
</html>

View File

@ -0,0 +1,72 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<title>psimpl: Directories</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript">
$(document).ready(initResizable);
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<!-- Generated by Doxygen 1.7.4 -->
<div id="top">
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td style="padding-left: 0.5em;">
<div id="projectname">psimpl&#160;<span id="projectnumber">7</span></div>
</td>
</tr>
</tbody>
</table>
</div>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="namespaces.html"><span>Namespaces</span></a></li>
<li><a href="annotated.html"><span>Classes</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
<li class="current"><a href="dirs.html"><span>Directories</span></a></li>
</ul>
</div>
</div>
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
initNavTree('dirs.html','');
</script>
<div id="doc-content">
<div class="header">
<div class="headertitle">
<div class="title">Directories</div> </div>
</div>
<div class="contents">
<div class="textblock">This directory hierarchy is sorted roughly, but not completely, alphabetically:</div><ul>
<li><a class="el" href="dir_f9993e17f36afaef24d7a404e932861e.html">lib</a></li>
</ul>
</div>
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="footer">Generated on Fri Jun 24 2011 14:56:29 for psimpl by&#160;
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.4 </li>
</ul>
</div>
</body>
</html>

View File

@ -0,0 +1,835 @@
/* The standard CSS for doxygen */
body, table, div, p, dl {
font-family: Lucida Grande, Verdana, Geneva, Arial, sans-serif;
font-size: 12px;
}
/* @group Heading Levels */
h1 {
font-size: 150%;
}
.title {
font-size: 150%;
font-weight: bold;
margin: 10px 2px;
}
h2 {
font-size: 120%;
}
h3 {
font-size: 100%;
}
dt {
font-weight: bold;
}
div.multicol {
-moz-column-gap: 1em;
-webkit-column-gap: 1em;
-moz-column-count: 3;
-webkit-column-count: 3;
}
p.startli, p.startdd, p.starttd {
margin-top: 2px;
}
p.endli {
margin-bottom: 0px;
}
p.enddd {
margin-bottom: 4px;
}
p.endtd {
margin-bottom: 2px;
}
/* @end */
caption {
font-weight: bold;
}
span.legend {
font-size: 70%;
text-align: center;
}
h3.version {
font-size: 90%;
text-align: center;
}
div.qindex, div.navtab{
background-color: #EBEFF6;
border: 1px solid #A3B4D7;
text-align: center;
margin: 2px;
padding: 2px;
}
div.qindex, div.navpath {
width: 100%;
line-height: 140%;
}
div.navtab {
margin-right: 15px;
}
/* @group Link Styling */
a {
color: #3D578C;
font-weight: normal;
text-decoration: none;
}
.contents a:visited {
color: #4665A2;
}
a:hover {
text-decoration: underline;
}
a.qindex {
font-weight: bold;
}
a.qindexHL {
font-weight: bold;
background-color: #9CAFD4;
color: #ffffff;
border: 1px double #869DCA;
}
.contents a.qindexHL:visited {
color: #ffffff;
}
a.el {
font-weight: bold;
}
a.elRef {
}
a.code {
color: #4665A2;
}
a.codeRef {
color: #4665A2;
}
/* @end */
dl.el {
margin-left: -1cm;
}
.fragment {
font-family: monospace, fixed;
font-size: 105%;
}
pre.fragment {
border: 1px solid #C4CFE5;
background-color: #FBFCFD;
padding: 4px 6px;
margin: 4px 8px 4px 2px;
overflow: auto;
word-wrap: break-word;
font-size: 9pt;
line-height: 125%;
}
div.ah {
background-color: black;
font-weight: bold;
color: #ffffff;
margin-bottom: 3px;
margin-top: 3px;
padding: 0.2em;
border: solid thin #333;
border-radius: 0.5em;
-webkit-border-radius: .5em;
-moz-border-radius: .5em;
box-shadow: 2px 2px 3px #999;
-webkit-box-shadow: 2px 2px 3px #999;
-moz-box-shadow: rgba(0, 0, 0, 0.15) 2px 2px 2px;
background-image: -webkit-gradient(linear, left top, left bottom, from(#eee), to(#000),color-stop(0.3, #444));
background-image: -moz-linear-gradient(center top, #eee 0%, #444 40%, #000);
}
div.groupHeader {
margin-left: 16px;
margin-top: 12px;
font-weight: bold;
}
div.groupText {
margin-left: 16px;
font-style: italic;
}
body {
background: white;
color: black;
margin: 0;
}
div.contents {
margin-top: 10px;
margin-left: 10px;
margin-right: 5px;
}
td.indexkey {
background-color: #EBEFF6;
font-weight: bold;
border: 1px solid #C4CFE5;
margin: 2px 0px 2px 0;
padding: 2px 10px;
}
td.indexvalue {
background-color: #EBEFF6;
border: 1px solid #C4CFE5;
padding: 2px 10px;
margin: 2px 0px;
}
tr.memlist {
background-color: #EEF1F7;
}
p.formulaDsp {
text-align: center;
}
img.formulaDsp {
}
img.formulaInl {
vertical-align: middle;
}
div.center {
text-align: center;
margin-top: 0px;
margin-bottom: 0px;
padding: 0px;
}
div.center img {
border: 0px;
}
address.footer {
text-align: right;
padding-right: 12px;
}
img.footer {
border: 0px;
vertical-align: middle;
}
/* @group Code Colorization */
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
}
span.vhdldigit {
color: #ff00ff
}
span.vhdlchar {
color: #000000
}
span.vhdlkeyword {
color: #700070
}
span.vhdllogic {
color: #ff0000
}
/* @end */
/*
.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%;
}
.dirtab {
padding: 4px;
border-collapse: collapse;
border: 1px solid #A3B4D7;
}
th.dirtab {
background: #EBEFF6;
font-weight: bold;
}
hr {
height: 0px;
border: none;
border-top: 1px solid #4A6AAA;
}
hr.footer {
height: 1px;
}
/* @group Member Descriptions */
table.memberdecls {
border-spacing: 0px;
padding: 0px;
}
.mdescLeft, .mdescRight,
.memItemLeft, .memItemRight,
.memTemplItemLeft, .memTemplItemRight, .memTemplParams {
background-color: #F9FAFC;
border: none;
margin: 4px;
padding: 1px 0 0 8px;
}
.mdescLeft, .mdescRight {
padding: 0px 8px 4px 8px;
color: #555;
}
.memItemLeft, .memItemRight, .memTemplParams {
border-top: 1px solid #C4CFE5;
}
.memItemLeft, .memTemplItemLeft {
white-space: nowrap;
}
.memItemRight {
width: 100%;
}
.memTemplParams {
color: #4665A2;
white-space: nowrap;
}
/* @end */
/* @group Member Details */
/* Styles for detailed member documentation */
.memtemplate {
font-size: 80%;
color: #4665A2;
font-weight: normal;
margin-left: 9px;
}
.memnav {
background-color: #EBEFF6;
border: 1px solid #A3B4D7;
text-align: center;
margin: 2px;
margin-right: 15px;
padding: 2px;
}
.mempage {
width: 100%;
}
.memitem {
padding: 0;
margin-bottom: 10px;
margin-right: 5px;
}
.memname {
white-space: nowrap;
font-weight: bold;
margin-left: 6px;
}
.memproto {
border-top: 1px solid #A8B8D9;
border-left: 1px solid #A8B8D9;
border-right: 1px solid #A8B8D9;
padding: 6px 0px 6px 0px;
color: #253555;
font-weight: bold;
text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9);
/* opera specific markup */
box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15);
border-top-right-radius: 8px;
border-top-left-radius: 8px;
/* firefox specific markup */
-moz-box-shadow: rgba(0, 0, 0, 0.15) 5px 5px 5px;
-moz-border-radius-topright: 8px;
-moz-border-radius-topleft: 8px;
/* webkit specific markup */
-webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15);
-webkit-border-top-right-radius: 8px;
-webkit-border-top-left-radius: 8px;
background-image:url('nav_f.png');
background-repeat:repeat-x;
background-color: #E2E8F2;
}
.memdoc {
border-bottom: 1px solid #A8B8D9;
border-left: 1px solid #A8B8D9;
border-right: 1px solid #A8B8D9;
padding: 2px 5px;
background-color: #FBFCFD;
border-top-width: 0;
/* opera specific markup */
border-bottom-left-radius: 8px;
border-bottom-right-radius: 8px;
box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15);
/* firefox specific markup */
-moz-border-radius-bottomleft: 8px;
-moz-border-radius-bottomright: 8px;
-moz-box-shadow: rgba(0, 0, 0, 0.15) 5px 5px 5px;
background-image: -moz-linear-gradient(center top, #FFFFFF 0%, #FFFFFF 60%, #F7F8FB 95%, #EEF1F7);
/* webkit specific markup */
-webkit-border-bottom-left-radius: 8px;
-webkit-border-bottom-right-radius: 8px;
-webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15);
background-image: -webkit-gradient(linear,center top,center bottom,from(#FFFFFF), color-stop(0.6,#FFFFFF), color-stop(0.60,#FFFFFF), color-stop(0.95,#F7F8FB), to(#EEF1F7));
}
.paramkey {
text-align: right;
}
.paramtype {
white-space: nowrap;
}
.paramname {
color: #602020;
white-space: nowrap;
}
.paramname em {
font-style: normal;
}
.params, .retval, .exception, .tparams {
border-spacing: 6px 2px;
}
.params .paramname, .retval .paramname {
font-weight: bold;
vertical-align: top;
}
.params .paramtype {
font-style: italic;
vertical-align: top;
}
.params .paramdir {
font-family: "courier new",courier,monospace;
vertical-align: top;
}
/* @end */
/* @group Directory (tree) */
/* for the tree view */
.ftvtree {
font-family: sans-serif;
margin: 0px;
}
/* these are for tree view when used as main index */
.directory {
font-size: 9pt;
font-weight: bold;
margin: 5px;
}
.directory h3 {
margin: 0px;
margin-top: 1em;
font-size: 11pt;
}
/*
The following two styles can be used to replace the root node title
with an image of your choice. Simply uncomment the next two styles,
specify the name of your image and be sure to set 'height' to the
proper pixel height of your image.
*/
/*
.directory h3.swap {
height: 61px;
background-repeat: no-repeat;
background-image: url("yourimage.gif");
}
.directory h3.swap span {
display: none;
}
*/
.directory > h3 {
margin-top: 0;
}
.directory p {
margin: 0px;
white-space: nowrap;
}
.directory div {
display: none;
margin: 0px;
}
.directory img {
vertical-align: -30%;
}
/* these are for tree view when not used as main index */
.directory-alt {
font-size: 100%;
font-weight: bold;
}
.directory-alt h3 {
margin: 0px;
margin-top: 1em;
font-size: 11pt;
}
.directory-alt > h3 {
margin-top: 0;
}
.directory-alt p {
margin: 0px;
white-space: nowrap;
}
.directory-alt div {
display: none;
margin: 0px;
}
.directory-alt img {
vertical-align: -30%;
}
/* @end */
div.dynheader {
margin-top: 8px;
}
address {
font-style: normal;
color: #2A3D61;
}
table.doxtable {
border-collapse:collapse;
}
table.doxtable td, table.doxtable th {
border: 1px solid #2D4068;
padding: 3px 7px 2px;
}
table.doxtable th {
background-color: #374F7F;
color: #FFFFFF;
font-size: 110%;
padding-bottom: 4px;
padding-top: 5px;
text-align:left;
}
.tabsearch {
top: 0px;
left: 10px;
height: 36px;
background-image: url('tab_b.png');
z-index: 101;
overflow: hidden;
font-size: 13px;
}
.navpath ul
{
font-size: 11px;
background-image:url('tab_b.png');
background-repeat:repeat-x;
height:30px;
line-height:30px;
color:#8AA0CC;
border:solid 1px #C2CDE4;
overflow:hidden;
margin:0px;
padding:0px;
}
.navpath li
{
list-style-type:none;
float:left;
padding-left:10px;
padding-right:15px;
background-image:url('bc_s.png');
background-repeat:no-repeat;
background-position:right;
color:#364D7C;
}
.navpath li.navelem a
{
height:32px;
display:block;
text-decoration: none;
outline: none;
}
.navpath li.navelem a:hover
{
color:#6884BD;
}
.navpath li.footer
{
list-style-type:none;
float:right;
padding-left:10px;
padding-right:15px;
background-image:none;
background-repeat:no-repeat;
background-position:right;
color:#364D7C;
font-size: 8pt;
}
div.summary
{
float: right;
font-size: 8pt;
padding-right: 5px;
width: 50%;
text-align: right;
}
div.summary a
{
white-space: nowrap;
}
div.ingroups
{
font-size: 8pt;
padding-left: 5px;
width: 50%;
text-align: left;
}
div.ingroups a
{
white-space: nowrap;
}
div.header
{
background-image:url('nav_h.png');
background-repeat:repeat-x;
background-color: #F9FAFC;
margin: 0px;
border-bottom: 1px solid #C4CFE5;
}
div.headertitle
{
padding: 5px 5px 5px 10px;
}
dl
{
padding: 0 0 0 10px;
}
dl.note, dl.warning, dl.attention, dl.pre, dl.post, dl.invariant, dl.deprecated, dl.todo, dl.test, dl.bug
{
border-left:4px solid;
padding: 0 0 0 6px;
}
dl.note
{
border-color: #D0C000;
}
dl.warning, dl.attention
{
border-color: #FF0000;
}
dl.pre, dl.post, dl.invariant
{
border-color: #00D000;
}
dl.deprecated
{
border-color: #505050;
}
dl.todo
{
border-color: #00C0E0;
}
dl.test
{
border-color: #3030E0;
}
dl.bug
{
border-color: #C08050;
}
#projectlogo
{
text-align: center;
vertical-align: bottom;
border-collapse: separate;
}
#projectlogo img
{
border: 0px none;
}
#projectname
{
font: 300% Tahoma, Arial,sans-serif;
margin: 0px;
padding: 2px 0px;
}
#projectbrief
{
font: 120% Tahoma, Arial,sans-serif;
margin: 0px;
padding: 0px;
}
#projectnumber
{
font: 50% Tahoma, Arial,sans-serif;
margin: 0px;
padding: 0px;
}
#titlearea
{
padding: 0px;
margin: 0px;
width: 100%;
border-bottom: 1px solid #5373B4;
}
.image
{
text-align: center;
}
.dotgraph
{
text-align: center;
}
.mscgraph
{
text-align: center;
}
.caption
{
font-weight: bold;
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.8 KiB

View File

@ -0,0 +1,77 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<title>psimpl: File List</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript">
$(document).ready(initResizable);
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<!-- Generated by Doxygen 1.7.4 -->
<div id="top">
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td style="padding-left: 0.5em;">
<div id="projectname">psimpl&#160;<span id="projectnumber">7</span></div>
</td>
</tr>
</tbody>
</table>
</div>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="namespaces.html"><span>Namespaces</span></a></li>
<li><a href="annotated.html"><span>Classes</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
<li><a href="dirs.html"><span>Directories</span></a></li>
</ul>
</div>
<div id="navrow2" class="tabs2">
<ul class="tablist">
<li class="current"><a href="files.html"><span>File&#160;List</span></a></li>
</ul>
</div>
</div>
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
initNavTree('files.html','');
</script>
<div id="doc-content">
<div class="header">
<div class="headertitle">
<div class="title">File List</div> </div>
</div>
<div class="contents">
<div class="textblock">Here is a list of all files with brief descriptions:</div><table>
<tr><td class="indexkey">D:/Code/Projects/psimpl/trunk/lib/<a class="el" href="psimpl_8h.html">psimpl.h</a> <a href="psimpl_8h_source.html">[code]</a></td><td class="indexvalue"></td></tr>
</table>
</div>
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="footer">Generated on Fri Jun 24 2011 14:56:29 for psimpl by&#160;
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.4 </li>
</ul>
</div>
</body>
</html>

Binary file not shown.

After

Width:  |  Height:  |  Size: 82 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 762 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 598 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 590 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 82 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 762 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 221 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 221 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 82 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 215 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 215 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 249 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 82 B

View File

@ -0,0 +1,300 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<title>psimpl: Class Members</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript">
$(document).ready(initResizable);
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<!-- Generated by Doxygen 1.7.4 -->
<div id="top">
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td style="padding-left: 0.5em;">
<div id="projectname">psimpl&#160;<span id="projectnumber">7</span></div>
</td>
</tr>
</tbody>
</table>
</div>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="namespaces.html"><span>Namespaces</span></a></li>
<li class="current"><a href="annotated.html"><span>Classes</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
<li><a href="dirs.html"><span>Directories</span></a></li>
</ul>
</div>
<div id="navrow2" class="tabs2">
<ul class="tablist">
<li><a href="annotated.html"><span>Class&#160;List</span></a></li>
<li><a href="classes.html"><span>Class&#160;Index</span></a></li>
<li class="current"><a href="functions.html"><span>Class&#160;Members</span></a></li>
</ul>
</div>
<div id="navrow3" class="tabs2">
<ul class="tablist">
<li class="current"><a href="functions.html"><span>All</span></a></li>
<li><a href="functions_func.html"><span>Functions</span></a></li>
<li><a href="functions_vars.html"><span>Variables</span></a></li>
<li><a href="functions_type.html"><span>Typedefs</span></a></li>
</ul>
</div>
<div id="navrow4" class="tabs3">
<ul class="tablist">
<li><a href="#index_a"><span>a</span></a></li>
<li><a href="#index_b"><span>b</span></a></li>
<li><a href="#index_c"><span>c</span></a></li>
<li><a href="#index_d"><span>d</span></a></li>
<li><a href="#index_f"><span>f</span></a></li>
<li><a href="#index_g"><span>g</span></a></li>
<li><a href="#index_i"><span>i</span></a></li>
<li><a href="#index_k"><span>k</span></a></li>
<li><a href="#index_l"><span>l</span></a></li>
<li><a href="#index_m"><span>m</span></a></li>
<li><a href="#index_n"><span>n</span></a></li>
<li><a href="#index_o"><span>o</span></a></li>
<li><a href="#index_p"><span>p</span></a></li>
<li><a href="#index_r"><span>r</span></a></li>
<li><a href="#index_s"><span>s</span></a></li>
<li><a href="#index_v"><span>v</span></a></li>
<li><a href="#index_0x7e"><span>~</span></a></li>
</ul>
</div>
</div>
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
initNavTree('functions.html','');
</script>
<div id="doc-content">
<div class="contents">
<div class="textblock">Here is a list of all class members with links to the classes they belong to:</div>
<h3><a class="anchor" id="index_a"></a>- a -</h3><ul>
<li>Advance()
: <a class="el" href="classpsimpl_1_1_polyline_simplification.html#a825677c1dbe228d8904846ea2781ee19">psimpl::PolylineSimplification&lt; DIM, InputIterator, OutputIterator &gt;</a>
</li>
<li>AdvanceCopy()
: <a class="el" href="classpsimpl_1_1_polyline_simplification.html#a9c2510b3c8466f2080b924629e8ce2e6">psimpl::PolylineSimplification&lt; DIM, InputIterator, OutputIterator &gt;</a>
</li>
<li>Approximate()
: <a class="el" href="classpsimpl_1_1_polyline_simplification_1_1_d_p_helper.html#a19ef5bd5a4ff343e4defbe3765215c28">psimpl::PolylineSimplification&lt; DIM, InputIterator, OutputIterator &gt;::DPHelper</a>
</li>
<li>ApproximateN()
: <a class="el" href="classpsimpl_1_1_polyline_simplification_1_1_d_p_helper.html#afd49bef5d20db1ef171f9dcfc297e953">psimpl::PolylineSimplification&lt; DIM, InputIterator, OutputIterator &gt;::DPHelper</a>
</li>
<li>array
: <a class="el" href="classpsimpl_1_1util_1_1scoped__array.html#a804949986114cac19e44e959ed55202a">psimpl::util::scoped_array&lt; T &gt;</a>
</li>
</ul>
<h3><a class="anchor" id="index_b"></a>- b -</h3><ul>
<li>Backward()
: <a class="el" href="classpsimpl_1_1_polyline_simplification.html#a5af6938c7d84c84f20c4981a51228865">psimpl::PolylineSimplification&lt; DIM, InputIterator, OutputIterator &gt;</a>
</li>
</ul>
<h3><a class="anchor" id="index_c"></a>- c -</h3><ul>
<li>ComputePositionalErrors2()
: <a class="el" href="classpsimpl_1_1_polyline_simplification.html#a6b3ed5157f5bf51ef7be179896cd2903">psimpl::PolylineSimplification&lt; DIM, InputIterator, OutputIterator &gt;</a>
</li>
<li>ComputePositionalErrorStatistics()
: <a class="el" href="classpsimpl_1_1_polyline_simplification.html#a10af204d445105a8a4cbc81bd0563cb1">psimpl::PolylineSimplification&lt; DIM, InputIterator, OutputIterator &gt;</a>
</li>
<li>CopyKey()
: <a class="el" href="classpsimpl_1_1_polyline_simplification.html#a46fd020dc9f03e4b44bf95f256a06b1a">psimpl::PolylineSimplification&lt; DIM, InputIterator, OutputIterator &gt;</a>
</li>
<li>CopyKeyAdvance()
: <a class="el" href="classpsimpl_1_1_polyline_simplification.html#acd517bb1803b28ad69aa9012ac2577e5">psimpl::PolylineSimplification&lt; DIM, InputIterator, OutputIterator &gt;</a>
</li>
</ul>
<h3><a class="anchor" id="index_d"></a>- d -</h3><ul>
<li>diff_type
: <a class="el" href="classpsimpl_1_1_polyline_simplification.html#a5a3b5d1a275e366f2c0bab770140507c">psimpl::PolylineSimplification&lt; DIM, InputIterator, OutputIterator &gt;</a>
</li>
<li>dist2
: <a class="el" href="structpsimpl_1_1_polyline_simplification_1_1_d_p_helper_1_1_key_info.html#a18fc8b4698754902fa697d9ea92629f4">psimpl::PolylineSimplification&lt; DIM, InputIterator, OutputIterator &gt;::DPHelper::KeyInfo</a>
</li>
<li>DouglasPeucker()
: <a class="el" href="classpsimpl_1_1_polyline_simplification.html#a75954f25bc0d99e0a756611ffa2b5fda">psimpl::PolylineSimplification&lt; DIM, InputIterator, OutputIterator &gt;</a>
</li>
<li>DouglasPeuckerN()
: <a class="el" href="classpsimpl_1_1_polyline_simplification.html#ae309320bd688e6752c8d1e70ff58e4c1">psimpl::PolylineSimplification&lt; DIM, InputIterator, OutputIterator &gt;</a>
</li>
</ul>
<h3><a class="anchor" id="index_f"></a>- f -</h3><ul>
<li>FindKey()
: <a class="el" href="classpsimpl_1_1_polyline_simplification_1_1_d_p_helper.html#ab1e1bf2f9c562d9ea784466129ce0b19">psimpl::PolylineSimplification&lt; DIM, InputIterator, OutputIterator &gt;::DPHelper</a>
</li>
<li>first
: <a class="el" href="structpsimpl_1_1_polyline_simplification_1_1_d_p_helper_1_1_sub_poly.html#a6e072a2f6fe795c72870b498ec96e564">psimpl::PolylineSimplification&lt; DIM, InputIterator, OutputIterator &gt;::DPHelper::SubPoly</a>
, <a class="el" href="structpsimpl_1_1_polyline_simplification_1_1_d_p_helper_1_1_sub_poly_alt.html#a92345917355c59fbc19704c01a4bfa2d">psimpl::PolylineSimplification&lt; DIM, InputIterator, OutputIterator &gt;::DPHelper::SubPolyAlt</a>
</li>
<li>Forward()
: <a class="el" href="classpsimpl_1_1_polyline_simplification.html#ab371de18bbb855cbd2912ceea5260519">psimpl::PolylineSimplification&lt; DIM, InputIterator, OutputIterator &gt;</a>
</li>
</ul>
<h3><a class="anchor" id="index_g"></a>- g -</h3><ul>
<li>get()
: <a class="el" href="classpsimpl_1_1util_1_1scoped__array.html#a7a4c3a0d4593dd10ddf6d695f2086e67">psimpl::util::scoped_array&lt; T &gt;</a>
</li>
</ul>
<h3><a class="anchor" id="index_i"></a>- i -</h3><ul>
<li>index
: <a class="el" href="structpsimpl_1_1_polyline_simplification_1_1_d_p_helper_1_1_key_info.html#aa4ea63f0cb9abd4c7001d3f835a47ae4">psimpl::PolylineSimplification&lt; DIM, InputIterator, OutputIterator &gt;::DPHelper::KeyInfo</a>
</li>
</ul>
<h3><a class="anchor" id="index_k"></a>- k -</h3><ul>
<li>KeyInfo()
: <a class="el" href="structpsimpl_1_1_polyline_simplification_1_1_d_p_helper_1_1_key_info.html#ae9db44331df497b0e20e97f7b1a93491">psimpl::PolylineSimplification&lt; DIM, InputIterator, OutputIterator &gt;::DPHelper::KeyInfo</a>
</li>
<li>keyInfo
: <a class="el" href="structpsimpl_1_1_polyline_simplification_1_1_d_p_helper_1_1_sub_poly_alt.html#afa58fb132744d1a2ba4c7ab4ddbc00fb">psimpl::PolylineSimplification&lt; DIM, InputIterator, OutputIterator &gt;::DPHelper::SubPolyAlt</a>
</li>
</ul>
<h3><a class="anchor" id="index_l"></a>- l -</h3><ul>
<li>Lang()
: <a class="el" href="classpsimpl_1_1_polyline_simplification.html#a34f6cdc9223e0e99c671e07a15086e3e">psimpl::PolylineSimplification&lt; DIM, InputIterator, OutputIterator &gt;</a>
</li>
<li>last
: <a class="el" href="structpsimpl_1_1_polyline_simplification_1_1_d_p_helper_1_1_sub_poly_alt.html#a4b6e337ce1250efd9599b7df99922fcf">psimpl::PolylineSimplification&lt; DIM, InputIterator, OutputIterator &gt;::DPHelper::SubPolyAlt</a>
, <a class="el" href="structpsimpl_1_1_polyline_simplification_1_1_d_p_helper_1_1_sub_poly.html#a6f1943bf7fcd5349e9d312a222804688">psimpl::PolylineSimplification&lt; DIM, InputIterator, OutputIterator &gt;::DPHelper::SubPoly</a>
</li>
</ul>
<h3><a class="anchor" id="index_m"></a>- m -</h3><ul>
<li>max
: <a class="el" href="structpsimpl_1_1math_1_1_statistics.html#ae9f672e092297b56fc28de70802b4fcb">psimpl::math::Statistics</a>
</li>
<li>mean
: <a class="el" href="structpsimpl_1_1math_1_1_statistics.html#a5ec6444e6cb5bbf0b5f2820a5ba45f40">psimpl::math::Statistics</a>
</li>
</ul>
<h3><a class="anchor" id="index_n"></a>- n -</h3><ul>
<li>NthPoint()
: <a class="el" href="classpsimpl_1_1_polyline_simplification.html#ace21c52fe251f03dc87d17e2627f83ed">psimpl::PolylineSimplification&lt; DIM, InputIterator, OutputIterator &gt;</a>
</li>
</ul>
<h3><a class="anchor" id="index_o"></a>- o -</h3><ul>
<li>operator&lt;()
: <a class="el" href="structpsimpl_1_1_polyline_simplification_1_1_d_p_helper_1_1_sub_poly_alt.html#a737d39204cbf1d26e4d7dccf267f2bc9">psimpl::PolylineSimplification&lt; DIM, InputIterator, OutputIterator &gt;::DPHelper::SubPolyAlt</a>
</li>
<li>operator=()
: <a class="el" href="classpsimpl_1_1util_1_1scoped__array.html#a9d2203f20dd342720a9a26fd329e6266">psimpl::util::scoped_array&lt; T &gt;</a>
</li>
<li>operator[]()
: <a class="el" href="classpsimpl_1_1util_1_1scoped__array.html#aa60ac752fe4ebe0a19b9b3e5fd02051c">psimpl::util::scoped_array&lt; T &gt;</a>
</li>
<li>Opheim()
: <a class="el" href="classpsimpl_1_1_polyline_simplification.html#a0b9bf4a27ef12a4eb103266f50c6eb7e">psimpl::PolylineSimplification&lt; DIM, InputIterator, OutputIterator &gt;</a>
</li>
</ul>
<h3><a class="anchor" id="index_p"></a>- p -</h3><ul>
<li>PerpendicularDistance()
: <a class="el" href="classpsimpl_1_1_polyline_simplification.html#a2b10f2aeaec1cb48eb053b2b9f632c9c">psimpl::PolylineSimplification&lt; DIM, InputIterator, OutputIterator &gt;</a>
</li>
<li>ptr_diff_type
: <a class="el" href="classpsimpl_1_1_polyline_simplification.html#a08f998ecc4af984c070603b489b3ce28">psimpl::PolylineSimplification&lt; DIM, InputIterator, OutputIterator &gt;</a>
</li>
</ul>
<h3><a class="anchor" id="index_r"></a>- r -</h3><ul>
<li>RadialDistance()
: <a class="el" href="classpsimpl_1_1_polyline_simplification.html#aa9f3491a3aa88e3b795705045053a649">psimpl::PolylineSimplification&lt; DIM, InputIterator, OutputIterator &gt;</a>
</li>
<li>ReumannWitkam()
: <a class="el" href="classpsimpl_1_1_polyline_simplification.html#ae938c132f029b4e8e828f5e6c7ee4b16">psimpl::PolylineSimplification&lt; DIM, InputIterator, OutputIterator &gt;</a>
</li>
</ul>
<h3><a class="anchor" id="index_s"></a>- s -</h3><ul>
<li>scoped_array()
: <a class="el" href="classpsimpl_1_1util_1_1scoped__array.html#a7ca257c64e882a9a5973146de5c8055f">psimpl::util::scoped_array&lt; T &gt;</a>
</li>
<li>Statistics()
: <a class="el" href="structpsimpl_1_1math_1_1_statistics.html#acc29e12d945e80f6c36702c3d03c5d45">psimpl::math::Statistics</a>
</li>
<li>std
: <a class="el" href="structpsimpl_1_1math_1_1_statistics.html#af2f6f43cb05903f393c454bf87221f36">psimpl::math::Statistics</a>
</li>
<li>SubPoly()
: <a class="el" href="structpsimpl_1_1_polyline_simplification_1_1_d_p_helper_1_1_sub_poly.html#a77018563df501cf3b4ef79d921086314">psimpl::PolylineSimplification&lt; DIM, InputIterator, OutputIterator &gt;::DPHelper::SubPoly</a>
</li>
<li>SubPolyAlt()
: <a class="el" href="structpsimpl_1_1_polyline_simplification_1_1_d_p_helper_1_1_sub_poly_alt.html#a173dc5811db508a92806559d2e7d1a14">psimpl::PolylineSimplification&lt; DIM, InputIterator, OutputIterator &gt;::DPHelper::SubPolyAlt</a>
</li>
<li>sum
: <a class="el" href="structpsimpl_1_1math_1_1_statistics.html#a7fe8b670f8f9b110303fb797dc900c85">psimpl::math::Statistics</a>
</li>
<li>swap()
: <a class="el" href="classpsimpl_1_1util_1_1scoped__array.html#ac97beeefa4563f9b9096df6fac32ce39">psimpl::util::scoped_array&lt; T &gt;</a>
</li>
</ul>
<h3><a class="anchor" id="index_v"></a>- v -</h3><ul>
<li>value_type
: <a class="el" href="classpsimpl_1_1_polyline_simplification.html#aacad79ca2e6dc004483838f460ab8df1">psimpl::PolylineSimplification&lt; DIM, InputIterator, OutputIterator &gt;</a>
</li>
</ul>
<h3><a class="anchor" id="index_0x7e"></a>- ~ -</h3><ul>
<li>~scoped_array()
: <a class="el" href="classpsimpl_1_1util_1_1scoped__array.html#abc7ca2793c23699c0ba855856af436e8">psimpl::util::scoped_array&lt; T &gt;</a>
</li>
</ul>
</div>
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="footer">Generated on Fri Jun 24 2011 14:56:29 for psimpl by&#160;
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.4 </li>
</ul>
</div>
</body>
</html>

View File

@ -0,0 +1,244 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<title>psimpl: Class Members - Functions</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript">
$(document).ready(initResizable);
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<!-- Generated by Doxygen 1.7.4 -->
<div id="top">
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td style="padding-left: 0.5em;">
<div id="projectname">psimpl&#160;<span id="projectnumber">7</span></div>
</td>
</tr>
</tbody>
</table>
</div>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="namespaces.html"><span>Namespaces</span></a></li>
<li class="current"><a href="annotated.html"><span>Classes</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
<li><a href="dirs.html"><span>Directories</span></a></li>
</ul>
</div>
<div id="navrow2" class="tabs2">
<ul class="tablist">
<li><a href="annotated.html"><span>Class&#160;List</span></a></li>
<li><a href="classes.html"><span>Class&#160;Index</span></a></li>
<li class="current"><a href="functions.html"><span>Class&#160;Members</span></a></li>
</ul>
</div>
<div id="navrow3" class="tabs2">
<ul class="tablist">
<li><a href="functions.html"><span>All</span></a></li>
<li class="current"><a href="functions_func.html"><span>Functions</span></a></li>
<li><a href="functions_vars.html"><span>Variables</span></a></li>
<li><a href="functions_type.html"><span>Typedefs</span></a></li>
</ul>
</div>
<div id="navrow4" class="tabs3">
<ul class="tablist">
<li><a href="#index_a"><span>a</span></a></li>
<li><a href="#index_b"><span>b</span></a></li>
<li><a href="#index_c"><span>c</span></a></li>
<li><a href="#index_d"><span>d</span></a></li>
<li><a href="#index_f"><span>f</span></a></li>
<li><a href="#index_g"><span>g</span></a></li>
<li><a href="#index_k"><span>k</span></a></li>
<li><a href="#index_l"><span>l</span></a></li>
<li><a href="#index_n"><span>n</span></a></li>
<li><a href="#index_o"><span>o</span></a></li>
<li><a href="#index_p"><span>p</span></a></li>
<li><a href="#index_r"><span>r</span></a></li>
<li><a href="#index_s"><span>s</span></a></li>
<li><a href="#index_0x7e"><span>~</span></a></li>
</ul>
</div>
</div>
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
initNavTree('functions.html','');
</script>
<div id="doc-content">
<div class="contents">
&#160;
<h3><a class="anchor" id="index_a"></a>- a -</h3><ul>
<li>Advance()
: <a class="el" href="classpsimpl_1_1_polyline_simplification.html#a825677c1dbe228d8904846ea2781ee19">psimpl::PolylineSimplification&lt; DIM, InputIterator, OutputIterator &gt;</a>
</li>
<li>AdvanceCopy()
: <a class="el" href="classpsimpl_1_1_polyline_simplification.html#a9c2510b3c8466f2080b924629e8ce2e6">psimpl::PolylineSimplification&lt; DIM, InputIterator, OutputIterator &gt;</a>
</li>
<li>Approximate()
: <a class="el" href="classpsimpl_1_1_polyline_simplification_1_1_d_p_helper.html#a19ef5bd5a4ff343e4defbe3765215c28">psimpl::PolylineSimplification&lt; DIM, InputIterator, OutputIterator &gt;::DPHelper</a>
</li>
<li>ApproximateN()
: <a class="el" href="classpsimpl_1_1_polyline_simplification_1_1_d_p_helper.html#afd49bef5d20db1ef171f9dcfc297e953">psimpl::PolylineSimplification&lt; DIM, InputIterator, OutputIterator &gt;::DPHelper</a>
</li>
</ul>
<h3><a class="anchor" id="index_b"></a>- b -</h3><ul>
<li>Backward()
: <a class="el" href="classpsimpl_1_1_polyline_simplification.html#a5af6938c7d84c84f20c4981a51228865">psimpl::PolylineSimplification&lt; DIM, InputIterator, OutputIterator &gt;</a>
</li>
</ul>
<h3><a class="anchor" id="index_c"></a>- c -</h3><ul>
<li>ComputePositionalErrors2()
: <a class="el" href="classpsimpl_1_1_polyline_simplification.html#a6b3ed5157f5bf51ef7be179896cd2903">psimpl::PolylineSimplification&lt; DIM, InputIterator, OutputIterator &gt;</a>
</li>
<li>ComputePositionalErrorStatistics()
: <a class="el" href="classpsimpl_1_1_polyline_simplification.html#a10af204d445105a8a4cbc81bd0563cb1">psimpl::PolylineSimplification&lt; DIM, InputIterator, OutputIterator &gt;</a>
</li>
<li>CopyKey()
: <a class="el" href="classpsimpl_1_1_polyline_simplification.html#a46fd020dc9f03e4b44bf95f256a06b1a">psimpl::PolylineSimplification&lt; DIM, InputIterator, OutputIterator &gt;</a>
</li>
<li>CopyKeyAdvance()
: <a class="el" href="classpsimpl_1_1_polyline_simplification.html#acd517bb1803b28ad69aa9012ac2577e5">psimpl::PolylineSimplification&lt; DIM, InputIterator, OutputIterator &gt;</a>
</li>
</ul>
<h3><a class="anchor" id="index_d"></a>- d -</h3><ul>
<li>DouglasPeucker()
: <a class="el" href="classpsimpl_1_1_polyline_simplification.html#a75954f25bc0d99e0a756611ffa2b5fda">psimpl::PolylineSimplification&lt; DIM, InputIterator, OutputIterator &gt;</a>
</li>
<li>DouglasPeuckerN()
: <a class="el" href="classpsimpl_1_1_polyline_simplification.html#ae309320bd688e6752c8d1e70ff58e4c1">psimpl::PolylineSimplification&lt; DIM, InputIterator, OutputIterator &gt;</a>
</li>
</ul>
<h3><a class="anchor" id="index_f"></a>- f -</h3><ul>
<li>FindKey()
: <a class="el" href="classpsimpl_1_1_polyline_simplification_1_1_d_p_helper.html#ab1e1bf2f9c562d9ea784466129ce0b19">psimpl::PolylineSimplification&lt; DIM, InputIterator, OutputIterator &gt;::DPHelper</a>
</li>
<li>Forward()
: <a class="el" href="classpsimpl_1_1_polyline_simplification.html#ab371de18bbb855cbd2912ceea5260519">psimpl::PolylineSimplification&lt; DIM, InputIterator, OutputIterator &gt;</a>
</li>
</ul>
<h3><a class="anchor" id="index_g"></a>- g -</h3><ul>
<li>get()
: <a class="el" href="classpsimpl_1_1util_1_1scoped__array.html#a7a4c3a0d4593dd10ddf6d695f2086e67">psimpl::util::scoped_array&lt; T &gt;</a>
</li>
</ul>
<h3><a class="anchor" id="index_k"></a>- k -</h3><ul>
<li>KeyInfo()
: <a class="el" href="structpsimpl_1_1_polyline_simplification_1_1_d_p_helper_1_1_key_info.html#ae9db44331df497b0e20e97f7b1a93491">psimpl::PolylineSimplification&lt; DIM, InputIterator, OutputIterator &gt;::DPHelper::KeyInfo</a>
</li>
</ul>
<h3><a class="anchor" id="index_l"></a>- l -</h3><ul>
<li>Lang()
: <a class="el" href="classpsimpl_1_1_polyline_simplification.html#a34f6cdc9223e0e99c671e07a15086e3e">psimpl::PolylineSimplification&lt; DIM, InputIterator, OutputIterator &gt;</a>
</li>
</ul>
<h3><a class="anchor" id="index_n"></a>- n -</h3><ul>
<li>NthPoint()
: <a class="el" href="classpsimpl_1_1_polyline_simplification.html#ace21c52fe251f03dc87d17e2627f83ed">psimpl::PolylineSimplification&lt; DIM, InputIterator, OutputIterator &gt;</a>
</li>
</ul>
<h3><a class="anchor" id="index_o"></a>- o -</h3><ul>
<li>operator&lt;()
: <a class="el" href="structpsimpl_1_1_polyline_simplification_1_1_d_p_helper_1_1_sub_poly_alt.html#a737d39204cbf1d26e4d7dccf267f2bc9">psimpl::PolylineSimplification&lt; DIM, InputIterator, OutputIterator &gt;::DPHelper::SubPolyAlt</a>
</li>
<li>operator=()
: <a class="el" href="classpsimpl_1_1util_1_1scoped__array.html#a9d2203f20dd342720a9a26fd329e6266">psimpl::util::scoped_array&lt; T &gt;</a>
</li>
<li>operator[]()
: <a class="el" href="classpsimpl_1_1util_1_1scoped__array.html#aa60ac752fe4ebe0a19b9b3e5fd02051c">psimpl::util::scoped_array&lt; T &gt;</a>
</li>
<li>Opheim()
: <a class="el" href="classpsimpl_1_1_polyline_simplification.html#a0b9bf4a27ef12a4eb103266f50c6eb7e">psimpl::PolylineSimplification&lt; DIM, InputIterator, OutputIterator &gt;</a>
</li>
</ul>
<h3><a class="anchor" id="index_p"></a>- p -</h3><ul>
<li>PerpendicularDistance()
: <a class="el" href="classpsimpl_1_1_polyline_simplification.html#a2b10f2aeaec1cb48eb053b2b9f632c9c">psimpl::PolylineSimplification&lt; DIM, InputIterator, OutputIterator &gt;</a>
</li>
</ul>
<h3><a class="anchor" id="index_r"></a>- r -</h3><ul>
<li>RadialDistance()
: <a class="el" href="classpsimpl_1_1_polyline_simplification.html#aa9f3491a3aa88e3b795705045053a649">psimpl::PolylineSimplification&lt; DIM, InputIterator, OutputIterator &gt;</a>
</li>
<li>ReumannWitkam()
: <a class="el" href="classpsimpl_1_1_polyline_simplification.html#ae938c132f029b4e8e828f5e6c7ee4b16">psimpl::PolylineSimplification&lt; DIM, InputIterator, OutputIterator &gt;</a>
</li>
</ul>
<h3><a class="anchor" id="index_s"></a>- s -</h3><ul>
<li>scoped_array()
: <a class="el" href="classpsimpl_1_1util_1_1scoped__array.html#a7ca257c64e882a9a5973146de5c8055f">psimpl::util::scoped_array&lt; T &gt;</a>
</li>
<li>Statistics()
: <a class="el" href="structpsimpl_1_1math_1_1_statistics.html#acc29e12d945e80f6c36702c3d03c5d45">psimpl::math::Statistics</a>
</li>
<li>SubPoly()
: <a class="el" href="structpsimpl_1_1_polyline_simplification_1_1_d_p_helper_1_1_sub_poly.html#a77018563df501cf3b4ef79d921086314">psimpl::PolylineSimplification&lt; DIM, InputIterator, OutputIterator &gt;::DPHelper::SubPoly</a>
</li>
<li>SubPolyAlt()
: <a class="el" href="structpsimpl_1_1_polyline_simplification_1_1_d_p_helper_1_1_sub_poly_alt.html#a173dc5811db508a92806559d2e7d1a14">psimpl::PolylineSimplification&lt; DIM, InputIterator, OutputIterator &gt;::DPHelper::SubPolyAlt</a>
</li>
<li>swap()
: <a class="el" href="classpsimpl_1_1util_1_1scoped__array.html#ac97beeefa4563f9b9096df6fac32ce39">psimpl::util::scoped_array&lt; T &gt;</a>
</li>
</ul>
<h3><a class="anchor" id="index_0x7e"></a>- ~ -</h3><ul>
<li>~scoped_array()
: <a class="el" href="classpsimpl_1_1util_1_1scoped__array.html#abc7ca2793c23699c0ba855856af436e8">psimpl::util::scoped_array&lt; T &gt;</a>
</li>
</ul>
</div>
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="footer">Generated on Fri Jun 24 2011 14:56:29 for psimpl by&#160;
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.4 </li>
</ul>
</div>
</body>
</html>

View File

@ -0,0 +1,91 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<title>psimpl: Class Members - Typedefs</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript">
$(document).ready(initResizable);
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<!-- Generated by Doxygen 1.7.4 -->
<div id="top">
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td style="padding-left: 0.5em;">
<div id="projectname">psimpl&#160;<span id="projectnumber">7</span></div>
</td>
</tr>
</tbody>
</table>
</div>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="namespaces.html"><span>Namespaces</span></a></li>
<li class="current"><a href="annotated.html"><span>Classes</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
<li><a href="dirs.html"><span>Directories</span></a></li>
</ul>
</div>
<div id="navrow2" class="tabs2">
<ul class="tablist">
<li><a href="annotated.html"><span>Class&#160;List</span></a></li>
<li><a href="classes.html"><span>Class&#160;Index</span></a></li>
<li class="current"><a href="functions.html"><span>Class&#160;Members</span></a></li>
</ul>
</div>
<div id="navrow3" class="tabs2">
<ul class="tablist">
<li><a href="functions.html"><span>All</span></a></li>
<li><a href="functions_func.html"><span>Functions</span></a></li>
<li><a href="functions_vars.html"><span>Variables</span></a></li>
<li class="current"><a href="functions_type.html"><span>Typedefs</span></a></li>
</ul>
</div>
</div>
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
initNavTree('functions.html','');
</script>
<div id="doc-content">
<div class="contents">
&#160;<ul>
<li>diff_type
: <a class="el" href="classpsimpl_1_1_polyline_simplification.html#a5a3b5d1a275e366f2c0bab770140507c">psimpl::PolylineSimplification&lt; DIM, InputIterator, OutputIterator &gt;</a>
</li>
<li>ptr_diff_type
: <a class="el" href="classpsimpl_1_1_polyline_simplification.html#a08f998ecc4af984c070603b489b3ce28">psimpl::PolylineSimplification&lt; DIM, InputIterator, OutputIterator &gt;</a>
</li>
<li>value_type
: <a class="el" href="classpsimpl_1_1_polyline_simplification.html#aacad79ca2e6dc004483838f460ab8df1">psimpl::PolylineSimplification&lt; DIM, InputIterator, OutputIterator &gt;</a>
</li>
</ul>
</div>
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="footer">Generated on Fri Jun 24 2011 14:56:29 for psimpl by&#160;
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.4 </li>
</ul>
</div>
</body>
</html>

View File

@ -0,0 +1,114 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<title>psimpl: Class Members - Variables</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript">
$(document).ready(initResizable);
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<!-- Generated by Doxygen 1.7.4 -->
<div id="top">
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td style="padding-left: 0.5em;">
<div id="projectname">psimpl&#160;<span id="projectnumber">7</span></div>
</td>
</tr>
</tbody>
</table>
</div>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="namespaces.html"><span>Namespaces</span></a></li>
<li class="current"><a href="annotated.html"><span>Classes</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
<li><a href="dirs.html"><span>Directories</span></a></li>
</ul>
</div>
<div id="navrow2" class="tabs2">
<ul class="tablist">
<li><a href="annotated.html"><span>Class&#160;List</span></a></li>
<li><a href="classes.html"><span>Class&#160;Index</span></a></li>
<li class="current"><a href="functions.html"><span>Class&#160;Members</span></a></li>
</ul>
</div>
<div id="navrow3" class="tabs2">
<ul class="tablist">
<li><a href="functions.html"><span>All</span></a></li>
<li><a href="functions_func.html"><span>Functions</span></a></li>
<li class="current"><a href="functions_vars.html"><span>Variables</span></a></li>
<li><a href="functions_type.html"><span>Typedefs</span></a></li>
</ul>
</div>
</div>
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
initNavTree('functions.html','');
</script>
<div id="doc-content">
<div class="contents">
&#160;<ul>
<li>array
: <a class="el" href="classpsimpl_1_1util_1_1scoped__array.html#a804949986114cac19e44e959ed55202a">psimpl::util::scoped_array&lt; T &gt;</a>
</li>
<li>dist2
: <a class="el" href="structpsimpl_1_1_polyline_simplification_1_1_d_p_helper_1_1_key_info.html#a18fc8b4698754902fa697d9ea92629f4">psimpl::PolylineSimplification&lt; DIM, InputIterator, OutputIterator &gt;::DPHelper::KeyInfo</a>
</li>
<li>first
: <a class="el" href="structpsimpl_1_1_polyline_simplification_1_1_d_p_helper_1_1_sub_poly.html#a6e072a2f6fe795c72870b498ec96e564">psimpl::PolylineSimplification&lt; DIM, InputIterator, OutputIterator &gt;::DPHelper::SubPoly</a>
, <a class="el" href="structpsimpl_1_1_polyline_simplification_1_1_d_p_helper_1_1_sub_poly_alt.html#a92345917355c59fbc19704c01a4bfa2d">psimpl::PolylineSimplification&lt; DIM, InputIterator, OutputIterator &gt;::DPHelper::SubPolyAlt</a>
</li>
<li>index
: <a class="el" href="structpsimpl_1_1_polyline_simplification_1_1_d_p_helper_1_1_key_info.html#aa4ea63f0cb9abd4c7001d3f835a47ae4">psimpl::PolylineSimplification&lt; DIM, InputIterator, OutputIterator &gt;::DPHelper::KeyInfo</a>
</li>
<li>keyInfo
: <a class="el" href="structpsimpl_1_1_polyline_simplification_1_1_d_p_helper_1_1_sub_poly_alt.html#afa58fb132744d1a2ba4c7ab4ddbc00fb">psimpl::PolylineSimplification&lt; DIM, InputIterator, OutputIterator &gt;::DPHelper::SubPolyAlt</a>
</li>
<li>last
: <a class="el" href="structpsimpl_1_1_polyline_simplification_1_1_d_p_helper_1_1_sub_poly.html#a6f1943bf7fcd5349e9d312a222804688">psimpl::PolylineSimplification&lt; DIM, InputIterator, OutputIterator &gt;::DPHelper::SubPoly</a>
, <a class="el" href="structpsimpl_1_1_polyline_simplification_1_1_d_p_helper_1_1_sub_poly_alt.html#a4b6e337ce1250efd9599b7df99922fcf">psimpl::PolylineSimplification&lt; DIM, InputIterator, OutputIterator &gt;::DPHelper::SubPolyAlt</a>
</li>
<li>max
: <a class="el" href="structpsimpl_1_1math_1_1_statistics.html#ae9f672e092297b56fc28de70802b4fcb">psimpl::math::Statistics</a>
</li>
<li>mean
: <a class="el" href="structpsimpl_1_1math_1_1_statistics.html#a5ec6444e6cb5bbf0b5f2820a5ba45f40">psimpl::math::Statistics</a>
</li>
<li>std
: <a class="el" href="structpsimpl_1_1math_1_1_statistics.html#af2f6f43cb05903f393c454bf87221f36">psimpl::math::Statistics</a>
</li>
<li>sum
: <a class="el" href="structpsimpl_1_1math_1_1_statistics.html#a7fe8b670f8f9b110303fb797dc900c85">psimpl::math::Statistics</a>
</li>
</ul>
</div>
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="footer">Generated on Fri Jun 24 2011 14:56:29 for psimpl by&#160;
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.4 </li>
</ul>
</div>
</body>
</html>

View File

@ -0,0 +1,117 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<title>psimpl: psimpl - generic n-dimensional polyline simplification</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript">
$(document).ready(initResizable);
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<!-- Generated by Doxygen 1.7.4 -->
<div id="top">
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td style="padding-left: 0.5em;">
<div id="projectname">psimpl&#160;<span id="projectnumber">7</span></div>
</td>
</tr>
</tbody>
</table>
</div>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li class="current"><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="namespaces.html"><span>Namespaces</span></a></li>
<li><a href="annotated.html"><span>Classes</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
<li><a href="dirs.html"><span>Directories</span></a></li>
</ul>
</div>
</div>
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
initNavTree('index.html','');
</script>
<div id="doc-content">
<div class="header">
<div class="headertitle">
<div class="title">psimpl - generic n-dimensional polyline simplification </div> </div>
</div>
<div class="contents">
<div class="textblock"><pre>
Author - Elmar de Koning
Support - <a href="mailto:edekoning@gmail.com">edekoning@gmail.com</a>
Website - <a href="http://psimpl.sf.net">http://psimpl.sf.net</a>
Article - <a href="http://www.codeproject.com/KB/recipes/PolylineSimplification.aspx">http://www.codeproject.com/KB/recipes/PolylineSimplification.aspx</a>
License - MPL 1.1
</pre><p><br/>
</p>
<h2><a class="anchor" id="sec_psimpl"></a>
psimpl</h2>
<pre>
'psimpl' is a c++ polyline simplification library that is generic, easy to use, and supports
the following algorithms:</pre><pre> Simplification
+ Nth point - A naive algorithm that keeps only each nth point
+ Distance between points - Removes successive points that are clustered together
+ Perpendicular distance - Removes points based on their distance to the line segment defined
by their left and right neighbors
+ Reumann-Witkam - Shifts a strip along the polyline and removes points that fall outside
+ Opheim - A constrained version of Reumann-Witkam
+ Lang - Similar to the Perpendicular distance routine, but instead of looking only at direct
neighbors, an entire search region is processed
+ Douglas-Peucker - A classic simplification algorithm that provides an excellent approximation
of the original line
+ A variation on the Douglas-Peucker algorithm - Slower, but yields better results at lower resolutions</pre><pre> Errors
+ positional error - Distance of each polyline point to its simplification</pre><pre> All the algorithms have been implemented in a single standalone C++ header using an STL-style
interface that operates on input and output iterators. Polylines can be of any dimension, and
defined using floating point or signed integer data types.
</pre><p><br/>
</p>
<h2><a class="anchor" id="sec_changelog"></a>
changelog</h2>
<pre>
28-09-2010 - Initial version
23-10-2010 - Changed license from CPOL to MPL
26-10-2010 - Clarified input (type) requirements, and changed the behavior of the algorithms
under invalid input
01-12-2010 - Added the nth point, perpendicular distance and Reumann-Witkam routines; moved all
functions related to distance calculations to the math namespace
10-12-2010 - Fixed a bug in the perpendicular distance routine
27-02-2011 - Added Opheim simplification, and functions for computing positional errors due to
simplification; renamed simplify_douglas_peucker_alt to simplify_douglas_peucker_n
18-06-2011 - Added Lang simplification; fixed divide by zero bug when using integers; fixed a
bug where incorrect output iterators were returned under invalid input; fixed a bug
in douglas_peucker_n where an incorrect number of points could be returned; fixed a
bug in compute_positional_errors2 that required the output and input iterator types
to be the same; fixed a bug in compute_positional_error_statistics where invalid
statistics could be returned under questionable input; documented input iterator
requirements for each algorithm; miscellaneous refactoring of most algorithms.
</pre> </div></div>
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="footer">Generated on Fri Jun 24 2011 14:56:29 for psimpl by&#160;
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.4 </li>
</ul>
</div>
</body>
</html>

54
lib/psimpl_v7_src/doc/jquery.js vendored Normal file

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,139 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<title>psimpl: Namespace Members</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript">
$(document).ready(initResizable);
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<!-- Generated by Doxygen 1.7.4 -->
<div id="top">
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td style="padding-left: 0.5em;">
<div id="projectname">psimpl&#160;<span id="projectnumber">7</span></div>
</td>
</tr>
</tbody>
</table>
</div>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li class="current"><a href="namespaces.html"><span>Namespaces</span></a></li>
<li><a href="annotated.html"><span>Classes</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
<li><a href="dirs.html"><span>Directories</span></a></li>
</ul>
</div>
<div id="navrow2" class="tabs2">
<ul class="tablist">
<li><a href="namespaces.html"><span>Namespace&#160;List</span></a></li>
<li class="current"><a href="namespacemembers.html"><span>Namespace&#160;Members</span></a></li>
</ul>
</div>
<div id="navrow3" class="tabs2">
<ul class="tablist">
<li class="current"><a href="namespacemembers.html"><span>All</span></a></li>
<li><a href="namespacemembers_func.html"><span>Functions</span></a></li>
</ul>
</div>
</div>
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
initNavTree('namespacemembers.html','');
</script>
<div id="doc-content">
<div class="contents">
<div class="textblock">Here is a list of all namespace members with links to the namespace documentation for each member:</div><ul>
<li>compute_positional_error_statistics()
: <a class="el" href="namespacepsimpl.html#a16418e391940b20609bc48289e7222a4">psimpl</a>
</li>
<li>compute_positional_errors2()
: <a class="el" href="namespacepsimpl.html#a187709033361ba469a60c3a848328118">psimpl</a>
</li>
<li>compute_statistics()
: <a class="el" href="namespacepsimpl_1_1math.html#ab162cc6f5efcf619c7327b45c793c969">psimpl::math</a>
</li>
<li>dot()
: <a class="el" href="namespacepsimpl_1_1math.html#a26bb15089fdfcfc4560b5a318317bbc4">psimpl::math</a>
</li>
<li>equal()
: <a class="el" href="namespacepsimpl_1_1math.html#a6b293d2459ba597c933d6fdb68e91b2c">psimpl::math</a>
</li>
<li>interpolate()
: <a class="el" href="namespacepsimpl_1_1math.html#a87a753961c7742b6c48b4f66a0fea697">psimpl::math</a>
</li>
<li>line_distance2()
: <a class="el" href="namespacepsimpl_1_1math.html#ace5d8a6b9ca11eeadd9d13e451651996">psimpl::math</a>
</li>
<li>make_vector()
: <a class="el" href="namespacepsimpl_1_1math.html#a10bb3d3d87fa1038d43eee6e5f3fcdda">psimpl::math</a>
</li>
<li>point_distance2()
: <a class="el" href="namespacepsimpl_1_1math.html#ab995b6d68caf4d43172a0de6ee363eb0">psimpl::math</a>
</li>
<li>ray_distance2()
: <a class="el" href="namespacepsimpl_1_1math.html#a4b9426204b9964b859b059cc7fbce61a">psimpl::math</a>
</li>
<li>segment_distance2()
: <a class="el" href="namespacepsimpl_1_1math.html#a4f3ff418f290d1125622c2388ab976d0">psimpl::math</a>
</li>
<li>simplify_douglas_peucker()
: <a class="el" href="namespacepsimpl.html#ab71cedd762eee4006a85f4321fca6cad">psimpl</a>
</li>
<li>simplify_douglas_peucker_n()
: <a class="el" href="namespacepsimpl.html#aeff1b138293ca9cfb855d7e1f69dacf5">psimpl</a>
</li>
<li>simplify_lang()
: <a class="el" href="namespacepsimpl.html#a241debcb1ad56aa1046f4a4996922411">psimpl</a>
</li>
<li>simplify_nth_point()
: <a class="el" href="namespacepsimpl.html#a1a805a9e3eef7ca46bffae71a8b49dc0">psimpl</a>
</li>
<li>simplify_opheim()
: <a class="el" href="namespacepsimpl.html#a433d47ec86872f64bdc2bc792e6444ca">psimpl</a>
</li>
<li>simplify_perpendicular_distance()
: <a class="el" href="namespacepsimpl.html#a71a8cbb4f1ebd41a5897c8174bdf8617">psimpl</a>
</li>
<li>simplify_radial_distance()
: <a class="el" href="namespacepsimpl.html#a12f4b63e11188c5293fe3effabbfba31">psimpl</a>
</li>
<li>simplify_reumann_witkam()
: <a class="el" href="namespacepsimpl.html#a0ae1a1e3ada43f9791ac6ac36df5fdf7">psimpl</a>
</li>
<li>swap()
: <a class="el" href="namespacepsimpl_1_1util.html#ae99d4ca12dc7025d6a31185463d7606d">psimpl::util</a>
</li>
</ul>
</div>
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="footer">Generated on Fri Jun 24 2011 14:56:29 for psimpl by&#160;
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.4 </li>
</ul>
</div>
</body>
</html>

View File

@ -0,0 +1,139 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<title>psimpl: Namespace Members</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript">
$(document).ready(initResizable);
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<!-- Generated by Doxygen 1.7.4 -->
<div id="top">
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td style="padding-left: 0.5em;">
<div id="projectname">psimpl&#160;<span id="projectnumber">7</span></div>
</td>
</tr>
</tbody>
</table>
</div>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li class="current"><a href="namespaces.html"><span>Namespaces</span></a></li>
<li><a href="annotated.html"><span>Classes</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
<li><a href="dirs.html"><span>Directories</span></a></li>
</ul>
</div>
<div id="navrow2" class="tabs2">
<ul class="tablist">
<li><a href="namespaces.html"><span>Namespace&#160;List</span></a></li>
<li class="current"><a href="namespacemembers.html"><span>Namespace&#160;Members</span></a></li>
</ul>
</div>
<div id="navrow3" class="tabs2">
<ul class="tablist">
<li><a href="namespacemembers.html"><span>All</span></a></li>
<li class="current"><a href="namespacemembers_func.html"><span>Functions</span></a></li>
</ul>
</div>
</div>
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
initNavTree('namespacemembers.html','');
</script>
<div id="doc-content">
<div class="contents">
&#160;<ul>
<li>compute_positional_error_statistics()
: <a class="el" href="namespacepsimpl.html#a16418e391940b20609bc48289e7222a4">psimpl</a>
</li>
<li>compute_positional_errors2()
: <a class="el" href="namespacepsimpl.html#a187709033361ba469a60c3a848328118">psimpl</a>
</li>
<li>compute_statistics()
: <a class="el" href="namespacepsimpl_1_1math.html#ab162cc6f5efcf619c7327b45c793c969">psimpl::math</a>
</li>
<li>dot()
: <a class="el" href="namespacepsimpl_1_1math.html#a26bb15089fdfcfc4560b5a318317bbc4">psimpl::math</a>
</li>
<li>equal()
: <a class="el" href="namespacepsimpl_1_1math.html#a6b293d2459ba597c933d6fdb68e91b2c">psimpl::math</a>
</li>
<li>interpolate()
: <a class="el" href="namespacepsimpl_1_1math.html#a87a753961c7742b6c48b4f66a0fea697">psimpl::math</a>
</li>
<li>line_distance2()
: <a class="el" href="namespacepsimpl_1_1math.html#ace5d8a6b9ca11eeadd9d13e451651996">psimpl::math</a>
</li>
<li>make_vector()
: <a class="el" href="namespacepsimpl_1_1math.html#a10bb3d3d87fa1038d43eee6e5f3fcdda">psimpl::math</a>
</li>
<li>point_distance2()
: <a class="el" href="namespacepsimpl_1_1math.html#ab995b6d68caf4d43172a0de6ee363eb0">psimpl::math</a>
</li>
<li>ray_distance2()
: <a class="el" href="namespacepsimpl_1_1math.html#a4b9426204b9964b859b059cc7fbce61a">psimpl::math</a>
</li>
<li>segment_distance2()
: <a class="el" href="namespacepsimpl_1_1math.html#a4f3ff418f290d1125622c2388ab976d0">psimpl::math</a>
</li>
<li>simplify_douglas_peucker()
: <a class="el" href="namespacepsimpl.html#ab71cedd762eee4006a85f4321fca6cad">psimpl</a>
</li>
<li>simplify_douglas_peucker_n()
: <a class="el" href="namespacepsimpl.html#aeff1b138293ca9cfb855d7e1f69dacf5">psimpl</a>
</li>
<li>simplify_lang()
: <a class="el" href="namespacepsimpl.html#a241debcb1ad56aa1046f4a4996922411">psimpl</a>
</li>
<li>simplify_nth_point()
: <a class="el" href="namespacepsimpl.html#a1a805a9e3eef7ca46bffae71a8b49dc0">psimpl</a>
</li>
<li>simplify_opheim()
: <a class="el" href="namespacepsimpl.html#a433d47ec86872f64bdc2bc792e6444ca">psimpl</a>
</li>
<li>simplify_perpendicular_distance()
: <a class="el" href="namespacepsimpl.html#a71a8cbb4f1ebd41a5897c8174bdf8617">psimpl</a>
</li>
<li>simplify_radial_distance()
: <a class="el" href="namespacepsimpl.html#a12f4b63e11188c5293fe3effabbfba31">psimpl</a>
</li>
<li>simplify_reumann_witkam()
: <a class="el" href="namespacepsimpl.html#a0ae1a1e3ada43f9791ac6ac36df5fdf7">psimpl</a>
</li>
<li>swap()
: <a class="el" href="namespacepsimpl_1_1util.html#ae99d4ca12dc7025d6a31185463d7606d">psimpl::util</a>
</li>
</ul>
</div>
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="footer">Generated on Fri Jun 24 2011 14:56:29 for psimpl by&#160;
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.4 </li>
</ul>
</div>
</body>
</html>

View File

@ -0,0 +1,775 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<title>psimpl: psimpl Namespace Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript">
$(document).ready(initResizable);
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<!-- Generated by Doxygen 1.7.4 -->
<div id="top">
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td style="padding-left: 0.5em;">
<div id="projectname">psimpl&#160;<span id="projectnumber">7</span></div>
</td>
</tr>
</tbody>
</table>
</div>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li class="current"><a href="namespaces.html"><span>Namespaces</span></a></li>
<li><a href="annotated.html"><span>Classes</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
<li><a href="dirs.html"><span>Directories</span></a></li>
</ul>
</div>
<div id="navrow2" class="tabs2">
<ul class="tablist">
<li><a href="namespaces.html"><span>Namespace&#160;List</span></a></li>
<li><a href="namespacemembers.html"><span>Namespace&#160;Members</span></a></li>
</ul>
</div>
</div>
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
initNavTree('namespacepsimpl.html','');
</script>
<div id="doc-content">
<div class="header">
<div class="summary">
<a href="#namespaces">Namespaces</a> &#124;
<a href="#nested-classes">Classes</a> &#124;
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
<div class="title">psimpl Namespace Reference</div> </div>
</div>
<div class="contents">
<p>Root namespace of the polyline simplification library.
<a href="#details">More...</a></p>
<table class="memberdecls">
<tr><td colspan="2"><h2><a name="namespaces"></a>
Namespaces</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">namespace &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacepsimpl_1_1math.html">math</a></td></tr>
<p><tr><td class="mdescLeft">&#160;</td><td class="mdescRight"><p>Contains functions for calculating statistics and distances between various geometric entities. </p>
<br/></td></tr>
</p>
<tr><td class="memItemLeft" align="right" valign="top">namespace &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacepsimpl_1_1util.html">util</a></td></tr>
<p><tr><td class="mdescLeft">&#160;</td><td class="mdescRight"><p>Contains utility functions and classes. </p>
<br/></td></tr>
</p>
<tr><td colspan="2"><h2><a name="nested-classes"></a>
Classes</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpsimpl_1_1_polyline_simplification.html">PolylineSimplification</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Provides various simplification algorithms for n-dimensional simple polylines. <a href="classpsimpl_1_1_polyline_simplification.html#details">More...</a><br/></td></tr>
<tr><td colspan="2"><h2><a name="func-members"></a>
Functions</h2></td></tr>
<tr><td class="memTemplParams" colspan="2">template&lt;unsigned DIM, class ForwardIterator , class OutputIterator &gt; </td></tr>
<tr><td class="memTemplItemLeft" align="right" valign="top">OutputIterator&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacepsimpl.html#a1a805a9e3eef7ca46bffae71a8b49dc0">simplify_nth_point</a> (ForwardIterator first, ForwardIterator last, unsigned n, OutputIterator result)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Performs the nth point routine (NP). <a href="#a1a805a9e3eef7ca46bffae71a8b49dc0"></a><br/></td></tr>
<tr><td class="memTemplParams" colspan="2">template&lt;unsigned DIM, class ForwardIterator , class OutputIterator &gt; </td></tr>
<tr><td class="memTemplItemLeft" align="right" valign="top">OutputIterator&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacepsimpl.html#a12f4b63e11188c5293fe3effabbfba31">simplify_radial_distance</a> (ForwardIterator first, ForwardIterator last, typename std::iterator_traits&lt; ForwardIterator &gt;::value_type tol, OutputIterator result)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Performs the (radial) distance between points routine (RD). <a href="#a12f4b63e11188c5293fe3effabbfba31"></a><br/></td></tr>
<tr><td class="memTemplParams" colspan="2">template&lt;unsigned DIM, class ForwardIterator , class OutputIterator &gt; </td></tr>
<tr><td class="memTemplItemLeft" align="right" valign="top">OutputIterator&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacepsimpl.html#aa8c86b0f1529d529fc2ff84d09b00101">simplify_perpendicular_distance</a> (ForwardIterator first, ForwardIterator last, typename std::iterator_traits&lt; ForwardIterator &gt;::value_type tol, unsigned repeat, OutputIterator result)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Repeatedly performs the perpendicular distance routine (PD). <a href="#aa8c86b0f1529d529fc2ff84d09b00101"></a><br/></td></tr>
<tr><td class="memTemplParams" colspan="2">template&lt;unsigned DIM, class ForwardIterator , class OutputIterator &gt; </td></tr>
<tr><td class="memTemplItemLeft" align="right" valign="top">OutputIterator&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacepsimpl.html#a71a8cbb4f1ebd41a5897c8174bdf8617">simplify_perpendicular_distance</a> (ForwardIterator first, ForwardIterator last, typename std::iterator_traits&lt; ForwardIterator &gt;::value_type tol, OutputIterator result)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Performs the perpendicular distance routine (PD). <a href="#a71a8cbb4f1ebd41a5897c8174bdf8617"></a><br/></td></tr>
<tr><td class="memTemplParams" colspan="2">template&lt;unsigned DIM, class ForwardIterator , class OutputIterator &gt; </td></tr>
<tr><td class="memTemplItemLeft" align="right" valign="top">OutputIterator&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacepsimpl.html#a0ae1a1e3ada43f9791ac6ac36df5fdf7">simplify_reumann_witkam</a> (ForwardIterator first, ForwardIterator last, typename std::iterator_traits&lt; ForwardIterator &gt;::value_type tol, OutputIterator result)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Performs Reumann-Witkam polyline simplification (RW). <a href="#a0ae1a1e3ada43f9791ac6ac36df5fdf7"></a><br/></td></tr>
<tr><td class="memTemplParams" colspan="2">template&lt;unsigned DIM, class ForwardIterator , class OutputIterator &gt; </td></tr>
<tr><td class="memTemplItemLeft" align="right" valign="top">OutputIterator&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacepsimpl.html#a433d47ec86872f64bdc2bc792e6444ca">simplify_opheim</a> (ForwardIterator first, ForwardIterator last, typename std::iterator_traits&lt; ForwardIterator &gt;::value_type min_tol, typename std::iterator_traits&lt; ForwardIterator &gt;::value_type max_tol, OutputIterator result)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Performs Opheim polyline simplification (OP). <a href="#a433d47ec86872f64bdc2bc792e6444ca"></a><br/></td></tr>
<tr><td class="memTemplParams" colspan="2">template&lt;unsigned DIM, class BidirectionalIterator , class OutputIterator &gt; </td></tr>
<tr><td class="memTemplItemLeft" align="right" valign="top">OutputIterator&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacepsimpl.html#a241debcb1ad56aa1046f4a4996922411">simplify_lang</a> (BidirectionalIterator first, BidirectionalIterator last, typename std::iterator_traits&lt; BidirectionalIterator &gt;::value_type tol, unsigned look_ahead, OutputIterator result)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Performs Lang polyline simplification (LA). <a href="#a241debcb1ad56aa1046f4a4996922411"></a><br/></td></tr>
<tr><td class="memTemplParams" colspan="2">template&lt;unsigned DIM, class ForwardIterator , class OutputIterator &gt; </td></tr>
<tr><td class="memTemplItemLeft" align="right" valign="top">OutputIterator&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacepsimpl.html#ab71cedd762eee4006a85f4321fca6cad">simplify_douglas_peucker</a> (ForwardIterator first, ForwardIterator last, typename std::iterator_traits&lt; ForwardIterator &gt;::value_type tol, OutputIterator result)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Performs Douglas-Peucker polyline simplification (DP). <a href="#ab71cedd762eee4006a85f4321fca6cad"></a><br/></td></tr>
<tr><td class="memTemplParams" colspan="2">template&lt;unsigned DIM, class ForwardIterator , class OutputIterator &gt; </td></tr>
<tr><td class="memTemplItemLeft" align="right" valign="top">OutputIterator&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacepsimpl.html#aeff1b138293ca9cfb855d7e1f69dacf5">simplify_douglas_peucker_n</a> (ForwardIterator first, ForwardIterator last, unsigned count, OutputIterator result)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Performs a variant of Douglas-Peucker polyline simplification (DPn). <a href="#aeff1b138293ca9cfb855d7e1f69dacf5"></a><br/></td></tr>
<tr><td class="memTemplParams" colspan="2">template&lt;unsigned DIM, class ForwardIterator , class OutputIterator &gt; </td></tr>
<tr><td class="memTemplItemLeft" align="right" valign="top">OutputIterator&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacepsimpl.html#a187709033361ba469a60c3a848328118">compute_positional_errors2</a> (ForwardIterator original_first, ForwardIterator original_last, ForwardIterator simplified_first, ForwardIterator simplified_last, OutputIterator result, bool *valid=0)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Computes the squared positional error between a polyline and its simplification. <a href="#a187709033361ba469a60c3a848328118"></a><br/></td></tr>
<tr><td class="memTemplParams" colspan="2">template&lt;unsigned DIM, class ForwardIterator &gt; </td></tr>
<tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="structpsimpl_1_1math_1_1_statistics.html">math::Statistics</a>&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacepsimpl.html#a16418e391940b20609bc48289e7222a4">compute_positional_error_statistics</a> (ForwardIterator original_first, ForwardIterator original_last, ForwardIterator simplified_first, ForwardIterator simplified_last, bool *valid=0)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Computes statistics for the positional errors between a polyline and its simplification. <a href="#a16418e391940b20609bc48289e7222a4"></a><br/></td></tr>
</table>
<hr/><a name="details" id="details"></a><h2>Detailed Description</h2>
<div class="textblock"><p>Root namespace of the polyline simplification library. </p>
</div><hr/><h2>Function Documentation</h2>
<a class="anchor" id="a16418e391940b20609bc48289e7222a4"></a><!-- doxytag: member="psimpl::compute_positional_error_statistics" ref="a16418e391940b20609bc48289e7222a4" args="(ForwardIterator original_first, ForwardIterator original_last, ForwardIterator simplified_first, ForwardIterator simplified_last, bool *valid=0)" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;unsigned DIM, class ForwardIterator &gt; </div>
<table class="memname">
<tr>
<td class="memname"><a class="el" href="structpsimpl_1_1math_1_1_statistics.html">math::Statistics</a> psimpl::compute_positional_error_statistics </td>
<td>(</td>
<td class="paramtype">ForwardIterator&#160;</td>
<td class="paramname"><em>original_first</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">ForwardIterator&#160;</td>
<td class="paramname"><em>original_last</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">ForwardIterator&#160;</td>
<td class="paramname"><em>simplified_first</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">ForwardIterator&#160;</td>
<td class="paramname"><em>simplified_last</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">bool *&#160;</td>
<td class="paramname"><em>valid</em> = <code>0</code>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Computes statistics for the positional errors between a polyline and its simplification. </p>
<p>This is a convenience function that provides template type deduction for <a class="el" href="classpsimpl_1_1_polyline_simplification.html#a10af204d445105a8a4cbc81bd0563cb1" title="Computes statistics for the positional errors between a polyline and its simplification.">PolylineSimplification::ComputePositionalErrorStatistics</a>.</p>
<dl><dt><b>Parameters:</b></dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">original_first</td><td>the first coordinate of the first polyline point </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">original_last</td><td>one beyond the last coordinate of the last polyline point </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">simplified_first</td><td>the first coordinate of the first simplified polyline point </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">simplified_last</td><td>one beyond the last coordinate of the last simplified polyline point </td></tr>
<tr><td class="paramdir">[out]</td><td class="paramname">valid</td><td>[optional] indicates if the computed statistics are valid </td></tr>
</table>
</dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>the computed statistics </dd></dl>
</div>
</div>
<a class="anchor" id="a187709033361ba469a60c3a848328118"></a><!-- doxytag: member="psimpl::compute_positional_errors2" ref="a187709033361ba469a60c3a848328118" args="(ForwardIterator original_first, ForwardIterator original_last, ForwardIterator simplified_first, ForwardIterator simplified_last, OutputIterator result, bool *valid=0)" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;unsigned DIM, class ForwardIterator , class OutputIterator &gt; </div>
<table class="memname">
<tr>
<td class="memname">OutputIterator psimpl::compute_positional_errors2 </td>
<td>(</td>
<td class="paramtype">ForwardIterator&#160;</td>
<td class="paramname"><em>original_first</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">ForwardIterator&#160;</td>
<td class="paramname"><em>original_last</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">ForwardIterator&#160;</td>
<td class="paramname"><em>simplified_first</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">ForwardIterator&#160;</td>
<td class="paramname"><em>simplified_last</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">OutputIterator&#160;</td>
<td class="paramname"><em>result</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">bool *&#160;</td>
<td class="paramname"><em>valid</em> = <code>0</code>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Computes the squared positional error between a polyline and its simplification. </p>
<p>This is a convenience function that provides template type deduction for <a class="el" href="classpsimpl_1_1_polyline_simplification.html#a6b3ed5157f5bf51ef7be179896cd2903" title="Computes the squared positional error between a polyline and its simplification.">PolylineSimplification::ComputePositionalErrors2</a>.</p>
<dl><dt><b>Parameters:</b></dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">original_first</td><td>the first coordinate of the first polyline point </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">original_last</td><td>one beyond the last coordinate of the last polyline point </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">simplified_first</td><td>the first coordinate of the first simplified polyline point </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">simplified_last</td><td>one beyond the last coordinate of the last simplified polyline point </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">result</td><td>destination of the squared positional errors </td></tr>
<tr><td class="paramdir">[out]</td><td class="paramname">valid</td><td>[optional] indicates if the computed positional errors are valid </td></tr>
</table>
</dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>one beyond the last computed positional error </dd></dl>
</div>
</div>
<a class="anchor" id="ab71cedd762eee4006a85f4321fca6cad"></a><!-- doxytag: member="psimpl::simplify_douglas_peucker" ref="ab71cedd762eee4006a85f4321fca6cad" args="(ForwardIterator first, ForwardIterator last, typename std::iterator_traits&lt; ForwardIterator &gt;::value_type tol, OutputIterator result)" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;unsigned DIM, class ForwardIterator , class OutputIterator &gt; </div>
<table class="memname">
<tr>
<td class="memname">OutputIterator psimpl::simplify_douglas_peucker </td>
<td>(</td>
<td class="paramtype">ForwardIterator&#160;</td>
<td class="paramname"><em>first</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">ForwardIterator&#160;</td>
<td class="paramname"><em>last</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">typename std::iterator_traits&lt; ForwardIterator &gt;::value_type&#160;</td>
<td class="paramname"><em>tol</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">OutputIterator&#160;</td>
<td class="paramname"><em>result</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Performs Douglas-Peucker polyline simplification (DP). </p>
<p>This is a convenience function that provides template type deduction for <a class="el" href="classpsimpl_1_1_polyline_simplification.html#a75954f25bc0d99e0a756611ffa2b5fda" title="Performs Douglas-Peucker approximation (DP).">PolylineSimplification::DouglasPeucker</a>.</p>
<dl><dt><b>Parameters:</b></dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">first</td><td>the first coordinate of the first polyline point </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">last</td><td>one beyond the last coordinate of the last polyline point </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">tol</td><td>perpendicular (point-to-segment) distance tolerance </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">result</td><td>destination of the simplified polyline </td></tr>
</table>
</dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>one beyond the last coordinate of the simplified polyline </dd></dl>
</div>
</div>
<a class="anchor" id="aeff1b138293ca9cfb855d7e1f69dacf5"></a><!-- doxytag: member="psimpl::simplify_douglas_peucker_n" ref="aeff1b138293ca9cfb855d7e1f69dacf5" args="(ForwardIterator first, ForwardIterator last, unsigned count, OutputIterator result)" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;unsigned DIM, class ForwardIterator , class OutputIterator &gt; </div>
<table class="memname">
<tr>
<td class="memname">OutputIterator psimpl::simplify_douglas_peucker_n </td>
<td>(</td>
<td class="paramtype">ForwardIterator&#160;</td>
<td class="paramname"><em>first</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">ForwardIterator&#160;</td>
<td class="paramname"><em>last</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">unsigned&#160;</td>
<td class="paramname"><em>count</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">OutputIterator&#160;</td>
<td class="paramname"><em>result</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Performs a variant of Douglas-Peucker polyline simplification (DPn). </p>
<p>This is a convenience function that provides template type deduction for PolylineSimplification::DouglasPeuckerAlt.</p>
<dl><dt><b>Parameters:</b></dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">first</td><td>the first coordinate of the first polyline point </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">last</td><td>one beyond the last coordinate of the last polyline point </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">count</td><td>the maximum number of points of the simplified polyline </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">result</td><td>destination of the simplified polyline </td></tr>
</table>
</dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>one beyond the last coordinate of the simplified polyline </dd></dl>
</div>
</div>
<a class="anchor" id="a241debcb1ad56aa1046f4a4996922411"></a><!-- doxytag: member="psimpl::simplify_lang" ref="a241debcb1ad56aa1046f4a4996922411" args="(BidirectionalIterator first, BidirectionalIterator last, typename std::iterator_traits&lt; BidirectionalIterator &gt;::value_type tol, unsigned look_ahead, OutputIterator result)" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;unsigned DIM, class BidirectionalIterator , class OutputIterator &gt; </div>
<table class="memname">
<tr>
<td class="memname">OutputIterator psimpl::simplify_lang </td>
<td>(</td>
<td class="paramtype">BidirectionalIterator&#160;</td>
<td class="paramname"><em>first</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">BidirectionalIterator&#160;</td>
<td class="paramname"><em>last</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">typename std::iterator_traits&lt; BidirectionalIterator &gt;::value_type&#160;</td>
<td class="paramname"><em>tol</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">unsigned&#160;</td>
<td class="paramname"><em>look_ahead</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">OutputIterator&#160;</td>
<td class="paramname"><em>result</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Performs Lang polyline simplification (LA). </p>
<p>This is a convenience function that provides template type deduction for <a class="el" href="classpsimpl_1_1_polyline_simplification.html#a34f6cdc9223e0e99c671e07a15086e3e" title="Performs Lang approximation (LA).">PolylineSimplification::Lang</a>.</p>
<dl><dt><b>Parameters:</b></dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">first</td><td>the first coordinate of the first polyline point </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">last</td><td>one beyond the last coordinate of the last polyline point </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">tol</td><td>perpendicular (point-to-segment) distance tolerance </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">look_ahead</td><td>defines the size of the search region </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">result</td><td>destination of the simplified polyline </td></tr>
</table>
</dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>one beyond the last coordinate of the simplified polyline </dd></dl>
</div>
</div>
<a class="anchor" id="a1a805a9e3eef7ca46bffae71a8b49dc0"></a><!-- doxytag: member="psimpl::simplify_nth_point" ref="a1a805a9e3eef7ca46bffae71a8b49dc0" args="(ForwardIterator first, ForwardIterator last, unsigned n, OutputIterator result)" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;unsigned DIM, class ForwardIterator , class OutputIterator &gt; </div>
<table class="memname">
<tr>
<td class="memname">OutputIterator psimpl::simplify_nth_point </td>
<td>(</td>
<td class="paramtype">ForwardIterator&#160;</td>
<td class="paramname"><em>first</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">ForwardIterator&#160;</td>
<td class="paramname"><em>last</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">unsigned&#160;</td>
<td class="paramname"><em>n</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">OutputIterator&#160;</td>
<td class="paramname"><em>result</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Performs the nth point routine (NP). </p>
<p>This is a convenience function that provides template type deduction for <a class="el" href="classpsimpl_1_1_polyline_simplification.html#ace21c52fe251f03dc87d17e2627f83ed" title="Performs the nth point routine (NP).">PolylineSimplification::NthPoint</a>.</p>
<dl><dt><b>Parameters:</b></dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">first</td><td>the first coordinate of the first polyline point </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">last</td><td>one beyond the last coordinate of the last polyline point </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">n</td><td>specifies 'each nth point' </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">result</td><td>destination of the simplified polyline </td></tr>
</table>
</dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>one beyond the last coordinate of the simplified polyline </dd></dl>
</div>
</div>
<a class="anchor" id="a433d47ec86872f64bdc2bc792e6444ca"></a><!-- doxytag: member="psimpl::simplify_opheim" ref="a433d47ec86872f64bdc2bc792e6444ca" args="(ForwardIterator first, ForwardIterator last, typename std::iterator_traits&lt; ForwardIterator &gt;::value_type min_tol, typename std::iterator_traits&lt; ForwardIterator &gt;::value_type max_tol, OutputIterator result)" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;unsigned DIM, class ForwardIterator , class OutputIterator &gt; </div>
<table class="memname">
<tr>
<td class="memname">OutputIterator psimpl::simplify_opheim </td>
<td>(</td>
<td class="paramtype">ForwardIterator&#160;</td>
<td class="paramname"><em>first</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">ForwardIterator&#160;</td>
<td class="paramname"><em>last</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">typename std::iterator_traits&lt; ForwardIterator &gt;::value_type&#160;</td>
<td class="paramname"><em>min_tol</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">typename std::iterator_traits&lt; ForwardIterator &gt;::value_type&#160;</td>
<td class="paramname"><em>max_tol</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">OutputIterator&#160;</td>
<td class="paramname"><em>result</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Performs Opheim polyline simplification (OP). </p>
<p>This is a convenience function that provides template type deduction for <a class="el" href="classpsimpl_1_1_polyline_simplification.html#a0b9bf4a27ef12a4eb103266f50c6eb7e" title="Performs Opheim approximation (OP).">PolylineSimplification::Opheim</a>.</p>
<dl><dt><b>Parameters:</b></dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">first</td><td>the first coordinate of the first polyline point </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">last</td><td>one beyond the last coordinate of the last polyline point </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">min_tol</td><td>minimum distance tolerance </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">max_tol</td><td>maximum distance tolerance </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">result</td><td>destination of the simplified polyline </td></tr>
</table>
</dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>one beyond the last coordinate of the simplified polyline </dd></dl>
</div>
</div>
<a class="anchor" id="a71a8cbb4f1ebd41a5897c8174bdf8617"></a><!-- doxytag: member="psimpl::simplify_perpendicular_distance" ref="a71a8cbb4f1ebd41a5897c8174bdf8617" args="(ForwardIterator first, ForwardIterator last, typename std::iterator_traits&lt; ForwardIterator &gt;::value_type tol, OutputIterator result)" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;unsigned DIM, class ForwardIterator , class OutputIterator &gt; </div>
<table class="memname">
<tr>
<td class="memname">OutputIterator psimpl::simplify_perpendicular_distance </td>
<td>(</td>
<td class="paramtype">ForwardIterator&#160;</td>
<td class="paramname"><em>first</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">ForwardIterator&#160;</td>
<td class="paramname"><em>last</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">typename std::iterator_traits&lt; ForwardIterator &gt;::value_type&#160;</td>
<td class="paramname"><em>tol</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">OutputIterator&#160;</td>
<td class="paramname"><em>result</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Performs the perpendicular distance routine (PD). </p>
<p>This is a convenience function that provides template type deduction for <a class="el" href="classpsimpl_1_1_polyline_simplification.html#a2b10f2aeaec1cb48eb053b2b9f632c9c" title="Repeatedly performs the perpendicular distance routine (PD).">PolylineSimplification::PerpendicularDistance</a>.</p>
<dl><dt><b>Parameters:</b></dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">first</td><td>the first coordinate of the first polyline point </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">last</td><td>one beyond the last coordinate of the last polyline point </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">tol</td><td>perpendicular (segment-to-point) distance tolerance </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">result</td><td>destination of the simplified polyline </td></tr>
</table>
</dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>one beyond the last coordinate of the simplified polyline </dd></dl>
</div>
</div>
<a class="anchor" id="aa8c86b0f1529d529fc2ff84d09b00101"></a><!-- doxytag: member="psimpl::simplify_perpendicular_distance" ref="aa8c86b0f1529d529fc2ff84d09b00101" args="(ForwardIterator first, ForwardIterator last, typename std::iterator_traits&lt; ForwardIterator &gt;::value_type tol, unsigned repeat, OutputIterator result)" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;unsigned DIM, class ForwardIterator , class OutputIterator &gt; </div>
<table class="memname">
<tr>
<td class="memname">OutputIterator psimpl::simplify_perpendicular_distance </td>
<td>(</td>
<td class="paramtype">ForwardIterator&#160;</td>
<td class="paramname"><em>first</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">ForwardIterator&#160;</td>
<td class="paramname"><em>last</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">typename std::iterator_traits&lt; ForwardIterator &gt;::value_type&#160;</td>
<td class="paramname"><em>tol</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">unsigned&#160;</td>
<td class="paramname"><em>repeat</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">OutputIterator&#160;</td>
<td class="paramname"><em>result</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Repeatedly performs the perpendicular distance routine (PD). </p>
<p>This is a convenience function that provides template type deduction for <a class="el" href="classpsimpl_1_1_polyline_simplification.html#a2b10f2aeaec1cb48eb053b2b9f632c9c" title="Repeatedly performs the perpendicular distance routine (PD).">PolylineSimplification::PerpendicularDistance</a>.</p>
<dl><dt><b>Parameters:</b></dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">first</td><td>the first coordinate of the first polyline point </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">last</td><td>one beyond the last coordinate of the last polyline point </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">tol</td><td>perpendicular (segment-to-point) distance tolerance </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">repeat</td><td>the number of times to successively apply the PD routine. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">result</td><td>destination of the simplified polyline </td></tr>
</table>
</dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>one beyond the last coordinate of the simplified polyline </dd></dl>
</div>
</div>
<a class="anchor" id="a12f4b63e11188c5293fe3effabbfba31"></a><!-- doxytag: member="psimpl::simplify_radial_distance" ref="a12f4b63e11188c5293fe3effabbfba31" args="(ForwardIterator first, ForwardIterator last, typename std::iterator_traits&lt; ForwardIterator &gt;::value_type tol, OutputIterator result)" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;unsigned DIM, class ForwardIterator , class OutputIterator &gt; </div>
<table class="memname">
<tr>
<td class="memname">OutputIterator psimpl::simplify_radial_distance </td>
<td>(</td>
<td class="paramtype">ForwardIterator&#160;</td>
<td class="paramname"><em>first</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">ForwardIterator&#160;</td>
<td class="paramname"><em>last</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">typename std::iterator_traits&lt; ForwardIterator &gt;::value_type&#160;</td>
<td class="paramname"><em>tol</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">OutputIterator&#160;</td>
<td class="paramname"><em>result</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Performs the (radial) distance between points routine (RD). </p>
<p>This is a convenience function that provides template type deduction for <a class="el" href="classpsimpl_1_1_polyline_simplification.html#aa9f3491a3aa88e3b795705045053a649" title="Performs the (radial) distance between points routine (RD).">PolylineSimplification::RadialDistance</a>.</p>
<dl><dt><b>Parameters:</b></dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">first</td><td>the first coordinate of the first polyline point </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">last</td><td>one beyond the last coordinate of the last polyline point </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">tol</td><td>radial (point-to-point) distance tolerance </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">result</td><td>destination of the simplified polyline </td></tr>
</table>
</dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>one beyond the last coordinate of the simplified polyline </dd></dl>
</div>
</div>
<a class="anchor" id="a0ae1a1e3ada43f9791ac6ac36df5fdf7"></a><!-- doxytag: member="psimpl::simplify_reumann_witkam" ref="a0ae1a1e3ada43f9791ac6ac36df5fdf7" args="(ForwardIterator first, ForwardIterator last, typename std::iterator_traits&lt; ForwardIterator &gt;::value_type tol, OutputIterator result)" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;unsigned DIM, class ForwardIterator , class OutputIterator &gt; </div>
<table class="memname">
<tr>
<td class="memname">OutputIterator psimpl::simplify_reumann_witkam </td>
<td>(</td>
<td class="paramtype">ForwardIterator&#160;</td>
<td class="paramname"><em>first</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">ForwardIterator&#160;</td>
<td class="paramname"><em>last</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">typename std::iterator_traits&lt; ForwardIterator &gt;::value_type&#160;</td>
<td class="paramname"><em>tol</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">OutputIterator&#160;</td>
<td class="paramname"><em>result</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Performs Reumann-Witkam polyline simplification (RW). </p>
<p>This is a convenience function that provides template type deduction for <a class="el" href="classpsimpl_1_1_polyline_simplification.html#ae938c132f029b4e8e828f5e6c7ee4b16" title="Performs Reumann-Witkam approximation (RW).">PolylineSimplification::ReumannWitkam</a>.</p>
<dl><dt><b>Parameters:</b></dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">first</td><td>the first coordinate of the first polyline point </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">last</td><td>one beyond the last coordinate of the last polyline point </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">tol</td><td>perpendicular (point-to-line) distance tolerance </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">result</td><td>destination of the simplified polyline </td></tr>
</table>
</dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>one beyond the last coordinate of the simplified polyline </dd></dl>
</div>
</div>
</div>
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="namespacepsimpl.html">psimpl</a> </li>
<li class="footer">Generated on Fri Jun 24 2011 14:56:29 for psimpl by&#160;
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.4 </li>
</ul>
</div>
</body>
</html>

View File

@ -0,0 +1,519 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<title>psimpl: psimpl::math Namespace Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript">
$(document).ready(initResizable);
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<!-- Generated by Doxygen 1.7.4 -->
<div id="top">
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td style="padding-left: 0.5em;">
<div id="projectname">psimpl&#160;<span id="projectnumber">7</span></div>
</td>
</tr>
</tbody>
</table>
</div>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li class="current"><a href="namespaces.html"><span>Namespaces</span></a></li>
<li><a href="annotated.html"><span>Classes</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
<li><a href="dirs.html"><span>Directories</span></a></li>
</ul>
</div>
<div id="navrow2" class="tabs2">
<ul class="tablist">
<li><a href="namespaces.html"><span>Namespace&#160;List</span></a></li>
<li><a href="namespacemembers.html"><span>Namespace&#160;Members</span></a></li>
</ul>
</div>
</div>
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
initNavTree('namespacepsimpl_1_1math.html','');
</script>
<div id="doc-content">
<div class="header">
<div class="summary">
<a href="#nested-classes">Classes</a> &#124;
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
<div class="title">psimpl::math Namespace Reference</div> </div>
</div>
<div class="contents">
<p>Contains functions for calculating statistics and distances between various geometric entities.
<a href="#details">More...</a></p>
<table class="memberdecls">
<tr><td colspan="2"><h2><a name="nested-classes"></a>
Classes</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structpsimpl_1_1math_1_1_statistics.html">Statistics</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">POD structure for storing several statistical values. <a href="structpsimpl_1_1math_1_1_statistics.html#details">More...</a><br/></td></tr>
<tr><td colspan="2"><h2><a name="func-members"></a>
Functions</h2></td></tr>
<tr><td class="memTemplParams" colspan="2">template&lt;unsigned DIM, class InputIterator &gt; </td></tr>
<tr><td class="memTemplItemLeft" align="right" valign="top">bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacepsimpl_1_1math.html#a6b293d2459ba597c933d6fdb68e91b2c">equal</a> (InputIterator p1, InputIterator p2)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Determines if two points have the exact same coordinates. <a href="#a6b293d2459ba597c933d6fdb68e91b2c"></a><br/></td></tr>
<tr><td class="memTemplParams" colspan="2">template&lt;unsigned DIM, class InputIterator , class OutputIterator &gt; </td></tr>
<tr><td class="memTemplItemLeft" align="right" valign="top">OutputIterator&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacepsimpl_1_1math.html#a10bb3d3d87fa1038d43eee6e5f3fcdda">make_vector</a> (InputIterator p1, InputIterator p2, OutputIterator result)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Creates a vector from two points. <a href="#a10bb3d3d87fa1038d43eee6e5f3fcdda"></a><br/></td></tr>
<tr><td class="memTemplParams" colspan="2">template&lt;unsigned DIM, class InputIterator &gt; </td></tr>
<tr><td class="memTemplItemLeft" align="right" valign="top">std::iterator_traits<br class="typebreak"/>
&lt; InputIterator &gt;::value_type&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacepsimpl_1_1math.html#a26bb15089fdfcfc4560b5a318317bbc4">dot</a> (InputIterator v1, InputIterator v2)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Computes the dot product of two vectors. <a href="#a26bb15089fdfcfc4560b5a318317bbc4"></a><br/></td></tr>
<tr><td class="memTemplParams" colspan="2">template&lt;unsigned DIM, class InputIterator , class OutputIterator &gt; </td></tr>
<tr><td class="memTemplItemLeft" align="right" valign="top">OutputIterator&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacepsimpl_1_1math.html#a87a753961c7742b6c48b4f66a0fea697">interpolate</a> (InputIterator p1, InputIterator p2, float fraction, OutputIterator result)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Peforms linear interpolation between two points. <a href="#a87a753961c7742b6c48b4f66a0fea697"></a><br/></td></tr>
<tr><td class="memTemplParams" colspan="2">template&lt;unsigned DIM, class InputIterator1 , class InputIterator2 &gt; </td></tr>
<tr><td class="memTemplItemLeft" align="right" valign="top">std::iterator_traits<br class="typebreak"/>
&lt; InputIterator1 &gt;::value_type&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacepsimpl_1_1math.html#ab995b6d68caf4d43172a0de6ee363eb0">point_distance2</a> (InputIterator1 p1, InputIterator2 p2)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Computes the squared distance of two points. <a href="#ab995b6d68caf4d43172a0de6ee363eb0"></a><br/></td></tr>
<tr><td class="memTemplParams" colspan="2">template&lt;unsigned DIM, class InputIterator &gt; </td></tr>
<tr><td class="memTemplItemLeft" align="right" valign="top">std::iterator_traits<br class="typebreak"/>
&lt; InputIterator &gt;::value_type&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacepsimpl_1_1math.html#ace5d8a6b9ca11eeadd9d13e451651996">line_distance2</a> (InputIterator l1, InputIterator l2, InputIterator p)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Computes the squared distance between an infinite line (l1, l2) and a point p. <a href="#ace5d8a6b9ca11eeadd9d13e451651996"></a><br/></td></tr>
<tr><td class="memTemplParams" colspan="2">template&lt;unsigned DIM, class InputIterator &gt; </td></tr>
<tr><td class="memTemplItemLeft" align="right" valign="top">std::iterator_traits<br class="typebreak"/>
&lt; InputIterator &gt;::value_type&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacepsimpl_1_1math.html#a4f3ff418f290d1125622c2388ab976d0">segment_distance2</a> (InputIterator s1, InputIterator s2, InputIterator p)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Computes the squared distance between a line segment (s1, s2) and a point p. <a href="#a4f3ff418f290d1125622c2388ab976d0"></a><br/></td></tr>
<tr><td class="memTemplParams" colspan="2">template&lt;unsigned DIM, class InputIterator &gt; </td></tr>
<tr><td class="memTemplItemLeft" align="right" valign="top">std::iterator_traits<br class="typebreak"/>
&lt; InputIterator &gt;::value_type&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacepsimpl_1_1math.html#a4b9426204b9964b859b059cc7fbce61a">ray_distance2</a> (InputIterator r1, InputIterator r2, InputIterator p)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Computes the squared distance between a ray (r1, r2) and a point p. <a href="#a4b9426204b9964b859b059cc7fbce61a"></a><br/></td></tr>
<tr><td class="memTemplParams" colspan="2">template&lt;class InputIterator &gt; </td></tr>
<tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="structpsimpl_1_1math_1_1_statistics.html">Statistics</a>&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacepsimpl_1_1math.html#ab162cc6f5efcf619c7327b45c793c969">compute_statistics</a> (InputIterator first, InputIterator last)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Computes various statistics for the range [first, last) <a href="#ab162cc6f5efcf619c7327b45c793c969"></a><br/></td></tr>
</table>
<hr/><a name="details" id="details"></a><h2>Detailed Description</h2>
<div class="textblock"><p>Contains functions for calculating statistics and distances between various geometric entities. </p>
</div><hr/><h2>Function Documentation</h2>
<a class="anchor" id="ab162cc6f5efcf619c7327b45c793c969"></a><!-- doxytag: member="psimpl::math::compute_statistics" ref="ab162cc6f5efcf619c7327b45c793c969" args="(InputIterator first, InputIterator last)" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class InputIterator &gt; </div>
<table class="memname">
<tr>
<td class="memname"><a class="el" href="structpsimpl_1_1math_1_1_statistics.html">Statistics</a> psimpl::math::compute_statistics </td>
<td>(</td>
<td class="paramtype">InputIterator&#160;</td>
<td class="paramname"><em>first</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">InputIterator&#160;</td>
<td class="paramname"><em>last</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td><code> [inline]</code></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Computes various statistics for the range [first, last) </p>
<dl><dt><b>Parameters:</b></dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">first</td><td>the first value </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">last</td><td>one beyond the last value </td></tr>
</table>
</dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>the calculated statistics </dd></dl>
</div>
</div>
<a class="anchor" id="a26bb15089fdfcfc4560b5a318317bbc4"></a><!-- doxytag: member="psimpl::math::dot" ref="a26bb15089fdfcfc4560b5a318317bbc4" args="(InputIterator v1, InputIterator v2)" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;unsigned DIM, class InputIterator &gt; </div>
<table class="memname">
<tr>
<td class="memname">std::iterator_traits&lt;InputIterator&gt;::value_type psimpl::math::dot </td>
<td>(</td>
<td class="paramtype">InputIterator&#160;</td>
<td class="paramname"><em>v1</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">InputIterator&#160;</td>
<td class="paramname"><em>v2</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td><code> [inline]</code></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Computes the dot product of two vectors. </p>
<dl><dt><b>Parameters:</b></dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">v1</td><td>the first coordinate of the first vector </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">v2</td><td>the first coordinate of the second vector </td></tr>
</table>
</dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>the dot product (v1 * v2) </dd></dl>
</div>
</div>
<a class="anchor" id="a6b293d2459ba597c933d6fdb68e91b2c"></a><!-- doxytag: member="psimpl::math::equal" ref="a6b293d2459ba597c933d6fdb68e91b2c" args="(InputIterator p1, InputIterator p2)" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;unsigned DIM, class InputIterator &gt; </div>
<table class="memname">
<tr>
<td class="memname">bool psimpl::math::equal </td>
<td>(</td>
<td class="paramtype">InputIterator&#160;</td>
<td class="paramname"><em>p1</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">InputIterator&#160;</td>
<td class="paramname"><em>p2</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td><code> [inline]</code></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Determines if two points have the exact same coordinates. </p>
<dl><dt><b>Parameters:</b></dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">p1</td><td>the first coordinate of the first point </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">p2</td><td>the first coordinate of the second point </td></tr>
</table>
</dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>true when the points are equal; false otherwise </dd></dl>
</div>
</div>
<a class="anchor" id="a87a753961c7742b6c48b4f66a0fea697"></a><!-- doxytag: member="psimpl::math::interpolate" ref="a87a753961c7742b6c48b4f66a0fea697" args="(InputIterator p1, InputIterator p2, float fraction, OutputIterator result)" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;unsigned DIM, class InputIterator , class OutputIterator &gt; </div>
<table class="memname">
<tr>
<td class="memname">OutputIterator psimpl::math::interpolate </td>
<td>(</td>
<td class="paramtype">InputIterator&#160;</td>
<td class="paramname"><em>p1</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">InputIterator&#160;</td>
<td class="paramname"><em>p2</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">float&#160;</td>
<td class="paramname"><em>fraction</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">OutputIterator&#160;</td>
<td class="paramname"><em>result</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td><code> [inline]</code></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Peforms linear interpolation between two points. </p>
<dl><dt><b>Parameters:</b></dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">p1</td><td>the first coordinate of the first point </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">p2</td><td>the first coordinate of the second point </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">fraction</td><td>the fraction used during interpolation </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">result</td><td>the interpolation result (p1 + fraction * (p2 - p1)) </td></tr>
</table>
</dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>one beyond the last coordinate of the interpolated point </dd></dl>
</div>
</div>
<a class="anchor" id="ace5d8a6b9ca11eeadd9d13e451651996"></a><!-- doxytag: member="psimpl::math::line_distance2" ref="ace5d8a6b9ca11eeadd9d13e451651996" args="(InputIterator l1, InputIterator l2, InputIterator p)" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;unsigned DIM, class InputIterator &gt; </div>
<table class="memname">
<tr>
<td class="memname">std::iterator_traits&lt;InputIterator&gt;::value_type psimpl::math::line_distance2 </td>
<td>(</td>
<td class="paramtype">InputIterator&#160;</td>
<td class="paramname"><em>l1</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">InputIterator&#160;</td>
<td class="paramname"><em>l2</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">InputIterator&#160;</td>
<td class="paramname"><em>p</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td><code> [inline]</code></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Computes the squared distance between an infinite line (l1, l2) and a point p. </p>
<dl><dt><b>Parameters:</b></dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">l1</td><td>the first coordinate of the first point on the line </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">l2</td><td>the first coordinate of the second point on the line </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">p</td><td>the first coordinate of the test point </td></tr>
</table>
</dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>the squared distance </dd></dl>
</div>
</div>
<a class="anchor" id="a10bb3d3d87fa1038d43eee6e5f3fcdda"></a><!-- doxytag: member="psimpl::math::make_vector" ref="a10bb3d3d87fa1038d43eee6e5f3fcdda" args="(InputIterator p1, InputIterator p2, OutputIterator result)" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;unsigned DIM, class InputIterator , class OutputIterator &gt; </div>
<table class="memname">
<tr>
<td class="memname">OutputIterator psimpl::math::make_vector </td>
<td>(</td>
<td class="paramtype">InputIterator&#160;</td>
<td class="paramname"><em>p1</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">InputIterator&#160;</td>
<td class="paramname"><em>p2</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">OutputIterator&#160;</td>
<td class="paramname"><em>result</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td><code> [inline]</code></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Creates a vector from two points. </p>
<dl><dt><b>Parameters:</b></dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">p1</td><td>the first coordinate of the first point </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">p2</td><td>the first coordinate of the second point </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">result</td><td>the resulting vector (p2-p1) </td></tr>
</table>
</dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>one beyond the last coordinate of the resulting vector </dd></dl>
</div>
</div>
<a class="anchor" id="ab995b6d68caf4d43172a0de6ee363eb0"></a><!-- doxytag: member="psimpl::math::point_distance2" ref="ab995b6d68caf4d43172a0de6ee363eb0" args="(InputIterator1 p1, InputIterator2 p2)" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;unsigned DIM, class InputIterator1 , class InputIterator2 &gt; </div>
<table class="memname">
<tr>
<td class="memname">std::iterator_traits&lt;InputIterator1&gt;::value_type psimpl::math::point_distance2 </td>
<td>(</td>
<td class="paramtype">InputIterator1&#160;</td>
<td class="paramname"><em>p1</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">InputIterator2&#160;</td>
<td class="paramname"><em>p2</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td><code> [inline]</code></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Computes the squared distance of two points. </p>
<dl><dt><b>Parameters:</b></dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">p1</td><td>the first coordinate of the first point </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">p2</td><td>the first coordinate of the second point </td></tr>
</table>
</dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>the squared distance </dd></dl>
</div>
</div>
<a class="anchor" id="a4b9426204b9964b859b059cc7fbce61a"></a><!-- doxytag: member="psimpl::math::ray_distance2" ref="a4b9426204b9964b859b059cc7fbce61a" args="(InputIterator r1, InputIterator r2, InputIterator p)" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;unsigned DIM, class InputIterator &gt; </div>
<table class="memname">
<tr>
<td class="memname">std::iterator_traits&lt;InputIterator&gt;::value_type psimpl::math::ray_distance2 </td>
<td>(</td>
<td class="paramtype">InputIterator&#160;</td>
<td class="paramname"><em>r1</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">InputIterator&#160;</td>
<td class="paramname"><em>r2</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">InputIterator&#160;</td>
<td class="paramname"><em>p</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td><code> [inline]</code></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Computes the squared distance between a ray (r1, r2) and a point p. </p>
<dl><dt><b>Parameters:</b></dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">r1</td><td>the first coordinate of the start point of the ray </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">r2</td><td>the first coordinate of a point on the ray </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">p</td><td>the first coordinate of the test point </td></tr>
</table>
</dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>the squared distance </dd></dl>
</div>
</div>
<a class="anchor" id="a4f3ff418f290d1125622c2388ab976d0"></a><!-- doxytag: member="psimpl::math::segment_distance2" ref="a4f3ff418f290d1125622c2388ab976d0" args="(InputIterator s1, InputIterator s2, InputIterator p)" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;unsigned DIM, class InputIterator &gt; </div>
<table class="memname">
<tr>
<td class="memname">std::iterator_traits&lt;InputIterator&gt;::value_type psimpl::math::segment_distance2 </td>
<td>(</td>
<td class="paramtype">InputIterator&#160;</td>
<td class="paramname"><em>s1</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">InputIterator&#160;</td>
<td class="paramname"><em>s2</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">InputIterator&#160;</td>
<td class="paramname"><em>p</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td><code> [inline]</code></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Computes the squared distance between a line segment (s1, s2) and a point p. </p>
<dl><dt><b>Parameters:</b></dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">s1</td><td>the first coordinate of the start point of the segment </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">s2</td><td>the first coordinate of the end point of the segment </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">p</td><td>the first coordinate of the test point </td></tr>
</table>
</dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>the squared distance </dd></dl>
</div>
</div>
</div>
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="namespacepsimpl.html">psimpl</a> </li>
<li class="navelem"><a class="el" href="namespacepsimpl_1_1math.html">math</a> </li>
<li class="footer">Generated on Fri Jun 24 2011 14:56:29 for psimpl by&#160;
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.4 </li>
</ul>
</div>
</body>
</html>

View File

@ -0,0 +1,125 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<title>psimpl: psimpl::util Namespace Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript">
$(document).ready(initResizable);
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<!-- Generated by Doxygen 1.7.4 -->
<div id="top">
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td style="padding-left: 0.5em;">
<div id="projectname">psimpl&#160;<span id="projectnumber">7</span></div>
</td>
</tr>
</tbody>
</table>
</div>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li class="current"><a href="namespaces.html"><span>Namespaces</span></a></li>
<li><a href="annotated.html"><span>Classes</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
<li><a href="dirs.html"><span>Directories</span></a></li>
</ul>
</div>
<div id="navrow2" class="tabs2">
<ul class="tablist">
<li><a href="namespaces.html"><span>Namespace&#160;List</span></a></li>
<li><a href="namespacemembers.html"><span>Namespace&#160;Members</span></a></li>
</ul>
</div>
</div>
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
initNavTree('namespacepsimpl_1_1util.html','');
</script>
<div id="doc-content">
<div class="header">
<div class="summary">
<a href="#nested-classes">Classes</a> &#124;
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
<div class="title">psimpl::util Namespace Reference</div> </div>
</div>
<div class="contents">
<p>Contains utility functions and classes.
<a href="#details">More...</a></p>
<table class="memberdecls">
<tr><td colspan="2"><h2><a name="nested-classes"></a>
Classes</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpsimpl_1_1util_1_1scoped__array.html">scoped_array</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">A smart pointer for holding a dynamically allocated array. <a href="classpsimpl_1_1util_1_1scoped__array.html#details">More...</a><br/></td></tr>
<tr><td colspan="2"><h2><a name="func-members"></a>
Functions</h2></td></tr>
<tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
<tr><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacepsimpl_1_1util.html#ae99d4ca12dc7025d6a31185463d7606d">swap</a> (<a class="el" href="classpsimpl_1_1util_1_1scoped__array.html">scoped_array</a>&lt; T &gt; &amp;a, <a class="el" href="classpsimpl_1_1util_1_1scoped__array.html">scoped_array</a>&lt; T &gt; &amp;b)</td></tr>
</table>
<hr/><a name="details" id="details"></a><h2>Detailed Description</h2>
<div class="textblock"><p>Contains utility functions and classes. </p>
</div><hr/><h2>Function Documentation</h2>
<a class="anchor" id="ae99d4ca12dc7025d6a31185463d7606d"></a><!-- doxytag: member="psimpl::util::swap" ref="ae99d4ca12dc7025d6a31185463d7606d" args="(scoped_array&lt; T &gt; &amp;a, scoped_array&lt; T &gt; &amp;b)" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T &gt; </div>
<table class="memname">
<tr>
<td class="memname">void psimpl::util::swap </td>
<td>(</td>
<td class="paramtype">scoped_array&lt; T &gt; &amp;&#160;</td>
<td class="paramname"><em>a</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">scoped_array&lt; T &gt; &amp;&#160;</td>
<td class="paramname"><em>b</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td><code> [inline]</code></td>
</tr>
</table>
</div>
<div class="memdoc">
</div>
</div>
</div>
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="namespacepsimpl.html">psimpl</a> </li>
<li class="navelem"><a class="el" href="namespacepsimpl_1_1util.html">util</a> </li>
<li class="footer">Generated on Fri Jun 24 2011 14:56:29 for psimpl by&#160;
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.4 </li>
</ul>
</div>
</body>
</html>

View File

@ -0,0 +1,80 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<title>psimpl: Namespace List</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript">
$(document).ready(initResizable);
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<!-- Generated by Doxygen 1.7.4 -->
<div id="top">
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td style="padding-left: 0.5em;">
<div id="projectname">psimpl&#160;<span id="projectnumber">7</span></div>
</td>
</tr>
</tbody>
</table>
</div>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li class="current"><a href="namespaces.html"><span>Namespaces</span></a></li>
<li><a href="annotated.html"><span>Classes</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
<li><a href="dirs.html"><span>Directories</span></a></li>
</ul>
</div>
<div id="navrow2" class="tabs2">
<ul class="tablist">
<li class="current"><a href="namespaces.html"><span>Namespace&#160;List</span></a></li>
<li><a href="namespacemembers.html"><span>Namespace&#160;Members</span></a></li>
</ul>
</div>
</div>
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
initNavTree('namespaces.html','');
</script>
<div id="doc-content">
<div class="header">
<div class="headertitle">
<div class="title">Namespace List</div> </div>
</div>
<div class="contents">
<div class="textblock">Here is a list of all namespaces with brief descriptions:</div><table>
<tr><td class="indexkey"><a class="el" href="namespacepsimpl.html">psimpl</a></td><td class="indexvalue">Root namespace of the polyline simplification library </td></tr>
<tr><td class="indexkey"><a class="el" href="namespacepsimpl_1_1math.html">psimpl::math</a></td><td class="indexvalue">Contains functions for calculating statistics and distances between various geometric entities </td></tr>
<tr><td class="indexkey"><a class="el" href="namespacepsimpl_1_1util.html">psimpl::util</a></td><td class="indexvalue">Contains utility functions and classes </td></tr>
</table>
</div>
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="footer">Generated on Fri Jun 24 2011 14:56:29 for psimpl by&#160;
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.4 </li>
</ul>
</div>
</body>
</html>

Binary file not shown.

After

Width:  |  Height:  |  Size: 159 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 97 B

View File

@ -0,0 +1,123 @@
#nav-tree .children_ul {
margin:0;
padding:4px;
}
#nav-tree ul {
list-style:none outside none;
margin:0px;
padding:0px;
}
#nav-tree li {
white-space:nowrap;
margin:0px;
padding:0px;
}
#nav-tree .plus {
margin:0px;
}
#nav-tree .selected {
background-image: url('tab_a.png');
background-repeat:repeat-x;
color: #fff;
text-shadow: 0px 1px 1px rgba(0, 0, 0, 1.0);
}
#nav-tree img {
margin:0px;
padding:0px;
border:0px;
vertical-align: middle;
}
#nav-tree a {
text-decoration:none;
padding:0px;
margin:0px;
outline:none;
}
#nav-tree .label {
margin:0px;
padding:0px;
}
#nav-tree .label a {
padding:2px;
}
#nav-tree .selected a {
text-decoration:none;
padding:2px;
margin:0px;
color:#fff;
}
#nav-tree .children_ul {
margin:0px;
padding:0px;
}
#nav-tree .item {
margin:0px;
padding:0px;
}
#nav-tree {
padding: 0px 0px;
background-color: #FAFAFF;
font-size:14px;
overflow:auto;
}
#doc-content {
overflow:auto;
display:block;
padding:0px;
margin:0px;
}
#side-nav {
padding:0 6px 0 0;
margin: 0px;
display:block;
position: absolute;
left: 0px;
width: 300px;
}
.ui-resizable .ui-resizable-handle {
display:block;
}
.ui-resizable-e {
background:url("ftv2splitbar.png") repeat scroll right center transparent;
cursor:e-resize;
height:100%;
right:0;
top:0;
width:6px;
}
.ui-resizable-handle {
display:none;
font-size:0.1px;
position:absolute;
z-index:1;
}
#nav-tree-contents {
margin: 6px 0px 0px 0px;
}
#nav-tree {
background-image:url('nav_h.png');
background-repeat:repeat-x;
background-color: #F9FAFC;
}

View File

@ -0,0 +1,275 @@
var NAVTREE =
[
[ "psimpl", "index.html", [
[ "psimpl - generic n-dimensional polyline simplification", "index.html", null ],
[ "Class List", "annotated.html", [
[ "psimpl::PolylineSimplification< DIM, InputIterator, OutputIterator >::DPHelper", "classpsimpl_1_1_polyline_simplification_1_1_d_p_helper.html", null ],
[ "psimpl::PolylineSimplification< DIM, InputIterator, OutputIterator >::DPHelper::KeyInfo", "structpsimpl_1_1_polyline_simplification_1_1_d_p_helper_1_1_key_info.html", null ],
[ "psimpl::PolylineSimplification< DIM, InputIterator, OutputIterator >", "classpsimpl_1_1_polyline_simplification.html", null ],
[ "psimpl::util::scoped_array< T >", "classpsimpl_1_1util_1_1scoped__array.html", null ],
[ "psimpl::math::Statistics", "structpsimpl_1_1math_1_1_statistics.html", null ],
[ "psimpl::PolylineSimplification< DIM, InputIterator, OutputIterator >::DPHelper::SubPoly", "structpsimpl_1_1_polyline_simplification_1_1_d_p_helper_1_1_sub_poly.html", null ],
[ "psimpl::PolylineSimplification< DIM, InputIterator, OutputIterator >::DPHelper::SubPolyAlt", "structpsimpl_1_1_polyline_simplification_1_1_d_p_helper_1_1_sub_poly_alt.html", null ]
] ],
[ "Class Index", "classes.html", null ],
[ "Class Members", "functions.html", null ],
[ "Namespace List", "namespaces.html", [
[ "psimpl", "namespacepsimpl.html", null ],
[ "psimpl::math", "namespacepsimpl_1_1math.html", null ],
[ "psimpl::util", "namespacepsimpl_1_1util.html", null ]
] ],
[ "Namespace Members", "namespacemembers.html", null ],
[ "File List", "files.html", [
[ "D:/Code/Projects/psimpl/trunk/lib/psimpl.h", "psimpl_8h.html", null ]
] ],
[ "Directories", "dirs.html", [
[ "lib", "dir_f9993e17f36afaef24d7a404e932861e.html", null ]
] ]
] ]
];
function createIndent(o,domNode,node,level)
{
if (node.parentNode && node.parentNode.parentNode)
{
createIndent(o,domNode,node.parentNode,level+1);
}
var imgNode = document.createElement("img");
if (level==0 && node.childrenData)
{
node.plus_img = imgNode;
node.expandToggle = document.createElement("a");
node.expandToggle.href = "javascript:void(0)";
node.expandToggle.onclick = function()
{
if (node.expanded)
{
$(node.getChildrenUL()).slideUp("fast");
if (node.isLast)
{
node.plus_img.src = node.relpath+"ftv2plastnode.png";
}
else
{
node.plus_img.src = node.relpath+"ftv2pnode.png";
}
node.expanded = false;
}
else
{
expandNode(o, node, false);
}
}
node.expandToggle.appendChild(imgNode);
domNode.appendChild(node.expandToggle);
}
else
{
domNode.appendChild(imgNode);
}
if (level==0)
{
if (node.isLast)
{
if (node.childrenData)
{
imgNode.src = node.relpath+"ftv2plastnode.png";
}
else
{
imgNode.src = node.relpath+"ftv2lastnode.png";
domNode.appendChild(imgNode);
}
}
else
{
if (node.childrenData)
{
imgNode.src = node.relpath+"ftv2pnode.png";
}
else
{
imgNode.src = node.relpath+"ftv2node.png";
domNode.appendChild(imgNode);
}
}
}
else
{
if (node.isLast)
{
imgNode.src = node.relpath+"ftv2blank.png";
}
else
{
imgNode.src = node.relpath+"ftv2vertline.png";
}
}
imgNode.border = "0";
}
function newNode(o, po, text, link, childrenData, lastNode)
{
var node = new Object();
node.children = Array();
node.childrenData = childrenData;
node.depth = po.depth + 1;
node.relpath = po.relpath;
node.isLast = lastNode;
node.li = document.createElement("li");
po.getChildrenUL().appendChild(node.li);
node.parentNode = po;
node.itemDiv = document.createElement("div");
node.itemDiv.className = "item";
node.labelSpan = document.createElement("span");
node.labelSpan.className = "label";
createIndent(o,node.itemDiv,node,0);
node.itemDiv.appendChild(node.labelSpan);
node.li.appendChild(node.itemDiv);
var a = document.createElement("a");
node.labelSpan.appendChild(a);
node.label = document.createTextNode(text);
a.appendChild(node.label);
if (link)
{
a.href = node.relpath+link;
}
else
{
if (childrenData != null)
{
a.className = "nolink";
a.href = "javascript:void(0)";
a.onclick = node.expandToggle.onclick;
node.expanded = false;
}
}
node.childrenUL = null;
node.getChildrenUL = function()
{
if (!node.childrenUL)
{
node.childrenUL = document.createElement("ul");
node.childrenUL.className = "children_ul";
node.childrenUL.style.display = "none";
node.li.appendChild(node.childrenUL);
}
return node.childrenUL;
};
return node;
}
function showRoot()
{
var headerHeight = $("#top").height();
var footerHeight = $("#nav-path").height();
var windowHeight = $(window).height() - headerHeight - footerHeight;
navtree.scrollTo('#selected',0,{offset:-windowHeight/2});
}
function expandNode(o, node, imm)
{
if (node.childrenData && !node.expanded)
{
if (!node.childrenVisited)
{
getNode(o, node);
}
if (imm)
{
$(node.getChildrenUL()).show();
}
else
{
$(node.getChildrenUL()).slideDown("fast",showRoot);
}
if (node.isLast)
{
node.plus_img.src = node.relpath+"ftv2mlastnode.png";
}
else
{
node.plus_img.src = node.relpath+"ftv2mnode.png";
}
node.expanded = true;
}
}
function getNode(o, po)
{
po.childrenVisited = true;
var l = po.childrenData.length-1;
for (var i in po.childrenData)
{
var nodeData = po.childrenData[i];
po.children[i] = newNode(o, po, nodeData[0], nodeData[1], nodeData[2],
i==l);
}
}
function findNavTreePage(url, data)
{
var nodes = data;
var result = null;
for (var i in nodes)
{
var d = nodes[i];
if (d[1] == url)
{
return new Array(i);
}
else if (d[2] != null) // array of children
{
result = findNavTreePage(url, d[2]);
if (result != null)
{
return (new Array(i).concat(result));
}
}
}
return null;
}
function initNavTree(toroot,relpath)
{
var o = new Object();
o.toroot = toroot;
o.node = new Object();
o.node.li = document.getElementById("nav-tree-contents");
o.node.childrenData = NAVTREE;
o.node.children = new Array();
o.node.childrenUL = document.createElement("ul");
o.node.getChildrenUL = function() { return o.node.childrenUL; };
o.node.li.appendChild(o.node.childrenUL);
o.node.depth = 0;
o.node.relpath = relpath;
getNode(o, o.node);
o.breadcrumbs = findNavTreePage(toroot, NAVTREE);
if (o.breadcrumbs == null)
{
o.breadcrumbs = findNavTreePage("index.html",NAVTREE);
}
if (o.breadcrumbs != null && o.breadcrumbs.length>0)
{
var p = o.node;
for (var i in o.breadcrumbs)
{
var j = o.breadcrumbs[i];
p = p.children[j];
expandNode(o,p,true);
}
p.itemDiv.className = p.itemDiv.className + " selected";
p.itemDiv.id = "selected";
$(window).load(showRoot);
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 118 B

View File

@ -0,0 +1,190 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<title>psimpl: D:/Code/Projects/psimpl/trunk/lib/psimpl.h File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript">
$(document).ready(initResizable);
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<!-- Generated by Doxygen 1.7.4 -->
<div id="top">
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td style="padding-left: 0.5em;">
<div id="projectname">psimpl&#160;<span id="projectnumber">7</span></div>
</td>
</tr>
</tbody>
</table>
</div>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="namespaces.html"><span>Namespaces</span></a></li>
<li><a href="annotated.html"><span>Classes</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
<li><a href="dirs.html"><span>Directories</span></a></li>
</ul>
</div>
<div id="navrow2" class="tabs2">
<ul class="tablist">
<li><a href="files.html"><span>File&#160;List</span></a></li>
</ul>
</div>
</div>
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
initNavTree('psimpl_8h.html','');
</script>
<div id="doc-content">
<div class="header">
<div class="summary">
<a href="#nested-classes">Classes</a> &#124;
<a href="#namespaces">Namespaces</a> &#124;
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
<div class="title">psimpl.h File Reference</div> </div>
</div>
<div class="contents">
<div class="textblock"><code>#include &lt;queue&gt;</code><br/>
<code>#include &lt;stack&gt;</code><br/>
<code>#include &lt;numeric&gt;</code><br/>
<code>#include &lt;algorithm&gt;</code><br/>
<code>#include &lt;cmath&gt;</code><br/>
</div>
<p><a href="psimpl_8h_source.html">Go to the source code of this file.</a></p>
<table class="memberdecls">
<tr><td colspan="2"><h2><a name="nested-classes"></a>
Classes</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpsimpl_1_1util_1_1scoped__array.html">psimpl::util::scoped_array&lt; T &gt;</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">A smart pointer for holding a dynamically allocated array. <a href="classpsimpl_1_1util_1_1scoped__array.html#details">More...</a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structpsimpl_1_1math_1_1_statistics.html">psimpl::math::Statistics</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">POD structure for storing several statistical values. <a href="structpsimpl_1_1math_1_1_statistics.html#details">More...</a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpsimpl_1_1_polyline_simplification.html">psimpl::PolylineSimplification&lt; DIM, InputIterator, OutputIterator &gt;</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Provides various simplification algorithms for n-dimensional simple polylines. <a href="classpsimpl_1_1_polyline_simplification.html#details">More...</a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpsimpl_1_1_polyline_simplification_1_1_d_p_helper.html">psimpl::PolylineSimplification&lt; DIM, InputIterator, OutputIterator &gt;::DPHelper</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Douglas-Peucker approximation helper class. <a href="classpsimpl_1_1_polyline_simplification_1_1_d_p_helper.html#details">More...</a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structpsimpl_1_1_polyline_simplification_1_1_d_p_helper_1_1_sub_poly.html">psimpl::PolylineSimplification&lt; DIM, InputIterator, OutputIterator &gt;::DPHelper::SubPoly</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Defines a sub polyline. <a href="structpsimpl_1_1_polyline_simplification_1_1_d_p_helper_1_1_sub_poly.html#details">More...</a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structpsimpl_1_1_polyline_simplification_1_1_d_p_helper_1_1_key_info.html">psimpl::PolylineSimplification&lt; DIM, InputIterator, OutputIterator &gt;::DPHelper::KeyInfo</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Defines the key of a polyline. <a href="structpsimpl_1_1_polyline_simplification_1_1_d_p_helper_1_1_key_info.html#details">More...</a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structpsimpl_1_1_polyline_simplification_1_1_d_p_helper_1_1_sub_poly_alt.html">psimpl::PolylineSimplification&lt; DIM, InputIterator, OutputIterator &gt;::DPHelper::SubPolyAlt</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Defines a sub polyline including its key. <a href="structpsimpl_1_1_polyline_simplification_1_1_d_p_helper_1_1_sub_poly_alt.html#details">More...</a><br/></td></tr>
<tr><td colspan="2"><h2><a name="namespaces"></a>
Namespaces</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">namespace &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacepsimpl.html">psimpl</a></td></tr>
<p><tr><td class="mdescLeft">&#160;</td><td class="mdescRight"><p>Root namespace of the polyline simplification library. </p>
<br/></td></tr>
</p>
<tr><td class="memItemLeft" align="right" valign="top">namespace &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacepsimpl_1_1util.html">psimpl::util</a></td></tr>
<p><tr><td class="mdescLeft">&#160;</td><td class="mdescRight"><p>Contains utility functions and classes. </p>
<br/></td></tr>
</p>
<tr><td class="memItemLeft" align="right" valign="top">namespace &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacepsimpl_1_1math.html">psimpl::math</a></td></tr>
<p><tr><td class="mdescLeft">&#160;</td><td class="mdescRight"><p>Contains functions for calculating statistics and distances between various geometric entities. </p>
<br/></td></tr>
</p>
<tr><td colspan="2"><h2><a name="func-members"></a>
Functions</h2></td></tr>
<tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
<tr><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacepsimpl_1_1util.html#ae99d4ca12dc7025d6a31185463d7606d">psimpl::util::swap</a> (scoped_array&lt; T &gt; &amp;a, scoped_array&lt; T &gt; &amp;b)</td></tr>
<tr><td class="memTemplParams" colspan="2">template&lt;unsigned DIM, class InputIterator &gt; </td></tr>
<tr><td class="memTemplItemLeft" align="right" valign="top">bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacepsimpl_1_1math.html#a6b293d2459ba597c933d6fdb68e91b2c">psimpl::math::equal</a> (InputIterator p1, InputIterator p2)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Determines if two points have the exact same coordinates. <a href="#a6b293d2459ba597c933d6fdb68e91b2c"></a><br/></td></tr>
<tr><td class="memTemplParams" colspan="2">template&lt;unsigned DIM, class InputIterator , class OutputIterator &gt; </td></tr>
<tr><td class="memTemplItemLeft" align="right" valign="top">OutputIterator&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacepsimpl_1_1math.html#a10bb3d3d87fa1038d43eee6e5f3fcdda">psimpl::math::make_vector</a> (InputIterator p1, InputIterator p2, OutputIterator result)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Creates a vector from two points. <a href="#a10bb3d3d87fa1038d43eee6e5f3fcdda"></a><br/></td></tr>
<tr><td class="memTemplParams" colspan="2">template&lt;unsigned DIM, class InputIterator &gt; </td></tr>
<tr><td class="memTemplItemLeft" align="right" valign="top">std::iterator_traits<br class="typebreak"/>
&lt; InputIterator &gt;::value_type&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacepsimpl_1_1math.html#a26bb15089fdfcfc4560b5a318317bbc4">psimpl::math::dot</a> (InputIterator v1, InputIterator v2)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Computes the dot product of two vectors. <a href="#a26bb15089fdfcfc4560b5a318317bbc4"></a><br/></td></tr>
<tr><td class="memTemplParams" colspan="2">template&lt;unsigned DIM, class InputIterator , class OutputIterator &gt; </td></tr>
<tr><td class="memTemplItemLeft" align="right" valign="top">OutputIterator&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacepsimpl_1_1math.html#a87a753961c7742b6c48b4f66a0fea697">psimpl::math::interpolate</a> (InputIterator p1, InputIterator p2, float fraction, OutputIterator result)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Peforms linear interpolation between two points. <a href="#a87a753961c7742b6c48b4f66a0fea697"></a><br/></td></tr>
<tr><td class="memTemplParams" colspan="2">template&lt;unsigned DIM, class InputIterator1 , class InputIterator2 &gt; </td></tr>
<tr><td class="memTemplItemLeft" align="right" valign="top">std::iterator_traits<br class="typebreak"/>
&lt; InputIterator1 &gt;::value_type&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacepsimpl_1_1math.html#ab995b6d68caf4d43172a0de6ee363eb0">psimpl::math::point_distance2</a> (InputIterator1 p1, InputIterator2 p2)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Computes the squared distance of two points. <a href="#ab995b6d68caf4d43172a0de6ee363eb0"></a><br/></td></tr>
<tr><td class="memTemplParams" colspan="2">template&lt;unsigned DIM, class InputIterator &gt; </td></tr>
<tr><td class="memTemplItemLeft" align="right" valign="top">std::iterator_traits<br class="typebreak"/>
&lt; InputIterator &gt;::value_type&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacepsimpl_1_1math.html#ace5d8a6b9ca11eeadd9d13e451651996">psimpl::math::line_distance2</a> (InputIterator l1, InputIterator l2, InputIterator p)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Computes the squared distance between an infinite line (l1, l2) and a point p. <a href="#ace5d8a6b9ca11eeadd9d13e451651996"></a><br/></td></tr>
<tr><td class="memTemplParams" colspan="2">template&lt;unsigned DIM, class InputIterator &gt; </td></tr>
<tr><td class="memTemplItemLeft" align="right" valign="top">std::iterator_traits<br class="typebreak"/>
&lt; InputIterator &gt;::value_type&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacepsimpl_1_1math.html#a4f3ff418f290d1125622c2388ab976d0">psimpl::math::segment_distance2</a> (InputIterator s1, InputIterator s2, InputIterator p)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Computes the squared distance between a line segment (s1, s2) and a point p. <a href="#a4f3ff418f290d1125622c2388ab976d0"></a><br/></td></tr>
<tr><td class="memTemplParams" colspan="2">template&lt;unsigned DIM, class InputIterator &gt; </td></tr>
<tr><td class="memTemplItemLeft" align="right" valign="top">std::iterator_traits<br class="typebreak"/>
&lt; InputIterator &gt;::value_type&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacepsimpl_1_1math.html#a4b9426204b9964b859b059cc7fbce61a">psimpl::math::ray_distance2</a> (InputIterator r1, InputIterator r2, InputIterator p)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Computes the squared distance between a ray (r1, r2) and a point p. <a href="#a4b9426204b9964b859b059cc7fbce61a"></a><br/></td></tr>
<tr><td class="memTemplParams" colspan="2">template&lt;class InputIterator &gt; </td></tr>
<tr><td class="memTemplItemLeft" align="right" valign="top">Statistics&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacepsimpl_1_1math.html#ab162cc6f5efcf619c7327b45c793c969">psimpl::math::compute_statistics</a> (InputIterator first, InputIterator last)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Computes various statistics for the range [first, last) <a href="#ab162cc6f5efcf619c7327b45c793c969"></a><br/></td></tr>
<tr><td class="memTemplParams" colspan="2">template&lt;unsigned DIM, class ForwardIterator , class OutputIterator &gt; </td></tr>
<tr><td class="memTemplItemLeft" align="right" valign="top">OutputIterator&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacepsimpl.html#a1a805a9e3eef7ca46bffae71a8b49dc0">psimpl::simplify_nth_point</a> (ForwardIterator first, ForwardIterator last, unsigned n, OutputIterator result)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Performs the nth point routine (NP). <a href="#a1a805a9e3eef7ca46bffae71a8b49dc0"></a><br/></td></tr>
<tr><td class="memTemplParams" colspan="2">template&lt;unsigned DIM, class ForwardIterator , class OutputIterator &gt; </td></tr>
<tr><td class="memTemplItemLeft" align="right" valign="top">OutputIterator&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacepsimpl.html#a12f4b63e11188c5293fe3effabbfba31">psimpl::simplify_radial_distance</a> (ForwardIterator first, ForwardIterator last, typename std::iterator_traits&lt; ForwardIterator &gt;::value_type tol, OutputIterator result)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Performs the (radial) distance between points routine (RD). <a href="#a12f4b63e11188c5293fe3effabbfba31"></a><br/></td></tr>
<tr><td class="memTemplParams" colspan="2">template&lt;unsigned DIM, class ForwardIterator , class OutputIterator &gt; </td></tr>
<tr><td class="memTemplItemLeft" align="right" valign="top">OutputIterator&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacepsimpl.html#aa8c86b0f1529d529fc2ff84d09b00101">psimpl::simplify_perpendicular_distance</a> (ForwardIterator first, ForwardIterator last, typename std::iterator_traits&lt; ForwardIterator &gt;::value_type tol, unsigned repeat, OutputIterator result)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Repeatedly performs the perpendicular distance routine (PD). <a href="#aa8c86b0f1529d529fc2ff84d09b00101"></a><br/></td></tr>
<tr><td class="memTemplParams" colspan="2">template&lt;unsigned DIM, class ForwardIterator , class OutputIterator &gt; </td></tr>
<tr><td class="memTemplItemLeft" align="right" valign="top">OutputIterator&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacepsimpl.html#a71a8cbb4f1ebd41a5897c8174bdf8617">psimpl::simplify_perpendicular_distance</a> (ForwardIterator first, ForwardIterator last, typename std::iterator_traits&lt; ForwardIterator &gt;::value_type tol, OutputIterator result)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Performs the perpendicular distance routine (PD). <a href="#a71a8cbb4f1ebd41a5897c8174bdf8617"></a><br/></td></tr>
<tr><td class="memTemplParams" colspan="2">template&lt;unsigned DIM, class ForwardIterator , class OutputIterator &gt; </td></tr>
<tr><td class="memTemplItemLeft" align="right" valign="top">OutputIterator&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacepsimpl.html#a0ae1a1e3ada43f9791ac6ac36df5fdf7">psimpl::simplify_reumann_witkam</a> (ForwardIterator first, ForwardIterator last, typename std::iterator_traits&lt; ForwardIterator &gt;::value_type tol, OutputIterator result)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Performs Reumann-Witkam polyline simplification (RW). <a href="#a0ae1a1e3ada43f9791ac6ac36df5fdf7"></a><br/></td></tr>
<tr><td class="memTemplParams" colspan="2">template&lt;unsigned DIM, class ForwardIterator , class OutputIterator &gt; </td></tr>
<tr><td class="memTemplItemLeft" align="right" valign="top">OutputIterator&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacepsimpl.html#a433d47ec86872f64bdc2bc792e6444ca">psimpl::simplify_opheim</a> (ForwardIterator first, ForwardIterator last, typename std::iterator_traits&lt; ForwardIterator &gt;::value_type min_tol, typename std::iterator_traits&lt; ForwardIterator &gt;::value_type max_tol, OutputIterator result)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Performs Opheim polyline simplification (OP). <a href="#a433d47ec86872f64bdc2bc792e6444ca"></a><br/></td></tr>
<tr><td class="memTemplParams" colspan="2">template&lt;unsigned DIM, class BidirectionalIterator , class OutputIterator &gt; </td></tr>
<tr><td class="memTemplItemLeft" align="right" valign="top">OutputIterator&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacepsimpl.html#a241debcb1ad56aa1046f4a4996922411">psimpl::simplify_lang</a> (BidirectionalIterator first, BidirectionalIterator last, typename std::iterator_traits&lt; BidirectionalIterator &gt;::value_type tol, unsigned look_ahead, OutputIterator result)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Performs Lang polyline simplification (LA). <a href="#a241debcb1ad56aa1046f4a4996922411"></a><br/></td></tr>
<tr><td class="memTemplParams" colspan="2">template&lt;unsigned DIM, class ForwardIterator , class OutputIterator &gt; </td></tr>
<tr><td class="memTemplItemLeft" align="right" valign="top">OutputIterator&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacepsimpl.html#ab71cedd762eee4006a85f4321fca6cad">psimpl::simplify_douglas_peucker</a> (ForwardIterator first, ForwardIterator last, typename std::iterator_traits&lt; ForwardIterator &gt;::value_type tol, OutputIterator result)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Performs Douglas-Peucker polyline simplification (DP). <a href="#ab71cedd762eee4006a85f4321fca6cad"></a><br/></td></tr>
<tr><td class="memTemplParams" colspan="2">template&lt;unsigned DIM, class ForwardIterator , class OutputIterator &gt; </td></tr>
<tr><td class="memTemplItemLeft" align="right" valign="top">OutputIterator&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacepsimpl.html#aeff1b138293ca9cfb855d7e1f69dacf5">psimpl::simplify_douglas_peucker_n</a> (ForwardIterator first, ForwardIterator last, unsigned count, OutputIterator result)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Performs a variant of Douglas-Peucker polyline simplification (DPn). <a href="#aeff1b138293ca9cfb855d7e1f69dacf5"></a><br/></td></tr>
<tr><td class="memTemplParams" colspan="2">template&lt;unsigned DIM, class ForwardIterator , class OutputIterator &gt; </td></tr>
<tr><td class="memTemplItemLeft" align="right" valign="top">OutputIterator&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacepsimpl.html#a187709033361ba469a60c3a848328118">psimpl::compute_positional_errors2</a> (ForwardIterator original_first, ForwardIterator original_last, ForwardIterator simplified_first, ForwardIterator simplified_last, OutputIterator result, bool *valid=0)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Computes the squared positional error between a polyline and its simplification. <a href="#a187709033361ba469a60c3a848328118"></a><br/></td></tr>
<tr><td class="memTemplParams" colspan="2">template&lt;unsigned DIM, class ForwardIterator &gt; </td></tr>
<tr><td class="memTemplItemLeft" align="right" valign="top">math::Statistics&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacepsimpl.html#a16418e391940b20609bc48289e7222a4">psimpl::compute_positional_error_statistics</a> (ForwardIterator original_first, ForwardIterator original_last, ForwardIterator simplified_first, ForwardIterator simplified_last, bool *valid=0)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Computes statistics for the positional errors between a polyline and its simplification. <a href="#a16418e391940b20609bc48289e7222a4"></a><br/></td></tr>
</table>
</div>
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="psimpl_8h.html">psimpl.h</a> </li>
<li class="footer">Generated on Fri Jun 24 2011 14:56:29 for psimpl by&#160;
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.4 </li>
</ul>
</div>
</body>
</html>

File diff suppressed because it is too large Load Diff

Binary file not shown.

After

Width:  |  Height:  |  Size: 33 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 25 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 26 KiB

View File

@ -0,0 +1,81 @@
var cookie_namespace = 'doxygen';
var sidenav,navtree,content,header;
function readCookie(cookie)
{
var myCookie = cookie_namespace+"_"+cookie+"=";
if (document.cookie)
{
var index = document.cookie.indexOf(myCookie);
if (index != -1)
{
var valStart = index + myCookie.length;
var valEnd = document.cookie.indexOf(";", valStart);
if (valEnd == -1)
{
valEnd = document.cookie.length;
}
var val = document.cookie.substring(valStart, valEnd);
return val;
}
}
return 0;
}
function writeCookie(cookie, val, expiration)
{
if (val==undefined) return;
if (expiration == null)
{
var date = new Date();
date.setTime(date.getTime()+(10*365*24*60*60*1000)); // default expiration is one week
expiration = date.toGMTString();
}
document.cookie = cookie_namespace + "_" + cookie + "=" + val + "; expires=" + expiration+"; path=/";
}
function resizeWidth()
{
var windowWidth = $(window).width() + "px";
var sidenavWidth = $(sidenav).width();
content.css({marginLeft:parseInt(sidenavWidth)+6+"px"}); //account for 6px-wide handle-bar
writeCookie('width',sidenavWidth, null);
}
function restoreWidth(navWidth)
{
var windowWidth = $(window).width() + "px";
content.css({marginLeft:parseInt(navWidth)+6+"px"});
sidenav.css({width:navWidth + "px"});
}
function resizeHeight()
{
var headerHeight = header.height();
var footerHeight = footer.height();
var windowHeight = $(window).height() - headerHeight - footerHeight;
content.css({height:windowHeight + "px"});
navtree.css({height:windowHeight + "px"});
sidenav.css({height:windowHeight + "px",top: headerHeight+"px"});
}
function initResizable()
{
header = $("#top");
sidenav = $("#side-nav");
content = $("#doc-content");
navtree = $("#nav-tree");
footer = $("#nav-path");
$(".side-nav-resizable").resizable({resize: function(e, ui) { resizeWidth(); } });
$(window).resize(function() { resizeHeight(); });
var width = readCookie('width');
if (width) { restoreWidth(width); } else { resizeWidth(); }
resizeHeight();
var url = location.href;
var i=url.indexOf("#");
if (i>=0) window.location.hash=url.substr(i);
var _preventDefault = function(evt) { evt.preventDefault(); };
$("#splitbar").bind("dragstart", _preventDefault).bind("selectstart", _preventDefault);
}

View File

@ -0,0 +1,80 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<title>psimpl: Member List</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript">
$(document).ready(initResizable);
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<!-- Generated by Doxygen 1.7.4 -->
<div id="top">
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td style="padding-left: 0.5em;">
<div id="projectname">psimpl&#160;<span id="projectnumber">7</span></div>
</td>
</tr>
</tbody>
</table>
</div>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="namespaces.html"><span>Namespaces</span></a></li>
<li class="current"><a href="annotated.html"><span>Classes</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
<li><a href="dirs.html"><span>Directories</span></a></li>
</ul>
</div>
<div id="navrow2" class="tabs2">
<ul class="tablist">
<li><a href="annotated.html"><span>Class&#160;List</span></a></li>
<li><a href="classes.html"><span>Class&#160;Index</span></a></li>
<li><a href="functions.html"><span>Class&#160;Members</span></a></li>
</ul>
</div>
</div>
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
initNavTree('structpsimpl_1_1_polyline_simplification_1_1_d_p_helper_1_1_key_info.html','');
</script>
<div id="doc-content">
<div class="header">
<div class="headertitle">
<div class="title">psimpl::PolylineSimplification&lt; DIM, InputIterator, OutputIterator &gt;::DPHelper::KeyInfo Member List</div> </div>
</div>
<div class="contents">
This is the complete list of members for <a class="el" href="structpsimpl_1_1_polyline_simplification_1_1_d_p_helper_1_1_key_info.html">psimpl::PolylineSimplification&lt; DIM, InputIterator, OutputIterator &gt;::DPHelper::KeyInfo</a>, including all inherited members.<table>
<tr class="memlist"><td><a class="el" href="structpsimpl_1_1_polyline_simplification_1_1_d_p_helper_1_1_key_info.html#a18fc8b4698754902fa697d9ea92629f4">dist2</a></td><td><a class="el" href="structpsimpl_1_1_polyline_simplification_1_1_d_p_helper_1_1_key_info.html">psimpl::PolylineSimplification&lt; DIM, InputIterator, OutputIterator &gt;::DPHelper::KeyInfo</a></td><td></td></tr>
<tr class="memlist"><td><a class="el" href="structpsimpl_1_1_polyline_simplification_1_1_d_p_helper_1_1_key_info.html#aa4ea63f0cb9abd4c7001d3f835a47ae4">index</a></td><td><a class="el" href="structpsimpl_1_1_polyline_simplification_1_1_d_p_helper_1_1_key_info.html">psimpl::PolylineSimplification&lt; DIM, InputIterator, OutputIterator &gt;::DPHelper::KeyInfo</a></td><td></td></tr>
<tr class="memlist"><td><a class="el" href="structpsimpl_1_1_polyline_simplification_1_1_d_p_helper_1_1_key_info.html#ae9db44331df497b0e20e97f7b1a93491">KeyInfo</a>(ptr_diff_type index=0, value_type dist2=0)</td><td><a class="el" href="structpsimpl_1_1_polyline_simplification_1_1_d_p_helper_1_1_key_info.html">psimpl::PolylineSimplification&lt; DIM, InputIterator, OutputIterator &gt;::DPHelper::KeyInfo</a></td><td><code> [inline]</code></td></tr>
</table></div>
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="footer">Generated on Fri Jun 24 2011 14:56:29 for psimpl by&#160;
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.4 </li>
</ul>
</div>
</body>
</html>

View File

@ -0,0 +1,169 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<title>psimpl: psimpl::PolylineSimplification&lt; DIM, InputIterator, OutputIterator &gt;::DPHelper::KeyInfo Struct Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript">
$(document).ready(initResizable);
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<!-- Generated by Doxygen 1.7.4 -->
<div id="top">
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td style="padding-left: 0.5em;">
<div id="projectname">psimpl&#160;<span id="projectnumber">7</span></div>
</td>
</tr>
</tbody>
</table>
</div>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="namespaces.html"><span>Namespaces</span></a></li>
<li class="current"><a href="annotated.html"><span>Classes</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
<li><a href="dirs.html"><span>Directories</span></a></li>
</ul>
</div>
<div id="navrow2" class="tabs2">
<ul class="tablist">
<li><a href="annotated.html"><span>Class&#160;List</span></a></li>
<li><a href="classes.html"><span>Class&#160;Index</span></a></li>
<li><a href="functions.html"><span>Class&#160;Members</span></a></li>
</ul>
</div>
</div>
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
initNavTree('structpsimpl_1_1_polyline_simplification_1_1_d_p_helper_1_1_key_info.html','');
</script>
<div id="doc-content">
<div class="header">
<div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="#pub-attribs">Public Attributes</a> </div>
<div class="headertitle">
<div class="title">psimpl::PolylineSimplification&lt; DIM, InputIterator, OutputIterator &gt;::DPHelper::KeyInfo Struct Reference</div> </div>
</div>
<div class="contents">
<!-- doxytag: class="psimpl::PolylineSimplification::DPHelper::KeyInfo" -->
<p>Defines the key of a polyline.
<a href="structpsimpl_1_1_polyline_simplification_1_1_d_p_helper_1_1_key_info.html#details">More...</a></p>
<p><a href="structpsimpl_1_1_polyline_simplification_1_1_d_p_helper_1_1_key_info-members.html">List of all members.</a></p>
<table class="memberdecls">
<tr><td colspan="2"><h2><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structpsimpl_1_1_polyline_simplification_1_1_d_p_helper_1_1_key_info.html#ae9db44331df497b0e20e97f7b1a93491">KeyInfo</a> (<a class="el" href="classpsimpl_1_1_polyline_simplification.html#a08f998ecc4af984c070603b489b3ce28">ptr_diff_type</a> <a class="el" href="structpsimpl_1_1_polyline_simplification_1_1_d_p_helper_1_1_key_info.html#aa4ea63f0cb9abd4c7001d3f835a47ae4">index</a>=0, <a class="el" href="classpsimpl_1_1_polyline_simplification.html#aacad79ca2e6dc004483838f460ab8df1">value_type</a> <a class="el" href="structpsimpl_1_1_polyline_simplification_1_1_d_p_helper_1_1_key_info.html#a18fc8b4698754902fa697d9ea92629f4">dist2</a>=0)</td></tr>
<tr><td colspan="2"><h2><a name="pub-attribs"></a>
Public Attributes</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classpsimpl_1_1_polyline_simplification.html#a08f998ecc4af984c070603b489b3ce28">ptr_diff_type</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structpsimpl_1_1_polyline_simplification_1_1_d_p_helper_1_1_key_info.html#aa4ea63f0cb9abd4c7001d3f835a47ae4">index</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classpsimpl_1_1_polyline_simplification.html#aacad79ca2e6dc004483838f460ab8df1">value_type</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structpsimpl_1_1_polyline_simplification_1_1_d_p_helper_1_1_key_info.html#a18fc8b4698754902fa697d9ea92629f4">dist2</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">coord index of the key <a href="#a18fc8b4698754902fa697d9ea92629f4"></a><br/></td></tr>
</table>
<hr/><a name="details" id="details"></a><h2>Detailed Description</h2>
<div class="textblock"><h3>template&lt;unsigned DIM, class InputIterator, class OutputIterator&gt;<br/>
struct psimpl::PolylineSimplification&lt; DIM, InputIterator, OutputIterator &gt;::DPHelper::KeyInfo</h3>
<p>Defines the key of a polyline. </p>
</div><hr/><h2>Constructor &amp; Destructor Documentation</h2>
<a class="anchor" id="ae9db44331df497b0e20e97f7b1a93491"></a><!-- doxytag: member="psimpl::PolylineSimplification::DPHelper::KeyInfo::KeyInfo" ref="ae9db44331df497b0e20e97f7b1a93491" args="(ptr_diff_type index=0, value_type dist2=0)" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;unsigned DIM, class InputIterator, class OutputIterator&gt; </div>
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classpsimpl_1_1_polyline_simplification.html">psimpl::PolylineSimplification</a>&lt; DIM, InputIterator, OutputIterator &gt;::DPHelper::KeyInfo::KeyInfo </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classpsimpl_1_1_polyline_simplification.html#a08f998ecc4af984c070603b489b3ce28">ptr_diff_type</a>&#160;</td>
<td class="paramname"><em>index</em> = <code>0</code>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="classpsimpl_1_1_polyline_simplification.html#aacad79ca2e6dc004483838f460ab8df1">value_type</a>&#160;</td>
<td class="paramname"><em>dist2</em> = <code>0</code>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td><code> [inline]</code></td>
</tr>
</table>
</div>
<div class="memdoc">
</div>
</div>
<hr/><h2>Member Data Documentation</h2>
<a class="anchor" id="a18fc8b4698754902fa697d9ea92629f4"></a><!-- doxytag: member="psimpl::PolylineSimplification::DPHelper::KeyInfo::dist2" ref="a18fc8b4698754902fa697d9ea92629f4" args="" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;unsigned DIM, class InputIterator, class OutputIterator&gt; </div>
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classpsimpl_1_1_polyline_simplification.html#aacad79ca2e6dc004483838f460ab8df1">value_type</a> <a class="el" href="classpsimpl_1_1_polyline_simplification.html">psimpl::PolylineSimplification</a>&lt; DIM, InputIterator, OutputIterator &gt;::<a class="el" href="structpsimpl_1_1_polyline_simplification_1_1_d_p_helper_1_1_key_info.html#a18fc8b4698754902fa697d9ea92629f4">DPHelper::KeyInfo::dist2</a></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>coord index of the key </p>
</div>
</div>
<a class="anchor" id="aa4ea63f0cb9abd4c7001d3f835a47ae4"></a><!-- doxytag: member="psimpl::PolylineSimplification::DPHelper::KeyInfo::index" ref="aa4ea63f0cb9abd4c7001d3f835a47ae4" args="" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;unsigned DIM, class InputIterator, class OutputIterator&gt; </div>
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classpsimpl_1_1_polyline_simplification.html#a08f998ecc4af984c070603b489b3ce28">ptr_diff_type</a> <a class="el" href="classpsimpl_1_1_polyline_simplification.html">psimpl::PolylineSimplification</a>&lt; DIM, InputIterator, OutputIterator &gt;::<a class="el" href="structpsimpl_1_1_polyline_simplification_1_1_d_p_helper_1_1_key_info.html#aa4ea63f0cb9abd4c7001d3f835a47ae4">DPHelper::KeyInfo::index</a></td>
</tr>
</table>
</div>
<div class="memdoc">
</div>
</div>
<hr/>The documentation for this struct was generated from the following file:<ul>
<li>D:/Code/Projects/psimpl/trunk/lib/<a class="el" href="psimpl_8h_source.html">psimpl.h</a></li>
</ul>
</div>
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="namespacepsimpl.html">psimpl</a> </li>
<li class="navelem"><a class="el" href="classpsimpl_1_1_polyline_simplification.html">PolylineSimplification</a> </li>
<li class="navelem"><a class="el" href="classpsimpl_1_1_polyline_simplification_1_1_d_p_helper.html">DPHelper</a> </li>
<li class="navelem"><a class="el" href="structpsimpl_1_1_polyline_simplification_1_1_d_p_helper_1_1_key_info.html">KeyInfo</a> </li>
<li class="footer">Generated on Fri Jun 24 2011 14:56:29 for psimpl by&#160;
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.4 </li>
</ul>
</div>
</body>
</html>

View File

@ -0,0 +1,80 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<title>psimpl: Member List</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript">
$(document).ready(initResizable);
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<!-- Generated by Doxygen 1.7.4 -->
<div id="top">
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td style="padding-left: 0.5em;">
<div id="projectname">psimpl&#160;<span id="projectnumber">7</span></div>
</td>
</tr>
</tbody>
</table>
</div>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="namespaces.html"><span>Namespaces</span></a></li>
<li class="current"><a href="annotated.html"><span>Classes</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
<li><a href="dirs.html"><span>Directories</span></a></li>
</ul>
</div>
<div id="navrow2" class="tabs2">
<ul class="tablist">
<li><a href="annotated.html"><span>Class&#160;List</span></a></li>
<li><a href="classes.html"><span>Class&#160;Index</span></a></li>
<li><a href="functions.html"><span>Class&#160;Members</span></a></li>
</ul>
</div>
</div>
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
initNavTree('structpsimpl_1_1_polyline_simplification_1_1_d_p_helper_1_1_sub_poly.html','');
</script>
<div id="doc-content">
<div class="header">
<div class="headertitle">
<div class="title">psimpl::PolylineSimplification&lt; DIM, InputIterator, OutputIterator &gt;::DPHelper::SubPoly Member List</div> </div>
</div>
<div class="contents">
This is the complete list of members for <a class="el" href="structpsimpl_1_1_polyline_simplification_1_1_d_p_helper_1_1_sub_poly.html">psimpl::PolylineSimplification&lt; DIM, InputIterator, OutputIterator &gt;::DPHelper::SubPoly</a>, including all inherited members.<table>
<tr class="memlist"><td><a class="el" href="structpsimpl_1_1_polyline_simplification_1_1_d_p_helper_1_1_sub_poly.html#a6e072a2f6fe795c72870b498ec96e564">first</a></td><td><a class="el" href="structpsimpl_1_1_polyline_simplification_1_1_d_p_helper_1_1_sub_poly.html">psimpl::PolylineSimplification&lt; DIM, InputIterator, OutputIterator &gt;::DPHelper::SubPoly</a></td><td></td></tr>
<tr class="memlist"><td><a class="el" href="structpsimpl_1_1_polyline_simplification_1_1_d_p_helper_1_1_sub_poly.html#a6f1943bf7fcd5349e9d312a222804688">last</a></td><td><a class="el" href="structpsimpl_1_1_polyline_simplification_1_1_d_p_helper_1_1_sub_poly.html">psimpl::PolylineSimplification&lt; DIM, InputIterator, OutputIterator &gt;::DPHelper::SubPoly</a></td><td></td></tr>
<tr class="memlist"><td><a class="el" href="structpsimpl_1_1_polyline_simplification_1_1_d_p_helper_1_1_sub_poly.html#a77018563df501cf3b4ef79d921086314">SubPoly</a>(ptr_diff_type first=0, ptr_diff_type last=0)</td><td><a class="el" href="structpsimpl_1_1_polyline_simplification_1_1_d_p_helper_1_1_sub_poly.html">psimpl::PolylineSimplification&lt; DIM, InputIterator, OutputIterator &gt;::DPHelper::SubPoly</a></td><td><code> [inline]</code></td></tr>
</table></div>
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="footer">Generated on Fri Jun 24 2011 14:56:29 for psimpl by&#160;
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.4 </li>
</ul>
</div>
</body>
</html>

View File

@ -0,0 +1,169 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<title>psimpl: psimpl::PolylineSimplification&lt; DIM, InputIterator, OutputIterator &gt;::DPHelper::SubPoly Struct Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript">
$(document).ready(initResizable);
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<!-- Generated by Doxygen 1.7.4 -->
<div id="top">
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td style="padding-left: 0.5em;">
<div id="projectname">psimpl&#160;<span id="projectnumber">7</span></div>
</td>
</tr>
</tbody>
</table>
</div>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="namespaces.html"><span>Namespaces</span></a></li>
<li class="current"><a href="annotated.html"><span>Classes</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
<li><a href="dirs.html"><span>Directories</span></a></li>
</ul>
</div>
<div id="navrow2" class="tabs2">
<ul class="tablist">
<li><a href="annotated.html"><span>Class&#160;List</span></a></li>
<li><a href="classes.html"><span>Class&#160;Index</span></a></li>
<li><a href="functions.html"><span>Class&#160;Members</span></a></li>
</ul>
</div>
</div>
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
initNavTree('structpsimpl_1_1_polyline_simplification_1_1_d_p_helper_1_1_sub_poly.html','');
</script>
<div id="doc-content">
<div class="header">
<div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="#pub-attribs">Public Attributes</a> </div>
<div class="headertitle">
<div class="title">psimpl::PolylineSimplification&lt; DIM, InputIterator, OutputIterator &gt;::DPHelper::SubPoly Struct Reference</div> </div>
</div>
<div class="contents">
<!-- doxytag: class="psimpl::PolylineSimplification::DPHelper::SubPoly" -->
<p>Defines a sub polyline.
<a href="structpsimpl_1_1_polyline_simplification_1_1_d_p_helper_1_1_sub_poly.html#details">More...</a></p>
<p><a href="structpsimpl_1_1_polyline_simplification_1_1_d_p_helper_1_1_sub_poly-members.html">List of all members.</a></p>
<table class="memberdecls">
<tr><td colspan="2"><h2><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structpsimpl_1_1_polyline_simplification_1_1_d_p_helper_1_1_sub_poly.html#a77018563df501cf3b4ef79d921086314">SubPoly</a> (<a class="el" href="classpsimpl_1_1_polyline_simplification.html#a08f998ecc4af984c070603b489b3ce28">ptr_diff_type</a> <a class="el" href="structpsimpl_1_1_polyline_simplification_1_1_d_p_helper_1_1_sub_poly.html#a6e072a2f6fe795c72870b498ec96e564">first</a>=0, <a class="el" href="classpsimpl_1_1_polyline_simplification.html#a08f998ecc4af984c070603b489b3ce28">ptr_diff_type</a> <a class="el" href="structpsimpl_1_1_polyline_simplification_1_1_d_p_helper_1_1_sub_poly.html#a6f1943bf7fcd5349e9d312a222804688">last</a>=0)</td></tr>
<tr><td colspan="2"><h2><a name="pub-attribs"></a>
Public Attributes</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classpsimpl_1_1_polyline_simplification.html#a08f998ecc4af984c070603b489b3ce28">ptr_diff_type</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structpsimpl_1_1_polyline_simplification_1_1_d_p_helper_1_1_sub_poly.html#a6e072a2f6fe795c72870b498ec96e564">first</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classpsimpl_1_1_polyline_simplification.html#a08f998ecc4af984c070603b489b3ce28">ptr_diff_type</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structpsimpl_1_1_polyline_simplification_1_1_d_p_helper_1_1_sub_poly.html#a6f1943bf7fcd5349e9d312a222804688">last</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">coord index of the first point <a href="#a6f1943bf7fcd5349e9d312a222804688"></a><br/></td></tr>
</table>
<hr/><a name="details" id="details"></a><h2>Detailed Description</h2>
<div class="textblock"><h3>template&lt;unsigned DIM, class InputIterator, class OutputIterator&gt;<br/>
struct psimpl::PolylineSimplification&lt; DIM, InputIterator, OutputIterator &gt;::DPHelper::SubPoly</h3>
<p>Defines a sub polyline. </p>
</div><hr/><h2>Constructor &amp; Destructor Documentation</h2>
<a class="anchor" id="a77018563df501cf3b4ef79d921086314"></a><!-- doxytag: member="psimpl::PolylineSimplification::DPHelper::SubPoly::SubPoly" ref="a77018563df501cf3b4ef79d921086314" args="(ptr_diff_type first=0, ptr_diff_type last=0)" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;unsigned DIM, class InputIterator, class OutputIterator&gt; </div>
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classpsimpl_1_1_polyline_simplification.html">psimpl::PolylineSimplification</a>&lt; DIM, InputIterator, OutputIterator &gt;::DPHelper::SubPoly::SubPoly </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classpsimpl_1_1_polyline_simplification.html#a08f998ecc4af984c070603b489b3ce28">ptr_diff_type</a>&#160;</td>
<td class="paramname"><em>first</em> = <code>0</code>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="classpsimpl_1_1_polyline_simplification.html#a08f998ecc4af984c070603b489b3ce28">ptr_diff_type</a>&#160;</td>
<td class="paramname"><em>last</em> = <code>0</code>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td><code> [inline]</code></td>
</tr>
</table>
</div>
<div class="memdoc">
</div>
</div>
<hr/><h2>Member Data Documentation</h2>
<a class="anchor" id="a6e072a2f6fe795c72870b498ec96e564"></a><!-- doxytag: member="psimpl::PolylineSimplification::DPHelper::SubPoly::first" ref="a6e072a2f6fe795c72870b498ec96e564" args="" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;unsigned DIM, class InputIterator, class OutputIterator&gt; </div>
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classpsimpl_1_1_polyline_simplification.html#a08f998ecc4af984c070603b489b3ce28">ptr_diff_type</a> <a class="el" href="classpsimpl_1_1_polyline_simplification.html">psimpl::PolylineSimplification</a>&lt; DIM, InputIterator, OutputIterator &gt;::<a class="el" href="structpsimpl_1_1_polyline_simplification_1_1_d_p_helper_1_1_sub_poly.html#a6e072a2f6fe795c72870b498ec96e564">DPHelper::SubPoly::first</a></td>
</tr>
</table>
</div>
<div class="memdoc">
</div>
</div>
<a class="anchor" id="a6f1943bf7fcd5349e9d312a222804688"></a><!-- doxytag: member="psimpl::PolylineSimplification::DPHelper::SubPoly::last" ref="a6f1943bf7fcd5349e9d312a222804688" args="" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;unsigned DIM, class InputIterator, class OutputIterator&gt; </div>
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classpsimpl_1_1_polyline_simplification.html#a08f998ecc4af984c070603b489b3ce28">ptr_diff_type</a> <a class="el" href="classpsimpl_1_1_polyline_simplification.html">psimpl::PolylineSimplification</a>&lt; DIM, InputIterator, OutputIterator &gt;::<a class="el" href="structpsimpl_1_1_polyline_simplification_1_1_d_p_helper_1_1_sub_poly.html#a6f1943bf7fcd5349e9d312a222804688">DPHelper::SubPoly::last</a></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>coord index of the first point </p>
</div>
</div>
<hr/>The documentation for this struct was generated from the following file:<ul>
<li>D:/Code/Projects/psimpl/trunk/lib/<a class="el" href="psimpl_8h_source.html">psimpl.h</a></li>
</ul>
</div>
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="namespacepsimpl.html">psimpl</a> </li>
<li class="navelem"><a class="el" href="classpsimpl_1_1_polyline_simplification.html">PolylineSimplification</a> </li>
<li class="navelem"><a class="el" href="classpsimpl_1_1_polyline_simplification_1_1_d_p_helper.html">DPHelper</a> </li>
<li class="navelem"><a class="el" href="structpsimpl_1_1_polyline_simplification_1_1_d_p_helper_1_1_sub_poly.html">SubPoly</a> </li>
<li class="footer">Generated on Fri Jun 24 2011 14:56:29 for psimpl by&#160;
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.4 </li>
</ul>
</div>
</body>
</html>

View File

@ -0,0 +1,82 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<title>psimpl: Member List</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript">
$(document).ready(initResizable);
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<!-- Generated by Doxygen 1.7.4 -->
<div id="top">
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td style="padding-left: 0.5em;">
<div id="projectname">psimpl&#160;<span id="projectnumber">7</span></div>
</td>
</tr>
</tbody>
</table>
</div>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="namespaces.html"><span>Namespaces</span></a></li>
<li class="current"><a href="annotated.html"><span>Classes</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
<li><a href="dirs.html"><span>Directories</span></a></li>
</ul>
</div>
<div id="navrow2" class="tabs2">
<ul class="tablist">
<li><a href="annotated.html"><span>Class&#160;List</span></a></li>
<li><a href="classes.html"><span>Class&#160;Index</span></a></li>
<li><a href="functions.html"><span>Class&#160;Members</span></a></li>
</ul>
</div>
</div>
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
initNavTree('structpsimpl_1_1_polyline_simplification_1_1_d_p_helper_1_1_sub_poly_alt.html','');
</script>
<div id="doc-content">
<div class="header">
<div class="headertitle">
<div class="title">psimpl::PolylineSimplification&lt; DIM, InputIterator, OutputIterator &gt;::DPHelper::SubPolyAlt Member List</div> </div>
</div>
<div class="contents">
This is the complete list of members for <a class="el" href="structpsimpl_1_1_polyline_simplification_1_1_d_p_helper_1_1_sub_poly_alt.html">psimpl::PolylineSimplification&lt; DIM, InputIterator, OutputIterator &gt;::DPHelper::SubPolyAlt</a>, including all inherited members.<table>
<tr class="memlist"><td><a class="el" href="structpsimpl_1_1_polyline_simplification_1_1_d_p_helper_1_1_sub_poly_alt.html#a92345917355c59fbc19704c01a4bfa2d">first</a></td><td><a class="el" href="structpsimpl_1_1_polyline_simplification_1_1_d_p_helper_1_1_sub_poly_alt.html">psimpl::PolylineSimplification&lt; DIM, InputIterator, OutputIterator &gt;::DPHelper::SubPolyAlt</a></td><td></td></tr>
<tr class="memlist"><td><a class="el" href="structpsimpl_1_1_polyline_simplification_1_1_d_p_helper_1_1_sub_poly_alt.html#afa58fb132744d1a2ba4c7ab4ddbc00fb">keyInfo</a></td><td><a class="el" href="structpsimpl_1_1_polyline_simplification_1_1_d_p_helper_1_1_sub_poly_alt.html">psimpl::PolylineSimplification&lt; DIM, InputIterator, OutputIterator &gt;::DPHelper::SubPolyAlt</a></td><td></td></tr>
<tr class="memlist"><td><a class="el" href="structpsimpl_1_1_polyline_simplification_1_1_d_p_helper_1_1_sub_poly_alt.html#a4b6e337ce1250efd9599b7df99922fcf">last</a></td><td><a class="el" href="structpsimpl_1_1_polyline_simplification_1_1_d_p_helper_1_1_sub_poly_alt.html">psimpl::PolylineSimplification&lt; DIM, InputIterator, OutputIterator &gt;::DPHelper::SubPolyAlt</a></td><td></td></tr>
<tr class="memlist"><td><a class="el" href="structpsimpl_1_1_polyline_simplification_1_1_d_p_helper_1_1_sub_poly_alt.html#a737d39204cbf1d26e4d7dccf267f2bc9">operator&lt;</a>(const SubPolyAlt &amp;other) const </td><td><a class="el" href="structpsimpl_1_1_polyline_simplification_1_1_d_p_helper_1_1_sub_poly_alt.html">psimpl::PolylineSimplification&lt; DIM, InputIterator, OutputIterator &gt;::DPHelper::SubPolyAlt</a></td><td><code> [inline]</code></td></tr>
<tr class="memlist"><td><a class="el" href="structpsimpl_1_1_polyline_simplification_1_1_d_p_helper_1_1_sub_poly_alt.html#a173dc5811db508a92806559d2e7d1a14">SubPolyAlt</a>(ptr_diff_type first=0, ptr_diff_type last=0)</td><td><a class="el" href="structpsimpl_1_1_polyline_simplification_1_1_d_p_helper_1_1_sub_poly_alt.html">psimpl::PolylineSimplification&lt; DIM, InputIterator, OutputIterator &gt;::DPHelper::SubPolyAlt</a></td><td><code> [inline]</code></td></tr>
</table></div>
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="footer">Generated on Fri Jun 24 2011 14:56:29 for psimpl by&#160;
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.4 </li>
</ul>
</div>
</body>
</html>

View File

@ -0,0 +1,212 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<title>psimpl: psimpl::PolylineSimplification&lt; DIM, InputIterator, OutputIterator &gt;::DPHelper::SubPolyAlt Struct Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript">
$(document).ready(initResizable);
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<!-- Generated by Doxygen 1.7.4 -->
<div id="top">
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td style="padding-left: 0.5em;">
<div id="projectname">psimpl&#160;<span id="projectnumber">7</span></div>
</td>
</tr>
</tbody>
</table>
</div>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="namespaces.html"><span>Namespaces</span></a></li>
<li class="current"><a href="annotated.html"><span>Classes</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
<li><a href="dirs.html"><span>Directories</span></a></li>
</ul>
</div>
<div id="navrow2" class="tabs2">
<ul class="tablist">
<li><a href="annotated.html"><span>Class&#160;List</span></a></li>
<li><a href="classes.html"><span>Class&#160;Index</span></a></li>
<li><a href="functions.html"><span>Class&#160;Members</span></a></li>
</ul>
</div>
</div>
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
initNavTree('structpsimpl_1_1_polyline_simplification_1_1_d_p_helper_1_1_sub_poly_alt.html','');
</script>
<div id="doc-content">
<div class="header">
<div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="#pub-attribs">Public Attributes</a> </div>
<div class="headertitle">
<div class="title">psimpl::PolylineSimplification&lt; DIM, InputIterator, OutputIterator &gt;::DPHelper::SubPolyAlt Struct Reference</div> </div>
</div>
<div class="contents">
<!-- doxytag: class="psimpl::PolylineSimplification::DPHelper::SubPolyAlt" -->
<p>Defines a sub polyline including its key.
<a href="structpsimpl_1_1_polyline_simplification_1_1_d_p_helper_1_1_sub_poly_alt.html#details">More...</a></p>
<p><a href="structpsimpl_1_1_polyline_simplification_1_1_d_p_helper_1_1_sub_poly_alt-members.html">List of all members.</a></p>
<table class="memberdecls">
<tr><td colspan="2"><h2><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structpsimpl_1_1_polyline_simplification_1_1_d_p_helper_1_1_sub_poly_alt.html#a173dc5811db508a92806559d2e7d1a14">SubPolyAlt</a> (<a class="el" href="classpsimpl_1_1_polyline_simplification.html#a08f998ecc4af984c070603b489b3ce28">ptr_diff_type</a> <a class="el" href="structpsimpl_1_1_polyline_simplification_1_1_d_p_helper_1_1_sub_poly_alt.html#a92345917355c59fbc19704c01a4bfa2d">first</a>=0, <a class="el" href="classpsimpl_1_1_polyline_simplification.html#a08f998ecc4af984c070603b489b3ce28">ptr_diff_type</a> <a class="el" href="structpsimpl_1_1_polyline_simplification_1_1_d_p_helper_1_1_sub_poly_alt.html#a4b6e337ce1250efd9599b7df99922fcf">last</a>=0)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structpsimpl_1_1_polyline_simplification_1_1_d_p_helper_1_1_sub_poly_alt.html#a737d39204cbf1d26e4d7dccf267f2bc9">operator&lt;</a> (const <a class="el" href="structpsimpl_1_1_polyline_simplification_1_1_d_p_helper_1_1_sub_poly_alt.html">SubPolyAlt</a> &amp;other) const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">key of this sub poly <a href="#a737d39204cbf1d26e4d7dccf267f2bc9"></a><br/></td></tr>
<tr><td colspan="2"><h2><a name="pub-attribs"></a>
Public Attributes</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classpsimpl_1_1_polyline_simplification.html#a08f998ecc4af984c070603b489b3ce28">ptr_diff_type</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structpsimpl_1_1_polyline_simplification_1_1_d_p_helper_1_1_sub_poly_alt.html#a92345917355c59fbc19704c01a4bfa2d">first</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classpsimpl_1_1_polyline_simplification.html#a08f998ecc4af984c070603b489b3ce28">ptr_diff_type</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structpsimpl_1_1_polyline_simplification_1_1_d_p_helper_1_1_sub_poly_alt.html#a4b6e337ce1250efd9599b7df99922fcf">last</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">coord index of the first point <a href="#a4b6e337ce1250efd9599b7df99922fcf"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structpsimpl_1_1_polyline_simplification_1_1_d_p_helper_1_1_key_info.html">KeyInfo</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structpsimpl_1_1_polyline_simplification_1_1_d_p_helper_1_1_sub_poly_alt.html#afa58fb132744d1a2ba4c7ab4ddbc00fb">keyInfo</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">coord index of the last point <a href="#afa58fb132744d1a2ba4c7ab4ddbc00fb"></a><br/></td></tr>
</table>
<hr/><a name="details" id="details"></a><h2>Detailed Description</h2>
<div class="textblock"><h3>template&lt;unsigned DIM, class InputIterator, class OutputIterator&gt;<br/>
struct psimpl::PolylineSimplification&lt; DIM, InputIterator, OutputIterator &gt;::DPHelper::SubPolyAlt</h3>
<p>Defines a sub polyline including its key. </p>
</div><hr/><h2>Constructor &amp; Destructor Documentation</h2>
<a class="anchor" id="a173dc5811db508a92806559d2e7d1a14"></a><!-- doxytag: member="psimpl::PolylineSimplification::DPHelper::SubPolyAlt::SubPolyAlt" ref="a173dc5811db508a92806559d2e7d1a14" args="(ptr_diff_type first=0, ptr_diff_type last=0)" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;unsigned DIM, class InputIterator, class OutputIterator&gt; </div>
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classpsimpl_1_1_polyline_simplification.html">psimpl::PolylineSimplification</a>&lt; DIM, InputIterator, OutputIterator &gt;::DPHelper::SubPolyAlt::SubPolyAlt </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classpsimpl_1_1_polyline_simplification.html#a08f998ecc4af984c070603b489b3ce28">ptr_diff_type</a>&#160;</td>
<td class="paramname"><em>first</em> = <code>0</code>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="classpsimpl_1_1_polyline_simplification.html#a08f998ecc4af984c070603b489b3ce28">ptr_diff_type</a>&#160;</td>
<td class="paramname"><em>last</em> = <code>0</code>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td><code> [inline]</code></td>
</tr>
</table>
</div>
<div class="memdoc">
</div>
</div>
<hr/><h2>Member Function Documentation</h2>
<a class="anchor" id="a737d39204cbf1d26e4d7dccf267f2bc9"></a><!-- doxytag: member="psimpl::PolylineSimplification::DPHelper::SubPolyAlt::operator&lt;" ref="a737d39204cbf1d26e4d7dccf267f2bc9" args="(const SubPolyAlt &amp;other) const " -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;unsigned DIM, class InputIterator, class OutputIterator&gt; </div>
<table class="memname">
<tr>
<td class="memname">bool <a class="el" href="classpsimpl_1_1_polyline_simplification.html">psimpl::PolylineSimplification</a>&lt; DIM, InputIterator, OutputIterator &gt;::DPHelper::SubPolyAlt::operator&lt; </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="structpsimpl_1_1_polyline_simplification_1_1_d_p_helper_1_1_sub_poly_alt.html">SubPolyAlt</a> &amp;&#160;</td>
<td class="paramname"><em>other</em></td><td>)</td>
<td> const<code> [inline]</code></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>key of this sub poly </p>
</div>
</div>
<hr/><h2>Member Data Documentation</h2>
<a class="anchor" id="a92345917355c59fbc19704c01a4bfa2d"></a><!-- doxytag: member="psimpl::PolylineSimplification::DPHelper::SubPolyAlt::first" ref="a92345917355c59fbc19704c01a4bfa2d" args="" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;unsigned DIM, class InputIterator, class OutputIterator&gt; </div>
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classpsimpl_1_1_polyline_simplification.html#a08f998ecc4af984c070603b489b3ce28">ptr_diff_type</a> <a class="el" href="classpsimpl_1_1_polyline_simplification.html">psimpl::PolylineSimplification</a>&lt; DIM, InputIterator, OutputIterator &gt;::<a class="el" href="structpsimpl_1_1_polyline_simplification_1_1_d_p_helper_1_1_sub_poly_alt.html#a92345917355c59fbc19704c01a4bfa2d">DPHelper::SubPolyAlt::first</a></td>
</tr>
</table>
</div>
<div class="memdoc">
</div>
</div>
<a class="anchor" id="afa58fb132744d1a2ba4c7ab4ddbc00fb"></a><!-- doxytag: member="psimpl::PolylineSimplification::DPHelper::SubPolyAlt::keyInfo" ref="afa58fb132744d1a2ba4c7ab4ddbc00fb" args="" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;unsigned DIM, class InputIterator, class OutputIterator&gt; </div>
<table class="memname">
<tr>
<td class="memname"><a class="el" href="structpsimpl_1_1_polyline_simplification_1_1_d_p_helper_1_1_key_info.html">KeyInfo</a> <a class="el" href="classpsimpl_1_1_polyline_simplification.html">psimpl::PolylineSimplification</a>&lt; DIM, InputIterator, OutputIterator &gt;::<a class="el" href="structpsimpl_1_1_polyline_simplification_1_1_d_p_helper_1_1_sub_poly_alt.html#afa58fb132744d1a2ba4c7ab4ddbc00fb">DPHelper::SubPolyAlt::keyInfo</a></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>coord index of the last point </p>
</div>
</div>
<a class="anchor" id="a4b6e337ce1250efd9599b7df99922fcf"></a><!-- doxytag: member="psimpl::PolylineSimplification::DPHelper::SubPolyAlt::last" ref="a4b6e337ce1250efd9599b7df99922fcf" args="" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;unsigned DIM, class InputIterator, class OutputIterator&gt; </div>
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classpsimpl_1_1_polyline_simplification.html#a08f998ecc4af984c070603b489b3ce28">ptr_diff_type</a> <a class="el" href="classpsimpl_1_1_polyline_simplification.html">psimpl::PolylineSimplification</a>&lt; DIM, InputIterator, OutputIterator &gt;::<a class="el" href="structpsimpl_1_1_polyline_simplification_1_1_d_p_helper_1_1_sub_poly_alt.html#a4b6e337ce1250efd9599b7df99922fcf">DPHelper::SubPolyAlt::last</a></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>coord index of the first point </p>
</div>
</div>
<hr/>The documentation for this struct was generated from the following file:<ul>
<li>D:/Code/Projects/psimpl/trunk/lib/<a class="el" href="psimpl_8h_source.html">psimpl.h</a></li>
</ul>
</div>
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="namespacepsimpl.html">psimpl</a> </li>
<li class="navelem"><a class="el" href="classpsimpl_1_1_polyline_simplification.html">PolylineSimplification</a> </li>
<li class="navelem"><a class="el" href="classpsimpl_1_1_polyline_simplification_1_1_d_p_helper.html">DPHelper</a> </li>
<li class="navelem"><a class="el" href="structpsimpl_1_1_polyline_simplification_1_1_d_p_helper_1_1_sub_poly_alt.html">SubPolyAlt</a> </li>
<li class="footer">Generated on Fri Jun 24 2011 14:56:29 for psimpl by&#160;
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.4 </li>
</ul>
</div>
</body>
</html>

View File

@ -0,0 +1,82 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<title>psimpl: Member List</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript">
$(document).ready(initResizable);
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<!-- Generated by Doxygen 1.7.4 -->
<div id="top">
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td style="padding-left: 0.5em;">
<div id="projectname">psimpl&#160;<span id="projectnumber">7</span></div>
</td>
</tr>
</tbody>
</table>
</div>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="namespaces.html"><span>Namespaces</span></a></li>
<li class="current"><a href="annotated.html"><span>Classes</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
<li><a href="dirs.html"><span>Directories</span></a></li>
</ul>
</div>
<div id="navrow2" class="tabs2">
<ul class="tablist">
<li><a href="annotated.html"><span>Class&#160;List</span></a></li>
<li><a href="classes.html"><span>Class&#160;Index</span></a></li>
<li><a href="functions.html"><span>Class&#160;Members</span></a></li>
</ul>
</div>
</div>
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
initNavTree('structpsimpl_1_1math_1_1_statistics.html','');
</script>
<div id="doc-content">
<div class="header">
<div class="headertitle">
<div class="title">psimpl::math::Statistics Member List</div> </div>
</div>
<div class="contents">
This is the complete list of members for <a class="el" href="structpsimpl_1_1math_1_1_statistics.html">psimpl::math::Statistics</a>, including all inherited members.<table>
<tr class="memlist"><td><a class="el" href="structpsimpl_1_1math_1_1_statistics.html#ae9f672e092297b56fc28de70802b4fcb">max</a></td><td><a class="el" href="structpsimpl_1_1math_1_1_statistics.html">psimpl::math::Statistics</a></td><td></td></tr>
<tr class="memlist"><td><a class="el" href="structpsimpl_1_1math_1_1_statistics.html#a5ec6444e6cb5bbf0b5f2820a5ba45f40">mean</a></td><td><a class="el" href="structpsimpl_1_1math_1_1_statistics.html">psimpl::math::Statistics</a></td><td></td></tr>
<tr class="memlist"><td><a class="el" href="structpsimpl_1_1math_1_1_statistics.html#acc29e12d945e80f6c36702c3d03c5d45">Statistics</a>()</td><td><a class="el" href="structpsimpl_1_1math_1_1_statistics.html">psimpl::math::Statistics</a></td><td><code> [inline]</code></td></tr>
<tr class="memlist"><td><a class="el" href="structpsimpl_1_1math_1_1_statistics.html#af2f6f43cb05903f393c454bf87221f36">std</a></td><td><a class="el" href="structpsimpl_1_1math_1_1_statistics.html">psimpl::math::Statistics</a></td><td></td></tr>
<tr class="memlist"><td><a class="el" href="structpsimpl_1_1math_1_1_statistics.html#a7fe8b670f8f9b110303fb797dc900c85">sum</a></td><td><a class="el" href="structpsimpl_1_1math_1_1_statistics.html">psimpl::math::Statistics</a></td><td></td></tr>
</table></div>
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="footer">Generated on Fri Jun 24 2011 14:56:29 for psimpl by&#160;
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.4 </li>
</ul>
</div>
</body>
</html>

View File

@ -0,0 +1,175 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<title>psimpl: psimpl::math::Statistics Struct Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript">
$(document).ready(initResizable);
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<!-- Generated by Doxygen 1.7.4 -->
<div id="top">
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td style="padding-left: 0.5em;">
<div id="projectname">psimpl&#160;<span id="projectnumber">7</span></div>
</td>
</tr>
</tbody>
</table>
</div>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="namespaces.html"><span>Namespaces</span></a></li>
<li class="current"><a href="annotated.html"><span>Classes</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
<li><a href="dirs.html"><span>Directories</span></a></li>
</ul>
</div>
<div id="navrow2" class="tabs2">
<ul class="tablist">
<li><a href="annotated.html"><span>Class&#160;List</span></a></li>
<li><a href="classes.html"><span>Class&#160;Index</span></a></li>
<li><a href="functions.html"><span>Class&#160;Members</span></a></li>
</ul>
</div>
</div>
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
initNavTree('structpsimpl_1_1math_1_1_statistics.html','');
</script>
<div id="doc-content">
<div class="header">
<div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="#pub-attribs">Public Attributes</a> </div>
<div class="headertitle">
<div class="title">psimpl::math::Statistics Struct Reference</div> </div>
</div>
<div class="contents">
<!-- doxytag: class="psimpl::math::Statistics" -->
<p>POD structure for storing several statistical values.
<a href="structpsimpl_1_1math_1_1_statistics.html#details">More...</a></p>
<p><code>#include &lt;<a class="el" href="psimpl_8h_source.html">psimpl.h</a>&gt;</code></p>
<p><a href="structpsimpl_1_1math_1_1_statistics-members.html">List of all members.</a></p>
<table class="memberdecls">
<tr><td colspan="2"><h2><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structpsimpl_1_1math_1_1_statistics.html#acc29e12d945e80f6c36702c3d03c5d45">Statistics</a> ()</td></tr>
<tr><td colspan="2"><h2><a name="pub-attribs"></a>
Public Attributes</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structpsimpl_1_1math_1_1_statistics.html#ae9f672e092297b56fc28de70802b4fcb">max</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structpsimpl_1_1math_1_1_statistics.html#a7fe8b670f8f9b110303fb797dc900c85">sum</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structpsimpl_1_1math_1_1_statistics.html#a5ec6444e6cb5bbf0b5f2820a5ba45f40">mean</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structpsimpl_1_1math_1_1_statistics.html#af2f6f43cb05903f393c454bf87221f36">std</a></td></tr>
</table>
<hr/><a name="details" id="details"></a><h2>Detailed Description</h2>
<div class="textblock"><p>POD structure for storing several statistical values. </p>
</div><hr/><h2>Constructor &amp; Destructor Documentation</h2>
<a class="anchor" id="acc29e12d945e80f6c36702c3d03c5d45"></a><!-- doxytag: member="psimpl::math::Statistics::Statistics" ref="acc29e12d945e80f6c36702c3d03c5d45" args="()" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">psimpl::math::Statistics::Statistics </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td><code> [inline]</code></td>
</tr>
</table>
</div>
<div class="memdoc">
</div>
</div>
<hr/><h2>Member Data Documentation</h2>
<a class="anchor" id="ae9f672e092297b56fc28de70802b4fcb"></a><!-- doxytag: member="psimpl::math::Statistics::max" ref="ae9f672e092297b56fc28de70802b4fcb" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">double <a class="el" href="structpsimpl_1_1math_1_1_statistics.html#ae9f672e092297b56fc28de70802b4fcb">psimpl::math::Statistics::max</a></td>
</tr>
</table>
</div>
<div class="memdoc">
</div>
</div>
<a class="anchor" id="a5ec6444e6cb5bbf0b5f2820a5ba45f40"></a><!-- doxytag: member="psimpl::math::Statistics::mean" ref="a5ec6444e6cb5bbf0b5f2820a5ba45f40" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">double <a class="el" href="structpsimpl_1_1math_1_1_statistics.html#a5ec6444e6cb5bbf0b5f2820a5ba45f40">psimpl::math::Statistics::mean</a></td>
</tr>
</table>
</div>
<div class="memdoc">
</div>
</div>
<a class="anchor" id="af2f6f43cb05903f393c454bf87221f36"></a><!-- doxytag: member="psimpl::math::Statistics::std" ref="af2f6f43cb05903f393c454bf87221f36" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">double <a class="el" href="structpsimpl_1_1math_1_1_statistics.html#af2f6f43cb05903f393c454bf87221f36">psimpl::math::Statistics::std</a></td>
</tr>
</table>
</div>
<div class="memdoc">
</div>
</div>
<a class="anchor" id="a7fe8b670f8f9b110303fb797dc900c85"></a><!-- doxytag: member="psimpl::math::Statistics::sum" ref="a7fe8b670f8f9b110303fb797dc900c85" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">double <a class="el" href="structpsimpl_1_1math_1_1_statistics.html#a7fe8b670f8f9b110303fb797dc900c85">psimpl::math::Statistics::sum</a></td>
</tr>
</table>
</div>
<div class="memdoc">
</div>
</div>
<hr/>The documentation for this struct was generated from the following file:<ul>
<li>D:/Code/Projects/psimpl/trunk/lib/<a class="el" href="psimpl_8h_source.html">psimpl.h</a></li>
</ul>
</div>
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="namespacepsimpl.html">psimpl</a> </li>
<li class="navelem"><a class="el" href="namespacepsimpl_1_1math.html">math</a> </li>
<li class="navelem"><a class="el" href="structpsimpl_1_1math_1_1_statistics.html">Statistics</a> </li>
<li class="footer">Generated on Fri Jun 24 2011 14:56:29 for psimpl by&#160;
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.4 </li>
</ul>
</div>
</body>
</html>

Binary file not shown.

After

Width:  |  Height:  |  Size: 140 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 178 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 192 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 189 B

View File

@ -0,0 +1,59 @@
.tabs, .tabs2, .tabs3 {
background-image: url('tab_b.png');
width: 100%;
z-index: 101;
font-size: 13px;
}
.tabs2 {
font-size: 10px;
}
.tabs3 {
font-size: 9px;
}
.tablist {
margin: 0;
padding: 0;
display: table;
}
.tablist li {
float: left;
display: table-cell;
background-image: url('tab_b.png');
line-height: 36px;
list-style: none;
}
.tablist a {
display: block;
padding: 0 20px;
font-weight: bold;
background-image:url('tab_s.png');
background-repeat:no-repeat;
background-position:right;
color: #283A5D;
text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9);
text-decoration: none;
outline: none;
}
.tabs3 .tablist a {
padding: 0 10px;
}
.tablist a:hover {
background-image: url('tab_h.png');
background-repeat:repeat-x;
color: #fff;
text-shadow: 0px 1px 1px rgba(0, 0, 0, 1.0);
text-decoration: none;
}
.tablist li.current a {
background-image: url('tab_a.png');
background-repeat:repeat-x;
color: #fff;
text-shadow: 0px 1px 1px rgba(0, 0, 0, 1.0);
}