//------------------------------------------------------------- // VtxFogTabs::getObjAttributes() when switched in //------------------------------------------------------------- void VtxFogTabs::getObjAttributes(){ if(!update_needed) return; TNfog *tnode=fog(); TNarg *arg=(TNarg*)tnode->left; //m_density_expr->setValue("1.0"); if(arg){ // height expr m_density_expr->setValue(arg); } Planetoid *orb=getOrbital(); m_hmin_sldr->setValue(orb->fog_min/FEET); m_hmax_sldr->setValue((orb->fog_max-orb->fog_min)/FEET); m_vmin_sldr->setValue(orb->fog_vmin/FEET); m_vmax_sldr->setValue((orb->fog_vmax-orb->fog_vmin)/FEET); Color color=orb->fog_color; color.set_alpha(orb->fog_value); m_fog_color->setColor(color); // m_fog_color.SetColor(orb->fog_color); // m_fog_value=(int)(orb->fog_value*100); update_needed=false; }
bool_t RLKdeterminate(char *labeli, char *labelj, RLK_Line *rlk) { const char routineName[] = "RLKZeeman"; char **words, orbit[2]; bool_t invalid; int count, multiplicity, length, Nread, Ji, Jj; /* --- Get spin and orbital quantum numbers from level labels -- -- */ words = getWords(labeli, " ", &count); if (words[0]) { length = strlen(words[count-1]); Nread = sscanf(words[count-1] + length-2, "%d%1s", &multiplicity, orbit); free(words); if (Nread != 2 || !isupper(orbit[0])) return FALSE; rlk->Li = getOrbital(orbit[0]); rlk->Si = (multiplicity - 1) / 2.0; Ji = (rlk->gi - 1.0) / 2.0; } else return FALSE; words = getWords(labelj, " ", &count); if (words[0]) { length = strlen(words[count-1]); Nread = sscanf(words[count-1] + length-2, "%d%1s", &multiplicity, orbit); free(words); if (Nread != 2 || !isupper(orbit[0])) return FALSE; rlk->Lj = getOrbital(orbit[0]); rlk->Sj = (multiplicity - 1) / 2.0; Jj = (rlk->gj - 1.0) / 2.0; } else return FALSE; /* --- For the moment only allow electronic dipole transitions -- --*/ /* if (fabs(Ji - Jj) > 1.0) return FALSE; else */ return TRUE; }
//------------------------------------------------------------- // VtxFogTabs::setObjAttributes() when switched out //------------------------------------------------------------- void VtxFogTabs::setObjAttributes(){ update_needed=true; TNfog *tnode=fog(); Planetoid *orb=getOrbital(); orb->fog_vmin=m_vmin_sldr->getValue()*FEET; orb->fog_vmax=(m_vmax_sldr->getValue()+m_vmin_sldr->getValue())*FEET; orb->fog_min=m_hmin_sldr->getValue()*FEET; orb->fog_max=(m_hmax_sldr->getValue()+m_hmin_sldr->getValue())*FEET; Color color=m_fog_color->getColor(); double fog_value=m_fog_color->getValue(); color.set_alpha(fog_value); orb->fog_color=color; orb->fog_value=fog_value; wxString str="fog("; wxString expr=m_density_expr->getText(); if(expr.length()==0) expr="1"; str+=expr; str+=")"; str+="\n"; char p[256]; strcpy(p,str.ToAscii()); tnode->setExpr(p); if(tnode->getExprNode()==0) update_needed=true; else{ update_needed=false; tnode->applyExpr(); } }