You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
AppFlow/FITK_Interface/FITKInterfaceGeometry/FITKGeometryMeshEntity.cpp

142 lines
2.4 KiB
C++

#include "FITKGeometryMeshEntity.h"
#include "FITK_Kernel/FITKCore/FITKVec3D.h"
#include "FITK_Kernel/FITKCore/FITKVec3DAlg.h"
namespace Interface
{
FITKGeoMeshVSPt::FITKGeoMeshVSPt(double* coor)
{
if (coor == nullptr) return;
//设置坐标
for (int i = 0; i < 3; ++i)
_coor[i] = coor[i];
}
FITKGeoMeshVSPt::FITKGeoMeshVSPt(const float& x, const float& y, const float& z)
{
//设置坐标
this->setXYZ(x, y, z);
}
void FITKGeoMeshVSPt::setXYZ(const float& x, const float& y, const float& z)
{
//复制数据
_coor[0] = x;
_coor[1] = y;
_coor[2] = z;
}
float FITKGeoMeshVSPt::x()
{
//返回x
return _coor[0];
}
float FITKGeoMeshVSPt::y()
{
//返回y
return _coor[1];
}
float FITKGeoMeshVSPt::z()
{
//返回z
return _coor[2];
}
FITKGeoMeshVSTri::FITKGeoMeshVSTri(const int p1, const int p2, const int p3)
{
_p[0] = p1; _p[1] = p2; _p[2] = p3;
}
int FITKGeoMeshVSTri::getNode(const int index)
{
//返回点
if (index < 0 || index >2) return -1;
return _p[index];
}
const int* FITKGeoMeshVSTri::getNode() const
{
return _p;
}
FITKGeoMeshVSFaceEntity::~FITKGeoMeshVSFaceEntity()
{
//清空内存
this->clear();
}
void FITKGeoMeshVSFaceEntity::clear()
{
const int n = _triList.count();
for (int i =0; i< n; ++i)
{
//释放内存
FITKGeoMeshVSTri* t = _triList.at(i);
if (t) delete t;
}
//清空
_triList.clear();
}
void FITKGeoMeshVSFaceEntity::appendMeshTri(FITKGeoMeshVSTri* tri)
{
//添加三角面
if (tri != nullptr) _triList.append(tri);
}
int FITKGeoMeshVSFaceEntity::getTriangleCount()
{
return _triList.size();
}
const QList<FITKGeoMeshVSTri*>& FITKGeoMeshVSFaceEntity::getTriangles() const
{
//返回三角面列表
return _triList;
}
FITKGeoMeshVSEdgeEntity::~FITKGeoMeshVSEdgeEntity()
{
this->clear();
}
void FITKGeoMeshVSEdgeEntity::clear()
{
const int n = _ptList.count();
for (int i = 0; i < n; ++i)
{
//释放内存
FITKGeoMeshVSPt* p = _ptList.at(i);
if (p) delete p;
}
_ptList.clear();
}
void FITKGeoMeshVSEdgeEntity::appendPoint(FITKGeoMeshVSPt* pt)
{
//添加点
if (pt) _ptList.append(pt);
}
int FITKGeoMeshVSEdgeEntity::getPointCount()
{
return _ptList.count();
}
const QList<FITKGeoMeshVSPt*>& FITKGeoMeshVSEdgeEntity::getPoints() const
{
//返回点列表
return _ptList;
}
}