Main Page Modules Namespace List Class Hierarchy Alphabetical List Compound List File List Namespace Members Compound Members File Members Related Pages

# dePortal_priv.hpp

Go to the documentation of this file.

    00001 ///////////////////////////////////////////////////////////////////////////////
    00002 /// @file dePortal_priv.hpp
    00003 ///
    00004 /// @brief Portal culling routines, private header
    00005 ///
    00006 /// @author Assassin
    00007 ///
    00008 /// This file is the intellectual property of Novus Delta, LLC.. Usage of the
    00009 /// contents of this file is subject to the Destiny3D Member License which
    00010 /// can be found at http://www.destiny3d.com.  Any other usage is prohibited.
    00011 ///
    00012 /// This file is distributed "AS IS" without warranty of any kind.  Novus
    00013 /// Delta, LLC. does not guarantee the fitness of the contents of this file
    00014 /// for any particular purpose.
    00015 ///
    00016 /// Copyright (C) 2001-2003 Novus Delta, LLC. All Rights Reserved.
    00017 ///
    00018 /// <hr>
    00019 ///                                 Change History
    00020 /// <hr>
    00021 ///
    00022 /// @date Jan 2002
    00023 /// @author Assassin
    00024 /// @remarks Creation
    00025 ///
    00026 ///////////////////////////////////////////////////////////////////////////////
    00027
    00028 #ifndef DEPORTAL_PRIV_HPP
    00029 #define DEPORTAL_PRIV_HPP
    00030
    00031 #include "deGlobalTypes.hpp"
    00032 #include "dePortal.hpp"
    00033 #include "deArray.hpp"
    00034 #include "deMath.hpp"
    00035
    00036 #pragma todo(fix the orthographic border case intersection and clipping stuff)
    00037
    00038 class dePortal : public IdePortal
    00039 {
    00040 protected:
    00041     ~dePortal();
    00042 public:
    00043     dePortal();
    00044     dePortal(deVec3d Vertices[], int Num);
    00045     int Release();
    00046
    00047     IdeVertexBuffer * GetVBuffer();
    00048     deBoolean IsTPortal() const;
    00049     void SetTPortal(deBoolean TPortal);
    00050
    00051 //  void ClipFrustum(deTransformInfo * CamPos, const deFrustum &in, deFrustum &out);
    00052     deBoolean ClipFrustum(const deTransformInfo & CamPos, const IdePlaneFrustum* in, IdePlaneFrustum* out);
    00053     deBoolean IntersectsFrustum(const deTransformInfo & CamPos, const IdePlaneFrustum* f) const;
    00054
    00055     void SetVertices(deVec3d Vertices[], long Num);
    00056     deVec3d* GetVertices(long &Num) const;
    00057
    00058     deWorldID   GetLinkWorldID() const;
    00059     deObjectID  GetLinkObjectID() const;
    00060     void        SetLinkWorldID(deWorldID WorldID);
    00061     void        SetLinkObjectID(deObjectID ObjectID);
    00062     deBoolean   LinkTo(IdeSceneRoom* SceneRoom);
    00063
    00064     deBoolean IsPlanar();
    00065
    00066     void SetNormal(const deVec3d & v);
    00067     void GetNormal(deVec3d & v) const;
    00068
    00069     void SetPosition(const deTransformInfo & M);
    00070     void GetPosition(deTransformInfo & M) const;
    00071     void SetTransform(const deTransformInfo & M);
    00072     void GetTransform(deTransformInfo & M) const;
    00073     void ConcatTransform(deTransformInfo & M);
    00074
    00075 private:
    00076     deWorldID           m_LinkWorldID;
    00077     deObjectID          m_LinkObjectID;
    00078     deTransform         m_Transform, m_Position;
    00079     deTArray <deVec3d>  m_Vertices;
    00080     IdeVertexBuffer *   m_VBuffer;
    00081     deBoolean           m_VertsChanged;
    00082     deBoolean           m_DoesTransformation;
    00083     deBoolean           m_IsPlanar;
    00084     deVec3d             m_Normal;
    00085 };
    00086
    00087 #endif