Open CASCADE Technology
7.2.0
|
Creation and modification of a spot. More...
#include <V3d_SpotLight.hxx>
Public Member Functions | |
V3d_SpotLight (const Handle< V3d_Viewer > &theViewer, const Standard_Real theX, const Standard_Real theY, const Standard_Real theZ, const V3d_TypeOfOrientation theDirection=V3d_XnegYnegZpos, const Quantity_Color &theColor=Quantity_NOC_WHITE, const Standard_Real theConstAttenuation=1.0, const Standard_Real theLinearAttenuation=0.0, const Standard_Real theConcentration=1.0, const Standard_Real theAngle=0.523599) | |
Creates a light source of the Spot type in the viewer. The attenuation factor F which determines the illumination of a surface depends on the following formula : F = 1/(theConstAttenuation + theLinearAttenuation*Length) Length is the distance from the source to the surface. The default values (1.0,0.0) correspond to a minimum of attenuation. The concentration factor determines the dispersion of the light on the surface, the default value (1.0) corresponds to a minimum of dispersion. Warning! raises BadValue from V3d - If one of the coefficients is not between 0 and 1. If the lighting angle is <= 0 or > PI. More... | |
V3d_SpotLight (const Handle< V3d_Viewer > &theViewer, const Standard_Real theXt, const Standard_Real theYt, const Standard_Real theZt, const Standard_Real theXp, const Standard_Real theYp, const Standard_Real theZp, const Quantity_Color &theColor=Quantity_NOC_WHITE, const Standard_Real theConstAttenuation=1.0, const Standard_Real theLinearAttenuation=0.0, const Standard_Real theConcentration=1.0, const Standard_Real theAngle=0.523599) | |
Creates a light source of the Spot type in the viewer. theXt, theYt, theZt : Coordinate of light source Target. theXp, theYp, theZp : Coordinate of light source Position. The others parameters describe before. Warning! raises BadValue from V3d - If one of the coefficients is not between 0 and 1. If the lighting angle is <= 0 or > PI. More... | |
virtual void | SetPosition (const Standard_Real theX, const Standard_Real theY, const Standard_Real theZ) override |
Defines the position of the light source. More... | |
void | SetDirection (const Standard_Real theVx, const Standard_Real theVy, const Standard_Real theVz) |
Defines the direction of the light source. If the normal vector is NULL. More... | |
void | SetDirection (const V3d_TypeOfOrientation theOrientation) |
Defines the direction of the light source according to a predefined directional vector. More... | |
void | SetAttenuation (const Standard_Real theConstAttenuation, const Standard_Real theLinearAttenuation) |
Defines the coefficients of attenuation. Warning! raises BadValue from V3d if one of the coefficient is < 0 or > 1. More... | |
void | SetConcentration (const Standard_Real theConcentration) |
Defines the coefficient of concentration. if the coefficient is < 0 or > 1. More... | |
void | SetAngle (const Standard_Real theAngle) |
Defines the spot angle in RADIANS. Warning: raises BadValue from from V3d If the angle is <= 0 or > PI. More... | |
void | Display (const Handle< V3d_View > &theView, const V3d_TypeOfRepresentation theRepresentation) override |
Display the graphic structure of light source in the chosen view. We have three type of representation. More... | |
void | Direction (Standard_Real &theVx, Standard_Real &theVy, Standard_Real &theVz) const |
Returns the direction of the light source defined by theVx, theVy, theVz. More... | |
void | Position (Standard_Real &theX, Standard_Real &theY, Standard_Real &theZ) const override |
Returns the position of the light source. More... | |
void | Attenuation (Standard_Real &theConstAttentuation, Standard_Real &theLinearAttentuation) const |
Returns the attenuation factors A1,A2 of the light source. More... | |
Standard_Real | Concentration () const |
Standard_Real | Angle () const |
Returns the spot angle. More... | |
Public Member Functions inherited from V3d_PositionLight | |
void | SetTarget (const Standard_Real theX, const Standard_Real theY, const Standard_Real theZ) |
Defines the target of the light (the center of the sphere). More... | |
void | SetRadius (const Standard_Real theRadius) |
Define the radius. More... | |
void | OnHideFace (const Handle< V3d_View > &theView) |
Calculate the position of the light, on the hide face of the picking sphere. More... | |
void | OnSeeFace (const Handle< V3d_View > &theView) |
Calculate the position of the light, on the seen face of the picking sphere. More... | |
void | Tracking (const Handle< V3d_View > &theView, const V3d_TypeOfPickLight theWathPick, const Standard_Integer theXpix, const Standard_Integer theYpix) |
Tracking the light position, or the light space, or the radius of the light space, that depends of initial picking "theWhatPick" (see the pick method). If theWhatPick is SPACELIGHT, then the parameters theXpix, theYpix are the coordinates of a translation vector. More... | |
void | Erase () |
Erase the graphic structure of light source. More... | |
Standard_Real | Radius () const |
Returns the radius of the picking sphere. More... | |
Standard_Boolean | SeeOrHide (const Handle< V3d_View > &theView) const |
Returns the visibility status If True the source is visible. If False it's hidden. More... | |
void | Target (Standard_Real &theX, Standard_Real &theY, Standard_Real &theZ) const |
Returns the position of the target of the light source. More... | |
Public Member Functions inherited from V3d_Light | |
void | SetColor (const Quantity_Color &theColor) |
Defines the color of a light source by giving the basic color. More... | |
Quantity_Color | Color () const |
Returns the color of the light source. More... | |
V3d_TypeOfLight | Type () const |
Returns the Type of the Light. More... | |
Standard_Boolean | Headlight () const |
returns true if the light is a headlight More... | |
void | SetHeadlight (const Standard_Boolean theValue) |
Setup headlight flag. More... | |
void | SetIntensity (const Standard_Real theValue) |
Modifies the intensity of light source. More... | |
Standard_Real | Intensity () const |
returns the intensity of light source More... | |
Standard_Real | Smoothness () const |
returns the smoothness of light source More... | |
Standard_Boolean | IsDisplayed () const |
Returns TRUE when a light representation is displayed. More... | |
Public Member Functions inherited from Standard_Transient | |
Standard_Transient () | |
Empty constructor. More... | |
Standard_Transient (const Standard_Transient &) | |
Copy constructor – does nothing. More... | |
Standard_Transient & | operator= (const Standard_Transient &) |
Assignment operator, needed to avoid copying reference counter. More... | |
virtual | ~Standard_Transient () |
Destructor must be virtual. More... | |
virtual void | Delete () const |
Memory deallocator for transient classes. More... | |
virtual const opencascade::handle< Standard_Type > & | DynamicType () const |
Returns a type descriptor about this object. More... | |
Standard_Boolean | IsInstance (const opencascade::handle< Standard_Type > &theType) const |
Returns a true value if this is an instance of Type. More... | |
Standard_Boolean | IsInstance (const Standard_CString theTypeName) const |
Returns a true value if this is an instance of TypeName. More... | |
Standard_Boolean | IsKind (const opencascade::handle< Standard_Type > &theType) const |
Returns true if this is an instance of Type or an instance of any class that inherits from Type. Note that multiple inheritance is not supported by OCCT RTTI mechanism. More... | |
Standard_Boolean | IsKind (const Standard_CString theTypeName) const |
Returns true if this is an instance of TypeName or an instance of any class that inherits from TypeName. Note that multiple inheritance is not supported by OCCT RTTI mechanism. More... | |
Standard_Transient * | This () const |
Returns non-const pointer to this object (like const_cast). For protection against creating handle to objects allocated in stack or call from constructor, it will raise exception Standard_ProgramError if reference counter is zero. More... | |
Standard_Integer | GetRefCount () const |
Get the reference counter of this object. More... | |
void | IncrementRefCounter () const |
Increments the reference counter of this object. More... | |
Standard_Integer | DecrementRefCounter () const |
Decrements the reference counter of this object; returns the decremented value. More... | |
Additional Inherited Members | |
Public Types inherited from Standard_Transient | |
typedef void | base_type |
Returns a type descriptor about this object. More... | |
Static Public Member Functions inherited from Standard_Transient | |
static const char * | get_type_name () |
Returns a type descriptor about this object. More... | |
static const opencascade::handle< Standard_Type > & | get_type_descriptor () |
Returns type descriptor of Standard_Transient class. More... | |
Protected Member Functions inherited from V3d_PositionLight | |
V3d_PositionLight (const Handle< V3d_Viewer > &theViewer) | |
Protected Member Functions inherited from V3d_Light | |
V3d_Light (const Handle< V3d_Viewer > &theViewer) | |
void | SetType (const V3d_TypeOfLight theType) |
Sets type of the light. More... | |
const Graphic3d_CLight & | Light () const |
Return light properties associated to this light source. Hidden method exposed only to V3d_View. More... | |
Static Protected Member Functions inherited from V3d_Light | |
static void | SymetricPointOnSphere (const Handle< V3d_View > &aView, const Graphic3d_Vertex &Center, const Graphic3d_Vertex &aPoint, const Standard_Real Radius, Standard_Real &X, Standard_Real &Y, Standard_Real &Z, Standard_Real &VX, Standard_Real &VY, Standard_Real &VZ) |
Returns the symetric point coordinates of "aPoint" on the sphere of center "Center" and radius "Radius". VX,VY,VZ is the project vector of view. More... | |
Protected Attributes inherited from V3d_PositionLight | |
Graphic3d_Vertex | myTarget |
V3d_TypeOfRepresentation | myTypeOfRepresentation |
Protected Attributes inherited from V3d_Light | |
Graphic3d_CLight | myLight |
Handle< Graphic3d_Structure > | myGraphicStructure |
Handle< Graphic3d_Structure > | myGraphicStructure1 |
Creation and modification of a spot.
V3d_SpotLight::V3d_SpotLight | ( | const Handle< V3d_Viewer > & | theViewer, |
const Standard_Real | theX, | ||
const Standard_Real | theY, | ||
const Standard_Real | theZ, | ||
const V3d_TypeOfOrientation | theDirection = V3d_XnegYnegZpos , |
||
const Quantity_Color & | theColor = Quantity_NOC_WHITE , |
||
const Standard_Real | theConstAttenuation = 1.0 , |
||
const Standard_Real | theLinearAttenuation = 0.0 , |
||
const Standard_Real | theConcentration = 1.0 , |
||
const Standard_Real | theAngle = 0.523599 |
||
) |
Creates a light source of the Spot type in the viewer. The attenuation factor F which determines the illumination of a surface depends on the following formula : F = 1/(theConstAttenuation + theLinearAttenuation*Length) Length is the distance from the source to the surface. The default values (1.0,0.0) correspond to a minimum of attenuation. The concentration factor determines the dispersion of the light on the surface, the default value (1.0) corresponds to a minimum of dispersion. Warning! raises BadValue from V3d - If one of the coefficients is not between 0 and 1. If the lighting angle is <= 0 or > PI.
V3d_SpotLight::V3d_SpotLight | ( | const Handle< V3d_Viewer > & | theViewer, |
const Standard_Real | theXt, | ||
const Standard_Real | theYt, | ||
const Standard_Real | theZt, | ||
const Standard_Real | theXp, | ||
const Standard_Real | theYp, | ||
const Standard_Real | theZp, | ||
const Quantity_Color & | theColor = Quantity_NOC_WHITE , |
||
const Standard_Real | theConstAttenuation = 1.0 , |
||
const Standard_Real | theLinearAttenuation = 0.0 , |
||
const Standard_Real | theConcentration = 1.0 , |
||
const Standard_Real | theAngle = 0.523599 |
||
) |
Creates a light source of the Spot type in the viewer. theXt, theYt, theZt : Coordinate of light source Target. theXp, theYp, theZp : Coordinate of light source Position. The others parameters describe before. Warning! raises BadValue from V3d - If one of the coefficients is not between 0 and 1. If the lighting angle is <= 0 or > PI.
Standard_Real V3d_SpotLight::Angle | ( | ) | const |
Returns the spot angle.
void V3d_SpotLight::Attenuation | ( | Standard_Real & | theConstAttentuation, |
Standard_Real & | theLinearAttentuation | ||
) | const |
Returns the attenuation factors A1,A2 of the light source.
Standard_Real V3d_SpotLight::Concentration | ( | ) | const |
void V3d_SpotLight::Direction | ( | Standard_Real & | theVx, |
Standard_Real & | theVy, | ||
Standard_Real & | theVz | ||
) | const |
Returns the direction of the light source defined by theVx, theVy, theVz.
|
overridevirtual |
Display the graphic structure of light source in the chosen view. We have three type of representation.
Reimplemented from V3d_PositionLight.
|
overridevirtual |
Returns the position of the light source.
Implements V3d_PositionLight.
void V3d_SpotLight::SetAngle | ( | const Standard_Real | theAngle | ) |
Defines the spot angle in RADIANS. Warning: raises BadValue from from V3d If the angle is <= 0 or > PI.
void V3d_SpotLight::SetAttenuation | ( | const Standard_Real | theConstAttenuation, |
const Standard_Real | theLinearAttenuation | ||
) |
Defines the coefficients of attenuation. Warning! raises BadValue from V3d if one of the coefficient is < 0 or > 1.
void V3d_SpotLight::SetConcentration | ( | const Standard_Real | theConcentration | ) |
Defines the coefficient of concentration. if the coefficient is < 0 or > 1.
void V3d_SpotLight::SetDirection | ( | const Standard_Real | theVx, |
const Standard_Real | theVy, | ||
const Standard_Real | theVz | ||
) |
Defines the direction of the light source. If the normal vector is NULL.
void V3d_SpotLight::SetDirection | ( | const V3d_TypeOfOrientation | theOrientation | ) |
Defines the direction of the light source according to a predefined directional vector.
|
overridevirtual |
Defines the position of the light source.
Implements V3d_PositionLight.