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
00031
00032
00033
00034
00035
00036
00037
00038
00039
00040
00041
00042
00043
00044
00045
00046
00047
00048
00049
00050
00051
00052
00053 #ifndef INC_GRE_HYPERMGR_H
00054 #define INC_GRE_HYPERMGR_H
00055
00056 #ifndef INC_GRE_BASE
00057 #include <gre/base.h>
00058 #endif
00059
00060 #if !defined(INC_GRE_VIEW_H) && defined(WIN32_MFC)
00061 #include <gre/view.h>
00062 #endif
00063
00064 #ifndef INC_MI32_RVCHYPER_H
00065 #include <mi32/rvchyper.h>
00066 #endif
00067
00068
00069
00070 namespace GRE {
00071
00072 class HYPERIDXMGR {
00073 public:
00074 enum FINDFLAGS {
00075 FINDFLAG_Default = 0x00,
00076 FINDFLAG_SearchAllElem = 0x01,
00077 FINDFLAG_FirstOnly = 0x02
00078 };
00079 };
00080 DEFINE_ENUM_OP_BITWISE(HYPERIDXMGR::FINDFLAGS);
00081
00082 }
00083
00084
00085
00086
00087 #define HYPERDRAWFLAG_Highlight 0x01
00088 #define HYPERDRAWFLAG_Unhighlight 0x02
00089 #define HYPERDRAWFLAG_ShowTransparent 0x04
00090 #define HYPERDRAWFLAG_NoDraw 0x08
00091
00092 struct MDISPHYPERSHAPE {
00093 DPOINT2D min;
00094 DPOINT2D max;
00095 COLOR color;
00096 INT32 elem;
00097 UINT32 NumPoints;
00098 INT32 NumLinks;
00099 INT16 ShapeType;
00100 UINT8 Highlighted;
00101 DPOINT2D *points;
00102 HYPERLINK *Links;
00103 };
00104
00105 struct MDISPHYPERSHAPELIST {
00106 int NumShapes;
00107 int NumAllocated;
00108 MDISPHYPERSHAPE *Shapes;
00109 };
00110
00111 struct MDISPHYPERLINKLIST {
00112 int NumLinks;
00113 int NumAllocated;
00114 HYPERLINK *Links;
00115 MDISPHYPERLINKLIST ()
00116 { memset(this,0,sizeof(*this)); }
00117 };
00118
00119
00120
00121
00122
00123 ERRVALUE MdispHyperDrawShape (
00124 GRE::VIEW *view,
00125 GRE::LAYER *layer,
00126 int obj,
00127 const TRANS2D_MAPGEN& LayerToDisp,
00128 INT32 shapenum,
00129 UINT32 drawflags
00130 );
00131
00132
00133 ERRVALUE MdispHyperDrawShape (
00134 GRE::VIEW *view,
00135 GRE::LAYER *layer,
00136 int obj,
00137 INT32 shapenum,
00138 UINT32 drawflags
00139 );
00140
00141
00142 int MdispHyperDrawShapes (
00143 GRE::VIEW *view,
00144 UINT32 drawflags
00145 );
00146
00147
00148 void MdispHyperEllipseToRect (
00149 DPOINT2D *pt,
00150 double rx,
00151 double ry,
00152 double theta,
00153 DPOINT2D *c
00154 );
00155
00156
00157
00158
00159 int MdispHyperFindLayerElemShape (
00160 GRE::LAYER *layer,
00161 int ShapeType,
00162 INT32 ElemNum
00163 );
00164
00165
00166
00167
00168 int MdispHyperFindLayerObjShapes (
00169 GRE::VIEW *view,
00170 GRE::LAYER *layer,
00171 int obj,
00172 const DPOINT2D& lpoint,
00173 INT32 **ShapeList,
00174 GRE::HYPERIDXMGR::FINDFLAGS flags = GRE::HYPERIDXMGR::FINDFLAG_Default
00175 );
00176
00177
00178 int MdispHyperFindLinks (
00179 GRE::VIEW *view,
00180 const DPOINT2D *spoint,
00181 MDISPHYPERLINKLIST *linklist,
00182 GRE::HYPERIDXMGR::FINDFLAGS flags = GRE::HYPERIDXMGR::FINDFLAG_Default
00183 );
00184
00185
00186 int MdispHyperFindLinksView (
00187 GRE::VIEW *view,
00188 const DPOINT2D *lpoint,
00189 MDISPHYPERLINKLIST *linklist,
00190 GRE::HYPERIDXMGR::FINDFLAGS flags = GRE::HYPERIDXMGR::FINDFLAG_Default
00191 );
00192
00193
00194 void MdispHyperFreeLinkList (
00195 MDISPHYPERLINKLIST *linkedlist
00196 );
00197
00198
00199 int MdispHyperFindNeighbors (
00200 GRE::LAYOUT *layout,
00201 GRE::LAYOUT *playout,
00202 const DPOINT2D& point,
00203 const FILEPATH& parentfilename,
00204 const RVC::OBJECTNAME& parentobjname,
00205 const FILEPATH& curfilename,
00206 const RVC::OBJECTNAME& curobjname,
00207 HYPERLINK neighbors[8]
00208 );
00209
00210
00211 void MdispHyperFreeShapeList (
00212 MDISPHYPERSHAPELIST *shapelist
00213 );
00214
00215
00216 int MdispHyperGetLayerObjShapeList (
00217 GRE::LAYER *layer,
00218 int obj,
00219 MDISPHYPERSHAPE **pShapes,
00220 INT32 *pNumShapes
00221 );
00222
00223
00224 RVC::OBJTYPE MdispHyperGetLinkObjType (
00225 int linktype
00226 );
00227
00228
00229 bool MdispHyperHasLinks (
00230 GRE::VIEWABLE *viewable
00231 );
00232
00233
00234 bool MdispHyperHasLinks (
00235 GRE::VIEW *view,
00236 const DPOINT2D& spoint,
00237 GRE::HYPERIDXMGR::FINDFLAGS flags = GRE::HYPERIDXMGR::FINDFLAG_Default
00238 );
00239
00240
00241 void MdispHyperInit (void);
00242
00243
00244 int MdispHyperObjectClose (
00245 GRE::LAYER *layer,
00246 int obj,
00247 int CloseFile
00248 );
00249
00250
00251 int MdispHyperObjectGetHandle (
00252 GRE::LAYER *layer,
00253 int obj
00254 );
00255
00256
00257
00258
00259 int MdispHyperObjectOpen (
00260 GRE::LAYER *layer,
00261 int obj,
00262 RVCHYPERINFO *hyperinfo,
00263 int writemode
00264 );
00265
00266
00267 void MdispHyperRectToEllipse (
00268 DPOINT2D *pt,
00269 double *rx,
00270 double *ry,
00271 double *theta,
00272 DPOINT2D *c
00273 );
00274
00275
00276 int MdispHyperShapeAddToLayer (
00277 GRE::LAYER *layer,
00278 int obj,
00279 INT32 shapenum
00280 );
00281
00282
00283 int MdispHyperShapeDelete (
00284 GRE::LAYER *layer,
00285 int obj,
00286 INT32 shapenum
00287 );
00288
00289
00290
00291 ELEMTYPE MdispHyperShapeTypeToElemType (
00292 GRE::LAYER *layer,
00293 INT16 ShapeType
00294 );
00295
00296
00297 int MdispHyperShapeUpdate (
00298 GRE::LAYER *layer,
00299 int obj,
00300 INT32 shapenum
00301 );
00302
00303
00304
00305 #endif // INC_GRE_HYPERMGR_H