Texture information.
{
Float lenxinv=0.0,lenyinv=0.0;
if (tdp->
lenx!=0.0) lenxinv = 1.0/tdp->
lenx;
if (tdp->
leny!=0.0) lenyinv = 1.0/tdp->
leny;
{
{
return true;
}
{
if (sq==0.0)
{
else
}
else
{
if (d.
z<0.0) uv->
x = 1.0-uv->
x;
if (tdp->
lenx>0.0 && uv->
x<0.0)
else if (tdp->
lenx<0.0 && uv->
x>0.0)
}
uv->
y = -(uv->
y+tdp->
oy)*lenyinv;
break;
}
{
if (sq==0.0)
{
else
}
else
{
if (d.
z<0.0) uv->
x = 1.0-uv->
x;
}
uv->
x = (0.5 + 0.5*cs*uv->
y - tdp->
ox)*lenxinv;
uv->
y = (0.5 + 0.5*sn*uv->
y - tdp->
oy)*lenyinv;
break;
}
{
if (sq==0.0)
else
{
if (d.
z<0.0) uv->
x = 1.0-uv->
x;
if (tdp->
lenx>0.0 && uv->
x<0.0)
else if (tdp->
lenx<0.0 && uv->
x>0.0)
}
uv->
y = -(d.
y*0.5+tdp->
oy)*lenyinv;
break;
}
{
uv->
x = (d.
x*0.5-tdp->
ox)*lenxinv;
uv->
y = -(d.
y*0.5+tdp->
oy)*lenyinv;
break;
}
{
{
dir = 0;
else
dir = 2;
}
else
{
dir = 1;
else
dir = 2;
}
switch (dir)
{
case 0:
{
uv->
x = (-d.
z*0.5-tdp->
ox)*lenxinv;
else
uv->
x = ( d.
z*0.5-tdp->
ox)*lenxinv;
uv->
y = -(d.
y*0.5+tdp->
oy)*lenyinv;
break;
}
case 1:
{
uv->
y = ( d.
z*0.5-tdp->
oy)*lenyinv;
else
uv->
y = (-d.
z*0.5-tdp->
oy)*lenyinv;
uv->
x = (d.
x*0.5-tdp->
ox)*lenxinv;
break;
}
case 2:
{
uv->
x = ( d.
x*0.5-tdp->
ox)*lenxinv;
else
uv->
x = (-d.
x*0.5-tdp->
ox)*lenxinv;
uv->
y = -(d.
y*0.5+tdp->
oy)*lenyinv;
break;
}
}
break;
}
{
sd->
GetXY(&curr_x,&curr_y,&scl);
break;
}
{
else
break;
}
}
return true;
else
return uv->
x>=0.0 && uv->
x<=1.0 && uv->
y>=0.0 && uv->
y<=1.0;
}
PyObject PyObject * v
Definition: abstract.h:297
const Py_UNICODE size_t n
Definition: unicodeobject.h:1184
unsigned char * p
Definition: floatobject.h:87
maxon::Bool Bool
Definition: ge_sys_math.h:51
maxon::Int32 Int32
Definition: ge_sys_math.h:56
maxon::Float Float
Definition: ge_sys_math.h:62
#define TEX_TILE
Texture tile enabled.
Definition: c4d_shader.h:23
#define P_UVW
UVW.
Definition: c4d_raytrace.h:29
#define P_FRONTAL
Frontal.
Definition: c4d_raytrace.h:27
#define P_VOLUMESHADER
Volume.
Definition: c4d_raytrace.h:32
#define P_SPATIAL
Spatial.
Definition: c4d_raytrace.h:28
#define P_CUBIC
Cubic.
Definition: c4d_raytrace.h:26
#define P_SPHERICAL
Spherical.
Definition: c4d_raytrace.h:23
#define P_CYLINDRICAL
Cylindrical.
Definition: c4d_raytrace.h:24
#define P_SHRINKWRAP
Shrinkwrap.
Definition: c4d_raytrace.h:30
#define P_FLAT
Flat.
Definition: c4d_raytrace.h:25
static constexpr Float64 PI2
floating point constant: 2.0 * PI
Definition: apibasemath.h:118
Float32 ATan(Float32 val)
Definition: apibasemath.h:150
Float32 Sqrt(Float32 val)
Definition: apibasemath.h:168
Float32 Abs(Float32 val)
Definition: apibasemath.h:195
void SinCos(Float32 r, Float32 &sn, Float32 &cs)
Definition: apibasemath.h:270
Float32 ACos(Float32 val)
Calculates arccosine. The input value is clipped for safety to avoid exceptions.
Definition: apibasemath.h:249
PyObject * op
Definition: object.h:520
Definition: c4d_raytrace.h:244
Definition: c4d_raytrace.h:541
Int32 xres
Image horizontal resolution.
Definition: c4d_raytrace.h:546
Int32 yres
Image vertical resolution.
Definition: c4d_raytrace.h:547
Definition: c4d_shader.h:742
Float oy
Definition: c4d_shader.h:774
Int32 uvwind
The uvw index, access is through VolumeData::GetUVW().
Definition: c4d_shader.h:781
Char proj
The texture projection: TextureProjectionTypes.
Definition: c4d_shader.h:753
Float leny
The Y length of the texture.
Definition: c4d_shader.h:776
Matrix im
The inverse of the texture projection matrix.
Definition: c4d_shader.h:750
Float lenx
The X length of the texture.
Definition: c4d_shader.h:775
Float ox
Definition: c4d_shader.h:772
Char texflag
The texture flags: TEX.
Definition: c4d_shader.h:751
Definition: c4d_tools.h:1388
Vector GetPointUVW(const TexData *tdp, const RayHitID &hit, const Vector64 &p) const
Definition: c4d_tools.h:1822
const RayParameter * GetRayParameter() const
Definition: c4d_tools.h:1743
void GetXY(Int32 *x, Int32 *y, Int32 *scale) const
Definition: c4d_tools.h:1869
PI
Definition: unicodeutils.h:16