52 lines
1.2 KiB
C++
52 lines
1.2 KiB
C++
//-----------------------------------------------------------------------------+
|
|
// Copyright (C), 1998-2007, Beijing Tangent Software Co. Ltd.
|
|
// = FileName : TPGeFace3D.h
|
|
// = Version : ver2.0
|
|
// = Author : xlc
|
|
// = CreateDate : 2002-09-09
|
|
// = Description: 类的声明 空间任意曲面
|
|
// = Maintainers:
|
|
//
|
|
//-----------------------------------------------------------------------------+
|
|
#ifndef _TPGEFACE3D_H_
|
|
#define _TPGEFACE3D_H_
|
|
|
|
#ifndef _TGOBJECT3D_H_
|
|
#include "TGObject3D.h"
|
|
#endif
|
|
|
|
#ifndef _TGOBJECTLIST_H_
|
|
#include "TGObjectList.h"
|
|
#endif
|
|
|
|
#ifndef _TGOBJECT_H_
|
|
#include "TGObject.h"
|
|
#endif
|
|
|
|
class GEOAPI TPGeFace3D : public TGObject3D
|
|
{
|
|
DECLARE_RUN_TIME_CLASS(TPGeFace3D)
|
|
|
|
public:
|
|
|
|
virtual ~TPGeFace3D();
|
|
|
|
virtual bool IsClosed() const;
|
|
|
|
virtual bool IsSelfCross() const;
|
|
|
|
virtual double Area() const;
|
|
|
|
virtual double Volume() const;
|
|
|
|
virtual void Cut(const TGObject& obj,TGObjectList& left,TGObjectList& right,TGObjectList& mid) const;
|
|
|
|
//不能是自交曲面!!
|
|
//封闭曲面切割结果为左为内,右为外,不考虑曲面方向!不封闭曲面切割结果,左为下,右为上。
|
|
//不封闭的有限曲线段切割时,要求其可以正确进行结果分发时的上下测试!!
|
|
//子类需要加速才需要重载
|
|
//重载 TGObject
|
|
virtual bool IsInclude(const TGObject& obj) const;
|
|
};
|
|
|
|
#endif |