CrystalSpace

Public API Reference

imesh/objmodel.h

Go to the documentation of this file.
00001 /*
00002     Crystal Space 3D engine
00003     Copyright (C) 2002 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., 675 Mass Ave, Cambridge, MA 02139, USA.
00018 */
00019 
00020 #ifndef __CS_IMESH_OBJMODEL_H__
00021 #define __CS_IMESH_OBJMODEL_H__
00022 
00031 #include "csutil/scf_interface.h"
00032 #include "csutil/ref.h"
00033 #include "iutil/strset.h"
00034 
00035 struct iPolygonMesh;
00036 struct iTriangleMesh;
00037 struct iTerraFormer;
00038 struct iTerrainSystem;
00039 struct iObjectModel;
00040 
00041 class csBox3;
00042 class csVector3;
00043 
00048 struct iObjectModelListener : public virtual iBase
00049 {
00050   SCF_INTERFACE(iObjectModelListener, 2, 0, 0);
00052   virtual void ObjectModelChanged (iObjectModel* model) = 0;
00053 };
00054 
00061 struct iTriangleMeshIterator : public virtual iBase
00062 {
00063   SCF_INTERFACE(iTriangleMeshIterator, 0, 0, 1);
00064 
00066   virtual bool HasNext () = 0;
00067 
00074   virtual iTriangleMesh* Next (csStringID& id) = 0;
00075 };
00076 
00077 // for iPolygonMesh
00078 #include "csutil/win32/msvc_deprecated_warn_off.h"
00079 
00093 struct iObjectModel : public virtual iBase
00094 {
00095   SCF_INTERFACE(iObjectModel, 2, 0, 2);
00101   virtual long GetShapeNumber () const = 0;
00102 
00122   virtual iTriangleMesh* GetTriangleData (csStringID id) = 0;
00123 
00128   virtual csPtr<iTriangleMeshIterator> GetTriangleDataIterator () = 0;
00129 
00146   virtual void SetTriangleData (csStringID id, iTriangleMesh* trimesh) = 0;
00147 
00154   virtual bool IsTriangleDataSet (csStringID id) = 0;
00155 
00160   virtual void ResetTriangleData (csStringID id) = 0;
00161 
00167   CS_DEPRECATED_METHOD_MSG("Use GetTriangleData() instead.")
00168   virtual iPolygonMesh* GetPolygonMeshBase () = 0;
00169 
00177   CS_DEPRECATED_METHOD_MSG("Use GetTriangleData() instead.")
00178   virtual iPolygonMesh* GetPolygonMeshColldet () = 0;
00179 
00185   virtual iTerraFormer* GetTerraFormerColldet () = 0;
00186 
00192   virtual iTerrainSystem* GetTerrainColldet () = 0;
00193 
00205   CS_DEPRECATED_METHOD_MSG("Use SetTriangleData() instead.")
00206   virtual void SetPolygonMeshColldet (iPolygonMesh* polymesh) = 0;
00207 
00220   CS_DEPRECATED_METHOD_MSG("Use GetTriangleData() instead.")
00221   virtual iPolygonMesh* GetPolygonMeshViscull () = 0;
00222 
00234   CS_DEPRECATED_METHOD_MSG("Use SetTriangleData() instead.")
00235   virtual void SetPolygonMeshViscull (iPolygonMesh* polymesh) = 0;
00236 
00247   CS_DEPRECATED_METHOD_MSG("Use GetTriangleData() instead.")
00248   virtual iPolygonMesh* GetPolygonMeshShadows () = 0;
00249 
00261   CS_DEPRECATED_METHOD_MSG("Use SetTriangleData() instead.")
00262   virtual void SetPolygonMeshShadows (iPolygonMesh* polymesh) = 0;
00263 
00273   CS_DEPRECATED_METHOD_MSG("Deprecated because unimplemented.")
00274   virtual csPtr<iPolygonMesh> CreateLowerDetailPolygonMesh (float detail) = 0;
00275 
00280   CS_DEPRECATED_METHOD_MSG("Use GetObjectBoundingBox() (without parameters) "
00281                            "instead.")
00282   virtual void GetObjectBoundingBox (csBox3& bbox) = 0;
00283 
00287   virtual const csBox3& GetObjectBoundingBox () = 0;
00288 
00294   virtual void SetObjectBoundingBox (const csBox3& bbox) = 0;
00295 
00299   virtual void GetRadius (float& radius, csVector3& center) = 0;
00300 
00305   virtual void AddListener (iObjectModelListener* listener) = 0;
00306 
00310   virtual void RemoveListener (iObjectModelListener* listener) = 0;
00311 };
00312 
00315 // for iPolygonMesh
00316 #include "csutil/win32/msvc_deprecated_warn_on.h"
00317 
00318 #endif // __CS_IMESH_OBJMODEL_H__
00319 

Generated for Crystal Space 1.2.1 by doxygen 1.5.3