struct GlobalTopologyData
Defined at line 25 of file ../../src/ui/scenic/lib/flatland/global_topology_data.h
Public Members
vector topology_vector
vector child_counts
vector parent_indices
unordered_set live_handles
unordered_map view_refs
unordered_map root_transforms
unordered_map debug_names
unordered_map local_clip_regions
Public Methods
void GlobalTopologyData ()
Defined at line 26 of file ../../src/ui/scenic/lib/flatland/global_topology_data.h
void GlobalTopologyData (const GlobalTopologyData & )
Disallow copy ctors.
Defined at line 28 of file ../../src/ui/scenic/lib/flatland/global_topology_data.h
GlobalTopologyData & operator= (const GlobalTopologyData & )
Defined at line 29 of file ../../src/ui/scenic/lib/flatland/global_topology_data.h
void GlobalTopologyData (GlobalTopologyData && other)
Allow move ctors.
Defined at line 31 of file ../../src/ui/scenic/lib/flatland/global_topology_data.h
GlobalTopologyData & operator= (GlobalTopologyData && other)
Defined at line 32 of file ../../src/ui/scenic/lib/flatland/global_topology_data.h
void Clear ()
Clear all fields without freeing memory, so that it avoid reallocation when reused.
Defined at line 379 of file ../../src/ui/scenic/lib/flatland/global_topology_data.cc
bool IsCleared ()
Return true if all fields are cleared/empty.
Defined at line 397 of file ../../src/ui/scenic/lib/flatland/global_topology_data.cc
GlobalTopologyData ComputeGlobalTopologyData (const UberStruct::InstanceMap & uber_structs, const LinkTopologyMap & links, TransformHandle::InstanceId link_instance_id, TransformHandle root)
Computes the GlobalTopologyData consisting of all TransformHandles reachable from |root|.
|root.GetInstanceId()| must be a key in |uber_structs|, and |root| must also be the first
TransformHandle in the topology vector of the UberStruct at that key.
When the function encounters a TransformHandle whose instance ID is the |link_instance_id|,
it will search for that handle in the |links| map. If a value is found, that value is treated
as the root transform for a new local topology. If this new root transform has an entry in
|uber_structs| AND the first entry of that UberStruct's topology vector matches the new root
transform, then the new local topology is folded into the return topological vector. If either
of the aforementioned conditions is false, the TransformHandle on the other end of the link
will not be included.
TransformHandles with the |link_instance_id| are never included in the final topology,
regardless of whether or not the link resolves.
Defined at line 404 of file ../../src/ui/scenic/lib/flatland/global_topology_data.cc
void ComputeGlobalTopologyData (GlobalTopologyData & output, const UberStruct::InstanceMap & uber_structs, const LinkTopologyMap & links, TransformHandle::InstanceId link_instance_id, TransformHandle root)
static
Defined at line 413 of file ../../src/ui/scenic/lib/flatland/global_topology_data.cc
std::unique_ptr<view_tree::SubtreeSnapshot> GenerateViewTreeSnapshot (const GlobalTopologyData & data, HitRegions hit_regions, std::vector<TransformClipRegion> global_clip_regions, const std::vector<glm::mat3> & global_matrix_vector, const std::unordered_map<TransformHandle, TransformHandle> & link_child_to_parent_transform_map)
Defined at line 618 of file ../../src/ui/scenic/lib/flatland/global_topology_data.cc