Matrix from model space referenced by a viewport to layout

来源:互联网 发布:红警2苏联知乎 编辑:程序博客网 时间:2024/05/01 02:17

 

The following code demostrates how to the matrix from model space referenced by a viewport to the layout where the viewport resides.

 

//we need to apply the the view's transform to have it look the same

 

 

// in paper space (the paper space view is always orthogonal)

AcGeMatrix3d mat = AcGeMatrix3d::worldToPlane(AcGePlane(viewTarget, viewDirection));

 

 

 

//apply any view twist

mat = AcGeMatrix3d::rotation(twistAngle, AcGeVector3d::kZAxis) * mat;

 

 

 

// Get the center of the view in WCS coords

AcGePoint3d viewCenter3d(viewCenter.x, viewCenter.y, 0);

mat = AcGeMatrix3d::scaling(scale, viewCenter3d) * mat;

 

 

 

// Origin displacement from model to paper

AcGeVector3d offset(centerPoint.x - viewCenter3d.x, centerPoint.y - viewCenter3d.y, 0);

mat = AcGeMatrix3d::translation(offset) * mat;