73 lines
2.8 KiB
Plaintext
73 lines
2.8 KiB
Plaintext
// Filename: lightLensNode.I
|
|
// Created by: drose (26Mar02)
|
|
//
|
|
////////////////////////////////////////////////////////////////////
|
|
//
|
|
// PANDA 3D SOFTWARE
|
|
// Copyright (c) Carnegie Mellon University. All rights reserved.
|
|
//
|
|
// All use of this software is subject to the terms of the revised BSD
|
|
// license. You should have received a copy of this license along
|
|
// with this source code in a file named "LICENSE."
|
|
//
|
|
////////////////////////////////////////////////////////////////////
|
|
|
|
////////////////////////////////////////////////////////////////////
|
|
// Function: LightLensNode::is_shadow_caster
|
|
// Access: Published
|
|
// Description: Returns whether this light is configured to cast
|
|
// shadows or not.
|
|
////////////////////////////////////////////////////////////////////
|
|
INLINE bool LightLensNode::
|
|
is_shadow_caster() {
|
|
return _shadow_caster;
|
|
}
|
|
|
|
////////////////////////////////////////////////////////////////////
|
|
// Function: LightLensNode::set_shadow_caster
|
|
// Access: Published
|
|
// Description: Sets the flag indicating whether this light should
|
|
// cast shadows or not. This is the variant without
|
|
// buffer size, meaning that the current buffer size
|
|
// will be kept (512x512 is the default).
|
|
// Note that enabling shadows will require the shader
|
|
// generator to be enabled on the scene.
|
|
////////////////////////////////////////////////////////////////////
|
|
INLINE void LightLensNode::
|
|
set_shadow_caster(bool caster) {
|
|
if (_shadow_caster && !caster) {
|
|
clear_shadow_buffers();
|
|
}
|
|
_shadow_caster = caster;
|
|
set_active(caster);
|
|
}
|
|
|
|
////////////////////////////////////////////////////////////////////
|
|
// Function: LightLensNode::set_shadow_caster
|
|
// Access: Published
|
|
// Description: Sets the flag indicating whether this light should
|
|
// cast shadows or not. The xsize and ysize parameters
|
|
// specify the size of the shadow buffer that will be
|
|
// set up, the sort parameter specifies the sort.
|
|
// Note that enabling shadows will require the shader
|
|
// generator to be enabled on the scene.
|
|
////////////////////////////////////////////////////////////////////
|
|
INLINE void LightLensNode::
|
|
set_shadow_caster(bool caster, int buffer_xsize, int buffer_ysize, int buffer_sort) {
|
|
if ((_shadow_caster && !caster) || buffer_xsize != _sb_xsize || buffer_ysize != _sb_ysize) {
|
|
clear_shadow_buffers();
|
|
}
|
|
_shadow_caster = caster;
|
|
_sb_xsize = buffer_xsize;
|
|
_sb_ysize = buffer_ysize;
|
|
if (buffer_sort != _sb_sort) {
|
|
ShadowBuffers::iterator it;
|
|
for(it = _sbuffers.begin(); it != _sbuffers.end(); ++it) {
|
|
(*it).second->set_sort(buffer_sort);
|
|
}
|
|
_sb_sort = buffer_sort;
|
|
}
|
|
set_active(caster);
|
|
}
|
|
|