|
楼主 |
发表于 2013-4-18 22:28
|
显示全部楼层
之前提过特征的元素树了,也简单说过对他们进行填写。填写的过程很麻烦,每一个元素都要进行重复的步骤,所以利用了自定义添加元素到元素树的函数。代码如下。
// 设置特征元素的值,并将特征元素添加到特征元素树中
void UsrElemtreeElementAdd(ProElemId id,
ProElement parent,
void* value,
ProValueDataType type,
ProElement* element)
{
ProValueData value_data;
ProValue pvalue;
value_data.type = type;
//特征元素值类型转换
switch(type)
{
case PRO_VALUE_TYPE_INT:
value_data.v.i = *(int*)value;
break;
case PRO_VALUE_TYPE_DOUBLE:
value_data.v.d = *(double*)value;
break;
case PRO_VALUE_TYPE_POINTER:
value_data.v.p = *(void**)value;
break;
case PRO_VALUE_TYPE_STRING:
value_data.v.s = *(char**)value;
break;
case PRO_VALUE_TYPE_WSTRING:
value_data.v.w = *(wchar_t**)value;
break;
case PRO_VALUE_TYPE_SELECTION:
value_data.v.r = *(ProSelection*)value;
break;
case PRO_VALUE_TYPE_TRANSFORM:
value_data.v.t = *(double***)value;
break;
case PRO_VALUE_TYPE_BOOLEAN:
value_data.v.i = *(int*)value;
break;
}
//设置特征元素的值
ProElementAlloc(id,element);
ProValueAlloc(&pvalue);
ProValueDataSet(pvalue,&value_data);
ProElementValueSet(*element,pvalue);
ProElemtreeElementAdd(parent,NULL,*element);
} |
|