$search
00001 /****************************************************************************** 00002 * \file 00003 * 00004 * $Id:$ 00005 * 00006 * Copyright (C) Brno University of Technology 00007 * 00008 * This file is part of software developed by dcgm-robotics@FIT group. 00009 * 00010 * Author: Vit Stancl (stancl@fit.vutbr.cz) 00011 * Supervised by: Michal Spanel (spanel@fit.vutbr.cz) 00012 * Date: dd/mm/2012 00013 * 00014 * This file is free software: you can redistribute it and/or modify 00015 * it under the terms of the GNU Lesser General Public License as published by 00016 * the Free Software Foundation, either version 3 of the License, or 00017 * (at your option) any later version. 00018 * 00019 * This file is distributed in the hope that it will be useful, 00020 * but WITHOUT ANY WARRANTY; without even the implied warranty of 00021 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 00022 * GNU Lesser General Public License for more details. 00023 * 00024 * You should have received a copy of the GNU Lesser General Public License 00025 * along with this file. If not, see <http://www.gnu.org/licenses/>. 00026 */ 00027 #pragma once 00028 #ifndef TestingSphere_H_included 00029 #define TestingSphere_H_included 00030 00031 #include "testing_object_base.h" 00032 00033 namespace srs_env_model 00034 { 00038 class CTestingSphere : public CTestingObjectBase 00039 { 00040 public: 00042 CTestingSphere() : m_radiussq( 0.0 ), m_x( 0.0 ), m_y(0.0), m_z(0.0) {} 00043 00045 CTestingSphere( double x, double y, double z, double radius ) 00046 : m_radiussq( radius * radius ), m_x( x ), m_y( y ), m_z( z ) 00047 {} 00048 00050 void set( double x, double y, double z, double radius ) 00051 { m_radiussq = radius*radius; m_x = x; m_y = y; m_z = z; } 00052 00054 virtual bool isIn( double x, double y, double z ) 00055 { 00056 double sx( x - m_x ), sy( y - m_y ), sz( z - m_z ); 00057 return sx*sx + sy*sy + sz*sz < m_radiussq; 00058 } 00059 00060 protected: 00062 double m_radiussq; 00063 00065 double m_x, m_y, m_z; 00066 00067 }; // class CTestingSphere 00068 00069 } // namespace srs_env_model 00070 00071 00072 // TestingSphere_H_included 00073 #endif