Alphabetical Class Index  Class Hierarchy   File Members   Compound Members   File List  

HPShowCache.h
00001 //
00002 // Copyright (c) 2000 by Tech Soft 3D, LLC.
00003 // The information contained herein is confidential and proprietary to
00004 // Tech Soft 3D, LLC., and considered a trade secret as defined under
00005 // civil and criminal statutes.  Tech Soft 3D shall pursue its civil
00006 // and criminal remedies in the event of unauthorized use or misappropriation
00007 // of its trade secrets.  Use of this information by anyone other than
00008 // authorized employees of Tech Soft 3D, LLC. is granted only under a
00009 // written non-disclosure agreement, expressly prescribing the scope and
00010 // manner of such use.
00011 //
00012 // $Id: 0e4fd6aefa59c7e2e6fa3442871dc3a0cdebd27f $
00013 //
00014 
00015 
00016 #ifndef _HPSHOWCACHE_H
00017 #define _HPSHOWCACHE_H
00018 
00019 #ifdef H_PACK_8
00020 #pragma pack(push)
00021 #pragma pack(8)
00022 #endif
00023 
00024 #include "HTools.h"
00025 #include "HGlobals.h"
00026 #include "vhash.h"
00027 
00028 
00029 #define PSHOW_CACHE_MODELLING_MATRIX    0x00000001
00030 #define PSHOW_CACHE_VISIBILITY          0x00000002
00031 #define PSHOW_CACHE_RENDERING_OPTIONS   0x00000004
00032 #define PSHOW_CACHE_HANDEDNESS          0x00000008
00033 #define PSHOW_CACHE_HEURISTICS          0x00000010
00034 #define PSHOW_CACHE_TEXT_FONT           0x00000020
00035 #define PSHOW_CACHE_TEXT_ALIGNMENT      0x00000040
00036 #define PSHOW_CACHE_TEXT_PATH           0x00000080
00037 #define PSHOW_CACHE_TEXT_SPACING        0x00000100
00038 #define PSHOW_CACHE_MARKER_SIZE         0x00000200
00039 #define PSHOW_CACHE_MARKER_SYMBOL       0x00000400
00040 #define PSHOW_CACHE_LINE_WEIGHT         0x00000800
00041 #define PSHOW_CACHE_LINE_PATTERN        0x00001000
00042 #define PSHOW_CACHE_COLOR               0x00002000
00043 #define PSHOW_CACHE_EDGE_WEIGHT         0x00004000
00044 #define PSHOW_CACHE_EDGE_PATTERN        0x00008000
00045 #define PSHOW_CACHE_CAMERA              0x00010000
00046 #define PSHOW_CACHE_IMAGE_SCALE         0x00020000
00047 #define PSHOW_CACHE_HIDDEN_LINE_HSRA    0x00040000
00048 #define PSHOW_CACHE_POLYGON_HANDEDNESS  0x00080000
00049 #define PSHOW_CACHE_TRANS_COLOR         0x00100000
00050 #define PSHOW_CACHE_COLORMAP            0x00200000
00051 #define PSHOW_CACHE_CLIP_REGION         0x00400000
00052 
00053 
00054 
00055 class HPShowCache
00056 {
00057 public:
00058     HPShowCache():flags(0), path(0), modelling_matrix(0), 
00059         clip_region_loops(0), clip_region_spec(0), clip_region_lengths(0), clip_region_points(0),
00060         visibility(0), rendering_options(0), handedness(0), heuristics(0),
00061         text_font(0), text_alignment(0), text_spacing(1.f), marker_size(0), marker_symbol(0),
00062         line_weight(0), line_pattern(0), color(0), color_map(0), edge_weight(0), 
00063         edge_pattern(0), camera_position(0,0,0), camera_target(0,0,0), camera_up(0,0,0), 
00064         camera_width(0.f), camera_height(0.f), camera_projection(0),
00065         text_path_x(1.f), text_path_y(0), text_path_z(0),
00066         screen_range(0), depth_range(0), tessellation(0), general_curve(0), nurbs_surface(0), general_displacement(0), mask_transform(0),
00067         anti_alias(0), image_scale(0), polygon_handedness(0), trans_color(0),
00068         hidden_line_hsra(false), have_text_path(false), have_text_spacing(false)
00069     {
00070     }
00071 
00072     ~HPShowCache()
00073     {
00074         if(path)
00075             delete [] path;
00076         if(visibility)
00077             delete [] visibility;
00078         if(clip_region_spec)
00079             delete [] clip_region_spec;
00080         if(clip_region_points)
00081             delete [] clip_region_points;
00082         if(clip_region_lengths)
00083             delete [] clip_region_lengths;
00084         if(rendering_options)
00085             delete [] rendering_options;
00086         if(handedness)
00087             delete [] handedness;
00088         if(heuristics)
00089             delete [] heuristics;
00090         if(text_font)
00091             delete [] text_font;
00092         if(text_alignment)
00093             delete [] text_alignment;
00094         if(marker_size)
00095             delete [] marker_size;
00096         if(marker_symbol)
00097             delete [] marker_symbol;
00098         if(line_weight)
00099             delete [] line_weight;
00100         if(line_pattern)
00101             delete [] line_pattern;
00102         if(color)
00103             delete [] color;
00104         if(color_map)
00105             delete [] color_map;
00106         if(edge_weight)
00107             delete [] edge_weight;
00108         if(edge_pattern)
00109             delete [] edge_pattern; 
00110         if(camera_projection)
00111             delete [] camera_projection;
00112         if(screen_range)
00113             delete [] screen_range;
00114         if(depth_range)
00115             delete [] depth_range;
00116         if(tessellation)
00117             delete [] tessellation;
00118         if(general_curve)
00119             delete [] general_curve;
00120         if(nurbs_surface)
00121             delete [] nurbs_surface;
00122         if(general_displacement)
00123             delete [] general_displacement; 
00124         if(mask_transform)
00125             delete [] mask_transform;   
00126         if(anti_alias)
00127             delete [] anti_alias;
00128         if(image_scale)
00129             delete [] image_scale;
00130         if(polygon_handedness)
00131             delete [] polygon_handedness;   
00132         if(trans_color)
00133             delete [] trans_color;  
00134         
00135     }
00136 
00137     unsigned int flags;
00138 
00139     HC_KEY* path;
00140     int     path_count;
00141 
00142     float   modelling_matrix_data[16];
00143     float * modelling_matrix;
00144 
00145     int     clip_region_loops;
00146     char *  clip_region_spec;
00147     int *   clip_region_lengths;
00148     HPoint *clip_region_points;
00149 
00150     char *  visibility;
00151     char *  rendering_options;
00152     char *  handedness;
00153     char *  heuristics;
00154     char *  text_font;
00155     char *  text_alignment;
00156     
00157     float   text_spacing;
00158     char *  marker_size;
00159     char *  marker_symbol;
00160     char *  line_weight;
00161     char *  line_pattern;
00162     char *  color;
00163     char *  color_map;
00164     char *  edge_weight;
00165     char *  edge_pattern;
00166     HPoint  camera_position;
00167     HPoint  camera_target;
00168     HPoint  camera_up;
00169     float   camera_width;
00170     float   camera_height;
00171     char *  camera_projection;
00172 
00173     float   text_path_x, text_path_y, text_path_z;
00174     char *  screen_range;
00175     char *  depth_range;
00176     char *  tessellation;
00177     char *  general_curve;
00178     char *  nurbs_surface;
00179     char *  general_displacement;
00180     char *  mask_transform;
00181     char *  anti_alias;
00182     char *  image_scale;
00183     char *  polygon_handedness;
00184     char *  trans_color;
00185 
00186     bool    hidden_line_hsra;
00187     bool    have_text_path;
00188     bool    have_text_spacing;
00189 };
00190 
00191 //typedef VHash<HC_KEY, HPShowCache *> HVHashPShowCache;
00192 
00193 class HVHashPShowCache: public VHash<HC_KEY, HPShowCache *>
00194 {
00195 
00196 };
00197 
00198 
00199 class HConditionStyleInfo {
00200 public:
00201     HC_KEY  hightlight_style;
00202     HC_KEY  condition_style;
00203     HC_POINTER_SIZED_INT use_count;
00204 
00205     HConditionStyleInfo(HC_KEY  HightlightStyle): hightlight_style(HightlightStyle), use_count(0) {};
00206     ~HConditionStyleInfo() {};
00207 };
00208 
00209 class HConditionStyleInfoHash: public VStringHash<HConditionStyleInfo *> {
00210 public:
00211     HConditionStyleInfoHash():VStringHash<HConditionStyleInfo *>(2) {};
00212 };
00213 
00214 class HConditionStyleKeyInfoHash: public VHash<HC_KEY, HConditionStyleInfo *> {};
00215 
00216 class HSelectionSegmentConditionInfo: public VHash<HC_KEY, HConditionStyleInfoHash *> {};
00217 
00218 
00219 #ifdef H_PACK_8
00220 #pragma pack(pop)
00221 #endif
00222 
00223 #endif
00224 
00225 
00226 
00227 
00228 
00229 
00230 
00231 
00232 
00233 
00234 
00235 
00236 
00237 
00238 
00239 
00240 
00241 
00242