00001 /* 00002 * Software License Agreement (Apache License) 00003 * 00004 * Copyright (c) 2014, Southwest Research Institute 00005 * 00006 * Licensed under the Apache License, Version 2.0 (the "License"); 00007 * you may not use this file except in compliance with the License. 00008 * You may obtain a copy of the License at 00009 * 00010 * http://www.apache.org/licenses/LICENSE-2.0 00011 * 00012 * Unless required by applicable law or agreed to in writing, software 00013 * distributed under the License is distributed on an "AS IS" BASIS, 00014 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 00015 * See the License for the specific language governing permissions and 00016 * limitations under the License. 00017 */ 00018 00019 #ifndef CERES_BLOCKS_H_ 00020 #define CERES_BLOCKS_H_ 00021 00022 #include <ros/console.h> 00023 #include <industrial_extrinsic_cal/basic_types.h> 00024 #include <industrial_extrinsic_cal/camera_definition.h> 00025 #include "boost/make_shared.hpp" 00026 00027 namespace industrial_extrinsic_cal 00028 { 00029 00036 class CeresBlocks 00037 { 00038 public: 00040 CeresBlocks(); 00042 ~CeresBlocks(); 00043 00045 void clearCamerasTargets(); 00046 00051 bool addStaticCamera(boost::shared_ptr<Camera> camera_to_add); 00052 00057 bool addStaticTarget(boost::shared_ptr<Target> target_to_add); 00058 00064 bool addMovingCamera(boost::shared_ptr<Camera> camera_to_add, int scene_id); 00065 00071 bool addMovingTarget(boost::shared_ptr<Target> target_to_add, int scene_id); 00072 00073 00079 const boost::shared_ptr<Camera> getCameraByName(const std::string &camera_name); 00086 const boost::shared_ptr<Target> getTargetByName(const std::string &target_name); 00087 00088 P_BLOCK getStaticCameraParameterBlockIntrinsics(std::string camera_name); 00089 00098 P_BLOCK getMovingCameraParameterBlockIntrinsics(std::string camera_name); 00099 00104 P_BLOCK getStaticCameraParameterBlockExtrinsics(std::string camera_name); 00105 00114 P_BLOCK getMovingCameraParameterBlockExtrinsics(std::string camera_name, int scene_id); 00115 00120 P_BLOCK getStaticTargetPoseParameterBlock(std::string target_name); 00121 00127 P_BLOCK getStaticTargetPointParameterBlock(std::string target_name, int point_id); 00128 00138 P_BLOCK getMovingTargetPoseParameterBlock(std::string target_name, int scene_id); 00139 00149 P_BLOCK getMovingTargetPointParameterBlock(std::string target_name, int pnt_id); 00150 00151 //private: 00152 std::vector<boost::shared_ptr<Camera> > static_cameras_; 00153 std::vector<boost::shared_ptr<MovingCamera> > moving_cameras_; 00154 std::vector<boost::shared_ptr<Target> > static_targets_; 00155 std::vector<boost::shared_ptr<MovingTarget> > moving_targets_; 00156 };//end class 00157 00158 }// end namespace industrial_extrinsic_cal 00159 00160 #endif /* CERES_BLOCKS_H_ */