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_CAMFILTER
00102 #define INC_CAMFILTER
00103
00104 #include "filters.h"
00105 #include "ccfile.h"
00106 #include "doccoord.h"
00107 #include "node.h"
00108
00109 class CXaraFile;
00110 class CXaraFileRecord;
00111 class CXaraFileRecordHandler;
00112 class Node;
00113 class DocColour;
00114 class KernelBitmap;
00115 class ColourListComponent;
00116 class BitmapListComponent;
00117 class UnitListComponent;
00118 class DocInfoComponent;
00119 class ViewComponent;
00120 class FontComponent;
00121 class PrintComponent;
00122 class Progress;
00123 class WebPrefsDlgParam;
00124 class CCPanose;
00125 class BitmapSource;
00126 class NodePath;
00127 class TextStory;
00128 class NodeGroup;
00129
00130 class AtomicTagList;
00131 class InsertLevelStack;
00132 class EssentialTagList;
00133 class TagDescriptionList;
00134 class AtomicTagListItem;
00135 class EssentialTagListItem;
00136 class TagDescriptionListItem;
00137 class CXaraFilePathRecordRefList;
00138
00139
00140
00141 class CXaraFileNodeGroupRefList;
00142
00143 #define EXPORT_FILETYPE_WEB "CXW" // The .web format
00144 #define EXPORT_FILETYPE_MIN "CXM" // The minimal web format
00145 #define EXPORT_FILETYPE_NATIVE "CXN" // The native format
00146
00147 typedef enum
00148 {
00149 INSERTMODE_ATTACHTOTREE,
00150 INSERTMODE_SETCURRENTATTRIBUTE
00151 } InsertMode;
00152
00153
00154 typedef enum
00155 {
00156 BWL_NONE = 0,
00157 BWL_COMPOUND,
00158 BWL_ALL
00159 } BoundsWriteLevel;
00160
00161
00162
00163
00164
00165
00166
00167
00168
00169
00170
00171
00172
00173
00174
00175
00176
00177
00178
00179
00180
00181 typedef struct
00182 {
00183 Node *pContextNode;
00184 BOOL InsertAsChild;
00185 } InsertTreeContext;
00186
00187
00188
00189
00190
00191
00192
00193
00194
00195
00196
00197
00198
00199
00200
00201 class BaseCamelotFilter : public VectorFilter
00202 {
00203
00204 CC_DECLARE_DYNAMIC(BaseCamelotFilter);
00205
00206 public:
00207
00208 BaseCamelotFilter();
00209 ~BaseCamelotFilter();
00210 virtual BOOL Init();
00211 virtual void Deinit();
00212
00213
00214
00215
00216 static BOOL SkipToPreviewBitmap(CCLexFile * pFile, BOOL *IsNewNativeFile, UINT32 * pFilterId = NULL);
00217
00218
00219
00220 static BOOL SkipToIndexInformation(CCLexFile * pFile, String_256 *pString, BOOL *IsNewNativeFile);
00221
00222
00223
00224
00225
00226 virtual INT32 HowCompatible( PathName& Filename, ADDR HeaderStart, UINT32 HeaderSize,
00227 UINT32 FileSize );
00228
00229 virtual INT32 HowCompatibleIsFileType(char* pFileType) = 0;
00230
00231
00232
00233 virtual BOOL DoExport(Operation*, CCLexFile*, PathName*, Document*, BOOL);
00234
00235
00236 virtual BOOL DoImport(SelOperation*, CCLexFile*, Document*,
00237 BOOL AutoChosen = FALSE, ImportPosition *Pos = NULL,
00238 KernelBitmap** ppImportedBitmap = NULL,
00239 DocCoord* pPosTranslate = NULL, String_256* = NULL);
00240
00241 virtual BOOL IsWebFilter() = 0;
00242 virtual BOOL IsCompactNativeFilter() = 0;
00243
00244 virtual BOOL IsImporting();
00245 virtual BOOL IsImportingAtPosition();
00246
00247 virtual BOOL IsDefaultDocRequired(const TCHAR* pcszPathName);
00248
00249 virtual INT32 GetMaxPathLookUp();
00250
00251 static BOOL WritePathsInRelativeFormat() { return WriteRelativePaths; }
00252
00253
00254 INT32 StartRecord(UINT32 Tag,INT32 Size);
00255 INT32 StartStreamedRecord(UINT32 Tag,INT32 Size);
00256 BOOL EndRecord();
00257 BOOL EndStreamedRecord();
00258
00259
00260 UINT32 GetRecordTag();
00261 INT32 GetRecordNum();
00262
00263 void SetCoordOrigin(const DocCoord& Origin);
00264 DocCoord GetCoordOrigin();
00265
00266 BOOL Write(BYTE b);
00267 BOOL Write(UINT32 n);
00268 BOOL Write(INT32 n);
00269 BOOL Write(const DocCoord& Coord);
00270 BOOL Write(TCHAR* pStr);
00271 BOOL Write(BYTE* pBuf,UINT32 BufSize);
00272 BOOL Write(FLOAT f);
00273
00274 BOOL WriteWCHAR(WCHAR w);
00275
00276 BOOL WriteASCII(TCHAR* pStr);
00277 BOOL WriteUnicode(TCHAR* pStr);
00278 BOOL WriteZeroSizedRecord(UINT32 Tag);
00279
00280 UINT32 Write(CXaraFileRecord* pRecord);
00281 UINT32 WriteDefinitionRecord(CXaraFileRecord* pRecord);
00282
00283 BOOL WriteCCPanose(const CCPanose & Panose);
00284 INT32 WriteFontDefinition(WORD FontHandle, BOOL IsBold, BOOL IsItalic);
00285
00286 BOOL WriteBitmapSource(const BitmapSource& Source, UINT32 Height);
00287
00288 INT32 WriteRecord(DocColour* pDocColour);
00289 INT32 WriteRecord(KernelBitmap* pBitmap);
00290
00291 ColourListComponent* GetColourDocComponent() { return pColComponent; }
00292 BitmapListComponent* GetBitmapDocComponent() { return pBmpComponent; }
00293 UnitListComponent* GetUnitDocComponent() { return pUnitsComponent; }
00294 DocInfoComponent* GetDocInfoComponent() { return pInfoComponent; }
00295 ViewComponent* GetViewDocComponent() { return pViewComponent; }
00296 PrintComponent* GetPrintComponent() { return pPrintComponent; }
00297 FontComponent* GetFontComponent() { return pFontComponent; }
00298
00299 FilePos GetFilePos();
00300 UINT32 GetNumBytesWritten();
00301
00302 virtual Document* GetDocument() { return TheDocument; }
00303 virtual Spread* GetSpread() { return pTheSpread; }
00304
00305 virtual void GotError(UINT32 errorID);
00306 virtual void GotError( UINT32 errorID , const TCHAR* errorString);
00307
00308
00309 virtual void EndOfFile() { EndOfFileFlag = TRUE; }
00310 virtual void SetTotalNumBytesToRead(UINT32 s);
00311
00312 virtual BOOL InvalidateRegion(Node* pNode);
00313
00314
00315
00316
00317 virtual UINT32 GetCurrentRecordSize();
00318
00319
00320 virtual BOOL InsertNode(Node* pNode);
00321 virtual BOOL IncInsertLevel();
00322 virtual BOOL DecInsertLevel();
00323 virtual Node* GetInsertContextNode();
00324 virtual void SetInsertContextNode(Node* pNode);
00325 virtual void InsertNextNodeAsChild();
00326 virtual void InsertNextNodeAsSibling();
00327
00328
00329 virtual InsertTreeContext *GetInsertContext(void);
00330 virtual void RestoreInsertContext(InsertTreeContext *pOldState);
00331
00332
00333 virtual BOOL IncProgressBarCount(UINT32 n);
00334 virtual UINT32 GetProgressBarCount() { return ProgressBarCount; }
00335 virtual BOOL SetTotalProgressBarCount(UINT32 n);
00336
00337 static List* GetRecordHandlers() { return &RecordHandlerList; }
00338
00339 virtual WebPrefsDlgParam* GetCachedExportOptions() { return pPrefs; }
00340
00341
00342 BOOL UnrecognisedTag(UINT32 Tag);
00343
00344 BOOL MergeSameNamedLayers();
00345
00346 private:
00347 void UpdateLastSafeToRenderNode(Node* pNode);
00348
00349 Node* pLastUnsafeToRenderNode;
00350
00351
00352 BOOL IsThisASelectedTemplate ( Node *pNode );
00353
00354 protected:
00355
00356
00357 void AppendIgnoredDataWarning(UINT32 Tag);
00358 void UnkownEssentialDataError(UINT32 Tag);
00359
00360 public:
00361
00362
00363 void AppendWarning(UINT32 WarningId);
00364
00365
00366 public:
00367 virtual BOOL WriteNodes(Node* pNode);
00368 virtual BOOL WriteNodeAndSubNodes (Node* pNode);
00369
00370 private:
00371 String_256 IgnoredDataString;
00372 String_256 WarningsString;
00373
00374 public:
00375 virtual BOOL ReadPostChildren(Node* pNode);
00376 virtual BOOL ReadFileUntil(INT32 tag);
00377
00378 protected:
00379
00380 virtual BOOL StartProgressBar(String_64* pMessage);
00381 virtual void EndProgressBar();
00382
00383 virtual void ResetImportExportVars();
00384 virtual BOOL PrepareImportExportVars();
00385
00386 virtual CXaraFile* CreateCXaraFile();
00387 virtual BaseCamelotFilter* CreateNULLFilter(Document* pDocument) = 0;
00388
00389
00390 virtual BOOL PrepareToExport(CCLexFile* pFile);
00391 virtual void CleanUpAfterExport(BOOL Success);
00392
00393 virtual BOOL FindDocComponents();
00394 virtual BOOL StartExportDocComponents(BOOL BeforeCompression);
00395 virtual BOOL EndExportDocComponents(BOOL Success);
00396
00397 virtual BOOL BeginDocumentExport();
00398 virtual BOOL EndDocumentExport();
00399
00400 virtual Node* GetExportNode();
00401
00402 virtual BOOL WriteDocument(Operation * pExportOp);
00403 virtual BOOL WritePreChildren(Node* pNode);
00404 virtual BOOL CanWriteChildren(Node* pNode);
00405 virtual BOOL WritePostChildren(Node* pNode);
00406 virtual BOOL WriteBeginChildRecords(Node* pNode);
00407 virtual BOOL WriteEndChildRecords(Node* pNode);
00408 virtual BOOL WriteCurrentAttributes();
00409
00410
00411
00412 virtual BOOL WriteSelectedNodes (Operation * pExportOp, Node * pNode, SelRange * pSelection);
00413 virtual BOOL WriteSelectedLayerAndNodes (Operation * pExportOp, Node * pNode, SelRange * pSelection);
00414
00415 virtual BOOL WriteHeader();
00416
00417
00418 virtual BOOL GetExportOptions( WebPrefsDlgParam *pPrefs );
00419 virtual OpDescriptor* GetDialogueOp ( void );
00420
00421
00422 WebPrefsDlgParam *pPrefs;
00423
00424
00425 virtual BOOL ExportPreviewBitmap(CCLexFile* pFile, Operation* pOp,
00426 PathName* pPath, Document* pDoc);
00427
00428
00429 virtual BOOL CorrectFileHeader(CCLexFile* pFile);
00430
00431
00432 virtual UINT32 CalcExportSize(Document* pDocument);
00433
00434
00435 static BOOL CreateRecordHandlers();
00436 static void DestroyRecordHandlers();
00437 BOOL InitRecordHandlers();
00438 BOOL DeinitRecordHandlers();
00439
00440 virtual BOOL PrepareToImport(CCLexFile* pFile);
00441 virtual void CleanUpAfterImport(BOOL Successful);
00442 virtual BOOL PrepareTreeBuilding();
00443 virtual void CleanUpTreeBuilding();
00444
00445 virtual BOOL EnsureFrameLayerIntegrity(Spread* pSpread);
00446 virtual BOOL EnsureLayerIntegrity(Spread* pSpread);
00447
00448 virtual BOOL StartImportDocComponents();
00449 virtual BOOL EndImportDocComponents(BOOL Successful);
00450
00451 virtual BOOL ReadFile();
00452
00453 public:
00454
00455 virtual char* GetExportFileType() = 0;
00456 virtual void SetImportFileType(char* pFileType);
00457 virtual BOOL IsOpeningMinimalWebFormat();
00458
00459 private:
00460 char ImportFileType[4];
00461
00462 protected:
00463
00464 UINT32 FilterNameID;
00465 UINT32 FilterInfoID;
00466
00467
00468
00469
00470 UINT32 ExportingMsgID;
00471
00472
00473 UINT32 BadFileMsgID;
00474
00475
00476
00477 FilePos FileStart;
00478 FilePos FileEnd;
00479
00480
00481 FilePos FileHeaderRecord;
00482
00483
00484 UINT32 FileSize;
00485
00486
00487 INT32 CompressionType;
00488 BOOL CompressionOn;
00489
00490 virtual BOOL SetFileCompressionState(BOOL NewState);
00491 virtual BOOL GetFileCompressionState();
00492
00493 double FileVersionNumber;
00494 double BuildVersionNumber;
00495
00496
00497 BOOL EndOfFileFlag;
00498 BOOL EscapePressed;
00499
00500
00501 Node* pInsertContextNode;
00502 BOOL InsertNextAsChild;
00503 UINT32 InsertLevel;
00504 InsertLevelStack* pInsertLevelStack;
00505
00506
00507 CXaraFile* pCXaraFile;
00508
00509 ColourListComponent* pColComponent;
00510 BitmapListComponent* pBmpComponent;
00511 UnitListComponent* pUnitsComponent;
00512 DocInfoComponent* pInfoComponent;
00513 ViewComponent* pViewComponent;
00514 PrintComponent* pPrintComponent;
00515 FontComponent* pFontComponent;
00516
00517 Spread* pTheSpread;
00518
00519
00520 static List RecordHandlerList;
00521 static BOOL RecordHandlersCreated;
00522
00523 struct
00524 {
00525 SelOperation* pOp;
00526 ImportPosition* pPos;
00527 } ImportInfo;
00528
00529 public:
00530
00531
00532
00533 SelOperation* GetImportSelOp() const { return ImportInfo.pOp; }
00534
00535
00536 void AddAtomicTag(AtomicTagListItem* pItem);
00537 void AddEssentialTag(EssentialTagListItem* pItem);
00538
00539 BOOL IsTagInAtomicList(UINT32 Tag);
00540 BOOL IsTagInEssentialList(UINT32 Tag);
00541
00542 TagDescriptionListItem* GetTagDescription(UINT32 Tag);
00543
00544
00545
00546 virtual void AddTagDescription(UINT32 Tag,UINT32 ID);
00547 BOOL SetDocumentNudgeSize(UINT32 newVal);
00548 virtual void WriteTagDescriptionRecord();
00549 BOOL WriteNudgeSizeRecord();
00550 BOOL WriteBitmapSmoothingRecord();
00551 BOOL WriteDuplicationOffsetRecord();
00552 BOOL WriteRemainingAtomicTagDefinitions();
00553 UINT32 WriteXPEBitmapPlaceHolder(String_256& strBitmapName);
00554
00555
00556 virtual BOOL AddTagDescription(TagDescriptionListItem* pItem);
00557
00558 private:
00559
00560 AtomicTagList* pAtomicTagList;
00561 EssentialTagList* pEssentialTagList;
00562 TagDescriptionList* pTagDescriptionList;
00563
00564 public:
00565
00566
00567
00568 virtual void AddPathRecordRefToList(NodePath* pNodePath, UINT32 RecordNumber);
00569 virtual UINT32 FindPathRecordRefRecordNumber(NodePath* pNodePath);
00570 virtual NodePath* FindPathRecordRefPath(UINT32 RecordNumber);
00571 virtual BOOL FindSimilarPath(NodePath* pPath,UINT32* pOtherPathRecNum,Matrix* pTransform);
00572 virtual double GetSimilarPathTolerance(NodePath* pPath) = 0;
00573
00574
00575
00576
00577
00578
00579
00580
00581
00582
00583
00584 virtual void AddNodeGroupRefToList(Node* pNode,NodeGroup* pGroup);
00585 virtual NodeGroup* FindGroupForThisNode(Node* pNode);
00586 virtual BOOL WriteNodeAsOutlines(Node *pNode);
00587
00588 private:
00589
00590
00591
00592 CXaraFilePathRecordRefList* pPathRecordRefList;
00593
00594
00595
00596
00597
00598
00599
00600
00601
00602 CXaraFileNodeGroupRefList* pNodeGroupRefList;
00603
00604 public:
00605 BOOL SetLastRecordHandler(CXaraFileRecordHandler* pHandler,UINT32 Tag);
00606
00607 public:
00608
00609 Document* GetLastDocumentInserted() { return pLastDocument; }
00610 Chapter* GetLastChapterInserted() { return pLastChapter; }
00611 Spread* GetLastSpreadInserted() { return pLastSpread; }
00612 Layer* GetLastLayerInserted() { return pLastLayer; }
00613 NodePath* GetLastNodePathInserted() { return pLastNodePath; }
00614 NodeAttribute* GetLastCurrentAttrInserted() { return pLastCurrentAttr; }
00615
00616 void SetLastDocumentInserted(Document* pNode) { pLastDocument = pNode; }
00617 void SetLastChapterInserted(Chapter* pNode) { pLastChapter = pNode; }
00618 void SetLastSpreadInserted(Spread* pNode) { pLastSpread = pNode; }
00619 void SetLastLayerInserted(Layer* pNode) { pLastLayer = pNode; }
00620 void SetLastNodePathInserted(NodePath* pNode) { pLastNodePath = pNode; }
00621 void SetLastCurrentAttrInserted(NodeAttribute* pNode) { pLastCurrentAttr = pNode; }
00622
00623 UINT32 GetDocumentInsertedCount() { return DocumentCount; }
00624 UINT32 GetChapterInsertedCount() { return ChapterCount; }
00625 UINT32 GetSpreadInsertedCount() { return SpreadCount; }
00626 UINT32 GetLayerInsertedCount() { return LayerCount; }
00627 UINT32 GetSetSentinelInsertedCount() { return SetSentinelCount; }
00628
00629 void IncDocumentInsertedCount() { DocumentCount++; }
00630 void IncChapterInsertedCount() { ChapterCount++; }
00631 void IncSpreadInsertedCount() { SpreadCount++; }
00632 void IncLayerInsertedCount() { LayerCount++; }
00633 void IncSetSentinelInsertedCount() { SetSentinelCount++; }
00634
00635
00636 public:
00637 virtual void ExportHTMLTag(PathName* ppthToUse);
00638
00639 virtual void SetInsertMode(InsertMode newInsertMode, CCRuntimeClass* pAttrGroup = NULL);
00640 virtual InsertMode GetInsertMode() {return m_InsertMode;}
00641
00642 protected:
00643 virtual BOOL AttachNode(Node* pNewNode, Node* pContextNode, AttachNodeDirection Direction);
00644
00645 private:
00646
00647 Document* pLastDocument;
00648 Chapter* pLastChapter;
00649 Spread* pLastSpread;
00650 Layer* pLastLayer;
00651 NodePath* pLastNodePath;
00652 NodeAttribute* pLastCurrentAttr;
00653
00654 UINT32 DocumentCount;
00655 UINT32 ChapterCount;
00656 UINT32 SpreadCount;
00657 UINT32 LayerCount;
00658 UINT32 SetSentinelCount;
00659
00660 Layer* pImportLayer;
00661 BOOL DeleteNode(Node* pNode);
00662
00663 UINT32 PreCompFlags;
00664
00665 InsertMode m_InsertMode;
00666 CCRuntimeClass* m_pCurrentAttrGroup;
00667
00668 protected:
00669
00670 UINT32 ProgressBarCount;
00671 Progress* pProgress;
00672 String_64 ProgressBarMessage;
00673 UINT32 TotalProgressBarCount;
00674
00675 private:
00676 DocCoord CoordOrigin;
00677
00678 Layer * m_pFirstImportedLayer;
00679 Layer * m_pActiveLayerBeforeImport;
00680
00681 public:
00682
00683
00684 virtual SelectionType GetSelType() { return SelType; }
00685 virtual void SetSelType(SelectionType ThisSelType) { SelType = ThisSelType; }
00686
00687
00688 virtual Layer * GetFirstImportedLayer() { return m_pFirstImportedLayer; }
00689 virtual void SetFirstImportedLayer(Layer * pLayer) { m_pFirstImportedLayer = pLayer; }
00690
00691 private:
00692
00693
00694 SelectionType SelType;
00695
00696 public:
00697
00698 static String_256 DefaultExportPath;
00699
00700 static BOOL ExportWebFile;
00701
00702 protected:
00703
00704 static BOOL PreviewBitmapExport;
00705
00706 static INT32 BitmapCompression;
00707
00708 static BOOL CompressNative;
00709
00710 static BOOL SaveXPEBitmaps;
00711
00712 static BOOL ConvertTextToOutlines;
00713
00714 static INT32 PreviewBitmapFilterType;
00715
00716 static BOOL RemoveInvisibleLayers;
00717
00718 static BOOL RemoveUnusedColours;
00719
00720 static BOOL HTMLToClipboard;
00721
00722 static BOOL MinimalWebFormat;
00723
00724 static BOOL WriteRelativePaths;
00725
00726 static String_256 DontConvertTheseFontsToOutlines;
00727
00728
00729 static BOOL NativeCheckSimilarPaths;
00730
00731 static INT32 WebSimilarPathTolerence;
00732
00733
00734
00735 static BOOL ConvertBlendsToOutlines;
00736
00737
00738
00739
00740 static BOOL ImportNonFramesOntoActivelayer;
00741
00742 public:
00743
00744 static BOOL SetNativeCompression(BOOL NewState);
00745 static BOOL GetNativeCompression();
00746 static BOOL ShouldSaveXPEBitmaps();
00747
00748
00749
00750 virtual BOOL SetCompression(BOOL NewState);
00751
00752 virtual BOOL StartCompression();
00753 virtual BOOL StopCompression();
00754
00755 virtual BOOL SetPreCompression(UINT32 Flags);
00756 virtual UINT32 GetPreCompression() { return PreCompFlags; }
00757
00758
00759
00760 virtual CCLexFile* GetCCFile();
00761
00762
00763 virtual INT32 GetBitmapCompression();
00764 virtual INT32 SetBitmapCompression(INT32 NewBmpComp);
00765
00766
00767 virtual BOOL GetPreviewBitmapExport();
00768 virtual BOOL SetPreviewBitmapExport(BOOL NewExportPreviewBmp);
00769
00770
00771 virtual BOOL GetConvertTextToOutlines();
00772 virtual BOOL SetConvertTextToOutlines(BOOL NewConvertTextToOutlines);
00773
00774
00775
00776 virtual BOOL GetConvertBlendsToOutlines();
00777 virtual BOOL SetConvertBlendsToOutlines(BOOL NewConvertBlendsToOutlines);
00778
00779
00780 virtual BOOL GetRemoveInvisibleLayers();
00781 virtual BOOL SetRemoveInvisibleLayers(BOOL NewRemoveInvisibleLayers);
00782
00783
00784 virtual BOOL GetRemoveUnusedColours();
00785 virtual BOOL SetRemoveUnusedColours(BOOL NewRemoveUnusedColours);
00786
00787
00788 virtual BOOL GetMinimalWebFormat();
00789 virtual BOOL SetMinimalWebFormat(BOOL NewMinimalWebFormat);
00790
00791
00792 virtual BOOL GetSaveXPEBitmaps();
00793 virtual BOOL SetSaveXPEBitmaps(BOOL NewSaveXPEBitmaps);
00794
00795
00796 virtual BOOL ShouldExportHTMLTag();
00797 virtual BOOL SetHTMLToClipboard(BOOL NewHTMLToClipboard);
00798
00799
00800
00801 virtual String_256 GetDontConvertTheseFontsToOutlinesString();
00802
00803
00804 virtual BOOL GetNativeCheckSimilarPaths();
00805
00806
00807 virtual MILLIPOINT GetWebSimilarPathTolerence();
00808
00809
00810
00811 virtual BOOL WriteSpecificRegularShapes() { return(FALSE); }
00812
00813
00814
00815 virtual BoundsWriteLevel GetBoundsWriteLevel() { return(BWL_NONE); }
00816
00817
00818 private:
00819 BOOL PreExportShadows(Node* pRoot);
00820 BOOL PostExportShadows(Node* pRoot);
00821 BOOL PostImportShadows();
00822 };
00823
00824 #endif // INC_CAMFILTER