Esempio n. 1
0
MFImplicitMF MFIMFCreateLOCA(LOCAData* data)
 {
  MFImplicitMF loca;
  MFNSpace space;

  loca=MFIMFCreateBaseClass(-1, data->np, "LOCA", data->mfErrorHandler);

  space=MFCreateLOCANSpace(data);
  MFIMFSetSpace(loca,space, data->mfErrorHandler);
  MFFreeNSpace(space, data->mfErrorHandler);

  MFIMFSetData(loca,(void*)data, data->mfErrorHandler);
  data->space=space;
  MFRefNSpace(space, data->mfErrorHandler);
  MFIMFSetFreeData(loca,MFLOCAFreeData, data->mfErrorHandler);
  MFIMFSetProject(loca,MFProjectLOCA, data->mfErrorHandler);
  MFIMFSetTangent(loca,MFTangentLOCA, data->mfErrorHandler);
  MFIMFSetScale(loca,MFScaleLOCA, data->mfErrorHandler);
  MFIMFSetProjectForSave(loca,MFLOCAProjectToDraw, data->mfErrorHandler);
  MFIMFSetProjectForDraw(loca,MFLOCAProjectToDraw, data->mfErrorHandler);
  MFIMFSetProjectForBB(loca,MFLOCAProjectToDraw, data->mfErrorHandler);

  return loca;
 }
Esempio n. 2
0
MFNRegion MFNRegionCreateAUTO(MFNSpace space, int k, long *icp, double *RL0, double *RL1, double A0,double A1, MFErrorHandler e)
 {
  static char RoutineName[]={"MFNRegionCreateAUTO"};
  MFNRegion Auto;
  struct MFAUTONRegionData *data;
  int i;

  Auto=MFNRegionCreateBaseClass("AUTO",e);
  MFNRegionSetTest(Auto,MFAUTONSpaceTest,e);
  data=malloc(sizeof(struct MFAUTONRegionData));

#ifndef MFNOSAFETYNET
  if(data==NULL)
   {
    sprintf(MFAUTONRegionErrorMsg,"Out of memory, trying to allocate %d bytes",sizeof(struct MFAUTONRegionData));
    MFSetError(e,12,RoutineName,MFAUTONRegionErrorMsg,__LINE__,__FILE__);
    MFErrorHandlerOutOfMemory(e);
    return NULL;
   }
#endif

  MFNRegionSetData(Auto,data,e);
  MFNRegionSetFreeData(Auto,MFAUTONRegionFreeData,e);
  MFRefNSpace(space,e);

  data->space=space;
  data->k=k;
  data->icp=icp;
  data->RL0=malloc(k*sizeof(double));

#ifndef MFNOSAFETYNET
  if(data->RL0==NULL)
   {
    sprintf(MFAUTONRegionErrorMsg,"Out of memory, trying to allocate %d bytes",k*sizeof(double));
    MFSetError(e,12,RoutineName,MFAUTONRegionErrorMsg,__LINE__,__FILE__);
    MFErrorHandlerOutOfMemory(e);
    return NULL;
   }
#endif

  for(i=0;i<k;i++)(data->RL0)[i]=RL0[i];

  data->RL1=malloc(k*sizeof(double));

#ifndef MFNOSAFETYNET
  if(data->RL1==NULL)
   {
    sprintf(MFAUTONRegionErrorMsg,"Out of memory, trying to allocate %d bytes",k*sizeof(double));
    MFSetError(e,12,RoutineName,MFAUTONRegionErrorMsg,__LINE__,__FILE__);
    MFErrorHandlerOutOfMemory(e);
    return NULL;
   }
#endif

  for(i=0;i<k;i++)(data->RL1)[i]=RL1[i];

  data->A0=A0;
  data->A1=A1;

  return(Auto);
 }