diff --git a/panda/src/gobj/material.I b/panda/src/gobj/material.I index 31c425c757..eac9d24c6a 100644 --- a/panda/src/gobj/material.I +++ b/panda/src/gobj/material.I @@ -51,6 +51,19 @@ INLINE Material:: ~Material() { } +//////////////////////////////////////////////////////////////////// +// Function: Material::get_default +// Access: Published, Static +// Description: Returns the default material. +//////////////////////////////////////////////////////////////////// +INLINE Material *Material:: +get_default() { + if (_default == 0) { + _default = new Material("default"); + } + return _default; +} + //////////////////////////////////////////////////////////////////// // Function: Material::has_ambient // Access: Published diff --git a/panda/src/gobj/material.cxx b/panda/src/gobj/material.cxx index 1f9524a80b..e30c0246fa 100644 --- a/panda/src/gobj/material.cxx +++ b/panda/src/gobj/material.cxx @@ -25,6 +25,7 @@ #include "bamWriter.h" TypeHandle Material::_type_handle; +PT(Material) Material::_default; //////////////////////////////////////////////////////////////////// // Function: Material::Copy Assignment Operator diff --git a/panda/src/gobj/material.h b/panda/src/gobj/material.h index 42003aacda..669d0d62c6 100644 --- a/panda/src/gobj/material.h +++ b/panda/src/gobj/material.h @@ -40,6 +40,8 @@ PUBLISHED: void operator = (const Material ©); INLINE ~Material(); + INLINE static Material *get_default(); + INLINE bool has_ambient() const; INLINE const Colorf &get_ambient() const; void set_ambient(const Colorf &color); @@ -84,6 +86,8 @@ private: Colorf _emission; float _shininess; + static PT(Material) _default; + enum Flags { F_ambient = 0x001, F_diffuse = 0x002,