資源簡介
該算法比較成熟地解決了點云處理中的一些困難:空洞填補、曲面擬合等等

代碼片段和文件信息
//本文件是數據交換模塊的實現文件
#include
//主程序頭文件
//#include“re.h“
#include“Asc.h“
#include
//************************************************************************
//************************************************************************
//點云文件讀取部分
//
//************************************************************************
//************************************************************************
CAscfile::CAscfile()
{
??datanum=0;
??box.SetLimits(1e20-1e201e20-1e201e20-1e20);
}
CAscfile::~CAscfile()
{
???m_data.RemoveAll();
}
//====================================================================
int?CAscfile::OpenASC(char*?name)
{
????//檢測文件名
if(name==““||name==NULL)
return?FALSE;
//打開文件
m_hFile=fopen(name“r“);
if(m_hFile==NULL)
return?FALSE;
//保存相關數據?
memcpy(filenamenamestrlen(name));
????return?TRUE;
}
//====================================================================
void?CAscfile::CloseASC()
{
?fclose(m_hFile);
}
//====================================================================
int?CAscfile::ReadLine(char*?str)
{
int?re=0;
char*?p;
char?tch;
if(str==NULL)?return?re;
p=str;
????tch=fgetc(m_hFile);
while(!feof(m_hFile)&&(tch!=‘\n‘||tch!=0x0a))
{
*p=tch;
?????????p++;
?tch=fgetc(m_hFile);
}
*p=‘\0‘;
return?TRUE;
}
//=========================================================================
int?CAscfile::GetData(char*?str?CPoint3D&?data)
{
int?ilen;
char?ch=‘*‘;
char*?pch=NULL;
float?xyz;
//檢測數據有效性
if(str==NULL)?
return?FALSE;
????if((pch=strchr(strch))!=NULL)
return?FALSE;
//讀取數據
ilen=0;
ilen=sscanf(str“%f?%f?%f“&x&y&z);
if(ilen!=3)
return?FALSE;
data.SetParam(xyz);
return?ilen;
}
//=========================================================================
int?CAscfile::ReadDataFromFile(char*?name)
{
???char?str[255];
???CPoint3D?temp;
?
???long?grow=500;
???int?flag=1;
???//打開文件
???if(name==NULL)?return?FALSE;
???if(!OpenASC(name))?return?FALSE;
?
???this->Release();
???//讀取數據
???m_data.SetSize(grow);
??while(!feof(m_hFile))
???{
??if(!ReadLine(str))
??continue;
??//數據轉化并保存
??????if(GetData(strtemp))
??{? ??
m_data[datanum]=temp;
box.AddBox(temp);
datanum++;
grow--;
??}
??if(grow<=1)
??{
??grow=500;
??m_data.SetSize(datanum+grow);
??}
???}
???m_data.FreeExtra();
???CloseASC();
???return?TRUE;
}
//==================================================================
void?CAscfile::Release()
{
m_data.RemoveAll();
datanum=0;
}
//完
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件???????2683??2007-10-25?11:31??LIDAR點云有用的算法\asc.cpp
?????文件???????1582??2007-09-29?23:12??LIDAR點云有用的算法\Asc.h
?????文件???????7001??2009-10-21?10:17??LIDAR點云有用的算法\AxisSystem.cpp
?????文件???????2325??2009-06-10?16:47??LIDAR點云有用的算法\AxisSystem.h
?????文件????????573??2007-09-12?08:22??LIDAR點云有用的算法\BasicSurface.cpp
?????文件???????1881??2007-11-06?09:05??LIDAR點云有用的算法\BasicSurface.h
?????文件???????6876??2007-11-04?15:37??LIDAR點云有用的算法\BezierCurve.cpp
?????文件???????2214??2007-11-04?15:37??LIDAR點云有用的算法\BezierCurve.h
?????文件???????2474??2009-10-26?20:38??LIDAR點云有用的算法\BoundingBox.cpp
?????文件???????1650??2007-11-06?09:05??LIDAR點云有用的算法\BoundingBox.h
?????文件???????2789??2007-10-19?09:59??LIDAR點云有用的算法\Bsp.cpp
?????文件????????728??2007-11-06?09:05??LIDAR點云有用的算法\Bsp.h
?????文件???????8093??2007-11-04?20:48??LIDAR點云有用的算法\BSplineCurve.cpp
?????文件???????2283??2007-11-04?15:26??LIDAR點云有用的算法\BSplineCurve.h
?????文件???????5399??2007-11-08?21:55??LIDAR點云有用的算法\Circle3D.cpp
?????文件???????2869??2007-11-08?08:09??LIDAR點云有用的算法\Circle3D.h
?????文件???????2797??2007-09-12?08:25??LIDAR點云有用的算法\Cone.cpp
?????文件???????1913??2007-11-06?09:05??LIDAR點云有用的算法\Cone.h
?????文件????????719??2007-11-04?15:37??LIDAR點云有用的算法\Conic.cpp
?????文件???????2110??2007-11-04?15:37??LIDAR點云有用的算法\Conic.h
?????文件??????17918??2007-10-08?10:51??LIDAR點云有用的算法\CoolDialogBar.cpp
?????文件???????3565??2007-11-06?09:05??LIDAR點云有用的算法\CoolDialogBar.h
?????文件???????1925??2008-01-03?17:25??LIDAR點云有用的算法\CreateLine.cpp
?????文件???????1336??2008-01-03?17:18??LIDAR點云有用的算法\CreateLine.h
?????文件????????745??2007-09-12?08:26??LIDAR點云有用的算法\Curve.cpp
?????文件???????2209??2007-11-04?15:37??LIDAR點云有用的算法\Curve.h
?????文件???????2846??2007-09-12?08:26??LIDAR點云有用的算法\Cylinder.cpp
?????文件???????1992??2007-11-06?09:05??LIDAR點云有用的算法\Cylinder.h
?????文件???????3351??2007-11-06?09:05??LIDAR點云有用的算法\DockTool.h
?????文件???????3823??2010-06-18?21:43??LIDAR點云有用的算法\Ellipse3D.cpp
............此處省略143個文件信息
評論
共有 條評論