+ * \brief Set a _SolidData to be computed before another
+ */
+//================================================================================
+
+bool _ViscousBuilder::setBefore( _SolidData& solidBefore, _SolidData& solidAfter )
+{
+ // check possibility to set this order; get all solids before solidBefore
+ TopTools_IndexedMapOfShape allSolidsBefore;
+ allSolidsBefore.Add( solidBefore._solid );
+ for ( int i = 1; i <= allSolidsBefore.Extent(); ++i )
+ {
+ int iSD = _solids.FindIndex( allSolidsBefore(i) );
+ if ( iSD )
+ {
+ TopTools_MapIteratorOfMapOfShape soIt( _sdVec[ iSD-1 ]._before );
+ for ( ; soIt.More(); soIt.Next() )
+ allSolidsBefore.Add( soIt.Value() );
+ }
+ }
+ if ( allSolidsBefore.Contains( solidAfter._solid ))
+ return false;
+
+ for ( int i = 1; i <= allSolidsBefore.Extent(); ++i )
+ solidAfter._before.Add( allSolidsBefore(i) );
+
+ return true;
+}
+
+//================================================================================
+/*!
+ * \brief