TAPs 0.7.7.3
TAPsSpringPropertiesForDefModel.hpp
Go to the documentation of this file.
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----+----
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines