mirror of
https://git.dev.opencascade.org/repos/occt.git
synced 2025-04-10 18:51:21 +03:00
Graphic3d_CLight is now defined as a class inheriting Standard_Transient, so that it's fields now should be accessed through methods. Graphic3d_CLight::IsEnabled() - new property allowing to disable light source everywhere. Confusing alias OpenGl_Light has been removed. Graphic3d_CLight::SetAttenuation() - the upper limit 1.0 of attenuation factors has been removed since it contradicts to OpenGL specs and does not make sense. Graphic3d_ZLayerSettings::Lights() - light sources list is now property of ZLayer. When defined, it overrides light sources defined for View/Viewer. New class Graphic3d_LightSet has been defined to define a set of light sources. V3d_Light - removed obsolete interface for debug drawing lights sources. V3d_Light is now an alias to Graphic3d_CLight. V3d_TypeOfLight is now defined as a typedef to Graphic3d_TypeOfLightSource.
67 lines
2.8 KiB
C++
67 lines
2.8 KiB
C++
// Created on: 1992-01-22
|
|
// Created by: GG
|
|
// Copyright (c) 1992-1999 Matra Datavision
|
|
// Copyright (c) 1999-2014 OPEN CASCADE SAS
|
|
//
|
|
// This file is part of Open CASCADE Technology software library.
|
|
//
|
|
// This library is free software; you can redistribute it and/or modify it under
|
|
// the terms of the GNU Lesser General Public License version 2.1 as published
|
|
// by the Free Software Foundation, with special exception defined in the file
|
|
// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
|
|
// distribution for complete text of the license and disclaimer of any warranty.
|
|
//
|
|
// Alternatively, this file may be used under the terms of Open CASCADE
|
|
// commercial license or contractual agreement.
|
|
|
|
#ifndef _V3d_PositionalLight_HeaderFile
|
|
#define _V3d_PositionalLight_HeaderFile
|
|
|
|
#include <V3d_PositionLight.hxx>
|
|
|
|
//! Creation and modification of an isolated (positional) light source.
|
|
//! It is also defined by the color and two attenuation factors ConstAttentuation() and LinearAttentuation().
|
|
//! The resulting attenuation factor determining the illumination of a surface depends on the following formula:
|
|
//! @code
|
|
//! F = 1 / (ConstAttenuation() + LinearAttenuation() * Distance)
|
|
//! @endcode
|
|
//! Where Distance is the distance of the isolated source from the surface.
|
|
class V3d_PositionalLight : public V3d_PositionLight
|
|
{
|
|
DEFINE_STANDARD_RTTIEXT(V3d_PositionalLight, V3d_PositionLight)
|
|
public:
|
|
|
|
//! Creates an isolated light source in the viewer with default attenuation factors (1.0, 0.0).
|
|
Standard_EXPORT V3d_PositionalLight (const gp_Pnt& thePos,
|
|
const Quantity_Color& theColor = Quantity_NOC_WHITE);
|
|
|
|
using Graphic3d_CLight::Position;
|
|
using Graphic3d_CLight::SetPosition;
|
|
|
|
public:
|
|
|
|
Standard_DEPRECATED("This constructor is deprecated - the light source should be added to V3d_Viewer explicitly by method V3d_Viewer::AddLight()")
|
|
Standard_EXPORT V3d_PositionalLight (const Handle(V3d_Viewer)& theViewer,
|
|
const Standard_Real theX,
|
|
const Standard_Real theY,
|
|
const Standard_Real theZ,
|
|
const Quantity_Color& theColor = Quantity_NOC_WHITE,
|
|
const Standard_Real theConstAttenuation = 1.0,
|
|
const Standard_Real theLinearAttenuation = 0.0);
|
|
|
|
//! @name hidden properties not applicable to positional light
|
|
private:
|
|
|
|
using Graphic3d_CLight::Direction;
|
|
using Graphic3d_CLight::SetDirection;
|
|
using Graphic3d_CLight::Angle;
|
|
using Graphic3d_CLight::SetAngle;
|
|
using Graphic3d_CLight::Concentration;
|
|
using Graphic3d_CLight::SetConcentration;
|
|
|
|
};
|
|
|
|
DEFINE_STANDARD_HANDLE(V3d_PositionalLight, V3d_PositionLight)
|
|
|
|
#endif // _V3d_PositionalLight_HeaderFile
|