49 #define LOD_HYSTHERESIS_DIVIDER (20)
50 #define LOD_HYSTHERESIS_MAXENLARGEMENT_FACTOR (1.1)
59 if ( which.empty() ) {
61 if (animSeq)
return animSeq->size();
64 if (animSeq)
return animSeq->size();
88 Decal.push_back( NULL );
141 fprintf( stderr,
"UNTESTED MESH COPY CONSTRUCTOR" );
148 for (
unsigned int i = 0;
i < vec->size(); ++
i) {
150 if (mush == m.
orig || mush == &m)
154 if (vec->size() > 1)
fprintf( stderr,
"Copy constructor %s used in ambiguous Situation",
hash_name.c_str() );
170 using namespace VSFileSystem;
182 std::vector< Mesh* > *tmp = bfxmHashTable.
Get( this->orig->hash_name );
183 if (tmp && tmp->size() && (*tmp)[0] == this->
orig) {
184 if (this->orig->refcount == 1) {
185 bfxmHashTable.
Delete( this->orig->hash_name );
191 if (this->orig->refcount == 1) {
206 fprintf( stderr,
"fallback, %s unable to be loaded as bfxm\n", filename.c_str() );
215 const vector< string > &textureOverride ) : hash_name( filename )
238 LoadXML( f, scale, faction, fg, orig, textureOverride );
239 oldmesh = this->
orig;
243 oldmesh =
new Mesh[1];
256 oldmesh->
orig = NULL;
263 float const ooPI = 1.00F/3.1415926535F;
307 Mesh *retval = &orig[0];
308 vector< int > *animFrames = 0;
312 animFrames->size() ) ) );
314 static float max_frames_skipped =
316 if (adv > max_frames_skipped)
317 adv = max_frames_skipped;
319 return &orig[(*animFrames)[which%animFrames->size()]%
getNumLOD()];
321 float maxlodsize = retval ? retval->
lodsize : 0.0f;
324 if (!bBypassDamping) {
330 if ( (lodoffs > 0) && (lodoffs > maxenlargement) ) lodoffs = maxenlargement;
332 if ( ( lod < (orig[
i].
lodsize+lodoffs) ) && (lod < maxlodsize) ) {
333 maxlodsize = orig[
i].lodsize;
353 orig->blendSrc = src;
354 orig->blendDst = dst;
358 orig[
i].blendSrc = src;
359 orig[
i].blendDst = dst;
372 switch (excludeWhich)
375 return (query.j >= mn.j-err) && (query.k >= mn.k-err) && (query.j <= mx.j+err) && (query.k <= mx.k+err);
378 return (query.i >= mn.i-err) && (query.k >= mn.k-err) && (query.i <= mx.i+err) && (query.k <= mx.k+err);
382 return (query.j >= mn.j-err) && (query.i >= mn.i-err) && (query.j <= mx.j+err) && (query.i <= mx.i+err);