------------------------------------------------------------ revno: 1757 committer: Janek Kozicki <cosu...@berlios.de> branch nick: trunk timestamp: Mon 2009-09-14 14:46:08 +0200 message: 1. get snow code to run, albeit still buggy 2. why dynamic_casts stopped working everywhere, that's a mystery to me 3. interactions isNew doesn't exist anymore, snow code needs update for this modified: pkg/snow/DataClass/BshSnowGrain.hpp pkg/snow/Engine/Ef2_BssSnowGrain_BssSnowGrain_makeSpheresContactGeometry.cpp pkg/snow/Engine/Ef2_InteractingBox_BssSnowGrain_makeIstSnowLayersContact.cpp pkg/snow/Engine/Ef2_InteractingBox_BssSnowGrain_makeSpheresContactGeometry.cpp pkg/snow/PreProcessor/SnowVoxelsLoader.cpp pkg/snow/PreProcessor/SnowVoxelsLoader.hpp
-- lp:yade https://code.launchpad.net/~yade-dev/yade/trunk Your team Yade developers is subscribed to branch lp:yade. To unsubscribe from this branch go to https://code.launchpad.net/~yade-dev/yade/trunk/+edit-subscription.
=== modified file 'pkg/snow/DataClass/BshSnowGrain.hpp' --- pkg/snow/DataClass/BshSnowGrain.hpp 2009-08-03 10:02:11 +0000 +++ pkg/snow/DataClass/BshSnowGrain.hpp 2009-09-14 12:46:08 +0000 @@ -8,8 +8,8 @@ #include<boost/serialization/vector.hpp> #include<boost/serialization/shared_ptr.hpp> #include<boost/tuple/tuple.hpp> -#include <boost/thread.hpp> - +#include<boost/thread.hpp> +#include<boost/serialization/export.hpp> typedef std::vector< std::vector<std::vector<unsigned char> > > T_DATA; @@ -126,3 +126,5 @@ REGISTER_SERIALIZABLE(BshSnowGrain); +BOOST_CLASS_EXPORT(BshSnowGrain) + === modified file 'pkg/snow/Engine/Ef2_BssSnowGrain_BssSnowGrain_makeSpheresContactGeometry.cpp' --- pkg/snow/Engine/Ef2_BssSnowGrain_BssSnowGrain_makeSpheresContactGeometry.cpp 2009-08-03 10:02:11 +0000 +++ pkg/snow/Engine/Ef2_BssSnowGrain_BssSnowGrain_makeSpheresContactGeometry.cpp 2009-09-14 12:46:08 +0000 @@ -23,7 +23,20 @@ // std::cerr << "------------------- " << __FILE__ << "\n"; // return result; - BssSnowGrain* s1=dynamic_cast<BssSnowGrain*>(cm1.get()), *s2=dynamic_cast<BssSnowGrain*>(cm2.get()); + if(cm1->getClassName() != std::string("BssSnowGrain") || cm2->getClassName() != std::string("BssSnowGrain")) + { + std::cerr << cm1->getClassName() << " " << cm2->getClassName() << "\n"; + std::cerr << "whooooooooops =99=\n"; + return false; + } + BssSnowGrain* s1=static_cast<BssSnowGrain*>(cm1.get()); + BssSnowGrain* s2=static_cast<BssSnowGrain*>(cm2.get()); + if(s1==0 || s2==0) + { + std::cerr << cm1->getClassName() << " " << cm2->getClassName() << "\n"; + std::cerr << "whooooooooops =9=\n"; + return false; + } Vector3r normal=se32.position-se31.position; Real penetrationDepthSq=pow((s1->radius+s2->radius),2) - normal.SquaredLength(); if (penetrationDepthSq>0 || c->isReal() || assist) @@ -77,11 +90,11 @@ { shared_ptr<SpheresContactGeometry> scm; if(c->interactionGeometry) scm=dynamic_pointer_cast<SpheresContactGeometry>(c->interactionGeometry); - else { std::cerr << "whooooooooops_2!" << __FILE__ << "\n"; return false; } + else { std::cerr << "whooooooooops =5= " << __FILE__ << "\n"; return false; } scm->normal *= -1.0; std::swap(scm->radius1,scm->radius2); } return result; } -YADE_PLUGIN((Ef2_BssSnowGrain_BssSnowGrain_makeSpheresContactGeometry)); \ No newline at end of file +YADE_PLUGIN((Ef2_BssSnowGrain_BssSnowGrain_makeSpheresContactGeometry)); === modified file 'pkg/snow/Engine/Ef2_InteractingBox_BssSnowGrain_makeIstSnowLayersContact.cpp' --- pkg/snow/Engine/Ef2_InteractingBox_BssSnowGrain_makeIstSnowLayersContact.cpp 2009-08-20 19:55:52 +0000 +++ pkg/snow/Engine/Ef2_InteractingBox_BssSnowGrain_makeIstSnowLayersContact.cpp 2009-09-14 12:46:08 +0000 @@ -59,10 +59,18 @@ //InteractingBox* m1=static_cast<InteractingBox*>(cm1.get()), *m2=static_cast<BssSnowGrain*>(cm2.get()); //std::cerr << "------------------- " << __FILE__ << "\n"; - InteractingBox* m1=dynamic_cast<InteractingBox*>(cm1.get()); BssSnowGrain *m2=dynamic_cast<BssSnowGrain*>(cm2.get()); + if(cm1->getClassName() != std::string("InteractingBox") || cm2->getClassName() != std::string("BssSnowGrain")) + { + std::cerr << cm1->getClassName() << " " << cm2->getClassName() << "\n"; + std::cerr << "whooooooooops =66=\n"; + return false; + } + InteractingBox* m1=static_cast<InteractingBox*>(cm1.get()); + BssSnowGrain *m2=static_cast<BssSnowGrain*>(cm2.get()); if(m1==0 || m2==0) { - std::cerr << "whooooooooops_2!" << __FILE__ << "\n"; + std::cerr << cm1->getClassName() << " " << cm2->getClassName() << "\n"; + std::cerr << "whooooooooops =6= " << __FILE__ << "\n"; return false; } @@ -227,6 +235,7 @@ //FIXME// bool old_n = c->isNew; //FIXME// c->isNew=false; //ggg.assist=true; +///////////////?????? c->init(); bool res = ggg.go(cm1,cm2,se31,se32,c); //FIXME// c->isNew=old_n; return res; @@ -264,10 +273,18 @@ //InteractingBox* m1=static_cast<InteractingBox*>(cm1.get()), *m2=static_cast<BssSnowGrain*>(cm2.get()); //// std::cerr << "----- reverse ----- " << __FILE__ << "\n"; - InteractingBox* m2=dynamic_cast<InteractingBox*>(cm2.get()); BssSnowGrain *m1=dynamic_cast<BssSnowGrain*>(cm1.get()); + if(cm1->getClassName() != std::string("BssSnowGrain") || cm2->getClassName() != std::string("InteractingBox")) + { + std::cerr << cm1->getClassName() << " " << cm2->getClassName() << "\n"; + std::cerr << "whooooooooops =11=\n"; + return false; + } + InteractingBox* m2=static_cast<InteractingBox*>(cm2.get()); + BssSnowGrain *m1=static_cast<BssSnowGrain*>(cm1.get()); if(m1==0 || m2==0) { - std::cerr << "whooooooooops_2!" << __FILE__ << "\n"; + std::cerr << cm1->getClassName() << " " << cm2->getClassName() << "\n"; + std::cerr << "\n whooooooooops =1= " << __FILE__ << "\n"; return false; } === modified file 'pkg/snow/Engine/Ef2_InteractingBox_BssSnowGrain_makeSpheresContactGeometry.cpp' --- pkg/snow/Engine/Ef2_InteractingBox_BssSnowGrain_makeSpheresContactGeometry.cpp 2009-08-03 10:02:11 +0000 +++ pkg/snow/Engine/Ef2_InteractingBox_BssSnowGrain_makeSpheresContactGeometry.cpp 2009-09-14 12:46:08 +0000 @@ -28,16 +28,27 @@ if(result) { //InteractingBox* s1=static_cast<InteractingBox*>(cm1.get()), *s2=static_cast<BssSnowGrain*>(cm2.get()); - InteractingBox* s1=dynamic_cast<InteractingBox*>(cm1.get());BssSnowGrain *s2=dynamic_cast<BssSnowGrain*>(cm2.get()); + if(cm1->getClassName() != std::string("InteractingBox") || cm2->getClassName() != std::string("BssSnowGrain")) + { + std::cerr << cm1->getClassName() << " " << cm2->getClassName() << "\n"; + std::cerr << "whooooooooops =22=\n"; + return false; + } + InteractingBox* s1=static_cast<InteractingBox*>(cm1.get()); + BssSnowGrain *s2=static_cast<BssSnowGrain*>(cm2.get()); if(s1==0 || s2==0) { - std::cerr << "whooooooooops_2!" << __FILE__ << "\n"; + std::cerr << cm1->getClassName() << " " << cm2->getClassName() << "\n"; + std::cerr << "whooooooooops =2= " << __FILE__ << "\n"; return false; } shared_ptr<SpheresContactGeometry> scm; if(c->interactionGeometry) scm=dynamic_pointer_cast<SpheresContactGeometry>(c->interactionGeometry); - else { std::cerr << "whooooooooops!" << __FILE__ << "\n"; } + else + { + std::cerr << "whooooooooops =3= " << __FILE__ << "\n"; + } // std::cerr << __FILE__ << " " << scm->getClassName() << "\n"; @@ -76,11 +87,11 @@ { shared_ptr<SpheresContactGeometry> scm; if(c->interactionGeometry) scm=dynamic_pointer_cast<SpheresContactGeometry>(c->interactionGeometry); - else { std::cerr << "whooooooooops_2!" << __FILE__ << "\n"; return false; } + else { std::cerr << "whooooooooops =4= " << __FILE__ << "\n"; return false; } scm->normal *= -1.0; std::swap(scm->radius1,scm->radius2); } return result; } -YADE_PLUGIN((Ef2_InteractingBox_BssSnowGrain_makeSpheresContactGeometry)); \ No newline at end of file +YADE_PLUGIN((Ef2_InteractingBox_BssSnowGrain_makeSpheresContactGeometry)); === modified file 'pkg/snow/PreProcessor/SnowVoxelsLoader.cpp' --- pkg/snow/PreProcessor/SnowVoxelsLoader.cpp 2009-08-05 07:32:18 +0000 +++ pkg/snow/PreProcessor/SnowVoxelsLoader.cpp 2009-09-14 12:46:08 +0000 @@ -87,7 +87,7 @@ // voxel_txt_dir = ""; // voxel_caxis_file = ""; // voxel_colors_file = ""; - grain_binary_data_file = "grain_binary.bz2"; + grain_binary_data_file = "grain_binary--NOT-USED-NOW.bz2"; sphereYoungModulus = 15000000.0; spherePoissonRatio = 0.5; @@ -148,18 +148,18 @@ bool SnowVoxelsLoader::load_voxels() { - if(grain_binary_data_file !="" && boost::filesystem::exists(grain_binary_data_file)) - { - std::cerr << "no need to load voxels - grain binary file exists\n"; - std::cerr << "loading " << grain_binary_data_file << " ..."; - boost::iostreams::filtering_istream ifs; - ifs.push(boost::iostreams::bzip2_decompressor()); - ifs.push(boost::iostreams::file_source(grain_binary_data_file)); - //std::ifstream ifs(m_config.load_file()); - boost::archive::binary_iarchive ia(ifs); - ia >> m_grains; - return true; - } +// if(grain_binary_data_file !="" && boost::filesystem::exists(grain_binary_data_file)) +// { +// std::cerr << "no need to load voxels - grain binary file exists\n"; +// std::cerr << "loading " << grain_binary_data_file << " ..."; +// boost::iostreams::filtering_istream ifs; +// ifs.push(boost::iostreams::bzip2_decompressor()); +// ifs.push(boost::iostreams::file_source(grain_binary_data_file)); +// //std::ifstream ifs(m_config.load_file()); +// boost::archive::binary_iarchive ia(ifs); +// ia >> m_grains; +// return true; +// } if(voxel_binary_data_file != "" && boost::filesystem::exists(voxel_binary_data_file)) { @@ -233,17 +233,17 @@ std::cerr << "\n======= total skipped grains: " << ((int)(skip_total)) << "\n"; - std::cerr << "saving "<< grain_binary_data_file << " ..."; - boost::iostreams::filtering_ostream ofs; - ofs.push(boost::iostreams::bzip2_compressor()); - ofs.push(boost::iostreams::file_sink(grain_binary_data_file)); - boost::archive::binary_oarchive oa(ofs); -#if BOOST_VERSION >= 103500 - oa << m_grains; -#else - const std::vector<boost::shared_ptr<BshSnowGrain> > tmp(m_grains); - oa << tmp; -#endif +// std::cerr << "saving "<< grain_binary_data_file << " ..."; +// boost::iostreams::filtering_ostream ofs; +// ofs.push(boost::iostreams::bzip2_compressor()); +// ofs.push(boost::iostreams::file_sink(grain_binary_data_file)); +// boost::archive::binary_oarchive oa(ofs); +////#if BOOST_VERSION >= 103500 +// oa << m_grains; +//#else +// const std::vector<boost::shared_ptr<BshSnowGrain> > tmp(m_grains); +// oa << tmp; +//#endif std::cerr << " finished\n"; } === modified file 'pkg/snow/PreProcessor/SnowVoxelsLoader.hpp' --- pkg/snow/PreProcessor/SnowVoxelsLoader.hpp 2009-07-17 20:50:55 +0000 +++ pkg/snow/PreProcessor/SnowVoxelsLoader.hpp 2009-09-14 12:46:08 +0000 @@ -132,7 +132,7 @@ // (voxel_txt_dir) // (voxel_caxis_file) // (voxel_colors_file) - (grain_binary_data_file) + // (grain_binary_data_file) (one_voxel_in_meters_is) (layer_distance_voxels) (angle_increment_radians)
_______________________________________________ Mailing list: https://launchpad.net/~yade-dev Post to : yade-dev@lists.launchpad.net Unsubscribe : https://launchpad.net/~yade-dev More help : https://help.launchpad.net/ListHelp