I attached an .ijs

Here's the same file with a .txt extension.

Thanks,


--
Raul

On Fri, Feb 28, 2020 at 12:31 PM 'robert therriault' via Programming
<programm...@jsoftware.com> wrote:
>
> Hey Raul,
>
> I think that Bill was suggesting that you convert the .ijs file to .txt 
> before attaching. Did you attach a .txt version or the .ijs version of the 
> file.
>
> Cheers, bob
>
> > On Feb 28, 2020, at 09:23, Raul Miller <rauldmil...@gmail.com> wrote:
> >
> > And... I do not see the attachment at
> > http://jsoftware.com/pipermail/programming/2020-February/055193.html
> >
> > The other copy seems to indicate that my attachment got the mime type
> > "application/octet-stream", despite it being text content (I was
> > hoping for "text/plain".)
> >
> > That said, ... I should probably be experimenting on the chat forum.
> > But, also, I'm using gmail which does not seem to give me control over
> > the mime type of attachments (and researching this issue has lead me
> > into a maze of conflicting statements on the subject).
> >
> > So, anyways... while I haven't eliminated the possibility that forum
> > .ijs attachments might work, I am slightly sceptical at this point.
> >
> > Thanks,
> >
> > --
> > Raul
> >
> >
> >
> > On Fri, Feb 28, 2020 at 12:15 PM Raul Miller <rauldmil...@gmail.com> wrote:
> >>
> >> Hmm...
> >>
> >> I am attaching an example .ijs file to this response.
> >>
> >> I am also bcc'ing a copy of this message to an alternate email
> >> address, so that I can see how it gets treated outside the forums.
> >>
> >> Will the attachment show up at
> >> http://jsoftware.com/pipermail/programming/2020-February/date.html? (I
> >> will see, soon...)
> >>
> >> Thanks,
> >>
> >> --
> >> Raul
> >>
> >> On Fri, Feb 28, 2020 at 11:58 AM bill lam <bbill....@gmail.com> wrote:
> >>>
> >>> I think J forum actually accept text file attachments.
> >>> Attach .ijs file as .txt file probably work if email
> >>> client set mime type correctly.
> >>>
> >>> Fri, 28 Feb 2020, Raul Miller написал(а):
> >>>> This is getting to be long enough that it might help to use a resource
> >>>> like github (either a repository or a gist) or even pastebin (rather
> >>>> than email) to distribute it.
> >>>>
> >>>> (I'm still getting going for today, and haven't actually tried this,
> >>>> yet. But I'm anticipating some difficulties separating text from code
> >>>> and maybe chasing down implied pieces.)
> >>>>
> >>>> Thanks,
> >>>>
> >>>> --
> >>>> Raul
> >>>>
> >>>> On Fri, Feb 28, 2020 at 8:52 AM Brian Schott <schott.br...@gmail.com> 
> >>>> wrote:
> >>>>>
> >>>>> Bill, especially (Thomas, Raul, and others),
> >>>>>
> >>>>> Your comment regarding trying a simpler figure and simplifying the color
> >>>>> has led me to consider several alternatives. Below I show a revised 
> >>>>> script
> >>>>> which uses a tetrahedron (4 faces) and some color changes. I think the
> >>>>> tetrahedron is mostly working for me but I am really confused about the
> >>>>> colors.
> >>>>>
> >>>>> I apologize for the length of this email, but I have many questions.
> >>>>>
> >>>>> As an aside, I have discovered an error in the shader.ijs in the 
> >>>>> qtdemo's.
> >>>>> The last 0 in the following line should be a 1 because it's the alpha
> >>>>> value. (Coincidentally, there is another line in shader.ijs which also
> >>>>> addresses ClearColor, but it is ignored, I think, and it separates the
> >>>>> integers with ;'s .) Correcting that alpha value creates a black
> >>>>> background, which can be effective.
> >>>>>
> >>>>> glClearColor 0 0 0 0
> >>>>>
> >>>>> Btw, I have left 2 glClearColor's in the script so it's easy to swap 
> >>>>> them:
> >>>>> white 1 1 1 1 and
> >>>>> black 0 0 0 1 .
> >>>>>
> >>>>> The major changes I have made to the script are the following.
> >>>>>
> >>>>> NB.  changed cube to a mirrored sphenoid(?)
> >>>>> NB. (eg, see
> >>>>> https://en.wikipedia.org/wiki/Architectonic_and_catoptric_tessellation)
> >>>>>
> >>>>> rt=: (|.@:{)`[`]}   NB. rotates vertices of xth face for winding order
> >>>>> vertexData=: 1&fc ,1 rt 3 rt  4 3 3$ %&10, 0&". ;._2 [ 0 : 0
> >>>>> _3 _9 _4
> >>>>> 3 _9 _4
> >>>>> 0  0  2
> >>>>> 0  8 _4
> >>>>> )
> >>>>>
> >>>>> I discovered that the verb `rt` (or something like it) is required to 
> >>>>> make
> >>>>> the tetrahedron work because of face winding issues. The original cube 
> >>>>> was
> >>>>> adjusted another way, apparently.
> >>>>> With `vertexData` defined either as above OR without `1&fc` prepended I 
> >>>>> get
> >>>>> the SAME --mostly desirable-- results. The inclusion and exclusion of
> >>>>> `1&fc` giving the same result is confusing, by itself, and begs the
> >>>>> question, "Why is `1&fc` used?"
> >>>>>
> >>>>> I said "mostly desirable" above, instead of "desirable" because of the 
> >>>>> next
> >>>>> 2 issues.
> >>>>>
> >>>>> v0) The 10 in the first line of the definition of vertexData is used to
> >>>>> simplify data entry and I have also used it to experiment with scaling 
> >>>>> the
> >>>>> size of the tetrahedron. This has led to another surprise, that no 
> >>>>> scaling
> >>>>> seems to result from increasing the 10 to 80 or so. Why?
> >>>>>
> >>>>> v1) I have been disillusioned by the face coloring of the tetrahedron, 
> >>>>> even
> >>>>> in the simplest situations because when the tetrahedron is rotated in
> >>>>> certain directions, the black or white background seems to bleed through
> >>>>> one of the edges. What causes that?
> >>>>>
> >>>>> Now, moving on to coloring. I have no idea how the face COLORing works
> >>>>> using almost any version of `colorData` below. I can generalize though 
> >>>>> on
> >>>>> one thing: if I leave out the `1&fc`, no colors work on ANY version
> >>>>> of `colorData` .
> >>>>>
> >>>>> The first version below seems to give a complete tetrahedron except for 
> >>>>> the
> >>>>> background color bleeding through one edge. And as mentioned earlier, it
> >>>>> only works with vertices rotated with the rt verb.
> >>>>>
> >>>>> colorData=: 1&fc ,1 rt 3 rt  4 3 3$ , 0&". ;._2 [ 0 : 0
> >>>>> 0 0 1
> >>>>> 1 1 1
> >>>>> 1 0 0
> >>>>> 0 1 0
> >>>>> )
> >>>>>
> >>>>> f0) If the 1's in the second row are changed to 0.9's, the background 
> >>>>> color
> >>>>> no longer bleeds in. Why?
> >>>>>
> >>>>> f1) (This approach does not seem to work at all, and I have a 
> >>>>> replacement
> >>>>> for it that works a little, but will send it in a new message) I want 2 
> >>>>> of
> >>>>> the faces in the tetrahedron to have the same color and each of the 
> >>>>> other 2
> >>>>> to have a different color (3 colors altogether). I devised the following
> >>>>> NONWORKING scheme of colors to accomplish this result. By nonworking I 
> >>>>> mean
> >>>>> only the background color shows in the graphics pane, no tetrahedron. 
> >>>>> Why?
> >>>>>
> >>>>> colorData=:  1&fc ,_3]\3#"2] 0&". ;._2 [ 0 : 0
> >>>>> 0 0 1
> >>>>> 1 1 1
> >>>>> 1 0 0
> >>>>> 0 1 0
> >>>>> )
> >>>>>
> >>>>> To demonstrate the result above consider the following result which 
> >>>>> makes
> >>>>> each of the 4 faces, represented by the boxes' contents below, has 3
> >>>>> identical rows.
> >>>>>   ;/_3]\3#"2] 0&". ;._2 [ 0 : 0
> >>>>> 0 0 1
> >>>>> 1 1 1
> >>>>> 1 0 0
> >>>>> 0 1 0
> >>>>> )
> >>>>> +-----+-----+-----+-----+
> >>>>> |0 0 1|1 1 1|1 0 0|0 1 0|
> >>>>> |0 0 1|1 1 1|1 0 0|0 1 0|
> >>>>> |0 0 1|1 1 1|1 0 0|0 1 0|
> >>>>> +-----+-----+-----+-----+
> >>>>>
> >>>>>
> >>>>>
> >>>>> ***************my revised slider.ijs script is below************
> >>>>>
> >>>>> cocurrent 'demoshader'
> >>>>>
> >>>>> mp=: (+/ . *)"2
> >>>>> rt=: (|.@:{)`[`]}NB. rotates vertices of xth face for winding order
> >>>>> sprog=: 0
> >>>>> GLSL=: 0
> >>>>> STOP=: 0
> >>>>>
> >>>>> A=: 0 : 0
> >>>>> pc a;
> >>>>> minwh 300 300;cc g opengl flush;
> >>>>> rem form end;
> >>>>> )
> >>>>>
> >>>>> a_run=: 3 : 0
> >>>>> NB. if. -. checkrequire_qtdemo_ 'gles';'api/gles' do. return. end.
> >>>>> require 'gl2'
> >>>>> coinsert 'jgl2'
> >>>>> require 'gles'
> >>>>> coinsert 'jgles'
> >>>>> require '~addons/ide/qt/opengl.ijs'
> >>>>> coinsert 'qtopengl'
> >>>>> STEPS=: 100
> >>>>> R=: 20 30 0
> >>>>> EYE=: 0 0 1
> >>>>> LR=: UD=: IO=: 0
> >>>>> UP=: 0 1 0
> >>>>> wd A
> >>>>> HD=: ".wd'qhwndc g'
> >>>>> wd 'ptimer 100'
> >>>>> wd 'pshow'
> >>>>> )
> >>>>>
> >>>>> a_g_initialize=: 3 : 0
> >>>>> if. p=. >@{. glGetString GL_VERSION do. smoutput 'GL_VERSION: ', memr 0 
> >>>>> _1
> >>>>> 2,~ p end.
> >>>>> if. 0=p do. smoutput 'cannot retrieve GL_VERSION' return. end.
> >>>>> if. p=. >@{. glGetString GL_VENDOR do. smoutput 'GL_VENDOR: ', memr 0 _1
> >>>>> 2,~ p end.
> >>>>> if. p=. >@{. glGetString GL_RENDERER do. smoutput 'GL_RENDERER: ', memr > >>>>> 0
> >>>>> _1 2,~ p end.
> >>>>> if. p=. >@{. glGetString GL_SHADING_LANGUAGE_VERSION do. smoutput
> >>>>> 'GL_SHADING_LANGUAGE_VERSION: ', memr 0 _1 2,~ p end.
> >>>>> GLSL=: wglGLSL''
> >>>>>
> >>>>> wglPROC''
> >>>>> sprog=: 0
> >>>>> if. GLSL>120 do.
> >>>>>  vsrc=. vsrc2
> >>>>>  fsrc=. fsrc2
> >>>>> else.
> >>>>>  vsrc=. vsrc1
> >>>>>  fsrc=. fsrc1
> >>>>>  if. 0=GLES_VERSION_jgles_ do.
> >>>>>    vsrc=. vsrc,~ '#define lowp', LF, '#define mediump', LF, '#define
> >>>>> highp', LF
> >>>>>    fsrc=. fsrc,~ '#define lowp', LF, '#define mediump', LF, '#define
> >>>>> highp', LF
> >>>>>  end.
> >>>>> end.
> >>>>> vsrc=. '#version ',(":GLSL),((GLSL>:300)#(*GLES_VERSION){::' core';'
> >>>>> es'),LF,vsrc
> >>>>> fsrc=. '#version ',(":GLSL),((GLSL>:300)#(*GLES_VERSION){::' core';'
> >>>>> es'),LF,fsrc
> >>>>> if.(GLSL>:300)*.0~:GLES_VERSION_jgles_ do.
> >>>>>  fsrc=. ('void main';'out vec4 gl_FragColor;',LF,'void main')
> >>>>> stringreplace fsrc
> >>>>> end.
> >>>>> smoutput vsrc
> >>>>> smoutput fsrc
> >>>>> 'err program'=. gl_makeprogram vsrc;fsrc
> >>>>> if. #err do. smoutput err return. end.
> >>>>>
> >>>>> vertexAttr=: >@{. glGetAttribLocation program;'vertex'
> >>>>> assert. _1~: vertexAttr
> >>>>> colorAttr=: >@{. glGetAttribLocation program;'color'
> >>>>> assert. _1~: colorAttr
> >>>>> mvpUni=: >@{. glGetUniformLocation program;'mvp'
> >>>>> assert. _1~: mvpUni
> >>>>>
> >>>>> glGenBuffers 2;vbo=: 2#_1
> >>>>> glBindBuffer GL_ARRAY_BUFFER; {.vbo
> >>>>> glBufferData GL_ARRAY_BUFFER; (#vertexData); (symdat <'vertexData');
> >>>>> GL_STATIC_DRAW
> >>>>> glBindBuffer GL_ARRAY_BUFFER; {:vbo
> >>>>> glBufferData GL_ARRAY_BUFFER; (#colorData); (symdat <'colorData');
> >>>>> GL_STATIC_DRAW
> >>>>> glBindBuffer GL_ARRAY_BUFFER; 0
> >>>>>
> >>>>> sprog=: program
> >>>>>
> >>>>> NB. glClearColor 0; 0; 1; 1
> >>>>> )
> >>>>>
> >>>>> a_g_char=: 3 : 0
> >>>>> if. 0=#sysdata do. return. end.
> >>>>> R=: 360 | R + 2 * 'xyz' = 0 { sysdata
> >>>>> k=. 0{sysdata
> >>>>> STEPS=: 200 <. STEPS + 's' = k
> >>>>> STEPS=: 3 >. STEPS - 'a' = k
> >>>>> LR=: LR - 0.01*'l'=k
> >>>>> LR=: LR + 0.01*'r'=k
> >>>>> gl_paint ''
> >>>>> )
> >>>>>
> >>>>> a_timer=: 3 : 0
> >>>>> if. 0=STOP do. return. end.
> >>>>> R=: 360 | R + 2 * 1 1 1
> >>>>> gl_sel HD
> >>>>> gl_paint''
> >>>>> )
> >>>>>
> >>>>> a_g_paint=: 3 : 0
> >>>>> if. 0=sprog do. return. end.
> >>>>>
> >>>>> wh=. gl_qwh''
> >>>>> glClearColor 1 1 1 1
> >>>>> glClearColor 0 0 0 1   NB. this is new
> >>>>> glClear GL_COLOR_BUFFER_BIT + GL_DEPTH_BUFFER_BIT
> >>>>>
> >>>>> glUseProgram sprog
> >>>>> glEnable GL_DEPTH_TEST
> >>>>> glEnable GL_CULL_FACE
> >>>>>
> >>>>> NB. matrix convention: current matrix on the left
> >>>>> NB. note pre-multiplication
> >>>>>
> >>>>> NB. model-view
> >>>>> mvp=: (gl_Rotate (0{R), 1 0 0 ) mp (gl_Rotate (1{R), 0 1 0) mp 
> >>>>> (gl_Rotate
> >>>>> (2{R), 0 0 1) mp (gl_Scale STEPS%100) mp (gl_Translate 0 0 _8) mp
> >>>>> glu_LookAt EYE,LR,UD,IO,UP
> >>>>>
> >>>>> NB. projection
> >>>>> mvp=: mvp mp gl_Perspective 30, (%/wh),1 10
> >>>>>
> >>>>> NB. note GL_FALSE, no transpose
> >>>>> glUniformMatrix4fv mvpUni; 1; GL_FALSE; mvp
> >>>>>
> >>>>> glBindBuffer GL_ARRAY_BUFFER; {.vbo
> >>>>> glEnableVertexAttribArray vertexAttr
> >>>>> glVertexAttribPointer vertexAttr; 3; GL_FLOAT; 0; 0; 0
> >>>>>
> >>>>> glBindBuffer GL_ARRAY_BUFFER; {:vbo
> >>>>> glEnableVertexAttribArray colorAttr
> >>>>> glVertexAttribPointer colorAttr; 3; GL_FLOAT; 0; 0; 0
> >>>>>
> >>>>> glDrawArrays GL_TRIANGLES; 0; 12   NB. 36 was for cubes *******
> >>>>>
> >>>>> glBindBuffer GL_ARRAY_BUFFER; 0
> >>>>> glDisableVertexAttribArray colorAttr
> >>>>> glDisableVertexAttribArray vertexAttr
> >>>>>
> >>>>> glDisable GL_DEPTH_TEST
> >>>>> glDisable GL_CULL_FACE
> >>>>>
> >>>>> glUseProgram 0
> >>>>>
> >>>>> gl_clear ''
> >>>>> gl_rgb 255 255 255
> >>>>> gl_textcolor ''
> >>>>> gl_textxy 10 30
> >>>>> gl_text 'keys: x y z a s l r F4'
> >>>>> gl_textxy 10 50
> >>>>> gl_text 'scale: ',":STEPS%100
> >>>>> gl_textxy 10 70
> >>>>> gl_text 'angle: ',":R
> >>>>> gl_textxy 10 90
> >>>>> if. 0=sprog do. return. end.
> >>>>> gl_text 'matrix:'
> >>>>> for_i. i.4 do.
> >>>>>  gl_textxy 10, 105+i*15
> >>>>>  gl_text 6j2": i{mvp
> >>>>> end.
> >>>>> )
> >>>>>
> >>>>> a_f4_fkey=: 3 : 0
> >>>>> STOP=: -.STOP
> >>>>> NB. gl_paint ''
> >>>>> )
> >>>>>
> >>>>> a_cancel=: a_close
> >>>>>
> >>>>> a_close=: 3 : 0
> >>>>> STOP=: 0
> >>>>> wd 'ptimer 0'
> >>>>> glDeleteBuffers ::0: 2; vbo
> >>>>> glDeleteProgram ::0: sprog
> >>>>> wd 'pclose'
> >>>>> )
> >>>>>
> >>>>> NB.  Mirrored sphenoid?
> >>>>> vertexData=: 1&fc ,1 rt 3 rt  4 3 3$ %&80, 0&". ;._2 [ 0 : 0
> >>>>> _3 _9 _4
> >>>>> 3 _9 _4
> >>>>> 0  0  2
> >>>>> 0  8 _4
> >>>>> )
> >>>>>
> >>>>> colorData=: 1&fc ,1 rt 3 rt  4 3 3$ , 0&". ;._2 [ 0 : 0
> >>>>> 0 0 1
> >>>>> 1 1 1
> >>>>> 1 0 0
> >>>>> 0 1 0
> >>>>> )
> >>>>>
> >>>>>
> >>>>> NB. =========================================================
> >>>>> vsrc1=: 0 : 0
> >>>>> attribute highp vec3 vertex;
> >>>>> attribute lowp vec3 color;
> >>>>> varying lowp vec4 v_color;
> >>>>> uniform mat4 mvp;
> >>>>> void main(void)
> >>>>> {
> >>>>>  gl_Position = mvp * vec4(vertex,1.0);
> >>>>>  v_color = vec4(color,1.0);
> >>>>> }
> >>>>> )
> >>>>>
> >>>>> fsrc1=: 0 : 0
> >>>>> varying lowp vec4 v_color;
> >>>>> void main(void)
> >>>>> {
> >>>>>  gl_FragColor = v_color;
> >>>>> }
> >>>>> )
> >>>>>
> >>>>> NB. =========================================================
> >>>>> vsrc2=: 0 : 0
> >>>>> in vec3 vertex;
> >>>>> in vec3 color;
> >>>>> out vec4 v_color;
> >>>>> uniform mat4 mvp;
> >>>>> void main(void)
> >>>>> {
> >>>>>  gl_Position = mvp * vec4(vertex,1.0);
> >>>>>  v_color = vec4(color,1.0);
> >>>>> }
> >>>>> )
> >>>>>
> >>>>> fsrc2=: 0 : 0
> >>>>> in vec4 v_color;
> >>>>> void main(void)
> >>>>> {
> >>>>>  gl_FragColor = v_color;
> >>>>> }
> >>>>> )
> >>>>>
> >>>>> NB. =========================================================
> >>>>> a_run''
> >>>>>
> >>>>> On Fri, Feb 14, 2020 at 7:19 PM bill lam <bbill....@gmail.com> wrote:
> >>>>>
> >>>>>> If you intended to run turtle graphics only, then drawing cube is over
> >>>>>> skilled. Drawing triangles is much simpler. eg a triangle with vertices
> >>>>>> 0 1 0, 1 _1 0, _1 _1 0
> >>>>>> then use different scale, translate and rotate to place them into 
> >>>>>> different
> >>>>>> positions and orientations.
> >>>>>>
> >>>>>> Also only a constant solid color from fragment shader is sufficient.
> >>>>>>
> >>>>>> On Sat, Feb 15, 2020, 7:19 AM Brian Schott <schott.br...@gmail.com> 
> >>>>>> wrote:
> >>>>>>
> >>>>>> --
> >>>>> (B=)
> >>>>> ----------------------------------------------------------------------
> >>>>> For information about J forums see http://www.jsoftware.com/forums.htm
> >>>> ----------------------------------------------------------------------
> >>>> For information about J forums see http://www.jsoftware.com/forums.htm
> >>>
> >>> --
> >>> regards,
> >>> ====================================================
> >>> GPG key 1024D/4434BAB3 2008-08-24
> >>> gpg --keyserver subkeys.pgp.net --armor --export 4434BAB3
> >>> ----------------------------------------------------------------------
> >>> For information about J forums see http://www.jsoftware.com/forums.htm
> > ----------------------------------------------------------------------
> > For information about J forums see http://www.jsoftware.com/forums.htm
>
> ----------------------------------------------------------------------
> For information about J forums see http://www.jsoftware.com/forums.htm
echo 0 :0
  Let's test this idea.

  But, what are appropriate mime types for .ijs files?
  
  Will text/plain work? (why or why not?)
)
    
----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm

Reply via email to