Beefy Boxes and Bandwidth Generously Provided by pair Networks
"be consistent"
 
PerlMonks  

Re: Re: Re: build array of geometry data

by MZSanford (Curate)
on Feb 10, 2003 at 16:17 UTC ( #234157=note: print w/ replies, xml ) Need Help??


in reply to Re: Re: build array of geometry data
in thread build array of geometry data

I am unsure what you mean about changing the data. While i am not quite clear on that, i do understand you want to save each array of numbers seperatly. To accomplish this, i used an Array of Arrays. The code is listed below (it is untested) :

#!/usr/bin/perl my $string; { $/ = undef; $string = <DATA>; } my @collection; while ($string =~ m!\[\s*([^]]+)\]!g) { my @nums = split(/\s+/,$1); print "Array : ",join(',',@nums),"\n"; push(@collection,\@nums); } ## Now, i have an array or arrays, like : # # @collection = ( # [1,1,1,...], # [4,4,4,...], # [123,123,123,123,...], # [-1,1,1,1,1,...], # ) print "nloops : ",join(',',@{$collection[0]}),"\n"; print "lverts : ",join(',',@{$collection[1]}),"\n"; print "vertid : ",join(',',@{$collection[2]}),"\n"; print "params : ",join(',',@{$collection[3]}),"\n"; __DATA__ [1 1 1 1 1 1 ][4 4 4 4 4 4] [ 123 123 123 123 123 123 123 123 123 ] "P" [ -1 1 1 1 1 -1 1 1 1 ]

I do not understand what you wrote about changing the data, but from what i posted i think you should be able to work out the seperate array issue which should put you well on your way.


from the frivolous to the serious


Comment on Re: Re: Re: build array of geometry data
Download Code
Re: Re: Re: Re: build array of geometry data
by Frippe (Acolyte) on Feb 10, 2003 at 19:37 UTC
    Thanks, maybe it me but I use ex. my @nloops = join(',',@{$collection[0]}); and try print @nloops[1] OUT [1,1,1,1,1] but the correct should be 1 To make this little test a more clear view from my part as you could see there are 4 array in the renderman rib ex. for ($i = 0; $i < array_length; $i ++ ) { print @params[0+$i] @params[1+$i] @params[2+$i] 1; } this would be output: -1 1 1 1 1 -1 1 1 1 ... next I apply a custom string in print "Run $count_lvert_length Poly\n"; for ($i = 0; $i < count_lverts*4; $i += 4 ) { if ( $lverts[0+($i/4)] == 3 ) { print "$lverts[0+($i/4)] < $vertid[2+$i] $vertid[1+$i] $vertid[0+$i]\n"; } else { print "$lverts[0+($i/4)] < $vertid[3+$i] $vertid[2+$i] $vertid[1+$i] $vertid[0+$i]\n"; } } append the end line !!! ---------------------------------- here is the 'renderman' rib example this file this what I read in and like to get data from # Starting polys PointsGeneralPolygons [1 1 1 1 1 1] [4 4 4 4 4 4] [ 0 4 5 1 1 5 6 2 2 6 7 3 3 7 4 0 3 0 1 2 4 7 6 5 ] "P" [ -0.5 -0.5 -0.5 0.5 -0.5 -0.5 0.5 -0.5 0.5 -0.5 -0.5 0.5 -0.5 0.5 -0.5 0.5 0.5 -0.5 0.5 0.5 0.5 -0.5 0.5 0.5 ] # Starting curves # Done curves --------------------------- and this is the code I trying to get Perl to make for me !!! -0.5 -0.5 -0.5 1 0.5 -0.5 -0.5 1 0.5 -0.5 0.5 1 -0.5 -0.5 0.5 1 -0.5 0.5 -0.5 1 0.5 0.5 -0.5 1 0.5 0.5 0.5 1 -0.5 0.5 0.5 1 Run 6 Poly 4 < 1 5 4 0 4 < 2 6 5 1 4 < 3 7 6 2 4 < 0 4 7 3 4 < 2 1 0 3 4 < 5 6 7 4 regards, Fredrik Gustafsson
      my @nloops = join(',',@{$collection[0]});
      and try
      print @nloops[1]
      OUT
      [1,1,1,1,1]
      but the correct should be

      1

      Actually, there is nothing in @nloops[1]. It's not defined. join returns a scalar. Setting a scalar to @nloops places the scalar in $nloop[0].

      What you probably wanted to do is:

      my @nloops = @{ $collection[0] };

      Now @nloops contains a list of values. $nloops[0] now contains 1.




      HTH,
      Charles K. Clarkson
      Clarkson Energy Homes, Inc.
Re: Re: Re: Re: build array of geometry data
by Frippe (Acolyte) on Feb 10, 2003 at 19:55 UTC
    hi I'm not sure my message was send correct !!! here is the 'renderman' rib file. ----------------------------------- # Starting polys PointsGeneralPolygons [1 1 1 1 1 1] [4 4 4 4 4 4] [ 0 4 5 1 1 5 6 2 2 6 7 3 3 7 4 0 3 0 1 2 4 7 6 5 ] "P" [ -0.5 -0.5 -0.5 0.5 -0.5 -0.5 0.5 -0.5 0.5 -0.5 -0.5 0.5 -0.5 0.5 -0.5 0.5 0.5 -0.5 0.5 0.5 0.5 -0.5 0.5 0.5 ] # Starting curves # Done curves ------------------------------ and here is the code I like Perl to do for me. ------------------------------------------- -0.5 -0.5 -0.5 1 0.5 -0.5 -0.5 1 0.5 -0.5 0.5 1 -0.5 -0.5 0.5 1 -0.5 0.5 -0.5 1 0.5 0.5 -0.5 1 0.5 0.5 0.5 1 -0.5 0.5 0.5 1 Run 6 Poly 4 < 1 5 4 0 4 < 2 6 5 1 4 < 3 7 6 2 4 < 0 4 7 3 4 < 2 1 0 3 4 < 5 6 7 4 ------------------------------------- regards, Fredrik Gustafsson

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://234157]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others wandering the Monastery: (8)
As of 2014-11-26 20:46 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    My preferred Perl binaries come from:














    Results (173 votes), past polls