chrono_batch_render/
Coverage:
low: ≥ 0%
medium: ≥ 75.0%
high: ≥ 90.0%
Lines:
434 / 442
98.2%
Branches:
284 / 379
74.9%
Functions:
132 / 132, 4 excl
100.0%

scene/prim.h
Line Branch Exec Source
1 // SPDX-License-Identifier: BSD-3-Clause
2 #pragma once
3
4 #include <cstdint>
5 #include <optional>
6 #include <string>
7 #include <string_view>
8 #include <type_traits>
9 #include <vector>
10
11 #include "chrono_batch_render/export.h"
12 #include "chrono_batch_render/stage/schema/ids.h"
13 #include "chrono_batch_render/stage/schema/schema.h"
14 #include "chrono_batch_render/stage/views/attribute.h"
15 #include "chrono_batch_render/stage/views/view.h"
16 #include "chrono_batch_render/util/span.h"
17
18 namespace chrono::batch_render {
19
20 class Scene;
21
22 struct Connection {
23 std::string input;
24 std::string source;
25 std::string output;
26 };
27
28 class CHRONO_BATCH_RENDER_API Prim {
29 public:
30
1/1
✓ Branch 1 taken 13 times.
31 Prim() = default;
31
32 48076 Prim(Scene& scene, uint32_t index, uint32_t generation)
33 48076 : m_scene(&scene), m_index(index), m_generation(generation) {}
34
35 bool Valid() const;
36
37 57921 uint32_t Index() const {
38
57/75
<unknown function 32>:
✓ Branch 1 taken 10 times.
✓ Branch 4 taken 5 times.
✓ Branch 7 taken 5 times.
✓ Branch 10 taken 6 times.
✓ Branch 13 taken 6 times.
✓ Branch 16 taken 55712 times.
✓ Branch 19 taken 14 times.
✓ Branch 22 taken 3 times.
✓ Branch 25 taken 2 times.
✓ Branch 28 taken 5 times.
✓ Branch 31 taken 2 times.
✓ Branch 33 taken 3 times.
✗ Branch 34 not taken.
✓ Branch 36 taken 3 times.
✗ Branch 38 not taken.
✗ Branch 39 not taken.
✓ Branch 41 taken 132 times.
✓ Branch 44 taken 8 times.
✓ Branch 47 taken 8 times.
✓ Branch 50 taken 8 times.
✗ Branch 53 not taken.
✓ Branch 56 taken 2 times.
✓ Branch 59 taken 33 times.
<unknown function 37>:
✓ Branch 0 taken 1 time.
✓ Branch 1 taken 6 times.
✓ Branch 1 taken 598 times.
✓ Branch 2 taken 1 time.
✗ Branch 3 not taken.
✓ Branch 4 taken 8 times.
✓ Branch 4 taken 1 time.
✓ Branch 4 taken 395 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 1 time.
✓ Branch 7 taken 1 time.
✓ Branch 7 taken 1 time.
✓ Branch 7 taken 7 times.
✓ Branch 7 taken 429 times.
✓ Branch 8 taken 1 time.
✓ Branch 9 taken 32 times.
✓ Branch 9 taken 1 time.
✗ Branch 9 not taken.
✓ Branch 10 taken 67 times.
✓ Branch 10 taken 2 times.
✓ Branch 10 taken 66 times.
✓ Branch 10 taken 1 time.
✗ Branch 11 not taken.
✓ Branch 12 taken 1 time.
✓ Branch 13 taken 1 time.
✓ Branch 13 taken 1 time.
✗ Branch 13 not taken.
✓ Branch 14 taken 1 time.
✗ Branch 15 not taken.
✓ Branch 16 taken 2 times.
✓ Branch 16 taken 1 time.
✗ Branch 17 not taken.
✓ Branch 18 taken 1 time.
✓ Branch 19 taken 2 times.
✗ Branch 19 not taken.
✓ Branch 20 taken 1 time.
✗ Branch 21 not taken.
✓ Branch 22 taken 1 time.
✓ Branch 22 taken 7 times.
✗ Branch 23 not taken.
✓ Branch 24 taken 1 time.
✓ Branch 25 taken 2 times.
✗ Branch 25 not taken.
✓ Branch 26 taken 1 time.
✓ Branch 27 taken 1 time.
✗ Branch 27 not taken.
✓ Branch 28 taken 1 time.
✓ Branch 28 taken 1 time.
✗ Branch 29 not taken.
✓ Branch 30 taken 1 time.
✓ Branch 30 taken 1 time.
✗ Branch 31 not taken.
57912 return m_index;
39 }
40
41 ✗ uint32_t Generation() const {
42 ✗ return m_generation;
43 }
44
45 SchemaId Schema() const;
46 uint32_t World() const;
47 bool IsSession() const;
48 std::string Path() const;
49 std::string_view Name() const;
50 std::optional<Prim> Parent() const;
51 std::vector<Prim> Children() const;
52 std::vector<Connection> Connections() const;
53 void Connect(std::string_view input, const Prim& source, std::string_view output) const;
54 void Disconnect(std::string_view input) const;
55 bool IsA(SchemaId schema) const;
56 bool HasApi(SchemaId api) const;
57 std::vector<std::string> Instances(SchemaId api) const;
58
59 2338 template <class T> bool IsA() const {
60
5/6
<unknown function 37>:
✓ Branch 1 taken 192 times.
✗ Branch 4 not taken.
✓ Branch 7 taken 403 times.
✓ Branch 10 taken 57 times.
<unknown function 59>:
✓ Branch 1 taken 2 times.
✓ Branch 4 taken 25 times.
2338 return IsA(T::kSchema);
61 }
62
63 8 template <class T> bool HasApi() const {
64
2/2
✓ Branch 1 taken 1 time.
✓ Branch 4 taken 1 time.
8 return HasApi(T::kSchema);
65 }
66
67 1 template <class T> std::vector<std::string> Instances() const {
68
1/1
✓ Branch 1 taken 1 time.
1 return Instances(T::kSchema);
69 }
70
71 2 template <class T> T Get(Field<T> field, std::string_view instance) const {
72
1/1
✓ Branch 2 taken 2 times.
4 return Read(Single(field.owner, instance), field);
73 }
74
75 template <class T>
76 4 void Set(Field<T> field, std::string_view instance,
77 const typename Identity<T>::Type& value) const {
78
1/1
✓ Branch 2 taken 4 times.
4 Write(Single(field.owner, instance), field, value);
79 4 }
80
81 Scene& GetScene() const;
82
83 18 template <class T> T Get(std::string_view field) const {
84
11/14
bool chrono::batch_render::Prim::Get<bool>(std::basic_string_view<char, std::char_traits<char> >) const:
✓ Branch 2 taken 2 times.
✓ Branch 5 taken 2 times.
✓ Branch 7 taken 2 times.
✗ Branch 8 not taken.
chrono::batch_render::Float3 chrono::batch_render::Prim::Get<chrono::batch_render::Float3>(std::basic_string_view<char, std::char_traits<char> >) const:
✓ Branch 2 taken 4 times.
✓ Branch 5 taken 4 times.
float chrono::batch_render::Prim::Get<float>(std::basic_string_view<char, std::char_traits<char> >) const:
✓ Branch 2 taken 10 times.
✓ Branch 5 taken 10 times.
✓ Branch 7 taken 10 times.
✗ Branch 8 not taken.
int chrono::batch_render::Prim::Get<int>(std::basic_string_view<char, std::char_traits<char> >) const:
✓ Branch 2 taken 2 times.
✓ Branch 5 taken 1 time.
✓ Branch 7 taken 1 time.
✗ Branch 8 not taken.
35 return Get<T>(Single().Column(field));
85 }
86
87 41 template <class T> void Set(std::string_view field, const T& value) const {
88
12/12
void chrono::batch_render::Prim::Set<bool>(std::basic_string_view<char, std::char_traits<char> >, bool const&) const:
✓ Branch 2 taken 8 times.
✓ Branch 5 taken 8 times.
void chrono::batch_render::Prim::Set<chrono::batch_render::Double3>(std::basic_string_view<char, std::char_traits<char> >, chrono::batch_render::Double3 const&) const:
✓ Branch 2 taken 1 time.
✓ Branch 5 taken 1 time.
void chrono::batch_render::Prim::Set<chrono::batch_render::Float2>(std::basic_string_view<char, std::char_traits<char> >, chrono::batch_render::Float2 const&) const:
✓ Branch 2 taken 1 time.
✓ Branch 5 taken 1 time.
void chrono::batch_render::Prim::Set<chrono::batch_render::Float3>(std::basic_string_view<char, std::char_traits<char> >, chrono::batch_render::Float3 const&) const:
✓ Branch 2 taken 8 times.
✓ Branch 5 taken 8 times.
void chrono::batch_render::Prim::Set<float>(std::basic_string_view<char, std::char_traits<char> >, float const&) const:
✓ Branch 2 taken 22 times.
✓ Branch 5 taken 22 times.
void chrono::batch_render::Prim::Set<int>(std::basic_string_view<char, std::char_traits<char> >, int const&) const:
✓ Branch 2 taken 1 time.
✓ Branch 5 taken 1 time.
41 Set(Single().Column(field), value);
89 41 }
90
91 12441 template <class T> T Get(Field<T> field) const {
92
41/56
bool chrono::batch_render::Prim::Get<bool>(chrono::batch_render::Field<bool>) const:
✓ Branch 2 taken 812 times.
✓ Branch 4 taken 812 times.
✗ Branch 5 not taken.
chrono::batch_render::AspectRatioConformPolicy chrono::batch_render::Prim::Get<chrono::batch_render::AspectRatioConformPolicy>(chrono::batch_render::Field<chrono::batch_render::AspectRatioConformPolicy>) const:
✓ Branch 2 taken 404 times.
✓ Branch 4 taken 404 times.
✗ Branch 5 not taken.
chrono::batch_render::DetectorPattern chrono::batch_render::Prim::Get<chrono::batch_render::DetectorPattern>(chrono::batch_render::Field<chrono::batch_render::DetectorPattern>) const:
✓ Branch 2 taken 826 times.
✓ Branch 4 taken 826 times.
✗ Branch 5 not taken.
chrono::batch_render::Double3 chrono::batch_render::Prim::Get<chrono::batch_render::Double3>(chrono::batch_render::Field<chrono::batch_render::Double3>) const:
✓ Branch 2 taken 147 times.
chrono::batch_render::Float2 chrono::batch_render::Prim::Get<chrono::batch_render::Float2>(chrono::batch_render::Field<chrono::batch_render::Float2>) const:
✓ Branch 2 taken 3 times.
chrono::batch_render::Float3 chrono::batch_render::Prim::Get<chrono::batch_render::Float3>(chrono::batch_render::Field<chrono::batch_render::Float3>) const:
✓ Branch 2 taken 1215 times.
chrono::batch_render::FrameOfReference chrono::batch_render::Prim::Get<chrono::batch_render::FrameOfReference>(chrono::batch_render::Field<chrono::batch_render::FrameOfReference>) const:
✓ Branch 2 taken 494 times.
✓ Branch 4 taken 494 times.
✗ Branch 5 not taken.
chrono::batch_render::ImplementationSource chrono::batch_render::Prim::Get<chrono::batch_render::ImplementationSource>(chrono::batch_render::Field<chrono::batch_render::ImplementationSource>) const:
✓ Branch 2 taken 1 time.
✓ Branch 4 taken 1 time.
✗ Branch 5 not taken.
chrono::batch_render::MinimalMode chrono::batch_render::Prim::Get<chrono::batch_render::MinimalMode>(chrono::batch_render::Field<chrono::batch_render::MinimalMode>) const:
✓ Branch 2 taken 404 times.
✓ Branch 4 taken 404 times.
✗ Branch 5 not taken.
chrono::batch_render::PhysicalIlluminant chrono::batch_render::Prim::Get<chrono::batch_render::PhysicalIlluminant>(chrono::batch_render::Field<chrono::batch_render::PhysicalIlluminant>) const:
✓ Branch 2 taken 3 times.
✓ Branch 4 taken 3 times.
✗ Branch 5 not taken.
chrono::batch_render::RenderMode chrono::batch_render::Prim::Get<chrono::batch_render::RenderMode>(chrono::batch_render::Field<chrono::batch_render::RenderMode>) const:
✓ Branch 2 taken 404 times.
✓ Branch 4 taken 404 times.
✗ Branch 5 not taken.
chrono::batch_render::ShapingAxis chrono::batch_render::Prim::Get<chrono::batch_render::ShapingAxis>(chrono::batch_render::Field<chrono::batch_render::ShapingAxis>) const:
✓ Branch 2 taken 1 time.
✓ Branch 4 taken 1 time.
✗ Branch 5 not taken.
chrono::batch_render::SpectralMode chrono::batch_render::Prim::Get<chrono::batch_render::SpectralMode>(chrono::batch_render::Field<chrono::batch_render::SpectralMode>) const:
✓ Branch 2 taken 404 times.
✓ Branch 4 taken 404 times.
✗ Branch 5 not taken.
chrono::batch_render::TextureWrapMode chrono::batch_render::Prim::Get<chrono::batch_render::TextureWrapMode>(chrono::batch_render::Field<chrono::batch_render::TextureWrapMode>) const:
✓ Branch 2 taken 3 times.
✓ Branch 4 taken 3 times.
✗ Branch 5 not taken.
chrono::batch_render::Uint2 chrono::batch_render::Prim::Get<chrono::batch_render::Uint2>(chrono::batch_render::Field<chrono::batch_render::Uint2>) const:
✓ Branch 2 taken 437 times.
chrono::batch_render::Visibility chrono::batch_render::Prim::Get<chrono::batch_render::Visibility>(chrono::batch_render::Field<chrono::batch_render::Visibility>) const:
✓ Branch 2 taken 1 time.
✓ Branch 4 taken 1 time.
✗ Branch 5 not taken.
float chrono::batch_render::Prim::Get<float>(chrono::batch_render::Field<float>) const:
✓ Branch 2 taken 3726 times.
✓ Branch 4 taken 3726 times.
✗ Branch 5 not taken.
int chrono::batch_render::Prim::Get<int>(chrono::batch_render::Field<int>) const:
✓ Branch 2 taken 1212 times.
✓ Branch 4 taken 1212 times.
✗ Branch 5 not taken.
std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > chrono::batch_render::Prim::Get<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >(chrono::batch_render::Field<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >) const:
✓ Branch 2 taken 509 times.
std::vector<chrono::batch_render::Float2, std::allocator<chrono::batch_render::Float2> > chrono::batch_render::Prim::Get<std::vector<chrono::batch_render::Float2, std::allocator<chrono::batch_render::Float2> > >(chrono::batch_render::Field<std::vector<chrono::batch_render::Float2, std::allocator<chrono::batch_render::Float2> > >) const:
✓ Branch 2 taken 1 time.
std::vector<chrono::batch_render::Float3, std::allocator<chrono::batch_render::Float3> > chrono::batch_render::Prim::Get<std::vector<chrono::batch_render::Float3, std::allocator<chrono::batch_render::Float3> > >(chrono::batch_render::Field<std::vector<chrono::batch_render::Float3, std::allocator<chrono::batch_render::Float3> > >) const:
✓ Branch 2 taken 2 times.
std::vector<chrono::batch_render::Primvar, std::allocator<chrono::batch_render::Primvar> > chrono::batch_render::Prim::Get<std::vector<chrono::batch_render::Primvar, std::allocator<chrono::batch_render::Primvar> > >(chrono::batch_render::Field<std::vector<chrono::batch_render::Primvar, std::allocator<chrono::batch_render::Primvar> > >) const:
✓ Branch 2 taken 3 times.
std::vector<float, std::allocator<float> > chrono::batch_render::Prim::Get<std::vector<float, std::allocator<float> > >(chrono::batch_render::Field<std::vector<float, std::allocator<float> > >) const:
✓ Branch 2 taken 30 times.
std::vector<int, std::allocator<int> > chrono::batch_render::Prim::Get<std::vector<int, std::allocator<int> > >(chrono::batch_render::Field<std::vector<int, std::allocator<int> > >) const:
✓ Branch 2 taken 3 times.
std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > chrono::batch_render::Prim::Get<std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >(chrono::batch_render::Field<std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >) const:
✓ Branch 2 taken 1333 times.
unsigned int chrono::batch_render::Prim::Get<unsigned int>(chrono::batch_render::Field<unsigned int>) const:
✓ Branch 2 taken 60 times.
✓ Branch 4 taken 60 times.
✗ Branch 5 not taken.
24879 return Read(Single(), field);
93 }
94
95 1789 template <class T> void Set(Field<T> field, const typename Identity<T>::Type& value) const {
96
34/34
void chrono::batch_render::Prim::Set<bool>(chrono::batch_render::Field<bool>, chrono::batch_render::Identity<bool>::Type const&) const:
✓ Branch 2 taken 6 times.
void chrono::batch_render::Prim::Set<chrono::batch_render::AspectRatioConformPolicy>(chrono::batch_render::Field<chrono::batch_render::AspectRatioConformPolicy>, chrono::batch_render::Identity<chrono::batch_render::AspectRatioConformPolicy>::Type const&) const:
✓ Branch 2 taken 11 times.
void chrono::batch_render::Prim::Set<chrono::batch_render::CameraSignalLayout>(chrono::batch_render::Field<chrono::batch_render::CameraSignalLayout>, chrono::batch_render::Identity<chrono::batch_render::CameraSignalLayout>::Type const&) const:
✓ Branch 2 taken 1 time.
void chrono::batch_render::Prim::Set<chrono::batch_render::DetectorPattern>(chrono::batch_render::Field<chrono::batch_render::DetectorPattern>, chrono::batch_render::Identity<chrono::batch_render::DetectorPattern>::Type const&) const:
✓ Branch 2 taken 10 times.
void chrono::batch_render::Prim::Set<chrono::batch_render::DistortionModel>(chrono::batch_render::Field<chrono::batch_render::DistortionModel>, chrono::batch_render::Identity<chrono::batch_render::DistortionModel>::Type const&) const:
✓ Branch 2 taken 8 times.
void chrono::batch_render::Prim::Set<chrono::batch_render::DomePoleAxis>(chrono::batch_render::Field<chrono::batch_render::DomePoleAxis>, chrono::batch_render::Identity<chrono::batch_render::DomePoleAxis>::Type const&) const:
✓ Branch 2 taken 1 time.
void chrono::batch_render::Prim::Set<chrono::batch_render::Double3>(chrono::batch_render::Field<chrono::batch_render::Double3>, chrono::batch_render::Identity<chrono::batch_render::Double3>::Type const&) const:
✓ Branch 2 taken 324 times.
void chrono::batch_render::Prim::Set<chrono::batch_render::Float2>(chrono::batch_render::Field<chrono::batch_render::Float2>, chrono::batch_render::Identity<chrono::batch_render::Float2>::Type const&) const:
✓ Branch 2 taken 22 times.
void chrono::batch_render::Prim::Set<chrono::batch_render::Float3>(chrono::batch_render::Field<chrono::batch_render::Float3>, chrono::batch_render::Identity<chrono::batch_render::Float3>::Type const&) const:
✓ Branch 2 taken 59 times.
void chrono::batch_render::Prim::Set<chrono::batch_render::Float4>(chrono::batch_render::Field<chrono::batch_render::Float4>, chrono::batch_render::Identity<chrono::batch_render::Float4>::Type const&) const:
✓ Branch 2 taken 2 times.
void chrono::batch_render::Prim::Set<chrono::batch_render::FollowPathMode>(chrono::batch_render::Field<chrono::batch_render::FollowPathMode>, chrono::batch_render::Identity<chrono::batch_render::FollowPathMode>::Type const&) const:
✓ Branch 2 taken 1 time.
void chrono::batch_render::Prim::Set<chrono::batch_render::ItuMaterialKind>(chrono::batch_render::Field<chrono::batch_render::ItuMaterialKind>, chrono::batch_render::Identity<chrono::batch_render::ItuMaterialKind>::Type const&) const:
✓ Branch 2 taken 7 times.
void chrono::batch_render::Prim::Set<chrono::batch_render::MinimalMode>(chrono::batch_render::Field<chrono::batch_render::MinimalMode>, chrono::batch_render::Identity<chrono::batch_render::MinimalMode>::Type const&) const:
✓ Branch 2 taken 29 times.
void chrono::batch_render::Prim::Set<chrono::batch_render::Orientation>(chrono::batch_render::Field<chrono::batch_render::Orientation>, chrono::batch_render::Identity<chrono::batch_render::Orientation>::Type const&) const:
✓ Branch 2 taken 2 times.
void chrono::batch_render::Prim::Set<chrono::batch_render::Projection>(chrono::batch_render::Field<chrono::batch_render::Projection>, chrono::batch_render::Identity<chrono::batch_render::Projection>::Type const&) const:
✓ Branch 2 taken 1 time.
void chrono::batch_render::Prim::Set<chrono::batch_render::Quatd>(chrono::batch_render::Field<chrono::batch_render::Quatd>, chrono::batch_render::Identity<chrono::batch_render::Quatd>::Type const&) const:
✓ Branch 2 taken 3 times.
void chrono::batch_render::Prim::Set<chrono::batch_render::RenderMode>(chrono::batch_render::Field<chrono::batch_render::RenderMode>, chrono::batch_render::Identity<chrono::batch_render::RenderMode>::Type const&) const:
✓ Branch 2 taken 2 times.
void chrono::batch_render::Prim::Set<chrono::batch_render::ShotNoise>(chrono::batch_render::Field<chrono::batch_render::ShotNoise>, chrono::batch_render::Identity<chrono::batch_render::ShotNoise>::Type const&) const:
✓ Branch 2 taken 2 times.
void chrono::batch_render::Prim::Set<chrono::batch_render::SpectralMode>(chrono::batch_render::Field<chrono::batch_render::SpectralMode>, chrono::batch_render::Identity<chrono::batch_render::SpectralMode>::Type const&) const:
✓ Branch 2 taken 12 times.
void chrono::batch_render::Prim::Set<chrono::batch_render::SubdivisionScheme>(chrono::batch_render::Field<chrono::batch_render::SubdivisionScheme>, chrono::batch_render::Identity<chrono::batch_render::SubdivisionScheme>::Type const&) const:
✓ Branch 2 taken 3 times.
void chrono::batch_render::Prim::Set<chrono::batch_render::TextureColorSpace>(chrono::batch_render::Field<chrono::batch_render::TextureColorSpace>, chrono::batch_render::Identity<chrono::batch_render::TextureColorSpace>::Type const&) const:
✓ Branch 2 taken 1 time.
void chrono::batch_render::Prim::Set<chrono::batch_render::TextureWrapMode>(chrono::batch_render::Field<chrono::batch_render::TextureWrapMode>, chrono::batch_render::Identity<chrono::batch_render::TextureWrapMode>::Type const&) const:
✓ Branch 2 taken 3 times.
void chrono::batch_render::Prim::Set<chrono::batch_render::Uint2>(chrono::batch_render::Field<chrono::batch_render::Uint2>, chrono::batch_render::Identity<chrono::batch_render::Uint2>::Type const&) const:
✓ Branch 2 taken 5 times.
void chrono::batch_render::Prim::Set<chrono::batch_render::Visibility>(chrono::batch_render::Field<chrono::batch_render::Visibility>, chrono::batch_render::Identity<chrono::batch_render::Visibility>::Type const&) const:
✓ Branch 2 taken 1 time.
void chrono::batch_render::Prim::Set<float>(chrono::batch_render::Field<float>, chrono::batch_render::Identity<float>::Type const&) const:
✓ Branch 2 taken 260 times.
void chrono::batch_render::Prim::Set<int>(chrono::batch_render::Field<int>, chrono::batch_render::Identity<int>::Type const&) const:
✓ Branch 2 taken 5 times.
void chrono::batch_render::Prim::Set<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >(chrono::batch_render::Field<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, chrono::batch_render::Identity<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >::Type const&) const:
✓ Branch 2 taken 34 times.
void chrono::batch_render::Prim::Set<std::vector<chrono::batch_render::Float3, std::allocator<chrono::batch_render::Float3> > >(chrono::batch_render::Field<std::vector<chrono::batch_render::Float3, std::allocator<chrono::batch_render::Float3> > >, chrono::batch_render::Identity<std::vector<chrono::batch_render::Float3, std::allocator<chrono::batch_render::Float3> > >::Type const&) const:
✓ Branch 2 taken 122 times.
void chrono::batch_render::Prim::Set<std::vector<chrono::batch_render::Float4, std::allocator<chrono::batch_render::Float4> > >(chrono::batch_render::Field<std::vector<chrono::batch_render::Float4, std::allocator<chrono::batch_render::Float4> > >, chrono::batch_render::Identity<std::vector<chrono::batch_render::Float4, std::allocator<chrono::batch_render::Float4> > >::Type const&) const:
✓ Branch 2 taken 3 times.
void chrono::batch_render::Prim::Set<std::vector<chrono::batch_render::Primvar, std::allocator<chrono::batch_render::Primvar> > >(chrono::batch_render::Field<std::vector<chrono::batch_render::Primvar, std::allocator<chrono::batch_render::Primvar> > >, chrono::batch_render::Identity<std::vector<chrono::batch_render::Primvar, std::allocator<chrono::batch_render::Primvar> > >::Type const&) const:
✓ Branch 2 taken 9 times.
void chrono::batch_render::Prim::Set<std::vector<float, std::allocator<float> > >(chrono::batch_render::Field<std::vector<float, std::allocator<float> > >, chrono::batch_render::Identity<std::vector<float, std::allocator<float> > >::Type const&) const:
✓ Branch 2 taken 23 times.
void chrono::batch_render::Prim::Set<std::vector<int, std::allocator<int> > >(chrono::batch_render::Field<std::vector<int, std::allocator<int> > >, chrono::batch_render::Identity<std::vector<int, std::allocator<int> > >::Type const&) const:
✓ Branch 2 taken 7 times.
void chrono::batch_render::Prim::Set<std::vector<long, std::allocator<long> > >(chrono::batch_render::Field<std::vector<long, std::allocator<long> > >, chrono::batch_render::Identity<std::vector<long, std::allocator<long> > >::Type const&) const:
✓ Branch 2 taken 7 times.
void chrono::batch_render::Prim::Set<std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >(chrono::batch_render::Field<std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >, chrono::batch_render::Identity<std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >::Type const&) const:
✓ Branch 2 taken 802 times.
1789 Write(Single(), field, value);
97 1788 }
98
99 3 bool operator==(const Prim& other) const {
100
4/12
<unknown function 37>:
✗ Branch 0 not taken.
✗ Branch 1 not taken.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
void chrono::batch_render::Prim::Set<std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >(chrono::batch_render::Field<std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >, std::basic_string_view<char, std::char_traits<char> >, chrono::batch_render::Identity<std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >::Type const&) const:
✓ Branch 0 taken 1 time.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 time.
✗ Branch 3 not taken.
✓ Branch 4 taken 2 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 2 times.
✗ Branch 7 not taken.
3 return m_scene == other.m_scene && m_index == other.m_index &&
101 m_generation == other.m_generation;
102 }
103
104 bool operator!=(const Prim& other) const {
105 return !(*this == other);
106 }
107
108 protected:
109 void CheckSchema(SchemaId schema) const;
110
111 private:
112 18 template <class T> T Get(ColumnRef column) const {
113
16/24
bool chrono::batch_render::Prim::Get<bool>(chrono::batch_render::ColumnRef) const:
✓ Branch 2 taken 2 times.
✓ Branch 5 taken 2 times.
✓ Branch 8 taken 2 times.
✗ Branch 9 not taken.
✓ Branch 10 taken 2 times.
✗ Branch 11 not taken.
chrono::batch_render::Float3 chrono::batch_render::Prim::Get<chrono::batch_render::Float3>(chrono::batch_render::ColumnRef) const:
✓ Branch 2 taken 4 times.
✓ Branch 5 taken 4 times.
✓ Branch 8 taken 4 times.
✗ Branch 9 not taken.
✓ Branch 10 taken 4 times.
✗ Branch 11 not taken.
float chrono::batch_render::Prim::Get<float>(chrono::batch_render::ColumnRef) const:
✓ Branch 2 taken 10 times.
✓ Branch 5 taken 10 times.
✓ Branch 8 taken 10 times.
✗ Branch 9 not taken.
✓ Branch 10 taken 10 times.
✗ Branch 11 not taken.
int chrono::batch_render::Prim::Get<int>(chrono::batch_render::ColumnRef) const:
✓ Branch 2 taken 1 time.
✓ Branch 5 taken 1 time.
✓ Branch 8 taken 1 time.
✗ Branch 9 not taken.
✓ Branch 10 taken 1 time.
✗ Branch 11 not taken.
52 return Single().Get<T>(column).Get().front();
114 }
115
116 41 template <class T> void Set(ColumnRef column, const T& value) const {
117
18/24
void chrono::batch_render::Prim::Set<bool>(chrono::batch_render::ColumnRef, bool const&) const:
✓ Branch 2 taken 8 times.
✓ Branch 5 taken 8 times.
✓ Branch 7 taken 8 times.
✗ Branch 8 not taken.
void chrono::batch_render::Prim::Set<chrono::batch_render::Double3>(chrono::batch_render::ColumnRef, chrono::batch_render::Double3 const&) const:
✓ Branch 2 taken 1 time.
✓ Branch 5 taken 1 time.
✓ Branch 7 taken 1 time.
✗ Branch 8 not taken.
void chrono::batch_render::Prim::Set<chrono::batch_render::Float2>(chrono::batch_render::ColumnRef, chrono::batch_render::Float2 const&) const:
✓ Branch 2 taken 1 time.
✓ Branch 5 taken 1 time.
✓ Branch 7 taken 1 time.
✗ Branch 8 not taken.
void chrono::batch_render::Prim::Set<chrono::batch_render::Float3>(chrono::batch_render::ColumnRef, chrono::batch_render::Float3 const&) const:
✓ Branch 2 taken 8 times.
✓ Branch 5 taken 8 times.
✓ Branch 7 taken 8 times.
✗ Branch 8 not taken.
void chrono::batch_render::Prim::Set<float>(chrono::batch_render::ColumnRef, float const&) const:
✓ Branch 2 taken 22 times.
✓ Branch 5 taken 22 times.
✓ Branch 7 taken 22 times.
✗ Branch 8 not taken.
void chrono::batch_render::Prim::Set<int>(chrono::batch_render::ColumnRef, int const&) const:
✓ Branch 2 taken 1 time.
✓ Branch 5 taken 1 time.
✓ Branch 7 taken 1 time.
✗ Branch 8 not taken.
82 Single().Get<T>(column).Set(value);
118 41 }
119
120 12442 template <class T> T Read(const View& view, Field<T> field) const {
121 12442 const ColumnRef column = field.Column();
122 if constexpr (std::is_same_v<T, std::string>) {
123
5/7
✓ Branch 2 taken 473 times.
✓ Branch 5 taken 473 times.
✓ Branch 8 taken 473 times.
✓ Branch 10 taken 389 times.
✗ Branch 11 not taken.
✓ Branch 11 taken 84 times.
✗ Branch 12 not taken.
1444 return std::string(Text(view.Get<Token>(column).Get().front()));
124 } else if constexpr (std::is_same_v<T, std::vector<std::string>>) {
125 1335 const UntypedAttribute values = view.Get(column);
126
2/2
✓ Branch 0 taken 1009 times.
✓ Branch 1 taken 291 times.
1335 return column.column->type == ColumnType::TokenArray ? values.GetTokens(0)
127
2/2
✓ Branch 1 taken 1009 times.
✓ Branch 4 taken 291 times.
1335 : values.GetTargets(0);
128 1335 } else if constexpr (std::is_same_v<T, std::vector<Primvar>>) {
129
1/1
✓ Branch 2 taken 2 times.
6 return view.Get(column).GetPrimvars(0);
130 } else if constexpr (HasItems<T>::value) {
131
3/3
std::vector<chrono::batch_render::Float2, std::allocator<chrono::batch_render::Float2> > chrono::batch_render::Prim::Read<std::vector<chrono::batch_render::Float2, std::allocator<chrono::batch_render::Float2> > >(chrono::batch_render::View const&, chrono::batch_render::Field<std::vector<chrono::batch_render::Float2, std::allocator<chrono::batch_render::Float2> > >) const:
✓ Branch 2 taken 1 time.
std::vector<chrono::batch_render::Float3, std::allocator<chrono::batch_render::Float3> > chrono::batch_render::Prim::Read<std::vector<chrono::batch_render::Float3, std::allocator<chrono::batch_render::Float3> > >(chrono::batch_render::View const&, chrono::batch_render::Field<std::vector<chrono::batch_render::Float3, std::allocator<chrono::batch_render::Float3> > >) const:
✓ Branch 2 taken 2 times.
std::vector<int, std::allocator<int> > chrono::batch_render::Prim::Read<std::vector<int, std::allocator<int> > >(chrono::batch_render::View const&, chrono::batch_render::Field<std::vector<int, std::allocator<int> > >) const:
✓ Branch 2 taken 1 time.
73 return view.GetArray<typename T::value_type>(column).Get(0);
132 } else {
133
20/30
bool chrono::batch_render::Prim::Read<bool>(chrono::batch_render::View const&, chrono::batch_render::Field<bool>) const:
✓ Branch 2 taken 150 times.
✓ Branch 5 taken 150 times.
✗ Branch 6 not taken.
chrono::batch_render::Double3 chrono::batch_render::Prim::Read<chrono::batch_render::Double3>(chrono::batch_render::View const&, chrono::batch_render::Field<chrono::batch_render::Double3>) const:
✓ Branch 2 taken 147 times.
✓ Branch 5 taken 147 times.
✗ Branch 6 not taken.
chrono::batch_render::Float2 chrono::batch_render::Prim::Read<chrono::batch_render::Float2>(chrono::batch_render::View const&, chrono::batch_render::Field<chrono::batch_render::Float2>) const:
✓ Branch 2 taken 1 time.
✓ Branch 5 taken 1 time.
✗ Branch 6 not taken.
chrono::batch_render::Float3 chrono::batch_render::Prim::Read<chrono::batch_render::Float3>(chrono::batch_render::View const&, chrono::batch_render::Field<chrono::batch_render::Float3>) const:
✓ Branch 2 taken 220 times.
✓ Branch 5 taken 220 times.
✗ Branch 6 not taken.
chrono::batch_render::ImplementationSource chrono::batch_render::Prim::Read<chrono::batch_render::ImplementationSource>(chrono::batch_render::View const&, chrono::batch_render::Field<chrono::batch_render::ImplementationSource>) const:
✓ Branch 2 taken 1 time.
✓ Branch 5 taken 1 time.
✗ Branch 6 not taken.
chrono::batch_render::PhysicalIlluminant chrono::batch_render::Prim::Read<chrono::batch_render::PhysicalIlluminant>(chrono::batch_render::View const&, chrono::batch_render::Field<chrono::batch_render::PhysicalIlluminant>) const:
✓ Branch 2 taken 3 times.
✓ Branch 5 taken 3 times.
✗ Branch 6 not taken.
chrono::batch_render::ShapingAxis chrono::batch_render::Prim::Read<chrono::batch_render::ShapingAxis>(chrono::batch_render::View const&, chrono::batch_render::Field<chrono::batch_render::ShapingAxis>) const:
✓ Branch 2 taken 1 time.
✓ Branch 5 taken 1 time.
✗ Branch 6 not taken.
chrono::batch_render::TextureWrapMode chrono::batch_render::Prim::Read<chrono::batch_render::TextureWrapMode>(chrono::batch_render::View const&, chrono::batch_render::Field<chrono::batch_render::TextureWrapMode>) const:
✓ Branch 2 taken 1 time.
✓ Branch 5 taken 1 time.
✗ Branch 6 not taken.
chrono::batch_render::Visibility chrono::batch_render::Prim::Read<chrono::batch_render::Visibility>(chrono::batch_render::View const&, chrono::batch_render::Field<chrono::batch_render::Visibility>) const:
✓ Branch 2 taken 1 time.
✓ Branch 5 taken 1 time.
✗ Branch 6 not taken.
float chrono::batch_render::Prim::Read<float>(chrono::batch_render::View const&, chrono::batch_render::Field<float>) const:
✓ Branch 2 taken 3552 times.
✓ Branch 5 taken 3552 times.
✗ Branch 6 not taken.
21114 return view.Get<T>(column).Get().front();
134 }
135 }
136
137 template <class T>
138 1793 void Write(const View& view, Field<T> field, const typename Identity<T>::Type& value) const {
139 1793 const ColumnRef column = field.Column();
140 if constexpr (std::is_same_v<T, std::string>) {
141
4/6
✓ Branch 2 taken 35 times.
✓ Branch 5 taken 34 times.
✓ Branch 7 taken 34 times.
✗ Branch 8 not taken.
✓ Branch 9 taken 1 time.
✗ Branch 10 not taken.
35 view.Get<Token>(column).Set(Intern(value));
142 } else if constexpr (std::is_same_v<T, std::vector<std::string>>) {
143 806 UntypedAttribute values = view.Get(column);
144
2/2
✓ Branch 0 taken 522 times.
✓ Branch 1 taken 284 times.
806 if (column.column->type == ColumnType::TokenArray) {
145
1/1
✓ Branch 1 taken 522 times.
522 values.SetTokens(0, value);
146 } else {
147
1/1
✓ Branch 1 taken 284 times.
284 values.SetTargets(0, value);
148 }
149 806 } else if constexpr (std::is_same_v<T, std::vector<Primvar>>) {
150
1/1
✓ Branch 2 taken 9 times.
9 view.Get(column).SetPrimvars(0, value);
151 } else if constexpr (HasItems<T>::value) {
152
12/34
void chrono::batch_render::Prim::Write<std::vector<chrono::batch_render::Float3, std::allocator<chrono::batch_render::Float3> > >(chrono::batch_render::View const&, chrono::batch_render::Field<std::vector<chrono::batch_render::Float3, std::allocator<chrono::batch_render::Float3> > >, chrono::batch_render::Identity<std::vector<chrono::batch_render::Float3, std::allocator<chrono::batch_render::Float3> > >::Type const&) const:
✗ Branch 2 not taken.
✓ Branch 3 taken 122 times.
✗ Branch 4 not taken.
✓ Branch 5 taken 122 times.
✗ Branch 6 not taken.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 8 not taken.
void chrono::batch_render::Prim::Write<std::vector<chrono::batch_render::Float4, std::allocator<chrono::batch_render::Float4> > >(chrono::batch_render::View const&, chrono::batch_render::Field<std::vector<chrono::batch_render::Float4, std::allocator<chrono::batch_render::Float4> > >, chrono::batch_render::Identity<std::vector<chrono::batch_render::Float4, std::allocator<chrono::batch_render::Float4> > >::Type const&) const:
✓ Branch 3 taken 3 times.
✓ Branch 5 taken 3 times.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 8 not taken.
void chrono::batch_render::Prim::Write<std::vector<float, std::allocator<float> > >(chrono::batch_render::View const&, chrono::batch_render::Field<std::vector<float, std::allocator<float> > >, chrono::batch_render::Identity<std::vector<float, std::allocator<float> > >::Type const&) const:
✗ Branch 2 not taken.
✓ Branch 3 taken 23 times.
✗ Branch 4 not taken.
✓ Branch 5 taken 23 times.
✗ Branch 6 not taken.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 8 not taken.
void chrono::batch_render::Prim::Write<std::vector<int, std::allocator<int> > >(chrono::batch_render::View const&, chrono::batch_render::Field<std::vector<int, std::allocator<int> > >, chrono::batch_render::Identity<std::vector<int, std::allocator<int> > >::Type const&) const:
✓ Branch 2 taken 3 times.
✓ Branch 3 taken 4 times.
✓ Branch 4 taken 3 times.
✓ Branch 5 taken 4 times.
✗ Branch 6 not taken.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 8 not taken.
void chrono::batch_render::Prim::Write<std::vector<long, std::allocator<long> > >(chrono::batch_render::View const&, chrono::batch_render::Field<std::vector<long, std::allocator<long> > >, chrono::batch_render::Identity<std::vector<long, std::allocator<long> > >::Type const&) const:
✓ Branch 3 taken 7 times.
✓ Branch 5 taken 7 times.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 8 not taken.
162 view.GetArray<typename T::value_type>(column).Set(
153 0, Span<const typename T::value_type>(value));
154 } else {
155
26/26
void chrono::batch_render::Prim::Write<bool>(chrono::batch_render::View const&, chrono::batch_render::Field<bool>, chrono::batch_render::Identity<bool>::Type const&) const:
✓ Branch 2 taken 6 times.
void chrono::batch_render::Prim::Write<chrono::batch_render::AspectRatioConformPolicy>(chrono::batch_render::View const&, chrono::batch_render::Field<chrono::batch_render::AspectRatioConformPolicy>, chrono::batch_render::Identity<chrono::batch_render::AspectRatioConformPolicy>::Type const&) const:
✓ Branch 2 taken 11 times.
void chrono::batch_render::Prim::Write<chrono::batch_render::CameraSignalLayout>(chrono::batch_render::View const&, chrono::batch_render::Field<chrono::batch_render::CameraSignalLayout>, chrono::batch_render::Identity<chrono::batch_render::CameraSignalLayout>::Type const&) const:
✓ Branch 2 taken 1 time.
void chrono::batch_render::Prim::Write<chrono::batch_render::DetectorPattern>(chrono::batch_render::View const&, chrono::batch_render::Field<chrono::batch_render::DetectorPattern>, chrono::batch_render::Identity<chrono::batch_render::DetectorPattern>::Type const&) const:
✓ Branch 2 taken 10 times.
void chrono::batch_render::Prim::Write<chrono::batch_render::DistortionModel>(chrono::batch_render::View const&, chrono::batch_render::Field<chrono::batch_render::DistortionModel>, chrono::batch_render::Identity<chrono::batch_render::DistortionModel>::Type const&) const:
✓ Branch 2 taken 8 times.
void chrono::batch_render::Prim::Write<chrono::batch_render::DomePoleAxis>(chrono::batch_render::View const&, chrono::batch_render::Field<chrono::batch_render::DomePoleAxis>, chrono::batch_render::Identity<chrono::batch_render::DomePoleAxis>::Type const&) const:
✓ Branch 2 taken 1 time.
void chrono::batch_render::Prim::Write<chrono::batch_render::Double3>(chrono::batch_render::View const&, chrono::batch_render::Field<chrono::batch_render::Double3>, chrono::batch_render::Identity<chrono::batch_render::Double3>::Type const&) const:
✓ Branch 2 taken 324 times.
void chrono::batch_render::Prim::Write<chrono::batch_render::Float2>(chrono::batch_render::View const&, chrono::batch_render::Field<chrono::batch_render::Float2>, chrono::batch_render::Identity<chrono::batch_render::Float2>::Type const&) const:
✓ Branch 2 taken 22 times.
void chrono::batch_render::Prim::Write<chrono::batch_render::Float3>(chrono::batch_render::View const&, chrono::batch_render::Field<chrono::batch_render::Float3>, chrono::batch_render::Identity<chrono::batch_render::Float3>::Type const&) const:
✓ Branch 2 taken 59 times.
void chrono::batch_render::Prim::Write<chrono::batch_render::Float4>(chrono::batch_render::View const&, chrono::batch_render::Field<chrono::batch_render::Float4>, chrono::batch_render::Identity<chrono::batch_render::Float4>::Type const&) const:
✓ Branch 2 taken 2 times.
void chrono::batch_render::Prim::Write<chrono::batch_render::FollowPathMode>(chrono::batch_render::View const&, chrono::batch_render::Field<chrono::batch_render::FollowPathMode>, chrono::batch_render::Identity<chrono::batch_render::FollowPathMode>::Type const&) const:
✓ Branch 2 taken 1 time.
void chrono::batch_render::Prim::Write<chrono::batch_render::ItuMaterialKind>(chrono::batch_render::View const&, chrono::batch_render::Field<chrono::batch_render::ItuMaterialKind>, chrono::batch_render::Identity<chrono::batch_render::ItuMaterialKind>::Type const&) const:
✓ Branch 2 taken 7 times.
void chrono::batch_render::Prim::Write<chrono::batch_render::MinimalMode>(chrono::batch_render::View const&, chrono::batch_render::Field<chrono::batch_render::MinimalMode>, chrono::batch_render::Identity<chrono::batch_render::MinimalMode>::Type const&) const:
✓ Branch 2 taken 29 times.
void chrono::batch_render::Prim::Write<chrono::batch_render::Orientation>(chrono::batch_render::View const&, chrono::batch_render::Field<chrono::batch_render::Orientation>, chrono::batch_render::Identity<chrono::batch_render::Orientation>::Type const&) const:
✓ Branch 2 taken 2 times.
void chrono::batch_render::Prim::Write<chrono::batch_render::Projection>(chrono::batch_render::View const&, chrono::batch_render::Field<chrono::batch_render::Projection>, chrono::batch_render::Identity<chrono::batch_render::Projection>::Type const&) const:
✓ Branch 2 taken 1 time.
void chrono::batch_render::Prim::Write<chrono::batch_render::Quatd>(chrono::batch_render::View const&, chrono::batch_render::Field<chrono::batch_render::Quatd>, chrono::batch_render::Identity<chrono::batch_render::Quatd>::Type const&) const:
✓ Branch 2 taken 3 times.
void chrono::batch_render::Prim::Write<chrono::batch_render::RenderMode>(chrono::batch_render::View const&, chrono::batch_render::Field<chrono::batch_render::RenderMode>, chrono::batch_render::Identity<chrono::batch_render::RenderMode>::Type const&) const:
✓ Branch 2 taken 2 times.
void chrono::batch_render::Prim::Write<chrono::batch_render::ShotNoise>(chrono::batch_render::View const&, chrono::batch_render::Field<chrono::batch_render::ShotNoise>, chrono::batch_render::Identity<chrono::batch_render::ShotNoise>::Type const&) const:
✓ Branch 2 taken 2 times.
void chrono::batch_render::Prim::Write<chrono::batch_render::SpectralMode>(chrono::batch_render::View const&, chrono::batch_render::Field<chrono::batch_render::SpectralMode>, chrono::batch_render::Identity<chrono::batch_render::SpectralMode>::Type const&) const:
✓ Branch 2 taken 12 times.
void chrono::batch_render::Prim::Write<chrono::batch_render::SubdivisionScheme>(chrono::batch_render::View const&, chrono::batch_render::Field<chrono::batch_render::SubdivisionScheme>, chrono::batch_render::Identity<chrono::batch_render::SubdivisionScheme>::Type const&) const:
✓ Branch 2 taken 3 times.
void chrono::batch_render::Prim::Write<chrono::batch_render::TextureColorSpace>(chrono::batch_render::View const&, chrono::batch_render::Field<chrono::batch_render::TextureColorSpace>, chrono::batch_render::Identity<chrono::batch_render::TextureColorSpace>::Type const&) const:
✓ Branch 2 taken 1 time.
void chrono::batch_render::Prim::Write<chrono::batch_render::TextureWrapMode>(chrono::batch_render::View const&, chrono::batch_render::Field<chrono::batch_render::TextureWrapMode>, chrono::batch_render::Identity<chrono::batch_render::TextureWrapMode>::Type const&) const:
✓ Branch 2 taken 3 times.
void chrono::batch_render::Prim::Write<chrono::batch_render::Uint2>(chrono::batch_render::View const&, chrono::batch_render::Field<chrono::batch_render::Uint2>, chrono::batch_render::Identity<chrono::batch_render::Uint2>::Type const&) const:
✓ Branch 2 taken 5 times.
void chrono::batch_render::Prim::Write<chrono::batch_render::Visibility>(chrono::batch_render::View const&, chrono::batch_render::Field<chrono::batch_render::Visibility>, chrono::batch_render::Identity<chrono::batch_render::Visibility>::Type const&) const:
✓ Branch 2 taken 1 time.
void chrono::batch_render::Prim::Write<float>(chrono::batch_render::View const&, chrono::batch_render::Field<float>, chrono::batch_render::Identity<float>::Type const&) const:
✓ Branch 2 taken 260 times.
void chrono::batch_render::Prim::Write<int>(chrono::batch_render::View const&, chrono::batch_render::Field<int>, chrono::batch_render::Identity<int>::Type const&) const:
✓ Branch 2 taken 5 times.
781 view.Get<T>(column).Set(value);
156 }
157 1792 }
158
159 void Check() const;
160 View Single() const;
161 View Single(SchemaId api, std::string_view instance) const;
162 Token Intern(std::string_view text) const;
163 std::string_view Text(Token token) const;
164
165 Scene* m_scene = nullptr;
166 uint32_t m_index = kNoPrim;
167 uint32_t m_generation = 0;
168 };
169
170 }
171