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
00054
00055
00056
00057
00058
00059
00060
00061
00062
00063
00064
00065
00066
00067
00068
00069
00070
00071
00072
00073
00074
00075
00076
00077
00078
00079
00080
00081
00082
00083
00084
00085
00086
00087
00088
00089
00090
00091
00092
00093
00094
00095
00096
00097
00098
00099
00100
00101 #ifndef INC_LINEATTR
00102 #define INC_LINEATTR
00103
00104
00105
00106
00107
00108 #include "fillattr2.h"
00109
00110
00111 class BlendAttrParam;
00112 class BaseCamelotFilter;
00113
00114
00115
00116
00117
00118
00119
00120
00121
00122
00123
00124
00125
00126
00127
00128
00129
00130
00131
00132
00133
00134
00135
00136 class AttrLineWidth : public NodeAttribute
00137 {
00138 CC_DECLARE_DYNCREATE(AttrLineWidth)
00139
00140 public:
00141 AttrLineWidth();
00142 AttrLineWidth(Node* ContextNode,
00143 AttachNodeDirection Direction,
00144 BOOL Locked=FALSE,
00145 BOOL Mangled=FALSE,
00146 BOOL Marked=FALSE,
00147 BOOL Selected=FALSE);
00148
00149 void Render( RenderRegion* pRender );
00150
00151 Node* SimpleCopy();
00152 virtual INT32 operator==(const NodeAttribute& NodeAttrib);
00153 virtual UINT32 GetAttrNameID(void);
00154
00155 void ShowDebugTreeDetails() const;
00156
00157 void GetDebugDetails(StringBase* Str);
00158
00159 virtual UINT32 GetNodeSize() const;
00160
00161 virtual void Transform( TransformBase& );
00162 virtual BOOL EffectsParentBounds() { return TRUE; }
00163
00164 virtual BOOL Blend(BlendAttrParam* pBlendParam);
00165
00166 virtual AttributeValue* GetAttributeValue() { return &Value; }
00167 virtual CCRuntimeClass* GetAttributeType() { return CC_RUNTIME_CLASS(AttrLineWidth); }
00168 virtual AttrIndex GetAttributeIndex () { return ATTR_LINEWIDTH; }
00169
00170 virtual void PolyCopyNodeContents(NodeRenderable* pNodeCopy);
00171
00172
00173 virtual BOOL WritePreChildrenWeb(BaseCamelotFilter* pFilter);
00174 virtual BOOL WritePreChildrenNative(BaseCamelotFilter* pFilter);
00175
00176 virtual NodeAttribute* GetOtherAttrToApply(BOOL* IsMutate);
00177 virtual BOOL OtherAttrIsAppliedSelectively() const { return TRUE; }
00178 virtual BOOL IsALineWidthAttr() const;
00179 virtual BOOL NeedsToRenderAtEachBrushStroke() const;
00180
00181 private:
00182 void CopyNodeContents( AttrLineWidth* NodeCopy );
00183
00184 public:
00185 LineWidthAttribute Value;
00186 };
00187
00188
00189
00190
00191
00192
00193
00194
00195
00196
00197
00198 class AttrStrokeColour : public AttrFillGeometry
00199 {
00200 CC_DECLARE_DYNCREATE(AttrStrokeColour)
00201
00202 public:
00203 AttrStrokeColour();
00204 AttrStrokeColour(Node* ContextNode,
00205 AttachNodeDirection Direction,
00206 BOOL Locked=FALSE,
00207 BOOL Mangled=FALSE,
00208 BOOL Marked=FALSE,
00209 BOOL Selected=FALSE);
00210
00211 void Render( RenderRegion* pRender );
00212
00213 Node* SimpleCopy();
00214 virtual INT32 operator==(const NodeAttribute& NodeAttrib);
00215 virtual UINT32 GetAttrNameID(void);
00216
00217 virtual DocRect GetBlobBoundingRect() { return DocRect(0,0,0,0); }
00218 virtual BOOL EffectsParentBounds();
00219
00220 virtual CCRuntimeClass* GetAttributeType() { return CC_RUNTIME_CLASS(AttrStrokeColour); }
00221 virtual AttributeValue* GetAttributeValue() { return &Value; }
00222 virtual AttrIndex GetAttributeIndex () { return ATTR_STROKECOLOUR; }
00223
00224 virtual AttrFillGeometry* ChangeAttrValue(AttrValueChange*);
00225
00226 virtual BOOL IsAStrokeColour() const { return TRUE; }
00227
00228 virtual void PolyCopyNodeContents(NodeRenderable* pNodeCopy);
00229
00230
00231 virtual BOOL WritePreChildrenWeb(BaseCamelotFilter* pFilter);
00232 virtual BOOL WritePreChildrenNative(BaseCamelotFilter* pFilter);
00233 virtual BOOL WriteColourDefinitions (BaseCamelotFilter* pFilter);
00234
00235
00236 #ifdef _DEBUG
00237 void ShowDebugTreeDetails() const;
00238 #endif
00239
00240 void GetDebugDetails(StringBase* Str);
00241
00242 virtual UINT32 GetNodeSize() const;
00243
00244 private:
00245 void CopyNodeContents( AttrStrokeColour* NodeCopy );
00246
00247 public:
00248 StrokeColourAttribute Value;
00249 };
00250
00251
00252
00253
00254
00255
00256
00257
00258
00259
00260
00261 class AttrStrokeTransp : public AttrFillGeometry
00262 {
00263 CC_DECLARE_DYNCREATE(AttrStrokeTransp)
00264
00265 public:
00266 AttrStrokeTransp();
00267 AttrStrokeTransp(Node* ContextNode,
00268 AttachNodeDirection Direction,
00269 BOOL Locked=FALSE,
00270 BOOL Mangled=FALSE,
00271 BOOL Marked=FALSE,
00272 BOOL Selected=FALSE);
00273
00274 void Render( RenderRegion* pRender );
00275
00276 Node* SimpleCopy();
00277 virtual INT32 operator==(const NodeAttribute& NodeAttrib);
00278 virtual UINT32 GetAttrNameID(void);
00279
00280 virtual DocRect GetBlobBoundingRect() { return DocRect(0,0,0,0); }
00281
00282 virtual CCRuntimeClass* GetAttributeType() { return CC_RUNTIME_CLASS(AttrStrokeTransp); }
00283 virtual AttributeValue* GetAttributeValue() { return &Value; }
00284 virtual AttrIndex GetAttributeIndex () { return ATTR_STROKETRANSP; }
00285
00286 virtual AttrFillGeometry* ChangeAttrValue(AttrValueChange*);
00287
00288 virtual BOOL IsAStrokeTransp() const { return TRUE; }
00289
00290 #ifdef _DEBUG
00291 void ShowDebugTreeDetails() const;
00292 #endif
00293
00294 void GetDebugDetails(StringBase* Str);
00295
00296 virtual UINT32 GetNodeSize() const;
00297
00298 virtual void PolyCopyNodeContents(NodeRenderable* pNodeCopy);
00299
00300
00301 virtual BOOL WritePreChildrenWeb(BaseCamelotFilter* pFilter);
00302 virtual BOOL WritePreChildrenNative(BaseCamelotFilter* pFilter);
00303
00304
00305 virtual BOOL NeedsTransparency() const;
00306
00307 private:
00308 void CopyNodeContents( AttrStrokeTransp* NodeCopy );
00309
00310 public:
00311 StrokeTranspAttribute Value;
00312 };
00313
00314
00315
00316
00317
00318
00319
00320
00321
00322
00323
00324
00325
00326
00327 class AttrStrokeColourChange : public AttrValueChange
00328 {
00329 CC_DECLARE_DYNCREATE(AttrStrokeColourChange)
00330
00331 public:
00332
00333
00334 AttrStrokeColourChange(BOOL bLineWidth=FALSE) : AttrValueChange() { m_bLineWidth = bLineWidth;}
00335
00336 virtual AttributeValue* GetAttributeValue() { return &Value; }
00337 virtual CCRuntimeClass* GetAttributeType() { return CC_RUNTIME_CLASS(AttrStrokeColour); }
00338
00339 virtual AttrFillGeometry* MutateFill(AttrFillGeometry* FillToMutate);
00340
00341
00342
00343 virtual NodeAttribute* GetOtherAttrToApply(BOOL* IsMutate);
00344
00345 virtual UINT32 GetAttrNameID(void);
00346
00347 virtual BOOL EffectsParentBounds();
00348
00349 protected:
00350 StrokeColourAttribute Value;
00351
00352 private:
00353
00354
00355
00356
00357
00358 BOOL m_bLineWidth;
00359 };
00360
00361
00362
00363
00364
00365
00366
00367
00368
00369
00370
00371
00372
00373
00374 class AttrStrokeTranspChange : public AttrValueChange
00375 {
00376 CC_DECLARE_DYNCREATE(AttrStrokeTranspChange)
00377
00378 public:
00379 AttrStrokeTranspChange() : AttrValueChange() {}
00380
00381 virtual AttributeValue* GetAttributeValue() { return &Value; }
00382 virtual CCRuntimeClass* GetAttributeType() { return CC_RUNTIME_CLASS(AttrStrokeTransp); }
00383
00384 virtual AttrFillGeometry* MutateFill(AttrFillGeometry* FillToMutate);
00385
00386 virtual UINT32 GetAttrNameID(void);
00387
00388 protected:
00389 StrokeTranspAttribute Value;
00390 };
00391
00392
00393
00394
00395
00396
00397
00398
00399
00400
00401
00402
00403
00404
00405 class AttrStrokeTranspTypeChange : public AttrValueChange
00406 {
00407 CC_DECLARE_DYNCREATE(AttrStrokeTranspTypeChange)
00408
00409 public:
00410 AttrStrokeTranspTypeChange() : AttrValueChange() {}
00411
00412 virtual AttributeValue* GetAttributeValue() { return &Value; }
00413 virtual CCRuntimeClass* GetAttributeType() { return CC_RUNTIME_CLASS(AttrStrokeTransp); }
00414
00415 virtual AttrFillGeometry* MutateFill(AttrFillGeometry* FillToMutate);
00416
00417 virtual UINT32 GetAttrNameID(void);
00418
00419 protected:
00420 StrokeTranspAttribute Value;
00421 };
00422
00423
00424
00425
00426
00427
00428
00429
00430
00431
00432
00433
00434 class AttrStartArrow : public NodeAttribute
00435 {
00436 CC_DECLARE_DYNCREATE(AttrStartArrow)
00437
00438 public:
00439
00440 AttrStartArrow();
00441 AttrStartArrow(Node* ContextNode,
00442 AttachNodeDirection Direction,
00443 BOOL Locked=FALSE,
00444 BOOL Mangled=FALSE,
00445 BOOL Marked=FALSE,
00446 BOOL Selected=FALSE);
00447
00448 void Render( RenderRegion* pRender );
00449
00450 virtual BOOL EffectsParentBounds();
00451 virtual DocRect GetAttrBoundingRect(NodeRenderableInk* pParent = NULL, CCAttrMap* pAttribMap = NULL);
00452
00453 virtual AttributeValue* GetAttributeValue() { return &Value; }
00454 virtual CCRuntimeClass* GetAttributeType() { return CC_RUNTIME_CLASS(AttrStartArrow); }
00455 virtual AttrIndex GetAttributeIndex () { return ATTR_STARTARROW; }
00456
00457 Node* SimpleCopy();
00458 virtual INT32 operator==(const NodeAttribute& NodeAttrib);
00459 virtual UINT32 GetAttrNameID(void);
00460
00461
00462 #ifdef _DEBUG
00463 void ShowDebugTreeDetails() const;
00464 #endif
00465 void GetDebugDetails(StringBase* Str);
00466
00467 virtual UINT32 GetNodeSize() const;
00468
00469 virtual void PolyCopyNodeContents(NodeRenderable* pNodeCopy);
00470
00471
00472 virtual BOOL WritePreChildrenWeb(BaseCamelotFilter* pFilter);
00473 virtual BOOL WritePreChildrenNative(BaseCamelotFilter* pFilter);
00474
00475 private:
00476 void CopyNodeContents( AttrStartArrow* NodeCopy );
00477
00478 public:
00479 StartArrowAttribute Value;
00480 };
00481
00482
00483
00484
00485
00486
00487
00488
00489
00490
00491
00492
00493 class AttrEndArrow : public NodeAttribute
00494 {
00495 CC_DECLARE_DYNCREATE(AttrEndArrow)
00496
00497 public:
00498 AttrEndArrow();
00499 AttrEndArrow(Node* ContextNode,
00500 AttachNodeDirection Direction,
00501 BOOL Locked=FALSE,
00502 BOOL Mangled=FALSE,
00503 BOOL Marked=FALSE,
00504 BOOL Selected=FALSE);
00505
00506 void Render( RenderRegion* pRender );
00507
00508 virtual BOOL EffectsParentBounds();
00509 virtual DocRect GetAttrBoundingRect(NodeRenderableInk* pParent = NULL, CCAttrMap* pAttribMap = NULL);
00510
00511 virtual AttributeValue* GetAttributeValue() { return &Value; }
00512 virtual CCRuntimeClass* GetAttributeType() { return CC_RUNTIME_CLASS(AttrEndArrow); }
00513 virtual AttrIndex GetAttributeIndex () { return ATTR_ENDARROW; }
00514
00515 Node* SimpleCopy();
00516 virtual INT32 operator==(const NodeAttribute& NodeAttrib);
00517 virtual UINT32 GetAttrNameID(void);
00518
00519
00520 #ifdef _DEBUG
00521 void ShowDebugTreeDetails() const;
00522 #endif
00523 void GetDebugDetails(StringBase* Str);
00524 virtual UINT32 GetNodeSize() const;
00525
00526 virtual void PolyCopyNodeContents(NodeRenderable* pNodeCopy);
00527
00528
00529 virtual BOOL WritePreChildrenWeb(BaseCamelotFilter* pFilter);
00530 virtual BOOL WritePreChildrenNative(BaseCamelotFilter* pFilter);
00531
00532 private:
00533 void CopyNodeContents( AttrEndArrow* NodeCopy );
00534
00535 public:
00536 EndArrowAttribute Value;
00537 };
00538
00539
00540
00541
00542
00543
00544
00545
00546
00547
00548
00549
00550 class AttrStartCap : public NodeAttribute
00551 {
00552 CC_DECLARE_DYNCREATE(AttrStartCap)
00553
00554 public:
00555 AttrStartCap();
00556 AttrStartCap(Node* ContextNode,
00557 AttachNodeDirection Direction,
00558 BOOL Locked=FALSE,
00559 BOOL Mangled=FALSE,
00560 BOOL Marked=FALSE,
00561 BOOL Selected=FALSE);
00562
00563 void Render( RenderRegion* pRender );
00564
00565 Node* SimpleCopy();
00566 virtual INT32 operator==(const NodeAttribute& NodeAttrib);
00567 virtual UINT32 GetAttrNameID(void);
00568
00569 virtual AttributeValue* GetAttributeValue() { return &Value; }
00570 virtual CCRuntimeClass* GetAttributeType() { return CC_RUNTIME_CLASS(AttrStartCap); }
00571 virtual AttrIndex GetAttributeIndex () { return ATTR_STARTCAP; }
00572
00573 virtual UINT32 GetNodeSize() const;
00574
00575 virtual BOOL EffectsParentBounds() { return TRUE; }
00576
00577 #ifdef _DEBUG
00578 void ShowDebugTreeDetails() const;
00579 #endif
00580 void GetDebugDetails(StringBase* Str);
00581
00582 virtual void PolyCopyNodeContents(NodeRenderable* pNodeCopy);
00583
00584
00585 virtual BOOL WritePreChildrenWeb(BaseCamelotFilter* pFilter);
00586 virtual BOOL WritePreChildrenNative(BaseCamelotFilter* pFilter);
00587
00588 private:
00589 void CopyNodeContents( AttrStartCap* NodeCopy );
00590
00591 public:
00592 StartCapAttribute Value;
00593 };
00594
00595
00596
00597
00598
00599
00600
00601
00602
00603
00604
00605
00606 class AttrJoinType : public NodeAttribute
00607 {
00608 CC_DECLARE_DYNCREATE(AttrJoinType)
00609
00610 public:
00611 AttrJoinType();
00612 AttrJoinType(Node* ContextNode,
00613 AttachNodeDirection Direction,
00614 BOOL Locked=FALSE,
00615 BOOL Mangled=FALSE,
00616 BOOL Marked=FALSE,
00617 BOOL Selected=FALSE);
00618
00619 void Render( RenderRegion* pRender );
00620
00621 Node* SimpleCopy();
00622 virtual INT32 operator==(const NodeAttribute& NodeAttrib);
00623 virtual UINT32 GetAttrNameID(void);
00624
00625 virtual AttributeValue* GetAttributeValue() { return &Value; }
00626 virtual CCRuntimeClass* GetAttributeType() { return CC_RUNTIME_CLASS(AttrJoinType); }
00627 virtual AttrIndex GetAttributeIndex () { return ATTR_JOINTYPE; }
00628
00629 virtual BOOL EffectsParentBounds() { return TRUE; }
00630
00631 #ifdef _DEBUG
00632 void ShowDebugTreeDetails() const;
00633 #endif
00634 void GetDebugDetails(StringBase* Str);
00635
00636 virtual UINT32 GetNodeSize() const;
00637
00638 virtual void PolyCopyNodeContents(NodeRenderable* pNodeCopy);
00639
00640
00641 virtual BOOL WritePreChildrenWeb(BaseCamelotFilter* pFilter);
00642 virtual BOOL WritePreChildrenNative(BaseCamelotFilter* pFilter);
00643
00644 private:
00645 void CopyNodeContents( AttrJoinType* NodeCopy );
00646
00647 public:
00648 JoinTypeAttribute Value;
00649 };
00650
00651
00652
00653
00654
00655
00656
00657
00658
00659
00660
00661 class AttrMitreLimit : public NodeAttribute
00662 {
00663 CC_DECLARE_DYNCREATE(AttrMitreLimit)
00664
00665 public:
00666 AttrMitreLimit();
00667 AttrMitreLimit(Node* ContextNode,
00668 AttachNodeDirection Direction,
00669 BOOL Locked=FALSE,
00670 BOOL Mangled=FALSE,
00671 BOOL Marked=FALSE,
00672 BOOL Selected=FALSE);
00673
00674 void Render( RenderRegion* pRender );
00675
00676 Node* SimpleCopy();
00677 virtual INT32 operator==(const NodeAttribute& NodeAttrib);
00678 virtual UINT32 GetAttrNameID(void);
00679
00680 virtual AttributeValue* GetAttributeValue() { return &Value; }
00681 virtual CCRuntimeClass* GetAttributeType() { return CC_RUNTIME_CLASS(AttrMitreLimit); }
00682 virtual AttrIndex GetAttributeIndex () { return ATTR_MITRELIMIT; }
00683
00684 virtual BOOL EffectsParentBounds() { return TRUE; }
00685
00686 #ifdef _DEBUG
00687 void ShowDebugTreeDetails() const;
00688 #endif
00689 void GetDebugDetails(StringBase* Str);
00690
00691 virtual UINT32 GetNodeSize() const;
00692
00693 virtual void PolyCopyNodeContents(NodeRenderable* pNodeCopy);
00694
00695
00696 virtual BOOL WritePreChildrenWeb(BaseCamelotFilter* pFilter);
00697 virtual BOOL WritePreChildrenNative(BaseCamelotFilter* pFilter);
00698
00699 private:
00700 void CopyNodeContents( AttrMitreLimit* NodeCopy );
00701
00702 public:
00703 MitreLimitAttribute Value;
00704 };
00705
00706
00707
00708
00709
00710
00711
00712
00713
00714
00715
00716
00717 class AttrWindingRule : public NodeAttribute
00718 {
00719 CC_DECLARE_DYNCREATE(AttrWindingRule)
00720
00721 public:
00722 AttrWindingRule();
00723 AttrWindingRule(Node* ContextNode,
00724 AttachNodeDirection Direction,
00725 BOOL Locked=FALSE,
00726 BOOL Mangled=FALSE,
00727 BOOL Marked=FALSE,
00728 BOOL Selected=FALSE);
00729
00730 void Render( RenderRegion* pRender );
00731
00732 Node* SimpleCopy();
00733 virtual INT32 operator==(const NodeAttribute& NodeAttrib);
00734 virtual UINT32 GetAttrNameID(void);
00735
00736 virtual AttributeValue* GetAttributeValue() { return &Value; }
00737 virtual CCRuntimeClass* GetAttributeType() { return CC_RUNTIME_CLASS(AttrWindingRule); }
00738 virtual AttrIndex GetAttributeIndex () { return ATTR_WINDINGRULE; }
00739
00740 #ifdef _DEBUG
00741 void ShowDebugTreeDetails() const;
00742 #endif
00743 void GetDebugDetails(StringBase* Str);
00744
00745 virtual UINT32 GetNodeSize() const;
00746
00747 virtual void PolyCopyNodeContents(NodeRenderable* pNodeCopy);
00748
00749
00750 virtual BOOL WritePreChildrenWeb(BaseCamelotFilter* pFilter);
00751 virtual BOOL WritePreChildrenNative(BaseCamelotFilter* pFilter);
00752
00753 private:
00754 void CopyNodeContents( AttrWindingRule* NodeCopy );
00755
00756 public:
00757 WindingRuleAttribute Value;
00758 };
00759
00760
00761
00762
00763
00764
00765
00766
00767
00768
00769
00770
00771 class AttrDashPattern : public NodeAttribute
00772 {
00773 CC_DECLARE_DYNCREATE(AttrDashPattern)
00774
00775 public:
00776 AttrDashPattern();
00777 AttrDashPattern(Node* ContextNode,
00778 AttachNodeDirection Direction,
00779 BOOL Locked=FALSE,
00780 BOOL Mangled=FALSE,
00781 BOOL Marked=FALSE,
00782 BOOL Selected=FALSE);
00783
00784 void Render( RenderRegion* pRender );
00785
00786 Node* SimpleCopy();
00787 virtual INT32 operator==(const NodeAttribute& NodeAttrib);
00788 virtual UINT32 GetAttrNameID(void);
00789
00790 virtual AttributeValue* GetAttributeValue() { return &Value; }
00791 virtual CCRuntimeClass* GetAttributeType() { return CC_RUNTIME_CLASS(AttrDashPattern); }
00792
00793 virtual AttrIndex GetAttributeIndex () { return ATTR_DASHPATTERN; }
00794
00795 virtual UINT32 GetNodeSize() const;
00796
00797 #ifdef _DEBUG
00798 void ShowDebugTreeDetails() const;
00799 #endif
00800 void GetDebugDetails(StringBase* Str);
00801
00802 virtual void PolyCopyNodeContents(NodeRenderable* pNodeCopy);
00803
00804
00805 virtual BOOL WritePreChildrenWeb(BaseCamelotFilter* pFilter);
00806 virtual BOOL WritePreChildrenNative(BaseCamelotFilter* pFilter);
00807
00808 private:
00809 void CopyNodeContents( AttrDashPattern* NodeCopy );
00810
00811 public:
00812 DashPatternAttribute Value;
00813 };
00814
00815 #endif
00816
00817