00001 /* 00002 * PROPRIETARY INFORMATION. This software is proprietary to 00003 * Side Effects Software Inc., and is not to be reproduced, 00004 * transmitted, or disclosed in any way without written permission. 00005 * 00006 * Produced by: 00007 * 00008 * Mark Alexander 00009 * Side Effects 00010 * 477 Richmond Street West 00011 * Toronto, Ontario 00012 * Canada M5V 3E7 00013 * 416-504-9876 00014 * 00015 * NAME: COP2_TimingBase.h 00016 * 00017 * COMMENTS: 00018 * Base class for COPs that only modify timing information. 00019 */ 00020 #ifndef _COP2_TIMING_BASE_H_ 00021 #define _COP2_TIMING_BASE_H_ 00022 00023 #include "COP2_API.h" 00024 #include "COP2_Node.h" 00025 00026 00027 class COP2_API COP2_TimingBase : public COP2_Node 00028 { 00029 public: 00030 // This is the method which timing COPs need to override. 00031 virtual TIL_Sequence *cookSequenceInfo(OP_ERROR &err); 00032 virtual bool isTimeModifier() const { return true; } 00033 virtual bool isSlowOperation() const { return false; } 00034 00035 virtual bool isTimeDepOperation() { return true; } 00036 protected: 00037 COP2_TimingBase(OP_Network *parent, const char *name, 00038 OP_Operator *entry); 00039 virtual ~COP2_TimingBase(); 00040 00041 void makeOutputAreaDependOnDifferentTime( 00042 COP2_CookAreaInfo &output_area, 00043 const COP2_CookAreaList &input_areas, 00044 COP2_CookAreaList &needed_areas, 00045 float time); 00046 00047 virtual void getInputDependenciesForOutputArea( 00048 COP2_CookAreaInfo &output_area, 00049 const COP2_CookAreaList &input_areas, 00050 COP2_CookAreaList &needed_areas); 00051 00052 }; 00053 00054 00055 #endif
1.5.9