dbInterferencePE.h 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. //////////////////////////////////////////////////////////////////////////////
  2. //
  3. // Copyright 2015 Autodesk, Inc. All rights reserved.
  4. //
  5. // Use of this software is subject to the terms of the Autodesk license
  6. // agreement provided at the time of installation or download, or which
  7. // otherwise accompanies this software in either electronic or hard copy form.
  8. //
  9. //////////////////////////////////////////////////////////////////////////////
  10. //
  11. // dbInterferencePE.H
  12. //
  13. // DESCRIPTION: AcDbInterferencePE Protocol extension abstract base class
  14. //
  15. #include "acdb.h"
  16. #include "dbmain.h"
  17. #pragma once
  18. #pragma pack (push, 8)
  19. //
  20. // AcDbInterferencePE Protocol extension abstract base class.
  21. //
  22. class AcDbInterferencePE : public AcRxObject
  23. {
  24. public:
  25. enum Flags {
  26. kDefault = 0x00,
  27. };
  28. ACRX_DECLARE_MEMBERS(AcDbInterferencePE);
  29. // Contract:
  30. // Implementer is expected to create new AcDbEntity instance(s), based
  31. // on interference between the two provided entities, and append the
  32. // new ents to the provided array. The caller will either post the new
  33. // ents to the db or delete them.
  34. // If the implementer does not know how to generate interference
  35. // between the provided entities, they should return "eNotApplicable"
  36. // or "eNotImplementedYet".
  37. // If the provided objects do not intersect, return "eNoIntersections".
  38. virtual Acad::ErrorStatus
  39. createInterferenceObjects( AcArray<AcDbEntity*>& interferenceObjects,
  40. AcDbEntity* pEnt1,
  41. AcDbEntity* pEnt2,
  42. unsigned int flags ) const = 0;
  43. };
  44. #pragma pack (pop)
  45. //#endif