gnustep-dev
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Painter Fuzzy Node in github


From: Johan Ceuppens
Subject: Re: Painter Fuzzy Node in github
Date: Mon, 15 Dec 2014 17:57:34 +0100

Hi,

I have some time now to answer, but please look at the code as it is more clear;

2014-12-15 14:08 GMT+01:00 David Chisnall <address@hidden>:
Hi Johan,

It would really help if you could post a high-level overview of what you're trying to do. 

The only thing the code provides is a distributed fuzzy network which alters the screen according to rules made out of text, which humans can understand and write rules in.

As an example I take the SVG graphics format. You paint subelements eg. in the Inkscape software (http://inkscape.org) you click on subelements to alter them. This is how a fuzzy network (a greedy decision tree algorithm) alters the screen you look at. You ask the paint node to eg. "paint extremely fast" or "paint not" and so on. The painting parser using fuzzy rules based on "extremely", "not", "indeed" among other things and performs @selectors to paint algorithms such as paintOn:(SomeCanvasOrPaintSystem*)canvas.

By delegating adapters (wrappers) to the (paint for now) rulesystem, (paint) canvas and (paint) fuzzy parser you alter the system i.e. you have an interface to the thing itself.
 
Opal is an implementation of the CoreGraphics APIs from OS X and, although it's written in Objective-C, exposes purely C interfaces.

My code is written in objc, it can be called from C or interfaced to C later on, if you like.

The file OpalFuzzyPaintRules.m is the C interface now of a (distributed) fuzzy node for painting, as an example:
//start of code
void makePaintRules(OpalFuzzyPaintRuleSystem* sys)
{
        [sys addRule:"paint extremely" : paintOn:];
        OpalFuzzyFunction *f = [OpalFuzzyFunctionExtremely new];
        [f x:.0];
        [sys addFunction:"paint extremely" : f];

        [sys addRule:"paint not for 1 second" : paintIdle1SecondOn:];
        f = [OpalFuzzyFunctionIdle new];
        [f x:.0];
        [sys addFunction:"paint not for 1 second" : f];
}
//end of code

  I'm not sure how any of the things that you've written about apply to it.


There's a second patch at https://github.com/enrytheermit/gnustep/tree/master/gnustep-back/patches
named patch-p0-gnustep-back-enry-12152014-2.patch with evrything in I said above. See the 00_INDEX.txt file in the github repo for more information.
 
`Enry

reply via email to

[Prev in Thread] Current Thread [Next in Thread]