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