

Test for the intersection of the polyline and the projected entity in DCS XY plane. If not, go to next step.Ħ) Create a polyline that forms rectangle with DCS extents as the corners.

If yes then it means that the image fully covers the current view. If they do the entity is fully visible in the current view else check if the DCS extents lies fully in the entities extents bounding box. Check if the projected points lie fully in the bounding box defined by DCS extents. Project the point onto the DCS XY plane.ģ) Get the view height using VIEWSIZE and calculate the view width using the window aspect ratio "SCREENSIZE".Ĥ) Calculate the extents in DCS XY plane using view centre and height/width.ĥ) To check if an entity lies fully in the current view, get the bounding box of the entity and project the maximum and minimum points of the extents onto DCS XY plane. To check for visibility of the Raster Image in the current view:ġ) Build a transformation matrix for the DCS coordinate system.Ģ) Get the view centre using VIEWCTR sysvar.

Also unload the image if it does not lie in the current view. If this ratio lies with in the specified limit, then load the Image otherwise unload it. If the user has invoked either of the command then do the following:ġ) Scan for all the Raster Images in the drawing.Ģ) Check if a Raster Image is fully, partially or non visible in the current view.ģ) If the Raster Image is fully or partially visible, check for ratio (Image diagonal /View diagonal). This can be achieved by adding an editor reactor that checks for the command “ZOOM” and “PAN”. The Images should load or unload on two factors: Lets say you want to control the loading and unloading of the Raster images when the user is zooming or panning. The entities that support non-uniform scale matrix are:ĪcDbLeader, AcDbMLine, AcDbMText, AcDbOle2Frame, AcDbPloyFaceMesh, AcDbPolygonMesh, AcDbRay, AcDbXline, AcDbFcf, AcDbSolid, AcDbEllipse, AcDbSpline, AcDbImage The following are entities that have a scaling restriction:ĪcDb2dPolyine, AcDb3dPolyine, AcDbDimension and derived classes, AcDbArc, AcDbCircle, AcDbBlockReference, AcDbMInsert, AcDbFace, AcDbLine, AcDbPloyline, AcDbPoint, AcDbPoint, AcDbHatch, AcDbShape, AcDbText and derived classes, AcDbTrace, AcDbViewport, AcDbRegion, AcDb3dSolid, and AcDbBody. Other AutoCAD built-in classes typically does not have this restrictions.Īlso, here is more specific information on commonly used AutoCAD entities: AutoCAD has a number of entity types and you might wonder which entities support non-uniform scaling.Īs a general rule, the AutoCAD built-in entity classes for entity types that existed before R13 (such as AcDbCircle, AcDbLine, AcDbArc, AcDb2dPolyline, etc.) require that the transformation matrix represent a uniformly scaling orthogonal transformation (if it is not, then Acad::eCannotScaleNonUniformly will be returned).
