Trait Domain
Source pub trait Domain: Send + 'static {
// Required methods
fn id(&self) -> DomainId;
fn name(&self) -> &'static str;
fn tracks_changes(&self) -> bool;
fn views(&self) -> &[ViewTarget];
fn view(&self, id: ViewId) -> Option<ViewSummary>;
fn pick(
&self,
view: ViewId,
ray: &ImageRay,
placement: Rigid,
views: &Views,
prepared: &[PreparedGeometry],
) -> Option<Pick>;
fn image_of(&self, view: ViewId, entity: Entity) -> Option<[f32; 3]>;
fn lift_origin(
&self,
view: ViewId,
ray: &ImageRay,
) -> Result<ChartPoint, DomainError>;
fn compile_fields(&mut self) -> Result<FieldCost, DomainError>;
fn field_program(&self) -> &FieldProgram;
fn as_any(&self) -> &dyn Any;
fn as_any_mut(&mut self) -> &mut dyn Any;
}