Show ksprite3d.h syntax highlighted
/*
Copyright (C) 2003, 2004 by Luca Cappa
Written by Luca Cappa groton@users.sourceforge.net
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Library General Public
License as published by the Free Software Foundation; either
version 2 of the License, or (at your option) any later version.
This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Library General Public License for more details.
You should have received a copy of the GNU Library General Public
License along with this library; if not, write to the Free
Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
#ifndef __KSPRITE3D_H__
#define __KSPRITE3D_H__
struct iEngine;
struct iGraphics3D;
struct iLoader;
struct iMaterialWrapper;
struct iMeshWrapper;
struct iSprite3DState;
struct iSprite3DFactoryState;
class csTransform;
struct iPolygon3D;
struct iCollideSystem;
class csVector3;
struct iKDraggable;
struct iKDragHandler;
struct KBaseDraggable;
class BlockId;
class KFlags;
class csBox3;
#include "ikxmlreader.h"
#include "ikxmlwriter.h"
#include "kbasedraggable.h"
#include "kbasedraghandler.h"
SCF_VERSION (KSprite3D, 0, 0, 1);
struct KSprite3D : public csObject, public iKXMLWriter, public iKXMLReader
{
protected:
csRef<iEngine> m_engine;
csRef<iGraphics3D> m_g3d;
csRef<iMeshWrapper> m_meshW;
csRef<iMeshFactoryWrapper> m_meshFactW;
csRef<iLoader> m_loader;
csRef<iSprite3DState> m_state;
csRef<iSprite3DFactoryState> m_factState;
bool Create (const char* p_mF);
bool Rescale (float p_x,float p_y, float p_z);
bool LoadMeshFactory (const char* p_mFName);
/**
*/
bool CenterToOrigin ();
/**
Put the mesh over the XZ axis.
*/
void OverTheFloor();
bool m_constructedProperly;
bool m_visible;
//values stored in the constructor.
csRef<iString> m_modelName;
csRef<iString> m_materialName;
float m_xScale;
float m_yScale;
float m_zScale;
bool SetMaterial (iMaterialWrapper* p_mat);
iMaterialWrapper* GetMaterial ();
public:
KSprite3D ();
virtual ~KSprite3D ();
bool Create (const char* p_name, const char* p_mFName,
const char* p_materialName,
float p_x, float p_y, float p_z, const csReversibleTransform* = 0);
void Release ();
bool SetMaterialName (const char*);
const char* GetMaterialName ();
bool IsConstructedProperly ();
iMeshWrapper* GetMeshWrapper ();
iMeshFactoryWrapper& GetMeshFactoryWrapper ();
void SetBaseColor(const csColor& p_color);
iMovable& GetMovable();
iSprite3DState& KSprite3D::GetState ();
void SetAction (const char* p_actionName);
//
//
void SetZBufMode (csZBufMode p_zBufMode);
void KSprite3D::SetRenderPriority (int p_rP);
bool Resize (float p_xSize, float p_ySize, float p_zSize);
void HardTransform (const csReversibleTransform& p_rT );
//
//for moving.
void LookAt (const csVector3& p_to, const csVector3& p_up );
void Transform (const csMatrix3& p_tr );
void SetTransform (const csMatrix3& p_tr );
const csMatrix3& GetTransform ();
void SetPosition (const csVector3& p_pos );
const csVector3& GetPosition ();
void KSprite3D::UpdateMove ();
void GetBoundingBox (csBox3&);
void SetSector (iSector* p_sector);
void SetVisible (bool);
bool IsVisible ();
//
float GetYRotation ();
void SetYRotation (float);
float m_yRotation;
void SetYRotationPosition (float p_yRotation, const csVector3& p_pos );
//
//methods related to parameter passed together in the constructor.
iString* GetModelName ();
float GetXScale ();
float GetYScale ();
float GetZScale ();
//
//iKXMLReader and IKXMLWriter interfaces.
bool Write (iDocumentNode*) const;
bool Read (iDocumentNode*);
SCF_DECLARE_IBASE_EXT (csObject);
bool SetDraggable (iKDraggable* p_draggable);
struct eiKDraggable : public KBaseDraggable
{
SCF_DECLARE_EMBEDDED_IBASE (KSprite3D);
const csRefArray<iMeshWrapper> GetMeshWrappers () const;
} scfiKDraggable;
};
#endif
See more files for this project here