CigiBaseSymbolCircleDef.h

Go to the documentation of this file.
00001 
00039 #if !defined(_CIGI_BASE_SYMBOL_CIRCLE_DEF_INCLUDED_)
00040 #define _CIGI_BASE_SYMBOL_CIRCLE_DEF_INCLUDED_
00041 
00042 
00043 #include "CigiBaseVariableSizePckt.h"
00044 #include "CigiBaseCircleSymbolData.h"
00045 #include <vector>
00046 
00047 
00048 // ====================================================================
00049 // preprocessor definitions
00050 // ====================================================================
00051 
00052 #define CIGI_SYMBOL_CIRCLE_DEFINITION_PACKET_ID_V3_3 31
00053 #define CIGI_SYMBOL_CIRCLE_DEFINITION_PACKET_SIZE_V3_3 16
00054 
00055 
00056 class CigiSymbolCircleDefV3_3;
00057 
00058 
00059 //=========================================================
00062 class CIGI_SPEC CigiBaseSymbolCircleDef :
00063    public CigiBaseVariableSizePckt
00064 {
00065 
00066    friend class CigiSymbolCircleDefV3_3;
00067 
00068 public:
00069 
00070 
00071    //=========================================================
00075    enum DrawingStyleGrp
00076    {
00077       Line=0,
00078       Fill=1
00079    };
00080 
00081 
00082    //==> Management
00083 
00084    //=========================================================
00087    CigiBaseSymbolCircleDef(void);
00088 
00089    //=========================================================
00092    virtual ~CigiBaseSymbolCircleDef(void);
00093 
00094    //=========================================================
00097    CigiBaseSymbolCircleDef(const CigiBaseSymbolCircleDef &BaseIn);
00098 
00099    //=========================================================
00102    CigiBaseSymbolCircleDef & operator=(const CigiBaseSymbolCircleDef &BaseIn);
00103 
00104 
00105    //==> Buffer Packing/Unpacking
00106 
00107    //=========================================================
00118    virtual int Pack(CigiBasePacket * Base, Cigi_uint8 * Buff, void *Spec) const=0;
00119 
00120    //=========================================================
00130    virtual int Unpack(Cigi_uint8 * Buff, bool Swap, void *Spec) =0;
00131 
00132    //=========================================================
00140         virtual int GetTruePacketSize(CigiBaseVariableSizePckt &refPacket)
00141    { return(PacketSize + refPacket.GetVariableDataSize()); }
00142 
00143    //=========================================================
00155         virtual int GetCnvt(CigiVersionID &CnvtVersion,
00156                        CigiCnvtInfoType::Type &CnvtInfo);
00157 
00158 
00159 
00160    //==> Accessing Member Variable Values functions
00161 
00162    //+> SymbolID
00163 
00164    //=========================================================
00171    int SetSymbolID(const Cigi_uint16 SymbolIDIn, bool bndchk=true)
00172    {
00173       SymbolID = SymbolIDIn;
00174       return(CIGI_SUCCESS);
00175    }
00176 
00177    //=========================================================
00181    Cigi_uint16 GetSymbolID(void) const { return(SymbolID); }
00182    
00183 
00184    //+> DrawingStyle
00185 
00186    //=========================================================
00194    int SetDrawingStyle(const DrawingStyleGrp DrawingStyleIn, bool bndchk=true);
00195 
00196    //=========================================================
00200    DrawingStyleGrp GetDrawingStyle(void) const { return(DrawingStyle); }
00201 
00202 
00203    //+> StipplePattern
00204 
00205    //=========================================================
00213    int SetStipplePattern(const Cigi_uint16 StipplePatternIn, bool bndchk=true)
00214    {
00215       StipplePattern = StipplePatternIn;
00216       return(CIGI_SUCCESS);
00217    }
00218 
00219    //=========================================================
00223    Cigi_uint16 GetStipplePattern(void) const { return(StipplePattern); }
00224 
00225 
00226    //+> LineWidth
00227 
00228    //=========================================================
00236    int SetLineWidth(const float LineWidthIn, bool bndchk=true);
00237 
00238    //=========================================================
00243    float GetLineWidth(void) const { return(LineWidth); }
00244 
00245 
00246    //+> StipplePatternLen
00247 
00248    //=========================================================
00257    int SetStipplePatternLen(const float StipplePatternLenIn, bool bndchk=true);
00258 
00259    //=========================================================
00265    float GetStipplePatternLen(void) const { return(StipplePatternLen); }
00266 
00267 
00268    //+> Circles
00269 
00270    //=========================================================
00274    int GetCircleCount(void);
00275 
00276    //=========================================================
00286    virtual CigiBaseCircleSymbolData * AddCircle(void) =0;
00287 
00288    //=========================================================
00299    virtual int RemoveCircle(int CircleIndex, bool bndchk=true) =0;
00300 
00301    //=========================================================
00308    CigiBaseCircleSymbolData * GetCircle(int CircleIndex, bool bndchk=true);
00309 
00310    //=========================================================
00313    void ClearCircles(void);
00314 
00315 
00316 
00317 protected:
00318 
00319    //==> Member variables
00320 
00321    //=========================================================
00325    Cigi_uint16 SymbolID;
00326 
00327    //=========================================================
00333    DrawingStyleGrp DrawingStyle;
00334 
00335    //=========================================================
00339    Cigi_uint16 StipplePattern;
00340 
00341    //=========================================================
00345    float LineWidth;
00346 
00347    //=========================================================
00352    float StipplePatternLen;
00353 
00354    //=========================================================
00358    std::vector<CigiBaseCircleSymbolData *> Circles;
00359 
00360 
00361 };
00362 
00363 
00364 
00365 #endif   //  #if !defined(_CIGI_BASE_SYMBOL_CIRCLE_DEF_INCLUDED_)
00366 

Generated on Wed Apr 29 08:59:56 2009 for CCL by  doxygen 1.4.7