|
CGM Objects Library
|
CCgmCellArray – CellArray element container class. More...
#include <CgmObj.h>
Public Member Functions | |
| CCgmCellArray (CCgmObjects *pParent, enum Shape nShape) | |
| virtual CCgmBaseObj * | Clone () |
| return copy of this object, new memory is allocated for lists | |
| PolyPolylineData * | ConvertToPoints (double step=1) |
| convert this element to list of points | |
| CCgmTileArray * | ConvertTo1BPPTileArray () |
| void | ConvertColors (int monoEnhance, int colorConvert) |
| convert colors of this element as specified | |
| void | Draw (CDrawBase *pDB) |
| draw this element to specfied drawing object | |
| bool | HitTest (DPoint point, double margin, int *pSegIndex=NULL) |
| true if point touches this element within margin | |
| bool | IsRaster () |
| true if this is a raster type element, e.g Cell Array | |
| bool | IsSkewed () |
| void | ReCalcBounds () |
| recalculates bounds of this element, e.g. after geometry is modified | |
| void | Restore (CCgmBaseObj *pObj) |
| restore the contents of this object from a copy | |
| long | Save (CGMLIB2_HANDLE hCGMLIB2, int bwCompression, int colorCompression, bool unicode, bool bRGBa, int vdcPrecision=false) |
| save this element to CGM file | |
| void | TransformBy (CMatrix *pXForm) |
| transform this element with specified matrix | |
| int | LengthCellColors () |
| int | GetBytesPerLine () |
| bool | Compress (unsigned char *pRaw) |
| unsigned char * | UnCompress () |
| const CCgmCellArray & | operator= (const CCgmCellArray &a) |
Public Member Functions inherited from Larson::CCgmBaseObj | |
| CCgmBaseObj (CCgmObjects *pOwner, enum Shape nShape) | |
| Constructor. | |
| virtual | ~CCgmBaseObj () |
| Destructor. | |
| void | CopyBase (CCgmBaseObj *p) |
| Copy attributes of object p to this object. | |
| virtual bool | IsFill () |
| true if this is a filled graphical element | |
| virtual bool | IsClosed () |
| true if this is a closed graphical element | |
| virtual bool | IsText () |
| true if this is text element | |
| DRect | GetBounds (bool locus=false) |
| get geoemtric extents of this object, if locus = false this will be visible bounds including line or edge width | |
| virtual long | GetHandleCount () |
| return number of edit handles | |
| virtual DPoint | GetHandle (long nHandle, int *pType, double handleOffset=0) |
| return position of specified edit handle | |
| virtual void | MoveEditHandle (long nHandle, bool bAspect, DPoint point) |
| move position of specified edit handle | |
| const CCgmBaseObj & | operator= (const CCgmBaseObj &a) |
| DRect | BoundsFromPts (DPoint *pts, long nPts) |
| calculate the bound rectangle fron a list of points | |
| void | DrawPath (CDrawBase *pDB, Path *path, bool fill) |
| draw graphical path | |
| void | RotatePts (DPoint center, double angle, DPoint *points, long nPoints) |
| rotate a list of point | |
| DRect | GetClipRect () |
| get the clip rectangle of this element | |
| double | DefaultStep () |
| void | dbgShapeInfo (int i, std::wstring *pID) |
| DPoint * | arcToBeziers (DPoint center, double radius, double a1, double a2, long *cnt) |
| void | arcSmallToBeziers (double radius, double a1, double a2, DPoint *polyBez) |
| char | polygonType (DPoint *pts, long count) |
| wchar_t | map2unichar (wchar_t wcin) |
Public Attributes | |
| unsigned char * | m_cellColors |
| cell colors More... | |
| int | m_compressedLength |
| if m_precision == 32 and this is >0 this m_CellColors are RLE compressed | |
| long | m_bytesPerLine |
| number of bytes per scan line | |
| struct { | |
| long nx | |
| long ny | |
| } | m_nCells |
| number cells in x and y | |
| DPoint | m_Pts [3] |
| cell array corners, P, Q and R | |
| long | m_precision |
| cell color precision, 1 or 32 | |
| bool | m_transpCellColorFlag |
| transparent cell color indicator | |
| CColor | m_transpCellColor |
| transparent cell color | |
| unsigned char | m_monoChromatic |
Public Attributes inherited from Larson::CCgmBaseObj | |
| DRect | m_bounds |
| retains element vdc bounds (now includes shape: line width for lines, marker size for markers, etc.) | |
| CColor | m_auxColor |
| auxilary color, i.e. relevant when transparencyOn | |
| CColor | m_fillColor |
| fill color | |
| CColor | m_lineColor |
| line color, for filled element e.g. rectangle this is edge color | |
| unsigned char | m_transparency |
| Transparency. | |
| unsigned char | m_lineCap |
| LineCapIndicator. | |
| unsigned char | m_lineDashCap |
| LineDashCapIndicator. | |
| unsigned char | m_lineJoin |
| LineJoinIndicator. | |
| unsigned char | m_lineWidthSpecMode |
| line width specfication mode | |
| unsigned char | m_fillInteriorStyle |
| fill interior style | |
| unsigned char | m_interiorStyleSpecMode |
| interior style specfication mode | |
| char | m_lineTypeCont |
| line type continuation | |
| char | m_polygonType |
| polygon type, set by CgmIn | |
| short | m_lineType |
| line type | |
| short | m_ataLayerNumber |
| ATA Layer Number. | |
| float | m_mitreLimit |
| mitre limit | |
| float | m_lineTypeInitOff |
| element | |
| long | m_hatchPatternIndex |
| hatch index, NULL if interiorStyle != interiorStyleHatch | |
| CInterpInteriorParams * | m_interpInterior |
| pointer to interploated interior parameters, NULL if interiorStyle != interiorStyleInterp | |
| ClippingPath * | m_clippingPath |
| pointer to clipping path object i.e. protection regions | |
| ClipRectangle * | m_clipRectangle |
| pointer to clip rectangle object: 0= no rectangular clipping, ohterwise poiner to object | |
| enum Shape | m_nShape |
| element shape, e.g. polyline, disjointPolyline ... | |
| CCgmObjects * | m_pOwner |
| pointer to owner of this element | |
| CPatternTables::PatternBundle * | m_patternBundle |
| pointer to pattern table bundle, NULL if interiorStyle != interiorStylePattern | |
| double | m_lineWidth |
| line width | |
| DPoint | m_patternHeight |
| DPoint | m_patternWidth |
| DPoint | m_patternRefPoint |
Additional Inherited Members | |
Public Types inherited from Larson::CCgmBaseObj | |
| enum | Shape { polyline = 0x00000000, disjointPolyline = 0x00000001, polyMarker = 0x00000002, text = 0x00000004, restrictedText = 0x00000008, appendText = 0x00000010, polygon = 0x00000020, polygonSet = 0x00000040, cellArray = 0x00000080, rectangle = 0x00000100, circle = 0x00000200, arc3Pt = 0x00000400, arc3PtClose = 0x00000800, arcCenter = 0x00001000, arcCenterClose = 0x00002000, ellipse = 0x00004000, ellipticalArc = 0x00008000, ellipticalArcClose = 0x00010000, arcCenterRev = 0x00020000, nub = 0x00040000, nurb = 0x00080000, polybezier = 0x00100000, tile = 0x00200000, compoundLine = 0x00400000, figure = 0x00800000, trace = 0x01000000, arrow = 0x02000000, callout = 0x04000000, hyperbolicArc = 0x08000000, parabolicArc = 0x10000000, copySegment = 0x20000000, polySymbol = 0x40000000, compoundText = 0x80000000, gdp = 0x00000003, message = 0x00000007, applicationData = 0x0000000F } |
| enum | CellPathDirection { cellPathDir0 = 0, cellPathDir90 = 1, cellPathDir180 = 2, cellPathDir270 = 3 } |
| enum | LineProgressionDirection { lineProgressionDir90 = 0, lineProgressionDir270 = 1 } |
| enum | InheritanceFlags { inhFlagStateList = 0, inhFlagAppStruct = 1 } |
| enum | CharSetType { charSet94G = 0, charSet96G = 1, charSet94MultiByteG = 2, charSet96MultiByteG = 3, charSetComplete = 4 } |
| enum | LocationDataTypeSelector { locDataTypeSelUI8 = 0, locDataTypeSelUI16 = 1, locDataTypeSelUI32 = 2 } |
| enum | ColourSelectionMode { colourSelectIndexed = 0, colourSelectDirect = 1 } |
| enum | SpecMode { specModeAbsolute = 0, specModeScaled = 1, specModeFractional = 2, specModeMM = 3 } |
| enum | DevViewportSpecMode { devViewSpecFraction = 0, devViewSpecMM = 1, devViewSpecPhysical = 2 } |
| enum | DevViewportIsotropy { devViewIsotropyNotForced = 0, devViewIsotropyForced = 1 } |
| enum | DevViewportHorAlign { devViewHorAlignLeft = 0, devViewHorAlignCentre = 1, devViewHorAlignRight = 2 } |
| enum | DevViewportVertAlign { devViewVertAlignBottom = 0, devViewVertAlignCentre = 1, devViewVertAlignTop = 2 } |
| enum | TextPrecision { textPrecString = 0, textPrecChar = 1, textPrecStroke = 2 } |
| enum | InteriorStyle { interiorStyleHollow = 0, interiorStyleSolid = 1, interiorStylePattern = 2, interiorStyleHatch = 3, interiorStyleEmpty = 4, interiorStyleGeoPatt = 5, interiorStyleInterp = 6 } |
| enum | HatchIndex { hatchIndexHorizontal = 1, hatchIndexVertical = 2, hatchIndexPosSlope = 3, hatchIndexNegSlope = 4, hatchIndexHorVertCross = 5, hatchIndexPosNegCross = 6 } |
| enum | InterpolatedInteriorStyle { interpolatedInteriorStyleParallel = 1, interpolatedInteriorStyleElliptical = 2, interpolatedInteriorStyleTriangular = 3 } |
| enum | LineType { lineTypeNotVisible = 0, lineTypeSolid = 1, lineTypeDash = 2, lineTypeDot = 3, lineTypeDashDot = 4, lineTypeDashDotDot = 5, lineTypeArrowTail = 6, lineTypeCircleHead = 7, lineTypeArrowHeadTail = 8, lineTypeStyleStich = 9, lineTypeStyleChain = 10, lineTypeStyleCenter = 11, lineTypeStyleHidden = 12, lineTypeStylePhantom = 13, lineTypeStyleWavy = 14, lineTypeStyleZBroke = 15 } |
| enum | HatchStyle { hatchStyleParallel = 0, hatchStyleCrossHatch = 1 } |
| enum | Transparency { transparencyOff = 0, transparencyOn = 1 } |
| enum | ClipIndicator { clipIndicatorOff = 0, clipIndicatorOn = 1 } |
| enum | ClippingMode { clipModeLocus = 0, clipModeShape = 1, clipModeLocusThenShape = 2 } |
| enum | ProtectionRegionIndicator { protRegionIndUnknown = 0, protRegionIndOff = 1, protRegionIndClip = 2, protRegionIndShield = 3 } |
| enum | TextPathMode { textPathModeOff = 0, textPathModeNonTang = 1, textPathModeAxisTang = 2 } |
| enum | TextFinalityFlag { textFinalFalse = 0, textFinalTrue = 1 } |
| enum | EdgeFlags { edgeFlagInvisible = 0, edgeFlagVisible = 1, edgeFlagClose = 2, edgeFlagVisibleClose = 3, edgeFlagAttrChanged = 4 } |
| enum | CellRepresentationMode { cellRepRunLength = 0, cellRepPackedList = 1 } |
| enum | ArcClosureType { arcCloseNone = -1, arcClosePie = 0, arcCloseChord = 1 } |
| enum | ContinuityIndicator { contIndicatorDisc = 1, contIndicatorCont = 2 } |
| enum | TileCompressionType { tileCompressNullBack = 0, tileCompressNullFore = 1, tileCompressT6 = 2, tileCompress1Dimensional = 3, tileCompressT42Dimensional = 4, tileCompressBitmap = 5, tileCompressRunLength = 6, tileCompressJPEG = 7, tileCompressLZW = 8, tileCompressPNG = 9 } |
| enum | MarkerType { markerTypeDot = 1, markerTypePlus = 2, markerTypeAsterisk = 3, markerTypeCircle = 4, markerTypeCross = 5 } |
| enum | TextPath { textPathRight = 0, textPathLeft = 1, textPathUp = 2, textPathDown = 3 } |
| enum | TextAlignmentHorizontal { textHorAlignNormal = 0, textHorAlignLeft = 1, textHorAlignCentre = 2, textHorAlignRight = 3, textHorAlignContHor = 4 } |
| enum | TextAlignmentVertical { textVertAlignNormal = 0, textVertAlignTop = 1, textVertAlignCap = 2, textVertAlignHalf = 3, textVertAlignBase = 4, textVertAlignBottom = 5, textVertAlignContVert = 6 } |
| enum | EdgeVisibility { edgeVisibleOff = 0, edgeVisibleOn = 1 } |
| enum | AspectSourceFlags { asfLineType = 0, asfLineWidth = 1, asfLineColour = 2, asfMarkerType = 3, asfMarkerSize = 4, asfMarkerColour = 5, asfTextFontIndex = 6, asfTextPrecision = 7, asfCharExpFactor = 8, asfCharSpacing = 9, asfTextColour = 10, asfInteriorStyle = 11, asfFillColour = 12, asfHatchIndex = 13, asfPatternIndex = 14, asfEdgeType = 15, asfEdgeWidth = 16, asfEdgeColour = 17 } |
| enum | AspectSourceFlagValue { asfValueIndividual = 0, asfValueBundled = 1 } |
| enum | LineCapIndicator { lineCapUnspecified = 1, lineCapButt = 2, lineCapRound = 3, lineCapProjSquare = 4, lineCapTriangle = 5 } |
| enum | DashCapIndicator { dashCapUnspecified = 1, dashCapButt = 2, dashCapMatch = 3 } |
| enum | LineJoinIndicator { lineJoinUnspecified = 1, lineJoinMitre = 2, lineJoinRound = 3, lineJoinBevel = 4 } |
| enum | LineTypeContinuation { lineContUnspecified = 1, lineContContinue = 2, lineContRestart = 3, lineContAdaptiveCont = 4 } |
| enum | TextScoreType { textScoreRight = 1, textScoreLeft = 2, textScoreThrough = 3, textScoreKendot = 4 } |
| enum | TextScoreIndicator { textScoreIndOff = 0, textScoreIndOn = 1 } |
| enum | RestrTextType { restrTextNone = 0, restrTextBasic = 1, restrTextBoxedCap = 2, restrTextBoxedAll = 3, restrTextIsotropicCap = 4, restrTextIsotropicAll = 5, restrTextJustified = 6 } |
| enum | SymbolSize { symbolSizeHeight = 0, symbolSizeWidth = 1, symbolSizeBoth = 2 } |
| enum | MessageAction { messageActionRequiredFalse = 0, messageActionRequiredTrue = 1 } |
| enum | SegmentTransformationApplication { segTransAppNo = 0, segTransAppYes = 1 } |
| enum | InheritanceFilter { inhFilterLineBundleIndex = 0, inhFilterLineType = 1, inhFilterLineWidth = 2, inhFilterLineColour = 3, inhFilterLineClippingMode = 4, inhFilterMarkerBundleIndex = 5, inhFilterMarkerType = 6, inhFilterMarkerSize = 7, inhFilterMarkerColour = 8, inhFilterMarkerClippingMode = 9, inhFilterTextBundleIndex = 10, inhFilterTextFontIndex = 11, inhFilterTextPrecision = 12, inhFilterCharExpFactor = 13, inhFilterCharSpacing = 14, inhFilterTextColour = 15, inhFilterCharHeight = 16, inhFilterCharOrientation = 17, inhFilterTextPath = 18, inhFilterTextAlignment = 19, inhFilterFillBundleIndex = 20, inhFilterInteriorStyle = 21, inhFilterFillColour = 22, inhFilterHatchIndex = 23, inhFilterPatternIndex = 24, inhFilterEdgeBundleIndex = 25, inhFilterEdgeType = 26, inhFilterEdgeWidth = 27, inhFilterEdgeColour = 28, inhFilterEdgeVisibility = 29, inhFilterEdgeClippingMode = 30, inhFilterFillRefPoint = 31, inhFilterPatternSize = 32, inhFilterAuxColour = 33, inhFilterTransparency = 34, inhFilterLineAttributes = 35, inhFilterMarkerAttributes = 36, inhFilterTextPresAndPlaceAttr = 37, inhFilterTextPlaceAndOrientAttr = 38, inhFilterFillAttributes = 39, inhFilterEdgeAttributes = 40, inhFilterPatternAttr = 41, inhFilterOutputControl = 42, inhFilterPickIdentifier = 43, inhFilterAllAttrAndControl = 44, inhFilterAll = 45, inhFilterLineTypeASF = 46, inhFilterLineWidthASF = 47, inhFilterLineColorASF = 48, inhFilterMarkerTypeASF = 49, inhFilterMarkerSizeASF = 50, inhFilterMarkerColourASF = 51, inhFilterTextFontIndexASF = 52, inhFilterTextPrecisionASF = 53, inhFilterCharExpFactorASF = 54, inhFilterCharSpacingASF = 55, inhFilterTextColourASF = 56, inhFilterInteriorStyleASF = 57, inhFilterFillColourASF = 58, inhFilterHatchIndexASF = 59, inhFilterPatternIndexASF = 60, inhFilterEdgeTypeASF = 61, inhFilterEdgeWidthASF = 62, inhFilterEdgeColourASF = 63, inhFilterLineASFs = 64, inhFilterMarkerASFs = 65, inhFilterTextASFs = 66, inhFilterFillASFs = 67, inhFilterEdgeASFs = 68, inhFilterAllASFs = 69, inhFilterMitreLimit = 70, inhFilterLineCap = 71, inhFilterLineJoin = 72, inhFilterLineTypeCont = 73, inhFilterLineTypeInitOffset = 74, inhFilterTextScoreType = 75, inhFilterRestrTextType = 76, inhFilterInterpolatedInterior = 77, inhFilterEdgeCap = 78, inhFilterEdgeJoin = 79, inhFilterEdgeTypeCont = 80, inhFilterEdgeTypeInitOffset = 81, inhFilterSymbolLibraryIndex = 82, inhFilterSymbolColour = 83, inhFilterSymbolSize = 84, inhFilterSymbolOrientation = 85, inhFilterSymbolAttr = 86 } |
| enum | InheritanceFilterSetting { inhFilterSettingStateList = 0, inhFilterSettingSegment = 1 } |
| enum | ClipInheritance { clipInhStateList = 0, clipInhIntersection = 1 } |
| enum | SegmentHighlighting { segHighlightNormal = 0, segHighlightHigh = 1 } |
| enum | PolygonType { polygonTypeNotAPolygon = 0, polygonTypeComplex = 1, polygonTypeConvex = 2, polygonTypeNonconvex = 3 } |
Static Public Member Functions inherited from Larson::CCgmBaseObj | |
| static DPoint * | beziertoPts (DPoint &p0, DPoint &p1, DPoint &p2, DPoint &p3, double step, long *nPts) |
| static PolyPolylineData * | PolyBezierToPoints (long type, DPoint *pPts, long count, double step, DRect *pRect=NULL, DRect *pBounds=NULL) |
Protected Member Functions inherited from Larson::CCgmBaseObj | |
| long | SaveLineAttr (CGMLIB2_HANDLE hCGMLIB2) |
| save line attributes during CGM save operation | |
| long | SaveFillAttr (CGMLIB2_HANDLE hCGMLIB2) |
| save fill attributes during CGM save operation | |
| long | SaveClipping (CGMLIB2_HANDLE hCGMLIB2) |
| save clipping during CGM save operation | |
| DRect | IntersectClip (DRect rect) |
| tests for intersection of rect with bounds this element | |
CCgmCellArray – CellArray element container class.
| unsigned char* Larson::CCgmCellArray::m_cellColors |
cell colors
if precision= 32 bits per color in RGBa byte order if precision=1 bit per color each line is padded to 32 bits, and for 0 and 1 color values specified by fgColor & bgColor
| unsigned char Larson::CCgmCellArray::m_monoChromatic |
cell colors are all either black and white, this is set in CgmIn, used to determine if conversion to bi-tonal tile array is possible
1.8.6