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