Integer = 0 To 9
val *= 2
lst.Add(val)
Next
Since val is a ValueType, when we assign it to the list we actually put a copy of val into the list. Thus, the list contains the following memory layout:
[0] = 2
[1] = 4
[2] = 8
[3] = 16
[4] = 32
[5] = 64
[6] = 128
[7] = 256
[8] = 512
[9] = 1024
Now let's assume we do the same, but with OnLines:
Dim ln As New OnLine(A, B)
Dim lst As New List(Of OnLine)
For i As Integer = 0 To 9
ln.Transform(xform)
lst.Add(ln)
Next
When we declare ln on line 1, it is assigned an address in memory, say "24 Bell Ave." Then we modify that one line over and over, and keep on adding the same address to lst. Thus, the memory layout of lst is now:
[0] = "24 Bell Ave."
[1] = "24 Bell Ave."
[2] = "24 Bell Ave."
[3] = "24 Bell Ave."
[4] = "24 Bell Ave."
[5] = "24 Bell Ave."
[6] = "24 Bell Ave."
[7] = "24 Bell Ave."
[8] = "24 Bell Ave."
[9] = "24 Bell Ave."
To do this properly, we need to create a unique line for every element in lst:
Dim lst As New List(Of OnLine)
For i As Integer = 0 To 9
Dim ln As New OnLine(A, B)
ln.Transform(xform)
lst.Add(ln)
Next
Now, ln is constructed not just once, but whenever the loop runs. And every time it is constructed, a new piece of memory is reserved for it and a new address is created. So now the list memory layout is:
[0] = "24 Bell Ave."
[1] = "12 Pike St."
[2] = "377 The Pines"
[3] = "3670 Woodland Park Ave."
[4] = "99 Zoo Ln."
[5] = "13a District Rd."
[6] = "2 Penny Lane"
[7] = "10 Broadway"
[8] = "225 Franklin Ave."
[9] = "420 Paper St."
--
David Rutten
david@mcneel.com
Poprad, Slovakia…
Added by David Rutten at 6:26am on September 9, 2010
byte-accuracy red, green, blue channels) = 27 bytes. More likely 28 bytes as colours are probably stored as 32-bit integers, allowing for an unused alpha channel.
28 * 800,000 equals roughly 22 megabytes, which is way down from 9 gigabytes. That's a 400 fold memory overhead, which is pretty hefty.
Grasshopper stores points as instances of classes, so on 64-bit systems it actually takes 64+64+3*8 = 152 bytes per point*, which adds up to 122MB, still way less than 9GB. It would be interesting to know where all the memory goes...
* Grasshopper points also store reference data, in case they come from the Rhino document. This data will not exist, but even so it will require 64-bits of storage.…
Added by David Rutten at 4:13pm on December 11, 2014
ace. What I am trying to do is then take these indexes and arrange them to fit a grid - so that all shared edges meet up. e.g. Surface 0 shares edges with surfaces 7 and 8, surface 7 shares edges with 19,4, 3, surface 3 shares and edge with 8 etc. What I need to do is graphically represent this in a grid, so that I can map out the uvs and effectively solve the problem of surface seams. Does anyone have a clue how to do this kind of 2d shuffling?…
se the cull pattern, so I wanted to make the pattern using a function component. x=y. x= the original list and y= the interval i wanted to remove. So the pattern should be:
0: false
1:false
2:false
3:false
4:true
5:true
6:true
7:true
8:false
9:false
10:false
etc...…
Added by Rasmus Holst at 3:32am on November 17, 2009
Let's say first curve is divided by 1, the second one by 3, the third one by 9, then by 27 and etc. I tried to raise (i+start) to the power of 3: 3**(i+start). It kinda worked, but not sure if it's the correct way.…
ggle A
7. Toggle A
8. Toggle 2
9. Toggle 3
10. Toggle A
11. Toggle A
12. Toggle 3
I was thinking to use somehow slider and animate option....but without luck
Any idea would be appreciated…
ns :-)
The code is really simple but I´ll post it in case it´s useful for somebody in the future:
On3dPoint[] array = new On3dPoint[8];
// in this case, I fill the array manually :-S
array[0] = new On3dPoint(0, 0, 0);
array[1] = new On3dPoint(1, 0, 0);
array[2] = new On3dPoint(1, 1, 0);
array[3] = new On3dPoint(0, 1, 0);
array[4] = new On3dPoint(0, 0, 1);
array[5] = new On3dPoint(1, 0, 1);
array[6] = new On3dPoint(1, 1, 1);
array[7] = new On3dPoint(0, 1, 1);
OnBrep box = new OnBrep();
box = OnUtil.ON_BrepBox(array);
A = box;
Thanks!…