31 #include "spamod-api.hh"
34 using namespace GMap3d;
37 CParameterSpamod * AParameterSpamod) :
38 FParameterGMapV (AParameterGMapV),
39 FParameterSpamod (AParameterSpamod)
41 assert(FParameterGMapV != NULL);
42 assert(FParameterSpamod != NULL);
45 FParameterSpamod->addPrecompileToUpdate(
this);
48 CPrecompileSpamod::CPrecompileSpamod(
const CPrecompileSpamod & APrecompile) :
50 FParameterGMapV (APrecompile.FParameterGMapV),
51 FParameterSpamod (static_cast<CParameterSpamod*>
52 (APrecompile.FParameterSpamod->copy()))
54 assert(FParameterGMapV != NULL);
55 assert(FParameterSpamod != NULL);
58 FParameterSpamod->addPrecompileToUpdate(
this);
61 CPrecompileSpamod::~CPrecompileSpamod()
63 FParameterGMapV->removePrecompileToUpdate(
this);
64 FParameterSpamod->removePrecompileToUpdate(
this);
68 {
return new CPrecompileSpamod(*
this); }
70 void CPrecompileSpamod::setParameter(
CParameter* AParameter)
75 setGMapVertex(static_cast<CParameterGMapVertex *>(AParameter));
77 case PARAMETER_SPAMOD:
78 setParameterSpamod(static_cast<CParameterSpamod*>(AParameter));
83 CParameter* CPrecompileSpamod::getParameter()
const
84 {
return FParameterSpamod; }
88 assert(AParameterGMapV != NULL);
90 FParameterGMapV->removePrecompileToUpdate(
this);
91 FParameterGMapV = AParameterGMapV;
95 void CPrecompileSpamod::setParameterSpamod(CParameterSpamod* ASpamod)
97 assert(ASpamod != NULL);
98 ASpamod->addPrecompileToUpdate(
this);
99 FParameterSpamod->removePrecompileToUpdate(
this);
100 FParameterSpamod = ASpamod;
105 {
return PRECOMPILE_SPAMOD; }
107 void CPrecompileSpamod::drawModel()
109 if (FParameterGMapV->getMap()->getFirstDart() == NULL ||
110 FParameterSpamod->getViewMode() == SPAMOD_NONE)
114 FSpamodAPI =
new CSpamodAPI((CGMap *) FParameterGMapV->getMap());
117 for (
int i=0; i<2; ++i)
118 FSpamodAPI->setEuclidianParam(i, FParameterSpamod->getEuclidianParam(i));
120 for (
int i=0; i<4; ++i)
121 FSpamodAPI->setAnalyticParam(i, FParameterSpamod->getAnalyticParam(i));
123 for (
int i=0; i<3; ++i)
124 FSpamodAPI->setVoxelParam(i, FParameterSpamod->getVoxelParam(i));
126 for (
int i=0; i<3; ++i)
127 FSpamodAPI->setK2Param(i, FParameterSpamod->getK2Param(i));
131 FSpamodAPI->setViewMode(FParameterSpamod->getViewMode());
132 FSpamodAPI->drawMap();
133 FSpamodAPI->setViewMode(SPAMOD_NONE);
139 #endif // MODULE_SPAMOD