Utils::SmallStringView SqlStatementBuilder::sqlStatement() const { if (!isBuild()) generateSqlStatement(); return m_sqlStatement; }
bool Fisher::build (ISamples &samples, ssi_size_t stream_index) { if (samples.getSize () == 0) { ssi_wrn ("empty sample list"); return false; } if (isBuild ()) { ssi_wrn ("already trained"); return false; } ae_state state; ae_int_t info; ae_matrix data; ae_matrix_init (&data, 0, 0, DT_REAL, &state, ae_true); // convert the samples to a matrix where the last column holds the class number to which the sample belongs AlgLibTools::Samples2MatrixWithClass(samples, 0, &data); _basis = new ae_matrix; ae_matrix_init (_basis, 0, 0, DT_REAL, &state, ae_true); fisherldan(&data,data.rows,data.cols-1 , samples.getClassSize(),&info,_basis,&state); ae_matrix_clear (&data); _is_build = true; return true; }
void Fisher::print (FILE *file) { if (isBuild ()) { fprintf (file, "base:\n"); AlgLibTools::Print (file, _basis); fprintf(file,"Number of dimensions to keep:%i\n",Fisher::getOptions()->n); } }
bool Fisher::save (const ssi_char_t *filepath) { if (!isBuild ()) { ssi_wrn ("not build"); return false; } FILE *file = fopen (filepath, "wb"); fwrite (&_options.n, sizeof (_options.n), 1, file); AlgLibTools::Write (file, _basis); fclose (file); return true; }
void MaterialChain::update(float time){ Parent::update(time); if (isBuild()){ mTimeLeft -= time;//Level::getSingleton()->getTimeDelta(); if (mTimeLeft <= 0){ for (vector<Ogre::SubEntity*>::iterator it = mEntityToReplace.begin(); it != mEntityToReplace.end();it++){ (*it)->setMaterialName((*mIterator)); } mIterator++; if (mIterator == mMaterialChain.end()){ mIterator = mMaterialChain.begin(); } mTimeLeft += mDelay; } } }
void Scene::build (size_t threadIndex, size_t threadCount) { /* all user worker threads properly enter and leave the tasking system */ LockStepTaskScheduler::Init init(threadIndex,threadCount,&lockstep_scheduler); if (threadIndex != 0) return; /* allow only one build at a time */ Lock<MutexSys> lock(mutex); if (isStatic() && isBuild()) { process_error(RTC_INVALID_OPERATION,"static geometries cannot get committed twice"); return; } if (!ready()) { process_error(RTC_INVALID_OPERATION,"not all buffers are unmapped"); return; } /* verify geometry in debug mode */ #if 0 && defined(DEBUG) // FIXME: enable for (size_t i=0; i<geometries.size(); i++) { if (geometries[i]) { if (!geometries[i]->verify()) { process_error(RTC_INVALID_OPERATION,"invalid geometry specified"); return; } } } #endif /* select fast code path if no intersection filter is present */ accels.select(numIntersectionFilters4,numIntersectionFilters8,numIntersectionFilters16); /* if user provided threads use them */ if (threadCount) accels.build(threadIndex,threadCount); /* otherwise use our own threads */ else { TaskScheduler::EventSync event; new (&task) TaskScheduler::Task(&event,_task_build_parallel,this,TaskScheduler::getNumThreads(),NULL,NULL,"scene_build"); TaskScheduler::addTask(-1,TaskScheduler::GLOBAL_FRONT,&task); event.sync(); } /* make static geometry immutable */ if (isStatic()) { accels.immutable(); for (size_t i=0; i<geometries.size(); i++) if (geometries[i]) geometries[i]->immutable(); } /* delete geometry that is scheduled for delete */ for (size_t i=0; i<geometries.size(); i++) { Geometry* geom = geometries[i]; if (geom == NULL || geom->state != Geometry::ERASING) continue; remove(geom); } /* update bounds */ bounds = accels.bounds; intersectors = accels.intersectors; is_build = true; /* enable only algorithms choosen by application */ if ((aflags & RTC_INTERSECT1) == 0) { intersectors.intersector1.intersect = NULL; intersectors.intersector1.occluded = NULL; } if ((aflags & RTC_INTERSECT4) == 0) { intersectors.intersector4.intersect = NULL; intersectors.intersector4.occluded = NULL; } if ((aflags & RTC_INTERSECT8) == 0) { intersectors.intersector8.intersect = NULL; intersectors.intersector8.occluded = NULL; } if ((aflags & RTC_INTERSECT16) == 0) { intersectors.intersector16.intersect = NULL; intersectors.intersector16.occluded = NULL; } if (g_verbose >= 2) { std::cout << "created scene intersector" << std::endl; accels.print(2); std::cout << "selected scene intersector" << std::endl; intersectors.print(2); } /* update commit counter */ commitCounter++; }
void Scene::build () { Lock<MutexSys> lock(mutex); if (isStatic() && isBuild()) { process_error(RTC_INVALID_OPERATION,"static geometries cannot get committed twice"); return; } if (!ready()) { process_error(RTC_INVALID_OPERATION,"not all buffers are unmapped"); return; } /* verify geometry in debug mode */ #if defined(DEBUG) for (size_t i=0; i<geometries.size(); i++) { if (geometries[i]) { if (!geometries[i]->verify()) { process_error(RTC_INVALID_OPERATION,"invalid geometry specified"); return; } } } #endif /* select fast code path if no intersection filter is present */ accels.select(numIntersectionFilters4,numIntersectionFilters8,numIntersectionFilters16); /* spawn build task */ TaskScheduler::EventSync event; new (&task) TaskScheduler::Task(&event,NULL,NULL,1,_task_build,this,"scene_build"); TaskScheduler::addTask(-1,TaskScheduler::GLOBAL_FRONT,&task); event.sync(); /* make static geometry immutable */ if (isStatic()) { accels.immutable(); for (size_t i=0; i<geometries.size(); i++) geometries[i]->immutable(); } /* delete geometry that is scheduled for delete */ for (size_t i=0; i<geometries.size(); i++) { Geometry* geom = geometries[i]; if (geom == NULL || geom->state != Geometry::ERASING) continue; remove(geom); } /* update bounds */ bounds = accels.bounds; intersectors = accels.intersectors; is_build = true; /* enable only algorithms choosen by application */ if ((aflags & RTC_INTERSECT1) == 0) { intersectors.intersector1.intersect = NULL; intersectors.intersector1.occluded = NULL; } if ((aflags & RTC_INTERSECT4) == 0) { intersectors.intersector4.intersect = NULL; intersectors.intersector4.occluded = NULL; } if ((aflags & RTC_INTERSECT8) == 0) { intersectors.intersector8.intersect = NULL; intersectors.intersector8.occluded = NULL; } if ((aflags & RTC_INTERSECT16) == 0) { intersectors.intersector16.intersect = NULL; intersectors.intersector16.occluded = NULL; } if (g_verbose >= 2) { std::cout << "created scene intersector" << std::endl; accels.print(2); std::cout << "selected scene intersector" << std::endl; intersectors.print(2); } }