This file is indexed.

/usr/include/CGAL/Three/Scene_interface.h is in libcgal-dev 4.11-2build1.

This file is owned by root:root, with mode 0o644.

The actual contents of the file can be viewed below.

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
// Copyright (c) 2012-2015  GeometryFactory Sarl (France)
// All rights reserved.
//
// This file is part of CGAL (www.cgal.org).
// You can redistribute it and/or modify it under the terms of the GNU
// General Public License as published by the Free Software Foundation,
// either version 3 of the License, or (at your option) any later version.
//
// Licensees holding a valid commercial license may use this file in
// accordance with the commercial license agreement provided with the software.
//
// This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
// WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
//
// $URL$
// $Id$
//
//
// Author(s)     : Laurent RINEAU

//! \file Scene_interface.h


#ifndef SCENE_INTERFACE_H
#define SCENE_INTERFACE_H
#include <CGAL/license/Three.h>
/*!
* \ingroup PkgThree
* The RenderingMode determines which of an item's primitives must be drawn.
* It can be Points, PointsPlusNormals, Wireframe, Flat, FlatPlusEdges, or Gouraud.
* - Points, PointsPlusNormals, and Wireframe have no light model.
* - Flat and FlatPlusEdges use a basic light model with one normal per facet.
* - Gouraud uses the same light model but with one normal per vertex.
*/
enum RenderingMode
{
  Points = 0, //! Renders only points without lighting.
  PointsPlusNormals, //!Renders points and normals.
  Splatting, //!Renders splats. Splats are oriented points that look like discs.
  Wireframe, //!Renders only edges.
  Flat, //!Renders only faces, with a lighting per face.
  FlatPlusEdges, //!Renders flat faces and edges.
  Gouraud, //!Renders only faces, with a lighting per vertex.
  ShadedPoints, //!Renders only points with lighting.
  NumberOfRenderingMode //!Number of values in this enum.
};


#include <QString>
#include <QColor>
#include <QList>
#include <algorithm>
#include <cmath>
#include <CGAL/Bbox_3.h>
namespace CGAL{
namespace Three{
class Scene_item;
class Scene_group_item;
}
}

namespace CGAL {
namespace Three{
/*!
 * This is the class given to the plugins to interact with the scene.
 * */
class Scene_interface {
public:

  //!A bounding box is a box with each face corresponding to an extremum of its contents.

  typedef CGAL::Bbox_3 Bbox;

  //!\brief Integer used as the index of a Scene_item.
  //! An item's index is its position in the Geometric Objects list.
  typedef int Item_id;
  virtual ~Scene_interface() {};
  //!Adds an item to the Geometric Objects list.
  //!@returns the index of the new item.
  virtual Item_id addItem(CGAL::Three::Scene_item* item) = 0;
  //! \brief Replaces an item by a new one in the scene.
  //! The item which id is `id` is replaced by `item`.
  //! The first one is deleted and gives its index to the second one.
  //! If emit_item_about_to_be_destroyed is true, emits
  //! an itemAboutToBeDestroyed signal.
  //!@returns a pointer to the old item.
  virtual Scene_item* replaceItem(Item_id id, CGAL::Three::Scene_item* item, bool emit_item_about_to_be_destroyed = false) = 0;
  //!Moves item to the targeted group.
  virtual void changeGroup(CGAL::Three::Scene_item* item, CGAL::Three::Scene_group_item* target_group) = 0;

  /*! Erases an item in the list.
   * @returns the index of the item just before the one that is erased,
   * or just after.
   * @returns -1 if the list is empty.*/
  virtual Item_id erase(Item_id) = 0;
  /*! Deletes the items with the target indices.
   * @returns the index of the polyhedron just before the
   * one that is erased, or just after. Returns -1 if
   * the list is empty.
   */
  virtual int erase(QList<int>) = 0;

  /*! Creates a copy of the item whith the id `id`.
   * @returns the index of the new item (-1 on error).
   */
    virtual Item_id duplicate(Item_id id) = 0;

  // Accessors (getters)
  //! \brief The number of items
  //!@returns the number of items in the scene.
  virtual int numberOfEntries() const = 0;
  //!\brief The `id`th item.
  //! @returns the item with the specified index.
  virtual CGAL::Three::Scene_item* item(Item_id id) const = 0;
  //!\brief The id of `item`
  //! @returns the id of the specified item.
  virtual Item_id item_id(CGAL::Three::Scene_item* item) const = 0;
  //!\brief The currently selected item's index.
  //!@returns the currently selected item's index.
  //!@returns -1 if none or several items are selected
  virtual Item_id mainSelectionIndex() const = 0;
  //!The id of the currently selected item.
  //!@returns the list of currently selected items indices.
  virtual QList<Item_id> selectionIndices() const = 0;
  //!Item_A is designated with the column A/B in the Geometric Objetcts widget.
  //!@returns the index of the Item_A
  virtual Item_id selectionAindex() const = 0;
  //!Item_B is designated with the column A/B in the Geometric Objetcts widget.
  //!@returns the index of the Item_B
  virtual Item_id selectionBindex() const = 0;

  //!\brief The scene's Bbox
  //!@returns the scene's bounding box
  //! @see Scene_interface::Bbox
  virtual Bbox bbox() const = 0;
  //!The length of the diagonal of the scene's Bbox
  //!@returns the length of the bounding box's diagonal.
  virtual double len_diagonal() const = 0;

public:
  //! Updates the information about the `i`th item in the
  //! Geometric Objects list and redraws the scene.
  virtual void itemChanged(Item_id i) = 0;
  //! Updates the information about `item` in the
  //! Geometric Objects list and redraws the scene.
  virtual void itemChanged(CGAL::Three::Scene_item* item) = 0;
  //! Re computes the scene Bbox without recentering it.
  virtual void itemVisibilityChanged(CGAL::Three::Scene_item*) = 0;
  //! Clears the current selection then sets the selected item to the target index.
  //! Used to update the selection in the Geometric Objects view.
  virtual void setSelectedItem(Item_id) = 0;  
}; // end interface Scene_interface
}
}


#endif // SCENE_INTERFACE_H