b2Body* NPC::createBody (const b2Vec2 &pos, bool setOnGround, bool fixedRotation) { if (!_bodies.empty()) { error(LOG_SERVER, "there are already bodies defined for this npc"); return nullptr; } b2BodyDef bodyDef; bodyDef.type = getBodyType(); bodyDef.position.Set(pos.x, pos.y); b2Body* body = _map.getWorld()->CreateBody(&bodyDef); b2PolygonShape dynamicBox; const b2Vec2& size = getSize(); dynamicBox.SetAsBox(size.x / 2.0f, size.y / 2.0f); b2FixtureDef fixtureDef; fixtureDef.shape = &dynamicBox; fixtureDef.density = getDensity(); fixtureDef.friction = 0.0f; fixtureDef.restitution = 0.0f; body->SetUserData(static_cast<void*>(this)); body->CreateFixture(&fixtureDef); body->SetFixedRotation(fixedRotation); addBody(body); if (setOnGround) { static const b2Vec2 unitdir(0, 1); const b2Vec2 end = pos + 1 * unitdir; SetOnGroundRayCastCallback c(this); _map.getWorld()->RayCast(&c, pos, end); setPos(pos); } _initialPosition = pos; return body; }
void GroundFog::updateSkyFogging() { Ogre::GpuProgramParametersSharedPtr params = mDomeMaterial->getBestTechnique()->getPass(0)->getFragmentProgramParameters(); params->setNamedConstant("fogDensity", getDensity()); params->setNamedConstant("fogColour", getColour()); params->setNamedConstant("fogVerticalDecay", getVerticalDecay()); params->setNamedConstant("fogGroundLevel", getGroundLevel()); }
void Emerald::print() { std::cout << "Имя: " << getName() << std::endl; std::cout << "Плотность: " << getDensity() << std::endl; std::cout << "Вес: " << getWeight() << std::endl; std::cout << "Стоимость: " << getCost() << std::endl; std::cout << "Прозрачность: " << getOpacity() << std::endl; }
void NetPattern::printPattern(ofstream& outfile) const{ for(vector<int>::const_iterator cit=bipartite_A.begin(); cit<bipartite_A.end(); cit++) outfile<<*cit<<" "; outfile<<"; "; for(vector<int>::const_iterator cit=bipartite_B.begin(); cit<bipartite_B.end(); cit++) outfile<<*cit<<" "; outfile<<"; density: "<<getDensity(); }
void FogChunk::activate(DrawEnv *pEnv, UInt32 /* index */) { #if !defined(OSG_OGL_COREONLY) || defined(OSG_CHECK_COREONLY) glFogi (GL_FOG_MODE, getMode () ); glFogf (GL_FOG_DENSITY, getDensity() ); glFogf (GL_FOG_START, getStart () ); glFogf (GL_FOG_END, getEnd () ); glFogfv(GL_FOG_COLOR, getColor ().getValuesRGBA()); glEnable(GL_FOG); #endif }
void read_initial_conditions(const char* filename, int NUM, double** y_host, double** variable_host) { (*y_host) = (double*)malloc(NUM * NN * sizeof(double)); (*variable_host) = (double*)malloc(NUM * sizeof(double)); FILE *fp = fopen (filename, "rb"); if (fp == NULL) { fprintf(stderr, "Could not open file: %s\\\n", filename); exit(-1); } double buffer[NN + 2]; // load temperature and mass fractions for all threads (cells) for (int i = 0; i < NUM; ++i) { // read line from data file int count = fread(buffer, sizeof(double), NN + 2, fp); if (count != (NN + 2)) { fprintf(stderr, "File (%s) is incorrectly formatted, %d doubles were expected but only %d were read.\\n", filename, NN + 1, count); exit(-1); } //apply mask if necessary apply_mask(&buffer[3]); //put into y_host (*y_host)[i * NN] = buffer[1]; #ifdef CONP (*variable_host)[i] = buffer[2]; #elif CONV double pres = buffer[2]; #endif for (int j = 0; j < NSP; j++) { (*y_host)[i * NN + j + 1] = buffer[j + 3]; } // if constant volume, calculate density #ifdef CONV double Yi[NSP]; double Xi[NSP]; for (int j = 1; j < NN; ++j) { Yi[j - 1] = (*y_host)[i * NN + j]; } mass2mole (Yi, Xi); (*variable_host)[i] = getDensity ((*y_host)[i], pres, Xi); #endif } fclose (fp); }
float CoriFlow::getMeasure( void ) const { #ifdef __CORIFLOW_DEBUG std::cout << "[CoriFlow::test] -- DEBUG: Called." << std::endl; #endif char buffer[1000]; usleep( uDelay_ ); comHandler_->SendCommand( ":06030401210120" ); usleep( uDelay_ ); comHandler_->ReceiveString( buffer ); StripBuffer( buffer ); return ToInt(buffer)*getCapacity()/32000/60/(getDensity()*0.001); }
std::vector<real_t> ExprSystemInitFunction::operator()( const Cell & globalCell ) { // update variables setGlobalCell( globalCell ); // get results const auto velocity = getVelocity(); const auto density = getDensity(); // store in std::vector and return std::vector<real_t> results; results.push_back( density ); results.push_back( velocity[0] ); results.push_back( velocity[1] ); results.push_back( velocity[2] ); return results; }
bool FogChunk::operator == (const StateChunk &other) const { FogChunk const *tother = dynamic_cast<FogChunk const *>(&other); if(tother == NULL) return false; if(getMode() != tother->getMode()) return false; if(getDensity() != tother->getDensity()) return false; if(getStart() != tother->getStart()) return false; if(getEnd() != tother->getEnd()) return false; if(getColor() != tother->getColor()) return false; return true; }
openstudio::Quantity MasslessOpaqueMaterial_Impl::density_IP() const { return getDensity(true); }
openstudio::Quantity MasslessOpaqueMaterial_Impl::density_SI() const { return getDensity(false); }
/*============================================================================= double getDensity(double L, double lambda) - get the density, in cm^-3 as a function of L-shell and magnetic latitude of a point on the field line. double L - L-shell in Earth radii double lambda - magnetic latitude in degrees ============================================================================*/ double RPIHUANG2004::getDensity(double L, double lambda){ double lambdainv=acos(1.0/sqrt(L))/M_PI*180; return getDensity(L,lambda,lambdainv); }
// calculating daily 'atm' data for ONE year at yearly time-step - called in 'RunCohort.cpp' void Atmosphere::prepareDayDrivingData(const int & yrcount, const int & usedatmyr, const bool & changeclm, const bool &changeco2){ float tad1[31], vapd1[31], precd1[31]; float pvalt, cvalt, nvalt; float pvalv, cvalv, nvalv; float pvalp, cvalp, nvalp; int dinmprev, dinmcurr, dinmnext; // if (!changeclm) { for(int im =0; im<12;im++){ cvalt = eq_tair[im]; cvalv = eq_vapo[im]; cvalp = eq_prec[im]; dinmcurr = DINM[im]; if(im==0){ pvalt = eq_tair[11]; pvalv = eq_vapo[11]; pvalp = eq_prec[11]; nvalt = eq_tair[im+1]; nvalv = eq_vapo[im+1]; nvalp = eq_prec[im+1]; dinmprev = DINM[11]; dinmnext = DINM[im+1]; }else if (im==11){ pvalt = eq_tair[im-1]; pvalv = eq_vapo[im-1]; pvalp = eq_prec[im-1]; nvalt = eq_tair[0]; nvalv = eq_vapo[0]; nvalp = eq_prec[0]; dinmnext = DINM[0]; dinmprev = DINM[im-1]; }else{ pvalt = eq_tair[im-1]; pvalv = eq_vapo[im-1]; pvalp = eq_prec[im-1]; nvalt = eq_tair[im+1]; nvalv = eq_vapo[im+1]; nvalp = eq_prec[im+1]; dinmprev = DINM[im-1]; dinmnext = DINM[im+1]; } autil.updateDailyDriver(tad1, pvalt ,cvalt, nvalt, dinmprev, dinmcurr, dinmnext); autil.updateDailyDriver(vapd1, pvalv ,cvalv, nvalv, dinmprev, dinmcurr, dinmnext); autil.updateDailyPrec(precd1, dinmcurr, cvalt, cvalp); for (int id =0; id<31; id++){ ta_d[im][id] = tad1[id]; vap_d[im][id] = vapd1[id]; precsplt(ta_d[im][id], precd1[id], snow_d[im][id], rain_d[im][id]); rhoa_d[im][id]= getDensity(tad1[id]); svp_d[im][id] = getSatVP(tad1[id]); vpd_d[im][id] = getVPD(svp_d[im][id], vap_d[im][id]); dersvp_d[im][id]= getDerSVP(tad1[id], svp_d[im][id]); abshd_d[im][id] = getAbsHumDeficit(svp_d[im][id], vap_d[im][id], tad1[id]); //not yet interpolated variable par_d[im][id] = eq_par[im]; nirr_d[im][id] = eq_nirr[im]; } } } else { // for spinup/transient/scenario int iy= yrcount; iy = yrcount%usedatmyr; //this will reuse the first 'usedatmyr' period of whole atm data set for(int im =0; im<12;im++){ cvalt = tair[iy][im]; cvalv = vapo[iy][im]; cvalp = prec[iy][im]; dinmcurr = DINM[im]; if(im==0){ if(iy==0){ pvalt = tair[0][0]; pvalv = vapo[0][0]; pvalp = prec[0][0]; }else{ pvalt = tair[iy-1][11]; pvalv = vapo[iy-1][11]; pvalp = prec[iy-1][11]; } nvalt = tair[iy][im+1]; nvalv = vapo[iy][im+1]; nvalp = prec[iy][im+1]; dinmnext = DINM[im+1]; dinmprev = DINM[11]; }else if (im==11){ pvalt = tair[iy][im-1]; pvalv = vapo[iy][im-1]; pvalp = prec[iy][im-1]; if(iy==usedatmyr-1){ nvalt = tair[iy][11]; nvalv = vapo[iy][11]; nvalp = prec[iy][11]; }else{ nvalt = tair[iy+1][0]; nvalv = vapo[iy+1][0]; nvalp = prec[iy+1][0]; } dinmnext = DINM[0]; dinmprev = DINM[im-1]; }else{ pvalt = tair[iy][im-1]; pvalv = vapo[iy][im-1]; pvalp = prec[iy][im-1]; nvalt = tair[iy][im+1]; nvalv = vapo[iy][im+1]; nvalp = prec[iy][im+1]; dinmnext = DINM[im+1]; dinmprev = DINM[im-1]; } autil.updateDailyDriver(tad1, pvalt ,cvalt, nvalt, dinmprev, dinmcurr, dinmnext); autil.updateDailyDriver(vapd1, pvalv ,cvalv, nvalv, dinmprev, dinmcurr, dinmnext); autil.updateDailyPrec(precd1, dinmcurr, cvalt, cvalp); for (int id =0; id<dinmcurr; id++){ ta_d[im][id] = tad1[id]; vap_d[im][id] = vapd1[id]; precsplt(ta_d[im][id], precd1[id],snow_d[im][id], rain_d[im][id]); rhoa_d[im][id] = getDensity(tad1[id]); svp_d[im][id] = getSatVP(tad1[id]); vpd_d[im][id] = getVPD(svp_d[im][id], vap_d[im][id]); dersvp_d[im][id] = getDerSVP(tad1[id], svp_d[im][id]); abshd_d[im][id] = getAbsHumDeficit(svp_d[im][id], vap_d[im][id] , tad1[id]); //not yet interpolated variable par_d[im][id] = par[iy][im]; nirr_d[im][id] = nirr[iy][im]; } //id }//im } if (changeco2) { if (yrcount<MAX_CO2_DRV_YR) { co2 = cd->rd->co2[yrcount]; } else { co2 = cd->rd->co2[MAX_CO2_DRV_YR-1]; //this reuse the last CO2 data } } else { co2 = cd->rd->initco2; } };