Files
allwpilib/wpilibc/athena/src/Vision/ImageBase.cpp
Peter Mitrano e71f454b9d Renamed folders for consistency, using sim/athena/shared schema (#27)
Rename the following folders:
hal/lib/Athena -> hal/lib/athena
hal/lib/Desktop -> hal/lib/sim
hal/lib/Shared -> hal/lib/shared
wpilibc/Athena -> wpilibc/athena
wpilibc/simulation -> wpilibc/sim

Windows users may need to run gradlew clean after updating.
2016-05-22 14:55:51 -07:00

70 lines
1.9 KiB
C++

/*----------------------------------------------------------------------------*/
/* Copyright (c) FIRST 2014-2016. All Rights Reserved. */
/* Open Source Software - may be modified and shared by FRC teams. The code */
/* must be accompanied by the FIRST BSD license file in the root directory of */
/* the project. */
/*----------------------------------------------------------------------------*/
#include "Vision/ImageBase.h"
#include "nivision.h"
/**
* Create a new instance of an ImageBase.
*
* ImageBase is the base of all the other image classes. The constructor
* creates any type of image and stores the pointer to it in the class.
*
* @param type The type of image to create
*/
ImageBase::ImageBase(ImageType type) {
m_imaqImage = imaqCreateImage(type, DEFAULT_BORDER_SIZE);
}
/**
* Frees memory associated with an ImageBase.
*
* Destructor frees the imaq image allocated with the class.
*/
ImageBase::~ImageBase() {
if (m_imaqImage) imaqDispose(m_imaqImage);
}
/**
* Writes an image to a file with the given filename.
*
* @param fileName The name of the file to write
*/
void ImageBase::Write(const char* fileName) {
int success = imaqWriteFile(m_imaqImage, fileName, nullptr);
wpi_setImaqErrorWithContext(success, "Imaq Image writeFile error");
}
/**
* Gets the height of an image.
*
* @return The height of the image in pixels.
*/
int ImageBase::GetHeight() {
int height;
imaqGetImageSize(m_imaqImage, nullptr, &height);
return height;
}
/**
* Gets the width of an image.
*
* @return The width of the image in pixels.
*/
int ImageBase::GetWidth() {
int width;
imaqGetImageSize(m_imaqImage, &width, nullptr);
return width;
}
/**
* Access the internal IMAQ Image data structure.
*
* @return A pointer to the internal IMAQ Image data structure.
*/
Image* ImageBase::GetImaqImage() { return m_imaqImage; }