CEL: Crystal Entity Layer: propclass/prop.h Source File (CEL: Crystal Entity Layer Public API Reference)

| ## Public API Reference

- Main Page
- Classes
- Files

# propclass/prop.h

    00001 /*
    00002     Crystal Space Entity Layer
    00003     Copyright (C) 2001 by Jorrit Tyberghein
    00004
    00005     This library is free software; you can redistribute it and/or
    00006     modify it under the terms of the GNU Library General Public
    00007     License as published by the Free Software Foundation; either
    00008     version 2 of the License, or (at your option) any later version.
    00009
    00010     This library is distributed in the hope that it will be useful,
    00011     but WITHOUT ANY WARRANTY; without even the implied warranty of
    00012     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
    00013     Library General Public License for more details.
    00014
    00015     You should have received a copy of the GNU Library General Public
    00016     License along with this library; if not, write to the Free
    00017     Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
    00018 */
    00019
    00020 #ifndef __CEL_PF_PROP__
    00021 #define __CEL_PF_PROP__
    00022
    00023 #include "cstypes.h"
    00024 #include "csutil/scf.h"
    00025 #include "physicallayer/datatype.h"
    00026
    00027 struct iCelEntity;
    00028 struct iCelPropertyClass;
    00029 struct iPcProperties;
    00030 class csVector2;
    00031 class csVector3;
    00032 class csColor;
    00033
    00034 SCF_VERSION (iPcPropertyListener, 0, 0, 1);
    00035
    00039 struct iPcPropertyListener : public iBase
    00040 {
    00044   virtual void PropertyChanged (iPcProperties* pcprop, size_t idx) = 0;
    00045 };
    00046
    00047 SCF_VERSION (iPcProperties, 0, 0, 1);
    00048
    00059 struct iPcProperties : public iBase
    00060 {
    00065   virtual void AddPropertyListener (iPcPropertyListener* listener) = 0;
    00069   virtual void RemovePropertyListener (iPcPropertyListener* listener) = 0;
    00070
    00074   virtual void SetProperty (const char* name, float value) = 0;
    00075
    00079   virtual void SetProperty (const char* name, long value) = 0;
    00080
    00084   virtual void SetProperty (const char* name, bool value) = 0;
    00085
    00089   virtual void SetProperty (const char* name, const char* value) = 0;
    00090
    00094   virtual void SetProperty (const char* name, const csVector2& value) = 0;
    00095
    00099   virtual void SetProperty (const char* name, const csVector3& value) = 0;
    00100
    00104   virtual void SetProperty (const char* name, const csColor& value) = 0;
    00105
    00109   virtual void SetProperty (const char* name, iCelPropertyClass* pclass) = 0;
    00110
    00114   virtual void SetProperty (const char* name, iCelEntity* entity) = 0;
    00115
    00120   virtual size_t GetPropertyIndex (const char* name) = 0;
    00121
    00125   virtual void SetPropertyIndex (size_t index, float value) = 0;
    00126
    00130   virtual void SetPropertyIndex (size_t index, long value) = 0;
    00131
    00135   virtual void SetPropertyIndex (size_t index, bool value) = 0;
    00136
    00140   virtual void SetPropertyIndex (size_t index, const csVector2& value) = 0;
    00141
    00145   virtual void SetPropertyIndex (size_t index, const csVector3& value) = 0;
    00146
    00150   virtual void SetPropertyIndex (size_t index, const csColor& value) = 0;
    00151
    00155   virtual void SetPropertyIndex (size_t index, const char* value) = 0;
    00156
    00160   virtual void SetPropertyIndex (size_t index, iCelPropertyClass* pc) = 0;
    00161
    00165   virtual void SetPropertyIndex (size_t index, iCelEntity* entity) = 0;
    00166
    00183   virtual celDataType GetPropertyType (size_t index) const = 0;
    00184
    00188   virtual float GetPropertyFloat (size_t index) const = 0;
    00189
    00193   virtual long GetPropertyLong (size_t index) const = 0;
    00194
    00198   virtual bool GetPropertyBool (size_t index) const = 0;
    00199
    00203   virtual bool GetPropertyVector (size_t index, csVector2& v) const = 0;
    00204
    00208   virtual bool GetPropertyVector (size_t index, csVector3& v) const = 0;
    00209
    00213   virtual bool GetPropertyColor (size_t index, csColor& v) const = 0;
    00214
    00218   virtual const char* GetPropertyString (size_t index) const = 0;
    00219
    00223   virtual iCelPropertyClass* GetPropertyPClass (size_t index) const = 0;
    00224
    00228   virtual iCelEntity* GetPropertyEntity (size_t index) const = 0;
    00229
    00233   virtual void ClearProperty (size_t index) = 0;
    00234
    00238   virtual void Clear () = 0;
    00239
    00243   virtual size_t GetPropertyCount () const = 0;
    00244
    00248   virtual const char* GetPropertyName (size_t idx) const = 0;
    00249
    00253   virtual void Dump () = 0;
    00254 };
    00255
    00256 #endif // __CEL_PF_PROP__
    00257