I am struggling with computing a parallel line to the existing line in certain distance.
I have tried:
OdGeLine2d::getTrimmedOffset()
OdGeLineSeg2d::getTrimmedOffset()
OdGeLine3d::getTrimmedOffset()
OdGeLineSeg3d::getTrimmedOffset()
but all of them trow a "Not implemented" exception.
Than I tried to use a OdGeOffsetCurve2d
class. Constructing of this class doesn't throw exception, but any attempt to get a point of this curve does. Same exception: "Not implemented".
So, how can a get a point that lies on the OdGeOffsetCurve2d
? Or is there any other way to compute an offset curve?
And what are all those getTrimmedOffset()
methods for? Just to throw exceptions?
PS: I do not have enough reputation to create a new Teigha tag. Please, do so and edit my question. Teigha is a core library for developing CAD applications https://www.opendesign.com/.
If i understand correctly you are trying to create a parallel line to an already existing line.
If you not specifically looking for OdGeLine2d , i have a solution for similar problem with OdDbLine.
As you already know , to construct a new line if we have its end points rest is play.
So I will help you find end Points of Parallel Line with OdDbLine Class.
You can try to derive from it.
My code is the .Net version code and not the c++ one.
If you have and object of OdDbLine
Class lets say OdDbLine line
a) Get its End Points
OdGePoint3d startPoint = new OdGePoint3d();
line.getStartPoint(startPoint);
OdGePoint3d endPoint = new OdGePoint3d();
line.getEndPoint(endPoint);
OdGeVector3d lineVector = GetLineVector(line);
OdGeVector3d perpendicularVec = lineVector.perpVector(); perpendicularVec.normalize();
perpendicularVec = perpendicularVec.Mul(-1);
perpendicularVec.setToProduct(perpendicularVec, offSetValue);
OdGePoint3d newOffsetStartPt = startPoint.Add(perpendicularVec);
OdGePoint3d newOffsetEndPt = endPoint.Add(perpendicularVec);
Hope it helps !!