6 #pragma warning( disable : 4996; disable : 4995 )
9 #if !defined(AFX_CGMI_H__5C7E1AE9_8086_4467_926F_04D6BE0C18BC__INCLUDED_)
10 #define AFX_CGMI_H__5C7E1AE9_8086_4467_926F_04D6BE0C18BC__INCLUDED_
17 #include "CgmDecode.h"
22 #include "AppStruct.h"
24 #include "Utility/FPoint.h"
25 #include "Utility/wstring.h"
31 #define MAX_FONT_NAME_LEN 256
32 #define MAX_CHARSETS 8
33 #define MAX_TEXT_SCORE_TYPES 4
34 #define MAX_BUNDLES 32
35 #define MAX_PROT_REGIONS 1024
63 FID_begin_metafile = 0,
66 FID_begin_picture_body,
73 FID_begin_protection_region,
74 FID_end_protection_region,
75 FID_begin_compound_line,
76 FID_end_compound_line,
77 FID_begin_compound_text_path,
78 FID_end_compound_text_path,
82 FID_metafile_description,
84 FID_integer_precision,
88 FID_color_index_precision,
89 FID_maximum_color_index,
90 FID_color_value_extent,
91 FID_metafile_elements_list,
92 FID_metafile_defaults_replacement,
94 FID_character_set_list,
95 FID_character_coding_announcer,
97 FID_maximum_vdc_extent,
98 FID_segment_priority_extent,
100 FID_color_calibration,
103 FID_symbol_library_list,
105 FID_color_selection_mode,
107 FID_line_width_specification_mode = 44,
109 FID_marker_size_specification_mode = 46,
111 FID_edge_width_specification_mode = 48,
114 FID_background_color,
116 FID_device_viewport_mapping,
117 FID_device_viewport_specification_mode,
118 FID_line_representation,
119 FID_marker_representation,
120 FID_text_representation,
121 FID_fill_representation,
122 FID_edge_representation,
123 FID_interior_style_specification_mode,
124 FID_line_edge_type_definition,
125 FID_hatch_style_definition,
126 FID_geometric_pattern_definition,
127 FID_vdc_integer_precision,
128 FID_vdc_real_precision,
133 FID_line_clipping_mode,
134 FID_marker_clipping_mode,
135 FID_edge_clipping_mode,
137 FID_save_primitive_context,
138 FID_restore_primitive_context,
139 FID_protection_region_indicator,
140 FID_generalized_text_path_mode,
142 FID_transparent_cell_color,
144 FID_disjoint_polyline,
152 FID_generalized_drawing_primitive,
155 FID_circular_arc_3_point,
156 FID_circular_arc_3_point_close,
157 FID_circular_arc_center,
158 FID_circular_arc_center_close,
161 FID_elliptical_arc_close,
162 FID_circular_arc_center_reversed,
166 FID_non_uniform_b_spline,
167 FID_non_uniform_rational_b_spline,
172 FID_line_bundle_index,
176 FID_marker_bundle_index,
180 FID_text_bundle_index,
183 FID_character_expansion_factor,
184 FID_character_spacing,
186 FID_character_height,
187 FID_character_orientation,
190 FID_character_set_index,
191 FID_alternate_character_set_index,
192 FID_fill_bundle_index,
197 FID_edge_bundle_index,
202 FID_fill_reference_point,
205 FID_pattern_size = 142,
208 FID_aspect_source_flags = 145,
212 FID_line_type_continuation,
213 FID_line_type_initial_offset,
215 FID_restricted_text_type,
216 FID_interpolated_interior,
219 FID_edge_type_continuation,
220 FID_edge_type_initial_offset,
221 FID_symbol_library_index,
224 FID_symbol_orientation,
227 FID_application_data,
229 FID_inheritance_filter,
230 FID_clip_inheritance,
231 FID_segment_transformation,
232 FID_segment_highlighting,
233 FID_segment_display_priority,
234 FID_segment_pick_priority,
235 FID_begin_application_structure,
236 FID_begin_application_structure_body,
237 FID_end_application_structure,
238 FID_application_structure_attribute
241 #define FID_begin_metafile 0
242 #define FID_end_metafile FID_begin_metafile+1
243 #define FID_begin_picture FID_end_metafile+1
244 #define FID_begin_picture_body FID_begin_picture+1
245 #define FID_end_picture FID_begin_picture_body+1
246 #define FID_begin_segment FID_end_picture+1
248 #define FID_end_segment FID_begin_segment+2
249 #define FID_begin_figure 8
250 #define FID_end_figure 9
251 #define FID_begin_protection_region 10
252 #define FID_end_protection_region 11
253 #define FID_begin_compound_line 12
254 #define FID_end_compound_line 13
255 #define FID_begin_compound_text_path 14
256 #define FID_end_compound_text_path 15
257 #define FID_begin_tile_array 16
258 #define FID_end_tile_array 17
259 #define FID_metafile_version 18
260 #define FID_metafile_description 19
261 #define FID_vdc_type 20
262 #define FID_integer_precision 21
263 #define FID_real_precision 22
264 #define FID_index_precision 23
265 #define FID_color_precision 24
266 #define FID_color_index_precision 25
267 #define FID_maximum_color_index 26
268 #define FID_color_value_extent 27
269 #define FID_metafile_elements_list 28
270 #define FID_metafile_defaults_replacement 29
271 #define FID_font_list 30
272 #define FID_character_set_list 31
273 #define FID_character_coding_announcer 32
274 #define FID_name_precision 33
275 #define FID_maximum_vdc_extent 34
276 #define FID_segment_priority_extent 35
277 #define FID_color_model 36
278 #define FID_color_calibration 37
279 #define FID_font_properties 38
280 #define FID_glyph_mapping 39
281 #define FID_symbol_library_list 40
282 #define FID_scaling_mode 41
283 #define FID_color_selection_mode 42
285 #define FID_line_width_specification_mode 44
287 #define FID_marker_size_specification_mode 46
289 #define FID_edge_width_specification_mode 48
291 #define FID_vdc_extent 50
292 #define FID_background_color 51
293 #define FID_device_viewport 52
294 #define FID_device_viewport_mapping 53
295 #define FID_device_viewport_specification_mode 54
296 #define FID_line_representation 55
297 #define FID_marker_representation 56
298 #define FID_text_representation 57
299 #define FID_fill_representation 58
300 #define FID_edge_representation 59
301 #define FID_interior_style_specification_mode 60
302 #define FID_line_edge_type_definition 61
303 #define FID_hatch_style_definition 62
304 #define FID_geometric_pattern_definition 63
305 #define FID_vdc_integer_precision 64
306 #define FID_vdc_real_precision 65
307 #define FID_auxiliary_color 66
308 #define FID_transparency 67
309 #define FID_clip_rectangle 68
310 #define FID_clip_indicator 69
311 #define FID_line_clipping_mode 70
312 #define FID_marker_clipping_mode 71
313 #define FID_edge_clipping_mode 72
314 #define FID_new_region 73
315 #define FID_save_primitive_context 74
316 #define FID_restore_primitive_context 75
317 #define FID_protection_region_indicator 76
318 #define FID_generalized_text_path_mode 77
319 #define FID_mitre_limit 78
320 #define FID_transparent_cell_color 79
321 #define FID_polyline 80
322 #define FID_disjoint_polyline 81
323 #define FID_polymarker 82
325 #define FID_restricted_text 84
326 #define FID_append_text 85
327 #define FID_polygon 86
328 #define FID_polygon_set 87
329 #define FID_cell_array 88
330 #define FID_generalized_drawing_primitive 89
331 #define FID_rectangle 90
332 #define FID_circle 91
333 #define FID_circular_arc_3_point 92
334 #define FID_circular_arc_3_point_close 93
335 #define FID_circular_arc_center 94
336 #define FID_circular_arc_center_close 95
337 #define FID_ellipse 96
338 #define FID_elliptical_arc 97
339 #define FID_elliptical_arc_close 98
340 #define FID_circular_arc_center_reversed 99
341 #define FID_connecting_edge 100
342 #define FID_hyperbolic_arc 101
343 #define FID_parabolic_arc 102
344 #define FID_non_uniform_b_spline 103
345 #define FID_non_uniform_rational_b_spline 104
346 #define FID_polybezier 105
347 #define FID_polysymbol 106
348 #define FID_bitonal_tile 107
350 #define FID_line_bundle_index 109
351 #define FID_line_type 110
352 #define FID_line_width 111
353 #define FID_line_color 112
354 #define FID_marker_bundle_index 113
355 #define FID_marker_type 114
356 #define FID_marker_size 115
357 #define FID_marker_color 116
358 #define FID_text_bundle_index 117
359 #define FID_font_index 118
360 #define FID_text_precision 119
361 #define FID_character_expansion_factor 120
362 #define FID_character_spacing 121
363 #define FID_text_color 122
364 #define FID_character_height 123
365 #define FID_character_orientation 124
366 #define FID_text_path 125
367 #define FID_text_alignment 126
368 #define FID_character_set_index 127
369 #define FID_alternate_character_set_index 128
370 #define FID_fill_bundle_index 129
371 #define FID_interior_style 130
372 #define FID_fill_color 131
373 #define FID_hatch_index 132
374 #define FID_pattern_index 133
375 #define FID_edge_bundle_index 134
376 #define FID_edge_type 135
377 #define FID_edge_width 136
378 #define FID_edge_color 137
379 #define FID_edge_visibility 138
380 #define FID_fill_reference_point 139
381 #define FID_pattern_table 140
383 #define FID_pattern_size 142
384 #define FID_color_table 143
386 #define FID_aspect_source_flags 145
387 #define FID_pick_identifier 146
388 #define FID_line_cap 147
389 #define FID_line_join 148
390 #define FID_line_type_continuation 149
391 #define FID_line_type_initial_offset 150
392 #define FID_text_score_type 151
393 #define FID_restricted_text_type 152
394 #define FID_interpolated_interior 153
395 #define FID_edge_cap 154
396 #define FID_edge_join 155
397 #define FID_edge_type_continuation 156
398 #define FID_edge_type_initial_offset 157
399 #define FID_symbol_library_index 158
400 #define FID_symbol_color 159
401 #define FID_symbol_size 160
402 #define FID_symbol_orientation 161
403 #define FID_escape 162
404 #define FID_message 163
405 #define FID_application_data 164
406 #define FID_copy_segment 165
407 #define FID_inheritance_filter 166
408 #define FID_clip_inheritance 167
409 #define FID_segment_transformation 168
410 #define FID_segment_highlighting 169
411 #define FID_segment_display_priority 170
412 #define FID_segment_pick_priority 171
413 #define FID_begin_application_structure 172
414 #define FID_begin_application_structure_body 173
415 #define FID_end_application_structure 174
416 #define FID_application_structure_attribute 175
422 double red, green, blue;
425 typedef unsigned long CGMI_COLREF;
458 #define TRACE_ConstantColr 0
459 #define TRACE_VariantColr 1
462 #define TRACE_right 0
463 #define TRACE_highest 0
464 #define TRACE_lowest 1
465 #define TRACE_not_final 0
472 #define FT_VAPOS_C 32
473 #define FT_VANEG_C 64
487 FPoint orientation_baseline,
488 orientation_amplitude;
489 float baseline_scale,
491 char display_mode_wiggle,
492 display_mode_positive_va_fill,
493 display_mode_negative_va_fill,
494 display_mode_background_fill;
495 char resampling_method;
496 long maximum_number_of_samples;
499 } wiggle_amplitude_limit;
500 char wiggle_line_type_mode;
503 } positive_va_fill_boundaries;
506 } negative_va_fill_boundaries;
507 char rectified_va_fill_mode;
511 } va_fill_constant_colour;
514 } va_fill_constant_pattern;
515 char va_fill_alignment;
516 char va_fill_var_colour_selection;
520 } va_fill_var_linear;
523 } background_fill_boundaries;
524 char background_colour_interpolation_mode;
525 char background_fill_style;
529 } background_null_colour;
531 char background_fill_alignment;
532 char background_fill_var_colour_selection;
536 } background_fill_var_linear;
548 long group_identifier;
549 char positive_lobe_display_priority,
550 negative_lobe_display_priority,
551 positive_lobe_pixel_drawing_mode,
552 negative_lobe_pixel_drawing_mode;
553 float data_complete_coordinate;
554 long data_complete_flag;
555 long rendering_direction;
561 float ndc_origin_x, ndc_origin_y,
562 ndc_step_x, ndc_step_y;
567 wiggle_display_modulus,
568 wiggle_left_to_modulus,
570 traces_left_at_location,
571 trace_filter, trace_left_to_filter;
573 long first_data_after_init;
578 unsigned char transparency;
580 CColorReps* pColorReps;
585 std::vector<CgmInError> *pErrorList = NULL,
bool enableErrChecking =
true);
587 std::vector<CgmInError> *pErrorList = NULL,
bool enableErrChecking =
true);
595 long metafileVersion;
596 std::vector<std::wstring> metafileDescription;
598 unsigned char *metafileIdData;
599 int metafileIdDataSize;
608 CGMI_FMTBL metafileDefFmtbl;
613 vector<std::wstring> fontlist;
614 vector<CFontProperties*> fontProperties;
617 long characterCodingAnn;
620 DPoint maxVdcExtent[2];
622 long maximumColorIndex;
658 double metricScaleFactor;
665 long horizontalAlignment;
666 long verticalAlignment;
667 } deviceVPMappingOff;
682 } textBundles[MAX_BUNDLES];
691 } fillBundles[MAX_BUNDLES];
695 long interiorStyleSpecMode;
703 unsigned char asfLineType;
704 unsigned char asfLineWidth;
705 unsigned char asfLineColor;
706 unsigned char asfMarkerType;
707 unsigned char asfMarkerSize;
708 unsigned char asfMarkerColor;
709 unsigned char asfTextFontIndex;
710 unsigned char asfTextPrecision;
711 unsigned char asfTextColor;
712 unsigned char asfCharacterExpFactor;
713 unsigned char asfCharacterSpacing;
714 unsigned char asfFillInteriorStyle;
715 unsigned char asfFillColor;
716 unsigned char asfFillHatchIndex;
717 unsigned char asfFillPatternIndex;
718 unsigned char asfEdgeType;
719 unsigned char asfEdgeWidth;
720 unsigned char asfEdgeColor;
726 Path* compoundTextPath;
728 long altCharacterSetIndex;
729 long altCharacterSetEncoding;
737 double characterHeight;
740 } characterOrientation;
741 double characterExpFactor;
742 double characterSpacing;
743 long characterSetIndex;
744 long characterSetEncoding;
746 long clipInheritance;
748 DPoint clipRectangle[2];
757 long currentTileNumber;
761 long edgeClippingMode;
766 CGMI_CO_BUNDLE edgeColor;
771 float edgeTypeInitOff;
772 long edgeBundleIndex;
776 long fillBundleIndex;
777 long fillInteriorStyle;
778 CGMI_CO_BUNDLE fillColor;
780 long generalizedTextPathMode;
781 long geometricPatternIndex;
789 double *StageDesignators;
790 CGMI_CO_BUNDLE *StageColors;
791 } interpInteriorStruct;
792 CInterpInteriorParams* pCurrentInterpInteriorParams;
794 long lineBundleIndex;
800 float lineTypeInitOff;
804 CGMI_CO_BUNDLE lineColor;
805 long lineClippingMode;
807 long markerBundleIndex;
812 CGMI_CO_BUNDLE markerColor;
813 long markerClippingMode;
824 DPoint patternRefPoint;
826 long protRegionIndex;
827 long protRegionIndicator;
829 long textBundleIndex;
831 CGMI_CO_BUNDLE textColor;
842 vector<CGMI_TSTYPE> textScoreTypes;
844 CSegment* activeSegment;
846 long symbolLibraryIndex;
847 DPoint symbolOrientation[2];
848 CGMI_CO_BUNDLE symbolColor;
849 long symbolSizeIndicator;
850 double symbolSize[2];
852 long restrictedTextType;
853 CGMI_CO_BUNDLE transparentCellColor;
854 long transparentCellIndicator;
857 CCgmTileArray* pTileArray;
859 CCgmText* pAppendParent;
861 TRACE_ATTR traceAttr;
862 float alphaTransparency;
864 long escapeFunctionId;
866 long aciLineEdgeTypeOverides;
867 long aciLineEdgeTypes[5];
869 long aciHatchStyleOverides;
870 long aciHatchStyles[6];
872 short ataLayerNumber;
878 double lineWidthScaled;
879 double lineWidthAbsolute;
881 double lineWidthFractional;
883 double markerSizeScaled;
884 double markerSizeAbsolute;
886 double markerSizeFractional;
888 double edgeWidthScaled;
889 double edgeWidthAbsolute;
891 double edgeWidthFractional;
897 long primitiveContextName;
899 long altCharacterSetIndex;
906 double characterHeight;
909 } characterOrientation;
910 double characterExpFactor;
911 double characterSpacing;
912 long characterSetIndex;
915 DPoint clipRectangle[2];
917 long edgeClippingMode;
920 double edgeWidthScaled;
921 double edgeWidthAbsolute;
923 double edgeWidthFractional;
929 float edgeTypeInitOff;
930 long edgeBundleIndex;
933 long fillBundleIndex;
934 long fillInteriorStyle;
943 double *StageDesignators;
945 } interpInteriorStruct;
947 long lineBundleIndex;
952 float lineTypeInitOff;
954 double lineWidthScaled;
955 double lineWidthAbsolute;
957 double lineWidthFractional;
959 CGMI_CO_BUNDLE lineColor;
960 long lineClippingMode;
962 long markerBundleIndex;
965 double markerSizeScaled;
966 double markerSizeAbsolute;
968 double markerSizeFractional;
970 CGMI_CO_BUNDLE markerColor;
971 long markerClippingMode;
980 DPoint patternRefPoint;
982 long protRegionIndicator;
983 ClippingPath *protRegion;
985 long textBundleIndex;
987 CGMI_CO_BUNDLE textColor;
994 vector<CGMI_TSTYPE> textScoreTypes;
996 long symbolLibraryIndex;
997 DPoint symbolOrientation[2];
998 CGMI_CO_BUNDLE symbolColor;
999 long symbolSizeIndicator;
1000 double symbolSize[2];
1002 long restrictedTextType;
1005 long pickIdentifier;
1017 MajorState prevState;
1020 MinorState figState;
1021 MinorState textState;
1022 MinorState ptregState;
1023 MinorState cplineState;
1024 MinorState cptxpath;
1025 MinorState tileArrayState;
1028 void memset__m_MD();
1029 void memset__m_Attr();
1030 void InitClassVariables();
1032 void LogError(
long klass,
long element);
1033 void OpenParse(std::wstring inputFile,
int iPicture,
CCgmObjects* pCgmObjects, std::vector<CgmInError> *pErrorList);
1034 long ProtRegDataIndex(
long index,
bool replace);
1037 long _AppStructureDescriptorElements(
CGMI_DS * cgmi_ds,
long element,
long count);
1038 long _DelimiterElements(
CGMI_DS *cgmi_ds,
long element);
1039 long _MDElements(
CGMI_DS *cgmi_ds,
long element,
long count);
1040 long _PDElements(
CGMI_DS *cgmi_ds,
long element,
long count);
1041 long _ControlElements(
CGMI_DS *cgmi_ds,
long element);
1042 long _PrimitiveElements(
CGMI_DS *cgmi_ds,
long element,
long count);
1043 long _GDPElements(
CGMI_DS *cgmi_ds,
long element,
long count);
1044 long _AttributeElements(
CGMI_DS *cgmi_ds,
long element,
long count);
1045 long _EscapeElements(
CGMI_DS *cgmi_ds,
long element);
1046 long _ExternalElements(
CGMI_DS *cgmi_ds,
long element);
1047 long _SegmentElements(
CGMI_DS * cgmi_ds,
long element);
1049 long charsetlist(
CGMI_DS *cgmi_ds,
long count);
1050 long parseFontlist(
CGMI_DS *cgmi_ds,
long count);
1051 long valColor(
unsigned long *ca,
CGMI_CO_BUNDLE *setting,
long colorSelectionMode = -1);
1054 long cellArray(
CGMI_DS *cgmi_ds);
1055 long tile(
CGMI_DS *cgmi_ds,
long element);
1056 long capturePoints(DPoint *pts,
long nPts, Path::ePathType pathType,
bool closed);
1057 long capturePGSet(DPoint *pts,
long nPts,
unsigned char* edges);
1061 long plusInit(
CGMI_DS *cgmi_ds);
1062 long plusTrace(
CGMI_DS *cgmi_ds);
1063 long pipEscapes(
CGMI_DS *cgmi_ds,
long escapeId);
1064 long pipTrace(
CGMI_DS *cgmi_ds);
1065 long pipDeriveColors (
1066 float factor,
float bias,
long minci,
long maxci,
1067 float *sample_list,
long sample_list_length,
1068 float sample_normalization_extent,
1069 unsigned long **derived_colors_list,
long *derived_colors_list_length);
1074 std::wstring m_inputFile;
1081 bool validPt(DPoint pt);
1082 double validDouble(
double dValue,
double defVal);
1084 int unrecognizedElements;
1086 int autoAPSIdNumber;
1090 double m_defVDCextDx;
1091 double m_defVDCextDy;
1093 void endActiveCgmAppDataGroup();
1096 #endif // !defined(AFX_CGMI_H__5C7E1AE9_8086_4467_926F_04D6BE0C18BC__INCLUDED_)
CGMI_ASFS aspectSourceFlags
Aspect Source Flags 0= off 1= on.
Definition: CgmIn.h:902
ClipRectangle – Clipping rectangle data container class.
Definition: Clipping.h:44
Retains CGM Picture Descriptor data while a CGM is being loaded.
Definition: CgmIn.h:628
ClippingPath – ClippingPath data container class.
Definition: Clipping.h:19
CSegment – Segment class- a segment is a list of picture elements.
Definition: Segment.h:7
long edgeWidthSpecMode
picture edge width specfication mode: absolute, scaled, fractional, mm; default: scaled ...
Definition: CgmIn.h:646
struct Larson::CCgmIn::CGMI_PD::@11 deviceVPSpecMode
picture device viewport specification mode
Parser – CGM input element parser.
Definition: Parser.h:18
vector< ClippingPath::ProtRegion > m_protRegData
list of protection regions for entire picture
Definition: CgmIn.h:1013
CCgmIn – CGM Input class.
Definition: CgmIn.h:40
long scalingMode
picture scaling mode, abstract or metric
Definition: CgmIn.h:633
CGMI_LEM_BUNDLE lineBundles[MAX_BUNDLES]
line representation bundle
Definition: CgmIn.h:670
long lineWidthSpecMode
picture line width specfication mode: absolute, scaled, fractional, mm; default: scaled ...
Definition: CgmIn.h:642
vector< PrimitiveContext > m_primitiveContext
saved primitive contexts
Definition: CgmIn.h:1010
CColor backgroundColor
picture background color
Definition: CgmIn.h:651
extended picture attribute state list, updated from CGM elements as they are read and decoded...
Definition: CgmIn.h:876
long markerSizeSpecMode
picture marker size specfication mode: absolute, scaled, fractional, mm; default: scaled ...
Definition: CgmIn.h:644
text representation bundle
Definition: CgmIn.h:674
decoder data stream structure
Definition: CgmDecode.h:74
CGMI_LEM_BUNDLE edgeBundles[MAX_BUNDLES]
edge representation bundle
Definition: CgmIn.h:693
Path – graphical path data container class.
Definition: Path.h:17
Aspect Source Flags 0= off 1= on.
Definition: CgmIn.h:701
Definition: CgmDecode.h:128
CGMI_LEM_BUNDLE markerBundles[MAX_BUNDLES]
marker representation bundle
Definition: CgmIn.h:672
CCgmBaseObj – graphical element container base class.
Definition: CgmObj.h:121
CAppStruct – Application Structure (APS) container class.
Definition: AppStruct.h:23
CCgmTrace – Trace GDP element container class.
Definition: CgmObj.h:1148
picture attribute state list, updated from CGM elements as they are read and decoded.
Definition: CgmIn.h:724
CGMI_ASFS aspectSourceFlags
Aspect Source Flags 0= off 1= on.
Definition: CgmIn.h:733
double scalingFactor
picture scaling factor
Definition: CgmIn.h:636
device viewport mapping offset
Definition: CgmIn.h:662
long colorSelectionMode
picture color selection mode: indexed, direct
Definition: CgmIn.h:639
DPoint vdcExtent[2]
picture vdc extent: [0] = first corner, [1] = second corner
Definition: CgmIn.h:648
DPoint deviceViewport[2]
picture device viewport
Definition: CgmIn.h:654
fill representation bundle
Definition: CgmIn.h:684
CCgmObjects – CGM Picture container.
Definition: CgmObjects.h:472
Retains CGM Metafile Descriptor data while a CGM is being loaded.
Definition: CgmIn.h:593