float3Data Function3DYcoord::getFloat3Data(int x, int y, int z, int sx, int sy, int sz) {
	float3Data result(sx,float2Data(sy,float1Data(sz,0.0)));
	for(int localX = 0; localX < sx; ++localX)
		for(int localY = 0; localY < sy; ++localY)
			for(int localZ = 0; localZ < sz; ++localZ)
				result[localX][localY][localZ] = y+localY;
	return result;
}
Esempio n. 2
0
float3Data Function3DSimplex::getFloat3Data(int x, int y, int z, int sx, int sy, int sz) { //world coords
    float3Data result(sx,float2Data(sy,float1Data(sz,0.0)));
    for(int x2 = x; x2 < x+sx; ++x2)
        for(int y2 = y; y2 < y+sy; ++y2)
            for(int z2 = z; z2 < z+sz; ++z2)
                result[x2-x][y2-y][z2-z] = noise.get(x2, y2, z2);
    return result;
}
Esempio n. 3
0
float3Data Function3DAdd::getFloat3Data(int x, int y, int z, int sx, int sy, int sz) {
	float3Data dataA = funcA->getFloat3Data(x,y,z,sx,sy,sz);
	float3Data dataB = funcB->getFloat3Data(x,y,z,sx,sy,sz);
	float3Data result(sx,float2Data(sy,float1Data(sz,0.0)));
	for(int i = 0; i < sx; ++i)
		for(int j = 0; j < sy; ++j)
			for(int k = 0; k < sz; ++k)
				result[i][j][k] = dataA[i][j][k] + dataB[i][j][k];
	return result;
}
float2Data Function2DSimplex::getFloat2Data(int x, int z, int sx, int sz) { //world coords
	float2Data result(sx,float1Data(sz,0.0));
	for(int localX = 0; localX < sx; ++localX)
		for(int localZ = 0; localZ < sz; ++localZ) {
			vec2d pos((x+localX)/scale,(z+localZ)/scale);
			result[localX][localZ] = min + (max-min)*((glm::simplex(pos)+1)*0.5);
			//result[localX][localZ] = valSimplex2D(pos.x,pos.y); more precision, slower
		}
	return result;
}