///////////////////////////////////////////////////////////////////////////////
// Copyright (C) 2002-2025, Open Design Alliance (the "Alliance").
// All rights reserved.
//
// This software and its documentation and related materials are owned by
// the Alliance. The software may only be incorporated into application
// programs owned by members of the Alliance, subject to a signed
// Membership Agreement and Supplemental Software License Agreement with the
// Alliance. The structure and organization of this software are the valuable
// trade secrets of the Alliance and its suppliers. The software is also
// protected by copyright law and international treaty provisions. Application
// programs incorporating this software must include the following statement
// with their copyright notices:
//
// This application incorporates Open Design Alliance software pursuant to a license
// agreement with Open Design Alliance.
// Open Design Alliance Copyright (C) 2002-2025 by Open Design Alliance.
// All rights reserved.
//
// By use of this software, its documentation or related materials, you
// acknowledge and accept the above terms.
///////////////////////////////////////////////////////////////////////////////
// This file is generated automatically.
#ifndef _IFC4X4_IFCSURFACESTYLEREFRACTION_AUTO_IMPL_H
#define _IFC4X4_IFCSURFACESTYLEREFRACTION_AUTO_IMPL_H
#include "IfcPresentationItemAutoImpl.h"
#include "TD_PackPush.h"
/** \details
The namespace contains schema-dependent classes, definitions and sub routines
for work with IFC4X4 express schema definitions.
*/
namespace OdIfc4x4 {
/** \details
IfcSurfaceStyleRefraction extends the surface style lighting,
or the surface style rendering definition for properties for calculation of physically exact illuminance by adding seldomly used properties.
Currently this includes the refraction index (by which the light ray refracts when passing through a prism)
and the dispersion factor (or Abbe constant) which takes into account the wavelength dependency of the refraction.
\remarks
If such refraction properties are used, the IfcSurfaceStyle should include within its set of Styles
(depending on whether rendering or lighting is used) an instance of IfcSurfaceStyleLighting and IfcSurfaceStyleRefraction,
or an instance of IfcSurfaceStyleRendering and IfcSurfaceStyleRefraction.
*/
class IFC4X4_EXPORT IfcSurfaceStyleRefraction : public IfcPresentationItem
{
//DOM-IGNORE-BEGIN
OD_EXP_DECLARE_MEMBERS(OdIfc4x4::IfcSurfaceStyleRefraction);
//DOM-IGNORE-END
public:
//
// OdDAI early binding accessors
//
/** \details
Returns the value of RefractionIndex attribute.
This attribute represents the index of refraction for all wave lengths of light.
The refraction index is the ratio between the speed of light in a vacuum and the speed of light in the medium.
E.g. glass has a refraction index of 1.5, whereas water has an index of 1.33.
\returns
Returns the value of RefractionIndex attribute.
*/
double getRefractionIndex() const;
/** \details
Sets the value of RefractionIndex attribute.
This attribute represents the index of refraction for all wave lengths of light.
The refraction index is the ratio between the speed of light in a vacuum and the speed of light in the medium.
E.g. glass has a refraction index of 1.5, whereas water has an index of 1.33.
\param RefractionIndex [in] Refraction index to set.
*/
void setRefractionIndex(double RefractionIndex);
/** \details
Returns the value of DispersionFactor attribute.
DispersionFactor is the Abbe constant given as a fixed ratio between the refractive indices of the material at different wavelengths.
A low Abbe number means a high dispersive power. In general this translates to a greater angular spread of the emergent spectrum.
\returns
Returns the value of DispersionFactor attribute.
*/
double getDispersionFactor() const;
/** \details
Sets the value of DispersionFactor attribute.
DispersionFactor is the Abbe constant given as a fixed ratio between the refractive indices of the material at different wavelengths.
A low Abbe number means a high dispersive power. In general this translates to a greater angular spread of the emergent spectrum.
\param DispersionFactor [in] Dispersion factor to set.
*/
void setDispersionFactor(double DispersionFactor);
public:
/** \details
Default constructor for the IfcSurfaceStyleRefraction class.
*/
IfcSurfaceStyleRefraction();
/** \details
Reads object's data from the specified filer.
\param rdFiler [in] Pointer to a filer from which to read the data.
\returns
A value of OdResult type that contains the result of the method execution.
*/
virtual OdResult inFields(OdDAI::OdSpfFilerBase* rdFiler) override;
/** \details
Writes object's data the the specified filer.
\param wrFiler [in] Pointer to a filer to which to write the data.
\returns
A value of OdResult type that contains the result of the method execution.
*/
virtual OdResult outFields(OdDAI::OdSpfFilerBase* wrFiler) override;
/** \details
Returns a type of a class instance.
\returns
Pointer to the