00001
00039 #if !defined(_CIGI_BASE_SYMBOL_SURFACE_DEF_INCLUDED_)
00040 #define _CIGI_BASE_SYMBOL_SURFACE_DEF_INCLUDED_
00041
00042
00043 #include "CigiBasePacket.h"
00044
00045
00046
00047
00048
00049 #define CIGI_SYMBOL_SURFACE_DEF_PACKET_ID_V3_3 29
00050 #define CIGI_SYMBOL_SURFACE_DEF_PACKET_SIZE_V3_3 56
00051
00052
00053 class CigiSymbolSurfaceDefV3_3;
00054
00055
00056
00059 class CIGI_SPEC CigiBaseSymbolSurfaceDef :
00060 public CigiBasePacket
00061 {
00062
00063 friend class CigiSymbolSurfaceDefV3_3;
00064
00065 public:
00066
00067
00070 enum StateGrp
00071 {
00072 Active=0,
00073 Destroyed=1
00074 };
00075
00076
00079 enum AttachStateGrp
00080 {
00081 EntityAttached=0,
00082 ViewAttached=1
00083 };
00084
00085
00088 enum BillboardStateGrp
00089 {
00090 NotBillboard=0,
00091 Billboard=1
00092 };
00093
00094
00097 enum PerspectiveGrowthStateGrp
00098 {
00099 Disable=0,
00100 Enable=1
00101 };
00102
00103
00104
00105
00106
00109 CigiBaseSymbolSurfaceDef(void);
00110
00111
00114 virtual ~CigiBaseSymbolSurfaceDef(void);
00115
00116
00117
00118
00119
00130 virtual int Pack(CigiBasePacket * Base, Cigi_uint8 * Buff, void *Spec) const=0;
00131
00132
00142 virtual int Unpack(Cigi_uint8 * Buff, bool Swap, void *Spec) =0;
00143
00144
00157 virtual int GetCnvt(CigiVersionID &CnvtVersion,
00158 CigiCnvtInfoType::Type &CnvtInfo);
00159
00160
00161
00162
00163
00164
00165
00166
00173 int SetSurfaceID(const Cigi_uint16 SurfaceIDIn, bool bndchk=true)
00174 {
00175 SurfaceID = SurfaceIDIn;
00176 return(CIGI_SUCCESS);
00177 }
00178
00179
00183 Cigi_uint16 GetSurfaceID(void) const { return(SurfaceID); }
00184
00185
00186
00187
00188
00196 int SetSurfaceState(const StateGrp SurfaceStateIn, bool bndchk=true);
00197
00198
00203 StateGrp GetSurfaceState(void) const { return(SurfaceState); }
00204
00205
00206
00207
00208
00216 int SetAttached(const AttachStateGrp AttachedIn, bool bndchk=true);
00217
00218
00223 AttachStateGrp GetAttached(void) const { return(Attached); }
00224
00225
00226
00227
00228
00236 int SetBillboardState(const BillboardStateGrp BillboardStateIn, bool bndchk=true);
00237
00238
00242 BillboardStateGrp GetBillboardState(void) const { return(BillboardState); }
00243
00244
00245
00246
00247
00256 int SetPerspectiveGrowth(const PerspectiveGrowthStateGrp PerspectiveGrowthIn, bool bndchk=true);
00257
00258
00263 PerspectiveGrowthStateGrp GetPerspectiveGrowth(void) const { return(PerspectiveGrowth); }
00264
00265
00266
00267
00268
00276 int SetEntityID(const Cigi_uint16 EntityIDIn, bool bndchk=true)
00277 {
00278 EntityViewID = EntityIDIn;
00279 return(CIGI_SUCCESS);
00280 }
00281
00282
00286 Cigi_uint16 GetEntityID(void) const { return(EntityViewID); }
00287
00288
00296 int SetViewID(const Cigi_uint16 ViewIDIn, bool bndchk=true)
00297 {
00298 EntityViewID = ViewIDIn;
00299 return(CIGI_SUCCESS);
00300 }
00301
00302
00306 Cigi_uint16 GetViewID(void) const { return(EntityViewID); }
00307
00308
00309
00310
00311
00319 int SetXOffset(const float XOffsetIn, bool bndchk=true)
00320 {
00321 XLeft = XOffsetIn;
00322 return(CIGI_SUCCESS);
00323 }
00324
00325
00330 float GetXOffset(void) const { return(XLeft); }
00331
00332
00340 int SetYOffset(const float YOffsetIn, bool bndchk=true)
00341 {
00342 YRight = YOffsetIn;
00343 return(CIGI_SUCCESS);
00344 }
00345
00346
00351 float GetYOffset(void) const { return(YRight); }
00352
00353
00361 int SetZOffset(const float ZOffsetIn, bool bndchk=true)
00362 {
00363 ZTop = ZOffsetIn;
00364 return(CIGI_SUCCESS);
00365 }
00366
00367
00372 float GetZOffset(void) const { return(ZTop); }
00373
00374
00375
00376
00377
00385 int SetYaw(const float YawIn, bool bndchk=true);
00386
00387
00392 float GetYaw(void) const { return(YawBottom); }
00393
00394
00402 int SetPitch(const float PitchIn, bool bndchk=true);
00403
00404
00409 float GetPitch(void) const { return(Pitch); }
00410
00411
00419 int SetRoll(const float RollIn, bool bndchk=true);
00420
00421
00426 float GetRoll(void) const { return(Roll); }
00427
00428
00429
00430
00431
00438 int SetWidth(const float WidthIn, bool bndchk=true)
00439 {
00440 Width = WidthIn;
00441 return(CIGI_SUCCESS);
00442 }
00443
00444
00448 float GetWidth(void) const { return(Width); }
00449
00450
00457 int SetHeight(const float HeightIn, bool bndchk=true)
00458 {
00459 Height = HeightIn;
00460 return(CIGI_SUCCESS);
00461 }
00462
00463
00467 float GetHeight(void) const { return(Height); }
00468
00469
00470
00471
00472
00473
00482 int SetLeftEdgePosition(const float LeftEdgePosition, bool bndchk=true);
00483
00484
00490 float GetLeftEdgePosition(void) const { return(XLeft); }
00491
00492
00501 int SetRightEdgePosition(const float RightEdgePosition, bool bndchk=true);
00502
00503
00509 float GetRightEdgePosition(void) const { return(YRight); }
00510
00511
00520 int SetTopEdgePosition(const float TopEdgePosition, bool bndchk=true);
00521
00522
00528 float GetTopEdgePosition(void) const { return(ZTop); }
00529
00530
00539 int SetBottomEdgePosition(const float BottomEdgePosition, bool bndchk=true);
00540
00541
00547 float GetBottomEdgePosition(void) const { return(YawBottom); }
00548
00549
00550
00551
00552
00561 int SetMinU(const float MinUIn, bool bndchk=true)
00562 {
00563 MinU = MinUIn;
00564 return(CIGI_SUCCESS);
00565 }
00566
00567
00572 float GetMinU(void) const { return(MinU); }
00573
00574
00583 int SetMaxU(const float MaxUIn, bool bndchk=true)
00584 {
00585 MaxU = MaxUIn;
00586 return(CIGI_SUCCESS);
00587 }
00588
00589
00594 float GetMaxU(void) const { return(MaxU); }
00595
00596
00605 int SetMinV(const float MinVIn, bool bndchk=true)
00606 {
00607 MinV = MinVIn;
00608 return(CIGI_SUCCESS);
00609 }
00610
00611
00616 float GetMinV(void) const { return(MinV); }
00617
00618
00627 int SetMaxV(const float MaxVIn, bool bndchk=true)
00628 {
00629 MaxV = MaxVIn;
00630 return(CIGI_SUCCESS);
00631 }
00632
00633
00638 float GetMaxV(void) const { return(MaxV); }
00639
00640
00641
00642 protected:
00643
00644
00645
00646
00651 Cigi_uint16 SurfaceID;
00652
00653
00664 StateGrp SurfaceState;
00665
00666
00671 AttachStateGrp Attached;
00672
00673
00680 BillboardStateGrp BillboardState;
00681
00682
00687 PerspectiveGrowthStateGrp PerspectiveGrowth;
00688
00689
00694 Cigi_uint16 EntityViewID;
00695
00696
00707 float XLeft;
00708
00709
00720 float YRight;
00721
00722
00733 float ZTop;
00734
00735
00747 float YawBottom;
00748
00749
00756 float Pitch;
00757
00758
00765 float Roll;
00766
00767
00781 float Width;
00782
00783
00797 float Height;
00798
00799
00804 float MinU;
00805
00806
00811 float MaxU;
00812
00813
00818 float MinV;
00819
00820
00825 float MaxV;
00826
00827
00828
00829
00830 };
00831
00832
00833
00834 #endif // #if !defined(_CIGI_BASE_SYMBOL_SURFACE_DEF_INCLUDED_)
00835