shape.cpp

Go to the documentation of this file.
00001 
00007 /* Copyright, 2000 Nevrax Ltd.
00008  *
00009  * This file is part of NEVRAX NEL.
00010  * NEVRAX NEL is free software; you can redistribute it and/or modify
00011  * it under the terms of the GNU General Public License as published by
00012  * the Free Software Foundation; either version 2, or (at your option)
00013  * any later version.
00014 
00015  * NEVRAX NEL is distributed in the hope that it will be useful, but
00016  * WITHOUT ANY WARRANTY; without even the implied warranty of
00017  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
00018  * General Public License for more details.
00019 
00020  * You should have received a copy of the GNU General Public License
00021  * along with NEVRAX NEL; see the file COPYING. If not, write to the
00022  * Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
00023  * MA 02111-1307, USA.
00024  */
00025 
00026 #include "std3d.h"
00027 
00028 #include "3d/shape.h"
00029 #include "3d/transform_shape.h"
00030 #include "3d/scene.h"
00031 
00032 #include <string>
00033 
00034 
00035 using namespace NLMISC;
00036 
00037 
00038 namespace NL3D 
00039 {
00040 
00041         
00042 // ***************************************************************************
00043 // ***************************************************************************
00044 // IShape
00045 // ***************************************************************************
00046 // ***************************************************************************
00047 
00048 
00049 // ***************************************************************************
00050 CTransformShape         *IShape::createInstance(CScene &scene)
00051 {
00052         CTransformShape         *mo= (CTransformShape*)scene.createModel(NL3D::TransformShapeId);
00053         mo->Shape= this;
00054         return mo;
00055 }
00056 
00057 
00058 // ***************************************************************************
00059 IShape::IShape()
00060 {
00061         _DistMax= -1;
00062 }
00063 
00064 
00065 // ***************************************************************************
00066 void                    IShape::setDistMax(float distMax)
00067 {
00068         _DistMax= distMax;
00069         // normalize infinite setup.
00070         if(distMax<0)
00071                 _DistMax= -1;
00072 }
00073 
00074 
00075 // ***************************************************************************
00076 void                    IShape::getAABBox(CAABBox &bbox) const
00077 {
00078         bbox.setCenter(CVector::Null);
00079         bbox.setHalfSize(CVector::Null);
00080 }
00081 
00082 
00083 // ***************************************************************************
00084 // ***************************************************************************
00085 // CShapeStream
00086 // ***************************************************************************
00087 // ***************************************************************************
00088 
00089 
00090 // ***************************************************************************
00091 CShapeStream::CShapeStream ()
00092 {
00093         _Shape=NULL;
00094 }
00095 
00096 
00097 // ***************************************************************************
00098 CShapeStream::CShapeStream (IShape* shape)
00099 {
00100         // Set the pointer
00101         setShapePointer (shape);
00102 }
00103 
00104 
00105 // ***************************************************************************
00106 void CShapeStream::setShapePointer (IShape* shape)
00107 {
00108         _Shape=shape;
00109 }
00110 
00111 
00112 // ***************************************************************************
00113 IShape* CShapeStream::getShapePointer () const
00114 {
00115         return _Shape;
00116 }
00117 
00118 
00119 // ***************************************************************************
00120 void CShapeStream::serial(NLMISC::IStream &f) throw(NLMISC::EStream)
00121 {
00122         // First, serial an header or checking if it is correct
00123         f.serialCheck ((uint32)'PAHS');
00124 
00125         // Then, serial the shape
00126         f.serialPolyPtr (_Shape);
00127 
00128         // Ok, it's done
00129 }
00130 
00131 } // NL3D

Generated on Tue Mar 16 06:37:17 2004 for NeL by doxygen 1.3.6