source: flair-src/branches/sanscv/lib/FlairCore/src/MatrixDescriptor.cpp@ 326

Last change on this file since 326 was 324, checked in by Sanahuja Guillaume, 5 years ago

removing opencv dependency

File size: 1.9 KB
Line 
1// %flair:license{
2// This file is part of the Flair framework distributed under the
3// CECILL-C License, Version 1.0.
4// %flair:license}
5// created: 2014/02/05
6// filename: MatrixDescriptor.cpp
7//
8// author: Guillaume Sanahuja
9// Copyright Heudiasyc UMR UTC/CNRS 7253
10//
11// version: $Id: $
12//
13// purpose: Class describing matrix elements, for log and graphs purpose
14//
15/*********************************************************************/
16
17#include "MatrixDescriptor.h"
18#include "FrameworkManager.h"
19
20using std::string;
21
22namespace flair {
23namespace core {
24
25MatrixDescriptor::MatrixDescriptor(uint32_t rows, uint32_t cols) {
26 this->rows = rows;
27 this->cols = cols;
28
29 if (rows == 0 || cols == 0)
30 getFrameworkManager()->Err("rows and cols must be >0\n");
31
32 element_names = (string **)malloc(rows * cols * sizeof(string *));
33 for (uint32_t i = 0; i < rows * cols; i++) {
34 element_names[i] = new string();
35 }
36}
37
38MatrixDescriptor::~MatrixDescriptor() {
39 for (uint32_t i = 0; i < rows * cols; i++) {
40 delete element_names[i];
41 }
42 free(element_names);
43}
44
45void MatrixDescriptor::SetElementName(uint32_t row, uint32_t col,
46 string name) {
47 if (row >= rows || col >= cols) {
48 getFrameworkManager()->Err("index out of bound %s (%i,%i), max (%i,%i)\n",
49 name.c_str(), row, col, rows - 1, cols - 1);
50 return;
51 }
52 *element_names[row * cols + col] = name;
53}
54
55string MatrixDescriptor::ElementName(uint32_t row, uint32_t col) const {
56 if (row >= rows || col >= cols) {
57 getFrameworkManager()->Err("index out of bound (%i,%i), max (%i,%i)\n",
58 row, col, rows - 1, cols - 1);
59 return *element_names[0]; // safe value...
60 }
61 return *element_names[row * cols + col];
62}
63
64uint32_t MatrixDescriptor::Rows() const { return rows; }
65
66uint32_t MatrixDescriptor::Cols() const { return cols; }
67
68} // end namespace core
69} // end namespace flair
Note: See TracBrowser for help on using the repository browser.