Open CASCADE Technology
6.9.0
|
Creation and modification of a spot. More...
#include <V3d_SpotLight.hxx>
Public Member Functions | |
V3d_SpotLight (const Handle< V3d_Viewer > &VM, const V3d_Coordinate X, const V3d_Coordinate Y, const V3d_Coordinate Z, const V3d_TypeOfOrientation Direction=V3d_XnegYnegZpos, const Quantity_NameOfColor Color=Quantity_NOC_WHITE, const Quantity_Coefficient Attenuation1=1.0, const Quantity_Coefficient Attenuation2=0.0, const Quantity_Coefficient Concentration=1.0, const Quantity_PlaneAngle Angle=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/(A1 + A2*Length) A1,A2 being the 2 factors of attenuation 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 ou > PI . More... | |
V3d_SpotLight (const Handle< V3d_Viewer > &VM, const V3d_Coordinate Xt, const V3d_Coordinate Yt, const V3d_Coordinate Zt, const V3d_Coordinate Xp, const V3d_Coordinate Yp, const V3d_Coordinate Zp, const Quantity_NameOfColor Color=Quantity_NOC_WHITE, const Quantity_Coefficient Attenuation1=1.0, const Quantity_Coefficient Attenuation2=0.0, const Quantity_Coefficient Concentration=1.0, const Quantity_PlaneAngle Angle=0.523599) | |
Creates a light source of the Spot type in the viewer. Xt,Yt,Zt : Coordinate of light source Target. Xp,Yp,Zp : 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 ou > PI . More... | |
virtual void | SetPosition (const V3d_Coordinate X, const V3d_Coordinate Y, const V3d_Coordinate Z) |
Defines the position of the light source. More... | |
void | SetDirection (const Quantity_Parameter Vx, const Quantity_Parameter Vy, const Quantity_Parameter Vz) |
Defines the direction of the light source. If the normal vector is NULL. More... | |
void | SetDirection (const V3d_TypeOfOrientation Orientation) |
Defines the direction of the light source according to a predefined directional vector. More... | |
void | SetAttenuation (const Quantity_Coefficient A1, const Quantity_Coefficient A2) |
Defines the coefficients of attenuation. Warning! raises BadValue from V3d if one of the coefficient is <0 ou >1 . More... | |
void | SetConcentration (const Quantity_Coefficient C) |
Defines the coefficient of concentration. if the coefficient is <0 ou >1 . More... | |
void | SetAngle (const Quantity_PlaneAngle Angle) |
Defines the spot angle in RADIANS. Warning: raises BadValue from from V3d If the angle is <= 0 ou > PI . More... | |
void | Display (const Handle< V3d_View > &aView, const V3d_TypeOfRepresentation Representation) |
Display the graphic structure of light source in the choosen view. We have three type of representation. More... | |
void | Direction (Quantity_Parameter &Vx, Quantity_Parameter &Vy, Quantity_Parameter &Vz) const |
Returns the direction of the light source defined by Vx,Vy,Vz. More... | |
void | Position (V3d_Coordinate &X, V3d_Coordinate &Y, V3d_Coordinate &Z) const |
Returns the position of the light source. More... | |
void | Attenuation (Quantity_Coefficient &A1, Quantity_Coefficient &A2) 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 X, const V3d_Coordinate Y, const V3d_Coordinate Z) |
Defines the target of the light (the center of the sphere) More... | |
void | SetRadius (const Quantity_Parameter Radius) |
Define the radius. More... | |
void | OnHideFace (const Handle< V3d_View > &aView) |
Calculate the position of the light, on the hide face of the picking sphere. More... | |
void | OnSeeFace (const Handle< V3d_View > &aView) |
Calculate the position of the light, on the seen face of the picking sphere. More... | |
void | Tracking (const Handle< V3d_View > &aView, const V3d_TypeOfPickLight WathPick, const Standard_Integer Xpix, const Standard_Integer Ypix) |
Tracking the light position, or the light space, or the radius of the light space, that depends of initial picking "WhatPick" (see the pick method). If WhatPick is SPACELIGHT, then the parameters Xpix, Ypix 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 > &aView) const |
Returns the visibility status If True the source is visible. If False it's hidden. More... | |
void | Target (V3d_Coordinate &X, V3d_Coordinate &Y, V3d_Coordinate &Z) const |
Returns the position of the target of the light source. More... | |
Public Member Functions inherited from V3d_Light | |
void | SetColor (const Quantity_TypeOfColor Type, const Quantity_Parameter V1, const Quantity_Parameter V2, const Quantity_Parameter V3) |
Defines the colour of a light source according to the type of colour definition and the three corresponding values. More... | |
void | SetColor (const Quantity_NameOfColor Name) |
Defines the colour of a light source by giving the name of the colour in the form Quantity_NOC_xxxx . More... | |
void | SetColor (const Quantity_Color &Name) |
Defines the colour of a light source by giving the basic colour. More... | |
void | Color (const Quantity_TypeOfColor Type, Quantity_Parameter &V1, Quantity_Parameter &V2, Quantity_Parameter &V3) const |
Returns the colour of the light source depending of the color type. More... | |
void | Color (Quantity_NameOfColor &Name) const |
Returns the colour of the light source. More... | |
Quantity_Color | Color () const |
Returns the colour 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... | |
Standard_Boolean | IsDisplayed () const |
Returns TRUE when a light representation is displayed. More... | |
Public Member Functions inherited from MMgt_TShared | |
virtual void | Delete () const |
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 Handle_Standard_Type & | DynamicType () const |
Returns a type information object about this object. More... | |
Standard_Boolean | IsInstance (const 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 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... | |
virtual Handle_Standard_Transient | This () const |
Returns a Handle which references this object. Must never be called to objects created in stack. More... | |
Standard_Integer | GetRefCount () const |
Get the reference counter of this object. More... | |
Additional Inherited Members | |
Protected Member Functions inherited from V3d_PositionLight | |
V3d_PositionLight (const Handle< V3d_Viewer > &VM) | |
Protected Member Functions inherited from V3d_Light | |
V3d_Light (const Handle< V3d_Viewer > &VM) | |
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 | |
V3d_TypeOfLight | MyType |
Handle< Visual3d_Light > | MyLight |
Handle< Graphic3d_Structure > | MyGraphicStructure |
Handle< Graphic3d_Structure > | MyGraphicStructure1 |
Creation and modification of a spot.
V3d_SpotLight::V3d_SpotLight | ( | const Handle< V3d_Viewer > & | VM, |
const V3d_Coordinate | X, | ||
const V3d_Coordinate | Y, | ||
const V3d_Coordinate | Z, | ||
const V3d_TypeOfOrientation | Direction = V3d_XnegYnegZpos , |
||
const Quantity_NameOfColor | Color = Quantity_NOC_WHITE , |
||
const Quantity_Coefficient | Attenuation1 = 1.0 , |
||
const Quantity_Coefficient | Attenuation2 = 0.0 , |
||
const Quantity_Coefficient | Concentration = 1.0 , |
||
const Quantity_PlaneAngle | Angle = 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/(A1 + A2*Length) A1,A2 being the 2 factors of attenuation 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 ou > PI .
V3d_SpotLight::V3d_SpotLight | ( | const Handle< V3d_Viewer > & | VM, |
const V3d_Coordinate | Xt, | ||
const V3d_Coordinate | Yt, | ||
const V3d_Coordinate | Zt, | ||
const V3d_Coordinate | Xp, | ||
const V3d_Coordinate | Yp, | ||
const V3d_Coordinate | Zp, | ||
const Quantity_NameOfColor | Color = Quantity_NOC_WHITE , |
||
const Quantity_Coefficient | Attenuation1 = 1.0 , |
||
const Quantity_Coefficient | Attenuation2 = 0.0 , |
||
const Quantity_Coefficient | Concentration = 1.0 , |
||
const Quantity_PlaneAngle | Angle = 0.523599 |
||
) |
Creates a light source of the Spot type in the viewer. Xt,Yt,Zt : Coordinate of light source Target. Xp,Yp,Zp : 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 ou > PI .
Quantity_PlaneAngle V3d_SpotLight::Angle | ( | ) | const |
Returns the spot angle.
void V3d_SpotLight::Attenuation | ( | Quantity_Coefficient & | A1, |
Quantity_Coefficient & | A2 | ||
) | const |
Returns the attenuation factors A1,A2 of the light source.
Quantity_Coefficient V3d_SpotLight::Concentration | ( | ) | const |
void V3d_SpotLight::Direction | ( | Quantity_Parameter & | Vx, |
Quantity_Parameter & | Vy, | ||
Quantity_Parameter & | Vz | ||
) | const |
Returns the direction of the light source defined by Vx,Vy,Vz.
|
virtual |
Display the graphic structure of light source in the choosen view. We have three type of representation.
Reimplemented from V3d_PositionLight.
|
virtual |
Returns the position of the light source.
Implements V3d_PositionLight.
void V3d_SpotLight::SetAngle | ( | const Quantity_PlaneAngle | Angle | ) |
Defines the spot angle in RADIANS. Warning: raises BadValue from from V3d If the angle is <= 0 ou > PI .
void V3d_SpotLight::SetAttenuation | ( | const Quantity_Coefficient | A1, |
const Quantity_Coefficient | A2 | ||
) |
Defines the coefficients of attenuation. Warning! raises BadValue from V3d if one of the coefficient is <0 ou >1 .
void V3d_SpotLight::SetConcentration | ( | const Quantity_Coefficient | C | ) |
Defines the coefficient of concentration. if the coefficient is <0 ou >1 .
void V3d_SpotLight::SetDirection | ( | const Quantity_Parameter | Vx, |
const Quantity_Parameter | Vy, | ||
const Quantity_Parameter | Vz | ||
) |
Defines the direction of the light source. If the normal vector is NULL.
void V3d_SpotLight::SetDirection | ( | const V3d_TypeOfOrientation | Orientation | ) |
Defines the direction of the light source according to a predefined directional vector.
|
virtual |
Defines the position of the light source.
Implements V3d_PositionLight.