示例#1
0
int FXmlBtn::Read_XML( AST_TXML_Tag *root, DRMessageManager& dmm, long dmm_page )
{
	int ret = 0;
	FBtnVM vm(coord_calculation, dmm, dmm_page);
	SetToMathML( root, vm );

	QString& _tag = to_mathml.type;
	QString& _body = to_mathml.value;

	struct HMathMLAttr mml_attr( _tag, _body );
	HMathOpAttr *opinfo = ::mml_is_token_op_tag( _tag ) ? ::getOperatorEntryByMML( _body ) : 0;
	if( opinfo ) mml_attr.setMODefault( *opinfo );
	proplist.setMathMLAttr( mml_attr );
	AddButtonData( root, vm );

	switch( getNodeType() )
	{
	case NODE_MATHML:
		if( (ret = AddNodeType_NODE_MATHML( root, vm )) )
			return ret;
		break;
	case NODE_PLANETEXT:
		if( (ret = AddGraphicsData( root, vm )) ||
			(ret = CompileCalculationScheme( root, vm )) )
			return ret;
		break;
	case NODE_FORMULA:
		if( (ret = AddChildData( root, vm )) || 
			(ret = AddGraphicsData( root, vm )) ||
			(ret = CompileCalculationScheme( root, vm )) )
			return ret;
		break;
	default:
		break;
	}
	if( getNodeType() != NODE_MATHML && to_mathml.mathml_template_string.length() )
	{
		QVector<QString> args;
		for( long i = 0; i < getChildCount(); i++ )
		{
			args.push_back( QString() );
		}
		if( HKMatchTemplate().Treate( to_mathml.mathml_template_string, args ) == -1 )
		{
			QString warn2 = _T("number of empty slots in the button differs from slots number in the MathML conversion template");
			vm.dmm.AddLine( vm.dmm_page, warn2, root->getLine() );
			ret = -1;
		}
	}

	return ret;
}
示例#2
0
void Graphics::MakeBox()
{
  GraphicsData* graphicsdata = new GraphicsData();

  vec2 box[8] =
  { vec2(-0.5f, -0.5f), vec2(0, 1)
  , vec2(-0.5f, 0.5f), vec2(0, 0)
  , vec2( 0.5f, 0.5f), vec2(1, 0)
  , vec2( 0.5f, -0.5f), vec2(1, 1)
  };

  unsigned indices[6] =
  {
    3,1,0,
    3,2,1
  };

  for(unsigned i = 0; i < 8; ++i)
    graphicsdata->vertices.push_back(box[i]);

  for(unsigned i = 0; i < 6; ++i)
    graphicsdata->indices.push_back(indices[i]);

  AddGraphicsData("box", graphicsdata);
}