gui_geometrydata.cpp

来自「linux下一款GIS程序源码」· C++ 代码 · 共 117 行

CPP
117
字号
/*  gui_geometrydata.cpp  */#include "gui_geometrydata.h"#include "KitSrc/ugkglobal.h"#include "KitSrc/ugk_errhandle.h"#include "KitSrc/ugk_memopr.h"/*******************************************           类GUI_GeometryPoint*******************************************/GUI_GeometryPoint::GUI_GeometryPoint(){    m_geoNum = 0;    m_geoPoints = NULL;}GUI_GeometryPoint::~GUI_GeometryPoint(){    if(m_geoPoints)    {	UGK_Free(m_geoPoints);    }}void GUI_GeometryPoint::setGeoNum(int num){        if(m_geoPoints)	UGK_Free(m_geoPoints);    m_geoPoints = (RawPoint *)UGK_Calloc( num,sizeof(RawPoint) );    // 错误已经在UGK_Calloc()中报告了    if(m_geoPoints)	m_geoNum = num;}void GUI_GeometryPoint::addPoint(int idx,double x, double y){    if((idx<0)||(idx>=m_geoNum))    {	UGKError(ET_Failure,UGKErr_IllegalArg,"GUI_GeometryPoint::addPoint(),Invalid param idx:%d",idx);	return;    }    (m_geoPoints+idx)->x = x;    (m_geoPoints+idx)->y = y;    }RawPoint* GUI_GeometryPoint::getPoint(int idx){        if((idx<0)||(idx>m_geoNum))    {	UGKError(ET_Failure,UGKErr_IllegalArg,		 "GUI_GeometryPoint::getPoint(),Invalid param idx:%d",idx);	return 0;    }       return m_geoPoints+idx;}/********************************************            类GUI_GeometryLine********************************************/GUI_GeometryLine::GUI_GeometryLine(){    m_geoNum = 0;    m_geoLines = NULL;}GUI_GeometryLine::~GUI_GeometryLine(){    if(m_geoNum>0)    {	for(int i=0;i<m_geoNum;i++)	{	    RawPoint *tmp =(m_geoLines+i)->Points;	    UGK_Free(tmp);	}	UGK_Free(m_geoLines);    }}void GUI_GeometryLine::setGeoNum(int num){    if(m_geoLines)	UGK_Free(m_geoLines);    m_geoLines = (RawLine *)UGK_Calloc(num,sizeof(RawLine));    // 错误已经在UGK_Calloc()中报告了    if(m_geoLines)	m_geoNum = num;}// pts分配的内存最终由GUI_GeometryLine来释放void GUI_GeometryLine::addLine(int idx, RawPoint *pts,int ptNum){    if((idx<0)||(idx>m_geoNum))    {	UGKError(ET_Failure,UGKErr_IllegalArg,		 "GUI_GeometryLine::addLine(),Invalid param idx:%d",idx);	return;    }    (m_geoLines+idx)->numPoint = ptNum;    (m_geoLines+idx)->Points = pts;}RawLine* GUI_GeometryLine::getLine(int idx){    if((idx<0)||(idx>m_geoNum))    {	UGKError(ET_Failure,UGKErr_IllegalArg,		 "GUI_GeometryLine::getLine(),Invalid param idx:%d",idx);	return 0;    }    return (m_geoLines+idx);}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?