PointVisulization.rar


该代码实现了点云读取,点云重心计算,八叉树,邻域搜索等基本功能,通过opengl实现点云可视化,对于初学者来说是一个较为基础的参考
资源截图
代码片段和文件信息
#include “Neighborhood.h“

//local

#include “PointCloud.h“
#include “Matrix.h“


//system
#include 
#include 

using namespace CCLib;

Neighbourhood::Neighbourhood(PointCloud* associatedCloud)
: structuresValidity(DEPRECATED)
 m_associatedCloud(associatedCloud)
{
assert(m_associatedCloud);
}

void Neighbourhood::reset()
{
structuresValidity = DEPRECATED;
}

const CCVector3* Neighbourhood::getGravityCenter()
{
if (!(structuresValidity & GRAVITY_CENTER))
computeGravityCenter();
return ((structuresValidity & GRAVITY_CENTER) ? &theGravityCenter : 0);
}

void Neighbourhood::setGravityCenter(const CCVector3& G)
{
theGravityCenter = G;
structuresValidity |= GRAVITY_CENTER;
}

const float* Neighbourhood::getLSQPlane()
{
if (!(structuresValidity & LSQ_PLANE))
computeLeastSquareBestFittingPlane();
return ((structuresValidity & LSQ_PLANE) ? theLSQPlaneEquation : 0);
}

void Neighbourhood::setLSQPlane(const float eq[4]
const CCVector3& X
const CCVector3& Y
const CCVector3& N)
{
memcpy(theLSQPlaneEquation eq sizeof(float) * 4);
theLSQPlaneVectors[0] = X;
theLSQPlaneVectors[1] = Y;
theLSQPlaneVectors[2] = N;

structuresValidity |= LSQ_PLANE;
}

const CCVector3* Neighbourhood::getLSQPlaneX()
{
if (!(structuresValidity & LSQ_PLANE))
computeLeastSquareBestFittingPlane();
return ((structuresValidity & LSQ_PLANE) ? theLSQPlaneVectors : 0);
}

const CCVector3* Neighbourhood::getLSQPlaneY()
{
if (!(structuresValidity & LSQ_PLANE))
computeLeastSquareBestFittingPlane();
return ((structuresValidity & LSQ_PLANE) ? theLSQPlaneVectors + 1 : 0);
}

const CCVector3* Neighbourhood::getLSQPlaneNormal()
{
if (!(structuresValidity & LSQ_PLANE))
computeLeastSquareBestFittingPlane();
return ((structuresValidity & LSQ_PLANE) ? theLSQPlaneVectors + 2 : 0);
}

//const float* Neighbourhood::getHeightFunction(unsigned char* dimsHF/*=0*/)
//{
// if (!(structuresValidity & HEIGHT_FUNCTION))
// computeHeightFunction();
// if (dimsHF)
// {
// dimsHF[0] = theHeightFunctionDirections[0];
// dimsHF[1] = theHeightFunctionDirections[1];
// dimsHF[2] = theHeightFunctionDirections[2];
// }
// return ((structuresValidity & HEIGHT_FUNCTION) ? theHeightFunction : 0);
//}

const double* Neighbourhood::get3DQuadric()
{
if (!(structuresValidity & QUADRIC_3D))
compute3DQuadric();
return ((structuresValidity & QUADRIC_3D) ? the3DQuadric : 0);
}

void Neighbourhood::computeGravityCenter()
{
//invalidate previous centroid (if any)
structuresValidity &= (~GRAVITY_CENTER);

assert(m_associatedCloud);
unsigned count = (m_associatedCloud ? m_associatedCloud->size() : 0);
if (!count)
return;

//sum
CCVector3d Psum(0 0 0);
for (unsigned i = 0; i {
const CCVector3* P = m_associatedCloud->getPoint(i);
Psum.x += P->x;
Psum.y += P->y;
Psum.z += P->z;
}

CCVector3 G(static_cast(Psum.x / cou

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

    ..A..H.     47616  2019-05-21 09:23  PointVisulization.vsPointVisulizationv14.suo

     文件     412896  2017-05-09 08:34  PointVisulizationPointVisulization1759.xyz

     文件     135795  2017-05-10 15:26  PointVisulizationPointVisulization1795index.txt

     文件       4720  2017-05-11 10:29  PointVisulizationPointVisulizationCamera.h

     文件        264  2017-03-24 09:54  PointVisulizationPointVisulizationConst.h

     文件       6183  2017-05-10 15:28  PointVisulizationPointVisulizationIndexCloud.txt

     文件      24577  2017-05-03 17:58  PointVisulizationPointVisulizationMatrix.h

     文件       9516  2017-05-04 08:27  PointVisulizationPointVisulizationNeighborhood.cpp

     文件       7692  2017-05-03 18:00  PointVisulizationPointVisulizationNeighborhood.h

     文件      17180  2017-03-24 10:25  PointVisulizationPointVisulizationOctree.cpp

     文件       6143  2017-03-24 10:25  PointVisulizationPointVisulizationOctree.h

     文件       1158  2017-04-06 15:25  PointVisulizationPointVisulizationopengl_WIN32-release.props

     文件       3855  2017-03-30 16:23  PointVisulizationPointVisulizationPointCloud.cpp

     文件       1527  2017-05-02 08:10  PointVisulizationPointVisulizationPointCloud.h

     文件       4705  2019-03-04 16:45  PointVisulizationPointVisulizationPointVisulization.vcxproj

     文件       2212  2019-03-04 16:45  PointVisulizationPointVisulizationPointVisulization.vcxproj.filters

     文件        165  2017-05-03 15:23  PointVisulizationPointVisulizationPointVisulization.vcxproj.user

     文件     904189  2019-03-04 16:45  PointVisulizationPointVisulizationReleaseNeighborhood.obj

     文件     970480  2019-03-04 16:45  PointVisulizationPointVisulizationReleaseOctree.obj

     文件     993765  2019-03-04 16:45  PointVisulizationPointVisulizationReleasePointCloud.obj

     文件       7788  2019-05-20 09:39  PointVisulizationPointVisulizationReleasePointVis.1ADCBAF6.tlogcl.command.1.tlog

     文件     103670  2019-05-20 09:39  PointVisulizationPointVisulizationReleasePointVis.1ADCBAF6.tlogcl.read.1.tlog

     文件       3802  2019-05-20 09:39  PointVisulizationPointVisulizationReleasePointVis.1ADCBAF6.tlogcl.write.1.tlog

     文件       3938  2019-05-20 09:39  PointVisulizationPointVisulizationReleasePointVis.1ADCBAF6.tloglink.command.1.tlog

     文件       6094  2019-05-20 09:39  PointVisulizationPointVisulizationReleasePointVis.1ADCBAF6.tloglink.read.1.tlog

     文件       1624  2019-05-20 09:39  PointVisulizationPointVisulizationReleasePointVis.1ADCBAF6.tloglink.write.1.tlog

     文件        209  2019-05-20 09:39  PointVisulizationPointVisulizationReleasePointVis.1ADCBAF6.tlogPointVisulization.lastbuildstate

     文件       4089  2019-05-20 09:39  PointVisulizationPointVisulizationReleasePointVisulization.log

     文件    1540692  2019-05-20 09:39  PointVisulizationPointVisulizationReleaseSource.obj

     文件     580080  2019-03-04 16:45  PointVisulizationPointVisulizationRelease riangle.obj

............此处省略28个文件信息

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件举报,一经查实,本站将立刻删除。

发表评论

评论列表(条)