Open CASCADE Technology  7.2.0
Public Member Functions

V3d_SpotLight Class Reference

Creation and modification of a spot. More...

#include <V3d_SpotLight.hxx>

Inheritance diagram for V3d_SpotLight:
Inheritance graph
[legend]

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_Transientoperator= (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_TransientThis () 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_CLightLight () 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_StructuremyGraphicStructure
 
Handle< Graphic3d_StructuremyGraphicStructure1
 

Detailed Description

Creation and modification of a spot.

Constructor & Destructor Documentation

◆ V3d_SpotLight() [1/2]

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() [2/2]

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.

Member Function Documentation

◆ Angle()

Standard_Real V3d_SpotLight::Angle ( ) const

Returns the spot angle.

◆ Attenuation()

void V3d_SpotLight::Attenuation ( Standard_Real theConstAttentuation,
Standard_Real theLinearAttentuation 
) const

Returns the attenuation factors A1,A2 of the light source.

◆ Concentration()

Standard_Real V3d_SpotLight::Concentration ( ) const

◆ Direction()

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.

◆ Display()

void V3d_SpotLight::Display ( const Handle< V3d_View > &  theView,
const V3d_TypeOfRepresentation  theRepresentation 
)
overridevirtual

Display the graphic structure of light source in the chosen view. We have three type of representation.

  • SIMPLE : Only the light source is displayed.
  • PARTIAL : The light source and the light space are displayed.
  • COMPLETE : The light source, the light space and the radius of light space are displayed. We can choose the "SAMELAST" as parameter of representation In this case the graphic structure representation will be the last displayed.

Reimplemented from V3d_PositionLight.

◆ Position()

void V3d_SpotLight::Position ( Standard_Real theX,
Standard_Real theY,
Standard_Real theZ 
) const
overridevirtual

Returns the position of the light source.

Implements V3d_PositionLight.

◆ SetAngle()

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.

◆ SetAttenuation()

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.

◆ SetConcentration()

void V3d_SpotLight::SetConcentration ( const Standard_Real  theConcentration)

Defines the coefficient of concentration. if the coefficient is < 0 or > 1.

◆ SetDirection() [1/2]

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.

◆ SetDirection() [2/2]

void V3d_SpotLight::SetDirection ( const V3d_TypeOfOrientation  theOrientation)

Defines the direction of the light source according to a predefined directional vector.

◆ SetPosition()

virtual void V3d_SpotLight::SetPosition ( const Standard_Real  theX,
const Standard_Real  theY,
const Standard_Real  theZ 
)
overridevirtual

Defines the position of the light source.

Implements V3d_PositionLight.


The documentation for this class was generated from the following file: