Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'source/blender/freestyle/intern/scene_graph/FrsMaterial.h')
-rw-r--r--source/blender/freestyle/intern/scene_graph/FrsMaterial.h759
1 files changed, 385 insertions, 374 deletions
diff --git a/source/blender/freestyle/intern/scene_graph/FrsMaterial.h b/source/blender/freestyle/intern/scene_graph/FrsMaterial.h
index 2a830a40da8..4176a558009 100644
--- a/source/blender/freestyle/intern/scene_graph/FrsMaterial.h
+++ b/source/blender/freestyle/intern/scene_graph/FrsMaterial.h
@@ -25,441 +25,452 @@
#include "../system/FreestyleConfig.h"
#ifdef WITH_CXX_GUARDEDALLOC
-#include "MEM_guardedalloc.h"
+# include "MEM_guardedalloc.h"
#endif
namespace Freestyle {
/*! Class defining a material */
-class FrsMaterial
-{
-public:
- /*! Default constructor */
- inline FrsMaterial();
-
- /*! Builds a Material from its line, diffuse, ambiant, specular, emissive
- * colors, a shininess coefficient and line color priority.
- * \param iLine:
- * A 4 element float-array containing the line color.
- * \param iDiffuse:
- * A 4 element float-array containing the diffuse color.
- * \param iAmbiant:
- * A 4 element float-array containing the ambiant color.
- * \param iSpecular:
- * A 4 element float-array containing the specular color.
- * \param iEmission:
- * A 4 element float-array containing the emissive color.
- * \param iShininess:
- * The shininess coefficient.
- * \param iPriority:
- * The line color priority.
- */
- inline FrsMaterial(const float *iLine, const float *iDiffuse, const float *iAmbiant, const float *iSpecular,
- const float *iEmission, const float iShininess, const int iPriority);
-
- /*! Copy constructor */
- inline FrsMaterial(const FrsMaterial& m);
-
- /*! Destructor */
- virtual ~FrsMaterial() {}
-
- /*! Returns the line color as a 4 float array */
- inline const float *line() const
- {
- return Line;
- }
-
- /*! Returns the red component of the line color */
- inline const float lineR() const
- {
- return Line[0];
- }
-
- /*! Returns the green component of the line color */
- inline const float lineG() const
- {
- return Line[1];
- }
-
- /*! Returns the blue component of the line color */
- inline const float lineB() const
- {
- return Line[2];
- }
-
- /*! Returns the alpha component of the line color */
- inline const float lineA() const
- {
- return Line[3];
- }
-
- /*! Returns the diffuse color as a 4 float array */
- inline const float *diffuse() const
- {
- return Diffuse;
- }
-
- /*! Returns the red component of the diffuse color */
- inline const float diffuseR() const
- {
- return Diffuse[0];
- }
-
- /*! Returns the green component of the diffuse color */
- inline const float diffuseG() const
- {
- return Diffuse[1];
- }
-
- /*! Returns the blue component of the diffuse color */
- inline const float diffuseB() const
- {
- return Diffuse[2];
- }
-
- /*! Returns the alpha component of the diffuse color */
- inline const float diffuseA() const
- {
- return Diffuse[3];
- }
-
- /*! Returns the specular color as a 4 float array */
- inline const float *specular() const
- {
- return Specular;
- }
-
- /*! Returns the red component of the specular color */
- inline const float specularR() const
- {
- return Specular[0];
- }
-
- /*! Returns the green component of the specular color */
- inline const float specularG() const
- {
- return Specular[1];
- }
-
- /*! Returns the blue component of the specular color */
- inline const float specularB() const
- {
- return Specular[2];
- }
-
- /*! Returns the alpha component of the specular color */
- inline const float specularA() const
- {
- return Specular[3];
- }
-
- /*! Returns the ambiant color as a 4 float array */
- inline const float *ambient() const
- {
- return Ambient;
- }
-
- /*! Returns the red component of the ambiant color */
- inline const float ambientR() const
- {
- return Ambient[0];
- }
-
- /*! Returns the green component of the ambiant color */
- inline const float ambientG() const
- {
- return Ambient[1];
- }
-
- /*! Returns the blue component of the ambiant color */
- inline const float ambientB() const
- {
- return Ambient[2];
- }
-
- /*! Returns the alpha component of the ambiant color */
- inline const float ambientA() const
- {
- return Ambient[3];
- }
-
- /*! Returns the emissive color as a 4 float array */
- inline const float *emission() const
- {
- return Emission;
- }
-
- /*! Returns the red component of the emissive color */
- inline const float emissionR() const
- {
- return Emission[0];
- }
-
- /*! Returns the green component of the emissive color */
- inline const float emissionG() const
- {
- return Emission[1];
- }
-
- /*! Returns the blue component of the emissive color */
- inline const float emissionB() const
- {
- return Emission[2];
- }
-
- /*! Returns the alpha component of the emissive color */
- inline const float emissionA() const
- {
- return Emission[3];
- }
-
- /*! Returns the shininess coefficient */
- inline const float shininess() const
- {
- return Shininess;
- }
-
- /*! Returns the line color priority */
- inline const int priority() const
- {
- return Priority;
- }
-
- /*! Sets the line color.
- * \param r:
- * Red component
- * \param g:
- * Green component
- * \param b:
- * Blue component
- * \param a:
- * Alpha component
- */
- inline void setLine(const float r, const float g, const float b, const float a);
-
- /*! Sets the diffuse color.
- * \param r:
- * Red component
- * \param g:
- * Green component
- * \param b:
- * Blue component
- * \param a:
- * Alpha component
- */
- inline void setDiffuse(const float r, const float g, const float b, const float a);
-
- /*! Sets the specular color.
- * \param r:
- * Red component
- * \param g:
- * Green component
- * \param b:
- * Blue component
- * \param a:
- * Alpha component
- */
- inline void setSpecular(const float r, const float g, const float b, const float a);
-
- /*! Sets the ambiant color.
- * \param r:
- * Red component
- * \param g:
- * Green component
- * \param b:
- * Blue component
- * \param a:
- * Alpha component
- */
- inline void setAmbient(const float r, const float g, const float b, const float a);
-
- /*! Sets the emissive color.
- * \param r:
- * Red component
- * \param g:
- * Green component
- * \param b:
- * Blue component
- * \param a:
- * Alpha component
- */
- inline void setEmission(const float r, const float g, const float b, const float a);
-
- /*! Sets the shininess.
- * \param s:
- * Shininess
- */
- inline void setShininess(const float s);
-
- /*! Sets the line color priority.
- * \param priority:
- * Priority
- */
- inline void setPriority(const int priority);
-
- /* operators */
- inline FrsMaterial& operator=(const FrsMaterial& m);
- inline bool operator!=(const FrsMaterial& m) const;
- inline bool operator==(const FrsMaterial& m) const;
-
-private:
- /*! Material properties */
- float Line[4];
- float Diffuse[4];
- float Specular[4];
- float Ambient[4];
- float Emission[4];
- float Shininess;
- int Priority;
+class FrsMaterial {
+ public:
+ /*! Default constructor */
+ inline FrsMaterial();
+
+ /*! Builds a Material from its line, diffuse, ambiant, specular, emissive
+ * colors, a shininess coefficient and line color priority.
+ * \param iLine:
+ * A 4 element float-array containing the line color.
+ * \param iDiffuse:
+ * A 4 element float-array containing the diffuse color.
+ * \param iAmbiant:
+ * A 4 element float-array containing the ambiant color.
+ * \param iSpecular:
+ * A 4 element float-array containing the specular color.
+ * \param iEmission:
+ * A 4 element float-array containing the emissive color.
+ * \param iShininess:
+ * The shininess coefficient.
+ * \param iPriority:
+ * The line color priority.
+ */
+ inline FrsMaterial(const float *iLine,
+ const float *iDiffuse,
+ const float *iAmbiant,
+ const float *iSpecular,
+ const float *iEmission,
+ const float iShininess,
+ const int iPriority);
+
+ /*! Copy constructor */
+ inline FrsMaterial(const FrsMaterial &m);
+
+ /*! Destructor */
+ virtual ~FrsMaterial()
+ {
+ }
+
+ /*! Returns the line color as a 4 float array */
+ inline const float *line() const
+ {
+ return Line;
+ }
+
+ /*! Returns the red component of the line color */
+ inline const float lineR() const
+ {
+ return Line[0];
+ }
+
+ /*! Returns the green component of the line color */
+ inline const float lineG() const
+ {
+ return Line[1];
+ }
+
+ /*! Returns the blue component of the line color */
+ inline const float lineB() const
+ {
+ return Line[2];
+ }
+
+ /*! Returns the alpha component of the line color */
+ inline const float lineA() const
+ {
+ return Line[3];
+ }
+
+ /*! Returns the diffuse color as a 4 float array */
+ inline const float *diffuse() const
+ {
+ return Diffuse;
+ }
+
+ /*! Returns the red component of the diffuse color */
+ inline const float diffuseR() const
+ {
+ return Diffuse[0];
+ }
+
+ /*! Returns the green component of the diffuse color */
+ inline const float diffuseG() const
+ {
+ return Diffuse[1];
+ }
+
+ /*! Returns the blue component of the diffuse color */
+ inline const float diffuseB() const
+ {
+ return Diffuse[2];
+ }
+
+ /*! Returns the alpha component of the diffuse color */
+ inline const float diffuseA() const
+ {
+ return Diffuse[3];
+ }
+
+ /*! Returns the specular color as a 4 float array */
+ inline const float *specular() const
+ {
+ return Specular;
+ }
+
+ /*! Returns the red component of the specular color */
+ inline const float specularR() const
+ {
+ return Specular[0];
+ }
+
+ /*! Returns the green component of the specular color */
+ inline const float specularG() const
+ {
+ return Specular[1];
+ }
+
+ /*! Returns the blue component of the specular color */
+ inline const float specularB() const
+ {
+ return Specular[2];
+ }
+
+ /*! Returns the alpha component of the specular color */
+ inline const float specularA() const
+ {
+ return Specular[3];
+ }
+
+ /*! Returns the ambiant color as a 4 float array */
+ inline const float *ambient() const
+ {
+ return Ambient;
+ }
+
+ /*! Returns the red component of the ambiant color */
+ inline const float ambientR() const
+ {
+ return Ambient[0];
+ }
+
+ /*! Returns the green component of the ambiant color */
+ inline const float ambientG() const
+ {
+ return Ambient[1];
+ }
+
+ /*! Returns the blue component of the ambiant color */
+ inline const float ambientB() const
+ {
+ return Ambient[2];
+ }
+
+ /*! Returns the alpha component of the ambiant color */
+ inline const float ambientA() const
+ {
+ return Ambient[3];
+ }
+
+ /*! Returns the emissive color as a 4 float array */
+ inline const float *emission() const
+ {
+ return Emission;
+ }
+
+ /*! Returns the red component of the emissive color */
+ inline const float emissionR() const
+ {
+ return Emission[0];
+ }
+
+ /*! Returns the green component of the emissive color */
+ inline const float emissionG() const
+ {
+ return Emission[1];
+ }
+
+ /*! Returns the blue component of the emissive color */
+ inline const float emissionB() const
+ {
+ return Emission[2];
+ }
+
+ /*! Returns the alpha component of the emissive color */
+ inline const float emissionA() const
+ {
+ return Emission[3];
+ }
+
+ /*! Returns the shininess coefficient */
+ inline const float shininess() const
+ {
+ return Shininess;
+ }
+
+ /*! Returns the line color priority */
+ inline const int priority() const
+ {
+ return Priority;
+ }
+
+ /*! Sets the line color.
+ * \param r:
+ * Red component
+ * \param g:
+ * Green component
+ * \param b:
+ * Blue component
+ * \param a:
+ * Alpha component
+ */
+ inline void setLine(const float r, const float g, const float b, const float a);
+
+ /*! Sets the diffuse color.
+ * \param r:
+ * Red component
+ * \param g:
+ * Green component
+ * \param b:
+ * Blue component
+ * \param a:
+ * Alpha component
+ */
+ inline void setDiffuse(const float r, const float g, const float b, const float a);
+
+ /*! Sets the specular color.
+ * \param r:
+ * Red component
+ * \param g:
+ * Green component
+ * \param b:
+ * Blue component
+ * \param a:
+ * Alpha component
+ */
+ inline void setSpecular(const float r, const float g, const float b, const float a);
+
+ /*! Sets the ambiant color.
+ * \param r:
+ * Red component
+ * \param g:
+ * Green component
+ * \param b:
+ * Blue component
+ * \param a:
+ * Alpha component
+ */
+ inline void setAmbient(const float r, const float g, const float b, const float a);
+
+ /*! Sets the emissive color.
+ * \param r:
+ * Red component
+ * \param g:
+ * Green component
+ * \param b:
+ * Blue component
+ * \param a:
+ * Alpha component
+ */
+ inline void setEmission(const float r, const float g, const float b, const float a);
+
+ /*! Sets the shininess.
+ * \param s:
+ * Shininess
+ */
+ inline void setShininess(const float s);
+
+ /*! Sets the line color priority.
+ * \param priority:
+ * Priority
+ */
+ inline void setPriority(const int priority);
+
+ /* operators */
+ inline FrsMaterial &operator=(const FrsMaterial &m);
+ inline bool operator!=(const FrsMaterial &m) const;
+ inline bool operator==(const FrsMaterial &m) const;
+
+ private:
+ /*! Material properties */
+ float Line[4];
+ float Diffuse[4];
+ float Specular[4];
+ float Ambient[4];
+ float Emission[4];
+ float Shininess;
+ int Priority;
#ifdef WITH_CXX_GUARDEDALLOC
- MEM_CXX_CLASS_ALLOC_FUNCS("Freestyle:FrsMaterial")
+ MEM_CXX_CLASS_ALLOC_FUNCS("Freestyle:FrsMaterial")
#endif
};
FrsMaterial::FrsMaterial()
{
- Line[0] = Line[1] = Line[2] = 0.0f;
- Line[3] = 1.0f;
+ Line[0] = Line[1] = Line[2] = 0.0f;
+ Line[3] = 1.0f;
- Ambient[0] = Ambient[1] = Ambient[2] = 0.2f;
- Ambient[3] = 1.0f;
+ Ambient[0] = Ambient[1] = Ambient[2] = 0.2f;
+ Ambient[3] = 1.0f;
- Diffuse[0] = Diffuse[1] = Diffuse[2] = 0.8f;
- Diffuse[3] = 1.0f;
+ Diffuse[0] = Diffuse[1] = Diffuse[2] = 0.8f;
+ Diffuse[3] = 1.0f;
- Emission[0] = Emission[1] = Emission[2] = 0.0f;
- Emission[3] = 1.0f;
+ Emission[0] = Emission[1] = Emission[2] = 0.0f;
+ Emission[3] = 1.0f;
- Specular[0] = Specular[1] = Specular[2] = 0.0f;
- Specular[3] = 1.0f;
+ Specular[0] = Specular[1] = Specular[2] = 0.0f;
+ Specular[3] = 1.0f;
- Shininess = 0.0f;
- Priority = 0;
+ Shininess = 0.0f;
+ Priority = 0;
}
-FrsMaterial::FrsMaterial(const float *iLine, const float *iDiffuse, const float *iAmbiant, const float *iSpecular,
- const float *iEmission, const float iShininess, const int iPriority)
+FrsMaterial::FrsMaterial(const float *iLine,
+ const float *iDiffuse,
+ const float *iAmbiant,
+ const float *iSpecular,
+ const float *iEmission,
+ const float iShininess,
+ const int iPriority)
{
- for (int i = 0; i < 4; i++) {
- Line[i] = iLine[i];
- Diffuse[i] = iDiffuse[i];
- Specular[i] = iSpecular[i];
- Ambient[i] = iAmbiant[i];
- Emission[i] = iEmission[i];
- }
-
- Shininess = iShininess;
- Priority = iPriority;
+ for (int i = 0; i < 4; i++) {
+ Line[i] = iLine[i];
+ Diffuse[i] = iDiffuse[i];
+ Specular[i] = iSpecular[i];
+ Ambient[i] = iAmbiant[i];
+ Emission[i] = iEmission[i];
+ }
+
+ Shininess = iShininess;
+ Priority = iPriority;
}
-FrsMaterial::FrsMaterial(const FrsMaterial& m)
+FrsMaterial::FrsMaterial(const FrsMaterial &m)
{
- for (int i = 0; i < 4; i++) {
- Line[i] = m.line()[i];
- Diffuse[i] = m.diffuse()[i];
- Specular[i] = m.specular()[i];
- Ambient[i] = m.ambient()[i];
- Emission[i] = m.emission()[i];
- }
-
- Shininess = m.shininess();
- Priority = m.priority();
+ for (int i = 0; i < 4; i++) {
+ Line[i] = m.line()[i];
+ Diffuse[i] = m.diffuse()[i];
+ Specular[i] = m.specular()[i];
+ Ambient[i] = m.ambient()[i];
+ Emission[i] = m.emission()[i];
+ }
+
+ Shininess = m.shininess();
+ Priority = m.priority();
}
void FrsMaterial::setLine(const float r, const float g, const float b, const float a)
{
- Line[0] = r;
- Line[1] = g;
- Line[2] = b;
- Line[3] = a;
+ Line[0] = r;
+ Line[1] = g;
+ Line[2] = b;
+ Line[3] = a;
}
void FrsMaterial::setDiffuse(const float r, const float g, const float b, const float a)
{
- Diffuse[0] = r;
- Diffuse[1] = g;
- Diffuse[2] = b;
- Diffuse[3] = a;
+ Diffuse[0] = r;
+ Diffuse[1] = g;
+ Diffuse[2] = b;
+ Diffuse[3] = a;
}
void FrsMaterial::setSpecular(const float r, const float g, const float b, const float a)
{
- Specular[0] = r;
- Specular[1] = g;
- Specular[2] = b;
- Specular[3] = a;
+ Specular[0] = r;
+ Specular[1] = g;
+ Specular[2] = b;
+ Specular[3] = a;
}
void FrsMaterial::setAmbient(const float r, const float g, const float b, const float a)
{
- Ambient[0] = r;
- Ambient[1] = g;
- Ambient[2] = b;
- Ambient[3] = a;
+ Ambient[0] = r;
+ Ambient[1] = g;
+ Ambient[2] = b;
+ Ambient[3] = a;
}
void FrsMaterial::setEmission(const float r, const float g, const float b, const float a)
{
- Emission[0] = r;
- Emission[1] = g;
- Emission[2] = b;
- Emission[3] = a;
+ Emission[0] = r;
+ Emission[1] = g;
+ Emission[2] = b;
+ Emission[3] = a;
}
void FrsMaterial::setShininess(const float s)
{
- Shininess = s;
+ Shininess = s;
}
void FrsMaterial::setPriority(const int priority)
{
- Priority = priority;
+ Priority = priority;
}
-FrsMaterial& FrsMaterial::operator=(const FrsMaterial& m)
+FrsMaterial &FrsMaterial::operator=(const FrsMaterial &m)
{
- for (int i = 0; i < 4; i++) {
- Line[i] = m.line()[i];
- Diffuse[i] = m.diffuse()[i];
- Specular[i] = m.specular()[i];
- Ambient[i] = m.ambient()[i];
- Emission[i] = m.emission()[i];
- }
-
- Shininess = m.shininess();
- Priority = m.priority();
- return *this;
+ for (int i = 0; i < 4; i++) {
+ Line[i] = m.line()[i];
+ Diffuse[i] = m.diffuse()[i];
+ Specular[i] = m.specular()[i];
+ Ambient[i] = m.ambient()[i];
+ Emission[i] = m.emission()[i];
+ }
+
+ Shininess = m.shininess();
+ Priority = m.priority();
+ return *this;
}
-bool FrsMaterial::operator!=(const FrsMaterial& m) const
+bool FrsMaterial::operator!=(const FrsMaterial &m) const
{
- if (Shininess != m.shininess())
- return true;
- if (Priority != m.priority())
- return true;
-
- for (int i = 0; i < 4; i++) {
- if (Line[i] != m.line()[i])
- return true;
- if (Diffuse[i] != m.diffuse()[i])
- return true;
- if (Specular[i] != m.specular()[i])
- return true;
- if (Ambient[i] != m.ambient()[i])
- return true;
- if (Emission[i] != m.emission()[i])
- return true;
- }
-
- return false;
+ if (Shininess != m.shininess())
+ return true;
+ if (Priority != m.priority())
+ return true;
+
+ for (int i = 0; i < 4; i++) {
+ if (Line[i] != m.line()[i])
+ return true;
+ if (Diffuse[i] != m.diffuse()[i])
+ return true;
+ if (Specular[i] != m.specular()[i])
+ return true;
+ if (Ambient[i] != m.ambient()[i])
+ return true;
+ if (Emission[i] != m.emission()[i])
+ return true;
+ }
+
+ return false;
}
-bool FrsMaterial::operator==(const FrsMaterial& m) const
+bool FrsMaterial::operator==(const FrsMaterial &m) const
{
- return (!((*this) != m));
+ return (!((*this) != m));
}
} /* namespace Freestyle */
-#endif // __FREESTYLE_MATERIAL_H__
+#endif // __FREESTYLE_MATERIAL_H__