|
http://www.sim.no http://www.coin3d.org |
00001 /**************************************************************************\ 00002 * 00003 * FILE: Object.h 00004 * 00005 * This source file is part of DIME. 00006 * Copyright (C) 1998-1999 by Systems In Motion. All rights reserved. 00007 * 00008 * This library is free software; you can redistribute it and/or modify it 00009 * under the terms of the GNU General Public License, version 2, as 00010 * published by the Free Software Foundation. 00011 * 00012 * This library is distributed in the hope that it will be useful, but 00013 * WITHOUT ANY WARRANTY; without even the implied warranty of 00014 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 00015 * General Public License (the accompanying file named COPYING) for more 00016 * details. 00017 * 00018 ************************************************************************** 00019 * 00020 * If you need DIME for a non-GPL project, contact Systems In Motion 00021 * to acquire a Professional Edition License: 00022 * 00023 * Systems In Motion http://www.sim.no/ 00024 * Prof. Brochs gate 6 sales@sim.no 00025 * N-7030 Trondheim Voice: +47 22114160 00026 * NORWAY Fax: +47 67172912 00027 * 00028 \**************************************************************************/ 00029 00030 #ifndef DIME_OBJECT_H 00031 #define DIME_OBJECT_H 00032 00033 #include <dime/Base.h> 00034 #include <dime/Basic.h> 00035 #include <dime/util/Array.h> 00036 #include <dime/util/Linear.h> 00037 #include <dime/RecordHolder.h> 00038 00039 class dimeModel; 00040 00041 class DIME_DLL_API dimeObject : public dimeRecordHolder 00042 { 00043 friend class dimeObjectesSection; 00044 friend class dimeModel; 00045 00046 public: 00047 dimeObject(); 00048 virtual ~dimeObject(); 00049 00050 virtual const char *getObjectName() const = 0; 00051 virtual dimeObject *copy(dimeModel * const model) const = 0; 00052 virtual bool read(dimeInput * const in); 00053 virtual bool write(dimeOutput * const out); 00054 virtual bool isOfType(const int thetypeid) const; 00055 virtual int typeId() const = 0; 00056 virtual int countRecords() const; 00057 virtual void print() const {} 00058 00059 protected: 00060 virtual bool handleRecord(const int groupcode, 00061 const dimeParam ¶m, 00062 dimeMemHandler * const memhandler); 00063 00064 public: 00065 static dimeObject *createObject(const char * const name, 00066 dimeMemHandler * const memhandler = NULL); 00067 protected: 00068 bool copyRecords(dimeObject * const newobject, dimeModel * const model) const; 00069 00070 }; // class dimeObject 00071 00072 #endif // ! DIME_OBJECT_H 00073
Copyright © 1998-2005 by Systems in Motion AS. All rights reserved.
Generated on Tue Dec 2 23:27:14 2008 for DIME by Doxygen. 1.4.7