/* -*- Base: 10 ; Mode: C++ -*- */
/*------------------------------------------------------------------------
**
FOST project
**
--------------------------------------------------------------------------
--------------------------------------------------------------------------
FILE LOG
$Revision: 1.3 $ $Date: 2012-06-15 13:04:42 $
--------------------------------------------------------------------------
CREATION
V.SAC
SUMMARY
DESCRIPTION
The main function performs the following actions :
------------------------------------------------------------------------*/
/**
*/
//=============================================================================
// Include section
//=============================================================================
// Standard libraries include files
//-----------------------------------------------------------------------------
#include
// Include oriented definitions
//-----------------------------------------------------------------------------
// Module Kernel include files
//-----------------------------------------------------------------------------
#include "DicError.hh"
#include "AMDA_exception.hh"
#include "ServicesServer.hh"
#include "PluginManager.hh"
#include "CurveFunctionWriter.hh"
#include "Boundaries.hh"
#include
using namespace AMDA::Parameters;
using namespace plot;
// Other modules include files
//-----------------------------------------------------------------------------
/**
* @details This procedure return the curve definition of a circle.
*/
void circle(double precision, CurveFunctionWriter::AttributeList& pAttributeList, CurveFunctionWriter::CurvePointList& curvePointList) {
//radius
double radius = 1.;
CurveFunctionWriter::AttributeList::iterator lradiusIt = pAttributeList.find("radius");
if (lradiusIt != pAttributeList.end())
radius = lradiusIt->second;
for (int i = 0; i < precision; ++i) {
CurveFunctionWriter::CurvePoint point;
double theta = (2. * M_PI) * (double) (((double) i) / precision);
point.x = radius * cos(theta);
point.y = radius * sin(theta);
point.z = radius * cos(theta);
// std::cout << "BRE - " << point.x << " - " << point.y << " - " << point.z << std::endl;
curvePointList.push_back(point);
}
}
//=============================================================================
// Methods of Class AMDAPlugin
//=============================================================================
/**
Retrieve the Plugin version we're going to expect
*/
extern "C" const char* getPluginVersion() {
return "(Version)";
}
/**
Tells us to register our functionality to an engine kernel
*/
extern "C" void registerPlugin(AMDA::Plugins::PluginManager & pm) {
std::string pluginPath = pm.getCurrentPluginPath();
ServicesServer::getInstance()->addServiceImpl("bowshock", &bowshock);
ServicesServer::getInstance()->linkProcessWithPlugin("bowshock", pluginPath);
ServicesServer::getInstance()->addServiceImpl("bowshock_farris", &bowshock_farris);
ServicesServer::getInstance()->linkProcessWithPlugin("bowshock_farris", pluginPath);
// Elena TBD : id in plotCurves.xml acts as function name - to change Request generation procedure
ServicesServer::getInstance()->addServiceImpl("mars_bowshock", &bowshock);
ServicesServer::getInstance()->linkProcessWithPlugin("mars_bowshock", pluginPath);
ServicesServer::getInstance()->addServiceImpl("mars_bowshock_hall", &bowshock);
ServicesServer::getInstance()->linkProcessWithPlugin("mars_bowshock_hall", pluginPath);
ServicesServer::getInstance()->addServiceImpl("venus_bowshock", &bowshock);
ServicesServer::getInstance()->linkProcessWithPlugin("venus_bowshock", pluginPath);
ServicesServer::getInstance()->addServiceImpl("mercury_bowshock", &bowshock);
ServicesServer::getInstance()->linkProcessWithPlugin("mercury_bowshock", pluginPath);
ServicesServer::getInstance()->addServiceImpl("saturn_bowshock_went", &saturn_bowshock_went);
ServicesServer::getInstance()->linkProcessWithPlugin("saturn_bowshock_went", pluginPath);
ServicesServer::getInstance()->addServiceImpl("jupiter_bowshock_high", &bowshock1);
ServicesServer::getInstance()->linkProcessWithPlugin("jupiter_bowshock_high", pluginPath);
ServicesServer::getInstance()->addServiceImpl("jupiter_bowshock_low", &bowshock1);
ServicesServer::getInstance()->linkProcessWithPlugin("jupiter_bowshock_low", pluginPath);
ServicesServer::getInstance()->addServiceImpl("jupiter_magnetopause_high", &bowshock1);
ServicesServer::getInstance()->linkProcessWithPlugin("jupiter_magnetopause_high", pluginPath);
ServicesServer::getInstance()->addServiceImpl("jupiter_magnetopause_low", &bowshock1);
ServicesServer::getInstance()->linkProcessWithPlugin("jupiter_magnetopause_low", pluginPath);
ServicesServer::getInstance()->addServiceImpl("venus_magnetopause", &venus_magnetopause);
ServicesServer::getInstance()->linkProcessWithPlugin("venus_magnetopause", pluginPath);
ServicesServer::getInstance()->addServiceImpl("mars_magnetopause", &mars_magnetopause);
ServicesServer::getInstance()->linkProcessWithPlugin("mars_magnetopause", pluginPath);
ServicesServer::getInstance()->addServiceImpl("mercury_magnetopause", &mercury_magnetopause);
ServicesServer::getInstance()->linkProcessWithPlugin("mercury_magnetopause", pluginPath);
ServicesServer::getInstance()->addServiceImpl("saturn_magnetopause", &saturn_magnetopause);
ServicesServer::getInstance()->linkProcessWithPlugin("saturn_magnetopause", pluginPath);
ServicesServer::getInstance()->addServiceImpl("magnetopause_shue", &magnetopause_shue);
ServicesServer::getInstance()->linkProcessWithPlugin("magnetopause_shue", pluginPath);
ServicesServer::getInstance()->addServiceImpl("circle", &circle);
ServicesServer::getInstance()->linkProcessWithPlugin("circle", pluginPath);
}