예제 #1
0
CFXStencilState::CFXStencilState()
{
	DefineVar("State", CVarCombo::CLASSNAME);

	((CVarCombo*)GetVar("State"))->AddOption("Off"); // default
	((CVarCombo*)GetVar("State"))->AddOption("On");
}
예제 #2
0
CFXCrossFade::CFXCrossFade()
{
	DefineVar("Alpha",      CVarFloat::CLASSNAME);
	DefineVar("Blend Mode", CVarCombo::CLASSNAME);

	// Add combo options

	((CVarCombo*)GetVar("Blend Mode"))->AddOption("Mult");
	((CVarCombo*)GetVar("Blend Mode"))->AddOption("Add");

	// Set default alpha value.
	// The desired one would have been a linear change from 0.0 to 1.0 but since we don't
	// know the effect time range at this point yet, we can't do that.

	((CVarFloat*)GetVar("Alpha"))->SetConstant(0.5f);
}
예제 #3
0
CFXBoxBlur::CFXBoxBlur()
{
	DefineVar("BlurTexture Width",  CVarInt::CLASSNAME);
	DefineVar("BlurTexture Height", CVarInt::CLASSNAME);
	DefineVar("Blur Radius (Pw2)",  CVarInt::CLASSNAME);

	// Set default values

	((CVarInt*)GetVar("BlurTexture Width" ))->LockConstant(true);
	((CVarInt*)GetVar("BlurTexture Width" ))->SetConstant(256);
	((CVarInt*)GetVar("BlurTexture Height"))->LockConstant(true);
	((CVarInt*)GetVar("BlurTexture Height"))->SetConstant(256);
	((CVarInt*)GetVar("Blur Radius (Pw2)" ))->SetConstant(16);

	GetVar("BlurTexture Width" )->ReloadFXOnChange(this);
	GetVar("BlurTexture Height")->ReloadFXOnChange(this);
}
CFXSplineEvStencilSprite::CFXSplineEvStencilSprite()
{
	DefineVar("Sprite Size",  CVarFloat::CLASSNAME);
	DefineVar("Sprite Angle", CVarFloat::CLASSNAME);
	DefineVar("Type",         CVarCombo::CLASSNAME);

	((CVarFloat*)GetVar("Sprite Size"))->SetConstant(0.01f);
	((CVarFloat*)GetVar("Sprite Angle"))->SetConstant(0.0f);

	((CVarCombo*)GetVar("Type"))->AddOption("Single Sprite"); // default
	((CVarCombo*)GetVar("Type"))->AddOption("Whole Spline");

	DefineResourceReference("Texture", CResourceTexture2D::CLASSNAME);
	m_pResTexture = NULL;

	m_bEvaluateWholeSpline = false;
}
예제 #5
0
CFXRadialBlur::CFXRadialBlur()
{
    DefineVar("BlurTexture Width",   CVarInt::CLASSNAME);
    DefineVar("BlurTexture Height",  CVarInt::CLASSNAME);
    DefineVar("Steps",               CVarInt::CLASSNAME);
    DefineVar("Width",               CVarFloat::CLASSNAME);
    DefineVar("Height",              CVarFloat::CLASSNAME);
    DefineVar("X Origin",            CVarFloat::CLASSNAME);
    DefineVar("Y Origin",            CVarFloat::CLASSNAME);

    // Set default values

    ((CVarInt*)GetVar("BlurTexture Width" ))->LockConstant(true);
    ((CVarInt*)GetVar("BlurTexture Width" ))->SetConstant(512);
    ((CVarInt*)GetVar("BlurTexture Height"))->LockConstant(true);
    ((CVarInt*)GetVar("BlurTexture Height"))->SetConstant(512);

    ((CVarInt*)GetVar("Steps"))->SetConstant(10);

    ((CVarFloat*)GetVar("Width"   ))->SetConstant(1.2f);
    ((CVarFloat*)GetVar("Height"  ))->SetConstant(1.2f);
    ((CVarFloat*)GetVar("X Origin" ))->SetConstant(0.5f);
    ((CVarFloat*)GetVar("Y Origin" ))->SetConstant(0.5f);

    GetVar("BlurTexture Width" )->ReloadFXOnChange(this);
    GetVar("BlurTexture Height")->ReloadFXOnChange(this);
}
CFXRecursiveBlurTexture::CFXRecursiveBlurTexture()
{
	DefineVar("Intensity",          CVarFloat::CLASSNAME);
	DefineVar("Width",              CVarFloat::CLASSNAME);
	DefineVar("Height",             CVarFloat::CLASSNAME);
	DefineVar("X Origin",           CVarFloat::CLASSNAME);
	DefineVar("Y Origin",           CVarFloat::CLASSNAME);

	DefineResourceReference("Texture", CResourceTexture2D::CLASSNAME);

	// Set default values

	((CVarFloat*)GetVar("Intensity" ))->SetConstant(0.90f);
	((CVarFloat*)GetVar("Width"     ))->SetConstant(1.02f);
	((CVarFloat*)GetVar("Height"    ))->SetConstant(1.02f);
	((CVarFloat*)GetVar("X Origin"  ))->SetConstant(0.5f);
	((CVarFloat*)GetVar("Y Origin"  ))->SetConstant(0.5f);

	m_pResTexture = NULL;
	m_pTexture    = NULL;
}
예제 #7
0
CFXScene::CFXScene()
{
	DefineVar("Start Time",  CVarFloat::CLASSNAME);
	DefineVar("Speed",       CVarSpeed::CLASSNAME);
	DefineVar("Camera",      CVarString::CLASSNAME);
	DefineVar("Loop Length", CVarFloat::CLASSNAME);
	DefineVar("Loop Start",  CVarFloat::CLASSNAME);
	DefineVar("Render Mode", CVarCombo::CLASSNAME);

	DefineResourceReference("Scene", CResourceScene::CLASSNAME);

	// Set combo options (the first added becomes the default value)

	((CVarCombo*)GetVar("Render Mode"))->AddOption("Full");
	((CVarCombo*)GetVar("Render Mode"))->AddOption("Solid");
	((CVarCombo*)GetVar("Render Mode"))->AddOption("Wire");

	// Set the rest of default values

	((CVarFloat*)GetVar("Start Time" ))->LockConstant(true); // must be constant
	((CVarFloat*)GetVar("Start Time" ))->SetConstant(0.0f);
	((CVarSpeed*)GetVar("Speed"      ))->SetConstant(1.0f);
	((CVarFloat*)GetVar("Loop Start" ))->SetConstant(0.0f);
	((CVarFloat*)GetVar("Loop Length"))->SetConstant(-1.0f);

	// Define additional transformation variables

	DefineAddTransformVars(this);

	m_fAnimStart = m_fAnimEnd = 0.0f;

	m_pResScene = NULL;
}
CFXMotionBlurTexture::CFXMotionBlurTexture()
{
	DefineVar("Trail (0-1)", CVarFloat::CLASSNAME);

	DefineResourceReference("Texture", CResourceTexture2D::CLASSNAME);

	// Set default values

	((CVarFloat*)GetVar("Trail (0-1)"))->SetConstant(0.9f);

	m_pResTexture = NULL;
	m_pTexture    = NULL;
}
예제 #9
0
void CCodeChainCtx::SaveAndDefineDataVar (ICCItem *pData)

//	SaveAndDefineDataVar
//
//	Saves and defines gData

	{
	if (m_pOldData == NULL)
		m_pOldData = m_CC.LookupGlobal(STR_G_DATA, this);

	if (pData)
		DefineVar(STR_G_DATA, pData);
	else
		DefineNil(STR_G_DATA);
	}
예제 #10
0
파일: ctl.cpp 프로젝트: inspirer/history
void ReadConfig(char *cname)
{
  cout << "reading CTL : " << cname << " : ";
  FILE *fp;
  int line=1;

  fp=fopen(cname,"rb");
  if (fp!=NULL){

    char b[100],rd,st[200],*keyw,*keyv;st[0]=0;
    while((rd=fread(b,1,100,fp))!=0){
      for (int cn=0;cn<rd;cn++){
        if (b[cn]==13||b[cn]==10){
           if (b[cn]==13) line++;
           if (strchr(st,';')!=NULL) *strchr(st,';')=0;

           keyw=st;
           while(strlen(keyw)>0&&keyw[0]==' ') keyw++;
           if (*keyw!=0){
             keyv=strchr(keyw,' ');

             if (keyv==NULL&&strlen(keyw)>0){ cout << "line " << line;ErrorExit(51," : cfg error");}

             keyv[0]=0;keyv++;
             while(strlen(keyv)>0&&keyv[0]==' ') keyv++;
             while(strlen(keyv)>0&&keyv[strlen(keyv)-1]==' ') keyv[strlen(keyv)-1]=0;

             if (strlen(keyv)==0){ cout << "line " << line;ErrorExit(58," : cfg error");}

             DefineVar(keyw,keyv);
           }

           st[0]=0;

        } else {
           st[strlen(st)+1]=0;
           st[strlen(st)]=b[cn];
        }
      }
    }

    fclose(fp);
  } else ErrorExit(92,"FATAL: cfg not found");
  cout << "OK" << endl;

}
예제 #11
0
CFXViewport::CFXViewport()
{
	DefineVar("X Center", CVarFloat::CLASSNAME);
	DefineVar("Y Center", CVarFloat::CLASSNAME);
	DefineVar("Width",    CVarFloat::CLASSNAME);
	DefineVar("Height",   CVarFloat::CLASSNAME);
	DefineVar("Scissor",  CVarCombo::CLASSNAME);
	DefineVar("Aspect" ,  CVarFloat::CLASSNAME);

	// Set default values (mainly to have default values for the editor)

	((CVarFloat*)GetVar("X Center"))->SetConstant(0.5f);
	((CVarFloat*)GetVar("Y Center"))->SetConstant(0.5f);
	((CVarFloat*)GetVar("Width" ))->SetConstant(1.0f);
	((CVarFloat*)GetVar("Height"))->SetConstant(1.0f);
	((CVarFloat*)GetVar("Aspect"))->SetConstant(1.33f);

	((CVarCombo*)GetVar("Scissor"))->AddOption("No"); // default
	((CVarCombo*)GetVar("Scissor"))->AddOption("Yes");
}
예제 #12
0
CFXBillboardScene::CFXBillboardScene()
{
	DefineVar("Start Time",  CVarFloat::CLASSNAME);
	DefineVar("Speed",       CVarSpeed::CLASSNAME);
	DefineVar("Camera",      CVarString::CLASSNAME);
	DefineVar("Loop Length", CVarFloat::CLASSNAME);
	DefineVar("Loop Start",  CVarFloat::CLASSNAME);
	DefineVar("Render Mode", CVarCombo::CLASSNAME);

	DefineVar("Color",      CVarColor::CLASSNAME);
	DefineVar("Size",       CVarFloat::CLASSNAME);
	DefineVar("Alpha",      CVarFloat::CLASSNAME);
	DefineVar("Angle",      CVarFloat::CLASSNAME);
	DefineVar("Blend Mode", CVarCombo::CLASSNAME);
	DefineVar("Filtering",  CVarCombo::CLASSNAME);

	DefineResourceReference("Scene",   CResourceScene::CLASSNAME);
	DefineResourceReference("Texture", CResourceTexture2D::CLASSNAME);

	// Set combo options (the first added becomes the default value)

	((CVarCombo*)GetVar("Render Mode"))->AddOption("Full");
	((CVarCombo*)GetVar("Render Mode"))->AddOption("Solid");
	((CVarCombo*)GetVar("Render Mode"))->AddOption("Wire");

	((CVarCombo*)GetVar("Blend Mode"))->AddOption("Mult");
	((CVarCombo*)GetVar("Blend Mode"))->AddOption("Add");

	((CVarCombo*)GetVar("Filtering"))->AddOption("Yes");
	((CVarCombo*)GetVar("Filtering"))->AddOption("No");

	// Set the rest of default values

	((CVarFloat*)GetVar("Start Time" ))->LockConstant(true); // must be constant
	((CVarFloat*)GetVar("Start Time" ))->SetConstant(0.0f);
	((CVarSpeed*)GetVar("Speed"      ))->SetConstant(1.0f);
	((CVarFloat*)GetVar("Loop Length"))->SetConstant(-1.0f);
	((CVarFloat*)GetVar("Loop Start" ))->SetConstant(0.0f);

	((CVarColor*)GetVar("Color" ))->SetConstant(CVector3(1.0f, 1.0f, 1.0f));
	((CVarFloat*)GetVar("Size"  ))->SetConstant(1.0f);
	((CVarFloat*)GetVar("Alpha" ))->SetConstant(1.0f);
	((CVarFloat*)GetVar("Angle" ))->SetConstant(0.0f);

	// Define additional transformation variables

	DefineAddTransformVars(this);

	m_pResScene   = NULL;
	m_pResTexture = NULL;
	m_fAnimStart  = m_fAnimEnd = 0.0f;
}
CFXTransExplodingCubes::CFXTransExplodingCubes()
{
	DefineVar("X Cubes",          CVarInt::CLASSNAME);
	DefineVar("Y Cubes",          CVarInt::CLASSNAME);
	DefineVar("Z Depth",          CVarFloat::CLASSNAME);
	DefineVar("Seed",			  CVarInt::CLASSNAME);
	DefineVar("Time (0-1)",       CVarFloat::CLASSNAME);
	DefineVar("Tex Scale X",      CVarFloat::CLASSNAME);
	DefineVar("Tex Scale Y",      CVarFloat::CLASSNAME);
	DefineVar("Filtering",        CVarCombo::CLASSNAME);
	DefineVar("RenderTex Width" , CVarInt::CLASSNAME);
	DefineVar("RenderTex Height", CVarInt::CLASSNAME);
	DefineVar("Flat Color",       CVarColor::CLASSNAME);
	DefineVar("Start Speed X",    CVarFloat::CLASSNAME);
	DefineVar("Start Speed Y",    CVarFloat::CLASSNAME);
	DefineVar("Start Speed Z",    CVarFloat::CLASSNAME);
	DefineVar("Accel X",          CVarFloat::CLASSNAME);
	DefineVar("Accel Y",          CVarFloat::CLASSNAME);
	DefineVar("Accel Z",          CVarFloat::CLASSNAME);
	DefineVar("Assimetry",        CVarFloat::CLASSNAME);
	DefineVar("Max Rotation",     CVarFloat::CLASSNAME);
	DefineVar("Variation",        CVarFloat::CLASSNAME);

	// Set default values (mainly to have default values for the editor)

	((CVarInt*)GetVar("X Cubes"         ))->LockConstant(true);
	((CVarInt*)GetVar("X Cubes"         ))->SetConstant(10);
	((CVarInt*)GetVar("Y Cubes"         ))->LockConstant(true);
	((CVarInt*)GetVar("Y Cubes"         ))->SetConstant(10);
	((CVarFloat*)GetVar("Z Depth"       ))->LockConstant(true);
	((CVarFloat*)GetVar("Z Depth"       ))->SetConstant(0.01f);
	((CVarInt*)GetVar("Seed"            ))->LockConstant(true);
	((CVarInt*)GetVar("Seed"            ))->SetConstant(0);
	((CVarFloat*)GetVar("Time (0-1)"    ))->SetConstant(0.0f);
	((CVarFloat*)GetVar("Tex Scale X"   ))->SetConstant(1.0f);
	((CVarFloat*)GetVar("Tex Scale Y"   ))->SetConstant(1.0f);
	((CVarInt*)GetVar("RenderTex Width" ))->LockConstant(true);
	((CVarInt*)GetVar("RenderTex Width" ))->SetConstant(512);
	((CVarInt*)GetVar("RenderTex Height"))->LockConstant(true);
	((CVarInt*)GetVar("RenderTex Height"))->SetConstant(512);
	((CVarColor*)GetVar("Flat Color"    ))->SetConstant(CVector3(0.5f, 0.5f, 0.5f));
	((CVarFloat*)GetVar("Start Speed X" ))->SetConstant(0.0f);
	((CVarFloat*)GetVar("Start Speed X" ))->LockConstant(true);
	((CVarFloat*)GetVar("Start Speed Y" ))->SetConstant(-0.4f);
	((CVarFloat*)GetVar("Start Speed Y" ))->LockConstant(true);
	((CVarFloat*)GetVar("Start Speed Z" ))->SetConstant(0.0f);
	((CVarFloat*)GetVar("Start Speed Z" ))->LockConstant(true);
	((CVarFloat*)GetVar("Accel X"       ))->SetConstant(0.0f);
	((CVarFloat*)GetVar("Accel X"       ))->LockConstant(true);
	((CVarFloat*)GetVar("Accel Y"       ))->SetConstant(1.0f);
	((CVarFloat*)GetVar("Accel Y"       ))->LockConstant(true);
	((CVarFloat*)GetVar("Accel Z"       ))->SetConstant(0.0f);
	((CVarFloat*)GetVar("Accel Z"       ))->LockConstant(true);
	((CVarFloat*)GetVar("Assimetry"     ))->SetConstant(0.0f);
	((CVarFloat*)GetVar("Assimetry"     ))->LockConstant(true);
	((CVarFloat*)GetVar("Max Rotation"  ))->SetConstant(2000.0f);
	((CVarFloat*)GetVar("Max Rotation"  ))->LockConstant(true);
	((CVarFloat*)GetVar("Variation"     ))->SetConstant(0.0f);
	((CVarFloat*)GetVar("Variation"     ))->LockConstant(true);

	((CVarCombo*)GetVar("Filtering"))->AddOption("Yes"); // default
	((CVarCombo*)GetVar("Filtering"))->AddOption("No");

	GetVar("X Cubes"       )->ReloadFXOnChange(this);
	GetVar("Y Cubes"       )->ReloadFXOnChange(this);
	GetVar("Z Depth"       )->ReloadFXOnChange(this);
	GetVar("Seed"          )->ReloadFXOnChange(this);
	GetVar("Start Speed X" )->ReloadFXOnChange(this);
	GetVar("Start Speed Y" )->ReloadFXOnChange(this);
	GetVar("Start Speed Z" )->ReloadFXOnChange(this);
	GetVar("Accel X"       )->ReloadFXOnChange(this);
	GetVar("Accel Y"       )->ReloadFXOnChange(this);
	GetVar("Accel Z"       )->ReloadFXOnChange(this);
	GetVar("Assimetry"     )->ReloadFXOnChange(this);
	GetVar("Max Rotation"  )->ReloadFXOnChange(this);
	GetVar("Variation"     )->ReloadFXOnChange(this);
}
예제 #14
0
CFXMosaic::CFXMosaic()
{
	DefineVar("X Position",            CVarFloat::CLASSNAME);
	DefineVar("Y Position",            CVarFloat::CLASSNAME);
	DefineVar("Width",                 CVarFloat::CLASSNAME);
	DefineVar("Height",                CVarFloat::CLASSNAME);
	DefineVar("Scale",                 CVarFloat::CLASSNAME);
	DefineVar("Alpha",                 CVarFloat::CLASSNAME);
	DefineVar("Angle",                 CVarFloat::CLASSNAME);
	DefineVar("Blend Mode",            CVarCombo::CLASSNAME);
	DefineVar("Filtering",             CVarCombo::CLASSNAME);
	DefineVar("Tiles X",               CVarInt::CLASSNAME);
	DefineVar("Tiles Y",               CVarInt::CLASSNAME);
	DefineVar("Tile Source Width",     CVarInt::CLASSNAME);
	DefineVar("Tile Source Height",    CVarInt::CLASSNAME);
	DefineVar("Seed",                  CVarInt::CLASSNAME);
	DefineVar("Change Frequency",      CVarFloat::CLASSNAME);
	DefineVar("Change Freq Variation", CVarFloat::CLASSNAME);

	DefineResourceReference("Texture", CResourceTexture2D::CLASSNAME);

	// Set default values (mainly to have default values for the editor)

	((CVarFloat*)GetVar("X Position"           ))->SetConstant(0.5f);
	((CVarFloat*)GetVar("Y Position"           ))->SetConstant(0.5f);
	((CVarFloat*)GetVar("Width"                ))->SetConstant(1.0f);
	((CVarFloat*)GetVar("Height"               ))->SetConstant(1.0f);
	((CVarFloat*)GetVar("Scale"                ))->SetConstant(1.0f);
	((CVarFloat*)GetVar("Alpha"                ))->SetConstant(1.0f);
	((CVarFloat*)GetVar("Angle"                ))->SetConstant(0.0f);
	((CVarInt*  )GetVar("Tiles X"              ))->SetConstant(10);
	((CVarInt*  )GetVar("Tiles X"              ))->LockConstant(true);
	((CVarInt*  )GetVar("Tiles Y"              ))->SetConstant(8);
	((CVarInt*  )GetVar("Tiles Y"              ))->LockConstant(true);
	((CVarInt*  )GetVar("Tile Source Width"    ))->SetConstant(64);
	((CVarInt*  )GetVar("Tile Source Width"    ))->LockConstant(true);
	((CVarInt*  )GetVar("Tile Source Height"   ))->SetConstant(64);
	((CVarInt*  )GetVar("Tile Source Height"   ))->LockConstant(true);
	((CVarInt*  )GetVar("Seed"                 ))->SetConstant(0);
	((CVarInt*  )GetVar("Seed"                 ))->LockConstant(true);
	((CVarFloat*)GetVar("Change Frequency"     ))->SetConstant(5.0f);
	((CVarFloat*)GetVar("Change Freq Variation"))->SetConstant(0.0f);

	((CVarCombo*)GetVar("Blend Mode"))->AddOption("Mult"); // default
	((CVarCombo*)GetVar("Blend Mode"))->AddOption("Add");
	((CVarCombo*)GetVar("Blend Mode"))->AddOption("Color Mult");

	((CVarCombo*)GetVar("Filtering"))->AddOption("Yes"); // default
	((CVarCombo*)GetVar("Filtering"))->AddOption("No");

	GetVar("Tiles X")->ReloadFXOnChange(this);
	GetVar("Tiles Y")->ReloadFXOnChange(this);
	GetVar("Seed"   )->ReloadFXOnChange(this);

	m_pResTexture = NULL;
	m_fLastUpdate = 0.0f;
}
예제 #15
0
CFXRings::CFXRings()
{
	DefineVar("Alpha",                  CVarFloat::CLASSNAME);
	DefineVar("Horizontal Ring Count",  CVarInt::CLASSNAME);
	DefineVar("Horizontal Ring Radius", CVarFloat::CLASSNAME);
	DefineVar("Horizontal Ring Width",  CVarFloat::CLASSNAME);
	DefineVar("Horizontal Variation",   CVarFloat::CLASSNAME);
	DefineVar("Vertical Ring Count",    CVarInt::CLASSNAME);
	DefineVar("Vertical Ring Radius",   CVarFloat::CLASSNAME);
	DefineVar("Vertical Ring Width",    CVarFloat::CLASSNAME);
	DefineVar("Vertical Variation",     CVarFloat::CLASSNAME);
	DefineVar("Oscillation Amplitude",  CVarFloat::CLASSNAME);
	DefineVar("Oscillation Frequency",  CVarFloat::CLASSNAME);
	DefineVar("Ring Subdivisions",      CVarInt::CLASSNAME);
	DefineVar("Cylinder Height",        CVarFloat::CLASSNAME);
	DefineVar("Rotation Speed",         CVarFloat::CLASSNAME);
	DefineVar("Tile U",                 CVarFloat::CLASSNAME);
	DefineVar("Tile V",                 CVarFloat::CLASSNAME);
	DefineVar("Seed",                   CVarInt::CLASSNAME);
	DefineVar("Blend Mode",             CVarCombo::CLASSNAME);
	DefineVar("Keep Previous Camera",   CVarCombo::CLASSNAME);

	DefineResourceReference("Horizontal Texture", CResourceTexture2D::CLASSNAME);
	DefineResourceReference("Vertical Texture",   CResourceTexture2D::CLASSNAME);

	// Set default values (mainly to have default values for the editor)

	((CVarFloat*)GetVar("Alpha"                 ))->SetConstant(1.0f);
	((CVarInt*)  GetVar("Horizontal Ring Count" ))->SetConstant(8);
	((CVarInt*)  GetVar("Horizontal Ring Count" ))->LockConstant(true);
	((CVarFloat*)GetVar("Horizontal Ring Radius"))->SetConstant(100.0f);
	((CVarFloat*)GetVar("Horizontal Ring Width" ))->SetConstant(10.0f);
	((CVarFloat*)GetVar("Horizontal Variation"  ))->SetConstant(0.2f);
	((CVarFloat*)GetVar("Horizontal Variation"  ))->LockConstant(true);
	((CVarInt*)  GetVar("Vertical Ring Count"   ))->SetConstant(8);
	((CVarInt*)  GetVar("Vertical Ring Count"   ))->LockConstant(true);
	((CVarFloat*)GetVar("Vertical Ring Radius"  ))->SetConstant(100.0f);
	((CVarFloat*)GetVar("Vertical Ring Width"   ))->SetConstant(5.0f);
	((CVarFloat*)GetVar("Vertical Variation"    ))->SetConstant(0.2f);
	((CVarFloat*)GetVar("Vertical Variation"    ))->LockConstant(true);

	((CVarInt*)  GetVar("Ring Subdivisions"     ))->SetConstant(100);
	((CVarInt*)  GetVar("Ring Subdivisions"     ))->LockConstant(true);
	((CVarFloat*)GetVar("Oscillation Amplitude" ))->SetConstant(0);
	((CVarFloat*)GetVar("Oscillation Frequency" ))->SetConstant(1.0f);
	((CVarFloat*)GetVar("Cylinder Height"       ))->SetConstant(200.0f);
	((CVarFloat*)GetVar("Rotation Speed"        ))->SetConstant(0.05f);
	((CVarFloat*)GetVar("Tile U"                ))->SetConstant(1.0f);
	((CVarFloat*)GetVar("Tile V"                ))->SetConstant(1.0f);
	((CVarInt*)  GetVar("Seed"                  ))->SetConstant(0);
	((CVarInt*)  GetVar("Seed"                  ))->LockConstant(true);

	((CVarCombo*)GetVar("Blend Mode"))->AddOption("Add"); // default
	((CVarCombo*)GetVar("Blend Mode"))->AddOption("Alpha Blend");
	((CVarCombo*)GetVar("Blend Mode"))->AddOption("Color Mult");

	((CVarCombo*)GetVar("Keep Previous Camera"))->AddOption("No");  // default
	((CVarCombo*)GetVar("Keep Previous Camera"))->AddOption("Yes");

	GetVar("Ring Subdivisions"    )->ReloadFXOnChange(this);
	GetVar("Horizontal Ring Count")->ReloadFXOnChange(this);
	GetVar("Horizontal Variation" )->ReloadFXOnChange(this);
	GetVar("Vertical Ring Count"  )->ReloadFXOnChange(this);
	GetVar("Vertical Variation"   )->ReloadFXOnChange(this);
	GetVar("Seed"                 )->ReloadFXOnChange(this);

	DefineAddTransformVars(this);

	m_pResHorTexture  = NULL;
	m_pResVertTexture = NULL;

	m_pv3Circle     = NULL;
	m_nSubdivisions = 0;

	m_pv3MeshVertices = NULL;
	m_pv2MeshMapping  = NULL;
	m_pnMeshFaceList  = NULL;
}