Pheromone sensing on the way.
This commit is contained in:
@@ -1,6 +1,32 @@
|
||||
/*************************************************************************************
|
||||
* Copyright (c) 2016, Miguel Angel Astor Romero *
|
||||
* All rights reserved. *
|
||||
* *
|
||||
* Redistribution and use in source and binary forms, with or without *
|
||||
* modification, are permitted provided that the following conditions are met: *
|
||||
* *
|
||||
* 1. Redistributions of source code must retain the above copyright notice, this *
|
||||
* list of conditions and the following disclaimer. *
|
||||
* 2. Redistributions in binary form must reproduce the above copyright notice, *
|
||||
* this list of conditions and the following disclaimer in the documentation *
|
||||
* and/or other materials provided with the distribution. *
|
||||
* *
|
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND *
|
||||
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED *
|
||||
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE *
|
||||
* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR *
|
||||
* ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES *
|
||||
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; *
|
||||
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND *
|
||||
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT *
|
||||
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS *
|
||||
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *
|
||||
*************************************************************************************/
|
||||
|
||||
#ifndef PHEROMONE_HPP
|
||||
#define PHEROMONE_HPP
|
||||
|
||||
#include <cstring>
|
||||
#include <ctime>
|
||||
#include <semaphore.h>
|
||||
#include <GL/gl.h>
|
||||
@@ -8,6 +34,23 @@
|
||||
extern const unsigned char MAX_PHERO_INTENSITY;
|
||||
extern const unsigned char MIN_PHERO_INTENSITY;
|
||||
|
||||
const unsigned int NUM_PHERO_SAMPLES = 180;
|
||||
|
||||
typedef struct PHERO_SENSOR {
|
||||
float samples[NUM_PHERO_SAMPLES];
|
||||
|
||||
PHERO_SENSOR() {
|
||||
memset(this->samples, 0.0f, NUM_PHERO_SAMPLES);
|
||||
}
|
||||
|
||||
float operator[](unsigned int index) {
|
||||
if(index >= NUM_PHERO_SAMPLES)
|
||||
return -1.0f;
|
||||
else
|
||||
return this->samples[index];
|
||||
}
|
||||
} phero_sensor_t;
|
||||
|
||||
class PheromoneMap {
|
||||
public:
|
||||
PheromoneMap(const char * file_name);
|
||||
@@ -16,6 +59,7 @@ public:
|
||||
GLuint s_build_texture();
|
||||
bool s_deposit_pheromone(float x, float y);
|
||||
void s_evaporate();
|
||||
void s_sample(phero_sensor_t * sensor, float x, float y, float yaw, float radius);
|
||||
|
||||
private:
|
||||
unsigned char * data;
|
||||
|
Reference in New Issue
Block a user