Blender V5.0
deg_builder_relations_drivers.h
Go to the documentation of this file.
1/* SPDX-FileCopyrightText: 2013 Blender Authors
2 *
3 * SPDX-License-Identifier: GPL-2.0-or-later */
4
8
9#pragma once
10
11#include "BLI_string_ref.hh"
12
13#include "RNA_types.hh"
14
16
17struct FCurve;
18
19namespace blender::deg {
20
21/* Helper class for determining which relations are needed between driver evaluation nodes. */
23 public:
38
39 DriverDescriptor(PointerRNA *id_ptr, FCurve *fcu);
40
41 bool driver_relations_needed() const;
42 bool is_array() const;
44 bool is_same_array_as(const DriverDescriptor &other) const;
46
47 private:
48 PointerRNA *id_ptr_;
49 FCurve *fcu_;
50 bool driver_relations_needed_;
51
52 PointerRNA pointer_rna_;
53 PropertyRNA *property_rna_;
54 bool is_array_;
55
56 bool determine_relations_needed();
57 void split_rna_path();
58 bool resolve_rna();
59};
60
71bool data_path_maybe_shared(const ID &id, StringRef data_path);
72
73} // namespace blender::deg
DriverDescriptor(PointerRNA *id_ptr, FCurve *fcu)
bool is_same_array_as(const DriverDescriptor &other) const
bool data_path_maybe_shared(const ID &id, const StringRef data_path)
Definition DNA_ID.h:414