⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 wksp_data_manager.cpp

📁 这是一个GPS相关的程序
💻 CPP
📖 第 1 页 / 共 3 页
字号:

	return( NULL );
}

//---------------------------------------------------------
void CWKSP_Data_Manager::Del_Manager(CWKSP_Base_Item *pItem)
{
	if( pItem == m_pGrids )
	{
		m_pGrids	= NULL;
	}
	else if( pItem == m_pTables )
	{
		m_pTables	= NULL;
	}
	else if( pItem == m_pShapes )
	{
		m_pShapes	= NULL;
	}
	else if( pItem == m_pTINs )
	{
		m_pTINs		= NULL;
	}
}

//---------------------------------------------------------
bool CWKSP_Data_Manager::_Get_Manager(int DataType)
{
	switch( DataType )
	{
	default:
		return( false );

	case DATAOBJECT_TYPE_Grid:
		if( !m_pGrids )
		{
			Add_Item(m_pGrids   = new CWKSP_Grid_Manager);
		}

		return( m_pGrids  != NULL );

	case DATAOBJECT_TYPE_Table:
		if( !m_pTables )
		{
			Add_Item(m_pTables  = new CWKSP_Table_Manager);
		}

		return( m_pTables != NULL );

	case DATAOBJECT_TYPE_Shapes:
		if( !m_pShapes )
		{
			Add_Item(m_pShapes = new CWKSP_Shapes_Manager);
		}

		return( m_pShapes != NULL );

	case DATAOBJECT_TYPE_TIN:
		if( !m_pTINs )
		{
			Add_Item(m_pTINs   = new CWKSP_TIN_Manager);
		}

		return( m_pTINs   != NULL );
	}
}


///////////////////////////////////////////////////////////
//														 //
//														 //
//														 //
///////////////////////////////////////////////////////////

//---------------------------------------------------------
bool CWKSP_Data_Manager::Update(CSG_Data_Object *pObject, CSG_Parameters *pParameters)
{
	if( pObject )
	{
		switch( pObject->Get_ObjectType() )
		{
		case DATAOBJECT_TYPE_Grid:
			return( m_pGrids  && m_pGrids ->Update((CSG_Grid   *)pObject, pParameters) );

		case DATAOBJECT_TYPE_Table:
			return( m_pTables && m_pTables->Update((CSG_Table  *)pObject, pParameters) );

		case DATAOBJECT_TYPE_Shapes:
			return( m_pShapes && m_pShapes->Update((CSG_Shapes *)pObject, pParameters) );

		case DATAOBJECT_TYPE_TIN:
			return( m_pTINs   && m_pTINs  ->Update((CSG_TIN    *)pObject, pParameters) );

		default:
			break;
		}
	}

	return( false );
}

//---------------------------------------------------------
bool CWKSP_Data_Manager::Update_Views(CSG_Data_Object *pObject)
{
	if( pObject )
	{
		switch( pObject->Get_ObjectType() )
		{
		case DATAOBJECT_TYPE_Grid:
			return( m_pGrids  && m_pGrids ->Update_Views((CSG_Grid   *)pObject) );

		case DATAOBJECT_TYPE_Table:
			return( m_pTables && m_pTables->Update_Views((CSG_Table  *)pObject) );

		case DATAOBJECT_TYPE_Shapes:
			return( m_pShapes && m_pShapes->Update_Views((CSG_Shapes *)pObject) );

		case DATAOBJECT_TYPE_TIN:
			return( m_pTINs   && m_pTINs  ->Update_Views((CSG_TIN    *)pObject) );

		default:
			break;
		}
	}

	return( false );
}


///////////////////////////////////////////////////////////
//														 //
//														 //
//														 //
///////////////////////////////////////////////////////////

//---------------------------------------------------------
bool CWKSP_Data_Manager::Show(CSG_Data_Object *pObject)
{
	if( pObject )
	{
		switch( pObject->Get_ObjectType() )
		{
		case DATAOBJECT_TYPE_Grid:
			return( m_pGrids  && m_pGrids ->Show((CSG_Grid   *)pObject) );

		case DATAOBJECT_TYPE_Table:
			return( m_pTables && m_pTables->Show((CSG_Table  *)pObject) );

		case DATAOBJECT_TYPE_Shapes:
			return( m_pShapes && m_pShapes->Show((CSG_Shapes *)pObject) );

		case DATAOBJECT_TYPE_TIN:
			return( m_pTINs   && m_pTINs  ->Show((CSG_TIN    *)pObject) );

		default:
			break;
		}
	}

	return( false );
}

//---------------------------------------------------------
bool CWKSP_Data_Manager::asImage(CSG_Data_Object *pObject, CSG_Grid *pImage)
{
	if( pObject )
	{
		switch( pObject->Get_ObjectType() )
		{
		case DATAOBJECT_TYPE_Grid:
			return( m_pGrids  && m_pGrids ->asImage((CSG_Grid   *)pObject, pImage) );

		case DATAOBJECT_TYPE_Shapes:
			return( m_pShapes && m_pShapes->asImage((CSG_Shapes *)pObject, pImage) );

		case DATAOBJECT_TYPE_TIN:
			return( m_pTINs   && m_pTINs  ->asImage((CSG_TIN    *)pObject, pImage) );

		default:
			break;
		}
	}

	return( false );
}

//---------------------------------------------------------
bool CWKSP_Data_Manager::Get_Colors(CSG_Data_Object *pObject, CSG_Colors *pColors)
{
	if( pObject && pColors )
	{
		switch( pObject->Get_ObjectType() )
		{
		case DATAOBJECT_TYPE_Grid:
			return( m_pGrids ->Get_Colors((CSG_Grid   *)pObject, pColors) );

		case DATAOBJECT_TYPE_Shapes:
			return( m_pShapes->Get_Colors((CSG_Shapes *)pObject, pColors) );

		case DATAOBJECT_TYPE_TIN:
			return( m_pTINs  ->Get_Colors((CSG_TIN    *)pObject, pColors) );

		default:
			break;
		}
	}

	return( false );
}

//---------------------------------------------------------
bool CWKSP_Data_Manager::Set_Colors(CSG_Data_Object *pObject, CSG_Colors *pColors)
{
	if( pObject && pColors )
	{
		switch( pObject->Get_ObjectType() )
		{
		case DATAOBJECT_TYPE_Grid:
			return( m_pGrids ->Set_Colors((CSG_Grid   *)pObject, pColors) );

		case DATAOBJECT_TYPE_Shapes:
			return( m_pShapes->Set_Colors((CSG_Shapes *)pObject, pColors) );

		case DATAOBJECT_TYPE_TIN:
			return( m_pTINs  ->Set_Colors((CSG_TIN    *)pObject, pColors) );

		default:
			break;
		}
	}

	return( false );
}

//---------------------------------------------------------
bool CWKSP_Data_Manager::Get_Parameters(CSG_Data_Object *pObject, CSG_Parameters *pParameters)
{
	if( pObject && pParameters )
	{
		CWKSP_Base_Item	*pItem;

		switch( pObject->Get_ObjectType() )
		{
		case DATAOBJECT_TYPE_Grid:
			pItem	= (CWKSP_Base_Item *)m_pGrids ->Get_Grid  ((CSG_Grid   *)pObject);
			break;

		case DATAOBJECT_TYPE_Shapes:
			pItem	= (CWKSP_Base_Item *)m_pShapes->Get_Shapes((CSG_Shapes *)pObject);
			break;

		case DATAOBJECT_TYPE_TIN:
			pItem	= (CWKSP_Base_Item *)m_pTINs  ->Get_TIN   ((CSG_TIN    *)pObject);
			break;

		case DATAOBJECT_TYPE_Table:
			pItem	= (CWKSP_Base_Item *)m_pTables->Get_Table ((CSG_Table  *)pObject);
			break;

		default:
			pItem	= NULL;
			break;
		}

		if( pItem && pItem->Get_Parameters() )
		{
			return( pParameters->Assign(pItem->Get_Parameters()) != 0 );
		}
	}

	return( false );
}

//---------------------------------------------------------
bool CWKSP_Data_Manager::Set_Parameters(CSG_Data_Object *pObject, CSG_Parameters *pParameters)
{
	if( pObject && pParameters )
	{
		CWKSP_Base_Item	*pItem;

		switch( pObject->Get_ObjectType() )
		{
		case DATAOBJECT_TYPE_Grid:
			pItem	= (CWKSP_Base_Item *)m_pGrids ->Get_Grid  ((CSG_Grid   *)pObject);
			break;

		case DATAOBJECT_TYPE_Shapes:
			pItem	= (CWKSP_Base_Item *)m_pShapes->Get_Shapes((CSG_Shapes *)pObject);
			break;

		case DATAOBJECT_TYPE_TIN:
			pItem	= (CWKSP_Base_Item *)m_pTINs  ->Get_TIN   ((CSG_TIN    *)pObject);
			break;

		case DATAOBJECT_TYPE_Table:
			pItem	= (CWKSP_Base_Item *)m_pTables->Get_Table ((CSG_Table  *)pObject);
			break;

		default:
			pItem	= NULL;
			break;
		}

		if( pItem && pItem->Get_Parameters() )
		{
			if( pItem->Get_Parameters()->Assign_Values(pParameters) != 0 )
			{
				pItem->Parameters_Changed();
			}
		}
	}

	return( false );
}


///////////////////////////////////////////////////////////
//														 //
//														 //
//														 //
///////////////////////////////////////////////////////////

//---------------------------------------------------------
#include "wksp_grid_system.h"
#include "wksp_grid.h"
#include "wksp_shapes_type.h"
#include "wksp_shapes.h"
#include "wksp_table.h"

//---------------------------------------------------------
bool CWKSP_Data_Manager::Get_DataObject_List(CSG_Parameters *pParameters)
{
	if( pParameters )
	{
		int					i, j;
		CSG_String			s;
		CWKSP_Shapes_Type	*pShapes;

		pParameters->Destroy();

		for(i=0; i<Get_Grids()->Get_Count(); i++)
		{
			for(j=0; j<Get_Grids()->Get_System(i)->Get_Count(); j++)
			{
				s.Printf(wxT("GRID_%03_%03"), i, j);
				pParameters->Add_Grid(NULL, s, s, LNG(""), PARAMETER_INPUT)
					->Set_Value(Get_Grids()->Get_System(i)->Get_Grid(j)->Get_Grid());
			}
		}

		if( (pShapes = Get_Shapes()->Get_Shapes_Type(SHAPE_TYPE_Point)) != NULL )
		{
			for(i=0; i<pShapes->Get_Count(); i++)
			{
				s.Printf(wxT("POINT_%03"), i);
				pParameters->Add_Shapes(NULL, s, s, LNG(""), PARAMETER_INPUT)
					->Set_Value(pShapes->Get_Shapes(i)->Get_Shapes());
			}
		}

		if( (pShapes = Get_Shapes()->Get_Shapes_Type(SHAPE_TYPE_Points)) != NULL )
		{
			for(i=0; i<pShapes->Get_Count(); i++)
			{
				s.Printf(wxT("POINTS_%03"), i);
				pParameters->Add_Shapes(NULL, s, s, LNG(""), PARAMETER_INPUT)
					->Set_Value(pShapes->Get_Shapes(i)->Get_Shapes());
			}
		}

		if( (pShapes = Get_Shapes()->Get_Shapes_Type(SHAPE_TYPE_Line)) != NULL )
		{
			for(i=0; i<pShapes->Get_Count(); i++)
			{
				s.Printf(wxT("LINE_%03"), i);
				pParameters->Add_Shapes(NULL, s, s, LNG(""), PARAMETER_INPUT)
					->Set_Value(pShapes->Get_Shapes(i)->Get_Shapes());
			}
		}

		if( (pShapes = Get_Shapes()->Get_Shapes_Type(SHAPE_TYPE_Polygon)) != NULL )
		{
			for(i=0; i<pShapes->Get_Count(); i++)
			{
				s.Printf(wxT("POLYGON_%03"), i);
				pParameters->Add_Shapes(NULL, s, s, LNG(""), PARAMETER_INPUT)
					->Set_Value(pShapes->Get_Shapes(i)->Get_Shapes());
			}
		}

		for(i=0; i<Get_Tables()->Get_Count(); i++)
		{
			s.Printf(wxT("TABLE_%03"), i);
			pParameters->Add_Table(NULL, s, s, LNG(""), PARAMETER_INPUT)
				->Set_Value(Get_Tables()->Get_Table(i)->Get_Table());
		}

		return( true );
	}

	return( false );
}


///////////////////////////////////////////////////////////
//														 //
//														 //
//														 //
///////////////////////////////////////////////////////////

//---------------------------------------------------------

⌨️ 快捷键说明

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