api_periodic_keep_pattern
List of: Functions
Subjects: Patterns
Contents: Kernel

Action: Creates a new pattern by applying a periodic keep-filter to an existing pattern.

Prototype: outcome api_periodic_keep_pattern (


pattern*& pat, // created pattern


const pattern& in_pattern, // input pattern


const logical* keep, // array of keep values


int period, // # of keep values


int which_dim, // dimension for filter


logical merge // merge flag



= TRUE,


AcisOptions* ao = NULL // acis options


);

Includes: #include "kernel/acis.hxx"

#include "baseutil/logical.h"

#include "kernel/kernapi/api/api.hxx"

#include "kernel/kernutil/law/pattern.hxx"

#include "kernel/kernutil/law/pattern_api.hxx"

#include "kernel/kernapi/api/acis_options.hxx"

Description: Applies a periodic keep-filter to an existing pattern, merging with any existing keep law or, optionally (with merge=FALSE), replacing it. The argument keep is the Boolean list of successive keep values, so that the size of the list (period) is the periodicity of the filter. The argument which_dim specifies the dimension within which the filter is applied.


The following code snippet shows an example of how this API can be used.


// Create a pattern

pattern* pat = NULL;

SPAvector x_vec(4.0, 0, 0);

int num_x = 6;

SPAvector y_vec(0, 2.0, 0);

int num_y = 12;

SPAvector z_vec(0, 0, 3.0);

int num_z = 4;

check_outcome(result = api_linear_pattern(pat, x_vec, num_x, y_vec, num_y, z_vec, num_z));


// Modify the pattern

pattern* mod_pat = NULL;

logical keep[3];keep[0] = TRUE;

keep[1] = TRUE;

keep[2] = FALSE;

int which_dim = 1;

check_outcome(result = api_periodic_keep_pattern(mod_pat, *pat, keep, 3, which_dim));


// Create a prism

BODY* prism = NULL;

double height = 1.0;

double maj_rad = 1.0;

double min_rad = 0.5;

int num_sides = 3;

check_outcome(result = api_make_prism(height, maj_rad, min_rad, num_sides, prism));


// Apply the pattern to the prism

check_outcome(result = api_set_entity_pattern(prism, mod_pat));


// Clean up

pat->remove();

mod_pat->remove();

Library: kernel

Filename: kern/kernel/kernutil/law/pattern_api.hxx

Effect: Changes model
PDF/KERN/16FNA.PDF
HTM/DATA/KERN/KERN/16FNA/0111.HTM