An open API service indexing awesome lists of open source software.

https://github.com/algorithm-visualizer/tracers.cpp

:scroll:Visualization Library for C++
https://github.com/algorithm-visualizer/tracers.cpp

visualization-library

Last synced: 2 months ago
JSON representation

:scroll:Visualization Library for C++

Awesome Lists containing this project

README

        

# tracers.cpp [![GitHub release](https://img.shields.io/github/release/algorithm-visualizer/tracers.cpp.svg?style=flat-square)](https://github.com/algorithm-visualizer/tracers.cpp/releases/latest) [![API reference](https://img.shields.io/badge/documentation-cpp-red.svg?style=flat-square)](https://algorithm-visualizer.github.io/tracers.cpp/) [![Travis (.com)](https://img.shields.io/travis/com/algorithm-visualizer/tracers.cpp.svg?style=flat-square)](https://travis-ci.com/algorithm-visualizer/tracers.cpp)

> This repository is part of the project [Algorithm Visualizer](https://github.com/algorithm-visualizer).

`tracers.cpp` is a visualization library for C++.
You can use it on [algorithm-visualizer.org](https://algorithm-visualizer.org/) or locally on your machine.

## Prerequisites

- [libcurl](https://curl.haxx.se/libcurl/)

## Installation

1. Download and extract the source code in the [latest release](https://github.com/algorithm-visualizer/tracers.cpp/releases/latest).

2. Change directory to it and run:

```bash
mkdir build

cd build

cmake ..

make install
```

## Usage

```cpp
// import visualization libraries {
#include "algorithm-visualizer.h"
// }

#include
#include

// define tracer variables {
Array2DTracer array2dTracer = Array2DTracer("Grid");
LogTracer logTracer = LogTracer("Console");
// }

// define input variables
std::vector messages{
"Visualize",
"your",
"own",
"code",
"here!",
};

// highlight each line of messages recursively
void highlight(int line) {
if (line >= messages.size()) return;
std::string message = messages[line];
// visualize {
logTracer.println(message);
array2dTracer.selectRow(line, 0, message.size() - 1);
Tracer::delay();
array2dTracer.deselectRow(line, 0, message.size() - 1);
// }
highlight(line + 1);
}

int main() {
// visualize {
Layout::setRoot(VerticalLayout({array2dTracer, logTracer}));
array2dTracer.set(messages);
Tracer::delay();
// }
highlight(0);
return 0;
}
```

Check out the [API reference](https://algorithm-visualizer.github.io/tracers.cpp/) for more information.

## Contributing

Check out the [contributing guidelines](https://github.com/algorithm-visualizer/tracers.cpp/blob/master/CONTRIBUTING.md).