00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030 #ifndef INC_GRE_GROUPVIEW_H
00031 #define INC_GRE_GROUPVIEW_H
00032
00033 #ifndef INC_GRE_BASE_H
00034 #include <gre/base.h>
00035 #endif
00036
00037 #ifndef INC_MI32_RENDERBUFFER_H
00038 #include <mi32/renderbuffer.h>
00039 #endif
00040
00041
00042 namespace GRE {
00043
00044
00045
00046
00047 class GROUPVIEW {
00048 public:
00049
00050
00051 enum RENDERTYPE {
00052 RENDERTYPE_Group = 0,
00053 RENDERTYPE_ActiveElems,
00054 RENDERTYPE_Matte,
00055 RENDERTYPE_Overlay,
00056 RENDERTYPE_COUNT
00057 };
00058
00059
00060 GROUPVIEW (
00061 GRE_GROUP *group,
00062 GRE_VIEW *view
00063 );
00064
00065 ~GROUPVIEW ();
00066
00067
00068 void CheckRendered (
00069 );
00070
00071
00072 ERRVALUE ComputeTrans (
00073 );
00074
00075
00076 ERRVALUE DrawActiveOverlay (
00077 );
00078
00079
00080 const GRE_VIEWPOINT3D* Get3dViewPoint (
00081 ) const { return (m_pViewPoint3D); }
00082
00083
00084
00085
00086
00087 const LRECT2D& GetDeviceRectUsed (
00088 ) const { return (m_CurDevRectUsed); }
00089
00090
00091 GRE_GROUP* GetGroup (
00092 ) const { return (m_group); }
00093
00094
00095 const RENDERBUFFER& GetRenderBuffer (
00096 RENDERTYPE RenderType
00097 ) const { return (m_RenderBuffer[RenderType]); }
00098
00099
00100 RENDERBUFFER& GetRenderBuffer (
00101 RENDERTYPE RenderType
00102 ) { return (m_RenderBuffer[RenderType]); }
00103
00104
00105 double GetRotationAngle (
00106 ) const { return (m_RotationAngle); }
00107
00108
00109 double GetRotationCos (
00110 ) const { return (m_RotationCos); }
00111
00112
00113 double GetRotationSin (
00114 ) const { return (m_RotationSin); }
00115
00116
00117 GRE_VIEW* GetView (
00118 ) const { return (m_view); }
00119
00120
00121 bool Is3D (
00122 ) const { return (m_Is3D); }
00123
00124
00125 bool Is3dStereo (
00126 ) const;
00127
00128
00129 bool IsGroupOverlappedDevice (
00130 ) const { return (m_GroupOverlapsDevice); }
00131
00132
00133 void ResetRendered (
00134 GRE::RENDERTARGET target = GRE::RENDERTARGET_GroupAll
00135 );
00136
00137 private:
00138 #ifndef GENERATING_DOXYGEN_OUTPUT
00139 GRE_GROUP *m_group;
00140 GRE_VIEW *m_view;
00141 RENDERBUFFER m_RenderBuffer[RENDERTYPE_COUNT];
00142 GRE_VIEWPOINT3D *m_pViewPoint3D;
00143 DRECT2D m_NewTgtRectFull;
00144 DRECT2D m_CurTgtRectFull;
00145 LRECT2D m_NewDevRectUsed;
00146 LRECT2D m_CurDevRectUsed;
00147 double m_RotationAngle;
00148 double m_RotationCos;
00149 double m_RotationSin;
00150 bool m_Is3D;
00151 bool m_GroupOverlapsDevice;
00152
00153 GROUPVIEW (const GROUPVIEW&);
00154 GROUPVIEW& operator= (const GROUPVIEW&);
00155
00156 #endif // GENERATING_DOXYGEN_OUTPUT
00157 };
00158
00159
00160
00161 }
00162
00163 #endif // INC_GRE_GROUPVIEW_H