/** initialize with RPA * @param ref particleset * @param bfunc bspline function to be initialized * @param nopbc true, if not periodic */ inline void initWithRPA(ParticleSet& P, BsplineFunctor<T>& bfunc, T fac) { if(P.Lattice.SuperCellEnum==SUPERCELL_OPEN) // for open systems, do nothing { return; //T vol=std::pow(bfunc.cutoff_radius,3); //rpa.reset(ref.getTotalNum(),vol*0.5); } int npts=bfunc.NumParams; if(rpaValues.empty()) { rpaValues.resize(npts); LRRPAHandlerTemp<RPABreakup<T>,LPQHIBasis> rpa(P,-1.0); rpa.Breakup(P,-1.0); T dr=bfunc.cutoff_radius/static_cast<T>(npts); T r=0; for (int i=0; i<npts; i++) { rpaValues[i]=rpa.evaluate(r,1.0/r); //y[i]=fac*rpa.evaluate(r,1.0/r); r += dr; } } T last=rpaValues[npts-1]; //vector<T> y(npts); //for (int i=0; i<npts; i++) y[i]=fac*rpaValues[i]; //T last=y[npts-1]; for(int i=0; i<npts; i++) bfunc.Parameters[i]=fac*(rpaValues[i]-last); bfunc.reset(); }
void modeltest::setPathMr(wxCommandEvent& event) { #ifdef __WXMSW__ string mp; wxFileDialog* dialog = new wxFileDialog(this, "Select file", "", "", FILETYPES5, wxOPEN, wxDefaultPosition); if (dialog->ShowModal() == wxID_OK) { mrModelP = dialog->GetPath(); ofstream rpa("MrModelpath.ini"); mp = mrModelP; rpa << mp; rpa.close(); this->runMr->Enable(true); } #endif }
void modeltest::setPaupPath(wxCommandEvent& event) { #ifdef __WXMSW__ string pp; wxFileDialog* pathdialog = new wxFileDialog ( this, "Select file", "", "", FILETYPES4, wxOPEN, wxDefaultPosition); if (pathdialog->ShowModal() == wxID_OK) { paupP = pathdialog->GetPath(); wxString pdir = pathdialog->GetDirectory(); pdir.append("\\"); ofstream rpa("pauppath.ini"); pp = paupP; rpa << pp << "\n" << pdir; rpa.close(); this->runPAUP->Enable(true); this->runBayes->Enable(true); } #endif }
/*! The string returned from this function is only valid until the next variable is requested. */ const char * SoScXMLStateMachine::getVariable(const char * key) const { if (strncmp(key, "_event.", 7) == 0) { // printf("scan for key '%s'\n", key); const char * subkey = key + 7; const ScXMLEvent * ev = this->getCurrentEvent(); if (ev->isOfType(SoScXMLEvent::getClassTypeId())) { const SoScXMLEvent * soev = static_cast<const SoScXMLEvent *>(ev); const SoEvent * coinev = soev->getSoEvent(); if (strcmp(subkey, "getTime()") == 0) { SbTime timeval = coinev->getTime(); double doubletime = timeval.getValue(); PRIVATE(this)->varstring = SbStringConvert::toString(doubletime); return PRIVATE(this)->varstring.getString(); } else if (strcmp(subkey, "getPosition().x") == 0) { SbVec2s pos = coinev->getPosition(); PRIVATE(this)->varstring = SbStringConvert::toString(static_cast<double>(pos[0])); return PRIVATE(this)->varstring.getString(); } else if (strcmp(subkey, "getPosition().y") == 0) { SbVec2s pos = coinev->getPosition(); PRIVATE(this)->varstring = SbStringConvert::toString(static_cast<double>(pos[1])); return PRIVATE(this)->varstring.getString(); } else if (strcmp(subkey, "getPosition()") == 0) { SbVec2s pos = coinev->getPosition(); PRIVATE(this)->varstring = SbStringConvert::toString(pos); return PRIVATE(this)->varstring.getString(); } else if (strcmp(subkey, "getNormalizedPosition().x") == 0) { SbVec2f pos = coinev->getNormalizedPosition(this->getViewportRegion()); PRIVATE(this)->varstring = SbStringConvert::toString(static_cast<double>(pos[0])); return PRIVATE(this)->varstring.getString(); } else if (strcmp(subkey, "getNormalizedPosition().y") == 0) { SbVec2f pos = coinev->getNormalizedPosition(this->getViewportRegion()); PRIVATE(this)->varstring = SbStringConvert::toString(static_cast<double>(pos[1])); return PRIVATE(this)->varstring.getString(); } else if (strcmp(subkey, "getNormalizedPosition()") == 0) { SbVec2f pos = coinev->getNormalizedPosition(this->getViewportRegion()); PRIVATE(this)->varstring = SbStringConvert::toString(pos); return PRIVATE(this)->varstring.getString(); } else if (strcmp(subkey, "wasShiftDown()") == 0) { SbBool wasdown = coinev->wasShiftDown(); PRIVATE(this)->varstring = SbStringConvert::toString<bool>(wasdown); return PRIVATE(this)->varstring.getString(); } else if (strcmp(subkey, "wasCtrlDown()") == 0) { SbBool wasdown = coinev->wasCtrlDown(); PRIVATE(this)->varstring = SbStringConvert::toString<bool>(wasdown); return PRIVATE(this)->varstring.getString(); } else if (strcmp(subkey, "wasAltDown()") == 0) { SbBool wasdown = coinev->wasAltDown(); PRIVATE(this)->varstring = SbStringConvert::toString<bool>(wasdown); return PRIVATE(this)->varstring.getString(); } else if (strcmp(subkey, "getState()") == 0 && coinev->isOfType(SoButtonEvent::getClassTypeId())) { const SoButtonEvent * bevent = coin_assert_cast<const SoButtonEvent *>(coinev); SbString enumname; SoButtonEvent::enumToString(bevent->getState(), enumname); PRIVATE(this)->varstring.sprintf("'%s'", enumname.getString()); return PRIVATE(this)->varstring.getString(); } else if (strcmp(subkey, "getKey()") == 0 && coinev->isOfType(SoKeyboardEvent::getClassTypeId())) { const SoKeyboardEvent * kbevent = coin_assert_cast<const SoKeyboardEvent *>(coinev); SbString enumname; SoKeyboardEvent::enumToString(kbevent->getKey(), enumname); PRIVATE(this)->varstring.sprintf("'%s'", enumname.getString()); return PRIVATE(this)->varstring.getString(); } else if (strcmp(subkey, "getPrintableCharacter()") == 0 && coinev->isOfType(SoKeyboardEvent::getClassTypeId())) { const SoKeyboardEvent * kbevent = coin_assert_cast<const SoKeyboardEvent *>(coinev); char printable = kbevent->getPrintableCharacter(); PRIVATE(this)->varstring.sprintf("'%c'", printable); return PRIVATE(this)->varstring.getString(); } else if (strcmp(subkey, "getButton()") == 0 && coinev->isOfType(SoMouseButtonEvent::getClassTypeId())) { const SoMouseButtonEvent * mbevent = coin_assert_cast<const SoMouseButtonEvent *>(coinev); SbString enumname; SoMouseButtonEvent::enumToString(mbevent->getButton(), enumname); PRIVATE(this)->varstring.sprintf("'%s'", enumname.getString()); return PRIVATE(this)->varstring.getString(); } else if (strcmp(subkey, "getButton()") == 0 && coinev->isOfType(SoSpaceballButtonEvent::getClassTypeId())) { const SoSpaceballButtonEvent * mbevent = coin_assert_cast<const SoSpaceballButtonEvent *>(coinev); SbString enumname; SoSpaceballButtonEvent::enumToString(mbevent->getButton(), enumname); PRIVATE(this)->varstring.sprintf("'%s'", enumname.getString()); return PRIVATE(this)->varstring.getString(); } // FIXME: x., .y, .z else if (strcmp(subkey, "getTranslation()") == 0 && coinev->isOfType(SoMotion3Event::getClassTypeId())) { const SoMotion3Event * m3event = coin_assert_cast<const SoMotion3Event *>(coinev); SbVec3f translation = m3event->getTranslation(); PRIVATE(this)->varstring = SbStringConvert::toString(translation); return PRIVATE(this)->varstring.getString(); } // FIXME: .angle, .axis else if (strcmp(subkey, "getRotation()") == 0 && coinev->isOfType(SoMotion3Event::getClassTypeId())) { const SoMotion3Event * m3event = coin_assert_cast<const SoMotion3Event *>(coinev); SbRotation rotation = m3event->getRotation(); PRIVATE(this)->varstring = SbStringConvert::toString(rotation); return PRIVATE(this)->varstring.getString(); } // FIXME: make this into a evaluator-level RayPick(SbVec2f) function instead else if (strcmp(key + 7, "pickposition3") == 0) { SbVec2s location2 = coinev->getPosition(); SoRayPickAction rpa(this->getViewportRegion()); rpa.setPoint(location2); rpa.apply(this->getSceneGraphRoot()); SoPickedPoint * pp = rpa.getPickedPoint(); if (pp) { SbVec3f pickpos = pp->getPoint(); PRIVATE(this)->varstring = SbStringConvert::toString(pickpos); } else { PRIVATE(this)->varstring.sprintf("FALSE"); // need a valid undefined-value } return PRIVATE(this)->varstring.getString(); } } } else if (strncmp(key, "coin:", 5) == 0) { const char * subkey = key + 5; if (strncmp(subkey, "camera.", 7) == 0) { SoCamera * camera = this->getActiveCamera(); if (!camera) { SoDebugError::post("SoScXMLStateMachine::getVariable", "queried for camera, but no camera is set."); return NULL; } const char * detail = subkey + 7; if (strcmp(detail, "getTypeId()") == 0) { PRIVATE(this)->varstring.sprintf("'%s'", camera->getTypeId().getName().getString()); return PRIVATE(this)->varstring.getString(); } } // get generic field access working and intercept for more So-specific stuff // coin:viewport // coin:camera // coin:scene } //else { //} // couldn't resolve the symbol - try parent class to get '_data' and other '_event' // locations resolved return inherited::getVariable(key); }