2 #ifndef _YI_SCENE_VIEW_H_ 3 #define _YI_SCENE_VIEW_H_ 24 class CYISceneViewPriv;
120 virtual bool Init()
override;
415 std::map<CYIString, CYITimeline *>
GetTimelines()
const;
472 void SetLayout(std::unique_ptr<CYILayout> pLayout);
513 virtual bool HandleEvent(
const std::shared_ptr<CYIEventDispatcher> &pDispatcher,
CYIEvent *pEvent)
override;
514 virtual bool ProcessEvent(
const std::shared_ptr<CYIEventDispatcher> &pDispatcher,
CYIEvent *pEvent)
override;
587 std::multimap<YI_ANCHOR_TYPE, YI_ANCHOR_DATA>
m_anchors;
594 void SetLayout(std::unique_ptr<CYILayout> pLayout,
bool bConfigureFromProperties);
599 std::unique_ptr<CYISceneViewPriv> m_pPriv;
616 #ifdef YI_FUNCTION_SPECIALIZATION_FULLY_SUPPORTED 618 inline const CYISceneView *YiDynamicCast<CYISceneView>(
const CYISceneNode *pObject)
620 return pObject ? (pObject->CanCastTo<CYISceneView>() ? static_cast<const CYISceneView *>(pObject) : nullptr) : nullptr;
624 #endif // _YI_SCENE_VIEW_H_ bool IsResponsiveLayoutEnabled() const
bool FindTimeline(CYIAbstractTimeline *&pTimeline, const CYIString &markerName, FETCH_TYPE eType, const CYIString &tag="", TIMELINE_GET_MODE eMode=GET_DEFAULT)
const char * pRequiredName
Definition: YiSceneView.h:89
The base class for the timeline framework.
Definition: YiAbstractTimeline.h:29
FETCH_TYPE
Definition: YiSceneNode.h:341
const CYISceneNode * GetFocusRoot() const
Definition: YiSceneNode.h:356
#define YI_DISALLOW_COPY_AND_ASSIGN(TypeName)
Delete the copy constructor and assignment operator (and consequently the move constructor as well) ...
Definition: YiPredef.h:114
virtual void LayoutDirtied() override
std::map< CYIString, std::unique_ptr< CYITimeline > > m_timelines
Definition: YiSceneView.h:588
CYIAbstractTimeline * GetFocusOutTimeline() const
friend class CYISceneViewPriv
Definition: YiSceneView.h:49
A class containing focus search options.
Definition: YiFocusSearchOptions.h:23
std::map< CYIString, std::unique_ptr< CYIParallelTimelineGroup > > m_timelineGroups
Definition: YiSceneView.h:589
Allows registering of event filters which can be used to perform processing on an event before and af...
Definition: YiEventHandler.h:25
Scene trees composed of CYISceneNode objects are registered with the scene manager in order for them ...
Definition: YiSceneManager.h:73
TIMELINE_GET_MODE
Definition: YiSceneView.h:97
virtual void Reset()
Definition: YiSceneView.h:465
A timeline which sources its data from a backing store.
Definition: YiTimeline.h:54
Base class for events.
Definition: YiEvent.h:489
The base class for all view types. Views are containers of renderable elements that often define inte...
Definition: YiSceneView.h:47
bool TryRequestFocusOnInitiallyFocusedView()
void EnableDefaultHitZone()
Container class for Unicode strings. Conceptually, a CYIString object is a sequence of Unicode charac...
Definition: YiString.h:35
CYIMarkerData::MARKER_ID requiredMarkerID
Definition: YiSceneView.h:90
Always returns a CYITimeline instance (e.g. never returns a timeline group). Returns null if the give...
Definition: YiSceneView.h:100
virtual bool HandlesFocusInDescendants() const
The base class for types of timeline groups.
Definition: YiTimelineGroup.h:25
virtual CYISceneView * FindNextFocusInDescendants(const CYISceneView *pCurrentFocusView, CYIFocus::FOCUS_DIRECTION eDirection, CYIAABB &screenSpaceFocusRegion, const CYIFocusSearchOptions &options=CYIFocusSearchOptions()) const
virtual void OnViewReflowed(const glm::vec3 &worldScale)
virtual bool HandleEvent(const std::shared_ptr< CYIEventDispatcher > &pDispatcher, CYIEvent *pEvent) override
Provides a base for the definition of camera objects.
Definition: YiAbstractCameraSceneNode.h:30
void SetClippingAreaNode(CYISceneNode *pClippingNode)
#define YI_TYPE_BASES(...)
Definition: YiRtti.h:350
void DisableResponsiveLayout()
CYISceneView * GetInitiallyFocusedView() const
virtual bool GetProperty(const CYIString &propertyName, CYIString *pValue) const override
virtual void ViewReflowed(const glm::vec3 &worldScale)
virtual void WorldScaleUpdated() override
bool IsInitialized() const
virtual CYIAbstractTimeline * GetTimeline(const CYIString &rMarkerName, TIMELINE_GET_MODE eMode=GET_DEFAULT)
Definition: YiSceneView.h:86
CYISceneNode * m_pClippingNode
Definition: YiSceneView.h:580
std::shared_ptr< CYISceneNodeProxy > m_pInitiallyFocusedView
Definition: YiSceneView.h:585
CYIAbstractTimeline * GetInTimeline() const
const std::shared_ptr< CYIAssetViewTemplate > & GetViewTemplate() const
const std::vector< CYIString > & GetChildTemplateNames()
virtual void ChildRemoved(CYISceneNode *pChild) override
void AddAnchor(YI_ANCHOR_TYPE anchorType)
void SetLayout(std::unique_ptr< CYILayout > pLayout)
void EnableResponsiveLayout()
ASSET_REQUIREMENT_TYPE assetRequirementType
Definition: YiSceneView.h:88
std::multimap< YI_ANCHOR_TYPE, YI_ANCHOR_DATA > m_anchors
Definition: YiSceneView.h:587
CYIAbstractTimeline * GetFocusInTimeline() const
CYISceneView * FindNextFocus(CYIFocus::FOCUS_DIRECTION eDirection, const CYIFocusSearchOptions &options=CYIFocusSearchOptions()) const
glm::vec3 vOriginalScale
Definition: YiSceneView.h:66
void OnViewIsInAnimatedPosition()
static void RegisterAllViews()
CYISignal< CYISceneView * > GainedFocus
Emitted when focus has entered this view.
Definition: YiSceneView.h:490
bool CanBeFocused() const
virtual bool RequestFocus(CYIFocus::FOCUS_DIRECTION eDirection=CYIFocus::FOCUS_FORWARD, CYIFocus::FOCUS_ROOT_RULE eFocusRootRule=CYIFocus::FOCUS_ROOT_DESCENDANTS_UPDATE_CONTEXT, const CYIAABB &previousFocusRect=CYIAABB(), const CYIFocusSearchOptions &options=CYIFocusSearchOptions())
ASSET_REQUIREMENT_TYPE
Definition: YiSceneView.h:77
Returns a timeline group component. This is used internally when generating timeline groups...
Definition: YiSceneView.h:102
CYISceneNode * pAnchor
Definition: YiSceneView.h:65
void SetInTimeline(CYIAbstractTimeline *pTimeline)
MARKER_ID
Definition: YiMarkerData.h:36
virtual void ChildNeedsLayout() override
bool BuildFromTemplate(CYISceneManager *pSceneManager, const std::shared_ptr< CYIAssetViewTemplate > &pAssetViewTemplate, CYISceneManager::MISSING_CLASS_HANDLING_MODE eMissingHandlingMode=CYISceneManager::ABORT)
virtual void ApplyMeasurements() override
virtual bool ProcessEvent(const std::shared_ptr< CYIEventDispatcher > &pDispatcher, CYIEvent *pEvent) override
const CYILayout * GetLayout() const
Definition: YiSceneView.h:79
virtual void Measure(const MeasureSpec &widthSpec, const MeasureSpec &heightSpec, const MeasureSpec &depthSpec) override
FOCUS_ROOT_RULE
Definition: YiFocus.h:60
void OnViewIsGoingOutOfAnimatedPosition()
A scene node is the base type for all nodes which are used by the scene manager; it is an integral pa...
Definition: YiSceneNode.h:114
ViewTemplate asset. Wrapper around a CYIViewTemplate.
Definition: YiAssetViewTemplate.h:21
virtual void ChildAdded(CYISceneNode *pChild) override
virtual void ChildVisibilityChanged(CYISceneNode *pChild) override
Always returns a timeline group (which will recursively be created). Never returns null...
Definition: YiSceneView.h:101
void UpdateResponsiveLayoutAnchors()
CYIAbstractTimeline * m_pFocusOutTimeline
Definition: YiSceneView.h:582
std::map< CYIString, CYITimeline * > GetTimelines() const
CYIAbstractTimeline * m_pFocusInTimeline
Definition: YiSceneView.h:581
Anchors are used to apply scaling rules.
Definition: YiSceneView.h:63
CYISceneView * GetFocusHandler() const
virtual const CYISceneView::AssetRequirement * GetAssetRequirements(uint32_t *pRequirementCount)
void SetInitiallyFocusedView(CYISceneView *pView)
virtual void SizeChanged() override
virtual void OnFocusGained()
Definition: YiSceneManager.h:144
Automatically picks between the other modes depending on how the given timeline marker is configured...
Definition: YiSceneView.h:99
This class defines a layout that can be applied to a scene view. The layout class determines how obje...
Definition: YiLayout.h:159
FOCUS_DIRECTION
Definition: YiFocus.h:44
This class represents an Axis-Aligned Bounding Box.
Definition: YiAABB.h:24
virtual void FocusGained()
virtual void BuildDrawList(std::vector< IYIRenderer::Command > &children, CYIAbstractCameraSceneNode *pCameraToDrawWith=nullptr) override
This kind of timeline group will play its children in parallel, possibly with specified offsets (dela...
Definition: YiParallelTimelineGroup.h:21
virtual void WorldBoundingBoxUpdated() override
void SetFocusable(bool bFocusable)
YI_ANCHOR_TYPE
Definition: YiAnchor.h:8
CYITimelineGroup * GetTimelineGroup(const CYIString &markerName)
Definition: YiSceneView.h:80
YI_ANCHOR_DATA()
Definition: YiSceneView.h:68
bool m_bStopEventPropagation
Definition: YiSceneView.h:576
CYIAbstractTimeline * GetOutTimeline() const
virtual bool Init() override
bool m_bResponsiveLayoutEnabled
Definition: YiSceneView.h:577
bool m_bInAnimatedPosition
Definition: YiSceneView.h:579
CYISignal< CYISceneView * > LostFocus
Emitted when focus has left this view.
Definition: YiSceneView.h:491
virtual void OnFocusLost()
std::unique_ptr< CYILayout > m_pLayout
Definition: YiSceneView.h:583
MISSING_CLASS_HANDLING_MODE
Optional fallback rules for missing view types during scene loading.
Definition: YiSceneManager.h:142
YI_ANCHOR_DATA GetAnchor(YI_ANCHOR_TYPE anchorType) const
CYISceneView * GetNextFocus(CYIFocus::FOCUS_DIRECTION eDirection) const
Stores data related to a user Action event.
Definition: YiActionEvent.h:18
void SetOutTimeline(CYIAbstractTimeline *pTimeline)
bool m_bSceneTreeBuilt
Definition: YiSceneView.h:578
std::shared_ptr< CYIAssetViewTemplate > m_pAssetViewTemplate
Definition: YiSceneView.h:584
void SetNextFocus(CYISceneView *pView, CYIFocus::FOCUS_DIRECTION eDirection)
std::unique_ptr< CYITimelineGroup > BuildTimelineGroup(const CYIString &markerName)