MCPcopy Create free account
hub / github.com/alandefreitas/matplotplusplus / data_string

Method data_string

source/matplot/axes_objects/vectors.cpp:116–191  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

114 }
115
116 std::string vectors::data_string() {
117 std::stringstream ss;
118 ss.precision(10);
119 ss << std::fixed;
120 if (visible_) {
121 for (size_t i = 0; i < v_data_.size(); ++i) {
122 double x_value = x_data_.size() > i ? x_data_[i]
123 : is_polar() ? 0
124 : static_cast<double>(i + 1);
125 double y_value = y_data_.size() > i ? y_data_[i] : 0;
126 double z_value = z_data_.size() > i ? z_data_[i] : 0;
127 double u_value = u_data_.size() > i ? u_data_[i] : 0;
128 double v_value = v_data_.size() > i ? v_data_[i] : 0;
129 double w_value = w_data_.size() > i ? w_data_[i] : 0;
130 double c_value = c_data_.size() > i ? c_data_[i] : 0;
131
132 bool is_end_of_series =
133 !std::isfinite(x_value) || !std::isfinite(y_value) ||
134 !std::isfinite(z_value) || !std::isfinite(u_value) ||
135 !std::isfinite(v_value) || !std::isfinite(w_value);
136 if (is_end_of_series) {
137 ss << " \n";
138 continue;
139 }
140
141 ss << " " << x_value;
142 ss << " " << y_value;
143 if (is_3d()) {
144 ss << " " << z_value;
145 } else if (parent_->is_3d()) {
146 ss << " " << 0.0;
147 }
148
149 if (normalize_) {
150 double mag =
151 std::sqrt(u_value * u_value + v_value * v_value +
152 w_value * w_value);
153 if (mag != 0.0) {
154 u_value /= mag;
155 v_value /= mag;
156 w_value /= mag;
157 }
158 if (scale_ != 0.0) {
159 u_value *= scale_;
160 v_value *= scale_;
161 w_value *= scale_;
162 }
163 }
164
165 ss << " " << u_value;
166 ss << " " << v_value;
167 if (is_3d()) {
168 ss << " " << w_value;
169 } else if (parent_->is_3d()) {
170 ss << " " << 0.0;
171 }
172 if (!c_data_.empty()) {
173 ss << " " << c_value;

Callers

nothing calls this directly

Calls 3

emptyMethod · 0.80
sizeMethod · 0.45
is_3dMethod · 0.45

Tested by

no test coverage detected