OSGAlgorithmBase.h
Go to the documentation of this file.00001 /*---------------------------------------------------------------------------*\ 00002 * OpenSG * 00003 * * 00004 * * 00005 * Copyright (C) 2000-2006 by the OpenSG Forum * 00006 * * 00007 * www.opensg.org * 00008 * * 00009 * contact: dirk@opensg.org, gerrit.voss@vossg.org, jbehr@zgdv.de * 00010 * * 00011 \*---------------------------------------------------------------------------*/ 00012 /*---------------------------------------------------------------------------*\ 00013 * License * 00014 * * 00015 * This library is free software; you can redistribute it and/or modify it * 00016 * under the terms of the GNU Library General Public License as published * 00017 * by the Free Software Foundation, version 2. * 00018 * * 00019 * This library is distributed in the hope that it will be useful, but * 00020 * WITHOUT ANY WARRANTY; without even the implied warranty of * 00021 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * 00022 * Library General Public License for more details. * 00023 * * 00024 * You should have received a copy of the GNU Library General Public * 00025 * License along with this library; if not, write to the Free Software * 00026 * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. * 00027 * * 00028 \*---------------------------------------------------------------------------*/ 00029 /*---------------------------------------------------------------------------*\ 00030 * Changes * 00031 * * 00032 * * 00033 * * 00034 * * 00035 * * 00036 * * 00037 \*---------------------------------------------------------------------------*/ 00038 00039 /*****************************************************************************\ 00040 ***************************************************************************** 00041 ** ** 00042 ** This file is automatically generated. ** 00043 ** ** 00044 ** Any changes made to this file WILL be lost when it is ** 00045 ** regenerated, which can become necessary at any time. ** 00046 ** ** 00047 ** Do not change this file, changes should be done in the derived ** 00048 ** class Algorithm 00049 ** ** 00050 ***************************************************************************** 00051 \*****************************************************************************/ 00052 00053 00054 #ifndef _OSGALGORITHMBASE_H_ 00055 #define _OSGALGORITHMBASE_H_ 00056 #ifdef __sgi 00057 #pragma once 00058 #endif 00059 00060 00061 #include "OSGConfig.h" 00062 #include "OSGGroupDef.h" 00063 00064 //#include "OSGBaseTypes.h" 00065 00066 #include "OSGAttachmentContainer.h" // Parent 00067 00068 00069 #include "OSGAlgorithmFields.h" 00070 00071 OSG_BEGIN_NAMESPACE 00072 00073 class Algorithm; 00074 00076 00077 class OSG_GROUP_DLLMAPPING AlgorithmBase : public AttachmentContainer 00078 { 00079 public: 00080 00081 typedef AttachmentContainer Inherited; 00082 typedef AttachmentContainer ParentContainer; 00083 00084 typedef Inherited::TypeObject TypeObject; 00085 typedef TypeObject::InitPhase InitPhase; 00086 00087 OSG_GEN_INTERNALPTR(Algorithm); 00088 00089 /*========================== PUBLIC =================================*/ 00090 00091 public: 00092 00093 00094 /*---------------------------------------------------------------------*/ 00098 static FieldContainerType &getClassType (void); 00099 static UInt32 getClassTypeId (void); 00100 static UInt16 getClassGroupId(void); 00101 00103 /*---------------------------------------------------------------------*/ 00107 virtual FieldContainerType &getType (void); 00108 virtual const FieldContainerType &getType (void) const; 00109 00110 virtual UInt32 getContainerSize(void) const; 00111 00113 /*---------------------------------------------------------------------*/ 00117 virtual UInt32 getBinSize (ConstFieldMaskArg whichField); 00118 virtual void copyToBin (BinaryDataHandler &pMem, 00119 ConstFieldMaskArg whichField); 00120 virtual void copyFromBin(BinaryDataHandler &pMem, 00121 ConstFieldMaskArg whichField); 00122 00123 00125 /*========================= PROTECTED ===============================*/ 00126 00127 protected: 00128 00129 static TypeObject _type; 00130 00131 static void classDescInserter(TypeObject &oType); 00132 static const Char8 *getClassname (void ); 00133 00134 /*---------------------------------------------------------------------*/ 00138 AlgorithmBase(void); 00139 AlgorithmBase(const AlgorithmBase &source); 00140 00142 /*---------------------------------------------------------------------*/ 00146 virtual ~AlgorithmBase(void); 00147 00149 /*---------------------------------------------------------------------*/ 00155 /*---------------------------------------------------------------------*/ 00161 /*---------------------------------------------------------------------*/ 00165 #ifdef OSG_MT_CPTR_ASPECT 00166 virtual void execSyncV( FieldContainer &oFrom, 00167 ConstFieldMaskArg whichField, 00168 AspectOffsetStore &oOffsets, 00169 ConstFieldMaskArg syncMode , 00170 const UInt32 uiSyncInfo); 00171 00172 void execSync ( AlgorithmBase *pFrom, 00173 ConstFieldMaskArg whichField, 00174 AspectOffsetStore &oOffsets, 00175 ConstFieldMaskArg syncMode , 00176 const UInt32 uiSyncInfo); 00177 #endif 00178 00180 /*---------------------------------------------------------------------*/ 00185 /*---------------------------------------------------------------------*/ 00190 /*---------------------------------------------------------------------*/ 00194 /*---------------------------------------------------------------------*/ 00198 virtual void resolveLinks(void); 00199 00201 /*========================== PRIVATE ================================*/ 00202 00203 private: 00204 /*---------------------------------------------------------------------*/ 00205 00206 // prohibit default functions (move to 'public' if you need one) 00207 void operator =(const AlgorithmBase &source); 00208 }; 00209 00210 typedef AlgorithmBase *AlgorithmBaseP; 00211 00212 OSG_END_NAMESPACE 00213 00214 #endif /* _OSGALGORITHMBASE_H_ */
