Esempio n. 1
0
//-------------------------------------------------------------
// 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;

}
Esempio n. 2
0
File: kurucz.c Progetto: kouui/rh
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;
}
Esempio n. 3
0
//-------------------------------------------------------------
// 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();
	}
}