0024002: Overall code and build procedure refactoring -- automatic
[occt.git] / src / TopoDS / TopoDS_TShape.hxx
diff --git a/src/TopoDS/TopoDS_TShape.hxx b/src/TopoDS/TopoDS_TShape.hxx
new file mode 100644 (file)
index 0000000..545edbf
--- /dev/null
@@ -0,0 +1,164 @@
+// Created on: 1990-12-13
+// Created by: Remi Lequette
+// Copyright (c) 1990-1999 Matra Datavision
+// Copyright (c) 1999-2014 OPEN CASCADE SAS
+//
+// This file is part of Open CASCADE Technology software library.
+//
+// This library is free software; you can redistribute it and/or modify it under
+// the terms of the GNU Lesser General Public License version 2.1 as published
+// by the Free Software Foundation, with special exception defined in the file
+// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
+// distribution for complete text of the license and disclaimer of any warranty.
+//
+// Alternatively, this file may be used under the terms of Open CASCADE
+// commercial license or contractual agreement.
+
+#ifndef _TopoDS_TShape_HeaderFile
+#define _TopoDS_TShape_HeaderFile
+
+#include <Standard.hxx>
+#include <Standard_Type.hxx>
+
+#include <TopoDS_ListOfShape.hxx>
+#include <Standard_Integer.hxx>
+#include <MMgt_TShared.hxx>
+#include <Standard_Boolean.hxx>
+#include <TopAbs_ShapeEnum.hxx>
+class Standard_ConstructionError;
+class TopoDS_Iterator;
+class TopoDS_Builder;
+
+
+class TopoDS_TShape;
+DEFINE_STANDARD_HANDLE(TopoDS_TShape, MMgt_TShared)
+
+//! A TShape  is a topological  structure describing a
+//! set of points in a 2D or 3D space.
+//!
+//! A topological shape is a structure made from other
+//! shapes.  This is a deferred class  used to support
+//! topological objects.
+//!
+//! TShapes are   defined   by  their  optional domain
+//! (geometry)  and  their  components  (other TShapes
+//! with  Locations and Orientations).  The components
+//! are stored in a List of Shapes.
+//!
+//! A   TShape contains  the   following boolean flags :
+//!
+//! - Free       : Free or Frozen.
+//! - Modified   : Has been modified.
+//! - Checked    : Has been checked.
+//! - Orientable : Can be oriented.
+//! - Closed     : Is closed (note that only Wires and Shells may be closed).
+//! - Infinite   : Is infinite.
+//! - Convex     : Is convex.
+//!
+//! Users have no direct access to the classes derived
+//! from TShape.  They  handle them with   the classes
+//! derived from Shape.
+class TopoDS_TShape : public MMgt_TShared
+{
+
+public:
+
+  
+  //! Returns the free flag.
+    Standard_Boolean Free() const;
+  
+  //! Sets the free flag.
+    void Free (const Standard_Boolean F);
+  
+  //! Returns the locked flag.
+    Standard_Boolean Locked() const;
+  
+  //! Sets the locked flag.
+    void Locked (const Standard_Boolean F);
+  
+  //! Returns the modification flag.
+    Standard_Boolean Modified() const;
+  
+  //! Sets the modification flag.
+    void Modified (const Standard_Boolean M);
+  
+  //! Returns the checked flag.
+    Standard_Boolean Checked() const;
+  
+  //! Sets the checked flag.
+    void Checked (const Standard_Boolean C);
+  
+  //! Returns the orientability flag.
+    Standard_Boolean Orientable() const;
+  
+  //! Sets the orientability flag.
+    void Orientable (const Standard_Boolean C);
+  
+  //! Returns the closedness flag.
+    Standard_Boolean Closed() const;
+  
+  //! Sets the closedness flag.
+    void Closed (const Standard_Boolean C);
+  
+  //! Returns the infinity flag.
+    Standard_Boolean Infinite() const;
+  
+  //! Sets the infinity flag.
+    void Infinite (const Standard_Boolean C);
+  
+  //! Returns the convexness flag.
+    Standard_Boolean Convex() const;
+  
+  //! Sets the convexness flag.
+    void Convex (const Standard_Boolean C);
+  
+  //! Returns the type as a term of the ShapeEnum enum :
+  //! VERTEX, EDGE, WIRE, FACE, ....
+  Standard_EXPORT virtual TopAbs_ShapeEnum ShapeType() const = 0;
+  
+  //! Returns a copy  of the  TShape  with no sub-shapes.
+  Standard_EXPORT virtual Handle(TopoDS_TShape) EmptyCopy() const = 0;
+
+
+friend class TopoDS_Iterator;
+friend class TopoDS_Builder;
+
+
+  DEFINE_STANDARD_RTTI(TopoDS_TShape,MMgt_TShared)
+
+protected:
+
+  
+  //! Constructs an empty TShape.
+  //! Free       : True
+  //! Modified   : True
+  //! Checked    : False
+  //! Orientable : True
+  //! Closed     : False
+  //! Infinite   : False
+  //! Convex     : False
+    TopoDS_TShape();
+
+
+
+private:
+
+  
+    const TopoDS_ListOfShape& Shapes() const;
+  
+    TopoDS_ListOfShape& ChangeShapes();
+
+  TopoDS_ListOfShape myShapes;
+  Standard_Integer myFlags;
+
+
+};
+
+
+#include <TopoDS_TShape.lxx>
+
+
+
+
+
+#endif // _TopoDS_TShape_HeaderFile