DataIndexedPolylines.h
1 //##################################################################################################
2 //
3 // Ceetron Desktop Components
4 // Component: Geometry
5 //
6 // --------------------------------------------------------------------------------------------
7 // Copyright (C) 2013, Ceetron AS
8 // This is UNPUBLISHED PROPRIETARY SOURCE CODE of Ceetron AS. The contents of this file may
9 // not be disclosed to third parties, copied or duplicated in any form, in whole or in part,
10 // without the prior written permission of Ceetron AS.
11 //##################################################################################################
12 
13 #pragma once
14 
15 #include "CeeGeometry/Base.h"
16 #include "CeeGeometry/Data.h"
17 #include "CeeCore/Vec3d.h"
18 #include "CeeCore/BoundingBox.h"
19 
20 #include <vector>
21 
22 namespace cee {
23 namespace geo {
24 
25 
26 //==================================================================================================
27 //
28 //
29 //
30 //==================================================================================================
31 class CEE_GEO_EXPORT DataIndexedPolylines : public Data
32 {
33 public:
35  DataIndexedPolylines(const std::vector<Vec3d>& vertices, const std::vector<std::vector<unsigned int> >& indices);
36  virtual ~DataIndexedPolylines();
37 
38  virtual Type type() const;
39  virtual BoundingBox boundingBox() const;
40 
41  size_t vertexCount() const;
42  std::vector<Vec3d> vertices() const;
43  void setVertices(const std::vector<Vec3d>& vertices);
44 
45  size_t polylineCount() const;
46  std::vector<std::vector<unsigned int> > polylinesIndices() const;
47  void setPolylinesIndices(const std::vector<std::vector<unsigned int> >& indices);
48 
49  void removeAll();
50 
51 private:
52  CEE_PRIVATE_IMPL(DataIndexedPolylines);
53  CEE_PRIVATE_F(Part);
54  CEE_PRIVATE_F(GeometryModel);
55  CEE_DISALLOW_COPY_AND_ASSIGN(DataIndexedPolylines);
56 };
57 
58 } // namespace geo
59 } // namespace cee
Namespace cee contains all functionality and structures under the Core component. ...
Definition: AppComponent.cpp:26
Base class for all geometry part data classes.
Definition: Data.h:28
Type
Enumerator for each of the available primitives.
Definition: Data.h:33
Axis-aligned bounding box.
Definition: BoundingBox.h:27
GeometryModel is a subclass of Model that can handle a large number of parts efficiently.
Definition: GeometryModel.h:36
Data structure representing polylines data for a geometry part used in the GeometryModel ...
Definition: DataIndexedPolylines.h:31
Geometry part and how it is to be drawn.
Definition: Part.h:32