Open CASCADE Technology
7.1.0.beta
|
Creation and modification of a spot. More...
#include <V3d_SpotLight.hxx>
Public Member Functions | |
V3d_SpotLight (const Handle< V3d_Viewer > &theViewer, const V3d_Coordinate theX, const V3d_Coordinate theY, const V3d_Coordinate theZ, const V3d_TypeOfOrientation theDirection=V3d_XnegYnegZpos, const Quantity_NameOfColor theColor=Quantity_NOC_WHITE, const Quantity_Coefficient theConstAttenuation=1.0, const Quantity_Coefficient theLinearAttenuation=0.0, const Quantity_Coefficient theConcentration=1.0, const Quantity_PlaneAngle 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 V3d_Coordinate theXt, const V3d_Coordinate theYt, const V3d_Coordinate theZt, const V3d_Coordinate theXp, const V3d_Coordinate theYp, const V3d_Coordinate theZp, const Quantity_NameOfColor theColor=Quantity_NOC_WHITE, const Quantity_Coefficient theConstAttenuation=1.0, const Quantity_Coefficient theLinearAttenuation=0.0, const Quantity_Coefficient theConcentration=1.0, const Quantity_PlaneAngle 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 V3d_Coordinate theX, const V3d_Coordinate theY, const V3d_Coordinate theZ) override |
Defines the position of the light source. More... | |
void | SetDirection (const Quantity_Parameter theVx, const Quantity_Parameter theVy, const Quantity_Parameter 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 Quantity_Coefficient theConstAttenuation, const Quantity_Coefficient theLinearAttenuation) |
Defines the coefficients of attenuation. Warning! raises BadValue from V3d if one of the coefficient is < 0 or > 1. More... | |
void | SetConcentration (const Quantity_Coefficient theConcentration) |
Defines the coefficient of concentration. if the coefficient is < 0 or > 1. More... | |
void | SetAngle (const Quantity_PlaneAngle 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 (Quantity_Parameter &theVx, Quantity_Parameter &theVy, Quantity_Parameter &theVz) const |
Returns the direction of the light source defined by theVx, theVy, theVz. More... | |
void | Position (V3d_Coordinate &theX, V3d_Coordinate &theY, V3d_Coordinate &theZ) const override |
Returns the position of the light source. More... | |
void | Attenuation (Quantity_Coefficient &theConstAttentuation, Quantity_Coefficient &theLinearAttentuation) const |
Returns the attenuation factors A1,A2 of the light source. More... | |
Quantity_Coefficient | Concentration () const |
Quantity_PlaneAngle | Angle () const |
Returns the spot angle. More... | |
Public Member Functions inherited from V3d_PositionLight | |
void | SetTarget (const V3d_Coordinate theX, const V3d_Coordinate theY, const V3d_Coordinate theZ) |
Defines the target of the light (the center of the sphere). More... | |
void | SetRadius (const Quantity_Parameter 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... | |
Quantity_Parameter | 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 (V3d_Coordinate &theX, V3d_Coordinate &theY, V3d_Coordinate &theZ) const |
Returns the position of the target of the light source. More... | |
Public Member Functions inherited from V3d_Light | |
void | SetColor (const Quantity_TypeOfColor theType, const Quantity_Parameter theValue1, const Quantity_Parameter theValue2, const Quantity_Parameter theValue3) |
Defines the color of a light source according to the type of color definition and the three corresponding values. More... | |
void | SetColor (const Quantity_NameOfColor theName) |
Defines the color of a light source by giving the name of the color in the form Quantity_NOC_xxxx. More... | |
void | SetColor (const Quantity_Color &theColor) |
Defines the color of a light source by giving the basic color. More... | |
void | Color (const Quantity_TypeOfColor theType, Quantity_Parameter &theValue1, Quantity_Parameter &theValue2, Quantity_Parameter &theValue3) const |
Returns the color of the light source depending of the color type. More... | |
void | Color (Quantity_NameOfColor &theName) const |
Returns the color of the light source. 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 MMgt_TShared | |
virtual void | Delete () const override |
Memory deallocator for transient classes. 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 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 Quantity_Parameter Radius, V3d_Coordinate &X, V3d_Coordinate &Y, V3d_Coordinate &Z, Quantity_Parameter &VX, Quantity_Parameter &VY, Quantity_Parameter &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 V3d_Coordinate | theX, | ||
const V3d_Coordinate | theY, | ||
const V3d_Coordinate | theZ, | ||
const V3d_TypeOfOrientation | theDirection = V3d_XnegYnegZpos , |
||
const Quantity_NameOfColor | theColor = Quantity_NOC_WHITE , |
||
const Quantity_Coefficient | theConstAttenuation = 1.0 , |
||
const Quantity_Coefficient | theLinearAttenuation = 0.0 , |
||
const Quantity_Coefficient | theConcentration = 1.0 , |
||
const Quantity_PlaneAngle | 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 V3d_Coordinate | theXt, | ||
const V3d_Coordinate | theYt, | ||
const V3d_Coordinate | theZt, | ||
const V3d_Coordinate | theXp, | ||
const V3d_Coordinate | theYp, | ||
const V3d_Coordinate | theZp, | ||
const Quantity_NameOfColor | theColor = Quantity_NOC_WHITE , |
||
const Quantity_Coefficient | theConstAttenuation = 1.0 , |
||
const Quantity_Coefficient | theLinearAttenuation = 0.0 , |
||
const Quantity_Coefficient | theConcentration = 1.0 , |
||
const Quantity_PlaneAngle | 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.
Quantity_PlaneAngle V3d_SpotLight::Angle | ( | ) | const |
Returns the spot angle.
void V3d_SpotLight::Attenuation | ( | Quantity_Coefficient & | theConstAttentuation, |
Quantity_Coefficient & | theLinearAttentuation | ||
) | const |
Returns the attenuation factors A1,A2 of the light source.
Quantity_Coefficient V3d_SpotLight::Concentration | ( | ) | const |
void V3d_SpotLight::Direction | ( | Quantity_Parameter & | theVx, |
Quantity_Parameter & | theVy, | ||
Quantity_Parameter & | 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 Quantity_PlaneAngle | 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 Quantity_Coefficient | theConstAttenuation, |
const Quantity_Coefficient | 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 Quantity_Coefficient | theConcentration | ) |
Defines the coefficient of concentration. if the coefficient is < 0 or > 1.
void V3d_SpotLight::SetDirection | ( | const Quantity_Parameter | theVx, |
const Quantity_Parameter | theVy, | ||
const Quantity_Parameter | 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.