Update ply_io.cpp

Reading a binary PLY file with faces and "vertex_indices" property crashes, if only a PointCloud is provided. Since the polygons_ member is set to 0 and untouched otherwise.

Worked in PCL 1.6, doesn't work right now with 1.7.1.

The ply2pcd sample program provided with PCL crashes as well.
Fix some whitespace issues
Fix build issues for Visual Studio 2008
Use flags to check whether member variables have been set

For the person classifier a flag has already been used, but for the
intrinsics matrix and the ground coefficients, data structure specifics
are used in order to determine whether or not the variable has been set.

Since not all data structures have such a specific characteristic,
(e.g. in one of the next patches we introduce a transformation matrix
for which it can't be easily checked whether it has been set or not),
and for consistency, it is better to use flags throughout the whole code.
Fix wrong update of min_points_ and max_points_

The update of min_points_ and max_points_ happens every time the compute
method is called. If voxel_size_ is different from the standard value of
0.06, for each call to the compute method, min_points_ and max_points_ are
getting smaller (for a voxel size > 0.06). After a couple of iterations,
they are equal to zero.

It is better to set min_points_ and max_points_ outside of the compute
method, since there is no need to recalculate them every time. In
addition, min_points_ and max_points_ depends on internal knowledge of
the people tracker (the voxel_size_ and the fact, that there is only one
point per voxel after downsampling). For a user of the people tracker,
the only thing that should matter is the height and the width of a person
cluster. The cluster limits can be deduced from this information.
Move point cloud filtering in own method and make it accessible

In the next patch, the filtering method will be extended. In the future,
it would be desirable to have all computing steps in the compute method in
separate methods, but for the moment we limit ourselves to the filtering.
Allow to set the field of view of the point cloud

In order to be able to cut off outliers, the z-dimensions of the field
of view can be set from outside the people tracker. If there is only a
single outlier, it might not be able to filter the point cloud due to
a lack of memory.
Add transformations for the point cloud/ground plane/intrinsics matrix

The choice of the coordinate frame matters for the people tracker
(e.g. for the height calculations), and it is important to allow for
different choices of coordinate systems. Doing the transformation inside
the people tracker leads to a better performance than doing it outside
(since it can be applied to the downsampled point cloud), and also
simplifies the use of the people tracker.
Replace hard-coded value by constant
Increase distance for ground removal

For outdoor environments  (curbs, stones, uneven sidewalks, ...), it is
necessary to have a higher tolerance.  The people tracker still seems
to work fine with this higher value in indoor environments.
OS X build fixes
Tweak OS X compilation
Add missing include directive for boost/chrono.hpp.
Merge pull request #671 from j-oberlaender/master

Add missing include directive for boost/chrono.hpp.
Avoid using namespace std in header files.
openni_pcd_recorder: Add command-line support for device IDs (like in openni_viewer).
openni_pcd_recorder: Improve calculation of default buffer size.
Merge pull request #674 from yangyanli/avoid_using_namespace_std_in_header

Avoid using namespace std in header files.
Merge pull request #673 from j-oberlaender/pcd_recorder_improvements

Pcd recorder improvements
openni_pcd_recorder: Fix memory size calculation for 32-bit system with >4GB RAM.

Systems with e.g. a Linux PAE kernel can have more than 4GB RAM, which
means the size should always be calculated using 64-bit integers.  The
memory available for buffering, however, must be addressable by a
std::size_t.