CGM Objects Library
 All Classes Namespaces Functions Variables Typedefs Enumerations Enumerator Pages
Classes | Public Member Functions | Public Attributes | Protected Attributes | List of all members
Larson::CCgmTileArray Class Reference

CCgmTileArray – TileArray element container class. More...

#include <CgmObj.h>

Inheritance diagram for Larson::CCgmTileArray:
Larson::CCgmBaseObj

Classes

struct  tiles
 color data this tile More...
 

Public Member Functions

 CCgmTileArray (CCgmObjects *pParent, enum Shape nShape)
 Constructor.
 
virtual ~CCgmTileArray ()
 Destructor.
 
const CCgmTileArrayoperator= (const CCgmTileArray &a)
 
virtual CCgmBaseObjClone ()
 return copy of this object, new memory is allocated for lists
 
void ConvertColors (int monoEnhance, int colorConvert)
 convert colors of this element as specified
 
void Draw (CDrawBase *pDB)
 draw this element to specfied drawing object
 
int GetBytesPerLine (int nTile)
 
DPoint * GetPQRPts ()
 
void GetXForm (double m[2][2])
 
bool IsRaster ()
 true if this is a raster type element, e.g Cell Array
 
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
 
void TransformBy (CMatrix *pXForm)
 transform this element with specified matrix
 
long Save (CGMLIB2_HANDLE hCGMLIB2, int bwCompression, int colorCompression, bool unicode, bool bRGBa, int vdcPrecision=false)
 save this element to CGM file
 
int SetTileArray (int cellPathDir, int lineProgressionDir, int pathCellsPerTile, int lineCellsPerTile, double pathCellSize, double lineCellSize, int pathCellsImage, int lineCellsImage, int pathNumberOfTiles, int lineNumberOfTiles)
 
int SetTileCells (int pathTileNumber, int lineTileNumber, unsigned char *pData, int dataSize)
 
- 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 PolyPolylineDataConvertToPoints (double step=0)
 convert this element to list of points
 
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
 
virtual bool HitTest (DPoint point, double margin, int *pSegIndex=NULL)
 true if point touches this element within margin
 
const CCgmBaseObjoperator= (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

bool m_transpCellColorFlag
 transparent cell color indicator
 
CColor m_transpCellColor
 transparent cell color
 
tilesm_tiles
 
struct {
   long   path
 
   long   line
 
m_nTiles
 
struct {
   long   path
 
   long   line
 
m_nCells
 
struct {
   double   path
 
   double   line
 
m_cellSize
 
struct {
   long   path
 
   long   line
 
m_imageOffset
 
struct {
   long   path
 
   long   line
 
m_imageCells
 
long m_cellPathDir
 cell path direction
 
long m_lineProgressionDir
 line progression direction 0= 90 degrees, 1= 270 degrees
 
DPoint m_Pt
 tile starting position
 
- 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
 
CInterpInteriorParamsm_interpInterior
 pointer to interploated interior parameters, NULL if interiorStyle != interiorStyleInterp
 
ClippingPathm_clippingPath
 pointer to clipping path object i.e. protection regions
 
ClipRectanglem_clipRectangle
 pointer to clip rectangle object: 0= no rectangular clipping, ohterwise poiner to object
 
enum Shape m_nShape
 element shape, e.g. polyline, disjointPolyline ...
 
CCgmObjectsm_pOwner
 pointer to owner of this element
 
CPatternTables::PatternBundlem_patternBundle
 pointer to pattern table bundle, NULL if interiorStyle != interiorStylePattern
 
double m_lineWidth
 line width
 
DPoint m_patternHeight
 
DPoint m_patternWidth
 
DPoint m_patternRefPoint
 

Protected Attributes

CCgmCellArraym_pCellDraw
 

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 PolyPolylineDataPolyBezierToPoints (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
 

Detailed Description

CCgmTileArray – TileArray element container class.

Member Data Documentation

struct { ... } Larson::CCgmTileArray::m_cellSize

cells per VDC unit in path direction cells per VDC unit in line direction

struct { ... } Larson::CCgmTileArray::m_imageCells

number cells per line in the image number lines in the image

struct { ... } Larson::CCgmTileArray::m_nCells

number cells per line in each tile number lines in each tile

struct { ... } Larson::CCgmTileArray::m_nTiles

number of tiles in path direction number of tiles in line direction


The documentation for this class was generated from the following files: