size_t parse1::insert(const string & str){
	string t_str = remove_white( remove_comments(str));
	if (isLabel(t_str)) {
		makeSymbol(t_str);
		return linked_list.size();
	}else if(is_at(t_str)){
		makeSplit(t_str);
		return linked_list.size();
	}
	if (t_str == "") { return linked_list.size();}
	else {linked_list.push_back(t_str);}
	return linked_list.size();
}
Пример #2
0
osg::Node* OpenGLESGeometryOptimizer::optimize(osg::Node& node) {
    osg::ref_ptr<osg::Node> model = osg::clone(&node);

    // animation: process bones/weights or remove all animation data if disabled
    makeAnimation(model.get());

    // wireframe
    if (!_wireframe.empty()) {
        makeWireframe(model.get());
    }

    // bind per vertex
    makeBindPerVertex(model.get());

    // index (merge exact duplicates + uses simple triangles & lines i.e. no strip/fan/loop)
    makeIndexMesh(model.get());

    // smooth vertex normals (if geometry has no normal compute smooth normals)
    makeSmoothNormal(model.get());

    // tangent space
    if (_generateTangentSpace) {
        makeTangentSpace(model.get());
    }

    if(!_useDrawArray) {
        // split geometries having some primitive index > _maxIndexValue
        makeSplit(model.get());
    }

    // strip
    if(!_disableTriStrip) {
        makeTriStrip(model.get());
    }

    if(_useDrawArray) {
        // drawelements to drawarrays
        makeDrawArray(model.get());
    }
    else if(!_disablePreTransform) {
        // pre-transform
        makePreTransform(model.get());
    }

    // detach wireframe
    makeDetach(model.get());

    return model.release();
}
void ColorWheel::makeColors()
{
	if (currentType == Monochromatic)
		makeMonochromatic();
	if (currentType == Analogous)
		makeAnalogous();
	if (currentType == Complementary)
		makeComplementary();
	if (currentType == Split)
		makeSplit();
	if (currentType == Triadic)
		makeTriadic();
	if (currentType == Tetradic)
		makeTetradic();
}