[Bf-committers] Vert colours returning incorrect values.

Campbell Barton bf-committers@blender.org
Sun, 18 Jul 2004 13:05:03 +1000


Hi, Im writing some code that compares the vert colours of faces with 
eachother.

The code dosent work beacure the colour values returned from the 
selected  face colours is incorrect.

eg,  i have 9 white faces on a plane, and when I print the colour values 
is shows the last 2 faces to be a different colour.

 !Match 
 Comparing 255 255 255 with 255 255 255 
 Comparing 255 255 255 with 255 255 255 
 Comparing 255 255 255 with 255 255 255 
 Comparing 255 255 255 with 255 255 255 

 !Match 
 Comparing 255 255 255 with 255 255 255 
 Comparing 255 255 255 with 255 255 255 
 Comparing 255 255 255 with 255 255 255 
 Comparing 255 255 255 with 255 255 255 

 !Match 
 Comparing 255 255 255 with 255 255 255 
 Comparing 255 255 255 with 255 255 255 
 Comparing 255 255 255 with 255 255 255 
 Comparing 255 255 255 with 255 255 255 

 !Match 
 Comparing 255 255 255 with 255 255 255 
 Comparing 255 255 255 with 255 255 255 
 Comparing 255 255 255 with 255 255 255 
 Comparing 255 255 255 with 255 255 255 

 !Match 
 Comparing 255 255 255 with 255 255 255 
 Comparing 255 255 255 with 255 255 255 
 Comparing 255 255 255 with 255 255 255 
 Comparing 255 255 255 with 255 255 255 

 !Match 
 Comparing 255 255 255 with 255 255 255 
 Comparing 255 255 255 with 255 255 255 
 Comparing 255 255 255 with 255 255 255 
 Comparing 255 255 255 with 255 255 255 

 !Match 
 Comparing 255 255 255 with 255 255 255 
 Comparing 255 255 255 with 255 255 255 
 Comparing 255 255 255 with 255 255 255 
 Comparing 255 255 255 with 76 66 89 

 Comparing 255 255 255 with 255 255 255 
 Comparing 255 255 255 with 255 255 255 
 Comparing 255 255 255 with 76 66 89 
 Comparing 255 255 255 with 63 128 0 

 Comparing 255 255 255 with 255 255 255 
 Comparing 255 255 255 with 76 66 89 
 Comparing 255 255 255 with 63 128 0 
 Comparing 255 255 255 with 0 0 0 



Heres the code that assigns the colours


var props

	
  /* Here are vars where we store the colours to compare */
  /* extract of an email from Ton and Douglas Toltzman 
  What Ton is saying is that there are 4, 8 bit components stored in a 32
  bit, unsigned value.  I'm not sure of the order of components, but if Ton
  says "ABGR", then I'd presume the following would be correct
  - Ton
  Colors are 'packed' in an int, denoting bytes for ABGR respectively.
  Put a char pointer to the color, and read the color components  
  individually. Alpha is by default 255. */
  char *packed_color_array;
  /* face A- the active save */
  short redA1, greenA1, blueA1, redA2, greenA2, blueA2, redA3, greenA3,      blueA3, redA4, greenA4, blueA4,
      redB1, greenB1, blueB1, redB2, greenB2, blueB2, redB3, greenB3, blueB3, redB4, greenB4, blueB4;
____________________


      /* make sure the face has at lease 3 point before we go on */
      foundActFace=1;
      /* face A- the active save */
      packed_color_array = (char *) &tface[0].col;
      redA1= packed_color_array[3];
      greenA1= packed_color_array[2];
      blueA1= packed_color_array[1];        
      
      packed_color_array = (char *) &tface[1].col;
      redA2= packed_color_array[3];
      greenA2= packed_color_array[2];
      blueA2= packed_color_array[1];
    
      packed_color_array = (char *) &tface[2].col;
      redA3 = packed_color_array[3];
      greenA3 = packed_color_array[2];
      blueA3 = packed_color_array[1];
      if (mface->v4) {
        packed_color_array = (char *) &tface[3].col;
        redA4 = packed_color_array[3];
        greenA4 = packed_color_array[2];
        blueA4 = packed_color_array[1];
      }

Could anybody tel me why Im not getting all 255,255,255?
- Thanks


-- 
Campbell J Barton

133 Hope Street
Geelong West, Victoria 3218 Australia

URL:    http://www.metavr.com
e-mail: cbarton@metavr.com
phone: AU (03) 5229 0241