<commit_before>/****************************************************************************

 This file is part of the GLC-lib library.
 Copyright (C) 2005-2006 <NAME> (<EMAIL>)
 Version 0.9.5, packaged on February, 2006.

 http://glc-lib.sourceforge.net

 GLC-lib is free software; you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
 the Free Software Foundation; either version 2 of the License, or
 (at your option) any later version.

 GLC-lib is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 GNU General Public License for more details.

 You should have received a copy of the GNU General Public License
 along with GLC-lib; if not, write to the Free Software
 Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA

*****************************************************************************/

//! \file glc_geometry.h Interface for the GLC_Geometry class.

#ifndef GLC_GEOMETRY_H_
#define GLC_GEOMETRY_H_

#include "glc_object.h"
#include "glc_material.h"

//////////////////////////////////////////////////////////////////////
//! \class GLC_Geometry
/*! \brief GLC_Geometry : parent class for all GLC class which contain
 *  geometrical data*/

/*! GLC_Geometry is a abstract class. \n \n
 *  Main attributes of GLC_Geometry:
 *		- Material : 	GLC_Material
 * 		- Graphic properties
 * 		- Transformation Matrix
 * 
 * GLC_Geometry provide :
 * 		- Function to create OpenGL list : GLC_Geometry::CreateList
 * 		- Function to draw Geometrie : GLC_Geometry::GlExecute
 * 		- Virtual function to overload for visual property: GLC_Geometry::GlPropGeom
 * 		- Virtual function to overload for Object topologie: GLC_Geometry::GlDraw
 *
 * \todo Add link to a sample inherit class.
 */
//////////////////////////////////////////////////////////////////////

class GLC_Geometry :
	public GLC_Object
{
//////////////////////////////////////////////////////////////////////
/*! @name Constructor / Destructor */
//@{
//////////////////////////////////////////////////////////////////////
public:
	GLC_Geometry(const char *pName, const GLfloat *pColor);
	virtual ~GLC_Geometry(void);
//@}

//////////////////////////////////////////////////////////////////////
/*! \name Get Functions*/
//@{
//////////////////////////////////////////////////////////////////////

public:

	//! Return Visibility state of geometrie
	const bool GetIsVisible(void) const
	{
		return m_IsVisible;
	}

	//! Return an array of 4 GLfloat which represent the color
	const GLfloat *GetfRGBA(void) const
	{
		return m_RGBAColor;
	}	
	//! Return Color Red component
	GLfloat GetfRed(void) const
	{
		return m_RGBAColor[0];
	}
	//! Return Color Green component
	GLfloat GetfGreen(void) const
	{
		return m_RGBAColor[1];
	}
	//! Return Color blue component
	GLfloat GetfBlue(void) const
	{
		return m_RGBAColor[2];
	}
	//! Return Color Alpha component
	GLfloat GetfAlpha(void) const
	{
		return m_RGBAColor[3];
	}
	//! Return transfomation 4x4Matrix
	const GLC_Matrix4x4 GetMatrix(void) const
	{
		return m_MatPos;
	}
	//! Return thickness
	const float GetThickness(void) const
	{
		return m_Thikness;
	}
	//! Return associated OpenGL list ID
	GLuint GetListID(void)
	{
		return m_ListID;
	}

	//! Return Validity of associated OpenGL list
	bool GetListIsValid(void) const
	{
		return m_ListIsValid;
	}

	//! Return Validity of geometry
	bool GetValidity(void) const
	{
		return (m_GeometryIsValid && m_ListIsValid);
	}

	//! Return material of geometry
	GLC_Material* GetMaterial(void)
	{
		return m_pMaterial;
	}

	//! Return true if blending is enable
	bool GetBlending(void) const
	{
		return m_IsBlended;
	}
//@}

//////////////////////////////////////////////////////////////////////
/*! \name Set Functions*/
//@{
//////////////////////////////////////////////////////////////////////

public:

	//! Set visibility statement
	void SetVisibility(bool v)
	{
		m_IsVisible= v;<commit_msg>Make the method GetMaterial const.<commit_after>/****************************************************************************

 This file is part of the GLC-lib library.
 Copyright (C) 2005-2006 <NAME> (<EMAIL>)
 Version 0.9.5, packaged on February, 2006.

 http://glc-lib.sourceforge.net

 GLC-lib is free software; you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
 the Free Software Foundation; either version 2 of the License, or
 (at your option) any later version.

 GLC-lib is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 GNU General Public License for more details.

 You should have received a copy of the GNU General Public License
 along with GLC-lib; if not, write to the Free Software
 Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA

*****************************************************************************/

//! \file glc_geometry.h Interface for the GLC_Geometry class.

#ifndef GLC_GEOMETRY_H_
#define GLC_GEOMETRY_H_

#include "glc_object.h"
#include "glc_material.h"

//////////////////////////////////////////////////////////////////////
//! \class GLC_Geometry
/*! \brief GLC_Geometry : parent class for all GLC class which contain
 *  geometrical data*/

/*! GLC_Geometry is a abstract class. \n \n
 *  Main attributes of GLC_Geometry:
 *		- Material : 	GLC_Material
 * 		- Graphic properties
 * 		- Transformation Matrix
 * 
 * GLC_Geometry provide :
 * 		- Function to create OpenGL list : GLC_Geometry::CreateList
 * 		- Function to draw Geometrie : GLC_Geometry::GlExecute
 * 		- Virtual function to overload for visual property: GLC_Geometry::GlPropGeom
 * 		- Virtual function to overload for Object topologie: GLC_Geometry::GlDraw
 *
 * \todo Add link to a sample inherit class.
 */
//////////////////////////////////////////////////////////////////////

class GLC_Geometry :
	public GLC_Object
{
//////////////////////////////////////////////////////////////////////
/*! @name Constructor / Destructor */
//@{
//////////////////////////////////////////////////////////////////////
public:
	GLC_Geometry(const char *pName, const GLfloat *pColor);
	virtual ~GLC_Geometry(void);
//@}

//////////////////////////////////////////////////////////////////////
/*! \name Get Functions*/
//@{
//////////////////////////////////////////////////////////////////////

public:

	//! Return Visibility state of geometrie
	const bool GetIsVisible(void) const
	{
		return m_IsVisible;
	}

	//! Return an array of 4 GLfloat which represent the color
	const GLfloat *GetfRGBA(void) const
	{
		return m_RGBAColor;
	}	
	//! Return Color Red component
	GLfloat GetfRed(void) const
	{
		return m_RGBAColor[0];
	}
	//! Return Color Green component
	GLfloat GetfGreen(void) const
	{
		return m_RGBAColor[1];
	}
	//! Return Color blue component
	GLfloat GetfBlue(void) const
	{
		return m_RGBAColor[2];
	}
	//! Return Color Alpha component
	GLfloat GetfAlpha(void) const
	{
		return m_RGBAColor[3];
	}
	//! Return transfomation 4x4Matrix
	const GLC_Matrix4x4 GetMatrix(void) const
	{
		return m_MatPos;
	}
	//! Return thickness
	const float GetThickness(void) const
	{
		return m_Thikness;
	}
	//! Return associated OpenGL list ID
	GLuint GetListID(void)
	{
		return m_ListID;
	}

	//! Return Validity of associated OpenGL list
	bool GetListIsValid(void) const
	{
		return m_ListIsValid;
	}

	//! Return Validity of geometry
	bool GetValidity(void) const
	{
		return (m_GeometryIsValid && m_ListIsValid);
	}

	//! Return material of geometry
	GLC_Material* GetMaterial(void) const
	{
		return m_pMaterial;
	}

	//! Return true if blending is enable
	bool GetBlending(void) const
	{
		return m_IsBlended;
	}
//@}

//////////////////////////////////////////////////////////////////////
/*! \name Set Functions*/
//@{
//////////////////////////////////////////////////////////////////////

public:

	//! Set visibility statement
	void SetVisibility(bool v)
	{
		m_IsVisible= v;
{'fraction_non_alphanumeric': 0.24825815914924826, 'fraction_numerical': 0.0088008800880088, 'mean_word_length': 2.18241929210424, 'pattern_counts': {'":': 0, '<': 7, '<?xml version=': 0, '>': 7, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '711492', 'n_tokens_mistral': 2401, 'n_tokens_neox': 2215, 'n_words': 754}