AcDbEntity Functions Usually Overridden

The following functions are usually overridden when deriving a custom class from AcDbEntity. Whether or not you override these functions depends on the custom functionality that your class supports.

virtual void 
subViewportDraw(AcGiViewportDraw* mode);
 
virtual void                
subList() const;
 
virtual Acad::ErrorStatus 
subIntersectWith(
    const AcDbEntity* ent,
    AcDb::Intersect intType, 
    AcGePoint3dArray& points,
    int thisGsMarker = 0, 
    int otherGsMarker = 0) const;
 
virtual Acad::ErrorStatus 
subIntersectWith(
    const AcDbEntity* ent,
    AcDb::Intersect intType, 
    const AcGePlane& projPlane,
    AcGePoint3dArray& points, 
    int thisGsMarker = 0,
    int otherGsMarker = 0) const;
 
virtual Acad::ErrorStatus   
subGetOsnapPoints(
    AcDb::OsnapMode osnapMode,
    int gsSelectionMark,
    const AcGePoint3d& pickPoint,
    const AcGePoint3d& lastPoint,
    const AcGeMatrix3d& viewXform,
    AcGePoint3dArray& snapPoints,
    AcDbIntArray& geomIds) const;
 
virtual Acad::ErrorStatus   
subGetOsnapPoints(
    AcDb::OsnapMode osnapMode,
    int gsSelectionMark,
    const AcGePoint3d& pickPoint,
    const AcGePoint3d& lastPoint,
    const AcGeMatrix3d& viewXform,
    AcGePoint3dArray& snapPoints,
    AcDbIntArray& geomIds,
    const AcGeMatrix3d& insertionMat) const;
 
virtual Acad::ErrorStatus 
subGetStretchPoints(
    AcGePoint3dArray& stretchPoints) const;
 
virtual Acad::ErrorStatus 
subMoveStretchPointsAt(
    const AcDbIntArray& indices,
    const AcGeVector3d& offset);
 
virtual Acad::ErrorStatus   
subExplode(
    AcDbVoidPtrArray& entitySet) const;
 
virtual Acad::ErrorStatus 
subGetSubentPathsAtGsMarker(
    AcDb::SubentType type,
    int gsMark, 
    const AcGePoint3d& pickPoint, 
    const AcGeMatrix3d& viewXform, 
    int& numPaths,
    AcDbFullSubentPath* & subentPaths, 
    int numInserts = 0,
    AcDbObjectId* entAndInsertStack = NULL) const;
 
virtual Acad::ErrorStatus   
applyPartialUndo(
    AcDbDwgFiler* undoFiler,
    AcRxClass* classObj);
 
virtual void                
subSetDatabaseDefaults(
    AcDbDatabase* pDb);
 
virtual void                
saveAs(
    AcGiWorldDraw* mode, 
    AcDb::SaveType st);