pub trait GaussianPod:
for<'a> From<&'a Gaussian>
+ Into<Gaussian>
+ Send
+ Sync
+ Debug
+ Clone
+ Copy
+ PartialEq
+ NoUninit
+ AnyBitPattern {
type ShConfig: GaussianShConfig;
type Cov3dConfig: GaussianCov3dConfig;
// Provided methods
fn into_gaussian(self) -> Gaussian { ... }
fn from_gaussian(gaussian: &Gaussian) -> Self { ... }
fn features() -> [(&'static str, bool); 7] { ... }
fn wesl_features() -> Features { ... }
}Expand description
The Gaussian POD trait.
The number of configurations for this is the combination of all the GaussianShConfig
and GaussianCov3dConfig.
You can use the corresponding config by using the name in the following format:
GaussianPodWithSh{ShConfig}Cov3d{Cov3dConfig}Configs, e.g.
GaussianPodWithShSingleCov3dRotScaleConfigs.
Required Associated Types§
Sourcetype ShConfig: GaussianShConfig
type ShConfig: GaussianShConfig
The SH configuration.
Sourcetype Cov3dConfig: GaussianCov3dConfig
type Cov3dConfig: GaussianCov3dConfig
The covariance 3D configuration.
Provided Methods§
Sourcefn into_gaussian(self) -> Gaussian
fn into_gaussian(self) -> Gaussian
Convert from POD to Gaussian.
Sourcefn from_gaussian(gaussian: &Gaussian) -> Self
fn from_gaussian(gaussian: &Gaussian) -> Self
Create a new Gaussian POD from the Gaussian.
Sourcefn features() -> [(&'static str, bool); 7]
fn features() -> [(&'static str, bool); 7]
Create the features for Wesl compilation.
You may want to use GaussianPod::wesl_features most of the time instead.
Sourcefn wesl_features() -> Features
fn wesl_features() -> Features
Create the features for Wesl compilation as a wesl::Features.
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.