| Server IP : 137.184.226.51 / Your IP : 10.8.0.1 Web Server : Apache/2.4.41 (Ubuntu) System : Linux vm8 5.4.0-216-generic #236-Ubuntu SMP Fri Apr 11 19:53:21 UTC 2025 x86_64 User : ( 1000) PHP Version : 7.4.33 Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare, MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : ON Directory : /var/www/aspa/three/core/ |
Upload File : |
import { EventDispatcher } from './EventDispatcher.js';
import { StaticDrawUsage } from '../constants.js';
let _id = 0;
class UniformsGroup extends EventDispatcher {
constructor() {
super();
this.isUniformsGroup = true;
Object.defineProperty( this, 'id', { value: _id ++ } );
this.name = '';
this.usage = StaticDrawUsage;
this.uniforms = [];
}
add( uniform ) {
this.uniforms.push( uniform );
return this;
}
remove( uniform ) {
const index = this.uniforms.indexOf( uniform );
if ( index !== - 1 ) this.uniforms.splice( index, 1 );
return this;
}
setName( name ) {
this.name = name;
return this;
}
setUsage( value ) {
this.usage = value;
return this;
}
dispose() {
this.dispatchEvent( { type: 'dispose' } );
return this;
}
copy( source ) {
this.name = source.name;
this.usage = source.usage;
const uniformsSource = source.uniforms;
this.uniforms.length = 0;
for ( let i = 0, l = uniformsSource.length; i < l; i ++ ) {
const uniforms = Array.isArray( uniformsSource[ i ] ) ? uniformsSource[ i ] : [ uniformsSource[ i ] ];
for ( let j = 0; j < uniforms.length; j ++ ) {
this.uniforms.push( uniforms[ j ].clone() );
}
}
return this;
}
clone() {
return new this.constructor().copy( this );
}
}
export { UniformsGroup };