/*public override void GetGripPoints(Entity entity, Point3dCollection gripPoints, IntegerCollection snapModes, IntegerCollection geometryIds) * { * gripPoints.Add(_getCustomGrip(entity)); * base.GetGripPoints(entity, gripPoints, snapModes, geometryIds); * }*/ public override void GetGripPoints(Entity entity, GripDataCollection grips, double curViewUnitSize, int gripSize, Vector3d curViewDir, GetGripPointsFlags bitFlags) { ArrowGripData gdata = new ArrowGripData(); gdata.GripPoint = _getCustomGrip(entity); grips.Add(gdata); base.GetGripPoints(entity, grips, curViewUnitSize, gripSize, curViewDir, bitFlags); }
/*public override void GetGripPoints(Entity entity, Point3dCollection gripPoints, IntegerCollection snapModes, IntegerCollection geometryIds) * { * gripPoints.Add(_getCustomGrip(entity)); * base.GetGripPoints(entity, gripPoints, snapModes, geometryIds); * }*/ public override void GetGripPoints(Entity entity, GripDataCollection grips, double curViewUnitSize, int gripSize, Vector3d curViewDir, GetGripPointsFlags bitFlags) { ArrowGripData gdata = new ArrowGripData(); gdata.GripPoint = _getCustomGrip(entity); grips.Add(gdata); base.GetGripPoints(entity, grips, curViewUnitSize, gripSize, curViewDir, bitFlags); #if DEBUG IgorKL.ACAD3.Model.Drawing.AnchorArrow.Arrow.SafeObject so = (IgorKL.ACAD3.Model.Drawing.AnchorArrow.Arrow.SafeObject)Model.Drawing.AnchorArrow.Arrow.SafeObject.NewFromEntity(entity, Model.Drawing.AnchorArrow.Arrow.SafeObject.AppName); _entities = so.Object.Explode().Select(x => x.GetTransformedCopy(Tools.GetAcadEditor().CurrentUserCoordinateSystem)); //IgorKL.ACAD3.Model.Tools.AppendEntity(so.Object.Explode()); #endif }
private Point3d _getCustomGrip(Entity entity) { Xrecord xrecord = null; Point3d p = Point3d.Origin; Tools.StartTransaction(() => { DBDictionary dic = (DBDictionary)entity.ExtensionDictionary.GetObject(OpenMode.ForRead, false, true); xrecord = (Xrecord)dic.GetAt("ARROW_JigPosition").GetObject(OpenMode.ForRead); p = new Point3d(xrecord.Select(tv => (double)tv.Value).ToArray()); ArrowGripData gdata = new ArrowGripData(); }); return(p); }