Exemplo n.º 1
0
//---------------------------------------------------------
void CSG_MetaData::_Save(wxXmlNode *pNode) const
{
	int		i;

	pNode->SetName	 (Get_Name().Length() ? SG_String_To_UTF8(Get_Name()).c_str() : SG_T("NODE"));
	pNode->SetContent(SG_String_To_UTF8(Get_Content()).c_str());

	if( Get_Content().Length() > 0 )
	{
		wxXmlNode	*pChild	= new wxXmlNode(pNode, wxXML_TEXT_NODE, SG_T("TEXT"));// SG_String_To_UTF8(Get_Name()).c_str());

		pChild->SetContent(SG_String_To_UTF8(Get_Content()).c_str());
	}

	//-----------------------------------------------------
	for(i=0; i<Get_Property_Count(); i++)
	{
		pNode->AddProperty(SG_String_To_UTF8(Get_Property_Name(i)).c_str(), SG_String_To_UTF8(Get_Property(i)).c_str());
	}

	//-----------------------------------------------------
	for(i=Get_Children_Count()-1; i>=0; i--)
	{
		if( Get_Child(i)->Get_Content().Length() > 0 || Get_Child(i)->Get_Children_Count() > 0 )
		{
			wxXmlNode	*pChild	= new wxXmlNode(pNode, wxXML_ELEMENT_NODE, SG_String_To_UTF8(Get_Child(i)->Get_Name()).c_str());

			Get_Child(i)->_Save(pChild);
		}
	}
}
Exemplo n.º 2
0
//---------------------------------------------------------
void CSG_MetaData::_Save(wxXmlNode *pNode) const
{
	int		i;

	//-----------------------------------------------------
	pNode->SetName	 (CSG_String(Get_Name().Length() ? Get_Name() : CSG_String("NODE")).c_str());
	pNode->SetContent(Get_Content().c_str());

	if( Get_Content().Length() > 0 || (Get_Property_Count() == 0 && Get_Children_Count() == 0) )
	{
		wxXmlNode	*pChild	= new wxXmlNode(pNode, wxXML_TEXT_NODE, SG_T("TEXT"));

		pChild->SetContent(Get_Content().c_str());
	}

	//-----------------------------------------------------
	for(i=0; i<Get_Property_Count(); i++)
	{
		pNode->AddAttribute(Get_Property_Name(i).c_str(), Get_Property(i));
	}

	//-----------------------------------------------------
	for(i=Get_Children_Count()-1; i>=0; i--)
	{
		Get_Child(i)->_Save(new wxXmlNode(pNode, wxXML_ELEMENT_NODE, Get_Child(i)->Get_Name().c_str()));
	}
}
Exemplo n.º 3
0
bool NetGuard_User_State_Check_Maconoff_Enable::checkstate(NetGuard_User_State* state_data)
{
	if (state_data->Getuser().vlan_id != my_instance->mof_vlan_id) //if it is not our vlan -> return false which  results in use of another handler
		return true;

	ng_slogdebug_spam(Get_Name().c_str(),"check state change for user (user: %s vlan: %d)",inet_ntoa(*(struct in_addr *)&state_data->Getuser().saddr),state_data->Getuser().vlan_id);	
	mac_addr n_hw_addr = {0,0,0,0,0,0};
	if (compare_mac(state_data->params()->GetMac("mac"),&n_hw_addr))
	{
		ng_slogerror(Get_Name().c_str(),"invalid enabled state - no mac in params (user: %s vlan: %d)",inet_ntoa(*(struct in_addr *)&state_data->Getuser().saddr),state_data->Getuser().vlan_id);	
		return false;
	}
	return true;
}
Exemplo n.º 4
0
//---------------------------------------------------------
CSG_String CSG_MetaData::asText(int Flags) const
{
	CSG_String	s;

	if( Flags == 0 )
	{
		for(int i=0; i<Get_Children_Count(); i++)
		{
			s	+= Get_Child(i)->Get_Name() + ":\t" + Get_Child(i)->Get_Content() + "\n";
		}
	}
	else
	{
		wxXmlDocument	XML;

		wxXmlNode	*pRoot	= new wxXmlNode(NULL, wxXML_ELEMENT_NODE, Get_Name().c_str());

		XML.SetRoot(pRoot);

		_Save(pRoot);

		wxStringOutputStream	Stream;

		XML.Save(Stream);

		s	= &Stream.GetString();

		if( Flags == 2 )	// remove <xml>
		{
			s	= s.AfterFirst('\n');
		}
	}

	return( s );
}
//---------------------------------------------------------
wxString CWKSP_Module_Group::Get_Description(void)
{
	wxString	s;

	s	+= wxString::Format("<h4>%s</h4>", _TL("Tool Libraries"));

	s	+= "<table border=\"0\">";

	s	+= SUMMARY_ADD_STR(_TL("Category" ), Get_Name().c_str());
	s	+= SUMMARY_ADD_INT(_TL("Libraries"), Get_Count());

	s	+= "</table>";

	//-----------------------------------------------------
	s	+= wxString::Format("<hr><h4>%s</h4><table border=\"0\">", _TL("Tool Libraries"));

	s	+= wxString::Format("<tr align=\"left\"><th>%s</th><th>%s</th><th>%s</th></tr>",
			_TL("Library"),
			_TL("Name"   ),
			_TL("Tools"  )
		);

	for(int i=0; i<Get_Count(); i++)
	{
		s	+= wxString::Format("<tr><td valign=\"top\"><i>%s</i></td><td valign=\"top\">%s</td><td valign=\"top\" align=\"right\">%d</td></tr>",
				Get_Library(i)->Get_Library()->Get_Library_Name().c_str(),
				Get_Library(i)->Get_Name().c_str(),
				Get_Library(i)->Get_Count()
			);
	}

	s	+= "</table>";

	return( s );
}
//---------------------------------------------------------
bool CViGrA_Watershed::On_Execute(void)
{
	CSG_Grid	*pInput  = Parameters("INPUT" )->asGrid();
	CSG_Grid	*pOutput = Parameters("OUTPUT")->asGrid();

	//-----------------------------------------------------
	if( !Parameters("RGB")->asBool() )
	{
		vigra::FImage	Input, Output(Get_NX(), Get_NY());

		Copy_Grid_SAGA_to_VIGRA(*pInput, Input, true);

		Segmentation(Input, Output, Parameters("SCALE")->asDouble(), Parameters("EDGES")->asBool());

		Copy_Grid_VIGRA_to_SAGA(*pOutput, Output, false);
	}

	//-----------------------------------------------------
	else	// perform watershed segmentation on color image
	{
		vigra::BRGBImage	Input, Output(Get_NX(), Get_NY());

		Copy_RGBGrid_SAGA_to_VIGRA(*pInput, Input, true);

		Segmentation(Input, Output, Parameters("SCALE")->asDouble(), Parameters("EDGES")->asBool());

		Copy_RGBGrid_VIGRA_to_SAGA(*pOutput, Output, false);
	}

	//-----------------------------------------------------
	pOutput->Fmt_Name("%s [%s]", pInput->Get_Name(), Get_Name().c_str());

	return( true );
}
Exemplo n.º 7
0
//---------------------------------------------------------
bool CSG_MetaData::to_XML(CSG_String &_XML) const
{
	wxXmlDocument	XML;

	wxXmlNode	*pRoot	= new wxXmlNode(NULL, wxXML_ELEMENT_NODE, Get_Name().c_str());

	XML.SetRoot(pRoot);

	_Save(pRoot);

	wxMemoryOutputStream	Stream;

	if( XML.Save(Stream) )
	{
		CSG_Array	s(sizeof(char), Stream.GetSize());

		Stream.CopyTo(s.Get_Array(), s.Get_Size());

		_XML	= (const char *)s.Get_Array();

		return( true );
	}

	return( false );
}
Exemplo n.º 8
0
//---------------------------------------------------------
wxString CWKSP_Grid_System::Get_Description(void)
{
	wxString	s;

	s.Printf(wxT("<b>%s</b><table border=\"0\">"), LNG("[CAP] Grid System"));

	s.Append(wxString::Format(wxT("<tr><td>%s</td><td>%s</td></tr>"),
		LNG("[CAP] Name")					, Get_Name().c_str()
	));

	s.Append(wxString::Format(wxT("<tr><td>%s</td><td>%d</td></tr>"),
		LNG("[CAP] Number Of Grids")		, Get_Count()
	));

	s.Append(wxString::Format(wxT("<tr><td>%s</td><td>%d (x) * %d (y) = %ld</td></tr>"),
		LNG("[CAP] Number Of Cells")		, m_System.Get_NX(), m_System.Get_NY(), m_System.Get_NCells()
	));

	s.Append(wxString::Format(wxT("<tr><td>%s</td><td>%f</td></tr>"),
		LNG("[CAP] Cell Size")				, m_System.Get_Cellsize()
	));

	s.Append(wxString::Format(wxT("<tr><td>%s</td><td>[%f] - [%f] = [%f]</td></tr>"),
		LNG("[CAP] West-East")				, m_System.Get_XMin(), m_System.Get_XMax(), m_System.Get_XRange()
	));

	s.Append(wxString::Format(wxT("<tr><td>%s</td><td>[%f] - [%f] = [%f]</td></tr>"),
		LNG("[CAP] South-North")			, m_System.Get_YMin(), m_System.Get_YMax(), m_System.Get_YRange()
	));

	s.Append(wxT("</table>"));

	//-----------------------------------------------------
	return( s );
}
Exemplo n.º 9
0
//---------------------------------------------------------
bool C_Kriging_Base::_Get_Grid(void)
{
	CSG_Shapes	*pShapes	= Parameters("SHAPES")->asShapes();

	m_pGrid		= NULL;
	m_pVariance	= NULL;

	//-------------------------------------------------
	switch( Parameters("TARGET")->asInt() )
	{
	case 0:	// user defined...
		if( Dlg_Parameters("USER") )
		{
			m_pGrid		= _Get_Grid(pShapes->Get_Extent());
		}
		break;

	case 1:	// grid system...
		if( Dlg_Parameters("SYSTEM") )
		{
			m_pGrid		= SG_Create_Grid(*Get_Parameters("SYSTEM")->Get_Parameter("SYSTEM")->asGrid_System(), SG_DATATYPE_Float);
		}
		break;

	case 2:	// grid...
		if( Dlg_Parameters("GRID") )
		{
			m_pGrid		= Get_Parameters("GRID")->Get_Parameter("GRID")		->asGrid();
			m_pVariance	= Get_Parameters("GRID")->Get_Parameter("VARIANCE")	->asGrid();
		}
		break;
	}

	//-------------------------------------------------
	if( m_pGrid )
	{
		if( !m_pVariance && Parameters("BVARIANCE")->asBool() )
		{
			m_pVariance	= SG_Create_Grid(m_pGrid, SG_DATATYPE_Float);
		}

		m_pGrid->Set_Name(CSG_String::Format(SG_T("%s (%s)"), pShapes->Get_Name(), Get_Name()));
		Parameters("GRID")->Set_Value(m_pGrid);

		if( m_pVariance )
		{
			m_pVariance->Set_Name(CSG_String::Format(SG_T("%s (%s - %s)"), pShapes->Get_Name(), Get_Name(), _TL("Variance")));
			Parameters("VARIANCE")->Set_Value(m_pVariance);
		}

		if( Parameters("TARGET")->asInt() == 2 )
		{
			Get_Parameters("GRID")->Get_Parameter("VARIANCE")->Set_Value(m_pVariance);
		}
	}

	//-----------------------------------------------------
	return( m_pGrid != NULL );
}
Exemplo n.º 10
0
//---------------------------------------------------------
bool CViGrA_Morphology::On_Execute(void)
{
	bool		bRescale;
	int			Type, Radius;
	double		Rank;
	CSG_Grid	*pInput, *pOutput, Rescaled;

	pInput		= Parameters("INPUT")	->asGrid();
	pOutput		= Parameters("OUTPUT")	->asGrid();
	Type		= Parameters("TYPE")	->asInt();
	Radius		= Parameters("RADIUS")	->asInt();
	Rank		= Parameters("RANK")	->asDouble();
	bRescale	= Parameters("RESCALE")	->asBool();

	//-----------------------------------------------------
	if( bRescale )
	{
		Rescaled.Create(*Get_System(), SG_DATATYPE_Byte);

		for(sLong i=0; i<Get_NCells() && Set_Progress_NCells(i); i++)
		{
			Rescaled.Set_Value(i, 0.5 + (pInput->asDouble(i) - pInput->Get_ZMin()) * 255.0 / pInput->Get_ZRange());
		}

		pInput	= &Rescaled;
	}

	//-----------------------------------------------------
	vigra::BImage	Input, Output(Get_NX(), Get_NY());

	Copy_Grid_SAGA_to_VIGRA(*pInput, Input, true);

	switch( Type )
	{
	case 0:	// Dilation
		discDilation		(srcImageRange(Input), destImage(Output), Radius);
		break;

	case 1:	// Erosion
		discErosion			(srcImageRange(Input), destImage(Output), Radius);
		break;

	case 2:	// Median
		discMedian			(srcImageRange(Input), destImage(Output), Radius);
		break;

	case 3:	// User defined rank
		discRankOrderFilter	(srcImageRange(Input), destImage(Output), Radius, Rank);
		break;
	}

	//-----------------------------------------------------
	Copy_Grid_VIGRA_to_SAGA(*pOutput, Output, false);

	pOutput->Set_Name(CSG_String::Format(SG_T("%s [%s]"), pInput->Get_Name(), Get_Name().c_str()));

	return( true );
}
Exemplo n.º 11
0
bool NetGuard_User_SCE_Maconoff::set_failure_state(NetGuard_User_State *user, std::string error) 
{
	NetGuard_State *my_state_f = NetGuard_State_Handler::get_state(GlobalCFG::GetStr("mof.failure_state","failure"));
	if (!my_state_f) {
		ng_slogerror(Get_Name().c_str(),"%s state %s unkown",__FUNCTION__,GlobalCFG::GetStr("mof.failure_state","failure").c_str());
		return false;
	}
	return user->set(my_state_f,error);
}
Exemplo n.º 12
0
//---------------------------------------------------------
wxMenu * CWKSP_Grid_System::Get_Menu(void)
{
	wxMenu	*pMenu;

	pMenu	= new wxMenu(Get_Name());

	CMD_Menu_Add_Item(pMenu, false, ID_CMD_WKSP_ITEM_CLOSE);

	return( pMenu );
}
//---------------------------------------------------------
wxMenu * CWKSP_Tool_Library::Get_Menu(void)
{
	wxMenu	*pMenu;

	pMenu	= new wxMenu(Get_Name());

	CMD_Menu_Add_Item(pMenu, false, ID_CMD_WKSP_ITEM_CLOSE);

	return( pMenu );
}
Exemplo n.º 14
0
//---------------------------------------------------------
bool CWKSP_Map_Layer::On_Command(int Cmd_ID)
{
	switch( Cmd_ID )
	{
	default:
		return( CWKSP_Base_Item::On_Command(Cmd_ID) );

	case ID_CMD_SHAPES_EDIT_SHAPE:
	case ID_CMD_SHAPES_EDIT_ADD_SHAPE:
	case ID_CMD_SHAPES_EDIT_DEL_SHAPE:
	case ID_CMD_SHAPES_EDIT_ADD_PART:
	case ID_CMD_SHAPES_EDIT_DEL_PART:
	case ID_CMD_SHAPES_EDIT_DEL_POINT:
	case ID_CMD_SHAPES_EDIT_SEL_CLEAR:
	case ID_CMD_SHAPES_EDIT_SEL_INVERT:
		return( m_pLayer->On_Command(Cmd_ID) );

	case ID_CMD_WKSP_ITEM_RETURN:
	case ID_CMD_MAPS_LAYER_SHOW:
		m_bShow	= !m_bShow;
		((wxTreeCtrl *)Get_Control())->SetItemText(GetId(), Get_Name());
		((CWKSP_Map *)Get_Manager())->View_Refresh(true);
		break;

	case ID_CMD_MAPS_MOVE_TOP:
		if( Get_Manager()->Move_Top(this) )
			((CWKSP_Map *)Get_Manager())->View_Refresh(false);
		break;

	case ID_CMD_MAPS_MOVE_BOTTOM:
		if( Get_Manager()->Move_Bottom(this) )
			((CWKSP_Map *)Get_Manager())->View_Refresh(false);
		break;

	case ID_CMD_MAPS_MOVE_UP:
		if( Get_Manager()->Move_Up(this) )
			((CWKSP_Map *)Get_Manager())->View_Refresh(false);
		break;

	case ID_CMD_MAPS_MOVE_DOWN:
		if( Get_Manager()->Move_Down(this) )
			((CWKSP_Map *)Get_Manager())->View_Refresh(false);
		break;

	case ID_CMD_MAPS_GRID_FITCOLORS:
		if( m_pLayer->Get_Type() == WKSP_ITEM_Grid )
			((CWKSP_Grid *)m_pLayer)->Fit_Color_Range(((CWKSP_Map *)Get_Manager())->Get_Extent());
		break;
	}

	return( true );
}
Exemplo n.º 15
0
//---------------------------------------------------------
void CWKSP_Base_Item::Parameters_Changed(void)
{
	if( Get_Control() && GetId().IsOk() )
	{
		Get_Control()->SetItemText(GetId(), Get_Name());
	}

	if( g_pACTIVE )
	{
		g_pACTIVE->Update_Description();
		g_pACTIVE->Update(this, false);
	}
}
Exemplo n.º 16
0
//---------------------------------------------------------
bool CSG_MetaData::Save(const CSG_String &File, const SG_Char *Extension) const
{
	wxXmlDocument	XML;

	wxXmlNode	*pRoot	= new wxXmlNode(NULL, wxXML_ELEMENT_NODE, Get_Name().c_str());

	XML.SetRoot(pRoot);

	_Save(pRoot);

	if( XML.Save(SG_File_Make_Path(NULL, File, Extension).c_str()) )
	{
		return( true );
	}

	return( false );
}
Exemplo n.º 17
0
int
p_get_env(value v0, type t0,
	value v1, type t1)
{
        extern char *getenv();
        char *name;
        value v;

        Get_Name(v0,t0,name)
        name = getenv(name);
        if(name == (char *) 0)
        {
                Fail;
        }
        Cstring_To_Prolog(name, v);
        Return_Unify_String(v1, t1, v.ptr)
}
Exemplo n.º 18
0
//---------------------------------------------------------
bool CSG_MetaData::Save(CSG_File &File) const
{
	wxXmlDocument	XML;

	wxXmlNode	*pRoot	= new wxXmlNode(NULL, wxXML_ELEMENT_NODE, Get_Name().c_str());

	XML.SetRoot(pRoot);

	_Save(pRoot);

	if( File.is_Writing() && XML.Save(*((wxOutputStream *)File.Get_Stream())) )
	{
		return( true );
	}

	return( false );
}
Exemplo n.º 19
0
//---------------------------------------------------------
bool CSG_MetaData::Save(CSG_File &File) const
{
	wxXmlDocument	XML;

	wxXmlNode	*pRoot	= new wxXmlNode(NULL, wxXML_ELEMENT_NODE, Get_Name().c_str());

	XML.SetRoot(pRoot);

	_Save(pRoot);

	wxFFileOutputStream	Stream(File.Get_Stream());

	if( Stream.IsOk() && XML.Save(Stream) )
	{
		return( true );
	}

	return( false );
}
Exemplo n.º 20
0
bool cJoystick :: Stick_Open( unsigned int index )
{
	// if a joystick is already opened close it first
	if( m_joystick_open )
	{
		Stick_Close();
	}

	m_joystick = SDL_JoystickOpen( index );

	if( !m_joystick )
	{
		printf( "Couldn't open joystick %d\n", index );
		m_joystick_open = 0;
		return 0;
	}

	m_current_joystick = index;

	m_num_buttons = SDL_JoystickNumButtons( m_joystick );
	m_num_axes = SDL_JoystickNumAxes( m_joystick );
	m_num_balls = SDL_JoystickNumBalls( m_joystick );

	// setup available buttons
	m_buttons.assign( m_num_buttons, 0 );

	if( m_debug )
	{
		printf( "Opened Joystick %d\n", m_current_joystick );
		printf( "Name: %s\n", Get_Name().c_str() );
		printf( "Number of Buttons: %d\n", m_num_buttons );
		printf( "Number of Axes: %d\n", m_num_axes );
		printf( "Number of Balls: %d\n\n", m_num_balls );
	}

	m_joystick_open = 1;
	return 1;
}
Exemplo n.º 21
0
//---------------------------------------------------------
bool CWKSP_Map_Graticule::On_Command(int Cmd_ID)
{
	switch( Cmd_ID )
	{
	default:
		return( CWKSP_Base_Item::On_Command(Cmd_ID) );

	case ID_CMD_WKSP_ITEM_RETURN:
	case ID_CMD_MAPS_LAYER_SHOW:
		m_bShow	= !m_bShow;
		((wxTreeCtrl *)Get_Control())->SetItemText(GetId(), Get_Name());
		((CWKSP_Map *)Get_Manager())->View_Refresh(true);
		break;

	case ID_CMD_MAPS_MOVE_TOP:
		if( Get_Manager()->Move_Top(this) )
			((CWKSP_Map *)Get_Manager())->View_Refresh(false);
		break;

	case ID_CMD_MAPS_MOVE_BOTTOM:
		if( Get_Manager()->Move_Bottom(this) )
			((CWKSP_Map *)Get_Manager())->View_Refresh(false);
		break;

	case ID_CMD_MAPS_MOVE_UP:
		if( Get_Manager()->Move_Up(this) )
			((CWKSP_Map *)Get_Manager())->View_Refresh(false);
		break;

	case ID_CMD_MAPS_MOVE_DOWN:
		if( Get_Manager()->Move_Down(this) )
			((CWKSP_Map *)Get_Manager())->View_Refresh(false);
		break;
	}

	return( true );
}
Exemplo n.º 22
0
//---------------------------------------------------------
bool COpenCV_Morphology::On_Execute(void)
{
	int			Type, Shape, Radius, Iterations;
	CSG_Grid	*pInput, *pOutput;

	pInput		= Parameters("INPUT")		->asGrid();
	pOutput		= Parameters("OUTPUT")		->asGrid();
	Type		= Parameters("TYPE")		->asInt();
	Shape		= Parameters("SHAPE")		->asInt();
	Radius		= Parameters("RADIUS")		->asInt();
	Iterations	= Parameters("ITERATIONS")	->asInt();

	//-----------------------------------------------------
	switch( Shape )
	{
	default:
	case 0:	Shape	= CV_SHAPE_ELLIPSE;	break;
	case 1:	Shape	= CV_SHAPE_RECT;	break;
	case 2:	Shape	= CV_SHAPE_CROSS;	break;
	}

	//-----------------------------------------------------
	IplImage	*cv_pInput	= Get_CVImage(pInput);
	IplImage	*cv_pOutput	= Get_CVImage(Get_NX(), Get_NY(), pInput->Get_Type());
	IplImage	*cv_pTmp	= NULL;

	//-----------------------------------------------------
	IplConvKernel	*cv_pElement	= cvCreateStructuringElementEx(Radius * 2 + 1, Radius * 2 + 1, Radius, Radius, Shape, 0);

	switch( Type )
	{
	case 0:	// dilation
		cvDilate		(cv_pInput, cv_pOutput, cv_pElement, Iterations);
		break;

	case 1:	// erosion
		cvErode			(cv_pInput, cv_pOutput, cv_pElement, Iterations);
		break;

	case 2:	// opening
		cvMorphologyEx	(cv_pInput, cv_pOutput, cv_pTmp,
			cv_pElement, CV_MOP_OPEN    , Iterations
		);
		break;

	case 3:	// closing
		cvMorphologyEx	(cv_pInput, cv_pOutput, cv_pTmp,
			cv_pElement, CV_MOP_CLOSE   , Iterations
		);
		break;

	case 4:	// morpological gradient
		cvMorphologyEx	(cv_pInput, cv_pOutput, cv_pTmp	= Get_CVImage(Get_NX(), Get_NY(), pInput->Get_Type()),
			cv_pElement, CV_MOP_GRADIENT, Iterations
		);
		break;

	case 5:	// top hat
		cvMorphologyEx	(cv_pInput, cv_pOutput, cv_pTmp	= Get_CVImage(Get_NX(), Get_NY(), pInput->Get_Type()),
			cv_pElement, CV_MOP_TOPHAT  , Iterations
		);
		break;

	case 6:	// black hat
		cvMorphologyEx	(cv_pInput, cv_pOutput, cv_pTmp	= Get_CVImage(Get_NX(), Get_NY(), pInput->Get_Type()),
			cv_pElement, CV_MOP_BLACKHAT, Iterations
		);
		break;
	}

	cvReleaseStructuringElement(&cv_pElement);

	//-----------------------------------------------------
	Copy_CVImage_To_Grid(pOutput, cv_pOutput);

    cvReleaseImage(&cv_pInput);
    cvReleaseImage(&cv_pOutput);

	if( cv_pTmp )
	{
		cvReleaseImage(&cv_pTmp);
	}

	pOutput->Set_Name(CSG_String::Format(SG_T("%s [%s]"), pInput->Get_Name(), Get_Name().c_str()));

	return( true );
}
Exemplo n.º 23
0
//---------------------------------------------------------
bool CKriging_Base::_Initialise_Grids(void)
{
	m_pGrid		= NULL;
	m_pVariance	= NULL;

	//-----------------------------------------------------
	switch( Parameters("TARGET")->asInt() )
	{
	case 0:	// user defined...
		if( m_Grid_Target.Init_User(m_pPoints->Get_Extent()) && Dlg_Parameters("USER") )
		{
			m_pGrid		= m_Grid_Target.Get_User();

			if( Get_Parameters("USER")->Get_Parameter("BVARIANCE")->asBool() )
			{
				m_pVariance	= m_Grid_Target.Get_User(SG_T("VARIANCE"));
			}
		}
		break;

	case 1:	// grid...
		if( Dlg_Parameters("GRID") )
		{
			m_pGrid		= m_Grid_Target.Get_Grid();
			m_pVariance	= m_Grid_Target.Get_Grid(SG_T("VARIANCE"));
		}
		break;
	}

	if( !m_pGrid )
	{
		return( false );
	}

	//-----------------------------------------------------
	m_pGrid->Set_Name(CSG_String::Format(SG_T("%s [%s]"), Parameters("ZFIELD")->asString(), Get_Name().c_str()));

	if( m_pVariance )
	{
		m_pVariance->Set_Name(CSG_String::Format(SG_T("%s [%s %s]"), Parameters("ZFIELD")->asString(), Get_Name().c_str(), m_bStdDev ? _TL("Standard Deviation") : _TL("Variance")));
	}

	return( true );
}
Exemplo n.º 24
0
//---------------------------------------------------------------
bool   FileHandler_C::Exists() {
    ifstream f( Get_Name() );
    return f.good() ;
};
Exemplo n.º 25
0
//---------------------------------------------------------
bool CInterpolation::On_Execute(void)
{
	bool	bResult	= false;

	//-----------------------------------------------------
	m_pShapes	= Parameters("SHAPES")	->asShapes();
	m_zField	= Parameters("FIELD")	->asInt();

	//-----------------------------------------------------
	m_pGrid		= NULL;

	switch( Parameters("TARGET")->asInt() )
	{
	case 0:	// user defined...
		if( m_Grid_Target.Init_User(m_pShapes->Get_Extent()) && Dlg_Parameters("USER") )
		{
			m_pGrid	= m_Grid_Target.Get_User();
		}
		break;

	case 1:	// grid...
		if( Dlg_Parameters("GRID") )
		{
			m_pGrid	= m_Grid_Target.Get_Grid();
		}
		break;
	}

	//-----------------------------------------------------
	if( m_pGrid )
	{
		m_pGrid->Set_Name(CSG_String::Format(SG_T("%s [%s]"), Parameters("FIELD")->asString(), Get_Name().c_str()));

		bResult	= Interpolate();
	}

	//-----------------------------------------------------
	m_Search.Destroy();

	if( m_pShapes != Parameters("SHAPES")->asShapes() )
	{
		delete(m_pShapes);
	}

	return( bResult );
}
Exemplo n.º 26
0
//---------------------------------------------------------
bool CSG_Grid::_Save_Native(const CSG_String &File_Name, int xA, int yA, int xN, int yN, bool bBinary)
{
	bool		bResult		= false;
	CSG_File	Stream;

	if(	Stream.Open(File_Name, SG_FILE_W, false) )
	{
		//-------------------------------------------------
		// Header...

		Stream.Printf(SG_T("%s\t= %s\n")	, gSG_Grid_File_Key_Names[ GRID_FILE_KEY_NAME			], Get_Name() );
		Stream.Printf(SG_T("%s\t= %s\n")	, gSG_Grid_File_Key_Names[ GRID_FILE_KEY_DESCRIPTION	], Get_Description() );
		Stream.Printf(SG_T("%s\t= %s\n")	, gSG_Grid_File_Key_Names[ GRID_FILE_KEY_UNITNAME		], Get_Unit() );
		Stream.Printf(SG_T("%s\t= %d\n")	, gSG_Grid_File_Key_Names[ GRID_FILE_KEY_DATAFILE_OFFSET], 0 );
		Stream.Printf(SG_T("%s\t= %s\n")	, gSG_Grid_File_Key_Names[ GRID_FILE_KEY_DATAFORMAT		], bBinary ? gSG_Data_Type_Identifier[Get_Type()] : SG_T("ASCII") );
		Stream.Printf(SG_T("%s\t= %s\n")	, gSG_Grid_File_Key_Names[ GRID_FILE_KEY_BYTEORDER_BIG	], GRID_FILE_KEY_FALSE );
		Stream.Printf(SG_T("%s\t= %.10f\n")	, gSG_Grid_File_Key_Names[ GRID_FILE_KEY_POSITION_XMIN	], Get_XMin() + Get_Cellsize() * xA );
		Stream.Printf(SG_T("%s\t= %.10f\n")	, gSG_Grid_File_Key_Names[ GRID_FILE_KEY_POSITION_YMIN	], Get_YMin() + Get_Cellsize() * yA );
		Stream.Printf(SG_T("%s\t= %d\n")	, gSG_Grid_File_Key_Names[ GRID_FILE_KEY_CELLCOUNT_X	], xN );
		Stream.Printf(SG_T("%s\t= %d\n")	, gSG_Grid_File_Key_Names[ GRID_FILE_KEY_CELLCOUNT_Y	], yN );
		Stream.Printf(SG_T("%s\t= %.10f\n")	, gSG_Grid_File_Key_Names[ GRID_FILE_KEY_CELLSIZE		], Get_Cellsize() );
		Stream.Printf(SG_T("%s\t= %f\n")	, gSG_Grid_File_Key_Names[ GRID_FILE_KEY_Z_FACTOR		], m_zFactor );
		Stream.Printf(SG_T("%s\t= %f\n")	, gSG_Grid_File_Key_Names[ GRID_FILE_KEY_NODATA_VALUE	], Get_NoData_Value() );
		Stream.Printf(SG_T("%s\t= %s\n")	, gSG_Grid_File_Key_Names[ GRID_FILE_KEY_TOPTOBOTTOM	], GRID_FILE_KEY_FALSE );


		//-------------------------------------------------
		// Data...

		if( Stream.Open(SG_File_Make_Path(NULL, File_Name, SG_T("sdat")), SG_FILE_W, true) )
		{
			if( bBinary )
			{
				bResult		= _Save_Binary	(Stream, xA, yA, xN, yN, Get_Type(), false, false);
			}
			else
			{
				bResult		= _Save_ASCII	(Stream, xA, yA, xN, yN);
			}
		}
	}

	return( bResult );
}
Exemplo n.º 27
0
//---------------------------------------------------------
bool CSADO_SolarRadiation::On_Execute(void)
{
	//-----------------------------------------------------
	m_pDEM			= Parameters("GRD_DEM")		->asGrid();
	m_pVP			= Parameters("GRD_VAPOUR")	->asGrid();

	m_pSumDirect	= Parameters("GRD_DIRECT")	->asGrid();
	m_bUpdateDirect	= Parameters("UPD_DIRECT")	->asBool() && m_pSumDirect;
	m_pSumDiffus	= Parameters("GRD_DIFFUS")	->asGrid();
	m_bUpdateDiffus	= Parameters("UPD_DIFFUS")	->asBool() && m_pSumDiffus;
	m_pSumTotal		= Parameters("GRD_TOTAL")	->asGrid();
	m_bUpdateTotal	= Parameters("UPD_TOTAL")	->asBool() && m_pSumTotal;

	m_Solar_Const	= Parameters("SOLARCONST")	->asDouble();
	m_Atmosphere	= Parameters("ATMOSPHERE")	->asDouble();
	m_VP			= Parameters("VAPOUR")		->asDouble();
	m_bHorizon		= Parameters("BHORIZON")	->asBool();

	m_Latitude		= Parameters("LATITUDE")	->asDouble() * M_DEG_TO_RAD;
	m_bBending		= Parameters("BENDING")		->asBool();

	m_Hour			= Parameters("MOMENT")		->asDouble();
	m_dHour			= Parameters("DHOUR")		->asDouble();
	m_dDays			= Parameters("DDAYS")		->asInt();
	m_Day_A			= Parameters("DAY_A")		->asInt();
	m_Day_B			= Parameters("DAY_B")		->asInt();

	switch( Parameters("PERIOD")->asInt() )
	{
	case 0:	// moment
		m_bMoment		= true;
		m_bUpdateDirect	= m_bUpdateDiffus	= m_bUpdateTotal	= false;
		break;

	case 1:	// day
		m_bMoment		= false;
		m_Day_B			= m_Day_A;
		m_Hour			= 0.0;
		break;

	case 2:	// range of days
		m_bMoment		= false;
		m_Hour			= 0.0;
		break;

	case 3:	// same moment for a range of days
		m_bMoment		= false;
		m_dHour			= 24.0;
		break;
	}

	//-----------------------------------------------------
	if( !m_pSumDirect && !m_pSumDiffus && !m_pSumTotal )
	{
		Message_Dlg(_TL("No output grid has been choosen."), Get_Name());
	}
	else if( m_pSumDirect == m_pDEM || m_pSumDiffus == m_pDEM || m_pSumTotal == m_pDEM )
	{
		Message_Dlg(_TL("Output must not overwrite elevation grid."), Get_Name());
	}
	else
	{
		return( Get_Insolation() );
	}

	//-----------------------------------------------------
	return( false );
}
Exemplo n.º 28
0
//---------------------------------------------------------
bool CGridding_Spline_Base::_Get_Grid(void)
{
	CSG_Grid	*pGrid		=  m_bGridPoints ? Parameters("GRIDPOINTS")->asGrid  () : NULL;
	CSG_Shapes	*pShapes	= !m_bGridPoints ? Parameters("SHAPES")    ->asShapes() : NULL;

	//-----------------------------------------------------
	m_pGrid		= NULL;

	switch( Parameters("TARGET")->asInt() )
	{
	case 0:	// user defined...
		if( m_Grid_Target.Init_User(m_bGridPoints ? pGrid->Get_Extent() : pShapes->Get_Extent()) && Dlg_Parameters("USER") )
		{
			m_pGrid	= m_Grid_Target.Get_User();
		}
		break;

	case 1:	// grid...
		if( Dlg_Parameters("GRID") )
		{
			m_pGrid	= m_Grid_Target.Get_Grid();
		}
		break;
	}

	//-------------------------------------------------
	if( m_pGrid )
	{
		m_pGrid->Set_Name(CSG_String::Format(SG_T("%s (%s)"), m_bGridPoints ? pGrid->Get_Name() : pShapes->Get_Name(), Get_Name()));
		m_pGrid->Assign_NoData();
	}

	//-----------------------------------------------------
	return( m_pGrid != NULL );
}
Exemplo n.º 29
0
LOCAL_FUNC
FT_Error  SFNT_Load_Face(FT_Stream stream,
                         TT_Face face,
                         FT_Int face_index,
                         FT_Int num_params,
                         FT_Parameter  *params)
{
	FT_Error error;
	SFNT_Interface  *sfnt = (SFNT_Interface *)face->sfnt;

	FT_UNUSED(face_index);
	FT_UNUSED(num_params);
	FT_UNUSED(params);


	/* Load tables */
	if(LOAD_(header)        ||
	        LOAD_(max_profile)   ||

	        /* load the `hhea' & `hmtx' tables at once */
	        (error = sfnt->load_metrics(face, stream, 0)) != TT_Err_Ok  ||

	        /* try to load the `vhea' & `vmtx' at once if present */
	        (error = sfnt->load_metrics(face, stream, 1)) != TT_Err_Ok  ||

	        LOAD_(charmaps)      ||
	        LOAD_(names)         ||
	        LOAD_(os2)           ||
	        LOAD_(psnames))
	{
		goto Exit;
	}

	/* the optional tables */

#ifdef TT_CONFIG_OPTION_EMBEDDED_BITMAPS

	/* embedded bitmap support. */
	if(sfnt->load_sbits && LOAD_(sbits))
	{
		goto Exit;
	}

#endif /* TT_CONFIG_OPTION_EMBEDDED_BITMAPS */

	if(LOAD_(hdmx)          ||
	        LOAD_(gasp)          ||
	        LOAD_(kerning)       ||
	        LOAD_(pclt))
	{
		goto Exit;
	}

#ifdef TT_CONFIG_OPTION_EXTEND_ENGINE

	if((error = TT_Extension_Create(face)) != TT_Err_Ok)
	{
		goto Exit;
	}

#endif

	face->root.family_name = Get_Name(face, TT_NAME_ID_FONT_FAMILY);
	face->root.style_name  = Get_Name(face, TT_NAME_ID_FONT_SUBFAMILY);

	/* now set up root fields */
	{
		FT_Face root = &face->root;
		FT_Int flags;
		TT_CharMap charmap;
		FT_Int n;
		FT_Memory memory;


		memory = root->memory;

		/*********************************************************************/
		/*                                                                   */
		/* Compute face flags.                                               */
		/*                                                                   */
		flags = FT_FACE_FLAG_SCALABLE  |  /* scalable outlines */
		        FT_FACE_FLAG_SFNT      |  /* SFNT file format  */
		        FT_FACE_FLAG_HORIZONTAL;  /* horizontal data   */

#ifdef TT_CONFIG_OPTION_POSTSCRIPT_NAMES
		/* might need more polish to detect the presence of a Postscript */
		/* name table in the font                                        */
		flags |= FT_FACE_FLAG_GLYPH_NAMES;
#endif

		/* fixed width font? */
		if(face->postscript.isFixedPitch)
		{
			flags |= FT_FACE_FLAG_FIXED_WIDTH;
		}

		/* vertical information? */
		if(face->vertical_info)
		{
			flags |= FT_FACE_FLAG_VERTICAL;
		}

		/* kerning available ? */
		if(face->kern_pairs)
		{
			flags |= FT_FACE_FLAG_KERNING;
		}

		root->face_flags = flags;

		/*********************************************************************/
		/*                                                                   */
		/* Compute style flags.                                              */
		/*                                                                   */
		flags = 0;

		if(face->os2.version != 0xFFFF)
		{
			/* we have an OS/2 table; use the `fsSelection' field */
			if(face->os2.fsSelection & 1)
			{
				flags |= FT_STYLE_FLAG_ITALIC;
			}

			if(face->os2.fsSelection & 32)
			{
				flags |= FT_STYLE_FLAG_BOLD;
			}
		}
		else
		{
			/* this is an old Mac font, use the header field */
			if(face->header.Mac_Style & 1)
			{
				flags |= FT_STYLE_FLAG_BOLD;
			}

			if(face->header.Mac_Style & 2)
			{
				flags |= FT_STYLE_FLAG_ITALIC;
			}
		}

		root->style_flags = flags;

		/*********************************************************************/
		/*                                                                   */
		/* Polish the charmaps.                                              */
		/*                                                                   */
		/*   Try to set the charmap encoding according to the platform &     */
		/*   encoding ID of each charmap.                                    */
		/*                                                                   */
		charmap            = face->charmaps;
		root->num_charmaps = face->num_charmaps;

		/* allocate table of pointers */
		if(ALLOC_ARRAY(root->charmaps, root->num_charmaps, FT_CharMap))
		{
			goto Exit;
		}

		for(n = 0; n < root->num_charmaps; n++, charmap++)
		{
			FT_Int platform = charmap->cmap.platformID;
			FT_Int encoding = charmap->cmap.platformEncodingID;


			charmap->root.face        = (FT_Face)face;
			charmap->root.platform_id = platform;
			charmap->root.encoding_id = encoding;
			charmap->root.encoding    = find_encoding(platform, encoding);

			/* now, set root->charmap with a unicode charmap */
			/* wherever available                            */
			if(!root->charmap                                &&
			        charmap->root.encoding == ft_encoding_unicode)
			{
				root->charmap = (FT_CharMap)charmap;
			}

			root->charmaps[n] = (FT_CharMap)charmap;
		}

#ifdef TT_CONFIG_OPTION_EMBEDDED_BITMAPS

		if(face->num_sbit_strikes)
		{
			root->num_fixed_sizes = face->num_sbit_strikes;

			if(ALLOC_ARRAY(root->available_sizes,
			               face->num_sbit_strikes,
			               FT_Bitmap_Size))
			{
				return error;
			}

			for(n = 0 ; n < face->num_sbit_strikes ; n++)
			{
				root->available_sizes[n].width =
				    face->sbit_strikes[n].x_ppem;
				root->available_sizes[n].height =
				    face->sbit_strikes[n].y_ppem;
			}
		}
		else
		{

#else /* TT_CONFIG_OPTION_EMBEDDED_BITMAPS */

		{
			root->num_fixed_sizes = 0;
			root->available_sizes = 0;
		}

#endif /* TT_CONFIG_OPTION_EMBEDDED_BITMAPS */ {

			/*********************************************************************/
			/*                                                                   */
			/*  Set up metrics.                                                  */
			/*                                                                   */
			root->bbox.xMin    = face->header.xMin;
		}

		root->bbox.yMin    = face->header.yMin;
		root->bbox.xMax    = face->header.xMax;
		root->bbox.yMax    = face->header.yMax;
		root->units_per_EM = face->header.Units_Per_EM;

		/* The ascender/descender/height are computed from the OS/2 table    */
		/* when found.  Otherwise, they're taken from the horizontal header. */
		if(face->os2.version != 0xFFFF)
		{
			root->ascender  =  face->os2.sTypoAscender;
			root->descender = -face->os2.sTypoDescender;
			root->height    =  root->ascender + root->descender +
			                   face->os2.sTypoLineGap;
		}
		else
		{
			root->ascender  = face->horizontal.Ascender;
			root->descender = face->horizontal.Descender;
			root->height    = root->ascender + root->descender +
			                  face->horizontal.Line_Gap;
		}

		root->max_advance_width   = face->horizontal.advance_Width_Max;

		root->max_advance_height  = face->vertical_info
		                            ? face->vertical.advance_Height_Max
		                            : root->height;

		root->underline_position  = face->postscript.underlinePosition;
		root->underline_thickness = face->postscript.underlineThickness;

		/* root->max_points     -- already set up */
		/* root->max_contours   -- already set up */
	}

Exit:
	return error;
}