38#ifndef MOBJECT_SESSION_QUERY_FOCUS_H
39#define MOBJECT_SESSION_QUERY_FOCUS_H
46#include <boost/intrusive_ptr.hpp>
111 operator Scope()
const;
112 operator string()
const;
147 inline QueryFocus::operator
Scope()
const
149 return focus_->getLeaf();
Current focus location to use as point-of reference for contents and location discovery queries.
lib::IterSource< constScope >::iterator locate(Scope const &toTarget)
shift or navigate the current focus to point at the given target scope.
QueryFocus & shift(Scope const &)
shift this QueryFocus to a container-like scope, causing it to navigate, changing the current ScopePa...
QueryFocus()
create a new QueryFocus (handle) linked to the current focus for discovery queries.
ScopePath const & currentPath() const
RefPlacement currentPoint() const
QueryFocus & pop()
cease to use this specific reference to the current frame.
static ScopePath & currPath()
ScopeQuery< MO >::iterator query() const
discover depth-first any matching object within current focus.
ScopeQuery< MO >::iterator explore() const
discover any matching object contained as immediate Child within current focus.
QueryFocus & reset()
discard any state and navigate current focus path to model root
static QueryFocus push()
push the "current QueryFocus" aside and open a new focus frame, which starts out at the same location...
boost::intrusive_ptr< ScopePath > focus_
static lib::Depend< ScopeLocator > instance
Storage holding the single ScopeLocator instance.
Sequence of nested scopes within the high-level model.
_Parent::iterator iterator
A Placement scope within the high-level-model.
Namespace of Session and user visible high-level objects.
PlacementRef< MObject > RefPlacement
frequently-used shorthand
Steam-Layer implementation namespace root.
A generic reference mechanism for Placements, as added to the current session.
Service to build the notion of a current location within the Sesison model.
An Object representing a sequence of nested scopes within the Session.
Specific queries to explore contents of a scope within the high-level model.