00001 /* ****************************************************************** **
00002 ** OpenSees - Open System for Earthquake Engineering Simulation **
00003 ** Pacific Earthquake Engineering Research Center **
00004 ** **
00005 ** **
00006 ** (C) Copyright 1999, The Regents of the University of California **
00007 ** All Rights Reserved. **
00008 ** **
00009 ** Commercial use of this program without express permission of the **
00010 ** University of California, Berkeley, is strictly prohibited. See **
00011 ** file 'COPYRIGHT' in main directory for information on usage and **
00012 ** redistribution, and for a DISCLAIMER OF ALL WARRANTIES. **
00013 ** **
00014 ** Developed by: **
00015 ** Frank McKenna (fmckenna@ce.berkeley.edu) **
00016 ** Gregory L. Fenves (fenves@ce.berkeley.edu) **
00017 ** Filip C. Filippou (filippou@ce.berkeley.edu) **
00018 ** **
00019 ** ****************************************************************** */
00020
00021 // $Revision: 1.1.1.1 $
00022 // $Date: 2000/09/15 08:23:18 $
00023 // $Source: /usr/local/cvs/OpenSees/SRC/domain/component/DomainComponent.h,v $
00024
00025
00026 #ifndef DomainComponent_h
00027 #define DomainComponent_h
00028
00029 // File: ~/domain/component/DomainComponent.h
00030 //
00031 // Written: fmk
00032 // Created: 11/96
00033 // Revision: A
00034 //
00035 // Description: This file contains the class definition for DomainComponent.
00036 // The DomainComponent class is an abstract class, example subclasses include
00037 // Element, Node, SP_Constraint, MP_Constraint, NodalLoad, ElementalLoad.
00038 // Each of these objects forms part of Domain and has methods to set and obtain
00039 // the associated Domain object.
00040 //
00041 // What: "@(#) DomainComponent.h, revA"
00042
00043 #include <TaggedObject.h>
00044 #include <MovableObject.h>
00045
00046 #include <Domain.h>
00047 #include <Renderer.h>
00048 #include <Information.h>
00049
00060 class DomainComponent: public TaggedObject, public MovableObject
00061 {
00062 public:
00073 virtual ~DomainComponent();
00074
00075
00082 virtual void setDomain(Domain *theDomain);
00083
00089 virtual Domain *getDomain(void) const;
00090
00091
00093 virtual int displaySelf(Renderer &, int displayMode, float fact);
00094
00096 virtual int setParameter(char **argv, int argc, Information &eleInformation);
00098 virtual int updateParameter(int responseID, Information &eleInformation);
00099
00100
00101 protected:
00103 DomainComponent(int tag, int classTag);
00104
00105 private:
00107 Domain *theDomain; // a pointer to the enclosing Domain object
00108 };
00109
00110 #endif
00111
00112