Newer
Older
// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
//
// See the LICENSE.txt file for license information. Please report all
// bugs and problems to <gmsh@geuz.org>.
#ifndef _OCC_EDGE_H_
#define _OCC_EDGE_H_
#include "GEdge.h"
#include "GModel.h"
#include "OCCVertex.h"
#include "Range.h"
class OCCEdge : public GEdge {
protected:
TopoDS_Edge c;
mutable Handle(Geom2d_Curve) curve2d;
mutable GFace *trimmed;
public:
OCCEdge(GModel *model, TopoDS_Edge _e, int num, GVertex *v1, GVertex *v2);
virtual ~OCCEdge() {}
virtual Range<double> parBounds(int i) const;
virtual GeomType geomType() const;
virtual bool degenerate(int) const { return BRep_Tool::Degenerated(c); }
virtual GPoint point(double p) const;
virtual SVector3 firstDer(double par) const;
virtual double curvature (double par) const;
Stefen Guzik
committed
virtual SPoint2 reparamOnFace(const GFace *face, double epar, int dir) const;
ModelType getNativeType() const { return OpenCascadeModel; }
void * getNativePtr() const { return (void*)&c; }
virtual int minimumMeshSegments () const;
virtual int minimumDrawSegments () const;
bool is3D() const { return !curve.IsNull(); }
void setTrimmed(OCCFace *);
Stefen Guzik
committed
bool isSeam(const GFace *) const;