MCPcopy Create free account
hub / github.com/brenocq/implot3d / PlotLineEx

Function PlotLineEx

implot3d_items.cpp:1280–1327  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1278//-----------------------------------------------------------------------------
1279
1280template <typename _Getter> void PlotLineEx(const char* label_id, const _Getter& getter, const ImPlot3DSpec& spec) {
1281 if (BeginItemEx(label_id, getter, spec, spec.LineColor, spec.Marker)) {
1282 const ImPlot3DNextItemData& n = GetItemData();
1283 const ImPlot3DSpec& s = n.Spec;
1284
1285 if (getter.Count >= 2 && n.RenderLine) {
1286 if (ImHasFlag(spec.Flags, ImPlot3DLineFlags_Segments)) {
1287 if (s.LineColors != nullptr) {
1288 RenderPrimitives2<RendererLineSegments>(getter, GetterIdxColor(s.LineColors, getter.Count), s.LineWeight);
1289 } else {
1290 RenderPrimitives2<RendererLineSegments>(getter, GetterConstColor(ImGui::GetColorU32(s.LineColor)), s.LineWeight);
1291 }
1292 } else if (ImHasFlag(spec.Flags, ImPlot3DLineFlags_Loop)) {
1293 if (s.LineColors != nullptr) {
1294 if (ImHasFlag(spec.Flags, ImPlot3DLineFlags_SkipNaN))
1295 RenderPrimitives2<RendererLineStripSkip>(GetterLoop<_Getter>(getter), GetterIdxColor(s.LineColors, getter.Count),
1296 s.LineWeight);
1297 else
1298 RenderPrimitives2<RendererLineStrip>(GetterLoop<_Getter>(getter), GetterIdxColor(s.LineColors, getter.Count), s.LineWeight);
1299 } else {
1300 if (ImHasFlag(spec.Flags, ImPlot3DLineFlags_SkipNaN))
1301 RenderPrimitives2<RendererLineStripSkip>(GetterLoop<_Getter>(getter), GetterConstColor(ImGui::GetColorU32(s.LineColor)),
1302 s.LineWeight);
1303 else
1304 RenderPrimitives2<RendererLineStrip>(GetterLoop<_Getter>(getter), GetterConstColor(ImGui::GetColorU32(s.LineColor)),
1305 s.LineWeight);
1306 }
1307 } else {
1308 if (s.LineColors != nullptr) {
1309 if (ImHasFlag(spec.Flags, ImPlot3DLineFlags_SkipNaN))
1310 RenderPrimitives2<RendererLineStripSkip>(getter, GetterIdxColor(s.LineColors, getter.Count), s.LineWeight);
1311 else
1312 RenderPrimitives2<RendererLineStrip>(getter, GetterIdxColor(s.LineColors, getter.Count), s.LineWeight);
1313 } else {
1314 if (ImHasFlag(spec.Flags, ImPlot3DLineFlags_SkipNaN))
1315 RenderPrimitives2<RendererLineStripSkip>(getter, GetterConstColor(ImGui::GetColorU32(s.LineColor)), s.LineWeight);
1316 else
1317 RenderPrimitives2<RendererLineStrip>(getter, GetterConstColor(ImGui::GetColorU32(s.LineColor)), s.LineWeight);
1318 }
1319 }
1320 }
1321
1322 // Render markers
1323 if (s.Marker != ImPlot3DMarker_None)
1324 RenderColoredMarkers(getter, n);
1325 EndItem();
1326 }
1327}
1328
1329IMPLOT3D_TMP void PlotLine(const char* label_id, const T* xs, const T* ys, const T* zs, int count, const ImPlot3DSpec& spec) {
1330 if (count < 2)

Callers 1

PlotLineFunction · 0.85

Calls 6

BeginItemExFunction · 0.85
ImHasFlagFunction · 0.85
GetterIdxColorClass · 0.85
GetterConstColorClass · 0.85
RenderColoredMarkersFunction · 0.85
EndItemFunction · 0.85

Tested by

no test coverage detected