![]() |
TAPs 0.7.7.3
|
00001 /****************************************************************************** 00002 TAPsKnotTrackingConstraint.hpp 00003 ******************************************************************************/ 00007 /****************************************************************************** 00008 SUKITTI PUNAK (11/05/2010) 00009 UPDATE (11/10/2010) 00010 ******************************************************************************/ 00011 #ifndef TAPs_KNOT_TRACKING_CONSTRAINT_HPP 00012 #define TAPs_KNOT_TRACKING_CONSTRAINT_HPP 00013 00014 //#include "../Core/TAPsStdLib.hpp" 00015 #include "TAPsDatabaseDowkerNotation.hpp" 00016 00017 BEGIN_NAMESPACE_TAPs__Data 00018 //============================================================================= 00019 template <typename T> 00020 class KnotTrackingConstraint { 00021 //============================================================================= 00022 00023 class LoHiPair { 00024 public: 00025 LoHiPair ( int low = 0, int high = 0 ) : Low(low), High(high) {} 00026 int Low, High; 00027 }; 00028 00029 public: 00030 // Member Functions ------------------------------------------------------- 00031 00033 friend std::ostream & operator<< ( std::ostream &output, KnotTrackingConstraint<T> const &obj ) 00034 { 00035 output << obj.StrInfo(); 00036 return output; 00037 } 00038 00039 //------------------------------------------------------------------------- 00041 KnotTrackingConstraint ( enum DatabaseDowkerNotation::KNOT knot = DatabaseDowkerNotation::UNDEFINED ); 00043 ~KnotTrackingConstraint (); 00044 00045 //------------------------------------------------------------------------- 00047 std::string StrInfo () const; 00048 00049 //------------------------------------------------------------------------- 00051 enum DatabaseDowkerNotation::KNOT GetTrackedKnotType () const { return m_Knot; } 00053 void SetTrackedKnotType ( enum DatabaseDowkerNotation::KNOT knot ); 00054 00056 void ClearAllPairs () { m_LoHiPairs.clear(); } 00057 00059 unsigned int GetNumberOfPairs () const { m_LoHiPairs.size(); } 00061 void SetNumberOfPairs ( int size ) { m_LoHiPairs.resize( size ); } 00062 00064 void AddPair ( int low, int high ); 00066 void InsertPair ( int low, int high ); 00067 00068 //------------------------------------------------------------------------- 00070 int GetLowValueOfPair ( int i ) const { return m_LoHiPairs[i].Low; } 00072 int GetHighValueOfPair ( int i ) const { return m_LoHiPairs[i].High; } 00074 void SetLowValueOfPair ( int i, int value ) { m_LoHiPairs[i].Low = value; } 00076 void SetHighValueOfPair ( int i, int value ) { m_LoHiPairs[i].High = value; } 00078 void AdjustLowValueOfPair ( int i, int value ) { m_LoHiPairs[i].Low += value; } 00080 void AdjustHighValueOfPair ( int i, int value ) { m_LoHiPairs[i].High += value; } 00081 00082 //------------------------------------------------------------------------- 00083 // Data Members ----------------------------------------------------------- 00084 //============================================================================= 00085 protected: 00086 // Member Functions ------------------------------------------------------- 00087 // Data Members ----------------------------------------------------------- 00088 std::vector< LoHiPair > m_LoHiPairs; 00089 enum DatabaseDowkerNotation::KNOT m_Knot; 00090 //============================================================================= 00091 private: 00092 // Member Functions ------------------------------------------------------- 00093 // Data Members ----------------------------------------------------------- 00094 //============================================================================= 00095 00096 00097 //============================================================================= 00098 // OpenGL 00099 #if defined(__gl_h_) || defined(__GL_H__) 00100 //----------------------------------------------------------------------------- 00101 public: 00103 virtual void Draw () const; 00104 //----------------------------------------------------------------------------- 00105 #endif // OpenGL 00106 //============================================================================= 00107 00108 00109 //============================================================================= 00110 }; // END CLASS KnotTrackingConstraint 00111 //============================================================================= 00112 END_NAMESPACE_TAPs__Data 00113 //----------------------------------------------------------------------------- 00115 #include "TAPsKnotTrackingConstraint.cpp" 00116 00118 // Include definition if TAPs_USE_EXPORT is not defined 00119 //#if !defined( TAPs_USE_EXPORT ) 00120 // #include "TAPsKnotTrackingConstraint.cpp" 00121 //#endif 00122 //----------------------------------------------------------------------------- 00123 #endif 00124 //34567890123456789012345678901234567890123456789012345678901234567890123456789 00125 //--+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----