![]() |
TAPs 0.7.7.3
|
00001 /****************************************************************************** 00002 TAPsSpringPropertiesForDefModel.hpp 00003 ******************************************************************************/ 00008 /****************************************************************************** 00009 SUKITTI PUNAK (02/21/2007) 00010 UPDATE (09/07/2007) 00011 ******************************************************************************/ 00012 #ifndef TAPs_SPRING_PROPERTIES_FOR_DEF_MODEL_HPP 00013 #define TAPs_SPRING_PROPERTIES_FOR_DEF_MODEL_HPP 00014 00015 #include "../../Core/TAPsStdLib.hpp" 00016 00017 BEGIN_NAMESPACE_TAPs__OpenGL 00018 //============================================================================= 00019 template <typename T> 00020 class SpringPropertiesForDefModel { 00021 template <typename T> friend class ModelDeformableCPU; 00022 template <typename T> friend class ModelDeformableGLSL; 00023 //------------------------------------------------------------------------- 00024 // (Friend Fn) put it through ostream 00025 friend std::ostream & operator<< ( std::ostream &output, SpringPropertiesForDefModel<T> const &o ) 00026 { 00027 output << "\n=========================================================\n" 00028 << "TAPs::OpenGL::SpringPropertiesForDefModel<" << typeid(T).name() << "> Class:\n" 00029 << "=========================================================\n"; 00030 //------------------------------------------------- 00031 output << o.Info(); 00032 output << "\n=========================================================\n"; 00033 //------------------------------------------------- 00034 return output; 00035 } 00036 //----------------------------------------------------------------------------- 00037 // Member Functions ----------------------------------------------------------- 00038 public: 00039 //------------------------------------------------------------------------- 00040 // Default constructor 00041 SpringPropertiesForDefModel () { 00042 SetToDefaultValues(); 00043 } 00044 // Nondefalut Constructor 00045 SpringPropertiesForDefModel ( 00046 T Kstiffness, 00047 #ifdef TAPs_MODEL_DEFORMABLE_GLSL_EXPLICIT_EULER_INTEGRATION 00048 T Kdamper, 00049 #endif // #ifdef TAPs_MODEL_DEFORMABLE_GLSL_EXPLICIT_EULER_INTEGRATION 00050 T xLen, T yLen, T zLen ) { 00051 SetAllValues ( 00052 Kstiffness, 00053 #ifdef TAPs_MODEL_DEFORMABLE_GLSL_EXPLICIT_EULER_INTEGRATION 00054 Kdamper, 00055 #endif // #ifdef TAPs_MODEL_DEFORMABLE_GLSL_EXPLICIT_EULER_INTEGRATION 00056 xLen, yLen, zLen ); 00057 } 00058 //------------------------------------------------------------------------- 00059 // destructor 00060 //virtual ~SpringPropertiesForDefModel (); 00061 //------------------------------------------------------------------------- 00062 void SetToDefaultValues () { 00063 T Kstiffness = 1; 00064 #ifdef TAPs_MODEL_DEFORMABLE_GLSL_EXPLICIT_EULER_INTEGRATION 00065 T Kdamper = 1; 00066 #endif // #ifdef TAPs_MODEL_DEFORMABLE_GLSL_EXPLICIT_EULER_INTEGRATION 00067 T xLen = 0.5; 00068 T yLen = 0.5; 00069 T zLen = 0.5; 00070 //--------------------------------------- 00071 SetValueForAllStiffnesses( Kstiffness ); 00072 #ifdef TAPs_MODEL_DEFORMABLE_GLSL_EXPLICIT_EULER_INTEGRATION 00073 SetValueForAllDampers( Kdamper ); 00074 #endif // #ifdef TAPs_MODEL_DEFORMABLE_GLSL_EXPLICIT_EULER_INTEGRATION 00075 SetValueForAllSpringLengths ( xLen, yLen, zLen ); 00076 } 00077 //--------------------------------------------------------------- 00078 void SetAllValues ( 00079 T Kstiffness, 00080 #ifdef TAPs_MODEL_DEFORMABLE_GLSL_EXPLICIT_EULER_INTEGRATION 00081 T Kdamper, 00082 #endif // #ifdef TAPs_MODEL_DEFORMABLE_GLSL_EXPLICIT_EULER_INTEGRATION 00083 T xLen, T yLen, T zLen ) { 00084 SetValueForAllStiffnesses( Kstiffness ); 00085 #ifdef TAPs_MODEL_DEFORMABLE_GLSL_EXPLICIT_EULER_INTEGRATION 00086 SetValueForAllDampers( Kdamper ); 00087 #endif // #ifdef TAPs_MODEL_DEFORMABLE_GLSL_EXPLICIT_EULER_INTEGRATION 00088 SetValueForAllSpringLengths ( xLen, yLen, zLen ); 00089 } 00090 //------------------------------------------------------------------------- 00091 // Get/Set Fn(s) 00092 //------------------------------------------------------------------------- 00093 // New/Delete Fn(s) 00094 //------------------------------------------------------------------------- 00095 //----------------------------------------------------------------------------- 00096 // Data Members -------------------------------------------------------------- 00097 //========================================================================= 00098 //------------------------------------------------------------------------- 00113 //------------------------------------------------------------------------- 00117 public: 00118 static enum CONNECT { 00119 //----------------------------- 00120 // x dimension 00121 EAST = 0, 00122 WEST, 00123 //----------------------------- 00124 // y dimension 00125 NORTH, 00126 SOUTH, 00127 //----------------------------- 00128 // z dimension 00129 FRONT, 00130 BACK, 00131 //----------------------------- 00132 // xy dimension 00133 NORTH_EAST, 00134 SOUTH_WEST, 00135 //--------- 00136 NORTH_WEST, 00137 SOUTH_EAST, 00138 //----------------------------- 00139 // xz dimension 00140 FRONT_EAST, 00141 BACK_WEST, 00142 //--------- 00143 FRONT_WEST, 00144 BACK_EAST, 00145 //----------------------------- 00146 // yz dimension 00147 FRONT_NORTH, 00148 BACK_SOUTH, 00149 //--------- 00150 FRONT_SOUTH, 00151 BACK_NORTH, 00152 //----------------------------- 00153 // xyz dimension 00154 FRONT_NORTH_EAST, 00155 BACK_SOUTH_WEST, 00156 //--------- 00157 FRONT_NORTH_WEST, 00158 BACK_SOUTH_EAST, 00159 //--------- 00160 FRONT_SOUTH_WEST, 00161 BACK_NORTH_EAST, 00162 //--------- 00163 FRONT_SOUTH_EAST, 00164 BACK_NORTH_WEST, 00165 //----------------------------- 00166 // dimensionless 00167 NOT_CONNECTED, 00168 //----------------------------- 00169 // Home Spring 00170 HOME 00171 //----------------------------- 00172 }; 00173 private: 00174 //=============================================================== 00175 // Spring Constants/Coefficients and Spring Rest Length 00176 //=============================================================== 00177 // Group into a pair or a group of four or eight 00178 // Each pair or set should have the same value, 00179 // otherwise the end result may be oscillated. 00180 //--------------------------------------------------------------- 00181 //=============================================================== 00182 // 26 Neighbors + 1 NOT_CONNECTED + 1 Home Spring 00183 T REST_LENGTH[28]; // Spring Rest Lengths (Home spring rest length is zero!) 00184 T STIFFNESS[28]; // Spring Stiffness 00185 #ifdef TAPs_MODEL_DEFORMABLE_GLSL_EXPLICIT_EULER_INTEGRATION 00186 T DAMPER[28]; // Spring Damper 00187 #endif // #ifdef TAPs_MODEL_DEFORMABLE_GLSL_EXPLICIT_EULER_INTEGRATION 00188 #ifdef TAPs_MODEL_DEFORMABLE_GLSL_VERLET_INTEGRATION 00189 T DAMPER; // Spring Damper (only one value allowed) 00190 #endif // #ifdef TAPs_MODEL_DEFORMABLE_GLSL_VERLET_INTEGRATION 00191 00192 // Home Spring 00193 //T HOME_REST_LENGTH is zero! 00194 //T HOME_STIFFNESS; // Home Spring Stiffness 00195 //T HOME_DAMPER; // Home Spring Damper 00196 //--------------------------------------------------------------- 00197 // Store some parameters that will be adjusted during simulation, 00198 // so that the values can be restored after the simulation 00199 private: 00200 T m_tStore_Ks_Home; // Home Spring Stiffness 00201 //=============================================================== 00202 //*/ 00203 public: 00204 //--------------------------------------------------------------- 00205 // Get/Restore Store Value(s) 00206 //--------------------------------------------------------------- 00207 T GetStoreHomeSpringStiffness () { return m_tStore_Ks_Home; } 00208 //--------------------------------- 00209 void RestoreHomeSpringStiffness () 00210 { STIFFNESS[ HOME ] = m_tStore_Ks_Home; } 00211 //--------------------------------------------------------------- 00212 //--------------------------------------------------------------- 00213 // Get/Set Spring Value(s) 00214 //--------------------------------------------------------------- 00215 T GetSpringRestLength ( enum CONNECT springSelection ) 00216 { return REST_LENGTH[ springSelection ]; } 00217 //------------------------------------------- 00218 void SetSpringRestLength ( enum CONNECT springSelection, T val ) 00219 { REST_LENGTH[ springSelection ] = val; } 00220 //----------------------------------------------------- 00221 T GetSpringStiffness ( enum CONNECT springSelection ) 00222 { return STIFFNESS[ springSelection ]; } 00223 //------------------------------------------- 00224 void SetSpringStiffness ( enum CONNECT springSelection, T val ) 00225 { STIFFNESS[ springSelection ] = val; 00226 if ( springSelection == HOME ) 00227 m_tStore_Ks_Home = val; 00228 } 00229 //----------------------------------------------------- 00230 #ifdef TAPs_MODEL_DEFORMABLE_GLSL_EXPLICIT_EULER_INTEGRATION 00231 T GetSpringDamper ( enum CONNECT springSelection ) 00232 { return DAMPER[ springSelection ]; } 00233 //------------------------------------------- 00234 void SetSpringDamper ( enum CONNECT springSelection, T val ) 00235 { DAMPER[ springSelection ] = val; } 00236 #endif // #ifdef TAPs_MODEL_DEFORMABLE_GLSL_EXPLICIT_EULER_INTEGRATION 00237 //--------------------------------------------------------------- 00238 #ifdef TAPs_MODEL_DEFORMABLE_GLSL_VERLET_INTEGRATION 00239 T GetSpringDamper () 00240 { return DAMPER; } 00241 //------------------------------------------- 00242 void SetSpringDamper ( T val ) 00243 { DAMPER = val; } 00244 #endif // #ifdef TAPs_MODEL_DEFORMABLE_GLSL_VERLET_INTEGRATION 00245 //--------------------------------------------------------------- 00246 00247 //--------------------------------------------------------------- 00248 // Home Spring 00249 //--------------------------------------------------------------- 00250 T GetHomeSpringStiffness () 00251 { return STIFFNESS[ HOME ]; } 00252 void SetHomeSpringStiffness ( T val ) 00253 { STIFFNESS[ HOME ] = m_tStore_Ks_Home = val; } 00254 //------------------------------------------- 00255 void SetHomeSpringStiffnessWithoutStoreItsCurrentValue ( T val ) 00256 { STIFFNESS[ HOME ] = val; } 00257 //--------------------------------------------------------------- 00258 00259 //--------------------------------------------------------------- 00260 // Set All Spring Values 00261 //--------------------------------------------------------------- 00262 void SetValueForAllStiffnesses ( T val ) 00263 { 00264 STIFFNESS[FRONT] = val; 00265 STIFFNESS[BACK] = val; 00266 //--------------- 00267 STIFFNESS[EAST] = val; 00268 STIFFNESS[WEST] = val; 00269 STIFFNESS[NORTH] = val; 00270 STIFFNESS[SOUTH] = val; 00271 //--------------- 00272 STIFFNESS[NORTH_EAST] = val; 00273 STIFFNESS[SOUTH_WEST] = val; 00274 STIFFNESS[NORTH_WEST] = val; 00275 STIFFNESS[SOUTH_EAST] = val; 00276 //--------------- 00277 STIFFNESS[FRONT_EAST] = val; 00278 STIFFNESS[BACK_WEST] = val; 00279 STIFFNESS[FRONT_WEST] = val; 00280 STIFFNESS[BACK_EAST] = val; 00281 //--------------- 00282 STIFFNESS[FRONT_NORTH] = val; 00283 STIFFNESS[BACK_SOUTH] = val; 00284 STIFFNESS[FRONT_SOUTH] = val; 00285 STIFFNESS[BACK_NORTH] = val; 00286 //--------------- 00287 STIFFNESS[FRONT_NORTH_EAST] = val; 00288 STIFFNESS[BACK_SOUTH_WEST] = val; 00289 STIFFNESS[FRONT_NORTH_WEST] = val; 00290 STIFFNESS[BACK_SOUTH_EAST] = val; 00291 //--------------- 00292 STIFFNESS[FRONT_SOUTH_WEST] = val; 00293 STIFFNESS[BACK_NORTH_EAST] = val; 00294 STIFFNESS[FRONT_SOUTH_EAST] = val; 00295 STIFFNESS[BACK_NORTH_WEST] = val; 00296 //--------------- 00297 STIFFNESS[HOME] = val; 00298 m_tStore_Ks_Home = val; 00299 } 00300 //----------------------------------------------------- 00301 #ifdef TAPs_MODEL_DEFORMABLE_GLSL_EXPLICIT_EULER_INTEGRATION 00302 void SetValueForAllDampers ( T val ) 00303 { 00304 DAMPER[FRONT] = val; 00305 DAMPER[BACK] = val; 00306 //--------------- 00307 DAMPER[EAST] = val; 00308 DAMPER[WEST] = val; 00309 DAMPER[NORTH] = val; 00310 DAMPER[SOUTH] = val; 00311 //--------------- 00312 DAMPER[NORTH_EAST] = val; 00313 DAMPER[SOUTH_WEST] = val; 00314 DAMPER[NORTH_WEST] = val; 00315 DAMPER[SOUTH_EAST] = val; 00316 //--------------- 00317 DAMPER[FRONT_EAST] = val; 00318 DAMPER[BACK_WEST] = val; 00319 DAMPER[FRONT_WEST] = val; 00320 DAMPER[BACK_EAST] = val; 00321 //--------------- 00322 DAMPER[FRONT_NORTH] = val; 00323 DAMPER[BACK_SOUTH] = val; 00324 DAMPER[FRONT_SOUTH] = val; 00325 DAMPER[BACK_NORTH] = val; 00326 //--------------- 00327 DAMPER[FRONT_NORTH_EAST] = val; 00328 DAMPER[BACK_SOUTH_WEST] = val; 00329 DAMPER[FRONT_NORTH_WEST] = val; 00330 DAMPER[BACK_SOUTH_EAST] = val; 00331 //--------------- 00332 DAMPER[FRONT_SOUTH_WEST] = val; 00333 DAMPER[BACK_NORTH_EAST] = val; 00334 DAMPER[FRONT_SOUTH_EAST] = val; 00335 DAMPER[BACK_NORTH_WEST] = val; 00336 //--------------- 00337 DAMPER[HOME] = val; 00338 } 00339 #endif // #ifdef TAPs_MODEL_DEFORMABLE_GLSL_EXPLICIT_EULER_INTEGRATION 00340 //----------------------------------------------------- 00341 void SetValueForAllSpringLengths ( T xLen, T yLen, T zLen ) 00342 { 00343 T xLenSqrt = xLen * xLen; 00344 T yLenSqrt = yLen * yLen; 00345 T zLenSqrt = zLen * zLen; 00346 T xyLen = sqrt( xLenSqrt + yLenSqrt ); 00347 T xzLen = sqrt( xLenSqrt + zLenSqrt ); 00348 T yzLen = sqrt( yLenSqrt + zLenSqrt ); 00349 T xyzLen = sqrt( xLenSqrt + yLenSqrt + zLenSqrt ); 00350 //--------------------------------------- 00351 #ifdef TAPs_DEBUG_MODE 00352 std::cout << "DEBUG REST LENGTH:\n"; 00353 std::cout << "xLen: " << xLen << "\n"; 00354 std::cout << "yLen: " << yLen << "\n"; 00355 std::cout << "zLen: " << zLen << "\n"; 00356 std::cout << "xyLen: " << xyLen << "\n"; 00357 std::cout << "xzLen: " << xzLen << "\n"; 00358 std::cout << "yzLen: " << yzLen << "\n"; 00359 std::cout << "xyzLen: " << xyzLen << "\n"; 00360 #endif // #ifdef TAPs_DEBUG_MODE 00361 //--------------------------------------- 00362 REST_LENGTH[FRONT] = zLen; 00363 REST_LENGTH[BACK] = zLen; 00364 //--------------- 00365 REST_LENGTH[EAST] = xLen; 00366 REST_LENGTH[WEST] = xLen; 00367 REST_LENGTH[NORTH] = yLen; 00368 REST_LENGTH[SOUTH] = yLen; 00369 //--------------- 00370 REST_LENGTH[NORTH_EAST] = xyLen; 00371 REST_LENGTH[SOUTH_WEST] = xyLen; 00372 REST_LENGTH[NORTH_WEST] = xyLen; 00373 REST_LENGTH[SOUTH_EAST] = xyLen; 00374 //--------------- 00375 REST_LENGTH[FRONT_EAST] = xzLen; 00376 REST_LENGTH[BACK_WEST] = xzLen; 00377 REST_LENGTH[FRONT_WEST] = xzLen; 00378 REST_LENGTH[BACK_EAST] = xzLen; 00379 //--------------- 00380 REST_LENGTH[FRONT_NORTH] = yzLen; 00381 REST_LENGTH[BACK_SOUTH] = yzLen; 00382 REST_LENGTH[FRONT_SOUTH] = yzLen; 00383 REST_LENGTH[BACK_NORTH] = yzLen; 00384 //--------------- 00385 REST_LENGTH[FRONT_NORTH_EAST] = xyzLen; 00386 REST_LENGTH[BACK_SOUTH_WEST] = xyzLen; 00387 REST_LENGTH[FRONT_NORTH_WEST] = xyzLen; 00388 REST_LENGTH[BACK_SOUTH_EAST] = xyzLen; 00389 //--------------- 00390 REST_LENGTH[FRONT_SOUTH_WEST] = xyzLen; 00391 REST_LENGTH[BACK_NORTH_EAST] = xyzLen; 00392 REST_LENGTH[FRONT_SOUTH_EAST] = xyzLen; 00393 REST_LENGTH[BACK_NORTH_WEST] = xyzLen; 00394 //--------------- 00395 REST_LENGTH[HOME] = 0; 00396 } 00397 //------------------------------------------------------------------------- 00398 void InfoConnectionProperties ( std::string & addToStr, 00399 CONNECT connect, int maxNumConnections = 26 ) const { 00400 char cStr[80]; 00401 if ( connect <= maxNumConnections ) { 00402 #ifdef TAPs_MODEL_DEFORMABLE_GLSL_EXPLICIT_EULER_INTEGRATION 00403 sprintf( cStr, " %g, %g, %g", 00404 SPRING_PROP.REST_LENGTH[ connect ], 00405 SPRING_PROP.STIFFNESS[ connect ], 00406 SPRING_PROP.DAMPER[ connect ] 00407 ); 00408 #else // #ifdef TAPs_MODEL_DEFORMABLE_GLSL_EXPLICIT_EULER_INTEGRATION 00409 sprintf( cStr, " %g, %g", 00410 SPRING_PROP.REST_LENGTH[ connect ], 00411 SPRING_PROP.STIFFNESS[ connect ] 00412 ); 00413 #endif // #ifdef TAPs_MODEL_DEFORMABLE_GLSL_EXPLICIT_EULER_INTEGRATION 00414 addToStr += cStr; 00415 } 00416 } 00417 //------------------------------------------------------------------------- 00418 std::string Info () const { 00419 const int maxNumConnections = 26; 00420 std::string strInfo; 00421 //--------------------------------------- 00422 #ifdef TAPs_MODEL_DEFORMABLE_GLSL_EXPLICIT_EULER_INTEGRATION 00423 strInfo += "Rest Length Stiffness Damper Distance Limit\n"; 00424 #else // #ifdef TAPs_MODEL_DEFORMABLE_GLSL_EXPLICIT_EULER_INTEGRATION 00425 strInfo += "Rest Length Stiffness Distance Limit\n"; 00426 #endif // #ifdef TAPs_MODEL_DEFORMABLE_GLSL_EXPLICIT_EULER_INTEGRATION 00427 //======================================= 00428 strInfo += "-----------\n"; 00429 strInfo += "HOME SPRING:\n"; 00430 strInfo += "-----------"; 00431 strInfo += "\n Home Spring: "; 00432 InfoConnectionProperties( strInfo, HOME, maxNumConnections ); 00433 //------------- 00434 //======================================= 00435 strInfo += "-----------\n"; 00436 strInfo += "FRONT GROUP:\n"; 00437 strInfo += "-----------"; 00438 //------------- 00439 strInfo += "\n FrontNorthWest: "; 00440 InfoConnectionProperties( strInfo, FRONT_NORTH_WEST, maxNumConnections ); 00441 strInfo += "\n FrontNorth: "; 00442 InfoConnectionProperties( strInfo, FRONT_NORTH, maxNumConnections ); 00443 strInfo += "\n FrontNorthEast: "; 00444 InfoConnectionProperties( strInfo, FRONT_NORTH_EAST, maxNumConnections ); 00445 //------------- 00446 strInfo += "\n FrontWest: "; 00447 InfoConnectionProperties( strInfo, FRONT_WEST, maxNumConnections ); 00448 strInfo += "\n Front: "; 00449 InfoConnectionProperties( strInfo, FRONT, maxNumConnections ); 00450 strInfo += "\n FrontEast: "; 00451 InfoConnectionProperties( strInfo, FRONT_EAST, maxNumConnections ); 00452 //------------- 00453 strInfo += "\n FrontSouthWest: "; 00454 InfoConnectionProperties( strInfo, FRONT_SOUTH_WEST, maxNumConnections ); 00455 strInfo += "\n FrontSouth: "; 00456 InfoConnectionProperties( strInfo, FRONT_SOUTH, maxNumConnections ); 00457 strInfo += "\n FrontSouthEast: "; 00458 InfoConnectionProperties( strInfo, FRONT_SOUTH_EAST, maxNumConnections ); 00459 //------------- 00460 strInfo += "\n"; 00461 //======================================= 00462 strInfo += "------------\n"; 00463 strInfo += "CENTER GROUP:\n"; 00464 strInfo += "------------"; 00465 //------------- 00466 strInfo += "\n NorthWest: "; 00467 InfoConnectionProperties( strInfo, NORTH_WEST, maxNumConnections ); 00468 strInfo += "\n North: "; 00469 InfoConnectionProperties( strInfo, NORTH, maxNumConnections ); 00470 strInfo += "\n NorthEast: "; 00471 InfoConnectionProperties( strInfo, NORTH_EAST, maxNumConnections ); 00472 //------------- 00473 strInfo += "\n West: "; 00474 InfoConnectionProperties( strInfo, WEST, maxNumConnections ); 00475 strInfo += "\n East: "; 00476 InfoConnectionProperties( strInfo, EAST, maxNumConnections ); 00477 //------------- 00478 strInfo += "\n SouthWest: "; 00479 InfoConnectionProperties( strInfo, SOUTH_WEST, maxNumConnections ); 00480 strInfo += "\n South: "; 00481 InfoConnectionProperties( strInfo, SOUTH, maxNumConnections ); 00482 strInfo += "\n SouthEast: "; 00483 InfoConnectionProperties( strInfo, SOUTH_EAST, maxNumConnections ); 00484 //------------- 00485 strInfo += "\n"; 00486 //======================================= 00487 strInfo += "----------\n"; 00488 strInfo += "BACK GROUP:\n"; 00489 strInfo += "----------"; 00490 //------------- 00491 strInfo += "\n BackNorthWest: "; 00492 InfoConnectionProperties( strInfo, BACK_NORTH_WEST, maxNumConnections ); 00493 strInfo += "\n BackNorth: "; 00494 InfoConnectionProperties( strInfo, BACK_NORTH, maxNumConnections ); 00495 strInfo += "\n BackNorthEast: "; 00496 InfoConnectionProperties( strInfo, BACK_NORTH_EAST, maxNumConnections ); 00497 //------------- 00498 strInfo += "\n BackWest: "; 00499 InfoConnectionProperties( strInfo, BACK_WEST, maxNumConnections ); 00500 strInfo += "\n Back: "; 00501 InfoConnectionProperties( strInfo, BACK, maxNumConnections ); 00502 strInfo += "\n BackEast: "; 00503 InfoConnectionProperties( strInfo, BACK_EAST, maxNumConnections ); 00504 //------------- 00505 strInfo += "\n BackSouthWest: "; 00506 InfoConnectionProperties( strInfo, BACK_SOUTH_WEST, maxNumConnections ); 00507 strInfo += "\n BackSouth: "; 00508 InfoConnectionProperties( strInfo, BACK_SOUTH, maxNumConnections ); 00509 strInfo += "\n BackSouthEast: "; 00510 InfoConnectionProperties( strInfo, BACK_SOUTH_EAST, maxNumConnections ); 00511 //------------- 00512 //======================================= 00513 return strInfo; 00514 } 00515 //------------------------------------------------------------------------- 00516 }; // CLASS END: SpringPropertiesForDefModel ********************************** 00517 //============================================================================= 00518 END_NAMESPACE_TAPs__OpenGL 00519 //----------------------------------------------------------------------------- 00520 // Include definition if TAPs_USE_EXPORT is not defined 00521 //#if !defined( TAPs_USE_EXPORT ) 00522 //#include "SpringPropertiesForDefModel.cpp" 00523 //#endif 00524 //----------------------------------------------------------------------------- 00525 #endif 00526 //34567890123456789012345678901234567890123456789012345678901234567890123456789 00527 //--+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----