/********************************************************************/ /* Copyright (c) 2017 System fugen G.K. and Yuzi Mizuno */ /* All rights reserved. */ /********************************************************************/ #ifndef _MGAttribedGel_HH_ #define _MGAttribedGel_HH_ #include "mg/MGCL.h" #include "mg/Gel.h" #include "mgGL/VBO.h" // //Define MGAttribedGel Class. class MGAppearance; class MGObject; class MGGroup; class MGGLAttrib; class MGName; class mgVBO; class MGColor; /** @addtogroup GelRelated * @{ */ ///Is an abstract class which provides interfaces of MGGel that has MGAppearance. ///MGAppearance has MGAttrib's that decorate MGGel. MGAttribedGel is MGGel ///that has MGAppearance. class MG_DLL_DECLR MGAttribedGel:public MGGel{ friend class MGGroup; friend class MGObject; friend class mgVBO; friend class MGDNameControl; public: ///void constructor. MGAttribedGel():m_dlistName(nullptr){;}; ///copy constructor. MGAttribedGel(const MGAttribedGel& gel2); ///Assignment. ///When the leaf objects of this and gel2 are not equal, this assignment ///does nothing. virtual MGAttribedGel& operator=(const MGAttribedGel& gel2); virtual ~MGAttribedGel(); ///Get the MGAppearance pointer in this group. If not defined, null will be ///returned. virtual MGAppearance* appearance()=0; virtual const MGAppearance* appearance()const=0; //copy the appearance of gel2 to this. void copy_appearance(const MGAttribedGel& gel2); ///Obtain display list name. ///MGAttribedGel's deleteDlistName only deletes Dname to pointer map list. mgVBO* dlist_name()const; ///Judge if the display list for vmode is made or not. virtual bool displayList_is_made(MGCL::VIEWMODE vmode)const; ///Delete display list name from MGDNameControl. ///MGAttribedGel's deleteDlistName deletes mgVBO of this. void deleteDlistName()const; ///Process of draw or render attributes. virtual void drawAttrib( mgVBO& vbo,/// m_dlistName;///