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_OPDRBR
00102 #define INC_OPDRBR
00103
00104 #include "opfree.h"
00105 #include "brshcomp.h"
00106 #include "brpress.h"
00107
00108 class AttrBrushType;
00109 class BlendRef;
00110 class NodeBrush;
00111 class NodeBrushPath;
00112 class NodeBrushMaker;
00113 class CPathPointInfo;
00114 class DocCoord;
00115 class GRenderBrush;
00116 class ProcessPathDistance;
00117 class FreeHandTool;
00118 class BrushPointInfo;
00119 class CDistanceSampler;
00120 class CSampleData;
00121
00122
00123
00124 #define OPTOKEN_DRAWBRUSH _T("DrawBrush")
00125 #define OPTOKEN_CHANGEBRUSH _T("ChangeBrush")
00126
00127 #define OPBRUSHPOINTSCACHE
00128
00129
00130
00131
00132
00133
00134
00135
00136
00137
00138
00139 class OpDrawBrush : public OpFreeHand
00140 {
00141 CC_DECLARE_DYNCREATE(OpDrawBrush);
00142
00143 public:
00144
00145 OpDrawBrush();
00146 OpDrawBrush(FreeHandTool* pTool);
00147 ~OpDrawBrush();
00148
00149
00150 void DoDrag(DocCoord Anchor, Spread*, INT32, BrushHandle Handle, FreeHandJoinInfo* pJoinInfo, Path* ToolPath,
00151 GRenderBrush* pGRndRgn, ClickModifiers ClickMods);
00152
00153
00154
00155
00156
00157
00158
00159 virtual void DragPointerMove(DocCoord PointerPos, ClickModifiers ClickMods, Spread*, BOOL bSolidDrag);
00160 virtual void DragPointerIdle(DocCoord PointerPos, ClickModifiers ClickMods, Spread*, BOOL bSolidDrag);
00161 virtual void DragFinished( DocCoord PointerPos,
00162 ClickModifiers ClickMods,
00163 Spread*,
00164 BOOL Success, BOOL bSolidDrag);
00165
00166
00167
00168 void RenderDragBlobs( DocRect, Spread*, BOOL bSolidDrag) {}
00169
00170
00171 static BOOL Declare();
00172 static OpState GetState(String_256* Description, OpDescriptor*);
00173
00174 virtual BOOL IsBrushOp() { return TRUE;}
00175 public :
00176 BOOL SetTimeStamp(double TimeStamp);
00177
00178 static CDistanceSampler* GeneratePressureData(AttrBrushType* pAttrBrush, MILLIPOINT StartDistance,
00179 MILLIPOINT EndDistance, MILLIPOINT NewPathLength);
00180
00181 static MILLIPOINT GetCurrentLineWidthIfNotDefault();
00182 protected:
00183
00184 void ResetMembers();
00185
00186
00187 void AddPointsToPath(DocCoord Pos, Spread* pSpread);
00188
00189 virtual void SetCursorAndStatus(CursorType CurType);
00190
00191
00192 virtual BOOL ApplyAttributes(NodePath* NewPath, Document *pDocument);
00193
00194
00195 void RenderStepsForTime(double TimeSlice, Spread* pSpread);
00196
00197
00198
00199
00200 BOOL InitialisePathProcessorBrush(BrushHandle Handle, MILLIPOINT Distance = 0);
00201 BOOL InitialiseProcessPathDistance();
00202 BOOL InitialisePressureCache();
00203
00204 AttrBrushType* CreateNewAttribute();
00205
00206 virtual BOOL EditBrushLists(NodePath* pNewPath, INT32 FirstChangedIndex, INT32 NumElements);
00207
00208
00209 BOOL EditTimeStampList(NodePath* pNewPath, INT32 FirstChangedIndex, INT32 NumElements);
00210
00211
00212 BOOL EditPressureList(NodePath* pNewPath, INT32 FirstChangedIndex, INT32 NumElements);
00213
00214 virtual BOOL SimpleJoinBrush(NodePath* pNewNodePath, Path* pNewPath);
00215 virtual BOOL ReverseBrushPressure();
00216
00217
00218 protected:
00219 BOOL InitialiseTimeStampList();
00220 void RenderTimeStamp();
00221
00222 BOOL InitialisePressureSampler();
00223
00224 BOOL ApplyRetroSmoother(NodePath* pNodePath, double SmoothAmount);
00225
00226
00227 BOOL RetroSmoothBrush(NodePath* pNewNodePath);
00228
00229 protected:
00230 MILLIPOINT m_BrushSpacing;
00231 MILLIPOINT m_LastSpacing;
00232 MILLIPOINT m_DistanceSinceLastObject;
00233 MILLIPOINT m_LastDistanceRendered;
00234 DocCoord m_LastPoint;
00235 DocCoord m_StartPoint;
00236 DocCoord m_LastPointRendered;
00237 INT32 m_NumBrushObjects;
00238
00239 UINT32 m_NumInkObjects;
00240 UINT32 m_LastInkObjectRendered;
00241
00242 double m_BrushScaling;
00243
00244 GRenderBrush* m_pGRenderBrush;
00245 PathProcessorBrush* m_pPathProcBrush;
00246
00247
00248 BrushDefinition* m_pBrushDefinition;
00249
00250 BOOL mustClearStatusBar;
00251 Application* pApp;
00252
00253
00254 ProcessPathDistance* m_pProcPathDistance;
00255 FreeHandTool* m_pTool;
00256
00257 BOOL m_bFirstPointRendered;
00258
00259 MILLIPOINT m_FirstSpacing;
00260
00261 INT32 m_LastPathIndexRendered;
00262
00263 #ifdef OPBRUSHPOINTSCACHE
00264 PointsMap* m_pPointsCache;
00265 #endif
00266
00267 protected:
00268
00269 double m_TimeStamp;
00270 double m_LastTimeStamp;
00271 TimeStampList* m_pTimeStampList;
00272 MonotonicTime m_Timer;
00273
00274 protected:
00275
00276
00277 PressureList* m_pPressureList;
00278
00279
00280 CDistanceSampler* m_pPressureSampler;
00281
00282 UINT32 m_NumPressureVals;
00283 private:
00284
00285
00286 };
00287
00288 enum ChangeBrushType { CHANGEBRUSH_NONE,
00289 CHANGEBRUSH_SPACING,
00290 CHANGEBRUSH_SPACING_MAXRAND,
00291 CHANGEBRUSH_SPACING_RANDSEED,
00292 CHANGEBRUSH_SPACING_INCRPROP,
00293 CHANGEBRUSH_SPACING_INCRCONST,
00294 CHANGEBRUSH_SCALING,
00295 CHANGEBRUSH_SCALING_INCR,
00296 CHANGEBRUSH_SCALING_INCRCONST,
00297 CHANGEBRUSH_SCALING_MAXRAND,
00298 CHANGEBRUSH_SCALING_RANDSEED,
00299 CHANGEBRUSH_SCALING_PRESSURE,
00300 CHANGEBRUSH_OFFSET_TYPE,
00301 CHANGEBRUSH_OFFSET_TYPE_SEED,
00302 CHANGEBRUSH_OFFSET_VAL,
00303 CHANGEBRUSH_OFFSET_INCRPROP,
00304 CHANGEBRUSH_OFFSET_INCRCONST,
00305 CHANGEBRUSH_OFFSET_MAXRAND,
00306 CHANGEBRUSH_OFFSET_VALSEED,
00307 CHANGEBRUSH_OFFSET_SEEDS,
00308 CHANGEBRUSH_TILED,
00309 CHANGEBRUSH_TANGENTIAL,
00310 CHANGEBRUSH_ROTATE_ANGLE,
00311 CHANGEBRUSH_ROTATE_INCRPROP,
00312 CHANGEBRUSH_ROTATE_INCRCONST,
00313 CHANGEBRUSH_ROTATE_MAXRAND,
00314 CHANGEBRUSH_ROTATE_RANDSEED,
00315 CHANGEBRUSH_ROTATE_PRESSURE,
00316 CHANGEBRUSH_NAME,
00317 CHANGEBRUSH_USELOCALFILLCOL,
00318 CHANGEBRUSH_USELOCALTRANSP,
00319 CHANGEBRUSH_USENAMEDCOL,
00320 CHANGEBRUSH_REGEN,
00321 CHANGEBRUSH_SEQUENCE,
00322 CHANGEBRUSH_SEQUENCE_RANDSEED,
00323 CHANGEBRUSH_TIMESTAMP,
00324 CHANGEBRUSH_HUE_INCR,
00325 CHANGEBRUSH_HUE_MAXRAND,
00326 CHANGEBRUSH_FILL_SEEDS,
00327 CHANGEBRUSH_SAT_MAXRAND,
00328 CHANGEBRUSH_SAT_RANDSEED,
00329 CHANGEBRUSH_TRANSP,
00330 CHANGEBRUSH_TRANSP_PRESSURE,
00331 CHANGEBRUSH_ALL
00332 };
00333
00334
00335
00336
00337
00338
00339
00340
00341
00342
00343
00344
00345
00346 class OpChangeBrush : public SelOperation
00347 {
00348 CC_DECLARE_DYNCREATE(OpChangeBrush);
00349
00350 public:
00351
00352 OpChangeBrush();
00353
00354 ~OpChangeBrush() {}
00355
00356
00357 static BOOL Declare();
00358 static OpState GetState(String_256* Description, OpDescriptor*);
00359
00360
00361 virtual void DoWithParam(OpDescriptor*,OpParam* pOpParam);
00362 virtual void GetOpName(String_256* OpName);
00363
00364 protected:
00365 BOOL ChangeLineWidth(const double &PropChange, NodeRenderableInk* pInk);
00366
00367
00368 private:
00369 ChangeBrushType ChangeType;
00370 };
00371
00372
00373
00374
00375
00376
00377
00378
00379
00380
00381
00382
00383 class ChangeBrushOpParam : public OpParam
00384 {
00385
00386 CC_DECLARE_DYNAMIC(ChangeBrushOpParam)
00387
00388 public:
00389 ChangeBrushOpParam();
00390 ChangeBrushOpParam(const ChangeBrushOpParam& Other);
00391 ~ChangeBrushOpParam() {}
00392
00393 void InitMembers();
00394 BOOL ChangeLineWidth();
00395
00396 public:
00397 virtual void SetOldValues(AttrBrushType* pBrushedNode);
00398 virtual void SetNewValues(AttrBrushType* pBrushedNode);
00399 virtual ChangeBrushOpParam operator=(const ChangeBrushOpParam& Other);
00400
00401 void SwapOldAndNew();
00402 void SwapDouble(double &First, double &Second);
00403 void SwapUINT(UINT32 &First, UINT32 &Second);
00404 void SwapINT32(INT32 &First, INT32 &Second);
00405 void SwapBOOL(BOOL &First, BOOL &Second);
00406 void SetValues(BrushData Data);
00407
00408 ChangeBrushType ChangeType;
00409
00410 MILLIPOINT m_OldSpacing;
00411 MILLIPOINT m_NewSpacing;
00412 double m_NewSpacingIncrProp;
00413 double m_OldSpacingIncrProp;
00414 MILLIPOINT m_NewSpacingIncrConst;
00415 MILLIPOINT m_OldSpacingIncrConst;
00416 PressureArray* m_pPressure;
00417 UINT32 m_OldSpacingMaxRand;
00418 UINT32 m_NewSpacingMaxRand;
00419 UINT32 m_NewSpacingRandSeed;
00420 UINT32 m_OldSpacingRandSeed;
00421 double m_OldScaling;
00422 double m_NewScaling;
00423 double m_NewScalingIncr;
00424 double m_OldScalingIncr;
00425 double m_NewScalingIncrConst;
00426 double m_OldScalingIncrConst;
00427 UINT32 m_NewScalingMaxRand;
00428 UINT32 m_OldScalingMaxRand;
00429 UINT32 m_NewScalingRandSeed;
00430 UINT32 m_OldScalingRandSeed;
00431 UINT32 m_OldScalingMaxPressure;
00432 UINT32 m_NewScalingMaxPressure;
00433 PathOffset m_OldPathOffsetType;
00434 PathOffset m_NewPathOffsetType;
00435 UINT32 m_NewOffsetTypeRandSeed;
00436 UINT32 m_OldOffsetTypeRandSeed;
00437 MILLIPOINT m_OldPathOffsetVal;
00438 MILLIPOINT m_NewPathOffsetVal;
00439 double m_NewOffsetIncrProp;
00440 double m_OldOffsetIncrProp;
00441 MILLIPOINT m_NewOffsetIncrConst;
00442 MILLIPOINT m_OldOffsetIncrConst;
00443 UINT32 m_NewOffsetValMaxRand;
00444 UINT32 m_OldOffsetValMaxRand;
00445 UINT32 m_NewOffsetValRandSeed;
00446 UINT32 m_OldOffsetValRandSeed;
00447 BOOL m_bOldTiled;
00448 BOOL m_bNewTiled;
00449 BOOL m_bOldRotated;
00450 BOOL m_bNewRotated;
00451 double m_OldRotateAngle;
00452 double m_NewRotateAngle;
00453 double m_OldRotationIncrProp;
00454 double m_NewRotationIncrProp;
00455 double m_OldRotationIncrConst;
00456 double m_NewRotationIncrConst;
00457 UINT32 m_NewRotateMaxRand;
00458 UINT32 m_OldRotateMaxRand;
00459 UINT32 m_NewRotateRandSeed;
00460 UINT32 m_OldRotateRandSeed;
00461 UINT32 m_NewRotationMaxPressure;
00462 UINT32 m_OldRotationMaxPressure;
00463 String_32 m_OldBrushName;
00464 String_32 m_NewBrushName;
00465 BOOL m_bOldUseLocalFillColour;
00466 BOOL m_bNewUseLocalFillColour;
00467 BOOL m_bNewUseLocalTransp;
00468 BOOL m_bOldUseLocalTransp;
00469 BOOL m_bOldUseNamed;
00470 BOOL m_bNewUseNamed;
00471 SequenceType m_OldSequenceType;
00472 SequenceType m_NewSequenceType;
00473 UINT32 m_NewSequenceRandSeed;
00474 UINT32 m_OldSequenceRandSeed;
00475 double m_NewHueIncrement;
00476 double m_OldHueIncrement;
00477 UINT32 m_NewHueMaxRand;
00478 UINT32 m_OldHueMaxRand;
00479 UINT32 m_NewHueRandSeed;
00480 UINT32 m_OldHueRandSeed;
00481 UINT32 m_NewSatMaxRand;
00482 UINT32 m_OldSatMaxRand;
00483 UINT32 m_NewSatRandSeed;
00484 UINT32 m_OldSatRandSeed;
00485 INT32 m_NewTransp;
00486 INT32 m_OldTransp;
00487 UINT32 m_NewTranspPressure;
00488 UINT32 m_OldTranspPressure;
00489
00490 double m_OldTimeStampValue;
00491 double m_NewTimeStampValue;
00492 };
00493
00494
00495
00496
00497
00498
00499
00500
00501
00502
00503
00504
00505
00506
00507 class ChangeBrushAction : public Action
00508 {
00509
00510 CC_DECLARE_DYNCREATE(ChangeBrushAction)
00511
00512 public:
00513 ChangeBrushAction();
00514 ~ChangeBrushAction();
00515 virtual ActionCode Execute();
00516 static ActionCode Init( Operation* pOp,
00517 ActionList* pActionList,
00518 NodeRenderableInk* pBrushedNode,
00519 ChangeBrushOpParam* pChangeParam,
00520 ChangeBrushAction** NewAction);
00521
00522 BOOL ChangeSelectionNoUndo(ChangeBrushOpParam* pParam);
00523 protected:
00524 static AttrBrushType* GetAttrBrush(NodeRenderableInk* pInk);
00525 static BOOL ChangeBrush(ChangeBrushOpParam* pOpParam, AttrBrushType* pAttrBrush);
00526
00527
00528 static BOOL ChangeBrushSpacing(MILLIPOINT NewSpacing, PressureArray* pArray, AttrBrushType* pAttrBrush);
00529 static BOOL ChangeSpacingIncrProp(double NewIncr, PressureArray* pArray, AttrBrushType* pAttrBrush);
00530 static BOOL ChangeSpacingIncrConst(MILLIPOINT NewIncr, PressureArray* pArray, AttrBrushType* pAttrBrush);
00531 static BOOL ChangeBrushScaling(double NewScaling, AttrBrushType* pAttrBrush);
00532 static BOOL ChangeScalingRandSeed(UINT32 NewSeed, AttrBrushType* pAttrBrush);
00533 static BOOL ChangeScalingIncr(double NewIncr, AttrBrushType* pAttrBrush);
00534 static BOOL ChangeScalingIncrConst(double NewIncr, AttrBrushType* pAttrBrush);
00535 static BOOL ChangeScalingMaxRand(UINT32 NewMax, AttrBrushType* pAttrBrush);
00536 static BOOL ChangeScalingPressure(UINT32 Pressure, AttrBrushType* pAttrBrush);
00537 static BOOL ChangeTangential(BOOL bRotate, AttrBrushType* pAttrBrush);
00538 static BOOL ChangeRotation(double NewAngle, AttrBrushType* pAttrBrush);
00539 static BOOL ChangeRotationIncrProp(double Incr, AttrBrushType* pAttrBrush);
00540 static BOOL ChangeRotationIncrConst(double Incr, AttrBrushType* pAttrBrush);
00541 static BOOL ChangeRotationRandSeed(UINT32 NewSeed, AttrBrushType* pAttrBrush);
00542 static BOOL ChangeRotationMaxRand(UINT32 NewMax, AttrBrushType* pAttrBrush);
00543 static BOOL ChangeRotationMaxPressure(UINT32 Pressure, AttrBrushType* pAttrBrush);
00544 static BOOL ChangeOffsetValue(MILLIPOINT NewOffset, AttrBrushType* pAttrBrush);
00545 static BOOL ChangeOffsetType(PathOffset NewOffset, AttrBrushType* pAttrBrush);
00546 static BOOL ChangeOffsetTypeSeed(UINT32 NewSeed, AttrBrushType* pAttrBrush);
00547 static BOOL ChangeOffsetIncrProp(double NewIncrProp, AttrBrushType* pAttrBrush);
00548 static BOOL ChangeOffsetIncrConst(MILLIPOINT NewIncrConst, AttrBrushType* pAttrBrush);
00549 static BOOL ChangeOffsetValMaxRand(UINT32 NewMax, AttrBrushType* pAttrBrush);
00550 static BOOL ChangeOffsetValRandSeed(UINT32 NewSeed, AttrBrushType* pAttrBrush);
00551 static BOOL ChangeOffsetSeeds(UINT32 NewTypeSeed, UINT32 NewOffsetSeed, AttrBrushType* pAttrBrush);
00552 static BOOL ChangeBrushTile(BOOL bTile, AttrBrushType* pAttrBrush);
00553 static BOOL ChangeSpacingMaxRand(UINT32 NewMaxRand, AttrBrushType* pAttrBrush);
00554 static BOOL ChangeSpacingRandSeed(UINT32 NewSeed, AttrBrushType* pAttrBrush);
00555 static BOOL ChangeUseLocalFillColour(BOOL bUseLocal, AttrBrushType* pAttrBrush);
00556 static BOOL ChangeUseLocalTransp(BOOL bUseLocal, AttrBrushType* pAttrBrush);
00557 static BOOL ChangeUseNamedColour(BOOL bUse, AttrBrushType* pAttr);
00558 static BOOL ChangeSequenceType(SequenceType SeqType, AttrBrushType* pAttrBrush);
00559 static BOOL ChangeSequenceSeed(UINT32 NewSeed, AttrBrushType* pAttrBrush);
00560 static BOOL ChangeAll(ChangeBrushOpParam* pParam, AttrBrushType* pAttrBrush);
00561 static BOOL ChangeHueIncrement(double NewIncr, AttrBrushType* pAttrBrush);
00562 static BOOL ChangeHueMaxRand (UINT32 Rand, AttrBrushType* pAttrBrush);
00563 static BOOL ChangeFillSeeds (UINT32 HueSeed, UINT32 SatSeed, AttrBrushType* AttrBrush);
00564 static BOOL ChangeSatMaxRand (UINT32 Rand, AttrBrushType* pAttrBrush);
00565 static BOOL ChangeSatRandSeed (UINT32 Seed, AttrBrushType* pAttrBrush);
00566 static BOOL ChangeTransparency(INT32 Transp, AttrBrushType* pAttrBrush);
00567 static BOOL ChangeTranspPressure(UINT32 Press, AttrBrushType* pAttrBrush);
00568
00569 BOOL ChangeLineWidthChildNoUndo(double PropChange, NodeRenderableInk* pInk);
00570
00571 protected:
00572 NodeRenderableInk* m_pBrushedNode;
00573 ChangeBrushOpParam m_ChangeParam;
00574 };
00575
00576
00577
00578
00579
00580
00581
00582
00583
00584
00585
00586
00587
00588 class RemoveTimeStampPointsAction : public Action
00589 {
00590 CC_DECLARE_DYNCREATE(RemoveTimeStampPointsAction)
00591
00592 public:
00593 RemoveTimeStampPointsAction();
00594 ~RemoveTimeStampPointsAction();
00595 virtual ActionCode Execute();
00596 static ActionCode Init( Operation* pOp,
00597 ActionList* pActionList,
00598 AttrBrushType* pAttrBrush,
00599 MILLIPOINT StartDistance,
00600 MILLIPOINT EndDistance,
00601 TimeStampList* pPointsList,
00602 RemoveTimeStampPointsAction** NewAction);
00603
00604 public:
00605 TimeStampList* m_pTimeStampList;
00606 AttrBrushType* m_pAttrBrush;
00607 MILLIPOINT m_StartDistance;
00608 MILLIPOINT m_EndDistance;
00609
00610 };
00611
00612
00613
00614
00615
00616
00617
00618
00619
00620
00621
00622
00623
00624 class AddTimeStampPointsAction : public Action
00625 {
00626 CC_DECLARE_DYNCREATE(AddTimeStampPointsAction)
00627
00628 public:
00629 AddTimeStampPointsAction();
00630 ~AddTimeStampPointsAction();
00631 virtual ActionCode Execute();
00632 static ActionCode Init( Operation* pOp,
00633 ActionList* pActionList,
00634 AttrBrushType* pAttrBrush,
00635 TimeStampList* pNewPoints,
00636 MILLIPOINT StartDistance,
00637 MILLIPOINT EndDistance,
00638 size_t NumPoints,
00639 AddTimeStampPointsAction** NewAction);
00640 public:
00641 AttrBrushType* m_pAttrBrush;
00642 TimeStampList* m_pTimeStampList;
00643 MILLIPOINT m_StartDistance;
00644 MILLIPOINT m_EndDistance;
00645 size_t m_NumPoints;
00646 };
00647
00648
00649
00650
00651
00652
00653
00654
00655
00656
00657
00658
00659
00660
00661
00662
00663
00664
00665
00666
00667 class UpdateBrushAction : public Action
00668 {
00669 CC_DECLARE_DYNCREATE(UpdateBrushAction)
00670
00671 public:
00672 UpdateBrushAction();
00673 ~UpdateBrushAction();
00674
00675 virtual ActionCode Execute();
00676 static ActionCode Init( Operation* pOp,
00677 ActionList* pActionList,
00678 NodePath* pNodePath,
00679 UpdateBrushAction** NewAction);
00680
00681 public:
00682 NodePath* m_pNodePath;
00683
00684
00685 };
00686
00687
00688
00689
00690
00691
00692
00693
00694
00695
00696
00697
00698
00699
00700
00701
00702
00703
00704
00705
00706
00707
00708 class SetTimeStampUpdateTypeAction : public Action
00709 {
00710 CC_DECLARE_DYNCREATE(SetTimeStampUpdateTypeAction)
00711
00712 public:
00713 SetTimeStampUpdateTypeAction();
00714 ~SetTimeStampUpdateTypeAction();
00715
00716 virtual ActionCode Execute();
00717 static ActionCode Init( Operation* pOp,
00718 ActionList* pActionList,
00719 AttrBrushType* pAttrBrush,
00720 NodePath* pNodePath,
00721 ListUpdateType TypeToSet,
00722 SetTimeStampUpdateTypeAction** NewAction);
00723
00724 public:
00725 NodePath* m_pNodePath;
00726 AttrBrushType* m_pAttrBrush;
00727 ListUpdateType m_TypeToSet;
00728
00729 };
00730
00731
00732
00733
00734
00735
00736
00737
00738
00739
00740
00741
00742
00743 class RemovePressurePointsAction : public Action
00744 {
00745 CC_DECLARE_DYNCREATE(RemovePressurePointsAction)
00746
00747 public:
00748 RemovePressurePointsAction();
00749 ~RemovePressurePointsAction();
00750 virtual ActionCode Execute();
00751 static ActionCode Init( Operation* pOp,
00752 ActionList* pActionList,
00753 AttrBrushType* pAttrBrush,
00754 UINT32 StartIndex,
00755 UINT32 NumPoints,
00756 CSampleData* pSampler,
00757 RemovePressurePointsAction** NewAction);
00758
00759 public:
00760 CSampleData* m_pPressureSampler;
00761 AttrBrushType* m_pAttrBrush;
00762 MILLIPOINT m_StartIndex;
00763 MILLIPOINT m_NumPoints;
00764
00765 };
00766
00767
00768
00769
00770
00771
00772
00773
00774
00775
00776
00777
00778
00779 class AddPressurePointsAction : public Action
00780 {
00781 CC_DECLARE_DYNCREATE(AddPressurePointsAction)
00782
00783 public:
00784 AddPressurePointsAction();
00785 ~AddPressurePointsAction();
00786 virtual ActionCode Execute();
00787 static ActionCode Init( Operation* pOp,
00788 ActionList* pActionList,
00789 AttrBrushType* pAttrBrush,
00790 CSampleData* pNewPoints,
00791 UINT32 StartIndex,
00792 size_t NumPoints,
00793 AddPressurePointsAction** NewAction);
00794 public:
00795 AttrBrushType* m_pAttrBrush;
00796 CSampleData* m_pPressureSampler;
00797 MILLIPOINT m_StartIndex;
00798 size_t m_NumPoints;
00799 };
00800
00801 #endif