![]() |
VR-Forces 4.0.4 Class Documentation
|
00001 /******************************************************************************* 00002 ** Copyright (c) 1999 MAK Technologies, Inc. 00003 ** All rights reserved. 00004 *******************************************************************************/ 00005 /******************************************************************************* 00006 ** $RCSfile: objFactory.h,v $ $Revision: 1.12 $ $State: Exp $ 00007 *******************************************************************************/ 00008 00011 00017 00018 #ifndef DtSimObjectFactory_H_ 00019 #define DtSimObjectFactory_H_ 00020 00021 #ifdef WIN32 00022 00023 00024 00025 00026 #pragma warning( push ) 00027 #pragma warning( disable : 4786 ) 00028 #endif 00029 00030 #include <vlutil/vlHashlist.h> 00031 #include <vrfExtProtocol/objType.h> 00032 #include <vlpi/appearance.h> 00033 #include "vrfutil/vertexList.h" 00034 #include <vl/globalObjDes.h> 00035 00036 class DtSimObjectFactoryEntry; 00037 class DtReaderWriterRegistry; 00038 class DtVrfObjectManager; 00039 class DtVrfObject; 00040 class DtReflectedObject; 00041 00042 typedef DtVrfObject * (*DtSimObjectCreatorFcn)( 00043 const DtObjectType& objectType, 00044 DtVrfObjectManager * simObjectManager, 00045 bool createLocalObject, 00046 bool publishLocalObject, 00047 const DtEntityIdentifier& objectIdentifier, 00048 const DtGlobalObjectDesignator* globalId, 00049 DtReflectedObject* reflectedObject, 00050 const DtString & objectName, 00051 const DtString & objectLabel, 00052 DtForceType forceType, 00053 const DtList* vertices, 00054 const DtTaitBryan* orientation, 00055 bool projection, 00056 bool closedFigure, 00057 const DtAppearance& appearance, 00058 const DtString & readerWriterName, 00059 DtReaderWriterRegistry * registry); 00060 00067 #include "vrfobjcore/vrfobjcoreDefines.h" 00068 class DT_DLL_vrfobjcore DtSimObjectFactory : public DtHashlist 00069 { 00070 public: 00072 DtSimObjectFactory(); 00073 00075 DtSimObjectFactory(const DtSimObjectFactory& orig); 00076 00078 const DtSimObjectFactory& operator=(const DtSimObjectFactory& orig); 00079 00081 virtual ~DtSimObjectFactory(); 00082 00084 virtual void addCreatorFcn(const DtString& type, 00085 DtSimObjectCreatorFcn fcn); 00086 00087 virtual DtVrfObject * createSimObject( 00088 const DtObjectType& objectType, 00089 DtVrfObjectManager * simObjectManager, 00090 const DtString & classType, 00091 bool createLocalObject = true, 00092 bool publishLocalObject = true, 00093 const DtEntityIdentifier& objectIdentifier = DtEntityIdentifier::nullId(), 00094 const DtGlobalObjectDesignator* globalId = NULL, 00095 DtReflectedObject* reflectedObject = NULL, 00096 const DtString & objectName = DtString::nullString(), 00097 const DtString & objectLabel = DtString::nullString(), 00098 DtForceType forceType = DtForceOther, 00099 const DtList* vertices = NULL, 00100 const DtTaitBryan* orientation = NULL, 00101 bool projection = false, 00102 bool closedFigure = false, 00103 const DtAppearance& appearance = DtAppearance::nullAppearance(), 00104 const DtString & readerWriterName = DtString::nullString(), 00105 DtReaderWriterRegistry * registry = 0); 00106 00107 static DtSimObjectFactory* create(); 00108 }; 00109 00110 #ifdef WIN32 00111 #pragma warning( pop ) 00112 #endif 00113 00114 #endif 00115