r3wp [groups: 83 posts: 189283]
  • Home
  • Script library
  • AltME Archive
  • Mailing list
  • Articles Index
  • Site search
 

World: r3wp

[AGG] to discus new Rebol/View with AGG

[unknown: 9]
11-Jun-2007
[1134]
Henrik, funny you should post that.............I'm in need of a way 
to take a 2D diagram, and turn into exactly that (which is called 
an isometric view).


A cool feature would be that the colour of a 2D rectangle, and perhaps 
even the line weight and colour would dictate the 3D height, colour, 
and treatment.


The reason I want this is that I'm building a diagram of the architecture 
of Qtask, and want to make it easy to see and understand.


What I'm planning to do right now is draw it in 2D first.  Then pick 
a good angle (in my mind).  Then build all the 3D objects on an isometric 
field (sort of like old video games like Zaxxon).


Then scale them into place.  Then add the text words in front of 
them.

I like the words on top vs side as well of the image you posted.

If you know what was used to generate that I would like to know.
Henrik
11-Jun-2007
[1135]
reichart, I sent him an email with the question.
[unknown: 9]
11-Jun-2007
[1136]
Thanks!
Maxim
11-Jun-2007
[1137x2]
if you want to you can easily use the free version of houdini (http://www.sidefx.com/)
with your IQ that software should be pretty easy to grasp... if you 
follow one of the learning tutorials.
[unknown: 9]
12-Jun-2007
[1139]
Actually, I have played with Houdini, will look again though for 
this application of it.
ICarii
15-Jun-2007
[1140x2]
new draw based menu system released (demo). http://rebol.mustard.co.nz/onyx-demo.r
new Onyx grop created regarding it.
supports radio, check, standard and menu/submenu elements at the 
moment.
Graham
15-Jun-2007
[1142]
pretty zippy
ICarii
15-Jun-2007
[1143]
yeah - itd be nice to see how it performs on slow computers :)
Brock
15-Jun-2007
[1144x2]
wondering what the 'dot' is that appears on the right side of the 
 divider over the menu item  "File > Recent Files"?
By the way, very nice looking menu.
ICarii
15-Jun-2007
[1146]
the dot is me forgetting to put in an empty? check ;)
Cyphre
16-Jun-2007
[1147]
ICarii: Cool stuff

Henrik: I don't see any problem to render such isometric layout using 
DRAW.
ICarii
25-Jun-2007
[1148]
coming soon! New onyx styles: field, label, area, check, h1 /h2 / 
h3.  Sample at - http://rebol.mustard.co.nz/new-onyx-styles.png
PhilB
11-Aug-2007
[1149]
Draw a surface with 3-D Perspective and allow roation - 
http://peoplecards.ca/rebol/philb/utils/3D-surface.r
& in the Rebol Library

http://www.rebol.org/cgi-bin/cgiwrap/rebol/view-script.r?script=surface.r
ReViewer
13-Oct-2007
[1150]
Is there a way to know the length in pixels of a text drawn with 
AGG?
btiffin
13-Oct-2007
[1151]
I was just about to try  view layout [b: box effect [draw [text "test"]]] 
 planning to poke around with help b to see, then I remembered that 
REBOL Linux doesn't have draw text  :(  Sorry.  But that's were I 
would start....poking around in the objects.  May well be a waste 
of time... Then I'd fire up anamonitor and view through some of the 
system objects for that key ...size-text... kinda function.  If that 
didn't work I'd give up and wait for Cyphre :)   Excuse the babbling...
ICarii
14-Oct-2007
[1152]
size-text will do it.
Ashley
15-Oct-2007
[1153]
I doubt it. size-text expects a face argument and computes size based 
on face/text, face/font, face/edge and face/para values.
ICarii
15-Oct-2007
[1154]
all of which you can change to expected agg fonts etc before calling 
size-text

s: size-text make face compose [text: (t) font/name: "arial" para/wrap?: 
off]  ;etc..
Ashley
15-Oct-2007
[1155]
which is fine as long as you don't use vectorial ;)
ICarii
15-Oct-2007
[1156x2]
as long as you use pen off/none with vectorial the results should 
still match :)
unless of course you are using rotations or scaling :)
ReViewer
15-Oct-2007
[1158]
I will test it soon, Thanks!
amacleod
8-Oct-2008
[1159]
When drawing an object onto a face is there a way to insure that 
hte next object drawn is layed on top.

I'm drawing boxes on a face but when I try to draw addional boxes 
(different colors) they are hidden behind the first drwn objects..
Brock
8-Oct-2008
[1160]
In most graphics programs there is something called the z-index or 
something to that effect, that controls the depth of the objects 
in a view.  Usually range in value from 256 (top) to -256 (furthest 
away).  I can't speak for AGG though as I have not played with it 
yet.
ICarii
9-Oct-2008
[1161]
The AGG/Draw dialect will process and render things in the order 
they are specified inside the draw block for the face.  There is 
no z-index for AGG.
amacleod
9-Oct-2008
[1162x2]
I adding shape objects to a face by appending them to face/effect/draw 
but the appended shap is beneath the original face shapes.
If you draw onto a text field the text is on top. ..even if you 'paint' 
a box affter the text has been rendered. I do not understand what 
is going onthere?
Anton
9-Oct-2008
[1164x5]
Can you give a small example, eg:
view layout [box effect [draw [pen red line-width 2 shape [line 0x0 
10x0 10x10 0x10] pen green shape [line 5x0 10x5 5x15 0x5]]]]
The above example draws the red box first, and the green kite on 
top of it.
face/text rendering is separate to face/effect/draw rendering, and 
will always be on top.
So, please show us a small example of what you're doing.
amacleod
9-Oct-2008
[1169]
I'm doing something like this:

view layout [

 b: box effect [draw [pen red fill-pen red line-width 2 shape [line 
 0x0 40x0 40x40 0x40]
	]
	]

 btn "append draw" [append b/effect/draw compose ['pen green 'fill-pen 
 green 'shape ['line 5x0 30x5 5x25 0x20]]show b]
	]

Its much more complicated as I'm painting highlights on a series 
of faces in a panel. I go back and highlight in another color where 
a specified word is found. The hi-lite shows if its on a section 
of text not yet painted but not if it falls on painted text.

The above example works!

so it must be some where else in my app...

Thanks. I'll look it over...
Anton
9-Oct-2008
[1170x5]
You can't really "paint on a face". Faces redraw themselves from 
their specification every time they are shown.
Each face has an internal image buffer (that we don't have access 
to directly). This buffer is blanked just before the face redraws 
itself.
But anyway, face/text always renders after the face/effect/draw dialect.
view layout [box effect [draw [pen red line-width 5 line 0x0 100x100]] 
"hello"]
That shows the red line drawn behind the face/text, "hello".
amacleod
9-Oct-2008
[1175]
I got it working...

I do not know what i was doing before but its doing what I need...Thanks
Anton
9-Oct-2008
[1176]
Ok, no problem.
DideC
9-Oct-2008
[1177]
Maybe you were inserting in the draw block instead of appending (insert 
tail) !?
amacleod
9-Oct-2008
[1178x4]
Actually I  don't like this behavior...its too complicated to remove 
it again.Back to my original plan of moving and resizing a box form 
face to face...

view layout [
	bx: box 100.100.255 0x0

 b: box effect [draw [pen red fill-pen red line-width 2 shape [line 
 0x0 40x0 40x40 0x40]]]
	at 40x40 text "Hello World"

  btn "append draw" [append b/effect/draw compose ['pen green 'fill-pen 
  green 'shape ['line 5x0 30x5 5x25 0x20]]show b]
	btn "Moving box" [bx/offset: 20x20 bx/size: 90x90 show bx]
	]
for example.


Now if I draw the box after the face it covers the textt which I 
want to avoid too.view layout [
	bx: box 100.100.255 0x0

 b: box effect [draw [pen red fill-pen red line-width 2 shape [line 
 0x0 40x0 40x40 0x40]]]
	at 40x40 text "Hello World"

  btn "append draw" [append b/effect/draw compose ['pen green 'fill-pen 
  green 'shape ['line 5x0 30x5 5x25 0x20]]show b]
	btn "Moving box" [bx/offset: 20x20 bx/size: 90x90 show bx]
Can you use alpha channel in vid or only in draw?
DidC, I thought about that but I was appending. I think I was not 
drawing the box properly.
Above code : ignore the second code example. I hit ctrl-v instead 
of cntrl-s
Anton
9-Oct-2008
[1182x2]
If you want to process face/text rendered text, then you're going 
to have to put a (semi-transparent) face on top of it (or in its 
pane).
; in its pane

view layout [h1 "hello" with [pane: make face [offset: 5x5 size: 
20x10 effect: [merge luma 90] edge: none]]]