From 7625c2cfa277d2c4ad10ca64ca996e0983743f9b Mon Sep 17 00:00:00 2001 From: Josh Yelon Date: Fri, 25 Jan 2008 03:28:17 +0000 Subject: [PATCH] Added a fast function to obtain the default material --- panda/src/gobj/material.I | 13 +++++++++++++ panda/src/gobj/material.cxx | 1 + panda/src/gobj/material.h | 4 ++++ 3 files changed, 18 insertions(+) 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,