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 #ifndef INC_OPSHADOW
00101 #define INC_OPSHADOW
00102
00103 #include "nodecont.h"
00104
00105 #ifdef BUILDSHADOWS
00106
00107
00108 #include "attrappl.h"
00109
00110 #include "shadinfo.h"
00111 #include "menuitem.h"
00112 #include "effects_stack.h"
00113
00114 class NodeShadowParam;
00115
00116
00117 #define OPTOKEN_APPLYSHADOW _T("ApplyShadow")
00118 #define OPTOKEN_CHANGESHADOWTYPE _T("ChangeShadowType")
00119 #define OPTOKEN_REMOVESHADOW _T("RemoveShadow")
00120 #define OPTOKEN_SHADOWPOSITION _T("ShadowPosition")
00121 #define OPTOKEN_SHADOWPENUMBRA _T("ShadowPenumbra")
00122 #define OPTOKEN_SHADOWATTRIB _T("ShadowAttributeApply")
00123 #define OPTOKEN_SHADOWANGLE _T("ShadowAngle")
00124 #define OPTOKEN_SHADOWHEIGHT _T("ShadowHeight")
00125 #define OPTOKEN_SHADOWSCALE _T("ShadowScale")
00126 #define OPTOKEN_SHADOWHEIGHTANDANGLE _T("ShadowHeightAndAngle")
00127 #define OPTOKEN_SAVESHADOWDATA _T("SaveShadowData")
00128 #define OPTOKEN_GLOWWIDTH _T("GlowWidth")
00129 #define OPTOKEN_SHADOWPROFILE _T("ShadowProfile")
00130 #define OPTOKEN_SHADOWDARKNESS _T("ShadowDarkness")
00131
00137
00138
00139
00140
00141
00142
00143
00144
00145
00146 class OpApplyShadow : public SelOperation
00147 {
00148
00149 CC_DECLARE_DYNCREATE(OpApplyShadow)
00150
00151 public:
00152 static BOOL Declare();
00153 static ListRange* DoApplyShadow(UndoableOperation* pOp, Range* pRange, NodeShadowParam* pNSParam);
00154 static NodeShadowController* DoApplyShadow(UndoableOperation* pOp, Node* pNode, NodeShadowParam* pNSParam, BOOL bSetSelected = TRUE);
00155
00156 public:
00157
00158 OpApplyShadow();
00159 ~OpApplyShadow();
00160
00161 virtual void Do(OpDescriptor *pOpDesc);
00162 virtual void DoWithParam(OpDescriptor* pOp, OpParam* pParam);
00163
00164
00165 static OpState GetState(String_256* Description, OpDescriptor*);
00166 static OpState GetParamState(String_256* pstrDescription, OpDescriptor* pOpDesc, OpParam* pOpParam);
00167
00168
00169
00170
00171
00172
00173 };
00174
00175
00181
00182
00183
00184
00185
00186
00187
00188
00189
00190 class OpChangeShadowType : public SelOperation
00191 {
00192
00193 CC_DECLARE_DYNCREATE(OpChangeShadowType)
00194
00195 public:
00196 static BOOL Declare();
00197 static BOOL DoChangeShadowType(UndoableOperation* pOp, NodeShadowParam* pNSParam);
00198
00199 public:
00200
00201 OpChangeShadowType();
00202 ~OpChangeShadowType();
00203
00204 virtual void Do(OpDescriptor *pOpDesc);
00205 virtual void DoWithParam(OpDescriptor* pOp, OpParam* pParam);
00206
00207
00208 static OpState GetState(String_256* Description, OpDescriptor*);
00209 static OpState GetParamState(String_256* pstrDescription, OpDescriptor* pOpDesc, OpParam* pOpParam);
00210
00211
00212
00213
00214
00215
00216 };
00217
00218
00224
00225
00226
00227
00228
00229
00230
00231
00232
00233 class OpRemoveShadow : public SelOperation
00234 {
00235
00236 CC_DECLARE_DYNCREATE(OpRemoveShadow)
00237
00238 public:
00239
00240 OpRemoveShadow();
00241 ~OpRemoveShadow();
00242
00243
00244 virtual void DoWithParam(OpDescriptor* pOp, OpParam* pParam);
00245
00246
00247 static BOOL Declare();
00248 static OpState GetState(String_256* Description, OpDescriptor*);
00249 };
00250
00251
00257
00258
00259
00260
00261
00262
00263
00264
00265
00266 class ShadowPosition : public OpParam
00267 {
00268 CC_DECLARE_DYNCREATE(ShadowPosition)
00269
00270 public:
00271 ShadowPosition();
00272 ShadowPosition(const INT32 x, const INT32 y, BOOL UpdateX=TRUE, BOOL UpdateY=TRUE, SoftShadowTool* pTool=NULL);
00273 ~ShadowPosition();
00274
00275 public:
00276 INT32 X;
00277 INT32 Y;
00278 BOOL m_bUpdateX;
00279 BOOL m_bUpdateY;
00280 SoftShadowTool* m_pTool;
00281 };
00282
00283
00284
00285
00286
00287
00288
00289
00290
00291 class OpShadowPosition : public SelOperation
00292 {
00293 CC_DECLARE_DYNCREATE(OpShadowPosition)
00294
00295 public:
00296 OpShadowPosition();
00297 ~OpShadowPosition();
00298
00299 virtual void DoWithParam(OpDescriptor* pOp, OpParam* pParam);
00300 static OpState GetState(String_256* Description, OpDescriptor*);
00301 static BOOL Declare();
00302
00303 };
00304
00305
00311
00312
00313
00314
00315
00316
00317
00318
00319
00320
00321 class ShadowPenumbra : public OpParam
00322 {
00323 CC_DECLARE_DYNCREATE(ShadowPenumbra)
00324
00325 public:
00326 ShadowPenumbra();
00327 ShadowPenumbra(const INT32 p, SoftShadowTool* pTool);
00328 ~ShadowPenumbra();
00329
00330 public:
00331 INT32 P;
00332 SoftShadowTool* m_pTool;
00333 };
00334
00335
00336
00337
00338
00339
00340
00341
00342
00343
00344 class OpShadowPenumbra : public SelOperation
00345 {
00346 CC_DECLARE_DYNCREATE(OpShadowPenumbra)
00347
00348 public:
00349 OpShadowPenumbra();
00350 ~OpShadowPenumbra();
00351
00352 virtual void DoWithParam(OpDescriptor* pOp, OpParam* pParam);
00353 static OpState GetState(String_256* Description, OpDescriptor*);
00354 static BOOL Declare();
00355 };
00356
00357
00363
00364
00365
00366
00367
00368
00369
00370
00371
00372
00373
00374
00375 class ChangePositionShadowAction : public Action
00376 {
00377
00378 CC_DECLARE_DYNCREATE(ChangePositionShadowAction)
00379
00380 public:
00381 ChangePositionShadowAction();
00382 ~ChangePositionShadowAction();
00383 virtual ActionCode Execute();
00384 static ActionCode Init( Operation* pOp,
00385 ActionList* pActionList,
00386 NodeShadowController* pThisNodeShadow,
00387 MILLIPOINT NewOffsetX,
00388 MILLIPOINT NewOffsetY,
00389 BOOL UpdateX,
00390 BOOL UpdateY,
00391 ChangePositionShadowAction** NewAction,
00392 BOOL Reverse = TRUE);
00393 protected:
00394 NodeShadowController* m_pNodeShadowCont;
00395 MILLIPOINT m_OldPositionX;
00396 MILLIPOINT m_OldPositionY;
00397 BOOL m_bUpdateX;
00398 BOOL m_bUpdateY;
00399 };
00400
00401
00407
00408
00409
00410
00411
00412
00413
00414
00415
00416
00417
00418
00419 class ChangePenumbraSizeAction : public Action
00420 {
00421
00422 CC_DECLARE_DYNCREATE(ChangePenumbraSizeAction)
00423
00424 public:
00425 ChangePenumbraSizeAction();
00426 ~ChangePenumbraSizeAction();
00427 virtual ActionCode Execute();
00428 static ActionCode Init( Operation* pOp,
00429 ActionList* pActionList,
00430 NodeShadowController* pThisNodeShadow,
00431 MILLIPOINT NewPenumbraSize,
00432 ChangePenumbraSizeAction** NewAction,
00433 BOOL bReverse = TRUE,
00434 BOOL bCache = FALSE);
00435 protected:
00436 NodeShadowController* m_pNodeShadowCont;
00437 MILLIPOINT m_OldPenumbraSize;
00438 DocRect m_LastRect;
00439 BOOL m_bCache;
00440 };
00441
00442
00448
00449
00450
00451
00452
00453
00454
00455
00456
00457
00458 class NodeShadowClick : public OpParam
00459 {
00460 CC_DECLARE_DYNCREATE(NodeShadowClick)
00461
00462 public:
00463 NodeShadowClick();
00464 NodeShadowClick(Node *p, SoftShadowTool* pTool);
00465 ~NodeShadowClick();
00466
00467 public:
00468 Node *m_pNode;
00469 SoftShadowTool* m_pTool;
00470 };
00471
00472
00473
00474
00475
00476
00477
00478
00479 class NodeShadowParam : public OpMenuParam
00480 {
00481 public:
00482 NodeShadowParam(ShadowType Type = NodeShadowController::DefaultType,
00483 double FloorShadowAngle = NodeShadowController::DefaultFloorAngle,
00484 double FloorShadowHeight = NodeShadowController::DefaultFloorHeight,
00485 INT32 OffsetX = NodeShadowController::DefaultWallOffsetX,
00486 INT32 OffsetY = NodeShadowController::DefaultWallOffsetY,
00487 INT32 Blur = NodeShadowController::DefaultBlurSize,
00488 double Darkness = NodeShadowController::DefaultDarkness,
00489 double Scale = NodeShadowController::DefaultScale,
00490 MILLIPOINT Width = NodeShadowController::DefaultGlowWidth,
00491 const CProfileBiasGain &Profile = CProfileBiasGain(),
00492 BOOL bRedraw = TRUE,
00493 MILLIPOINT FeatherWidth = NodeShadowController::DefaultFeatherWidth
00494 ) :
00495 m_Type(Type),
00496 m_FloorShadowAngle(FloorShadowAngle),
00497 m_FloorShadowHeight(FloorShadowHeight),
00498 m_OffsetX(OffsetX),
00499 m_OffsetY(OffsetY),
00500 m_Blur(Blur),
00501 m_dDarkness(Darkness),
00502 m_Scale(Scale),
00503 m_GlowWidth(Width),
00504 m_FeatherWidth(FeatherWidth),
00505 m_bRedraw(bRedraw),
00506 m_Profile(Profile)
00507 {
00508 StackPosition = STACKPOS_INSERT_TOP;
00509 pPPStack = NULL;
00510 pShadowTool = NULL;
00511 }
00512
00513 ShadowType m_Type;
00514 double m_FloorShadowAngle;
00515 double m_FloorShadowHeight;
00516 INT32 m_OffsetX;
00517 INT32 m_OffsetY;
00518 INT32 m_Blur;
00519 double m_dDarkness;
00520 double m_Scale;
00521 MILLIPOINT m_GlowWidth;
00522 MILLIPOINT m_FeatherWidth;
00523 BOOL m_bRedraw;
00524 CProfileBiasGain m_Profile;
00525
00526 INT32 StackPosition;
00527 EffectsStack* pPPStack;
00528 SoftShadowTool* pShadowTool;
00529 };
00530
00531
00532
00533
00534
00535
00536
00537
00538
00539
00540
00541 class CCAPI OpApplyAttribForShadows: public OpApplyAttribToSelected
00542 {
00543 CC_DECLARE_DYNCREATE( OpApplyAttribForShadows )
00544
00545 public:
00546 static BOOL Init();
00547
00548
00549
00550 protected:
00551
00552
00553 BOOL DoApply(Node* CurrentNode,
00554 NodeAttribute* Attrib,
00555 BOOL Mutate,
00556 BOOL InvalidateRegion,
00557 BOOL KeepExistingCols,
00558 BOOL* AttribWasRequired );
00559 };
00560
00561
00562
00563
00564
00565
00566
00567
00568
00569
00570
00571
00572 class ChangeFloorShadowHeightAction : public Action
00573 {
00574
00575 CC_DECLARE_DYNCREATE(ChangeFloorShadowHeightAction)
00576
00577 public:
00578 ChangeFloorShadowHeightAction();
00579 ~ChangeFloorShadowHeightAction();
00580 virtual ActionCode Execute();
00581 static ActionCode Init( Operation* pOp,
00582 ActionList* pActionList,
00583 NodeShadowController* pThisNodeShadow,
00584 double NewHeight,
00585 ChangeFloorShadowHeightAction** NewAction,
00586 BOOL bReverse = TRUE,
00587 BOOL bCache = FALSE);
00588 protected:
00589 NodeShadowController* m_pNodeShadowCont;
00590 double m_LastHeight;
00591 DocRect m_LastRect;
00592 BOOL m_bCache;
00593 };
00594
00595
00596
00597
00598
00599
00600
00601
00602
00603
00604
00605
00606 class ChangeFloorShadowAngleAction : public Action
00607 {
00608
00609 CC_DECLARE_DYNCREATE(ChangeFloorShadowAngleAction)
00610
00611 public:
00612 ChangeFloorShadowAngleAction();
00613 ~ChangeFloorShadowAngleAction();
00614 virtual ActionCode Execute();
00615 static ActionCode Init( Operation* pOp,
00616 ActionList* pActionList,
00617 NodeShadowController* pThisNodeShadow,
00618 INT32 NewAngle,
00619 ChangeFloorShadowAngleAction** NewAction,
00620 BOOL bReverse = TRUE,
00621 BOOL bCache = FALSE);
00622 protected:
00623 NodeShadowController* m_pNodeShadowCont;
00624 INT32 m_LastAngle;
00625 DocRect m_LastRect;
00626 BOOL m_bCache;
00627 };
00628
00629
00630
00631
00632
00633
00634
00635
00636
00637
00638
00639
00640 class ChangeShadowTypeAction : public Action
00641 {
00642
00643 CC_DECLARE_DYNCREATE(ChangeShadowTypeAction)
00644
00645 public:
00646 ChangeShadowTypeAction();
00647 ~ChangeShadowTypeAction();
00648 virtual ActionCode Execute();
00649 static ActionCode Init( Operation* pOp,
00650 ActionList* pActionList,
00651 NodeShadowController* pThisNodeShadow,
00652 ShadowType NewType,
00653 ChangeShadowTypeAction** NewAction,
00654 BOOL bReverse = TRUE);
00655 protected:
00656 NodeShadowController* m_pNodeShadowCont;
00657 ShadowType m_LastType;
00658 DocRect m_LastRect;
00659 };
00660
00666
00667
00668
00669
00670
00671
00672
00673
00674
00675
00676 class OpShadowAngle : public SelOperation
00677 {
00678 CC_DECLARE_DYNCREATE(OpShadowAngle)
00679
00680 public:
00681 OpShadowAngle();
00682 ~OpShadowAngle();
00683
00684 virtual void DoWithParam(OpDescriptor* pOp, OpParam* pParam);
00685 static OpState GetState(String_256* Description, OpDescriptor*);
00686 static BOOL Declare();
00687
00688
00689 virtual BOOL MayChangeNodeBounds() const { return FALSE; }
00690 };
00691
00692
00693
00694
00695
00696
00697
00698
00699
00700
00701 class OpShadowHeightAndAngle : public SelOperation
00702 {
00703 CC_DECLARE_DYNCREATE(OpShadowHeightAndAngle)
00704
00705 public:
00706 OpShadowHeightAndAngle();
00707 ~OpShadowHeightAndAngle();
00708
00709 virtual void DoWithParam(OpDescriptor* pOp, OpParam* pParam);
00710 static OpState GetState(String_256* Description, OpDescriptor*);
00711 static BOOL Declare();
00712 };
00713
00714
00720
00721
00722
00723
00724
00725
00726
00727
00728
00729
00730 class OpShadowHeight : public SelOperation
00731 {
00732 CC_DECLARE_DYNCREATE(OpShadowHeight)
00733
00734 public:
00735 OpShadowHeight();
00736 ~OpShadowHeight();
00737
00738 virtual void DoWithParam(OpDescriptor* pOp, OpParam* pParam);
00739 static OpState GetState(String_256* Description, OpDescriptor*);
00740 static BOOL Declare();
00741 };
00742
00748
00749
00750
00751
00752
00753
00754
00755
00756
00757
00758 class OpShadowScale : public SelOperation
00759 {
00760 CC_DECLARE_DYNCREATE(OpShadowScale)
00761
00762 public:
00763 OpShadowScale();
00764 ~OpShadowScale();
00765
00766 virtual void DoWithParam(OpDescriptor* pOp, OpParam* pParam);
00767 static OpState GetState(String_256* Description, OpDescriptor*);
00768 static BOOL Declare();
00769 };
00770
00771
00772
00773
00774
00775
00776
00777
00778
00779
00780
00781
00782 class ChangeShadowScaleAction : public Action
00783 {
00784
00785 CC_DECLARE_DYNCREATE(ChangeShadowScaleAction)
00786
00787 public:
00788 ChangeShadowScaleAction();
00789 ~ChangeShadowScaleAction();
00790 virtual ActionCode Execute();
00791 static ActionCode Init( Operation* pOp,
00792 ActionList* pActionList,
00793 NodeShadowController* pThisNodeShadow,
00794 double NewScale,
00795 ChangeShadowScaleAction** NewAction,
00796 BOOL bReverse = TRUE);
00797 protected:
00798 NodeShadowController* m_pNodeShadowCont;
00799 double m_LastScale;
00800 DocRect m_LastRect;
00801 };
00802
00803
00804
00805
00806
00807
00808
00809
00810
00811
00812
00813
00814 class SaveShadowDataAction : public Action
00815 {
00816
00817 CC_DECLARE_DYNCREATE(SaveShadowDataAction)
00818
00819 public:
00820 SaveShadowDataAction();
00821 ~SaveShadowDataAction();
00822 virtual ActionCode Execute();
00823 static ActionCode Init( Operation* pOp,
00824 ActionList* pActionList,
00825 Range &MyRange,
00826 SaveShadowDataAction** NewAction,
00827 BOOL bReverse = TRUE);
00828 protected:
00829 Range * m_pSelRange;
00830 List m_DataList;
00831 DocRect m_LastRect;
00832 };
00833
00839
00840
00841
00842
00843
00844
00845
00846 class SaveShadowDataInfo : public OpParam
00847 {
00848 public:
00849 SaveShadowDataInfo() { ID = 0; }
00850
00851 UINT32 ID;
00852 };
00853
00854
00855
00856
00857
00858
00859
00860
00861
00862 class OpSaveShadowData : public SelOperation
00863 {
00864 CC_DECLARE_DYNCREATE(OpSaveShadowData)
00865
00866 public:
00867 OpSaveShadowData();
00868 ~OpSaveShadowData();
00869
00870 virtual void DoWithParam(OpDescriptor* pOp, OpParam* pParam);
00871 static OpState GetState(String_256* Description, OpDescriptor*);
00872 static BOOL Declare();
00873
00874
00875 static BOOL SaveShadowData(UndoableOperation * pOp);
00876
00877 void GetOpName(String_256 * pString);
00878
00879
00880 virtual BOOL MayChangeNodeBounds() const { return FALSE; }
00881
00882 private:
00883 UINT32 m_OpName;
00884 };
00885
00886
00887
00888
00889
00890
00891
00892
00893
00894
00895
00896
00897 class ChangeGlowWidthAction : public Action
00898 {
00899
00900 CC_DECLARE_DYNCREATE(ChangeGlowWidthAction)
00901
00902 public:
00903 ChangeGlowWidthAction();
00904 ~ChangeGlowWidthAction();
00905 virtual ActionCode Execute();
00906 static ActionCode Init( Operation* pOp,
00907 ActionList* pActionList,
00908 NodeShadowController* pThisNodeShadow,
00909 INT32 NewWidth,
00910 ChangeGlowWidthAction** NewAction,
00911 BOOL bReverse = TRUE,
00912 BOOL bCache = FALSE);
00913 protected:
00914 NodeShadowController* m_pNodeShadowCont;
00915 INT32 m_LastWidth;
00916 DocRect m_LastRect;
00917 BOOL m_bCache;
00918 };
00919
00925
00926
00927
00928
00929
00930
00931
00932
00933
00934
00935 class OpGlowWidth : public SelOperation
00936 {
00937 CC_DECLARE_DYNCREATE(OpGlowWidth)
00938
00939 public:
00940 OpGlowWidth();
00941 ~OpGlowWidth();
00942
00943 virtual void DoWithParam(OpDescriptor* pOp, OpParam* pParam);
00944 static OpState GetState(String_256* Description, OpDescriptor*);
00945 static BOOL Declare();
00946 };
00947
00948
00949
00950
00951
00952
00953
00954
00955
00956 class ShadowProfileOpParam : public OpParam
00957 {
00958 CC_DECLARE_DYNCREATE(ShadowProfileOpParam)
00959
00960 public:
00961 ShadowProfileOpParam() { m_pTool=NULL; }
00962 ShadowProfileOpParam(CProfileBiasGain newProfile, SoftShadowTool* pTool) { Profile = newProfile; m_pTool=pTool; }
00963 ~ShadowProfileOpParam() { };
00964
00965 public:
00966 CProfileBiasGain Profile;
00967 SoftShadowTool* m_pTool;
00968 };
00969
00970
00971
00972
00973
00974
00975
00976
00977
00978
00979
00980 class OpChangeShadowProfile : public SelOperation
00981 {
00982 CC_DECLARE_DYNCREATE(OpChangeShadowProfile)
00983
00984 public:
00985 OpChangeShadowProfile();
00986 ~OpChangeShadowProfile();
00987
00988 virtual void DoWithParam(OpDescriptor* pOp, OpParam* pParam);
00989 static OpState GetState(String_256* Description, OpDescriptor*);
00990 static BOOL Declare();
00991
00992
00993 virtual BOOL MayChangeNodeBounds() const { return FALSE; }
00994 };
00995
00996
00997
00998
00999
01000
01001
01002
01003
01004
01005
01006
01007 class ChangeProfileAction : public Action
01008 {
01009
01010 CC_DECLARE_DYNCREATE(ChangeProfileAction)
01011
01012 public:
01013 ChangeProfileAction();
01014 ~ChangeProfileAction();
01015 virtual ActionCode Execute();
01016 static ActionCode Init( Operation* pOp,
01017 ActionList* pActionList,
01018 NodeShadow* pThisNodeShadow,
01019 CProfileBiasGain &Profile,
01020 ChangeProfileAction** NewAction,
01021 BOOL bReverse = TRUE,
01022 BOOL bCache = FALSE);
01023
01024 static void ChangeShadowProfileWithNoUndo (CProfileBiasGain &Profile, SoftShadowTool* pTool);
01025 protected:
01026 NodeShadow* m_pNodeShadow;
01027 CProfileBiasGain m_LastProfile;
01028 };
01029
01030
01031
01032
01033
01034
01035
01036
01037
01038 class ShadowDarknessOpParam : public OpParam
01039 {
01040 CC_DECLARE_DYNCREATE(ShadowDarknessOpParam)
01041
01042 public:
01043 ShadowDarknessOpParam() { m_dDarkness = 0; m_pTool=NULL; }
01044 ShadowDarknessOpParam(double dNewDarkness, SoftShadowTool* pTool) { m_dDarkness = dNewDarkness; m_pTool=pTool; }
01045 ~ShadowDarknessOpParam() { };
01046
01047 public:
01048 double m_dDarkness;
01049 SoftShadowTool* m_pTool;
01050 };
01051
01052
01053
01054
01055
01056
01057
01058
01059
01060
01061
01062 class OpChangeShadowDarkness : public SelOperation
01063 {
01064 CC_DECLARE_DYNCREATE(OpChangeShadowDarkness)
01065
01066 public:
01067 OpChangeShadowDarkness();
01068 ~OpChangeShadowDarkness();
01069
01070 virtual void DoWithParam(OpDescriptor* pOp, OpParam* pParam);
01071 static OpState GetState(String_256* Description, OpDescriptor*);
01072 static BOOL Declare();
01073
01074
01075 virtual BOOL MayChangeNodeBounds() const { return FALSE; }
01076 };
01077
01078
01079
01080
01081
01082
01083
01084
01085
01086
01087
01088
01089 class ChangeShadowDarknessAction : public Action
01090 {
01091
01092 CC_DECLARE_DYNCREATE(ChangeShadowDarknessAction)
01093
01094 public:
01095 ChangeShadowDarknessAction();
01096 ~ChangeShadowDarknessAction();
01097 virtual ActionCode Execute();
01098 static ActionCode Init( Operation* pOp,
01099 ActionList* pActionList,
01100 NodeShadow* pThisNodeShadow,
01101 double dDarkness,
01102 ChangeShadowDarknessAction** NewAction,
01103 BOOL bReverse = FALSE,
01104 BOOL bCache = FALSE);
01105 protected:
01106 NodeShadow* m_pNodeShadow;
01107 double m_dLastDarkness;
01108 };
01109
01110
01111
01112
01113
01114
01115
01116
01117
01118
01119
01120 #endif
01121 #endif
01122