Odd and Even numbers

THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED

On 07/06/2010 at 16:50, xxxxxxxx wrote:

User Information:
Cinema 4D Version:   11.5 
Platform:   Windows  ;   
Language(s) :     C++  ;

---------
Is it possible to determine if an index is odd or even?

~Shawn

THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED

On 07/06/2010 at 17:02, xxxxxxxx wrote:

Figured this out...  ended up using ...

if (Modulo(i, 2) != 0)

THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED

On 08/06/2010 at 05:44, xxxxxxxx wrote:

Don't do that if you're handling Integers and high volume, because Modulo is a Real function.

Easier using the C++ modulo operator:

if (i%2) {
}

Hope it helps!

Kabe

THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED

On 08/06/2010 at 05:57, xxxxxxxx wrote:

Please use LModulo() for integers.

cheers,
Matthias

THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED

On 08/06/2010 at 09:06, xxxxxxxx wrote:

Anything wrong with the C++ operator?

Kabe

THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED

On 08/06/2010 at 10:04, xxxxxxxx wrote:

Originally posted by xxxxxxxx

Anything wrong with the C++ operator?

Kabe

Nothing wrong, in fact LModulo just wraps % with a special condition if a<0.

from c4d_tools.h

  
inline Real Modulo(Real a, Real b)  
{  
  if (b==0.0) return 0.0;  
  LONG n = (LONG) (a/b);  
  
  a -= n*b;  
  if (a<0.0) a+= b;  
  
  return a;  
}  
  
inline LONG LModulo(LONG a, LONG b)  
{  
  if (!b) return 0;  
  if (a >= 0) return a%b;  
  
  a -= (a/b)*b;  
  if (a<0) a+= b;  
  
  return a;  
}  
  
inline LLONG LModulo(LLONG a, LLONG b)  
{  
  if (!b) return 0;  
  if (a >= 0) return a%b;  
  
  a -= (a/b)*b;  
  if (a<0) a+= b;  
  
  return a;  
}  

cheers,
Matthias