⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 wmlobject.h

📁 3D Game Engine Design Source Code非常棒
💻 H
字号:
// Magic Software, Inc.
// http://www.magic-software.com
// http://www.wild-magic.com
// Copyright (c) 2003.  All Rights Reserved
//
// The Wild Magic Library (WML) source code is supplied under the terms of
// the license agreement http://www.magic-software.com/License/WildMagic.pdf
// and may not be copied or disclosed except in accordance with the terms of
// that agreement.

#ifndef WMLOBJECT_H
#define WMLOBJECT_H

#include "WmlRTTI.h"
#include "WmlSmartPointer.h"
#include "WmlStream.h"

namespace Wml
{

WmlSmartPointer(Object);
class Controller;
typedef Object* (*FactoryFunction)(Stream&);

class WML_ITEM Object
{
    WmlDeclareRootRTTI;
    WmlDeclareRootSmartPointer;
    WmlDeclareRootStream;
    
public:
    // destruction
    virtual ~Object ();

    // names, support for searching by name
    void SetName (const char* acName);
    const char* GetName () const;
    virtual Object* GetObjectByName (const char* acName);
    virtual void GetAllObjectsByName (const char* acName,
        std::vector<Object*>& rkObjects);

    // unique identification
    unsigned int GetID () const;

    // controllers
    bool AttachControl (Controller* pkControl);
    bool DetachControl (Controller* pkControl);
    Controller* GetControllers ();

    // Total objects currently active.  Use this to track object leaks in an
    // application by calling this first in 'main' (or 'WinMain') and saving
    // the quantity.  Objects constructed pre-main will be counted in this
    // call.  At the end of 'main' (or 'WinMain'), call the function again
    // and compare to the quantity of the original call--the quantities should
    // be the same (still positive since post-main destruction has not yet
    // occurred).
    unsigned int GetTotalObjects ();

protected:
    // construction (abstract base class)
    Object ();

    // identification
    char* m_acName;
    unsigned int m_uiID;
    static unsigned int ms_uiNextID;

    // controllers
    ObjectPtr m_spkControl;

private:
    // total objects currently active
    static unsigned int ms_uiTotalObjects;
};

#include "WmlObject.inl"

}

#endif


⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -