use openusd::Result;
use openusd::sdf::{self, Variability};
use openusd::usd::{Attribute, Relationship, SchemaBase};
use super::tokens as tok;
pub trait RenderSettingsBase: SchemaBase {
fn resolution_attr(&self) -> Attribute {
self.prim().attribute(tok::A_RESOLUTION)
}
fn create_resolution_attr(&self) -> Result<Attribute> {
Ok(self
.prim()
.create_attribute(tok::A_RESOLUTION, sdf::ValueTypeName::INT2)?
.set_custom(false)?
.set_variability(Variability::Uniform)?)
}
fn pixel_aspect_ratio_attr(&self) -> Attribute {
self.prim().attribute(tok::A_PIXEL_ASPECT_RATIO)
}
fn create_pixel_aspect_ratio_attr(&self) -> Result<Attribute> {
Ok(self
.prim()
.create_attribute(tok::A_PIXEL_ASPECT_RATIO, sdf::ValueTypeName::FLOAT)?
.set_custom(false)?
.set_variability(Variability::Uniform)?)
}
fn aspect_ratio_conform_policy_attr(&self) -> Attribute {
self.prim().attribute(tok::A_ASPECT_RATIO_CONFORM_POLICY)
}
fn create_aspect_ratio_conform_policy_attr(&self) -> Result<Attribute> {
Ok(self
.prim()
.create_attribute(tok::A_ASPECT_RATIO_CONFORM_POLICY, sdf::ValueTypeName::TOKEN)?
.set_custom(false)?
.set_variability(Variability::Uniform)?)
}
fn data_window_ndc_attr(&self) -> Attribute {
self.prim().attribute(tok::A_DATA_WINDOW_NDC)
}
fn create_data_window_ndc_attr(&self) -> Result<Attribute> {
Ok(self
.prim()
.create_attribute(tok::A_DATA_WINDOW_NDC, sdf::ValueTypeName::FLOAT4)?
.set_custom(false)?
.set_variability(Variability::Uniform)?)
}
fn instantaneous_shutter_attr(&self) -> Attribute {
self.prim().attribute(tok::A_INSTANTANEOUS_SHUTTER)
}
fn create_instantaneous_shutter_attr(&self) -> Result<Attribute> {
Ok(self
.prim()
.create_attribute(tok::A_INSTANTANEOUS_SHUTTER, sdf::ValueTypeName::BOOL)?
.set_custom(false)?
.set_variability(Variability::Uniform)?)
}
fn disable_motion_blur_attr(&self) -> Attribute {
self.prim().attribute(tok::A_DISABLE_MOTION_BLUR)
}
fn create_disable_motion_blur_attr(&self) -> Result<Attribute> {
Ok(self
.prim()
.create_attribute(tok::A_DISABLE_MOTION_BLUR, sdf::ValueTypeName::BOOL)?
.set_custom(false)?
.set_variability(Variability::Uniform)?)
}
fn disable_depth_of_field_attr(&self) -> Attribute {
self.prim().attribute(tok::A_DISABLE_DEPTH_OF_FIELD)
}
fn create_disable_depth_of_field_attr(&self) -> Result<Attribute> {
Ok(self
.prim()
.create_attribute(tok::A_DISABLE_DEPTH_OF_FIELD, sdf::ValueTypeName::BOOL)?
.set_custom(false)?
.set_variability(Variability::Uniform)?)
}
fn camera_rel(&self) -> Relationship {
self.prim().relationship(tok::REL_CAMERA)
}
fn create_camera_rel(&self) -> Result<Relationship> {
Ok(self.prim().create_relationship(tok::REL_CAMERA)?.set_custom(false)?)
}
}