1 /**************************************************************************** 2 * 3 * ViSP, open source Visual Servoing Platform software. 4 * Copyright (C) 2005 - 2019 by Inria. All rights reserved. 5 * 6 * This software is free software; you can redistribute it and/or modify 7 * it under the terms of the GNU General Public License as published by 8 * the Free Software Foundation; either version 2 of the License, or 9 * (at your option) any later version. 10 * See the file LICENSE.txt at the root directory of this source 11 * distribution for additional information about the GNU GPL. 12 * 13 * For using ViSP with software that can not be combined with the GNU 14 * GPL, please contact Inria about acquiring a ViSP Professional 15 * Edition License. 16 * 17 * See http://visp.inria.fr for more information. 18 * 19 * This software was developed at: 20 * Inria Rennes - Bretagne Atlantique 21 * Campus Universitaire de Beaulieu 22 * 35042 Rennes Cedex 23 * France 24 * 25 * If you have questions regarding the use of this file, please contact 26 * Inria at visp@inria.fr 27 * 28 * This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE 29 * WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. 30 * 31 * Description: 32 * 33 * Authors: 34 * Jean-Luc CORRE 35 * 36 *****************************************************************************/ 37 38 #ifndef vpScene_h 39 #define vpScene_h 40 41 #include <visp3/core/vpConfig.h> 42 43 #ifndef DOXYGEN_SHOULD_SKIP_THIS 44 45 #include "vpBound.h" 46 #include <visp3/core/vpHomogeneousMatrix.h> 47 #include <visp3/robot/vpWireFrameSimulatorTypes.h> 48 49 // Inventor includes 50 #if defined(VISP_HAVE_COIN3D) 51 #include <Inventor/VRMLnodes/SoVRMLCoordinate.h> 52 #include <Inventor/VRMLnodes/SoVRMLGroup.h> 53 #include <Inventor/VRMLnodes/SoVRMLIndexedFaceSet.h> 54 #include <Inventor/VRMLnodes/SoVRMLIndexedLineSet.h> 55 #include <Inventor/VRMLnodes/SoVRMLShape.h> 56 #include <Inventor/actions/SoGetMatrixAction.h> 57 #include <Inventor/actions/SoGetPrimitiveCountAction.h> 58 #include <Inventor/actions/SoSearchAction.h> 59 #include <Inventor/actions/SoToVRML2Action.h> 60 #include <Inventor/actions/SoWriteAction.h> 61 #include <Inventor/misc/SoChildList.h> 62 #include <Inventor/nodes/SoSeparator.h> 63 64 #include <list> 65 #include <vector> 66 67 typedef struct indexFaceSet { indexFaceSetindexFaceSet68 indexFaceSet() : nbPt(0), pt(), nbIndex(0), index(){}; 69 int nbPt; 70 std::vector<vpPoint> pt; 71 int nbIndex; 72 std::vector<int> index; 73 } indexFaceSet; 74 75 #endif 76 77 typedef enum { BND_MODEL, WRL_MODEL, UNKNOWN_MODEL } Model_3D; 78 79 Model_3D getExtension(const char *file); 80 void set_scene_wrl(const char *str, Bound_scene *sc, float factor); 81 void set_scene(const char *, Bound_scene *, float); 82 void vp2jlc_matrix(const vpHomogeneousMatrix &, Matrix &); 83 84 #if defined(VISP_HAVE_COIN3D) 85 void extractFaces(SoVRMLIndexedFaceSet *face_set, indexFaceSet *ifs); 86 void ifsToBound(Bound *, std::list<indexFaceSet *> &); 87 void destroyIfs(std::list<indexFaceSet *> &); 88 #endif 89 90 #endif 91 #endif 92