[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