#include "EmberPch.h" #include "EmberDefines.h" #include "Isaac.h" namespace EmberNs { template<> unique_ptr> QTIsaac::GlobalRand = unique_ptr>(new QTIsaac()); template<> unique_ptr QTIsaac::s_CS = unique_ptr(new recursive_mutex()); template EMBER_API class QTIsaac; } #include "Curves.h" #include "Ember.h" #include "Utils.h" #include "Iterator.h" #include "Palette.h" #include "PaletteList.h" #include "Point.h" #include "VarFuncs.h" #include "Variation.h" #include "Variations01.h" #include "Variations02.h" #include "Variations03.h" #include "Variations04.h" #include "Variations05.h" #include "Variations06.h" #include "Variations07.h" #include "VariationsDC.h" #include "VariationList.h" #include "Affine2D.h" #include "Xform.h" #include "EmberMotion.h" #include "EmberToXml.h" #include "XmlToEmber.h" #include "SpatialFilter.h" #include "DensityFilter.h" #include "TemporalFilter.h" #include "Interpolate.h" #include "Renderer.h" #include "Timing.h" #include "SheepTools.h" /// /// Explicit instantiation of all templated classes which aren't implemented in cpp files. /// All new templated classes, such as new variations, must be added here. /// Additional instances of static class member variables. /// namespace EmberNs { bool Timing::m_TimingInit = false; uint Timing::m_ProcessorCount; #define EXPORTPREPOSTREGVAR(varName, T) \ template class varName##Variation; \ template class Pre##varName##Variation; \ template class Post##varName##Variation; #define EXPORT_SINGLE_TYPE_EMBER(T) \ template<> bool XmlToEmber::m_Init = false; \ template<> vector XmlToEmber::m_FlattenNames = vector(); \ template<> unordered_map XmlToEmber::m_BadParamNames = unordered_map(); \ template<> vector, vector>> XmlToEmber::m_BadVariationNames = vector, vector>>(); \ template EMBER_API class Point; \ template EMBER_API struct Color; \ template EMBER_API class Palette; \ template EMBER_API class PaletteList; \ template EMBER_API class Iterator; \ template EMBER_API class StandardIterator; \ template EMBER_API class XaosIterator; \ template EMBER_API class Xform; \ template EMBER_API class MotionParam; \ template EMBER_API class EmberMotion; \ template EMBER_API class IteratorHelper; \ template EMBER_API class VarFuncs; \ template EMBER_API class Variation; \ template EMBER_API class ParamWithName; \ template EMBER_API class ParametricVariation; \ EXPORTPREPOSTREGVAR(Linear, T) \ EXPORTPREPOSTREGVAR(Sinusoidal, T) \ EXPORTPREPOSTREGVAR(Spherical, T) \ EXPORTPREPOSTREGVAR(Swirl, T) \ EXPORTPREPOSTREGVAR(Horseshoe, T) \ EXPORTPREPOSTREGVAR(Polar, T) \ EXPORTPREPOSTREGVAR(Handkerchief, T) \ EXPORTPREPOSTREGVAR(Heart, T) \ EXPORTPREPOSTREGVAR(Disc, T) \ EXPORTPREPOSTREGVAR(Spiral, T) \ EXPORTPREPOSTREGVAR(Hyperbolic, T) \ EXPORTPREPOSTREGVAR(Diamond, T) \ EXPORTPREPOSTREGVAR(Ex, T) \ EXPORTPREPOSTREGVAR(Julia, T) \ EXPORTPREPOSTREGVAR(Bent, T) \ EXPORTPREPOSTREGVAR(Waves, T) \ EXPORTPREPOSTREGVAR(Fisheye, T) \ EXPORTPREPOSTREGVAR(Popcorn, T) \ EXPORTPREPOSTREGVAR(Exponential, T) \ EXPORTPREPOSTREGVAR(Power, T) \ EXPORTPREPOSTREGVAR(Cosine, T) \ EXPORTPREPOSTREGVAR(Rings, T) \ EXPORTPREPOSTREGVAR(Fan, T) \ EXPORTPREPOSTREGVAR(Blob, T) \ EXPORTPREPOSTREGVAR(Pdj, T) \ EXPORTPREPOSTREGVAR(Fan2, T) \ EXPORTPREPOSTREGVAR(Rings2, T) \ EXPORTPREPOSTREGVAR(Eyefish, T) \ EXPORTPREPOSTREGVAR(Bubble, T) \ EXPORTPREPOSTREGVAR(Cylinder, T) \ EXPORTPREPOSTREGVAR(Perspective, T) \ EXPORTPREPOSTREGVAR(Noise, T) \ EXPORTPREPOSTREGVAR(JuliaNGeneric, T) \ EXPORTPREPOSTREGVAR(JuliaScope, T) \ EXPORTPREPOSTREGVAR(Blur, T) \ EXPORTPREPOSTREGVAR(GaussianBlur, T) \ EXPORTPREPOSTREGVAR(RadialBlur, T) \ EXPORTPREPOSTREGVAR(Pie, T) \ EXPORTPREPOSTREGVAR(Ngon, T) \ EXPORTPREPOSTREGVAR(Curl, T) \ EXPORTPREPOSTREGVAR(Rectangles, T) \ EXPORTPREPOSTREGVAR(Arch, T) \ EXPORTPREPOSTREGVAR(Tangent, T) \ EXPORTPREPOSTREGVAR(Square, T) \ EXPORTPREPOSTREGVAR(Rays, T) \ EXPORTPREPOSTREGVAR(Rays1, T) \ EXPORTPREPOSTREGVAR(Rays2, T) \ EXPORTPREPOSTREGVAR(Rays3, T) \ EXPORTPREPOSTREGVAR(Blade, T) \ EXPORTPREPOSTREGVAR(Secant2, T) \ EXPORTPREPOSTREGVAR(TwinTrian, T) \ EXPORTPREPOSTREGVAR(Cross, T) \ EXPORTPREPOSTREGVAR(Disc2, T) \ EXPORTPREPOSTREGVAR(SuperShape, T) \ EXPORTPREPOSTREGVAR(Flower, T) \ EXPORTPREPOSTREGVAR(Conic, T) \ EXPORTPREPOSTREGVAR(Parabola, T) \ EXPORTPREPOSTREGVAR(Bent2, T) \ EXPORTPREPOSTREGVAR(Bipolar, T) \ EXPORTPREPOSTREGVAR(Boarders, T) \ EXPORTPREPOSTREGVAR(Butterfly, T) \ EXPORTPREPOSTREGVAR(Cell, T) \ EXPORTPREPOSTREGVAR(Cpow, T) \ EXPORTPREPOSTREGVAR(Curve, T) \ EXPORTPREPOSTREGVAR(Edisc, T) \ EXPORTPREPOSTREGVAR(Elliptic, T) \ EXPORTPREPOSTREGVAR(Escher, T) \ EXPORTPREPOSTREGVAR(Foci, T) \ EXPORTPREPOSTREGVAR(LazySusan, T) \ EXPORTPREPOSTREGVAR(Loonie, T) \ EXPORTPREPOSTREGVAR(Modulus, T) \ EXPORTPREPOSTREGVAR(Oscilloscope, T) \ EXPORTPREPOSTREGVAR(Polar2, T) \ EXPORTPREPOSTREGVAR(Popcorn2, T) \ EXPORTPREPOSTREGVAR(Scry, T) \ EXPORTPREPOSTREGVAR(Separation, T) \ EXPORTPREPOSTREGVAR(Split, T) \ EXPORTPREPOSTREGVAR(Splits, T) \ EXPORTPREPOSTREGVAR(Stripes, T) \ EXPORTPREPOSTREGVAR(Wedge, T) \ EXPORTPREPOSTREGVAR(WedgeJulia, T) \ EXPORTPREPOSTREGVAR(WedgeSph, T) \ EXPORTPREPOSTREGVAR(Whorl, T) \ EXPORTPREPOSTREGVAR(Waves2, T) \ EXPORTPREPOSTREGVAR(Exp, T) \ EXPORTPREPOSTREGVAR(Log, T) \ EXPORTPREPOSTREGVAR(Sin, T) \ EXPORTPREPOSTREGVAR(Cos, T) \ EXPORTPREPOSTREGVAR(Tan, T) \ EXPORTPREPOSTREGVAR(Sec, T) \ EXPORTPREPOSTREGVAR(Csc, T) \ EXPORTPREPOSTREGVAR(Cot, T) \ EXPORTPREPOSTREGVAR(Sinh, T) \ EXPORTPREPOSTREGVAR(Cosh, T) \ EXPORTPREPOSTREGVAR(Tanh, T) \ EXPORTPREPOSTREGVAR(Sech, T) \ EXPORTPREPOSTREGVAR(Csch, T) \ EXPORTPREPOSTREGVAR(Coth, T) \ EXPORTPREPOSTREGVAR(Auger, T) \ EXPORTPREPOSTREGVAR(Flux, T) \ EXPORTPREPOSTREGVAR(Hemisphere, T) \ EXPORTPREPOSTREGVAR(Epispiral, T) \ EXPORTPREPOSTREGVAR(Bwraps, T) \ EXPORTPREPOSTREGVAR(Extrude, T) \ EXPORTPREPOSTREGVAR(BlurCircle, T) \ EXPORTPREPOSTREGVAR(BlurZoom, T) \ EXPORTPREPOSTREGVAR(BlurPixelize, T) \ EXPORTPREPOSTREGVAR(Crop, T) \ EXPORTPREPOSTREGVAR(BCircle, T) \ EXPORTPREPOSTREGVAR(BlurLinear, T) \ EXPORTPREPOSTREGVAR(BlurSquare, T) \ EXPORTPREPOSTREGVAR(Boarders2, T) \ EXPORTPREPOSTREGVAR(Cardioid, T) \ EXPORTPREPOSTREGVAR(Checks, T) \ EXPORTPREPOSTREGVAR(Circlize, T) \ EXPORTPREPOSTREGVAR(Circlize2, T) \ EXPORTPREPOSTREGVAR(CosWrap, T) \ EXPORTPREPOSTREGVAR(DeltaA, T) \ EXPORTPREPOSTREGVAR(Expo, T) \ EXPORTPREPOSTREGVAR(FDisc, T) \ EXPORTPREPOSTREGVAR(Fibonacci, T) \ EXPORTPREPOSTREGVAR(Fibonacci2, T) \ EXPORTPREPOSTREGVAR(Glynnia, T) \ EXPORTPREPOSTREGVAR(GridOut, T) \ EXPORTPREPOSTREGVAR(Hole, T) \ EXPORTPREPOSTREGVAR(Hypertile, T) \ EXPORTPREPOSTREGVAR(Hypertile1, T) \ EXPORTPREPOSTREGVAR(Hypertile2, T) \ EXPORTPREPOSTREGVAR(Hypertile3D, T) \ EXPORTPREPOSTREGVAR(Hypertile3D1, T) \ EXPORTPREPOSTREGVAR(Hypertile3D2, T) \ EXPORTPREPOSTREGVAR(IDisc, T) \ EXPORTPREPOSTREGVAR(Julian2, T) \ EXPORTPREPOSTREGVAR(JuliaQ, T) \ EXPORTPREPOSTREGVAR(Murl, T) \ EXPORTPREPOSTREGVAR(Murl2, T) \ EXPORTPREPOSTREGVAR(NPolar, T) \ EXPORTPREPOSTREGVAR(Ortho, T) \ EXPORTPREPOSTREGVAR(Poincare, T) \ EXPORTPREPOSTREGVAR(Poincare3D, T) \ EXPORTPREPOSTREGVAR(Polynomial, T) \ EXPORTPREPOSTREGVAR(PSphere, T) \ EXPORTPREPOSTREGVAR(Rational3, T) \ EXPORTPREPOSTREGVAR(Ripple, T) \ EXPORTPREPOSTREGVAR(Sigmoid, T) \ EXPORTPREPOSTREGVAR(SinusGrid, T) \ EXPORTPREPOSTREGVAR(Stwin, T) \ EXPORTPREPOSTREGVAR(TwoFace, T) \ EXPORTPREPOSTREGVAR(Unpolar, T) \ EXPORTPREPOSTREGVAR(WavesN, T) \ EXPORTPREPOSTREGVAR(XHeart, T) \ EXPORTPREPOSTREGVAR(Barycentroid, T) \ EXPORTPREPOSTREGVAR(BiSplit, T) \ EXPORTPREPOSTREGVAR(Crescents, T) \ EXPORTPREPOSTREGVAR(Mask, T) \ EXPORTPREPOSTREGVAR(Cpow2, T) \ EXPORTPREPOSTREGVAR(Curl3D, T) \ EXPORTPREPOSTREGVAR(Disc3D, T) \ EXPORTPREPOSTREGVAR(Funnel, T) \ EXPORTPREPOSTREGVAR(Linear3D, T) \ EXPORTPREPOSTREGVAR(PowBlock, T) \ EXPORTPREPOSTREGVAR(Squirrel, T) \ EXPORTPREPOSTREGVAR(Ennepers, T) \ EXPORTPREPOSTREGVAR(SphericalN, T) \ EXPORTPREPOSTREGVAR(Kaleidoscope, T) \ EXPORTPREPOSTREGVAR(GlynnSim1, T) \ EXPORTPREPOSTREGVAR(GlynnSim2, T) \ EXPORTPREPOSTREGVAR(GlynnSim3, T) \ EXPORTPREPOSTREGVAR(Starblur, T) \ EXPORTPREPOSTREGVAR(Sineblur, T) \ EXPORTPREPOSTREGVAR(Circleblur, T) \ EXPORTPREPOSTREGVAR(CropN, T) \ EXPORTPREPOSTREGVAR(ShredRad, T) \ EXPORTPREPOSTREGVAR(Blob2, T) \ EXPORTPREPOSTREGVAR(Julia3D, T) \ EXPORTPREPOSTREGVAR(Julia3Dz, T) \ EXPORTPREPOSTREGVAR(LinearT, T) \ EXPORTPREPOSTREGVAR(LinearT3D, T) \ EXPORTPREPOSTREGVAR(Ovoid, T) \ EXPORTPREPOSTREGVAR(Ovoid3D, T) \ EXPORTPREPOSTREGVAR(Spirograph, T) \ EXPORTPREPOSTREGVAR(Petal, T) \ EXPORTPREPOSTREGVAR(RoundSpher, T) \ EXPORTPREPOSTREGVAR(RoundSpher3D, T) \ EXPORTPREPOSTREGVAR(SpiralWing, T) \ EXPORTPREPOSTREGVAR(Squarize, T) \ EXPORTPREPOSTREGVAR(Sschecks, T) \ EXPORTPREPOSTREGVAR(PhoenixJulia, T) \ EXPORTPREPOSTREGVAR(Mobius, T) \ EXPORTPREPOSTREGVAR(MobiusN, T) \ EXPORTPREPOSTREGVAR(MobiusStrip, T) \ EXPORTPREPOSTREGVAR(Lissajous, T) \ EXPORTPREPOSTREGVAR(Svf, T) \ EXPORTPREPOSTREGVAR(Target, T) \ EXPORTPREPOSTREGVAR(Taurus, T) \ EXPORTPREPOSTREGVAR(Collideoscope, T) \ EXPORTPREPOSTREGVAR(BMod, T) \ EXPORTPREPOSTREGVAR(BSwirl, T) \ EXPORTPREPOSTREGVAR(BTransform, T) \ EXPORTPREPOSTREGVAR(BCollide, T) \ EXPORTPREPOSTREGVAR(Eclipse, T) \ EXPORTPREPOSTREGVAR(FlipCircle, T) \ EXPORTPREPOSTREGVAR(FlipY, T) \ EXPORTPREPOSTREGVAR(ECollide, T) \ EXPORTPREPOSTREGVAR(EJulia, T) \ EXPORTPREPOSTREGVAR(EMod, T) \ EXPORTPREPOSTREGVAR(EMotion, T) \ EXPORTPREPOSTREGVAR(EPush, T) \ EXPORTPREPOSTREGVAR(ERotate, T) \ EXPORTPREPOSTREGVAR(EScale, T) \ EXPORTPREPOSTREGVAR(ESwirl, T) \ EXPORTPREPOSTREGVAR(LazyTravis, T) \ EXPORTPREPOSTREGVAR(Squish, T) \ EXPORTPREPOSTREGVAR(Circus, T) \ EXPORTPREPOSTREGVAR(Tancos, T) \ EXPORTPREPOSTREGVAR(Rippled, T) \ EXPORTPREPOSTREGVAR(Flatten, T) \ EXPORTPREPOSTREGVAR(Zblur, T) \ EXPORTPREPOSTREGVAR(Blur3D, T) \ EXPORTPREPOSTREGVAR(ZScale, T) \ EXPORTPREPOSTREGVAR(ZTranslate, T) \ EXPORTPREPOSTREGVAR(ZCone, T) \ EXPORTPREPOSTREGVAR(RotateX, T) \ EXPORTPREPOSTREGVAR(RotateY, T) \ EXPORTPREPOSTREGVAR(RotateZ, T) \ EXPORTPREPOSTREGVAR(MirrorX, T) \ EXPORTPREPOSTREGVAR(MirrorY, T) \ EXPORTPREPOSTREGVAR(MirrorZ, T) \ EXPORTPREPOSTREGVAR(Depth, T) \ EXPORTPREPOSTREGVAR(RBlur, T) \ EXPORTPREPOSTREGVAR(JuliaNab, T) \ EXPORTPREPOSTREGVAR(Sintrange, T) \ EXPORTPREPOSTREGVAR(Voron, T) \ EXPORTPREPOSTREGVAR(Waffle, T) \ EXPORTPREPOSTREGVAR(Square3D, T) \ EXPORTPREPOSTREGVAR(SuperShape3D, T) \ EXPORTPREPOSTREGVAR(Sphyp3D, T) \ EXPORTPREPOSTREGVAR(Circlecrop, T) \ EXPORTPREPOSTREGVAR(Julian3Dx, T) \ EXPORTPREPOSTREGVAR(Fourth, T) \ EXPORTPREPOSTREGVAR(Mobiq, T) \ EXPORTPREPOSTREGVAR(Spherivoid, T) \ EXPORTPREPOSTREGVAR(Farblur, T) \ EXPORTPREPOSTREGVAR(CurlSP, T) \ EXPORTPREPOSTREGVAR(Heat, T) \ EXPORTPREPOSTREGVAR(Interference2, T) \ EXPORTPREPOSTREGVAR(Sinq, T) \ EXPORTPREPOSTREGVAR(Sinhq, T) \ EXPORTPREPOSTREGVAR(Secq, T) \ EXPORTPREPOSTREGVAR(Sechq, T) \ EXPORTPREPOSTREGVAR(Tanq, T) \ EXPORTPREPOSTREGVAR(Tanhq, T) \ EXPORTPREPOSTREGVAR(Cosq, T) \ EXPORTPREPOSTREGVAR(Coshq, T) \ EXPORTPREPOSTREGVAR(Cotq, T) \ EXPORTPREPOSTREGVAR(Cothq, T) \ EXPORTPREPOSTREGVAR(Cscq, T) \ EXPORTPREPOSTREGVAR(Cschq, T) \ EXPORTPREPOSTREGVAR(Estiq, T) \ EXPORTPREPOSTREGVAR(Loq, T) \ EXPORTPREPOSTREGVAR(Curvature, T) \ EXPORTPREPOSTREGVAR(Qode, T) \ EXPORTPREPOSTREGVAR(BlurHeart, T) \ EXPORTPREPOSTREGVAR(Truchet, T) \ EXPORTPREPOSTREGVAR(Gdoffs, T) \ EXPORTPREPOSTREGVAR(Octagon, T) \ EXPORTPREPOSTREGVAR(Trade, T) \ EXPORTPREPOSTREGVAR(Juliac, T) \ EXPORTPREPOSTREGVAR(Blade3D, T) \ EXPORTPREPOSTREGVAR(Blob3D, T) \ EXPORTPREPOSTREGVAR(Blocky, T) \ EXPORTPREPOSTREGVAR(Bubble2, T) \ EXPORTPREPOSTREGVAR(CircleLinear, T) \ EXPORTPREPOSTREGVAR(CircleRand, T) \ EXPORTPREPOSTREGVAR(CircleTrans1, T) \ EXPORTPREPOSTREGVAR(Cubic3D, T) \ EXPORTPREPOSTREGVAR(CubicLattice3D, T) \ EXPORTPREPOSTREGVAR(Foci3D, T) \ EXPORTPREPOSTREGVAR(Ho, T) \ EXPORTPREPOSTREGVAR(Julia3Dq, T) \ EXPORTPREPOSTREGVAR(Line, T) \ EXPORTPREPOSTREGVAR(Loonie2, T) \ EXPORTPREPOSTREGVAR(Loonie3, T) \ EXPORTPREPOSTREGVAR(Loonie3D, T) \ EXPORTPREPOSTREGVAR(Mcarpet, T) \ EXPORTPREPOSTREGVAR(Waves23D, T) \ EXPORTPREPOSTREGVAR(Pie3D, T) \ EXPORTPREPOSTREGVAR(Popcorn23D, T) \ EXPORTPREPOSTREGVAR(Sinusoidal3D, T) \ EXPORTPREPOSTREGVAR(Scry3D, T) \ EXPORTPREPOSTREGVAR(Shredlin, T) \ EXPORTPREPOSTREGVAR(SplitBrdr, T) \ EXPORTPREPOSTREGVAR(Wdisc, T) \ EXPORTPREPOSTREGVAR(Falloff, T) \ EXPORTPREPOSTREGVAR(Falloff2, T) \ EXPORTPREPOSTREGVAR(Falloff3, T) \ EXPORTPREPOSTREGVAR(Xtrb, T) \ EXPORTPREPOSTREGVAR(Hexaplay3D, T) \ EXPORTPREPOSTREGVAR(Hexnix3D, T) \ EXPORTPREPOSTREGVAR(Hexcrop, T) \ EXPORTPREPOSTREGVAR(Hexes, T) \ EXPORTPREPOSTREGVAR(Nblur, T) \ EXPORTPREPOSTREGVAR(Octapol, T) \ EXPORTPREPOSTREGVAR(Crob, T) \ EXPORTPREPOSTREGVAR(BubbleT3D, T) \ EXPORTPREPOSTREGVAR(Synth, T) \ EXPORTPREPOSTREGVAR(Crackle, T) \ EXPORTPREPOSTREGVAR(Erf, T) \ EXPORTPREPOSTREGVAR(Xerf, T) \ EXPORTPREPOSTREGVAR(W, T) \ EXPORTPREPOSTREGVAR(X, T) \ EXPORTPREPOSTREGVAR(Y, T) \ EXPORTPREPOSTREGVAR(Z, T) \ EXPORTPREPOSTREGVAR(Splits3D, T) \ EXPORTPREPOSTREGVAR(Waves2B, T) \ EXPORTPREPOSTREGVAR(JacCn, T) \ EXPORTPREPOSTREGVAR(JacDn, T) \ EXPORTPREPOSTREGVAR(JacSn, T) \ EXPORTPREPOSTREGVAR(PressureWave, T) \ EXPORTPREPOSTREGVAR(Gamma, T) \ EXPORTPREPOSTREGVAR(PRose3D, T) \ EXPORTPREPOSTREGVAR(LogDB, T) \ EXPORTPREPOSTREGVAR(CircleSplit, T) \ EXPORTPREPOSTREGVAR(Cylinder2, T) \ EXPORTPREPOSTREGVAR(TileLog, T) \ EXPORTPREPOSTREGVAR(TruchetFill, T) \ EXPORTPREPOSTREGVAR(Waves2Radial, T) \ template EMBER_API class PostSmartcropVariation; /*Only implemented as post.*/ \ EXPORTPREPOSTREGVAR(DCBubble, T) \ EXPORTPREPOSTREGVAR(DCCarpet, T) \ EXPORTPREPOSTREGVAR(DCCube, T) \ EXPORTPREPOSTREGVAR(DCCylinder, T) \ EXPORTPREPOSTREGVAR(DCGridOut, T) \ EXPORTPREPOSTREGVAR(DCLinear, T) \ EXPORTPREPOSTREGVAR(DCPerlin, T) \ EXPORTPREPOSTREGVAR(DCZTransl, T) \ EXPORTPREPOSTREGVAR(DCTriangle, T) \ template EMBER_API class VariationList; \ template EMBER_API class SpatialFilter; \ template EMBER_API class GaussianFilter; \ template EMBER_API class HermiteFilter; \ template EMBER_API class BoxFilter; \ template EMBER_API class TriangleFilter; \ template EMBER_API class BellFilter; \ template EMBER_API class BsplineFilter; \ template EMBER_API class MitchellFilter; \ template EMBER_API class BlackmanFilter; \ template EMBER_API class CatromFilter; \ template EMBER_API class HanningFilter; \ template EMBER_API class HammingFilter; \ template EMBER_API class Lanczos3Filter; \ template EMBER_API class Lanczos2Filter; \ template EMBER_API class QuadraticFilter; \ template EMBER_API class DensityFilter; \ template EMBER_API class TemporalFilter; \ template EMBER_API class ExpTemporalFilter; \ template EMBER_API class GaussianTemporalFilter; \ template EMBER_API class BoxTemporalFilter; \ template EMBER_API class SpatialFilterCreator; \ template EMBER_API class TemporalFilterCreator; \ template EMBER_API class Interpolater; \ template EMBER_API class Ember; \ template EMBER_API class CarToRas; \ template EMBER_API class Curves; \ template EMBER_API class XmlToEmber; \ template EMBER_API class EmberToXml; #define EXPORT_TWO_TYPE_EMBER(T, bucketT) \ template EMBER_API class SheepTools; EXPORT_SINGLE_TYPE_EMBER(float) EXPORT_TWO_TYPE_EMBER(float, float) #ifdef DO_DOUBLE EXPORT_SINGLE_TYPE_EMBER(double) EXPORT_TWO_TYPE_EMBER(double, float) #endif }