[Liblas-commits] libpc: quick hack until cmake can do it for us
liblas-commits at liblas.org
liblas-commits at liblas.org
Sat Feb 12 15:01:19 EST 2011
details: http://hg.liblas.orglibpc/rev/f15b57efca72
changeset: 47:f15b57efca72
user: Michael P. Gerlek <mpg at flaxen.com>
date: Fri Feb 11 20:44:52 2011 -0800
description:
quick hack until cmake can do it for us
Subject: libpc: misc updates
details: http://hg.liblas.orglibpc/rev/e6109090862d
changeset: 48:e6109090862d
user: Michael P. Gerlek <mpg at flaxen.com>
date: Sat Feb 12 09:11:48 2011 -0800
description:
misc updates
Subject: libpc: more updates
details: http://hg.liblas.orglibpc/rev/163e4dc28532
changeset: 49:163e4dc28532
user: Michael P. Gerlek <mpg at flaxen.com>
date: Sat Feb 12 12:01:09 2011 -0800
description:
more updates
diffstat:
doc/notes/apps.txt | 28 ++++++++++----
doc/notes/bindings.txt | 12 ++++++
doc/notes/c-api.txt | 6 +++
doc/notes/coding-conventions.txt | 75 +++++++++++++++++++++++++++++++++++++++
doc/notes/core-classes.txt | 15 +++++++
doc/notes/docs.txt | 33 +++++++++++++++++
doc/notes/goals.txt | 41 ++++++++++-----------
doc/notes/intro.txt | 5 +-
doc/notes/io.txt | 76 ++++++++++++++++++++++++++-------------
doc/notes/makefile | 26 +++++++++++++
doc/notes/misc.txt | 64 ++++----------------------------
doc/notes/pipeline.txt | 12 ++++++
doc/notes/testing.txt | 29 +++++++++++++++
doc/notes/use-cases.txt | 15 ++-----
14 files changed, 313 insertions(+), 124 deletions(-)
diffs (truncated from 595 to 300 lines):
diff -r 01e4cf67e293 -r 163e4dc28532 doc/notes/apps.txt
--- a/doc/notes/apps.txt Fri Feb 11 14:33:25 2011 -0800
+++ b/doc/notes/apps.txt Sat Feb 12 12:01:09 2011 -0800
@@ -8,15 +8,26 @@
This should be fleshed out to list the (major) options for each of the apps.
+App Commonality
+===============
+
+The following notes apply to all apps:
+
+* The apps should have a common support/utilities library for processing
+ command line arguments, showing version information, etc.
+
+* Input format detection should reside in the app, not in the library.
+ There will be no equivalent meta GDALOpen-like function to do this work
+ for you, as it is too expensive and too easy to screw up.
+
+
+
pc2pc
=====
Converts from one file format to another, optionally with some (relatively
simple) filtering or processing.
-Input format detection should reside in the app, not in the library. There
-will be no equivalent meta GDALOpen-like function to do this work for you.
-Too expensive and too easy to screw up.
pcinfo
@@ -51,7 +62,6 @@
-
pcindex
=======
@@ -59,16 +69,16 @@
is to repurpose liblas::Index which supports serialization.
-pcmosaic
-========
-Merges multiple files together.
+pcmerge
+=======
-Does mosaic imply something that merge doesn't?
+Merges multiple files together. (This is also known as mosacking.)
+
pctile
-==========
+======
Chops one file up into multiple files. This could be the liblas::Chipper,
leaf nodes of an index like an R-tree, or a simple quadtree build.
diff -r 01e4cf67e293 -r 163e4dc28532 doc/notes/bindings.txt
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/doc/notes/bindings.txt Sat Feb 12 12:01:09 2011 -0800
@@ -0,0 +1,12 @@
+========
+Bindings
+========
+
+[tbd]
+
+We will support SWIG bindings for languages like Python and C#.
+
+We will avoid things that will make SWIG's life difficult, such as multiple
+inheritance.
+
+
diff -r 01e4cf67e293 -r 163e4dc28532 doc/notes/c-api.txt
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/doc/notes/c-api.txt Sat Feb 12 12:01:09 2011 -0800
@@ -0,0 +1,6 @@
+=======
+C API
+=======
+
+
+[tbd]
diff -r 01e4cf67e293 -r 163e4dc28532 doc/notes/coding-conventions.txt
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/doc/notes/coding-conventions.txt Sat Feb 12 12:01:09 2011 -0800
@@ -0,0 +1,75 @@
+==================
+Coding Conventions
+==================
+
+To the extent possible and reasonable, we value consistency of source code
+formatting, class and variable naming, and so forth.
+
+This Note lists some such conventions that we would like to follow, where
+it makes sense to do so.
+
+
+Source Formatting
+=================
+
+We use astyle (http://astyle.sourceforge.net) as a tool to reformat C++
+source code files in a consistent fashion. The file astylerc, at the top
+of the hg repo, contains the default settings we use.
+
+Our conventions are:
+
+* LF endings, not CRLF
+
+* spaces, not tabs
+
+* indent to four (4) spaces ("Four shalt be the number thou shalt count,
+ and the number of the counting shall be four. Three shalt thou not count,
+ neither count thou five...")
+
+* braces shall be on their own lines, like this::
+
+ if (p)
+ {
+ foo();
+ }
+
+
+Naming Conventions
+==================
+
+* classes should be names using UpperCamelCase
+
+* functions should be in lowerCamelCase
+
+* member variables should be prefixed with "m\_", followed by the name in
+ lowerCamelCase -- for example, "m_numberOfPoints"
+
+* there should be only one class per file, and the name of the file should
+ match the class name -- that is, class PointData should live in files
+ PointData.hpp and PointData.cpp
+
+
+Other Conventions
+=================
+
+* the use of getter and setter methods is preferred to exposing member
+ variables
+
+* Surround all code with "namespace libpc {...}"; where justifiable, you
+ may introduce a nested namespace. Keep non-public names in the
+ libpc::detail\:: space.
+
+* Use exceptions for exceptional events that are not going to be handled
+ directly within the context of where the event occurs. Avoid status
+ codes. See exceptions.hpp for a set of libpc-specific exception types
+ you may throw.
+
+
+Layout/Organization of Source Tree
+==================================
+
+* public headers in ./include
+
+* private headers alongside source files in src/
+
+* ...
diff -r 01e4cf67e293 -r 163e4dc28532 doc/notes/core-classes.txt
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/doc/notes/core-classes.txt Sat Feb 12 12:01:09 2011 -0800
@@ -0,0 +1,15 @@
+============
+Core Classes
+============
+
+This Notes describes the core classes used by libPC.
+
+* Range
+
+* Dimension
+
+* ...
+
+[tbd]
+
+
diff -r 01e4cf67e293 -r 163e4dc28532 doc/notes/docs.txt
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/doc/notes/docs.txt Sat Feb 12 12:01:09 2011 -0800
@@ -0,0 +1,33 @@
+====
+Docs
+====
+
+There will be two kinds of documentation: API docs, and Everything Else.
+
+
+API Documentation
+=================
+
+The API docs will be autogenerated by **[doxygen or something]** from the
+header files.
+
+**[need to provide info on what syntax to use]**
+
+These will be available on the website.
+
+
+Everything Else
+===============
+
+All the other documentation will be in the form of RST files, e.g. these
+Notes, which will be autogenerated into web page content. Documentation
+content will include:
+
+* usage guide for the command-line apps
+
+* developer-oriented information like libPC architecture and core classes
+
+* information about specific file format readers and writers, e.g. details
+ on what versions of the LAS spec is supported
+
+* **[...?]**
diff -r 01e4cf67e293 -r 163e4dc28532 doc/notes/goals.txt
--- a/doc/notes/goals.txt Fri Feb 11 14:33:25 2011 -0800
+++ b/doc/notes/goals.txt Sat Feb 12 12:01:09 2011 -0800
@@ -1,30 +1,27 @@
-==========================
-libPC Project Notes: Goals
-==========================
-
-
+=============
Project Goals
=============
-1. From a market perspective, libPC is "version 2" of libLAS. The actual
+1. libPC is a library which provides APIs for reading, writing, and
+ processing point cloud data of various formats. Additionally, some
+ command line tools are provided. As GDAL is to 2D pixels, libPC is to
+ multidimensional points.
+
+2. From a market perspective, libPC is "version 2" of libLAS. The actual
code base will be different, however, and the APIs will not be
compatible.
-2. It is a library which provides APIs for reading, writing, and processing
- point cloud data of various formats. As GDAL is to 2D pixels, libPC is
- to xD points.
+3. The libPC implementation has high performance, yet the API remains
+ flexible. We recognize that these two goals will conflict at times and
+ will weigh the tradeoffs pragmatically.
+
+4. The architecture of a libPC-based workflow will be a pipeline of
+ connected stages, each stage being either a data source (such as a file
+ reader), a filter (such as a point thinner), or data sink (such as a
+ file writer).
-3. It has high performance, yet remains flexible. We recognize that
- these two goals will conflict at times and will weigh the tradeoffs
- pragmatically.
-
-4. The library will be in C++, but will support SWIG bindings for Python and
- C#. We will avoid things that will make SWIG's life difficult, such as
- multiple inheritance.
-
-5. The overall architecture will be a pipeline of connected stages, each
- stage being a data source (reader) or filter or writer.
+5. The libPC library will be in C++, but will also include a C API and will
+ have SWIG bindings for languages like Python and C#. libPC will support
+ multiple platforms, specifically Windows, Linux, and Mac.
-6. The project will be released under a BSD license.
-
-7. *others?*
+6. libPC is open source and is released under a BSD license.
diff -r 01e4cf67e293 -r 163e4dc28532 doc/notes/intro.txt
--- a/doc/notes/intro.txt Fri Feb 11 14:33:25 2011 -0800
+++ b/doc/notes/intro.txt Sat Feb 12 12:01:09 2011 -0800
@@ -11,8 +11,9 @@
Better yet, these notes can serve as fodder for eventual public
documentation for libPC developers and users.
-Notes files will be RST text files and will live in hg.
+Notes files will be RST text files and will live in the hg repo under
+doc/notes.
Editorial comments, and points yet to be resolved, are noted in the text
-*like this*.
+**[like this]**.
diff -r 01e4cf67e293 -r 163e4dc28532 doc/notes/io.txt
--- a/doc/notes/io.txt Fri Feb 11 14:33:25 2011 -0800
+++ b/doc/notes/io.txt Sat Feb 12 12:01:09 2011 -0800
@@ -1,35 +1,61 @@
-========================
-libPC Project Notes: I/O
-========================
+===
More information about the Liblas-commits
mailing list