/usr/include/citygml/material.h is in libcitygml-dev 2.0.8-1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 | #pragma once
#include <citygml/citygml_api.h>
#include <citygml/appearance.h>
#include <citygml/vecs.hpp>
#include <unordered_set>
namespace citygml {
class CityGMLFactory;
class LIBCITYGML_EXPORT Material : public Appearance
{
friend class CityGMLFactory;
public:
TVec3f getDiffuse() const;
void setDiffuse(TVec3f diffuse);
TVec3f getEmissive() const;
void setEmissive(TVec3f emissive);
TVec3f getSpecular() const;
void setSpecular(TVec3f specular);
float getAmbientIntensity() const;
void setAmbientIntensity(float intensity);
/**
* @brief the shininess of the material
* @return a value between 0 and 1, where 1 is the brightest intensity
* @note openGL defines the shininess as a value beteen 0 and 128 with 128 beeing the brightest intensity
*/
float getShininess() const;
void setShininess(float shininess);
float getTransparency() const;
void setTransparency(float transparancy);
bool isSmooth() const;
void setIsSmooth(bool isSmooth);
virtual std::shared_ptr<Material> asMaterial() override;
virtual std::shared_ptr<const Material> asMaterial() const override;
protected:
Material( const std::string& id );
TVec3f m_diffuse;
TVec3f m_emissive;
TVec3f m_specular;
float m_ambientIntensity;
float m_shininess;
float m_transparency;
bool m_isSmooth;
};
}
|