mdlTMatrix_getTranslation(DPoint3dP translationP , TransformCP transformP):获取参数二的transform的点赋给参数一
mdlTMatrix_setTranslation(TransformP transformP, DPoint3dCP translationP):设置参数二的transform赋给参数一
mdlRMatrix_getColumnVector ( DPoint3dP vec, RotMatrixCP rotMatrixP, int col) :从参数矩阵rotMatrixP中提取第col列到vec中
mdlRMatrix_fromColumnVectors( RotMatrixP rotMatrixP, DPoint3dCP xVectorP, DPoint3dCP yVectorP, DPoint3dCP zVectorP ) :将参数二三四构造为矩阵,通过参数一传出
mdlRMatrix_formView:返回视图或当前辅助坐标系的旋转矩阵(副本)
- 列0、1和2包含在视图中看到的x、y、z全局轴的坐标
- 行0、1和2包含在全局系统中看到的视图x、y、z轴的坐标
mdlRMatrix_fromTMatrix( RotMatrixP rotMatrixP, TransformCP transformP) :将参数二的transform赋给参数一
mdlRMatrix_invert:函数已经被mdlRMatrix_transpose代替,矩阵反转mdlTMatrix_transformPoint:将参数二的transform应用于参数一的点
mdlTMatrix_getIdentity(TransformP transformP):初始化transformP
mdlRMatrix_multiplyPoint(DPoint3dP pointP, RotMatrixCP matrixP) :将矩阵乘以一个点,并返回乘以后的点
mdlVec_subtract:向量相减
mdlVec_distance:两点间距离
mdlVec_distanceXY:仅计算XY方向的距离
mdIVec_computeNormal(DPoint3dP unitvectorP,DPoint3dCP targetP,DPoint3dCP baseP):计算从第三个参数点到第二个参数点的单位向量(输出参数一)
double mdlVec_normalizedCrossProduct( DPoint3dP pCrossProduct, DPoint3dCP pVector1, DPoint3dCP pVector2) :计算参数二与三向量的标准化叉积,结果为参数一,返回值为非标准化叉积的长度。
double mdlVec_normalize ( DPoint3dP c ) :将参数规格为单位长度向量,返回值是规格前的长度
mdlVec_pointEqual:比较两个点是否相等
mdlVec_pointEqualTol:一定精度范围内比较两个点是否相等
mdlVec_projectPoint( DPoint3dP sumP, DPoint3dCP originP, DPoint3dCP inVectorP, double scale):sumP输出为如下公式计算出的点(sumP->x = originP->x + inVectorP->x * scale)
ToElement:将某些东西转换成元素,例如:将ICurvePrimitive,CurveVector等转换成元素
Dpoint3d::Subtract:从一个点减去一个向量
ClashDetectorPtr::ComputeClosestApproach(double & outClearance, IClashDataCP object1, IClashDataCP object2, double maxClearance ):计算两个对象之间的距离,参数一为距离,二三为对象,四为误差半径,
返回值:
mdIElmdscr_duplicate(MSElementDescrP* newDscr, MSElementDescrcP oldDscr):copy旧的元素描述符到新的元素描述符,即创建旧的元素描述符的副本,并返回新的描述符的地址
mdlElmdscr_readToMaster(MSElementDescrH elemDescrPP, UInt32 filePos, DgnModelRefP modelRef, int expandSharedCells, UInt32 * startFilePos):从模型的元素缓存中读取位于filePos位置的元素
mdlElmdscr_computeRange( Dpoint3d * minP, Dpoint3d * maxP, MSElementDescrCP edP, RotMatrixCP rotMatrixP ):计算参数三元素描述符的范围,传出参数一和参数二,如果不计算旋转矩阵,则参数四为空
mdlElmdscr_setProperties(MSElementDescrH edPP, ........):设置edPP(级别,图层组,元素类等属性)
mdlElmdscr_setSymbology(MSElementDescrH edPP, .......):设置edPP的颜色,样式,权重等
mdlElmdscr_extractEndPoints(...):返回元素的起始点和终止点
mdlModelRef_getUorPersub:获取模型的每个子单元的UOR数
mdlModelRef_getUorPermrter:给定型号参考的每米计量单位数。
mdlMeasure_closestPointOnElement:在给定空间点时找到元素上距离最近的点。
mdlAssoc_getElementDescr(.....):根据ElementId找到此ID唯一的元素
mdlCnv_subUnitsToUors(double subUnits ):将活动模型的子单位之间的距离转换为分辨率单位并作为返回值返回
交集(交点):
mdlIntersect_allBetweenElms(.....):获取两个元素之间的所有交点(只用于二维,如果三维只能返回从某个视图看过去的一个“表观交点”而不是真正的三维中的交点)
mdlIntersect_allBetweenElms2(......):同上,但是增加了cells
扫描:
mdlScanCriteria_create():为(扫描结构)分配内存空间,返回值为ScanCriteria对象
mdlScanCriteria_setElementTypeTest( ScanCriteriaP scP, UShort * typeMask, int maskSize):对扫描类型进行限制或启用,参数二为掩码,掩码为空则扫描所有元素类型,参数三是位掩码大小
mdlScanCriteria_addSingleElementTypeTest(ScanCriteriaP scP, int type):为扫描结构添加要扫描元素的类型
mdlScanCriteria_setRangeTest(ScanCriteriaP scP, DgnPlatform::ScanRange * srP):设置扫描范围
mdlScanCriteria_setReturnType(ScanCriteriaP scP, int returnType, int oneElementOnly, int nestCells):设置扫描该返回的信息,参数二的返回参数如图,参数三表示匹配到之后是否还继续查找(false为不继续)参数四表示是否禁用完整复杂元素的返回(false为禁用),例如:嵌套单元格
mdlScanCriteria_setModel(ScanCriteriaP scP, DgnModelRefP modelRef):设置ScanCriteria模型
mdlScanCriteria_scan(ScanCriteriaP scP, void * scanBuf, int * scanSize,UInt32 * endOfScanPos ):开始执行扫描
图层:
mdlLevel_getIdFromCodeIncludingLibraries(DgnPlatform::LevelId * levelIdOut, DgnModelRefP modelRefIn, DgnPlatform::LevelCode levelCodeIn):从图层名称获取图层ID
mdlLevel_getSymbology(....):根据ID获取图层信息,样式,覆盖等