/src/contrib/geom-5.1.2.7/inc_pythonocc/GEOMImpl_IShapes.hxx

http://pythonocc.googlecode.com/ · C++ Header · 79 lines · 38 code · 20 blank · 21 comment · 1 complexity · 5183028c33c2f48e3409046b44968b93 MD5 · raw file

  1. // Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
  2. // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
  3. //
  4. // This library is free software; you can redistribute it and/or
  5. // modify it under the terms of the GNU Lesser General Public
  6. // License as published by the Free Software Foundation; either
  7. // version 2.1 of the License.
  8. //
  9. // This library is distributed in the hope that it will be useful
  10. // but WITHOUT ANY WARRANTY; without even the implied warranty of
  11. // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  12. // Lesser General Public License for more details.
  13. //
  14. // You should have received a copy of the GNU Lesser General Public
  15. // License along with this library; if not, write to the Free Software
  16. // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
  17. //
  18. // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
  19. //
  20. // NOTE: This is an intreface to a function for the Shapes
  21. // (Wire, Face, Shell, Solid and Compound) creation.
  22. #include "SGEOM_Function.hxx"
  23. #include "TColStd_HSequenceOfTransient.hxx"
  24. #include "TColStd_HArray1OfInteger.hxx"
  25. class GEOMImpl_IShapes
  26. {
  27. public:
  28. enum {
  29. SHAPE_ARG_SHAPES = 1, // for Wire, Shell, Solid and Compound
  30. SHAPE_ARG_BASE = 2, // for Face, Solid and Sub-shape
  31. SHAPE_ARG_PLANAR = 3, // for Face
  32. SHAPE_ARG_SUBTYPE = 4, // for Sub-shape
  33. SHAPE_ARG_INDICES = 5, // for Sub-shape
  34. SHAPE_ARG_TOLERANCE = 6 // for Wire
  35. };
  36. GEOMImpl_IShapes(Handle(GEOM_Function) theFunction): _func(theFunction) {}
  37. void SetShapes(const Handle(TColStd_HSequenceOfTransient)& theShapes)
  38. { _func->SetReferenceList(SHAPE_ARG_SHAPES, theShapes); }
  39. Handle(TColStd_HSequenceOfTransient) GetShapes()
  40. { return _func->GetReferenceList(SHAPE_ARG_SHAPES); }
  41. void SetBase(Handle(GEOM_Function) theRefBase)
  42. { _func->SetReference(SHAPE_ARG_BASE, theRefBase); }
  43. Handle(GEOM_Function) GetBase() { return _func->GetReference(SHAPE_ARG_BASE); }
  44. void SetIsPlanar(const Standard_Boolean isPlanarWanted)
  45. { _func->SetInteger(SHAPE_ARG_PLANAR, isPlanarWanted ? 1 : 0); }
  46. Standard_Boolean GetIsPlanar() { return (_func->GetInteger(SHAPE_ARG_PLANAR) == 1); }
  47. void SetSubShapeType(const Standard_Integer theType)
  48. { _func->SetInteger(SHAPE_ARG_SUBTYPE, theType); }
  49. Standard_Integer GetSubShapeType() { return _func->GetInteger(SHAPE_ARG_SUBTYPE); }
  50. void SetIndices(const Handle(TColStd_HArray1OfInteger)& theIndices)
  51. { _func->SetIntegerArray(SHAPE_ARG_INDICES, theIndices); }
  52. Handle(TColStd_HArray1OfInteger) GetIndices()
  53. { return _func->GetIntegerArray(SHAPE_ARG_INDICES); }
  54. void SetTolerance(const Standard_Real theValue)
  55. { _func->SetReal(SHAPE_ARG_TOLERANCE, theValue); }
  56. Standard_Real GetTolerance() { return _func->GetReal(SHAPE_ARG_TOLERANCE); }
  57. private:
  58. Handle(GEOM_Function) _func;
  59. };