Beispiel #1
0
int
aggiorna_ports ()
{
  if (getuid () != 0)
    {
      printf ("ilenia: only root can update the ports tree\n\n");
      return (-1);
    }
  DIR *etc_ports;
  struct dirent *info_file;
  char nome_file[255];
  char estensione[255];
  FILE *file;
  strcpy (nome_file, CACHE);
  if ((file = fopen (nome_file, "w")))
    {
      fclose (file);
    }
  etc_ports = opendir ("/etc/ports");
  while ((info_file = readdir (etc_ports)))
    {
      if (strstr (info_file->d_name, "."))
	{
	  strcpy (estensione, strstr (info_file->d_name, "."));
	  strcpy (estensione, mid (estensione, 1, FINE));
	  strcpy (nome_file, "/etc/ports/");
	  strcat (nome_file, info_file->d_name);
	  if (strcmp (estensione, "cvsup") == 0)
	    {
	      cvsup (nome_file);
	    }
	  else if (strcmp (estensione, "httpup") == 0)
	    {
	      httpup (nome_file);
	    }
	  // supporting crux ppc
	  else if (strcmp (estensione, "cvs") == 0)
	    {
	      cvs (nome_file);
	    }
	  else if(!strcmp(estensione, "rsync"))
		  rsync(nome_file);
	}
    }
  return (0);
}
cvS NormRGBDesp::CmpLmncIvrtDesp3D(cvS s)
{
	//normalize rgb
	cvS s1 = s;
	float nmlzRatio = (float)cvSD(s, cvs(0, 0, 0));
	if(nmlzRatio > 1) nmlzRatio /= 255.0f;
	doF(i, 3) s1.val[i] /= nmlzRatio;

	//c1 c2 c3 ref by [01] shadow identification
	cvS s2 = s;
	s2.val[0] = atan2(s.val[0], max2(s.val[1], s.val[2]));
	s2.val[1] = atan2(s.val[1], max2(s.val[0], s.val[2]));
	s2.val[2] = atan2(s.val[2], max2(s.val[0], s.val[1]));
	doF(i, 3) s2.val[i] = s2.val[i] / CV_PI * 2 * 255;

	//ref by [01pami] color variance
	cvS s3 = s;
	s3.val[0] = 0.06 * s.val[0] + 0.63 * s1.val[0] + 0.27 *s2.val[0];
	s3.val[1] = 0.3 * s.val[0] + 0.04 * s1.val[0] - 0.35 * s2.val[0];
	s3.val[2] = 0.34 * s.val[0] - 0.6 * s1.val[0] + 0.17 * s2.val[0];

	return s1;
}
Beispiel #3
0
void
QA::setCheckMode(std::string m)
{
  isCheckCF=false;
  isCheckCNSTY=false;
  isCheckCV=false;
  isCheckData=false;
  isCheckDRS_F=false;
  isCheckDRS_P=false;
  isCheckTime=false;
  isCheckTimeValues=false;

  isRequiredTime=false;
  isRequiredVariable=false;
  isRequiredGlobal=false;

  bool isEnableMode=false;

  Split cvs(hdhC::Lower()(m), ",|", true);
  for( size_t j=0 ; j < cvs.size() ; ++j )
  {
    if( cvs[j] == "cf" )
    {
      isCheckCF=true ;

      isRequiredTime=true;
      isRequiredVariable=true;
      isRequiredGlobal=true;

      isEnableMode=true;
    }
    if( cvs[j] == "cnsty" )
    {
      isCheckCNSTY=true ;

      isEnableMode=true;
    }
    else if( cvs[j] == "cv" )
    {
      isCheckCV=true ;
      isCheckTime=true ;

      isRequiredTime=true;
      isRequiredGlobal=true;
      isRequiredVariable=true;

      isEnableMode=true;
    }
    else if( cvs[j] == "data" )
    {
      isCheckTime=true ;
      isCheckTimeValues=true ;
      isCheckData=true ;

      isRequiredTime=true;
      isRequiredVariable=true;
      isRequiredGlobal=true;

      isEnableMode=true;
    }
    else if( cvs[j] == "drs" )
    {
      isCheckDRS_F=true ;
      isCheckDRS_P=true ;
      isCheckTime=true ;

      isRequiredTime=true;
      isRequiredGlobal=true;

      isEnableMode=true;
    }
    else if( cvs[j] == "drs_f" )
    {
      isCheckDRS_F=true ;
      isCheckTime=true ;

      isRequiredTime=true;
      isRequiredGlobal=true;

      isEnableMode=true;
    }
    else if( cvs[j] == "drs_p" )
    {
      isCheckDRS_P=true ;
      isCheckTime=true ;

      isRequiredTime=true;
      isRequiredGlobal=true;

      isEnableMode=true;
    }
    else if( cvs[j] == "meta" )
    {
      isCheckCF=true ;
      isCheckCNSTY=true ;
      isCheckCV=true ;
      isCheckDRS_F=true ;
      isCheckDRS_P=true ;
      isCheckTime=true ;

      isRequiredGlobal=true;
      isRequiredTime=true;
      isRequiredVariable=true;

      isEnableMode=true;
    }
    else if( cvs[j] == "time" )
    {
      isCheckTime=true ;
      isCheckTimeValues=true ;

      isRequiredTime=true;
      isRequiredGlobal=true;

      isEnableMode=true;
    }
  }

  // disable mode
  if( isEnableMode )
      return;

  isCheckCF=true;
  isCheckCNSTY=true;
  isCheckCV=true;
  isCheckData=true;
  isCheckDRS_F=true;
  isCheckDRS_P=true;
  isCheckTime=true;
  isCheckTimeValues=true;

  isRequiredTime=true;
  isRequiredVariable=true;
  isRequiredGlobal=true;

  for( size_t j=0 ; j < cvs.size() ; ++j )
  {
    if( cvs[j] == "-cf" )
      isCheckCF=false ;
    else if( cvs[j] == "-cnsty" )
      isCheckCNSTY=false ;
    else if( cvs[j] == "-cv" )
      isCheckCV=false ;
    else if( cvs[j] == "-data" )
    {
      isCheckData=false ;
    }
    else if( cvs[j] == "-drs" )
    {
      isCheckDRS_F=false ;
      isCheckDRS_P=false ;
    }
    else if( cvs[j] == "-drs_f" )
      isCheckDRS_F=false ;
    else if( cvs[j] == "-drs_p" )
      isCheckDRS_P=false ;
    else if( cvs[j] == "-meta" )
    {
      isCheckCF=false ;
      isCheckCNSTY=false ;
      isCheckCV=false ;
      isCheckDRS_F=false ;
      isCheckDRS_P=false ;
    }
    else if( cvs[j] == "-time" )
    {
      isCheckTime=false ;
      isCheckTimeValues=false ;
    }
  }

  return;
}
MStatus	liqAttachPrefAttribute::redoIt()
{
  MFnTypedAttribute tAttr;
  MStatus status;

  for ( unsigned i( 0 ); i < objectNames.length(); i++ ) 
  {
    MSelectionList		nodeList;
    nodeList.add( objectNames[i] );
    MObject depNodeObj;
    nodeList.getDependNode( 0, depNodeObj );
    MDagPath dagNode;
    nodeList.getDagPath( 0, dagNode );
    MFnDependencyNode depNode( depNodeObj );
    MObject prefAttr;
    MString attrName, varName;

    // make sure the renderer description is up to date
    liqglo.liquidRenderer.setRenderer();

    // build the name of the attribute
    varName = ( ( exportN && depNodeObj.hasFn( MFn::kMesh ) )? "N":"P" );
    attrName = "rman";
    attrName += varName;
    attrName += ( ( liqglo.liquidRenderer.requires__PREF )? "__":"" );
    attrName += varName + "ref";

    // create the attribute
    prefAttr = tAttr.create( attrName, attrName, MFnData::kPointArray );


    if ( depNodeObj.hasFn( MFn::kNurbsSurface ) ) 
    {
      MFnNurbsSurface nodeFn( depNodeObj );
      MPointArray nodePArray;
      MItSurfaceCV cvs( dagNode, MObject::kNullObj, liqglo.liquidRenderer.requires_SWAPPED_UVS == false, &status );

      while( !cvs.isDone() ) 
      {
        while( !cvs.isRowDone() ) 
        {
          MPoint pt = (worldSpace)? cvs.position( MSpace::kWorld ) : cvs.position( MSpace::kObject );
          nodePArray.append( pt );
          cvs.next();
        }
        cvs.nextRow();
      }

      nodeFn.addAttribute( prefAttr );
      MFnPointArrayData pArrayData;

      MObject prefDefault = pArrayData.create( nodePArray );
      MPlug nodePlug( depNodeObj, prefAttr );
      nodePlug.setValue( prefDefault );
    } 
    else if ( depNodeObj.hasFn( MFn::kNurbsCurve ) ) 
    {
      // Carsten: added support for PREF on nurbs curves
      //
      MFnNurbsCurve nodeFn( depNodeObj );
      MPointArray nodePArray;
      nodeFn.getCVs( nodePArray );

      nodeFn.addAttribute( prefAttr );
      MFnPointArrayData pArrayData;

      MObject prefDefault = pArrayData.create( nodePArray );
      MPlug nodePlug( depNodeObj, prefAttr );
      nodePlug.setValue( prefDefault );
    } 
    else if ( depNodeObj.hasFn( MFn::kMesh ) ) 
    {
      MFnMesh nodeFn( depNodeObj );
      // Moritz: modified this line to dim nodePArray -- otherwise
      // nodePArray.set() in the wile loop below throws an exception
      // which was why __Pref didn't work
      MPointArray nodePArray( MFnMesh( depNodeObj ).numVertices() );
      unsigned count;

      nodeFn.addAttribute( prefAttr );

      if ( exportN ) 
      {
        // export Nref
        unsigned vertex;
        unsigned normal;
        unsigned face = 0;
        unsigned faceVertex = 0;
        unsigned int numNormals = nodeFn.numNormals();
        unsigned int numPoints  = nodeFn.numVertices();
        MFloatVectorArray normals;
        MVectorArray normalAttArray;
        nodeFn.getNormals( normals );

        if ( numNormals > numPoints ) 
        {
          // if we get more than 1 normal per vertex,
          // force the arraysize to the full facevarying size
          unsigned faceVaryingCount( 0 );
          for ( unsigned pOn( 0 ); pOn < nodeFn.numPolygons(); pOn++ ) 
            faceVaryingCount += nodeFn.polygonVertexCount( pOn );
          
          normalAttArray.setLength( faceVaryingCount );
        } 
        else 
          normalAttArray.setLength(normals.length());
        
        for ( MItMeshPolygon polyIt ( depNodeObj ); polyIt.isDone() == false; polyIt.next() ) 
        {
          count = polyIt.polygonVertexCount();
          while ( count > 0 ) 
          {
            --count;
            normal = polyIt.normalIndex( count );
            vertex = polyIt.vertexIndex( count );

            if( numNormals == numPoints )
              normalAttArray.set(normals[normal], vertex);
            else
              normalAttArray.set(normals[normal], faceVertex);

            ++faceVertex;
          }
          ++face;
        }

        MFnVectorArrayData pArrayData;
        MObject prefDefault = pArrayData.create( normalAttArray );
        MPlug nodePlug( depNodeObj, prefAttr );
        nodePlug.setValue( prefDefault );

      } 
      else 
      {
        // TODO: do we need to account for the altMeshExport algo that's
        // used in liquidRibMeshData?
        // Moritz: no, it's basically the same as the algo below
        for ( MItMeshPolygon polyIt( dagNode, MObject::kNullObj ); !polyIt.isDone(); polyIt.next()) 
        {
          count = polyIt.polygonVertexCount();

          while ( count > 0 ) 
          {
            --count;
            unsigned	vertexIndex = polyIt.vertexIndex( count );
            MPoint nodePoint = (worldSpace)? polyIt.point( count, MSpace::kWorld ) : polyIt.point( count, MSpace::kObject );
            // Moritz: this returns MS::kFailure but seems to work?!
            nodePArray.set( nodePoint, vertexIndex );
          }
        }

        MFnPointArrayData pArrayData;
        MObject prefDefault = pArrayData.create( nodePArray );
        MPlug nodePlug( depNodeObj, prefAttr );
        nodePlug.setValue( prefDefault );

      }
    } else cerr << "Neither a Nurbs nor a Mesh !!" << endl;
  }
  return MS::kSuccess;
}