pub struct VpeolCameraState {
    pub cursor_ray: Option<Ray3d>,
    pub entity_under_cursor: Option<(Entity, VpeolCursorPointing)>,
    pub entities_of_interest: HashMap<Entity, Option<VpeolCursorPointing>>,
    pub clicks_on_objects_state: VpeolClicksOnObjectsState,
}Expand description
Data passed between Vpeol abstraction and backends.
Fields§
§cursor_ray: Option<Ray3d>Where this camera considers the cursor to be in the world.
entity_under_cursor: Option<(Entity, VpeolCursorPointing)>The topmost entity being pointed by the cursor.
entities_of_interest: HashMap<Entity, Option<VpeolCursorPointing>>Entities that may or may not be topmost, but the editor needs to know whether or not they are pointed at.
clicks_on_objects_state: VpeolClicksOnObjectsStateThe mouse selection state.
Implementations§
Source§impl VpeolCameraState
 
impl VpeolCameraState
Sourcepub fn consider(
    &mut self,
    entity: Entity,
    z_depth_screen_coords: f32,
    cursor_position_world_coords: impl FnOnce() -> Vec3,
)
 
pub fn consider( &mut self, entity: Entity, z_depth_screen_coords: f32, cursor_position_world_coords: impl FnOnce() -> Vec3, )
Tell Vpeol the the user is pointing at an entity.
This function may ignore the input if the entity is covered by another entity and is not an entity of interest.
pub fn pointing_at_entity(&self, entity: Entity) -> Option<&VpeolCursorPointing>
Trait Implementations§
Source§impl Component for VpeolCameraState
 
impl Component for VpeolCameraState
Source§const STORAGE_TYPE: StorageType = ::bevy::ecs::component::StorageType::Table
 
const STORAGE_TYPE: StorageType = ::bevy::ecs::component::StorageType::Table
A constant indicating the storage type used for this component.
Source§type Mutability = Mutable
 
type Mutability = Mutable
A marker type to assist Bevy with determining if this component is
mutable, or immutable. Mutable components will have [
Component<Mutability = Mutable>],
while immutable components will instead have [Component<Mutability = Immutable>]. Read moreSource§fn register_required_components(
    _requiree: ComponentId,
    required_components: &mut RequiredComponentsRegistrator<'_, '_>,
)
 
fn register_required_components( _requiree: ComponentId, required_components: &mut RequiredComponentsRegistrator<'_, '_>, )
Registers required components. Read more
Source§fn clone_behavior() -> ComponentCloneBehavior
 
fn clone_behavior() -> ComponentCloneBehavior
Called when registering this component, allowing to override clone function (or disable cloning altogether) for this component. Read more
§fn on_add() -> Option<for<'w> fn(DeferredWorld<'w>, HookContext)>
 
fn on_add() -> Option<for<'w> fn(DeferredWorld<'w>, HookContext)>
Gets the 
on_add [ComponentHook] for this [Component] if one is defined.§fn on_insert() -> Option<for<'w> fn(DeferredWorld<'w>, HookContext)>
 
fn on_insert() -> Option<for<'w> fn(DeferredWorld<'w>, HookContext)>
Gets the 
on_insert [ComponentHook] for this [Component] if one is defined.§fn on_replace() -> Option<for<'w> fn(DeferredWorld<'w>, HookContext)>
 
fn on_replace() -> Option<for<'w> fn(DeferredWorld<'w>, HookContext)>
Gets the 
on_replace [ComponentHook] for this [Component] if one is defined.§fn on_remove() -> Option<for<'w> fn(DeferredWorld<'w>, HookContext)>
 
fn on_remove() -> Option<for<'w> fn(DeferredWorld<'w>, HookContext)>
Gets the 
on_remove [ComponentHook] for this [Component] if one is defined.§fn on_despawn() -> Option<for<'w> fn(DeferredWorld<'w>, HookContext)>
 
fn on_despawn() -> Option<for<'w> fn(DeferredWorld<'w>, HookContext)>
Gets the 
on_despawn [ComponentHook] for this [Component] if one is defined.§fn map_entities<E>(_this: &mut Self, _mapper: &mut E)where
    E: EntityMapper,
 
fn map_entities<E>(_this: &mut Self, _mapper: &mut E)where
    E: EntityMapper,
Maps the entities on this component using the given [
EntityMapper]. This is used to remap entities in contexts like scenes and entity cloning.
When deriving [Component], this is populated by annotating fields containing entities with #[entities] Read moreSource§impl Debug for VpeolCameraState
 
impl Debug for VpeolCameraState
Source§impl Default for VpeolCameraState
 
impl Default for VpeolCameraState
Source§fn default() -> VpeolCameraState
 
fn default() -> VpeolCameraState
Returns the “default value” for a type. Read more
Auto Trait Implementations§
impl Freeze for VpeolCameraState
impl RefUnwindSafe for VpeolCameraState
impl Send for VpeolCameraState
impl Sync for VpeolCameraState
impl Unpin for VpeolCameraState
impl UnwindSafe for VpeolCameraState
Blanket Implementations§
§impl<T, U> AsBindGroupShaderType<U> for T
 
impl<T, U> AsBindGroupShaderType<U> for T
§fn as_bind_group_shader_type(&self, _images: &RenderAssets<GpuImage>) -> U
 
fn as_bind_group_shader_type(&self, _images: &RenderAssets<GpuImage>) -> U
Return the 
T [ShaderType] for self. When used in [AsBindGroup]
derives, it is safe to assume that all images in self exist.Source§impl<T> BorrowMut<T> for Twhere
    T: ?Sized,
 
impl<T> BorrowMut<T> for Twhere
    T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
 
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
§impl<C> Bundle for Cwhere
    C: Component,
 
impl<C> Bundle for Cwhere
    C: Component,
fn component_ids( components: &mut ComponentsRegistrator<'_>, ids: &mut impl FnMut(ComponentId), )
§fn get_component_ids(
    components: &Components,
    ids: &mut impl FnMut(Option<ComponentId>),
)
 
fn get_component_ids( components: &Components, ids: &mut impl FnMut(Option<ComponentId>), )
Gets this [
Bundle]’s component ids. This will be None if the component has not been registered.§impl<C> BundleFromComponents for Cwhere
    C: Component,
 
impl<C> BundleFromComponents for Cwhere
    C: Component,
§impl<T> Downcast for Twhere
    T: Any,
 
impl<T> Downcast for Twhere
    T: Any,
§fn into_any(self: Box<T>) -> Box<dyn Any>
 
fn into_any(self: Box<T>) -> Box<dyn Any>
Converts 
Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>, which can then be
downcast into Box<dyn ConcreteType> where ConcreteType implements Trait.§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
 
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Converts 
Rc<Trait> (where Trait: Downcast) to Rc<Any>, which can then be further
downcast into Rc<ConcreteType> where ConcreteType implements Trait.§fn as_any(&self) -> &(dyn Any + 'static)
 
fn as_any(&self) -> &(dyn Any + 'static)
Converts 
&Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &Any’s vtable from &Trait’s.§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
 
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
Converts 
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.§impl<T> DowncastSend for T
 
impl<T> DowncastSend for T
§impl<C> DynamicBundle for Cwhere
    C: Component,
 
impl<C> DynamicBundle for Cwhere
    C: Component,
§unsafe fn get_components(
    ptr: MovingPtr<'_, C>,
    func: &mut impl FnMut(StorageType, OwningPtr<'_>),
) -> <C as DynamicBundle>::Effect
 
unsafe fn get_components( ptr: MovingPtr<'_, C>, func: &mut impl FnMut(StorageType, OwningPtr<'_>), ) -> <C as DynamicBundle>::Effect
Moves the components out of the bundle. Read more
§unsafe fn apply_effect(
    _ptr: MovingPtr<'_, MaybeUninit<C>>,
    _entity: &mut EntityWorldMut<'_>,
)
 
unsafe fn apply_effect( _ptr: MovingPtr<'_, MaybeUninit<C>>, _entity: &mut EntityWorldMut<'_>, )
Applies the after-effects of spawning this bundle. Read more
§impl<T> FromWorld for Twhere
    T: Default,
 
impl<T> FromWorld for Twhere
    T: Default,
§fn from_world(_world: &mut World) -> T
 
fn from_world(_world: &mut World) -> T
Creates Self using default().
§impl<T> Identity for Twhere
    T: ?Sized,
 
impl<T> Identity for Twhere
    T: ?Sized,
§impl<T> Instrument for T
 
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
 
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
 
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
 
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
 
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts 
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
 
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts 
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more§impl<T> IntoResult<T> for T
 
impl<T> IntoResult<T> for T
§fn into_result(self) -> Result<T, RunSystemError>
 
fn into_result(self) -> Result<T, RunSystemError>
Converts this type into the system output type.